Documentation ¶
Index ¶
- Variables
- type FilterCond
- type FilterOptions
- type FilterQuery
- func FilterFrom(from ethkit.Address) FilterQuery
- func FilterLogContract(contractAddress ethkit.Address) FilterQuery
- func FilterLogTopic(eventTopicHash ethkit.Hash) FilterQuery
- func FilterLogs(logFn func([]*types.Log) bool) FilterQuery
- func FilterTo(to ethkit.Address) FilterQuery
- func FilterTxnHash(txnHash ethkit.Hash) FilterQuery
- type Filterer
- type Options
- type Receipt
- func (r *Receipt) BlockHash() ethkit.Hash
- func (r *Receipt) BlockNumber() *big.Int
- func (r *Receipt) Bloom() types.Bloom
- func (r *Receipt) CumulativeGasUsed() uint64
- func (r *Receipt) DeployedContractAddress() common.Address
- func (r *Receipt) EffectiveGasPrice() *big.Int
- func (r *Receipt) FilterID() uint64
- func (r *Receipt) From() common.Address
- func (r *Receipt) GasUsed() uint64
- func (r *Receipt) Logs() []*types.Log
- func (r *Receipt) Receipt() *types.Receipt
- func (r *Receipt) Root() []byte
- func (r *Receipt) Status() uint64
- func (r *Receipt) To() common.Address
- func (r *Receipt) TransactionHash() ethkit.Hash
- func (r *Receipt) TransactionIndex() uint
- func (r *Receipt) Type() uint8
- type ReceiptsListener
- func (l *ReceiptsListener) FetchTransactionReceipt(ctx context.Context, txnHash common.Hash, optMaxBlockWait ...int) (*Receipt, WaitReceiptFinalityFunc, error)
- func (l *ReceiptsListener) FetchTransactionReceiptWithFilter(ctx context.Context, filter FilterQuery) (*Receipt, WaitReceiptFinalityFunc, error)
- func (l *ReceiptsListener) IsRunning() bool
- func (l *ReceiptsListener) PurgeHistory()
- func (l *ReceiptsListener) Run(ctx context.Context) error
- func (l *ReceiptsListener) Stop()
- func (l *ReceiptsListener) Subscribe(filterQueries ...FilterQuery) Subscription
- type Subscription
- type WaitReceiptFinalityFunc
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrFilterMatch = errors.New("ethreceipts: filter match fail") ErrFilterCond = errors.New("ethreceipts: missing filter condition") ErrFilterExhausted = errors.New("ethreceipts: filter exhausted after maxWait blocks") ErrSubscriptionClosed = errors.New("ethreceipts: subscription closed") )
View Source
var DefaultOptions = Options{
MaxConcurrentFetchReceiptWorkers: 50,
MaxConcurrentFilterWorkers: 20,
PastReceiptsCacheSize: 5_000,
NumBlocksToFinality: 0,
FilterMaxWaitNumBlocks: 0,
}
Functions ¶
This section is empty.
Types ¶
type FilterCond ¶
type FilterOptions ¶
type FilterOptions struct { // .. ID uint64 // .. Finalize bool // . LimitOne bool // .. SearchCache bool // SearchOnChain will search for txn hash on-chain. This is only useful // when used in combination with TxnHash filter cond. SearchOnChain bool // MaxWait filter option waits some number of blocks without a filter match after // which point will auto-unsubscribe the filter. This is useful to help automatically // remove filters which likely won't come up. // // nil : use the ReceiptsListener option FilterMaxWaitNumBlocks value as the default // -1 : set value to ReceiptsListener option NumFinality * 3 // 0 : option is disabled, and has no limit on wait. filters need to be manually unsubscribed // N : a specified number of blocks without a match before unsusbcribe MaxWait *int }
type FilterQuery ¶
type FilterQuery interface { ID(uint64) FilterQuery Finalize(bool) FilterQuery LimitOne(bool) FilterQuery SearchCache(bool) FilterQuery SearchOnChain(bool) FilterQuery MaxWait(int) FilterQuery }
func FilterFrom ¶
func FilterFrom(from ethkit.Address) FilterQuery
Filter the transaction payload for "from" address.
func FilterLogContract ¶
func FilterLogContract(contractAddress ethkit.Address) FilterQuery
Filter the logs of a transaction and search for an event log from a specific contract address.
func FilterLogTopic ¶
func FilterLogTopic(eventTopicHash ethkit.Hash) FilterQuery
Filter the log topics for a transaction
func FilterLogs ¶ added in v1.17.6
func FilterLogs(logFn func([]*types.Log) bool) FilterQuery
Filter logs of a transaction
func FilterTo ¶
func FilterTo(to ethkit.Address) FilterQuery
Filter the transaction payload for "to" address.
func FilterTxnHash ¶
func FilterTxnHash(txnHash ethkit.Hash) FilterQuery
Filter the transaction payload for specific txn "hash"
type Filterer ¶
type Filterer interface { FilterQuery FilterID() uint64 Options() FilterOptions Cond() FilterCond Match(ctx context.Context, receipt Receipt) (bool, error) LastMatchBlockNum() uint64 Exhausted() <-chan struct{} }
type Options ¶
type Options struct { // .. MaxConcurrentFetchReceiptWorkers int // .. MaxConcurrentFilterWorkers int // .. PastReceiptsCacheSize int // .. NumBlocksToFinality int // FilterMaxWaitNumBlocks is the maximum amount of blocks a filter will wait between getting // a receipt filter match, before the filter will unsubscribe itself and stop listening. // This value may be overriden by setting FilterCond#MaxListenNumBlocks on per-filter basis. // // NOTE: // * value of -1 will use NumBlocksToFinality*2 // * value of 0 will set no limit, so filter will always listen [default] // * value of N will set the N number of blocks without results before unsubscribing between iterations FilterMaxWaitNumBlocks int }
type Receipt ¶
type Receipt struct { Filter Filterer // reference to filter which triggered this event Final bool // flags that this receipt is finalized Reorged bool // chain reorged / removed the txn // contains filtered or unexported fields }
func (*Receipt) BlockNumber ¶
func (*Receipt) CumulativeGasUsed ¶
func (*Receipt) DeployedContractAddress ¶
DeployedContractAddress returns the address if this receipt is related to a contract deployment.
func (*Receipt) EffectiveGasPrice ¶
func (*Receipt) TransactionHash ¶
func (*Receipt) TransactionIndex ¶
type ReceiptsListener ¶ added in v1.18.0
type ReceiptsListener struct {
// contains filtered or unexported fields
}
func NewReceiptsListener ¶ added in v1.18.0
func NewReceiptsListener(log logger.Logger, provider *ethrpc.Provider, monitor *ethmonitor.Monitor, options ...Options) (*ReceiptsListener, error)
func (*ReceiptsListener) FetchTransactionReceipt ¶ added in v1.18.0
func (l *ReceiptsListener) FetchTransactionReceipt(ctx context.Context, txnHash common.Hash, optMaxBlockWait ...int) (*Receipt, WaitReceiptFinalityFunc, error)
func (*ReceiptsListener) FetchTransactionReceiptWithFilter ¶ added in v1.18.0
func (l *ReceiptsListener) FetchTransactionReceiptWithFilter(ctx context.Context, filter FilterQuery) (*Receipt, WaitReceiptFinalityFunc, error)
func (*ReceiptsListener) IsRunning ¶ added in v1.18.0
func (l *ReceiptsListener) IsRunning() bool
func (*ReceiptsListener) PurgeHistory ¶ added in v1.18.0
func (l *ReceiptsListener) PurgeHistory()
func (*ReceiptsListener) Run ¶ added in v1.18.0
func (l *ReceiptsListener) Run(ctx context.Context) error
func (*ReceiptsListener) Stop ¶ added in v1.18.0
func (l *ReceiptsListener) Stop()
func (*ReceiptsListener) Subscribe ¶ added in v1.18.0
func (l *ReceiptsListener) Subscribe(filterQueries ...FilterQuery) Subscription
type Subscription ¶
type Subscription interface { TransactionReceipt() <-chan Receipt Done() <-chan struct{} Unsubscribe() Filters() []Filterer AddFilter(filters ...FilterQuery) RemoveFilter(filter Filterer) ClearFilters() }
Click to show internal directories.
Click to hide internal directories.