Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Hashable ¶
type Hashable interface { fmt.Stringer comparable Bytes() []byte }
A chain-agnostic generic interface to represent the following native types on various chains: PublicKey, Address, Account, BlockHash, TxHash
type Head ¶ added in v2.2.0
type Head[BLOCK_HASH Hashable] interface { // BlockNumber is the head's block number BlockNumber() int64 // ChainLength returns the length of the chain followed by recursively looking up parents ChainLength() uint32 // EarliestInChain traverses through parents until it finds the earliest one EarliestHeadInChain() Head[BLOCK_HASH] // Hash is the head's block hash BlockHash() BLOCK_HASH // Parent is the head's parent block GetParent() Head[BLOCK_HASH] // HashAtHeight returns the hash of the block at the given height, if it is in the chain. // If not in chain, returns the zero hash HashAtHeight(blockNum int64) BLOCK_HASH }
Head provides access to a chain's head, as needed by the TxManager. This is a generic interface which ALL chains will implement.
type HeadSaver ¶ added in v2.2.0
type HeadSaver[H Head[BLOCK_HASH], BLOCK_HASH Hashable] interface { // Save updates the latest block number, if indeed the latest, and persists // this number in case of reboot. Save(ctx context.Context, head H) error // Load loads latest EvmHeadTrackerHistoryDepth heads, returns the latest chain. Load(ctx context.Context) (H, error) // LatestChain returns the block header with the highest number that has been seen, or nil. LatestChain() H // Chain returns a head for the specified hash, or nil. Chain(hash BLOCK_HASH) H }
HeadSaver is an chain agnostic interface for saving and loading heads Different chains will instantiate generic HeadSaver type with their native Head and BlockHash types.
Click to show internal directories.
Click to hide internal directories.