diff --git a/Cargo.lock b/Cargo.lock index 11e29e1f..4b622436 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -282,7 +282,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -405,7 +405,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -421,7 +421,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "syn-solidity", "tiny-keccak", ] @@ -437,7 +437,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "syn-solidity", ] @@ -733,7 +733,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -744,7 +744,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -771,7 +771,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -830,7 +830,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -944,7 +944,7 @@ checksum = "523363cbe1df49b68215efdf500b103ac3b0fb4836aed6d15689a076eadb8fff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1108,7 +1108,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1306,7 +1306,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1317,7 +1317,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1382,7 +1382,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1403,7 +1403,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "unicode-xid", ] @@ -1496,7 +1496,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -1664,7 +1664,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2216,7 +2216,7 @@ dependencies = [ "kona-common", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2551,7 +2551,7 @@ checksum = "1bb5c1d8184f13f7d0ccbeeca0def2f9a181bce2624302793005f5ca8aa62e5e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2730,7 +2730,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2767,8 +2767,7 @@ checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" [[package]] name = "op-alloy-consensus" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d49163f952491820088dd0e66f3a35d63337c3066eceff0a931bf83a8e2101" +source = "git+https://github.com/alloy-rs/op-alloy?branch=rf/feat/sys-config-accessor#68901eddba61716d79ea8b11a44bb984b330e0f0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2783,8 +2782,7 @@ dependencies = [ [[package]] name = "op-alloy-genesis" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e46c2ab105f679f0cbfbc3fb762f3456d4b8556c841e667fc8f3c2226eb6c1e" +source = "git+https://github.com/alloy-rs/op-alloy?branch=rf/feat/sys-config-accessor#68901eddba61716d79ea8b11a44bb984b330e0f0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2797,8 +2795,7 @@ dependencies = [ [[package]] name = "op-alloy-protocol" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c439457b2a1791325603fc18a94cc175e0b4b1127f11ff8a45071f05d044dcb" +source = "git+https://github.com/alloy-rs/op-alloy?branch=rf/feat/sys-config-accessor#68901eddba61716d79ea8b11a44bb984b330e0f0" dependencies = [ "alloy-consensus", "alloy-eips", @@ -2814,8 +2811,7 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a42a5ac4e07ed226b6a2aeefaad9b2cc7ec160e372ba626a4214d681a355fc2" +source = "git+https://github.com/alloy-rs/op-alloy?branch=rf/feat/sys-config-accessor#68901eddba61716d79ea8b11a44bb984b330e0f0" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -2848,7 +2844,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -2986,7 +2982,7 @@ checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3130,7 +3126,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3210,7 +3206,7 @@ checksum = "6ff7ff745a347b87471d859a377a9a404361e7efc2a971d73424a6d183c0fc77" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3236,7 +3232,7 @@ checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3563,7 +3559,7 @@ checksum = "09cb82b74b4810f07e460852c32f522e979787691b0b7b7439fe473e49d49b2f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3867,14 +3863,14 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] name = "serde_json" -version = "1.0.131" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67d42a0bd4ac281beff598909bb56a86acaf979b84483e1c79c10dcaf98f8cf3" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "indexmap 2.6.0", "itoa", @@ -3891,7 +3887,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -3933,7 +3929,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4103,7 +4099,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4161,9 +4157,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" dependencies = [ "proc-macro2", "quote", @@ -4179,7 +4175,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4262,7 +4258,7 @@ checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4272,7 +4268,7 @@ source = "git+https://github.com/quartiq/thiserror?branch=no-std#e779e1b70023cee dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4385,7 +4381,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4496,7 +4492,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4712,7 +4708,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "wasm-bindgen-shared", ] @@ -4746,7 +4742,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4969,7 +4965,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] [[package]] @@ -4989,5 +4985,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.82", ] diff --git a/Cargo.toml b/Cargo.toml index 2a3bf8d3..fff46502 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,12 @@ panic = "abort" codegen-units = 1 lto = "fat" +[patch.crates-io] +op-alloy-genesis = { git = "https://github.com/alloy-rs/op-alloy", branch = "rf/feat/sys-config-accessor" } +op-alloy-protocol = { git = "https://github.com/alloy-rs/op-alloy", branch = "rf/feat/sys-config-accessor" } +op-alloy-consensus = { git = "https://github.com/alloy-rs/op-alloy", branch = "rf/feat/sys-config-accessor" } +op-alloy-rpc-types-engine = { git = "https://github.com/alloy-rs/op-alloy", branch = "rf/feat/sys-config-accessor" } + [workspace.dependencies] # Workspace kona-mpt = { path = "crates/mpt", version = "0.0.3", default-features = false } diff --git a/crates/derive/src/attributes/mod.rs b/crates/derive/src/attributes/mod.rs index 3735e86c..16d8d062 100644 --- a/crates/derive/src/attributes/mod.rs +++ b/crates/derive/src/attributes/mod.rs @@ -9,12 +9,12 @@ use crate::{ use alloc::{boxed::Box, fmt::Debug, string::ToString, sync::Arc, vec, vec::Vec}; use alloy_consensus::{Eip658Value, Receipt}; use alloy_eips::{eip2718::Encodable2718, BlockNumHash}; -use alloy_primitives::{address, Address, Bytes, B256, B64}; +use alloy_primitives::{address, Address, Bytes, B256}; use alloy_rlp::Encodable; use alloy_rpc_types_engine::PayloadAttributes; use async_trait::async_trait; use op_alloy_consensus::Hardforks; -use op_alloy_genesis::{RollupConfig, SystemConfig}; +use op_alloy_genesis::RollupConfig; use op_alloy_protocol::{decode_deposit, L1BlockInfoTx, L2BlockInfo, DEPOSIT_EVENT_ABI_HASH}; use op_alloy_rpc_types_engine::OpPayloadAttributes; @@ -195,41 +195,15 @@ where gas_limit: Some(u64::from_be_bytes( alloy_primitives::U64::from(sys_config.gas_limit).to_be_bytes(), )), - eip_1559_params: eip_1559_params_from_system_config( + eip_1559_params: sys_config.eip_1559_params( &self.rollup_cfg, l2_parent.block_info.timestamp, next_l2_time, - &sys_config, ), }) } } -/// Returns the eip1559 parameters from a [SystemConfig] encoded as a [B64]. -fn eip_1559_params_from_system_config( - rollup_config: &RollupConfig, - parent_timestamp: u64, - next_timestamp: u64, - sys_config: &SystemConfig, -) -> Option { - let is_holocene = rollup_config.is_holocene_active(next_timestamp); - - // For the first holocene block, a zero'd out B64 is returned to signal the - // execution layer to use the canyon base fee parameters. Else, the system - // config's eip1559 parameters are encoded as a B64. - if is_holocene && !rollup_config.is_holocene_active(parent_timestamp) { - Some(B64::ZERO) - } else { - is_holocene.then_some(B64::from_slice( - &[ - sys_config.eip1559_denominator.unwrap_or_default().to_be_bytes(), - sys_config.eip1559_elasticity.unwrap_or_default().to_be_bytes(), - ] - .concat(), - )) - } -} - /// Derive deposits as `Vec` for transaction receipts. /// /// Successful deposits must be emitted by the deposit contract and have the correct event @@ -325,74 +299,6 @@ mod tests { } } - #[test] - fn test_eip_1559_params_from_system_config_none() { - let rollup_config = RollupConfig::default(); - let sys_config = SystemConfig::default(); - assert_eq!(eip_1559_params_from_system_config(&rollup_config, 0, 0, &sys_config), None); - } - - #[test] - fn test_eip_1559_params_from_system_config_some() { - let rollup_config = RollupConfig { holocene_time: Some(0), ..Default::default() }; - let sys_config = SystemConfig { - eip1559_denominator: Some(1), - eip1559_elasticity: None, - ..Default::default() - }; - let expected = Some(B64::from_slice(&[1u32.to_be_bytes(), 0u32.to_be_bytes()].concat())); - assert_eq!(eip_1559_params_from_system_config(&rollup_config, 0, 0, &sys_config), expected); - } - - #[test] - fn test_eip_1559_params_from_system_config() { - let rollup_config = RollupConfig { holocene_time: Some(0), ..Default::default() }; - let sys_config = SystemConfig { - eip1559_denominator: Some(1), - eip1559_elasticity: Some(2), - ..Default::default() - }; - let expected = Some(B64::from_slice(&[1u32.to_be_bytes(), 2u32.to_be_bytes()].concat())); - assert_eq!(eip_1559_params_from_system_config(&rollup_config, 0, 0, &sys_config), expected); - } - - #[test] - fn test_default_eip_1559_params_from_system_config() { - let rollup_config = RollupConfig { holocene_time: Some(0), ..Default::default() }; - let sys_config = SystemConfig { - eip1559_denominator: None, - eip1559_elasticity: None, - ..Default::default() - }; - let expected = Some(B64::ZERO); - assert_eq!(eip_1559_params_from_system_config(&rollup_config, 0, 0, &sys_config), expected); - } - - #[test] - fn test_default_eip_1559_params_from_system_config_pre_holocene() { - let rollup_config = RollupConfig::default(); - let sys_config = SystemConfig { - eip1559_denominator: Some(1), - eip1559_elasticity: Some(2), - ..Default::default() - }; - assert_eq!(eip_1559_params_from_system_config(&rollup_config, 0, 0, &sys_config), None); - } - - #[test] - fn test_default_eip_1559_params_first_block_holocene() { - let rollup_config = RollupConfig { holocene_time: Some(2), ..Default::default() }; - let sys_config = SystemConfig { - eip1559_denominator: Some(1), - eip1559_elasticity: Some(2), - ..Default::default() - }; - assert_eq!( - eip_1559_params_from_system_config(&rollup_config, 0, 2, &sys_config), - Some(B64::ZERO) - ); - } - #[tokio::test] async fn test_derive_deposits_empty() { let receipts = vec![];