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

Implement an order watcher deamon #13

Open
posgnu opened this issue Dec 6, 2018 · 1 comment
Open

Implement an order watcher deamon #13

posgnu opened this issue Dec 6, 2018 · 1 comment

Comments

@posgnu
Copy link
Contributor

posgnu commented Dec 6, 2018

CODEX order watcher is similar to 0x order watcher

  • The OrderWatcher is a daemon. You can start and stop it from subscribing to order state changes, add orders you would like to track and remove orders that are no longer relevant. Just can add order and get an event if the status of the order is changed.
  • Once the OrderWatcher is started and an order has been added to it, it will emit events once, if there is a change in the state backing an order's fillability. If orderWatcher gets an event than it removes an order from the order book.
  • There are two kinds of watchers in the order watcher. One is invalidWatcher which check the validity of orders except for expiration time. Another one is expirationWatcher which check an expiration time of order. The difference between them is the length of the checking time interval. The expirationWatcher's time interval will be much shorter than the orderWatcher.
  • The orderWatcher will be managed by just list and the expirationWatcher will be managed by a min-heap. Therefore the expirationWatcher only need to monitor one order, which has a minimum expiration time.

API

// orderWatcher
addOrder(order):  void
// expirationWatcher
addOrder(order, expiration): void
@posgnu
Copy link
Contributor Author

posgnu commented Dec 7, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant