feat: add bal rpc methods#23330
Conversation
| if block.header().number() < earliest_block { | ||
| return Err(EthApiError::PrunedHistoryUnavailable.into()); | ||
| } | ||
| // Check if the block is pre-Amsterdam, as access lists are not available for those |
There was a problem hiding this comment.
Sorry I'm catching up to all this BAL work, I'm guessing we have some way of pre-enabling this for development/testing?
There was a problem hiding this comment.
This was in the specs, i dont think there is a way to enable it ..we can just remove the check for now if you want
There was a problem hiding this comment.
will defer to @mattsse, but yeah having some way to get BALs for pre-amsterdam blocks is a requirement for big block testing. Maybe we enable that via a CLI arg or something.
There was a problem hiding this comment.
@Soubhik-10 lets remove this check for now, because this endpoint will come in handy for pre fork testing
| // Check if the block has been pruned (EIP-4444) | ||
| let earliest_block = self.provider().earliest_block_number()?; | ||
| if block.header().number() < earliest_block { | ||
| return Err(EthApiError::PrunedHistoryUnavailable.into()); | ||
| } |
There was a problem hiding this comment.
I think we can remove this because this is now checked by recovered_block already
| if block.header().number() < earliest_block { | ||
| return Err(EthApiError::PrunedHistoryUnavailable.into()); | ||
| } | ||
| // Check if the block is pre-Amsterdam, as access lists are not available for those |
There was a problem hiding this comment.
@Soubhik-10 lets remove this check for now, because this endpoint will come in handy for pre fork testing
| trace!(target: "rpc::eth", ?hash, "Serving eth_getBlockAccessListByBlockHash"); | ||
| Err(internal_rpc_err("unimplemented")) | ||
| } | ||
| async fn block_access_list_by_block_hash(&self, block_hash: B256) -> RpcResult<Option<Value>> { |
There was a problem hiding this comment.
I think returning value here makes sense for now, but it has some overhead because we then need to serialize this as string again.
but lets keep it for now
Automated nightly update of reth dependencies from `paradigmxyz/reth` main branch. ## Upstream reth changes [`f8efc76...c82d435`](paradigmxyz/reth@f8efc76...c82d435) 🔗 Amp thread: https://ampcode.com/threads/T-019d517e-981b-75fd-b3cf-8ad2455f38f6 **RPC** - Remove `0x` prefix from `admin_peers` id and return keccak256 node ID in `admin_nodeInfo.id` to match go-ethereum format ([#23318](paradigmxyz/reth#23318), [#23319](paradigmxyz/reth#23319)) - Apply count filter only after `after` is consumed in pagination ([#23338](paradigmxyz/reth#23338)) - Pre-allocate vectors in `eth_feeHistory` ([#23334](paradigmxyz/reth#23334)) - Add `bal` RPC methods ([#23330](paradigmxyz/reth#23330)) **Engine** - Include backpressure in reported `persistence_wait`, make wait-time mimic CL slot time ([#23308](paradigmxyz/reth#23308)) **Perf** - Reduce cacheline ping-pong in workers availability ([#23321](paradigmxyz/reth#23321)) **Net** - Avoid itertools `Format` panic in tracing log ([#23331](paradigmxyz/reth#23331)) **DB** - Cap `storage_v2` unwind history by MDBX tip ([#23335](paradigmxyz/reth#23335)) **Bench** - Add warmup step for big blocks mode ([#23323](paradigmxyz/reth#23323)) - Make payload handling ethereum-only ([#23324](paradigmxyz/reth#23324)) - Use repository instead of GitHub Actions cache to track hourly runs ([#23306](paradigmxyz/reth#23306)) - Upload nightly regression results to ClickHouse ([#23344](paradigmxyz/reth#23344)) **Chore** - Migrate `allow(clippy::` to `expect(clippy::` ([#23340](paradigmxyz/reth#23340)) - Remove unused return value from `dispatch_with_chunking` ([#23341](paradigmxyz/reth#23341)) - Update nixpkgs to 25.11 and refresh flake inputs ([#23342](paradigmxyz/reth#23342)) ## Migrations 🔗 Amp thread: https://ampcode.com/threads/T-019d517e-baf0-727b-a57e-0488240af973 - **Reth dependency bump**: All `reth-*` git dependencies updated from rev `f8efc76` to `c82d435` - **New `GetBlockAccessList` trait impl**: `TempoEthApi` now implements `GetBlockAccessList` (imported from `reth_rpc_eth_api::helpers::bal`), likely a new required trait added upstream in the reth update [GitHub Workflow](https://github.com/tempoxyz/tempo/actions/runs/23933027282) --------- Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
code taken from ref
cc @Rimeeeeee