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

Adhere DEX orders to "limit order" behavior (single counter order) #13

Draft
wants to merge 25 commits into
base: develop
Choose a base branch
from

Conversation

greenhat
Copy link
Member

@greenhat greenhat commented Apr 30, 2020

Require in the contracts that price difference was returned to the order's author.
For example, let's say we have a sell order with token price 5 ergs and buy order with token price 6 ergs. The contract must enforce 1 erg difference to be returned to the buyer(seller) depending on who's order was first.

This PR is only for single counter order. #14 is branched from it to add multiple counter order support.

Challenge 1.
Figure out how "select" proper counter orders without a 'sort' op. Example:
For older buy order (price 5 ergs, total 15 ergs) which is matched with 2 newer sell orders (price 5, 2 tokens), (price 4, 2 tokens) how to start "selecting" tokens from the second sell order and finish with the first order?
Without the solution, we'd have to limit to 1-1 (single counter order) order matching per swap tx.

Todo:

  • draft contracts for single counter order;
  • use updated contracts in scenarios, catch AOT-related bugs;
  • implement creation height in playgrounds (now it's 0);

Continued in #14

@greenhat
Copy link
Member Author

greenhat commented May 7, 2020

ergoplatform/ergo#1097 got me thinking if I can find a way to avoid minting the token on buy order cancellation (workaround for ergoplatform/sigmastate-interpreter#628) . It turned out that switching to getOrElse for accessing tokens by index is enough (see token id check). For some cases even prepending with if is enough (see token amount extraction).
Here is the changes that allow to ditch the token minting - 845bda8

@greenhat greenhat changed the title Adhere DEX orders to "limit order" behavior Adhere DEX orders to "limit order" behavior (single counter order) May 7, 2020
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

Successfully merging this pull request may close these issues.

1 participant