Expand description
RPC-layer handlers for NodeInterface (0xc8) methods that require chain-history or call-stack access beyond what a precompile can do.
Implemented as an eth_call override on ArbEthApi. Precompile-level
fallbacks return zero / empty (see arb_precompiles::nodeinterface)
so callers that don’t go through eth_call still get a valid response.
Constants§
- NODE_
INTERFACE_ ADDRESS - NodeInterface virtual contract address.
- SEL_
BLOCK_ L1_ NUM - SEL_
CONSTRUCT_ OUTBOX_ PROOF - SEL_
FIND_ BATCH_ CONTAINING_ BLOCK - SEL_
GAS_ ESTIMATE_ COMPONENTS - SEL_
GAS_ ESTIMATE_ L1_ COMPONENT - SEL_
GET_ L1_ CONFIRMATIONS - SEL_
L2_ BLOCK_ RANGE_ FOR_ L1 - SEL_
LEGACY_ LOOKUP_ MESSAGE_ BATCH_ PROOF - SEL_
NITRO_ GENESIS_ BLOCK
Functions§
- decode_
single_ u64_ arg - Decode the
uint64argument from the selectorblockL1Num(uint64)/l2BlockRangeForL1(uint64)/findBatchContainingBlock(uint64)/nitroGenesisBlock()(no arg, returns 0). - encode_
gas_ estimate_ components - ABI-encode the
(uint64, uint64, uint256, uint256)result ofgasEstimateComponents:(gasEstimate, gasEstimateForL1, baseFee, l1BaseFeeEstimate). - encode_
l2_ block_ range - ABI-encode the
(uint64, uint64)result ofl2BlockRangeForL1. - encode_
legacy_ lookup_ empty - ABI-encode
legacyLookupMessageBatchProof’s all-zero 9-value tuple. The head is nine words (0x120), so the emptyproofarray begins at 0x120 and the emptycalldataForL1at 0x140; both length words live inside the 0x160 buffer. - encode_
u64_ word - ABI-encode a single
uint64as a right-aligned 32-byte word. - find_
l2_ block_ range - Binary-search headers to find the block-range that was emitted against
the given L1 block. The predicate on each header is
l1_block_number_from_mix_hash(header.mix_hash). - gas_
estimate_ data_ len - Extract the
bytesparameter (data) from an ABI-encoded(address, bool, bytes)gas-estimate call, returning its length. - unpack_
mix_ hash - Decode a packed header’s mix_hash field to
(sendCount, l1BlockNumber, arbosVersion).