codechain-exchange
codechain-exchange copied to clipboard
Implement an order watcher deamon
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 isexpirationWatcher
which 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
orderWatcher
will be managed by just list and theexpirationWatcher
will be managed by a min-heap. Therefore theexpirationWatcher
only 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