Documentation ¶
Index ¶
- func GetRelevantTopics() []common.Hash
- type Config
- type Watcher
- func (w *Watcher) Add(orderInfo *ordervalidator.AcceptedOrderInfo, pinned bool) error
- func (w *Watcher) Cleanup(ctx context.Context, lastUpdatedBuffer time.Duration) error
- func (w *Watcher) MaxExpirationTime() *big.Int
- func (w *Watcher) Subscribe(sink chan<- []*zeroex.OrderEvent) event.Subscription
- func (w *Watcher) Watch(ctx context.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetRelevantTopics ¶
GetRelevantTopics returns the OrderWatcher-relevant topics that should be used when filtering the logs retrieved for Ethereum blocks
Types ¶
type Config ¶
type Config struct { MeshDB *meshdb.MeshDB BlockWatcher *blockwatch.Watcher OrderValidator *ordervalidator.OrderValidator ChainID int MaxOrders int MaxExpirationTime *big.Int }
type Watcher ¶
type Watcher struct {
// contains filtered or unexported fields
}
Watcher watches all order-relevant state and handles the state transitions
func (*Watcher) Add ¶
func (w *Watcher) Add(orderInfo *ordervalidator.AcceptedOrderInfo, pinned bool) error
Add adds a 0x order to the DB and watches it for changes in fillability. It will no-op (and return nil) if the order has already been added. If pinned is true, the orders will be marked as pinned. Pinned orders will not be affected by any DDoS prevention or incentive mechanisms and will always stay in storage until they are no longer fillable.
func (*Watcher) Cleanup ¶
Cleanup re-validates all orders in DB which haven't been re-validated in `lastUpdatedBuffer` time to make sure all orders are still up-to-date
func (*Watcher) MaxExpirationTime ¶
MaxExpirationTime returns the current maximum expiration time for incoming orders.
func (*Watcher) Subscribe ¶
func (w *Watcher) Subscribe(sink chan<- []*zeroex.OrderEvent) event.Subscription
Subscribe allows one to subscribe to the order events emitted by the OrderWatcher. To unsubscribe, simply call `Unsubscribe` on the returned subscription. The sink channel should have ample buffer space to avoid blocking other subscribers. Slow subscribers are not dropped.