Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the concept of "orders" instead of "swaps" #615

Open
sindresorhus opened this issue Aug 5, 2019 · 0 comments
Open

Use the concept of "orders" instead of "swaps" #615

sindresorhus opened this issue Aug 5, 2019 · 0 comments

Comments

@sindresorhus
Copy link
Contributor

sindresorhus commented Aug 5, 2019

mm2 is using a different concept for orders than what we implemented for mm1. For mm1, one order was equal to one swap. In mm2, there's the concept of a order having potentially multiple swaps, and it also has the concept of taker/maker (in mm1 the end-user was always Taker and the server was Maker).

At the moment we have no concept of orders, we just use the UUID we get from the buy API and wait for it to show in my_recent_swaps. Which taker orders always will. But for maker order, we need to track the actual order to check for all swaps that may be started for it. But that won’t work for taker orders because the order is deleted as soon as it's matched, which we can easily miss when it's matched quickly.
From Artem in Discord, the proper way to currently track both of these use cases is:
We will have to persist the order_history sooner or later (KomodoPlatform/komodo-defi-framework#451) so it'll be done for sure. As of now you have to follow these steps: create order -> check order_status -> if there's no order check my_swap_status with same uuid -> if swap is not found there's something unexpected. - @lukechilds

particle4dev pushed a commit to particle4dev/hyperdex that referenced this issue Oct 20, 2019
jorian added a commit that referenced this issue Feb 26, 2020
* [started #615] use-the-concept-of-orders-instead-of-swaps

* debug

* - Add new format-order-data file
- Add some unit test

* db: rename swaps2 to orders2

* api: Add myOrders method

* api: Add cancelAllOrders method

* orders data: update type of order

* db: Add removeOrder method in DB

* add formatOrder and formatSwap data

* test case: taker order is filled in 30s

* test case: maker order can has mutil swaps

* test case: maker order is filled

* swaplist: fix order css

* swap-db.js: remove getSwapCount func and add getOrdersCount

* Order: cancel all pair orders before create a new one

* Dashboard: update  ActivityList

* fix bug: swap not found

* ui: update swap Detail modal

* ui: update SwapList

* remove unused file

* fix #5: steps of swap show wrong amount

* fix #6: add cancel button for open order

* fix #4: trade history shows ongoing trade as completed

* fix #15: replace CHIPS with BTC as always-enabled-coin

* fix #3 sort orders based on price

* fix #9 trade history shows cancelled orders as completed

* fix #18: replace todo text when restoring seed phrase

* fix #13 update HUSH

* fix #13 rename InstantDEX to DEX

* fix #13 add BET

* fix #13 disable BET

* fix #12 disabling a coin should be possible again

* fix #17 ERC20 swaps give wrong error when ETH funds lack

* remove annoying log

* add base variable

* fix #19 order not cancellable, not in mm2.0 response but still visible

* fix #27 withdraw confirmation screen shows wrong information

* fix #28 withdraw full balance not working

* fix #22 clicking Price in orderbook section populates a too high buy Price

* add BET

* add HODL, disable HODLC

* add HUSH

* add preliminary MGW support

* let nonofficial mm2 coins still be enabled through electrum

* enable MGW, add COMMOD

* add LABS

* add BUSD, GIN, USDC

* re-enable OOT

* update VRSC daemons

* remove dead GIN electrum

* remove dead coins (#34)

Co-authored-by: Jorian <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant