CodeChain-io / CodeChain-io/codechain-exchange
Implement an order watcher deamon
- Dominant language
- TypeScript
- Stars
- 17
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
CODEX order watcher is similar to [0x order watcher](https://0xproject.com/wiki#0x-OrderWatcher)
* 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
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.