degenbot.provider.block_helpers¶
Block identifier resolution helpers.
Shared shaping logic for the sync (degenbot.provider.sync) and async
(degenbot.provider.async_provider) provider trees: both get_block
twins resolve identifiers here, and both get_block_timestamp twins
extract the timestamp here, so the block-tag contract has one home.
Module Contents¶
- degenbot.provider.block_helpers.get_number_for_block_identifier(identifier: degenbot.types.rpc_types.BlockIdentifier | None, provider: degenbot.provider.AlloyProvider) degenbot.types.aliases.BlockNumber¶
Convert a block identifier to a block number.
- Parameters:
identifier – Block identifier (None, int, or string tag like ‘latest’)
provider – AlloyProvider instance
- Returns:
Block number as integer
- Raises:
DegenbotValueError – If the block identifier is invalid or block not found.
- degenbot.provider.block_helpers.resolve_block_tag(block_identifier: int | str, current_block_number: degenbot.types.aliases.BlockNumber) degenbot.types.aliases.BlockNumber¶
Resolve a provider
get_blockidentifier to a block number.Integer identifiers pass through unchanged; string tags resolve through the
BlockTag.parseladder against the provider’s current block number ('latest'-> head,'earliest'-> 0,'pending'-> head + 1). This is the mixin-level seam;get_number_for_block_identifier()above serves the broader publicBlockIdentifiersurface with its own error contract.- Parameters:
block_identifier – Block number, or one of ‘latest’, ‘earliest’, ‘pending’.
current_block_number – The provider’s current block number.
- Returns:
The concrete block number to query.
- degenbot.provider.block_helpers.block_timestamp_from(block_data: degenbot.types.rpc_types.BlockData | None, requested_block: int | None) int¶
Extract a timestamp from fetched block data, failing on a missing block.
- Parameters:
block_data – The block data returned by the provider, or None when the block was not found.
requested_block – The block number the caller asked for (used verbatim in the error message; None means the
'latest'default).
- Returns:
The block timestamp as an integer (Unix seconds).
- Raises:
ValueError – If the block data is absent.