codechain-exchange
codechain-exchange copied to clipboard
Implement an order watcher deamon
trafficstars
CODEX order watcher is similar to 0x order watcher
- The
OrderWatcheris 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
OrderWatcheris 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
invalidWatcherwhich check the validity of orders except for expiration time. Another one isexpirationWatcherwhich check an expiration time of order. The difference between them is the length of the checking time interval. TheexpirationWatcher's time interval will be much shorter than theorderWatcher. - The
orderWatcherwill be managed by just list and theexpirationWatcherwill be managed by a min-heap. Therefore theexpirationWatcheronly need to monitor one order, which has a minimum expiration time.
API
// orderWatcher
addOrder(order): void
// expirationWatcher
addOrder(order, expiration): void
FYI, https://0xproject.com/docs/order-watcher