CodeChain-io / CodeChain-io/codechain-exchange

Implement an order watcher deamon

Open
#13 1 comment 0 reactions 0 assignees View on GitHub
Matcher :m: orderwatcher :eyes:
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.