Expand description
RPC-layer handlers for NodeInterface (0xc8) methods that require chain-history or call-stack access beyond what a precompile can do.
In Nitro these are handled by InterceptRPCMessage before the EVM
dispatches — we implement the same pattern as an eth_call override
on ArbEthApi. Precompile-level fallbacks for these methods 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_
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
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. - 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).