From 5028d9a37afc574f4c63c62dd1880fc3293b6591 Mon Sep 17 00:00:00 2001 From: refcell Date: Thu, 4 Jun 2026 13:25:58 +0200 Subject: [PATCH 1/3] chore(release): set version to 1.0.1 (#3224) --- Cargo.lock | 258 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f3cf2b3892..d0b647976d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2284,7 +2284,7 @@ dependencies = [ [[package]] name = "audit-archiver" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "audit-archiver-lib", @@ -2303,7 +2303,7 @@ dependencies = [ [[package]] name = "audit-archiver-lib" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -3109,7 +3109,7 @@ dependencies = [ [[package]] name = "base" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "base-cli-utils", @@ -3130,7 +3130,7 @@ dependencies = [ [[package]] name = "base-access-lists" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", @@ -3148,7 +3148,7 @@ dependencies = [ [[package]] name = "base-action-harness" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3212,7 +3212,7 @@ dependencies = [ [[package]] name = "base-balance-monitor" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-network 2.0.5", "alloy-node-bindings 2.0.5", @@ -3225,7 +3225,7 @@ dependencies = [ [[package]] name = "base-batcher-admin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-batcher-core", "derive_more 2.1.1", @@ -3236,7 +3236,7 @@ dependencies = [ [[package]] name = "base-batcher-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-signer-local 2.0.5", @@ -3255,7 +3255,7 @@ dependencies = [ [[package]] name = "base-batcher-core" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -3280,7 +3280,7 @@ dependencies = [ [[package]] name = "base-batcher-encoder" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3300,7 +3300,7 @@ dependencies = [ [[package]] name = "base-batcher-service" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -3334,7 +3334,7 @@ dependencies = [ [[package]] name = "base-batcher-source" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -3351,7 +3351,7 @@ dependencies = [ [[package]] name = "base-blobs" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -3362,7 +3362,7 @@ dependencies = [ [[package]] name = "base-builder-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "base-builder-core", @@ -3382,7 +3382,7 @@ dependencies = [ [[package]] name = "base-builder-core" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", @@ -3511,7 +3511,7 @@ dependencies = [ [[package]] name = "base-builder-metering" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "base-builder-core", @@ -3524,7 +3524,7 @@ dependencies = [ [[package]] name = "base-builder-publish" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-metrics", "base-ring-buffer", @@ -3544,7 +3544,7 @@ dependencies = [ [[package]] name = "base-bundle-extension" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-execution-txpool", "base-node-runner", @@ -3557,7 +3557,7 @@ dependencies = [ [[package]] name = "base-bundles" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -3574,7 +3574,7 @@ dependencies = [ [[package]] name = "base-challenger" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -3618,7 +3618,7 @@ dependencies = [ [[package]] name = "base-challenger-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-challenger", "base-cli-utils", @@ -3628,7 +3628,7 @@ dependencies = [ [[package]] name = "base-cli-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "backtrace", "base-metrics", @@ -3651,7 +3651,7 @@ dependencies = [ [[package]] name = "base-common-chains" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-eips 2.0.5", @@ -3667,7 +3667,7 @@ dependencies = [ [[package]] name = "base-common-consensus" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3697,7 +3697,7 @@ dependencies = [ [[package]] name = "base-common-evm" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3721,7 +3721,7 @@ dependencies = [ [[package]] name = "base-common-flashblocks" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -3737,7 +3737,7 @@ dependencies = [ [[package]] name = "base-common-flz" -version = "1.0.0" +version = "1.0.1" dependencies = [ "hex-literal 1.1.0", "rstest", @@ -3745,7 +3745,7 @@ dependencies = [ [[package]] name = "base-common-genesis" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", @@ -3766,7 +3766,7 @@ dependencies = [ [[package]] name = "base-common-network" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-network 2.0.5", @@ -3784,7 +3784,7 @@ dependencies = [ [[package]] name = "base-common-precompiles" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-evm", "alloy-primitives", @@ -3800,7 +3800,7 @@ dependencies = [ [[package]] name = "base-common-rpc-types" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3825,7 +3825,7 @@ dependencies = [ [[package]] name = "base-common-rpc-types-engine" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3848,7 +3848,7 @@ dependencies = [ [[package]] name = "base-common-signer" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3868,7 +3868,7 @@ dependencies = [ [[package]] name = "base-comp" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3893,7 +3893,7 @@ dependencies = [ [[package]] name = "base-consensus" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-cli-utils", "base-consensus-cli", @@ -3902,7 +3902,7 @@ dependencies = [ [[package]] name = "base-consensus-cli" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-genesis 2.0.5", @@ -3945,7 +3945,7 @@ dependencies = [ [[package]] name = "base-consensus-derive" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -3975,7 +3975,7 @@ dependencies = [ [[package]] name = "base-consensus-disc" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-rlp", "backon", @@ -3998,7 +3998,7 @@ dependencies = [ [[package]] name = "base-consensus-engine" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4041,7 +4041,7 @@ dependencies = [ [[package]] name = "base-consensus-gossip" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", @@ -4080,7 +4080,7 @@ dependencies = [ [[package]] name = "base-consensus-node" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", @@ -4150,7 +4150,7 @@ dependencies = [ [[package]] name = "base-consensus-peers" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -4176,7 +4176,7 @@ dependencies = [ [[package]] name = "base-consensus-providers" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4213,7 +4213,7 @@ dependencies = [ [[package]] name = "base-consensus-rpc" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -4239,7 +4239,7 @@ dependencies = [ [[package]] name = "base-consensus-safedb" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -4255,7 +4255,7 @@ dependencies = [ [[package]] name = "base-consensus-sources" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-rpc-client 2.0.5", @@ -4277,7 +4277,7 @@ dependencies = [ [[package]] name = "base-consensus-upgrades" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -4289,7 +4289,7 @@ dependencies = [ [[package]] name = "base-engine-tree" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", @@ -4337,7 +4337,7 @@ dependencies = [ [[package]] name = "base-execution-chainspec" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", @@ -4359,7 +4359,7 @@ dependencies = [ [[package]] name = "base-execution-cli" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "backon", @@ -4414,7 +4414,7 @@ dependencies = [ [[package]] name = "base-execution-consensus" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-consensus 2.0.5", @@ -4444,7 +4444,7 @@ dependencies = [ [[package]] name = "base-execution-evm" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4471,7 +4471,7 @@ dependencies = [ [[package]] name = "base-execution-exex" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4497,7 +4497,7 @@ dependencies = [ [[package]] name = "base-execution-payload-builder" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4537,7 +4537,7 @@ dependencies = [ [[package]] name = "base-execution-rpc" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4601,7 +4601,7 @@ dependencies = [ [[package]] name = "base-execution-trie" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4647,7 +4647,7 @@ dependencies = [ [[package]] name = "base-execution-txpool" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4689,7 +4689,7 @@ dependencies = [ [[package]] name = "base-flashblocks" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4745,7 +4745,7 @@ dependencies = [ [[package]] name = "base-flashblocks-node" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", @@ -4801,7 +4801,7 @@ dependencies = [ [[package]] name = "base-health" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-transport-http 2.0.5", "async-trait", @@ -4823,7 +4823,7 @@ dependencies = [ [[package]] name = "base-jwt" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-provider 2.0.5", @@ -4839,7 +4839,7 @@ dependencies = [ [[package]] name = "base-load-tester-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-network 2.0.5", "alloy-primitives", @@ -4861,7 +4861,7 @@ dependencies = [ [[package]] name = "base-load-tests" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4899,7 +4899,7 @@ dependencies = [ [[package]] name = "base-metering" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4953,7 +4953,7 @@ dependencies = [ [[package]] name = "base-metrics" -version = "1.0.0" +version = "1.0.1" dependencies = [ "ctor", "metrics", @@ -4963,7 +4963,7 @@ dependencies = [ [[package]] name = "base-node-core" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -5032,7 +5032,7 @@ dependencies = [ [[package]] name = "base-node-runner" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-genesis 2.0.5", @@ -5083,7 +5083,7 @@ dependencies = [ [[package]] name = "base-precompile-macros" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "proc-macro2", @@ -5093,7 +5093,7 @@ dependencies = [ [[package]] name = "base-precompile-storage" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-evm", "alloy-primitives", @@ -5107,7 +5107,7 @@ dependencies = [ [[package]] name = "base-proof" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -5145,7 +5145,7 @@ dependencies = [ [[package]] name = "base-proof-client" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-evm", @@ -5168,7 +5168,7 @@ dependencies = [ [[package]] name = "base-proof-contracts" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-contract 2.0.5", "alloy-primitives", @@ -5185,7 +5185,7 @@ dependencies = [ [[package]] name = "base-proof-driver" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-evm", @@ -5205,7 +5205,7 @@ dependencies = [ [[package]] name = "base-proof-executor" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -5239,7 +5239,7 @@ dependencies = [ [[package]] name = "base-proof-host" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -5280,7 +5280,7 @@ dependencies = [ [[package]] name = "base-proof-mpt" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -5301,7 +5301,7 @@ dependencies = [ [[package]] name = "base-proof-preimage" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "async-channel", @@ -5315,7 +5315,7 @@ dependencies = [ [[package]] name = "base-proof-primitives" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-eips 2.0.5", @@ -5333,7 +5333,7 @@ dependencies = [ [[package]] name = "base-proof-rpc" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-network 2.0.5", @@ -5360,7 +5360,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-build-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "cargo_metadata 0.18.1", "sp1-build", @@ -5368,7 +5368,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-client-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -5405,7 +5405,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-elfs" -version = "1.0.0" +version = "1.0.1" dependencies = [ "serde", "sha2 0.10.9", @@ -5414,7 +5414,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-ethereum-client-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-genesis 2.0.5", "anyhow", @@ -5431,7 +5431,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-ethereum-host-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -5450,7 +5450,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-host-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", @@ -5504,7 +5504,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-proof-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "base-proof-succinct-elfs", @@ -5524,7 +5524,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-prove" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-contract 2.0.5", "alloy-eips 2.0.5", @@ -5559,7 +5559,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-scripts" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-network 2.0.5", @@ -5591,7 +5591,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-signer-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -5612,7 +5612,7 @@ dependencies = [ [[package]] name = "base-proof-succinct-validity" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-eips 2.0.5", "alloy-primitives", @@ -5651,7 +5651,7 @@ dependencies = [ [[package]] name = "base-proof-tee-nitro-attestation-prover" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "anyhow", @@ -5669,7 +5669,7 @@ dependencies = [ [[package]] name = "base-proof-tee-nitro-enclave" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-chains", "alloy-eips 2.0.5", @@ -5702,7 +5702,7 @@ dependencies = [ [[package]] name = "base-proof-tee-nitro-host" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-signer 2.0.5", @@ -5726,7 +5726,7 @@ dependencies = [ [[package]] name = "base-proof-tee-nitro-verifier" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -5743,7 +5743,7 @@ dependencies = [ [[package]] name = "base-proof-tee-registrar" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -5780,7 +5780,7 @@ dependencies = [ [[package]] name = "base-proof-tee-registrar-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-provider 2.0.5", @@ -5810,7 +5810,7 @@ dependencies = [ [[package]] name = "base-proofs-extension" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-common-consensus", "base-execution-exex", @@ -5829,7 +5829,7 @@ dependencies = [ [[package]] name = "base-proposer" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -5867,7 +5867,7 @@ dependencies = [ [[package]] name = "base-proposer-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-cli-utils", "base-proposer", @@ -5878,7 +5878,7 @@ dependencies = [ [[package]] name = "base-protocol" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloc-no-stdlib", "alloy-consensus 2.0.5", @@ -5914,7 +5914,7 @@ dependencies = [ [[package]] name = "base-prover-nitro-enclave" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-proof-tee-nitro-enclave", "eyre", @@ -5923,7 +5923,7 @@ dependencies = [ [[package]] name = "base-prover-nitro-host" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "base-cli-utils", @@ -5940,7 +5940,7 @@ dependencies = [ [[package]] name = "base-prover-zk" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-cli-utils", "base-proof-succinct-host-utils", @@ -5968,14 +5968,14 @@ dependencies = [ [[package]] name = "base-reth-cli" -version = "1.0.0" +version = "1.0.1" dependencies = [ "reth-node-core", ] [[package]] name = "base-reth-node" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-cli-utils", "base-execution-cli", @@ -5986,11 +5986,11 @@ dependencies = [ [[package]] name = "base-ring-buffer" -version = "1.0.0" +version = "1.0.1" [[package]] name = "base-runtime" -version = "1.0.0" +version = "1.0.1" dependencies = [ "futures", "rand 0.9.4", @@ -6002,7 +6002,7 @@ dependencies = [ [[package]] name = "base-snapshotter" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "async-trait", @@ -6027,7 +6027,7 @@ dependencies = [ [[package]] name = "base-snapshotter-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "aws-config", @@ -6043,7 +6043,7 @@ dependencies = [ [[package]] name = "base-snark-e2e" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-zk-service", "tokio", @@ -6053,7 +6053,7 @@ dependencies = [ [[package]] name = "base-test-utils" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", @@ -6071,7 +6071,7 @@ dependencies = [ [[package]] name = "base-tx-forwarding" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-execution-txpool", "base-node-runner", @@ -6081,7 +6081,7 @@ dependencies = [ [[package]] name = "base-tx-manager" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -6115,7 +6115,7 @@ dependencies = [ [[package]] name = "base-txpool-rpc" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "base-node-runner", @@ -6132,7 +6132,7 @@ dependencies = [ [[package]] name = "base-txpool-tracing" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -6163,7 +6163,7 @@ dependencies = [ [[package]] name = "base-witness-diff" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-provider 2.0.5", @@ -6189,7 +6189,7 @@ checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" [[package]] name = "base-zk-client" -version = "1.0.0" +version = "1.0.1" dependencies = [ "async-trait", "prost 0.14.3", @@ -6205,7 +6205,7 @@ dependencies = [ [[package]] name = "base-zk-db" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "chrono", @@ -6221,7 +6221,7 @@ dependencies = [ [[package]] name = "base-zk-outbox" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "async-trait", @@ -6234,7 +6234,7 @@ dependencies = [ [[package]] name = "base-zk-service" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-primitives", "alloy-provider 2.0.5", @@ -6320,7 +6320,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "basectl" -version = "1.0.0" +version = "1.0.1" dependencies = [ "anyhow", "basectl-cli", @@ -6332,7 +6332,7 @@ dependencies = [ [[package]] name = "basectl-cli" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-contract 2.0.5", @@ -6368,7 +6368,7 @@ dependencies = [ [[package]] name = "based" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-primitives", @@ -6384,7 +6384,7 @@ dependencies = [ [[package]] name = "based-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "base-cli-utils", "based", @@ -8463,7 +8463,7 @@ dependencies = [ [[package]] name = "devnet" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -11113,7 +11113,7 @@ dependencies = [ [[package]] name = "ingress-rpc" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-provider 2.0.5", "anyhow", @@ -11132,7 +11132,7 @@ dependencies = [ [[package]] name = "ingress-rpc-lib" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -24442,7 +24442,7 @@ dependencies = [ [[package]] name = "websocket-proxy" -version = "1.0.0" +version = "1.0.1" dependencies = [ "axum 0.8.9", "backoff", @@ -24463,7 +24463,7 @@ dependencies = [ [[package]] name = "websocket-proxy-bin" -version = "1.0.0" +version = "1.0.1" dependencies = [ "axum 0.8.9", "base-cli-utils", diff --git a/Cargo.toml b/Cargo.toml index 5ee4d82d05..4c08802783 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "1.0.0" +version = "1.0.1" edition = "2024" rust-version = "1.93" license = "MIT" From 955a18b189196c6f663235140180e5bcf51cd044 Mon Sep 17 00:00:00 2001 From: refcell Date: Thu, 4 Jun 2026 13:26:59 +0200 Subject: [PATCH 2/3] fix(consensus): report derivation origin as current l1 (#3225) --- actions/harness/tests/sync_status.rs | 38 +++++++ crates/consensus/service/README.md | 2 +- .../service/src/actors/derivation/actor.rs | 25 ++++- .../src/actors/derivation/delegated/actor.rs | 14 ++- .../src/actors/l1_watcher/query_processor.rs | 30 +++--- crates/consensus/service/src/service/node.rs | 5 +- .../tests/actors/verifier_conf_depth.rs | 102 +++++++++++++++--- 7 files changed, 176 insertions(+), 40 deletions(-) create mode 100644 actions/harness/tests/sync_status.rs diff --git a/actions/harness/tests/sync_status.rs b/actions/harness/tests/sync_status.rs new file mode 100644 index 0000000000..7ca046045a --- /dev/null +++ b/actions/harness/tests/sync_status.rs @@ -0,0 +1,38 @@ +//! Action tests for consensus sync-status L1 reporting. + +use std::sync::Arc; + +use base_action_harness::{ActionL1BlockFetcher, ActionTestHarness, SharedL1Chain}; +use base_consensus_node::L1WatcherQueryExecutor; +use base_consensus_rpc::L1WatcherQueries; +use tokio::sync::{oneshot, watch}; + +#[tokio::test] +async fn sync_status_current_l1_tracks_verifier_depth_origin_not_l1_head() { + const L1_HEAD: u64 = 100; + const VERIFIER_L1_CONFS: u64 = 4; + + let mut harness = ActionTestHarness::default(); + harness.mine_l1_blocks(L1_HEAD); + + let l1_chain = SharedL1Chain::from_blocks(harness.l1.chain().to_vec()); + let derivation_origin = harness.l1.block_info_at(L1_HEAD - VERIFIER_L1_CONFS); + let live_head = harness.l1.tip_info(); + let (_derivation_origin_tx, derivation_origin_rx) = watch::channel(Some(derivation_origin)); + let executor = L1WatcherQueryExecutor::new( + Arc::new(harness.rollup_config.clone()), + Arc::new(ActionL1BlockFetcher::new(l1_chain)), + derivation_origin_rx, + ); + let (sender, receiver) = oneshot::channel(); + + executor.execute(L1WatcherQueries::L1State(sender)).await; + + let state = receiver.await.expect("state query should return a response"); + assert_eq!(state.current_l1, Some(derivation_origin)); + assert_eq!(state.head_l1, Some(live_head)); + assert_ne!( + state.current_l1, state.head_l1, + "verifier_l1_confs should make current_l1 report derivation origin, not live L1 head" + ); +} diff --git a/crates/consensus/service/README.md b/crates/consensus/service/README.md index 92bc3e1af7..94c09814d9 100644 --- a/crates/consensus/service/README.md +++ b/crates/consensus/service/README.md @@ -117,7 +117,7 @@ The `GossipTransport` trait abstracts the transport backend. The production impl The L1 watcher actor is the service's source of truth for L1 chain state. It runs two concurrent streams: `head_stream` polls `eth_getBlockByNumber("latest")` every four seconds and `finalized_stream` polls `eth_getBlockByNumber("finalized")` at the interval configured in `L1Config`. Both streams are deduplicated — they only emit when the block changes. -On each new head, the watcher computes the confirmation-delayed block number as `head.number - verifier_l1_confs`. If the delayed number is reachable it fetches that block by number via `AlloyL1BlockFetcher::get_block()` and sends it to the derivation actor as a `ProcessL1HeadUpdateRequest`. It also broadcasts the real head through the `watch::Sender>` and stores the real head number in the shared `Arc` so the `ConfDepthProvider` used by the derivation pipeline can gate its own L1 lookups. +On each new head, the watcher computes the confirmation-delayed block number as `head.number - verifier_l1_confs`. If the delayed number is reachable it fetches that block by number via `AlloyL1BlockFetcher::get_block()` and sends it to the derivation actor as a `ProcessL1HeadUpdateRequest`. It also broadcasts the real head through the `watch::Sender>` and stores the real head number in the shared `Arc` so the `ConfDepthProvider` used by the derivation pipeline can gate its own L1 lookups. The derivation actor publishes the pipeline's L1 origin separately, and `optimism_syncStatus.current_l1` is served from that derivation-origin signal rather than from the raw L1 head. Log fetching runs on the same head-update path. The watcher calls `AlloyL1BlockFetcher::get_logs()` with a filter for `SystemConfigLog` events from the rollup config's L1 system config address. If the logs contain a `SystemConfigUpdate::UnsafeBlockSigner` event it extracts the new signer address and sends it to the network actor via the `block_signer_sender` channel. The log fetch retries up to ten times with exponential backoff from 50 ms to 500 ms before the actor returns an error. diff --git a/crates/consensus/service/src/actors/derivation/actor.rs b/crates/consensus/service/src/actors/derivation/actor.rs index 06931ee9ea..2773907433 100644 --- a/crates/consensus/service/src/actors/derivation/actor.rs +++ b/crates/consensus/service/src/actors/derivation/actor.rs @@ -11,7 +11,10 @@ use base_consensus_derive::{ use base_consensus_safedb::SafeHeadListener; use base_protocol::{AttributesWithParent, BlockInfo}; use thiserror::Error; -use tokio::{select, sync::mpsc}; +use tokio::{ + select, + sync::{mpsc, watch}, +}; use tokio_util::sync::{CancellationToken, WaitForCancellationFuture}; use crate::{ @@ -40,6 +43,8 @@ where /// The derivation pipeline. pipeline: PipelineSignalReceiver, + /// Publishes the L1 origin the derivation pipeline has advanced to. + derivation_origin_tx: watch::Sender>, /// The state machine controlling when derivation can occur. derivation_state_machine: DerivationStateMachine, /// The [`L2Finalizer`] tracks derived L2 blocks awaiting finalization. @@ -81,10 +86,12 @@ where inbound_request_rx: mpsc::Receiver, pipeline: PipelineSignalReceiver, safe_head_listener: Arc, + derivation_origin_tx: watch::Sender>, ) -> Self { Self { cancellation_token, pipeline, + derivation_origin_tx, inbound_request_rx, engine_client, derivation_state_machine: DerivationStateMachine::default(), @@ -94,6 +101,10 @@ where } } + fn publish_derivation_origin(&self) { + self.derivation_origin_tx.send_replace(self.pipeline.origin()); + } + /// Handles a [`Signal`] received over the derivation signal receiver channel. async fn signal(&mut self, signal: Signal) { if let Signal::Reset(ResetSignal { l2_safe_head: _reset_safe_head }) = signal { @@ -123,7 +134,10 @@ where } match self.pipeline.signal(signal).await { - Ok(_) => info!(target: "derivation", ?signal, "[SIGNAL] Executed Successfully"), + Ok(_) => { + self.publish_derivation_origin(); + info!(target: "derivation", ?signal, "[SIGNAL] Executed Successfully"); + } Err(e) => { error!(target: "derivation", ?e, ?signal, "Failed to signal derivation pipeline") } @@ -147,10 +161,11 @@ where StepResult::PreparedAttributes => { /* continue; attributes will be sent off. */ } StepResult::AdvancedOrigin => { let origin = - self.pipeline.origin().ok_or(PipelineError::MissingOrigin.crit())?.number; + self.pipeline.origin().ok_or(PipelineError::MissingOrigin.crit())?; - Metrics::derivation_l1_origin().absolute(origin); - debug!(target: "derivation", l1_block = origin, "Advanced L1 origin"); + Metrics::derivation_l1_origin().absolute(origin.number); + self.derivation_origin_tx.send_replace(Some(origin)); + debug!(target: "derivation", l1_block = origin.number, "Advanced L1 origin"); } StepResult::OriginAdvanceErr(e) | StepResult::StepFailed(e) => { match e { diff --git a/crates/consensus/service/src/actors/derivation/delegated/actor.rs b/crates/consensus/service/src/actors/derivation/delegated/actor.rs index 5a14db0ec2..3f94174ba5 100644 --- a/crates/consensus/service/src/actors/derivation/delegated/actor.rs +++ b/crates/consensus/service/src/actors/derivation/delegated/actor.rs @@ -2,9 +2,13 @@ use alloy_primitives::BlockHash; use async_trait::async_trait; use base_consensus_derive::ChainProvider; use base_consensus_providers::AlloyChainProvider; -use base_protocol::{L2BlockInfo, SyncStatus}; +use base_protocol::{BlockInfo, L2BlockInfo, SyncStatus}; use thiserror::Error; -use tokio::{select, sync::mpsc, time}; +use tokio::{ + select, + sync::{mpsc, watch}, + time, +}; use tokio_util::sync::{CancellationToken, WaitForCancellationFuture}; use crate::{ @@ -37,6 +41,8 @@ where derivation_delegate_provider: DerivationDelegateClient, /// L1 provider for validating L1 info for derivation delegation. l1_provider: AlloyChainProvider, + /// Publishes the delegate-reported L1 derivation cursor. + derivation_origin_tx: watch::Sender>, /// The engine's L2 safe head, according to updates from the Engine. engine_l2_safe_head: L2BlockInfo, @@ -65,6 +71,7 @@ where inbound_request_rx: mpsc::Receiver, derivation_delegate_provider: DerivationDelegateClient, l1_provider: AlloyChainProvider, + derivation_origin_tx: watch::Sender>, ) -> Self { Self { cancellation_token, @@ -72,6 +79,7 @@ where engine_client, derivation_delegate_provider, l1_provider, + derivation_origin_tx, engine_l2_safe_head: L2BlockInfo::default(), has_engine_sync_completed: false, } @@ -167,6 +175,8 @@ where return Ok(()); } + self.derivation_origin_tx.send_replace(Some(sync_status.current_l1)); + self.engine_client .send_safe_l2_signal(sync_status.safe_l2.into()) .await diff --git a/crates/consensus/service/src/actors/l1_watcher/query_processor.rs b/crates/consensus/service/src/actors/l1_watcher/query_processor.rs index 1fd0b678d3..38671f2c3d 100644 --- a/crates/consensus/service/src/actors/l1_watcher/query_processor.rs +++ b/crates/consensus/service/src/actors/l1_watcher/query_processor.rs @@ -28,8 +28,8 @@ where rollup_config: Arc, /// The L1 provider used for live block lookups. l1_provider: Arc, - /// Receiver for the most recent L1 head observed by the watcher actor. - latest_head: watch::Receiver>, + /// Receiver for the most recent L1 origin reached by derivation. + derivation_origin: watch::Receiver>, } impl Clone for L1WatcherQueryExecutor @@ -40,7 +40,7 @@ where Self { rollup_config: Arc::clone(&self.rollup_config), l1_provider: Arc::clone(&self.l1_provider), - latest_head: self.latest_head.clone(), + derivation_origin: self.derivation_origin.clone(), } } } @@ -53,9 +53,9 @@ where pub const fn new( rollup_config: Arc, l1_provider: Arc, - latest_head: watch::Receiver>, + derivation_origin: watch::Receiver>, ) -> Self { - Self { rollup_config, l1_provider, latest_head } + Self { rollup_config, l1_provider, derivation_origin } } /// Executes a single query. @@ -102,7 +102,7 @@ where query_started_at: Instant, sender: oneshot::Sender, ) { - let current_l1 = *self.latest_head.borrow(); + let current_l1 = *self.derivation_origin.borrow(); let (head_l1, finalized_l1, safe_l1) = tokio::join!( self.query_block(BlockId::latest(), "latest"), self.query_block(BlockId::finalized(), "finalized"), @@ -182,14 +182,14 @@ where rollup_config: Arc, l1_provider: L1Provider, inbound_queries: mpsc::Receiver, - latest_head: watch::Receiver>, + derivation_origin: watch::Receiver>, cancellation: CancellationToken, ) -> Self { Self { executor: L1WatcherQueryExecutor::new( rollup_config, Arc::new(l1_provider), - latest_head, + derivation_origin, ), inbound_queries, cancellation, @@ -334,19 +334,19 @@ mod tests { fn executor( fetcher: MockFetcher, - current_l1: Option, + derivation_origin: Option, ) -> L1WatcherQueryExecutor { - let (_latest_head_tx, latest_head_rx) = watch::channel(current_l1); + let (_derivation_origin_tx, derivation_origin_rx) = watch::channel(derivation_origin); L1WatcherQueryExecutor::new( Arc::new(RollupConfig::default()), Arc::new(fetcher), - latest_head_rx, + derivation_origin_rx, ) } #[tokio::test] - async fn l1_state_query_returns_live_state() { - let current_l1 = Some(MockFetcher::block_info(11)); + async fn l1_state_query_uses_derivation_origin_for_current_l1() { + let current_l1 = Some(MockFetcher::block_info(7)); let executor = executor(MockFetcher::with_delay(Duration::ZERO), current_l1); let (sender, receiver) = oneshot::channel(); @@ -375,14 +375,14 @@ mod tests { #[tokio::test] async fn query_processor_handles_multiple_queries_concurrently() { let fetcher = MockFetcher::with_delay(Duration::from_millis(20)); - let (_latest_head_tx, latest_head_rx) = watch::channel(None); + let (_derivation_origin_tx, derivation_origin_rx) = watch::channel(None); let (query_tx, query_rx) = mpsc::channel(16); let cancellation = CancellationToken::new(); let processor = L1WatcherQueryProcessor::new( Arc::new(RollupConfig::default()), fetcher, query_rx, - latest_head_rx, + derivation_origin_rx, cancellation.clone(), ) .with_query_concurrency(2); diff --git a/crates/consensus/service/src/service/node.rs b/crates/consensus/service/src/service/node.rs index 58cf50dc17..62c89fa3fe 100644 --- a/crates/consensus/service/src/service/node.rs +++ b/crates/consensus/service/src/service/node.rs @@ -396,6 +396,7 @@ impl RollupNode { let (engine_actor_request_tx, engine_actor_request_rx) = mpsc::channel(1024); let (engine_rpc_request_tx, engine_rpc_request_rx) = mpsc::channel(1024); let (unsafe_head_tx, unsafe_head_rx) = watch::channel(L2BlockInfo::default()); + let (derivation_origin_tx, derivation_origin_rx) = watch::channel(None); let (checkpoint_request_tx, checkpoint_request_rx) = mpsc::channel(1024); let checkpoint_db = CheckpointDB::open(&self.checkpoint_path) .map_err(|e| format!("failed to open checkpoint database: {e}"))?; @@ -453,6 +454,7 @@ impl RollupNode { derivation_actor_request_rx, provider, l1_provider, + derivation_origin_tx, ))) } else { ConfiguredDerivationActor::Normal(Box::new(DerivationActor::<_, P>::new( @@ -463,6 +465,7 @@ impl RollupNode { derivation_actor_request_rx, pipeline, safe_head_listener, + derivation_origin_tx, ))) }; @@ -526,7 +529,7 @@ impl RollupNode { Arc::clone(&self.config), AlloyL1BlockFetcher(self.l1_config.engine_provider.clone()), l1_query_rx, - l1_head_updates_tx.subscribe(), + derivation_origin_rx, cancellation.clone(), ); diff --git a/crates/consensus/service/tests/actors/verifier_conf_depth.rs b/crates/consensus/service/tests/actors/verifier_conf_depth.rs index 1d7c28dda6..a04cc8711b 100644 --- a/crates/consensus/service/tests/actors/verifier_conf_depth.rs +++ b/crates/consensus/service/tests/actors/verifier_conf_depth.rs @@ -15,19 +15,22 @@ use std::{ }, }; +use alloy_consensus::Header; use alloy_eips::{BlockId, BlockNumberOrTag}; -use alloy_primitives::B256; -use alloy_rpc_types_eth::{Block, Filter, Log}; +use alloy_primitives::{B256, Bloom, U256}; +use alloy_rpc_types_eth::{Block, Filter, Header as RpcHeader, Log}; use async_trait::async_trait; use base_common_genesis::RollupConfig; use base_consensus_derive::{ChainProvider, PipelineErrorKind}; use base_consensus_node::{ - DerivationClientResult, L1BlockFetcher, L1WatcherActor, L1WatcherDerivationClient, NodeActor, + DerivationClientResult, L1BlockFetcher, L1WatcherActor, L1WatcherDerivationClient, + L1WatcherQueryExecutor, NodeActor, }; use base_consensus_providers::{AlloyChainProviderError, ConfDepthProvider, L1HeadNumber}; +use base_consensus_rpc::L1WatcherQueries; use base_protocol::BlockInfo; use futures::Stream; -use tokio::sync::watch; +use tokio::sync::{oneshot, watch}; use tokio_util::sync::CancellationToken; // --------------------------------------------------------------------------- @@ -45,6 +48,27 @@ impl MockL1Fetcher { fn with_blocks(blocks: impl IntoIterator) -> Self { Self { blocks: blocks.into_iter().map(|b| (b.number, b)).collect() } } + + fn block_info_for_id(&self, id: BlockId) -> Option { + match id { + BlockId::Number(BlockNumberOrTag::Number(number)) => self.blocks.get(&number).copied(), + BlockId::Number(BlockNumberOrTag::Latest) => { + self.blocks.values().max_by_key(|block| block.number).copied() + } + _ => None, + } + } + + fn block(block_info: BlockInfo) -> Block { + Block::empty(RpcHeader::new(Header { + parent_hash: block_info.parent_hash, + number: block_info.number, + timestamp: block_info.timestamp, + logs_bloom: Bloom::ZERO, + difficulty: U256::ZERO, + ..Default::default() + })) + } } #[async_trait] @@ -56,16 +80,7 @@ impl L1BlockFetcher for MockL1Fetcher { } async fn get_block(&self, id: BlockId) -> Result, Self::Error> { - match id { - BlockId::Number(BlockNumberOrTag::Number(number)) => { - if self.blocks.contains_key(&number) { - Ok(Some(Block::default())) - } else { - Ok(None) - } - } - _ => Ok(None), - } + Ok(self.block_info_for_id(id).map(Self::block)) } } @@ -240,6 +255,61 @@ async fn l1_head_atomic_holds_real_head_not_delayed() { // Meanwhile, derivation should have received delayed heads. let heads = derivation_client.heads.lock().unwrap().clone(); assert_eq!(heads.len(), 3, "all three heads should have been forwarded to derivation"); - // Each head is fetched as Block::default() which maps to block number 0. - // The important thing is that derivation received delayed blocks, not the real heads. + assert_eq!( + heads.iter().map(|head| head.number).collect::>(), + vec![10, 20, 40], + "derivation should receive heads delayed by verifier_l1_confs" + ); +} + +#[tokio::test] +async fn sync_status_reports_derivation_origin_separately_from_live_head_with_verifier_confs() { + let conf_depth: u64 = 4; + let l1_head_number: L1HeadNumber = Arc::new(AtomicU64::new(0)); + let blocks: Vec = (90..=100).map(block_at).collect(); + let fetcher = MockL1Fetcher::with_blocks(blocks.clone()); + + let derivation_client = RecordingDerivationClient::default(); + let (l1_head_tx, _l1_head_rx) = watch::channel(None); + let cancel = CancellationToken::new(); + let head_stream: BoxedBlockStream = Box::pin(futures::stream::iter(vec![block_at(100)])); + let finalized_stream: BoxedBlockStream = Box::pin(futures::stream::pending()); + + let actor = L1WatcherActor::new( + Arc::new(RollupConfig::default()), + fetcher, + l1_head_tx, + derivation_client.clone(), + None, + cancel, + head_stream, + finalized_stream, + conf_depth, + Arc::clone(&l1_head_number), + ); + let _ = actor.start(()).await; + + assert_eq!(l1_head_number.load(Ordering::Relaxed), 100); + let heads = derivation_client.heads.lock().unwrap().clone(); + let derivation_origin = heads.last().copied().expect("derivation should receive a head"); + assert_eq!(derivation_origin.number, 96); + + let (_derivation_origin_tx, derivation_origin_rx) = watch::channel(Some(derivation_origin)); + let executor = L1WatcherQueryExecutor::new( + Arc::new(RollupConfig::default()), + Arc::new(MockL1Fetcher::with_blocks(blocks)), + derivation_origin_rx, + ); + let (sender, receiver) = oneshot::channel(); + + executor.execute(L1WatcherQueries::L1State(sender)).await; + + let state = receiver.await.expect("state query should return a response"); + assert_eq!(state.current_l1.map(|block| block.number), Some(96)); + assert_eq!(state.head_l1.map(|block| block.number), Some(100)); + assert_ne!( + state.current_l1.map(|block| block.number), + state.head_l1.map(|block| block.number), + "verifier_l1_confs should make sync status expose derivation origin separately from live head" + ); } From f4c097001ba72b16ec10ed556cbbb3e38e2f5508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ste=CC=81phane=20Duchesneau?= Date: Wed, 10 Jun 2026 15:55:47 -0400 Subject: [PATCH 3/3] bump to 1.0.1 in changelog --- CHANGELOG.sf.md | 9 +++++++++ Cargo.lock | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.sf.md b/CHANGELOG.sf.md index 9a4eed3f11..1fc3070c5b 100644 --- a/CHANGELOG.sf.md +++ b/CHANGELOG.sf.md @@ -1,3 +1,12 @@ +## v1.0.1-fh + +* Bumped base to `v1.0.1` +* Fixes on flash blocks: fetch fresh state on every block to avoid mismatches that cause UNDOs + +## v1.0.0-fh + +* Bumped base to `v1.0.0` + ## v0.9.1-fh-1 * Fixed flash blocks to arrive in the right order and be 100% identical to the canonical blocks diff --git a/Cargo.lock b/Cargo.lock index 5cc01d496d..1f156cda37 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4503,7 +4503,7 @@ dependencies = [ [[package]] name = "base-execution-firehose" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-evm", @@ -4712,7 +4712,7 @@ dependencies = [ [[package]] name = "base-firehose-flashblocks" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5", @@ -4757,7 +4757,7 @@ dependencies = [ [[package]] name = "base-firehose-tests" -version = "1.0.0" +version = "1.0.1" dependencies = [ "alloy-consensus 2.0.5", "alloy-eips 2.0.5",