Documentation ¶
Index ¶
- Variables
- func IsBlockEq(a, b *types.Block) bool
- type Block
- type Blocks
- func (blocks Blocks) Copy() Blocks
- func (blocks Blocks) EventExists(block *types.Block, event Event) bool
- func (blocks Blocks) FindBlock(hash common.Hash, optEvent ...Event) (*Block, bool)
- func (b Blocks) Head() *Block
- func (b Blocks) IsOK() bool
- func (b Blocks) LatestBlock() *Block
- func (b Blocks) Reorg() bool
- func (b Blocks) Tail() *Block
- type Chain
- func (c *Chain) Blocks() Blocks
- func (c *Chain) GetAverageBlockTime() float64
- func (c *Chain) GetBlock(hash common.Hash) *Block
- func (c *Chain) GetBlockByNumber(blockNum uint64, event Event) *Block
- func (c *Chain) GetTransaction(txnHash common.Hash) *types.Transaction
- func (c *Chain) Head() *Block
- func (c *Chain) PrintAllBlocks()
- func (c *Chain) Tail() *Block
- type Event
- type Monitor
- func (m *Monitor) Chain() *Chain
- func (m *Monitor) GetAverageBlockTime() float64
- func (m *Monitor) GetBlock(blockHash common.Hash) *Block
- func (m *Monitor) GetTransaction(txnHash common.Hash) *types.Transaction
- func (m *Monitor) IsRunning() bool
- func (m *Monitor) LatestBlock() *Block
- func (m *Monitor) LatestBlockNum() *big.Int
- func (m *Monitor) LatestFinalBlock(numBlocksToFinality int) *Block
- func (m *Monitor) OldestBlockNum() *big.Int
- func (m *Monitor) Options() Options
- func (m *Monitor) Provider() *ethrpc.Provider
- func (m *Monitor) PurgeHistory()
- func (m *Monitor) Run(ctx context.Context) error
- func (m *Monitor) Stop()
- func (m *Monitor) Subscribe() Subscription
- type Options
- type Subscription
Constants ¶
This section is empty.
Variables ¶
var ( ErrFatal = errors.New("ethmonitor: fatal error, stopping") ErrReorg = errors.New("ethmonitor: block reorg") ErrUnexpectedParentHash = errors.New("ethmonitor: unexpected parent hash") ErrUnexpectedBlockNumber = errors.New("ethmonitor: unexpected block number") ErrQueueFull = errors.New("ethmonitor: publish queue is full") ErrMaxAttempts = errors.New("ethmonitor: max attempts hit") )
var DefaultOptions = Options{ Logger: logger.NewLogger(logger.LogLevel_WARN), PollingInterval: 1000 * time.Millisecond, Timeout: 20 * time.Second, StartBlockNumber: nil, TrailNumBlocksBehindHead: 0, BlockRetentionLimit: 200, WithLogs: false, LogTopics: []common.Hash{}, DebugLogging: false, }
Functions ¶
Types ¶
type Blocks ¶
type Blocks []*Block
func (Blocks) EventExists ¶ added in v1.3.0
func (Blocks) LatestBlock ¶
type Chain ¶
type Chain struct {
// contains filtered or unexported fields
}
func (*Chain) GetAverageBlockTime ¶ added in v1.14.2
func (*Chain) GetBlockByNumber ¶ added in v1.3.2
func (*Chain) GetTransaction ¶
func (c *Chain) GetTransaction(txnHash common.Hash) *types.Transaction
GetTransaction searches our canonical chain of blocks (where each block points at previous), and returns the transaction. Aka, searches our chain for mined transactions. Keep in mind transactions can still be reorged, but you can check the blockNumber and compare it against the head to determine if its final.
func (*Chain) PrintAllBlocks ¶
func (c *Chain) PrintAllBlocks()
type Monitor ¶
type Monitor struct {
// contains filtered or unexported fields
}
func (*Monitor) GetAverageBlockTime ¶ added in v1.14.2
GetAverageBlockTime returns the average block time in seconds (including fractions)
func (*Monitor) GetTransaction ¶
func (m *Monitor) GetTransaction(txnHash common.Hash) *types.Transaction
GetBlock will search within the retained canonical chain for the txn hash. Passing `optMined true` will only return transaction which have not been removed from the chain via a reorg.
func (*Monitor) LatestBlock ¶
LatestBlock will return the head block of the canonical chain
func (*Monitor) LatestBlockNum ¶ added in v1.17.0
LatestBlockNum returns the latest block number in the canonical chain
func (*Monitor) LatestFinalBlock ¶ added in v1.17.2
LatestFinalBlock returns the latest block which has reached finality. The argument `numBlocksToFinality` should be a constant value of the number of blocks a particular chain needs to reach finality. Ie. on Polygon this value would be 120 and on Ethereum it would be 20. As the pubsub system publishes new blocks, this value will change, as the chain will progress forward. It's recommend / safe to call this method each time in a <-sub.Blocks() code block.
func (*Monitor) OldestBlockNum ¶ added in v1.17.0
func (*Monitor) PurgeHistory ¶ added in v1.17.0
func (m *Monitor) PurgeHistory()
PurgeHistory clears all but the head of the chain. Useful for tests, but should almost never be used in a normal application.
func (*Monitor) Subscribe ¶
func (m *Monitor) Subscribe() Subscription
type Subscription ¶
type Subscription interface { Blocks() <-chan Blocks Done() <-chan struct{} Unsubscribe() }