orderwatch

package
v7.0.1-beta+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2019 License: Apache-2.0 Imports: 23 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetRelevantTopics

func GetRelevantTopics() []common.Hash

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 New

func New(config Config) (*Watcher, error)

New instantiates a new order watcher

func (*Watcher) Cleanup

func (w *Watcher) Cleanup(ctx context.Context, lastUpdatedBuffer time.Duration) error

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

func (w *Watcher) MaxExpirationTime() *big.Int

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.

func (*Watcher) ValidateAndStoreValidOrders

func (w *Watcher) ValidateAndStoreValidOrders(ctx context.Context, orders []*zeroex.SignedOrder, pinned bool, chainID int) (*ordervalidator.ValidationResults, error)

ValidateAndStoreValidOrders applies general 0x validation and Mesh-specific validation to the given orders and if they are valid, adds them to the OrderWatcher

func (*Watcher) WaitForAtLeastOneBlockToBeProcessed

func (w *Watcher) WaitForAtLeastOneBlockToBeProcessed(ctx context.Context) error

WaitForAtLeastOneBlockToBeProcessed waits until the OrderWatcher has processed it's first block

func (*Watcher) Watch

func (w *Watcher) Watch(ctx context.Context) error

Watch sets up the event & expiration watchers as well as the cleanup worker. Event watching will require the blockwatch.Watcher to be started first. Watch will block until there is a critical error or the given context is canceled.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL