diff --git a/Cargo.lock b/Cargo.lock index c3855b3..5e48a45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -88,14 +88,14 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50ab0cd8afe573d1f7dc2353698a51b1f93aec362c8211e28cfd3948c6adba39" +checksum = "a547705d5c1b42575a0542bae2ba45bc62a6154be86611afaef1c0ab5c38598e" dependencies = [ "alloy-consensus", "alloy-contract", "alloy-core", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-network", "alloy-provider", "alloy-rpc-client", @@ -121,14 +121,14 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f16daaf7e1f95f62c6c3bf8a3fc3d78b08ae9777810c0bb5e94966c7cd57ef0" +checksum = "ae8c24c95e90c1608c2d91cff1b451d796474168d3310ccc8b7cd12502ca8169" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-trie", "alloy-tx-macros", "arbitrary", @@ -149,24 +149,24 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "118998d9015332ab1b4720ae1f1e3009491966a0349938a1f43ff45a8a4c6299" +checksum = "7d211ad0ef468a70a7a829e49683ff59ad25f02b4ab3764344c4c2663329a52c" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "arbitrary", "serde", ] [[package]] name = "alloy-contract" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ac9e0c34dc6bce643b182049cdfcca1b8ce7d9c260cbdd561f511873b7e26cd" +checksum = "c59d55233ac14aa7fa6bcdcad45ba305e90c556065e0947cd9f243c4469e7c2d" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -286,15 +286,38 @@ dependencies = [ "alloy-eip7928", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.8.3", + "auto_impl", + "borsh", + "c-kzg", + "derive_more", + "either", + "serde", + "serde_with", + "sha2", +] + +[[package]] +name = "alloy-eips" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae69eaa5096b47ffe97e6a5d6bde7e7fa2dec106af22a9315621d11039c3de3c" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 2.0.1", "arbitrary", "auto_impl", "borsh", "c-kzg", "derive_more", "either", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", "serde_with", "sha2", @@ -302,12 +325,12 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.30.0" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13146597a586a4166ac31b192883e08c044272d6b8c43de231ee1f43dd9a115" +checksum = "6fc4b83cb672156663e6094d098beb509965b7fe684bb3d6e44bb9ca2e9ae714" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-engine", @@ -322,13 +345,13 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf9480307b09d22876efb67d30cadd9013134c21f3a17ec9f93fd7536d38024" +checksum = "39789db0b3f3bbef0e6549c87bc6842b73886ebabee1405b6941685b1cc34083" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-trie", "borsh", "serde", @@ -363,9 +386,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422d110f1c40f1f8d0e5562b0b649c35f345fccb7093d9f02729943dcd1eef71" +checksum = "662b525af73e86b2167dae923261c8edf440ba7e1426b30a8b993177bc214c02" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -378,19 +401,19 @@ dependencies = [ [[package]] name = "alloy-network" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7197a66d94c4de1591cdc16a9bcea5f8cccd0da81b865b49aef97b1b4016e0fa" +checksum = "c657c2d9751d3c7d94990554b231e5372c3c2e4bad842806280b6151a0d6a05d" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-signer", "alloy-sol-types", "async-trait", @@ -404,14 +427,14 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb82711d59a43fdfd79727c99f270b974c784ec4eb5728a0d0d22f26716c87ef" +checksum = "59e7c4bb0ebbd6d7406d2808968f43c0d5186c69c5e58cedcbee7380f4cd1fcf" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] @@ -447,13 +470,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6b18b929ef1d078b834c3631e9c925177f3b23ddc6fa08a722d13047205876" +checksum = "c4fea0fc2628cdbc851aaa333124f9d8ab9f567ab8d4c20202819db13aa1a534" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -491,9 +514,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad54073131e7292d4e03e1aa2287730f737280eb160d8b579fb31939f558c11" +checksum = "edc7b42e514613c717887dc77bb58d35e845557ebd63a18c3f92a77094e4891f" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -535,9 +558,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fcc9604042ca80bd37aa5e232ea1cd851f337e31e2babbbb345bc0b1c30de3" +checksum = "d5ee7b51752c68fb95f21705e402700750e692b1d21ccc294ac48fadc8655d53" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -561,22 +584,22 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4faad925d3a669ffc15f43b3deec7fbdf2adeb28a4d6f9cf4bc661698c0f8f4b" +checksum = "8fa76988f54105ad4398828e8aaf1a39b3f07f91fb79091529056689514ee8c2" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] [[package]] name = "alloy-rpc-types-admin" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38080c2b01ad1bacbd3583cf7f6f800e5e0ffc11eaddaad7321225733a2d818" +checksum = "670b3a8e0d1b32e9886b7a419b8efe6754ea00b9fdd4c0ea3c7411b6c30431f4" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -586,39 +609,43 @@ dependencies = [ [[package]] name = "alloy-rpc-types-anvil" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47df51bedb3e6062cb9981187a51e86d0d64a4de66eb0855e9efe6574b044ddf" +checksum = "3d276bea4e92e4991269d31b9abd3e722eed2565b82036478a4416adb8dd4992" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] [[package]] name = "alloy-rpc-types-any" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3823026d1ed239a40f12364fac50726c8daf1b6ab8077a97212c5123910429ed" +checksum = "1f1a9a3bda9be7f6515316eb792710532411878bbfc88934973f4b371376b00d" dependencies = [ "alloy-consensus-any", + "alloy-network-primitives", + "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", + "serde", + "serde_json", ] [[package]] name = "alloy-rpc-types-beacon" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f526dbd7bb039327cfd0ccf18c8a29ffd7402616b0c7a0239512bf8417d544c7" +checksum = "caf5d68ddca890854fb78291cbde06115473ded00b2337d0f815e92c0c1f8003" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "derive_more", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", "serde_json", "serde_with", @@ -629,11 +656,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2145138f3214928f08cd13da3cb51ef7482b5920d8ac5a02ecd4e38d1a8f6d1e" +checksum = "ea21739e232c221779741eba7e7b9bc19ad8ff777b72736647ae519f5c9f6f33" dependencies = [ "alloy-primitives", + "alloy-rlp", "derive_more", "serde", "serde_with", @@ -641,19 +669,19 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9b97b6e7965679ad22df297dda809b11cebc13405c1b537e5cffecc95834fa" +checksum = "5f05338cfb4ee5508ff76f01c88142cab8a4579db74b7d9432936c26e4f11374" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "arbitrary", "derive_more", - "ethereum_ssz 0.9.1", - "ethereum_ssz_derive 0.9.1", + "ethereum_ssz", + "ethereum_ssz_derive", "jsonwebtoken", "rand 0.8.5", "serde", @@ -662,17 +690,17 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c095f92c4e1ff4981d89e9aa02d5f98c762a1980ab66bec49c44be11349da2" +checksum = "dda4ece0050154ab278241aeffade58916b04f38254832e8cb6e4671c6e72ed2" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-sol-types", "arbitrary", "itertools 0.14.0", @@ -684,28 +712,28 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eae9c65ff60dcc262247b6ebb5ad391ddf36d09029802c1768c5723e0cfa2f4" +checksum = "0df223478aec91d8fb0f8643234764042fa432e6111aca126774802b2618a3a5" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-trace" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5a4d010f86cd4e01e5205ec273911e538e1738e76d8bafe9ecd245910ea5a3" +checksum = "f5905ac3663b0859d67b82d912acce20887d20682a0cadde79c8a763b133a515" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", "serde_json", "thiserror 2.0.18", @@ -713,13 +741,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942d26a2ca8891b26de4a8529d21091e21c1093e27eb99698f1a86405c76b1ff" +checksum = "f7fbf71892d4df9cae8d35dc96f15d522384bb93806205465e2c8c012b7f0a34" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "serde", ] @@ -728,6 +756,17 @@ name = "alloy-serde" version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ece63b89294b8614ab3f483560c08d016930f842bf36da56bf0b764a15c11e" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beaa5c581a67e2743d95b4849eb9cfeb90866429cdaa6d8f6b75eb988b2d0cd9" dependencies = [ "alloy-primitives", "arbitrary", @@ -737,9 +776,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f447aefab0f1c0649f71edc33f590992d4e122bc35fb9cdbbf67d4421ace85" +checksum = "c5da9ae50f9b48d7b4e2e5cde87175257be7e5e56909a7794720597c1d9806f6" dependencies = [ "alloy-primitives", "async-trait", @@ -752,9 +791,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f721f4bf2e4812e5505aaf5de16ef3065a8e26b9139ac885862d00b5a55a659a" +checksum = "49b794002d57fd2f71b4c87298a41ca24dfc0f2cf6630d95106a477e451747ba" dependencies = [ "alloy-consensus", "alloy-network", @@ -844,9 +883,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8098f965442a9feb620965ba4b4be5e2b320f4ec5a3fff6bfa9e1ff7ef42bed1" +checksum = "19dec9bfb59647254afdecbb5ddcddd7ba02edcd48ffa40510bddfbed0be1634" dependencies = [ "alloy-json-rpc", "auto_impl", @@ -867,9 +906,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8597d36d546e1dab822345ad563243ec3920e199322cb554ce56c8ef1a1e2e7" +checksum = "2035f3c4d6bee20624da2dcf765d469b292398e48d766ffade61b0fcf8b4d45d" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -883,9 +922,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1bd98c3870b8a44b79091dde5216a81d58ffbc1fd8ed61b776f9fee0f3bdf20" +checksum = "cfad7aa9206fcb831ae401b6a1c893a402b8eed74f9c8ffbb7a7323afb0d9a4c" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -903,9 +942,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3ab7a72b180992881acc112628b7668337a19ce15293ee974600ea7b693691" +checksum = "a5aa8ff49386df3e008b73c7fb0a5479410e8493fdb86a8b916877a16e8aead9" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -942,9 +981,9 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.8.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d69722eddcdf1ce096c3ab66cf8116999363f734eb36fe94a148f4f71c85da84" +checksum = "3520337f3d3d063a7fe20f47aaa62d695e3dc0372b34f601560dee24e76988b9" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -1040,6 +1079,12 @@ dependencies = [ "derive_arbitrary", ] +[[package]] +name = "archery" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" + [[package]] name = "ark-bls12-381" version = "0.5.0" @@ -1447,6 +1492,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" dependencies = [ "aws-lc-sys", + "untrusted 0.7.1", "zeroize", ] @@ -1598,6 +1644,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "bitmaps" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d084b0137aaa901caf9f1e8b21daa6aa24d41cd806e111335541eff9683bd6" + [[package]] name = "bitvec" version = "1.0.1" @@ -2847,9 +2899,9 @@ dependencies = [ [[package]] name = "ethereum_hashing" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c853bd72c9e5787f8aafc3df2907c2ed03cff3150c3acd94e2e53a98ab70a8ab" +checksum = "5aa93f58bb1eb3d1e556e4f408ef1dac130bad01ac37db4e7ade45de40d1c86a" dependencies = [ "cpufeatures 0.2.17", "ring", @@ -2869,21 +2921,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "ethereum_ssz" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" -dependencies = [ - "alloy-primitives", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - [[package]] name = "ethereum_ssz" version = "0.10.3" @@ -2899,18 +2936,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "ethereum_ssz_derive" version = "0.10.3" @@ -2968,7 +2993,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-genesis", "alloy-network", @@ -3055,10 +3080,10 @@ name = "ev-primitives" version = "0.1.0" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 2.0.1", "bytes", "reth-codecs", "reth-db-api", @@ -3071,7 +3096,7 @@ dependencies = [ name = "ev-reth" version = "0.1.0" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-network", "alloy-primitives", @@ -3131,7 +3156,7 @@ name = "ev-tests" version = "0.1.0" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-network", "alloy-primitives", @@ -3190,7 +3215,7 @@ name = "evolve-ev-reth" version = "0.1.0" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "alloy-rpc-types-txpool", @@ -3947,6 +3972,7 @@ dependencies = [ "hyper-util", "log", "rustls", + "rustls-native-certs", "tokio", "tokio-rustls", "tower-service", @@ -4138,6 +4164,32 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "imbl" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e525189e5f603908d0c6e0d402cb5de9c4b2c8866151fabc4ebd771ed2630a2e" +dependencies = [ + "arbitrary", + "archery", + "bitmaps", + "imbl-sized-chunks", + "rand_core 0.9.5", + "rand_xoshiro", + "serde_core", + "version_check", + "wide", +] + +[[package]] +name = "imbl-sized-chunks" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4241005618a62f8d57b2febd02510fb96e0137304728543dfc5fd6f052c22d" +dependencies = [ + "bitmaps", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -4582,16 +4634,18 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "9.3.1" +version = "10.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" +checksum = "0529410abe238729a60b108898784df8984c87f6054c9c4fcacc47e4803c1ce1" dependencies = [ + "aws-lc-rs", "base64 0.22.1", + "getrandom 0.2.17", "js-sys", "pem", - "ring", "serde", "serde_json", + "signature", "simple_asn1", ] @@ -6323,6 +6377,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", + "rustls-native-certs", "rustls-pki-types", "serde", "serde_json", @@ -6390,11 +6445,11 @@ checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "reth-basic-payload-builder" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "futures-core", "futures-util", @@ -6417,11 +6472,11 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-signer", "alloy-signer-local", @@ -6449,12 +6504,12 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-genesis", "alloy-primitives", @@ -6469,8 +6524,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-genesis", "clap", @@ -6482,12 +6537,12 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "arbitrary", @@ -6570,8 +6625,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "reth-tasks", "tokio", @@ -6580,10 +6635,10 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "cfg-if", "eyre", @@ -6601,12 +6656,12 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96e584e01478c951911946a7864f18e967c1cd90965e136e2d1b51aa3da9126" +checksum = "a79b3247ae4fbb1d4d35ce83a11fc596428a4c6ea836c98a75a55340192578a4" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-primitives", "alloy-trie", @@ -6622,9 +6677,9 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c342ae46f5a886b8bf506205b9501b1032b896defd0f4f156edb423007fef880" +checksum = "df5dbae40c272b8a1b4fcc08ee2d4e77d3b0ccdb187c1313f412a73ff54ff2a2" dependencies = [ "proc-macro2", "quote", @@ -6633,8 +6688,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "eyre", "humantime-serde", @@ -6649,8 +6704,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6662,11 +6717,11 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -6675,11 +6730,11 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-json-rpc", "alloy-primitives", "alloy-provider", @@ -6701,8 +6756,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "derive_more", @@ -6729,8 +6784,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6755,8 +6810,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -6785,10 +6840,10 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "arbitrary", "bytes", @@ -6800,8 +6855,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6825,8 +6880,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6849,8 +6904,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "dashmap", @@ -6873,11 +6928,11 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "async-compression", @@ -6908,11 +6963,11 @@ dependencies = [ [[package]] name = "reth-e2e-test-utils" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-network", "alloy-primitives", "alloy-provider", @@ -6965,8 +7020,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "aes", "alloy-primitives", @@ -6993,8 +7048,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7016,11 +7071,11 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -7041,12 +7096,12 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", "alloy-rlp", @@ -7054,6 +7109,7 @@ dependencies = [ "crossbeam-channel", "derive_more", "futures", + "indexmap 2.14.0", "metrics", "moka", "parking_lot", @@ -7097,8 +7153,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7125,23 +7181,23 @@ dependencies = [ [[package]] name = "reth-era" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", - "ethereum_ssz 0.10.3", - "ethereum_ssz_derive 0.10.3", + "ethereum_ssz", + "ethereum_ssz_derive", "snap", "thiserror 2.0.18", ] [[package]] name = "reth-era-downloader" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "bytes", @@ -7156,8 +7212,8 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7178,8 +7234,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -7189,8 +7245,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7218,12 +7274,13 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eip7928", + "alloy-eips 2.0.1", "alloy-hardforks", "alloy-primitives", "alloy-rlp", @@ -7242,8 +7299,8 @@ dependencies = [ [[package]] name = "reth-ethereum" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -7282,8 +7339,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "clap", "eyre", @@ -7305,11 +7362,11 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -7321,10 +7378,10 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "reth-engine-primitives", @@ -7337,8 +7394,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -7351,11 +7408,11 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -7381,11 +7438,11 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-eth", "reth-codecs", @@ -7395,8 +7452,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "rayon", "reth-db-api", @@ -7405,11 +7462,11 @@ dependencies = [ [[package]] name = "reth-evm" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", "auto_impl", @@ -7429,11 +7486,11 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", @@ -7449,8 +7506,8 @@ dependencies = [ [[package]] name = "reth-execution-cache" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "fixed-cache", @@ -7467,8 +7524,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-evm", "alloy-primitives", @@ -7480,11 +7537,11 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-primitives", "alloy-rlp", @@ -7499,11 +7556,11 @@ dependencies = [ [[package]] name = "reth-exex" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "eyre", "futures", @@ -7537,10 +7594,10 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "reth-chain-state", "reth-execution-types", @@ -7551,8 +7608,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "serde", "serde_json", @@ -7561,8 +7618,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7589,8 +7646,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "bytes", "futures", @@ -7609,8 +7666,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "bitflags 2.11.0", "byteorder", @@ -7626,8 +7683,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "bindgen", "cc", @@ -7635,8 +7692,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "futures", "metrics", @@ -7647,8 +7704,8 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "ipnet", @@ -7656,8 +7713,8 @@ dependencies = [ [[package]] name = "reth-net-nat" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "futures-util", "if-addrs", @@ -7670,11 +7727,11 @@ dependencies = [ [[package]] name = "reth-network" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "aquamarine", @@ -7727,8 +7784,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7752,11 +7809,11 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "auto_impl", "derive_more", @@ -7775,8 +7832,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7790,8 +7847,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -7804,8 +7861,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "anyhow", "bincode", @@ -7821,8 +7878,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7845,11 +7902,11 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-provider", "alloy-rpc-types", @@ -7913,11 +7970,11 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "clap", @@ -7968,10 +8025,10 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-network", "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -8006,8 +8063,8 @@ dependencies = [ [[package]] name = "reth-node-ethstats" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8030,11 +8087,11 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "derive_more", @@ -8054,8 +8111,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "bytes", "eyre", @@ -8078,8 +8135,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "reth-chainspec", "reth-db-api", @@ -8090,8 +8147,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8114,8 +8171,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "pin-project", "reth-payload-primitives", @@ -8126,11 +8183,11 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -8150,8 +8207,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8160,12 +8217,12 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca36e245593498020c31e707154fc13391164eb90444da76d67361f646e7669" +checksum = "cc759fd87c3f65440e5d3bfa3107fe8a13a61a6807cd485c62c49d63c7bf6717" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -8193,11 +8250,11 @@ dependencies = [ [[package]] name = "reth-provider" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-primitives", "alloy-rpc-types-engine", @@ -8239,11 +8296,11 @@ dependencies = [ [[package]] name = "reth-prune" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "itertools 0.14.0", "metrics", @@ -8268,8 +8325,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "arbitrary", @@ -8284,8 +8341,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8299,13 +8356,12 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-dyn-abi", - "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-genesis", "alloy-network", @@ -8321,7 +8377,7 @@ dependencies = [ "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-signer", "alloy-signer-local", "async-trait", @@ -8377,11 +8433,10 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-json-rpc", "alloy-primitives", @@ -8395,7 +8450,7 @@ dependencies = [ "alloy-rpc-types-mev", "alloy-rpc-types-trace", "alloy-rpc-types-txpool", - "alloy-serde", + "alloy-serde 2.0.1", "jsonrpsee", "reth-chain-state", "reth-engine-primitives", @@ -8408,8 +8463,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-network", "alloy-provider", @@ -8451,8 +8506,8 @@ dependencies = [ [[package]] name = "reth-rpc-convert" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-evm", @@ -8471,10 +8526,10 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -8502,13 +8557,13 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-dyn-abi", "alloy-eip7928", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-json-rpc", "alloy-network", @@ -8516,7 +8571,7 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", - "alloy-serde", + "alloy-serde 2.0.1", "async-trait", "auto_impl", "dyn-clone", @@ -8548,11 +8603,11 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-evm", "alloy-network", "alloy-primitives", @@ -8596,8 +8651,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-rpc-types-engine", "http", @@ -8610,10 +8665,10 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "jsonrpsee-core", @@ -8626,9 +8681,9 @@ dependencies = [ [[package]] name = "reth-rpc-traits" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ebbc3cc6f1808c2838bf8da9928f3ef9b8a6f969c6522174c1598ddb34bc0f" +checksum = "b766da61ec7c46596386b4bc88d9b57d1939d3da2bc9e927567a8a23650e5ce9" dependencies = [ "alloy-consensus", "alloy-network", @@ -8641,11 +8696,11 @@ dependencies = [ [[package]] name = "reth-stages" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "eyre", @@ -8693,10 +8748,10 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "aquamarine", "auto_impl", @@ -8721,8 +8776,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "arbitrary", @@ -8735,8 +8790,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "parking_lot", @@ -8755,8 +8810,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "clap", @@ -8770,11 +8825,11 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -8794,10 +8849,10 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "derive_more", @@ -8812,8 +8867,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "crossbeam-utils", "dashmap", @@ -8833,11 +8888,11 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-genesis", "alloy-primitives", "rand 0.8.5", @@ -8849,8 +8904,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "tokio", "tokio-stream", @@ -8859,8 +8914,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "clap", "eyre", @@ -8876,8 +8931,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "clap", "eyre", @@ -8893,17 +8948,18 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "aquamarine", "auto_impl", "bitflags 2.11.0", "futures-util", + "imbl", "metrics", "parking_lot", "paste", @@ -8939,11 +8995,11 @@ dependencies = [ [[package]] name = "reth-trie" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 2.0.1", "alloy-primitives", "alloy-rlp", "alloy-trie", @@ -8965,14 +9021,14 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-consensus", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 2.0.1", "alloy-trie", "arbitrary", "arrayvec", @@ -8992,8 +9048,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "metrics", @@ -9012,8 +9068,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-eip7928", "alloy-evm", @@ -9040,8 +9096,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "2.0.0" -source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.0.0#eb4c15e5e36d8776d46629beae4c0a69af7ab04f" +version = "2.1.0" +source = "git+https://github.com/paradigmxyz/reth.git?tag=v2.1.0#d58c6e3d0723a28f655e89da83c3738e47dcc364" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9062,18 +9118,18 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a621aef55fe4da8935abede9d1d105f227bcb673f212b3575a748a6a2f8f688e" +checksum = "82fa54c341d926ec9b0f7fc0c87f831aa4959de699e69caab1a0bfd914326c09" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "36.0.0" +version = "38.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0abc15d09cd211e9e73410ada10134069c794d4bcdb787dfc16a1bf0939849c" +checksum = "91202d39dbe8e8d10e9e8f2b76c30da68ecd1d25be69ba6d853ad0d03a3a398a" dependencies = [ "revm-bytecode", "revm-context", @@ -9090,9 +9146,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "9.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86e468df3cf5cf59fa7ef71a3e9ccabb76bb336401ea2c0674f563104cf3c5e" +checksum = "bdbb3a3d735efa94c91f2ef6bf20a35f99a77bc78f3e25bd758336901bdf9661" dependencies = [ "bitvec", "phf", @@ -9102,9 +9158,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "15.0.0" +version = "16.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eb1f0a76b14d684a444fc52f7bf6b7564bf882599d91ee62e76d602e7a187c7" +checksum = "c5f68d928d8b228e0faeb1c6ed75c4fde7d124f1ddf9119b67e7a0ad4041237d" dependencies = [ "bitvec", "cfg-if", @@ -9119,9 +9175,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "16.0.0" +version = "17.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc256b27743e2912ca16899568e6652a372eb5d1d573e6edb16c7836b16cf487" +checksum = "1f3758e6167c4ba7a59a689c519a047edaefcd4c37d74f279b93ed87bc8aece4" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -9135,11 +9191,11 @@ dependencies = [ [[package]] name = "revm-database" -version = "12.0.0" +version = "13.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0a7d6da41061f2c50f99a2632571026b23684b5449ff319914151f4449b6c8" +checksum = "c281a1f11d3bcb8c0bba1199ed6bcb001d1aeb3d4fb366819e14f88723989a4e" dependencies = [ - "alloy-eips", + "alloy-eips 1.8.3", "revm-bytecode", "revm-database-interface", "revm-primitives", @@ -9149,9 +9205,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "10.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd497a38a79057b94a049552cb1f925ad15078bc1a479c132aeeebd1d2ccc768" +checksum = "d89efb9832a4e3742bb4ded5f7fe5bf905e8860e69427d4dfec153484fc6d304" dependencies = [ "auto_impl", "either", @@ -9163,9 +9219,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "17.0.0" +version = "18.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1eed729ca9b228ae98688f352235871e9b8be3d568d488e4070f64c56e9d3d" +checksum = "783e903d6922b7f5f9a940d1bb229530502d2924b1aed9d5ca5a94ebf065d460" dependencies = [ "auto_impl", "derive-where", @@ -9182,9 +9238,9 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "17.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf5102391706513689f91cb3cb3d97b5f13a02e8647e6e9cb7620877ef84847" +checksum = "8216ad58422090d0daa9eb430e0a081f7ad07e7fd30681dee71f8420c99624e0" dependencies = [ "auto_impl", "either", @@ -9200,9 +9256,9 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.36.1" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9487362b728f80dd2033ef5f4d0688453435bbe7caa721fa7e3b8fa25d89242b" +checksum = "731b682530a732ef9c189ef831589128e2ce34d4a306c956322ae2dffe009715" dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", @@ -9218,9 +9274,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "34.0.0" +version = "35.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf22f80612bb8f58fd1f578750281f2afadb6c93835b14ae6a4d6b75ca26f445" +checksum = "1ece9f41b69658c15d748288a4dbdfc06a63f3ce93d983af440de3f1631dce6a" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -9231,9 +9287,9 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "32.1.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2ec11f45deec71e4945e1809736bb20d454285f9167ab53c5159dae1deb603f" +checksum = "a346a8cc6c8c39bd65306641c692191299c0a7b63d38810e39e8fe9b92378660" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -9247,6 +9303,7 @@ dependencies = [ "cfg-if", "k256", "p256", + "revm-context-interface", "revm-primitives", "ripemd", "secp256k1 0.31.1", @@ -9255,9 +9312,9 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "22.1.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfb5ce6cf18b118932bcdb7da05cd9c250f2cb9f64131396b55f3fe3537c35" +checksum = "0c99bda77d9661521ba0b4bc04558c6692074f01e65dd420fa3b893033d9b8a2" dependencies = [ "alloy-primitives", "num_enum", @@ -9267,9 +9324,9 @@ dependencies = [ [[package]] name = "revm-state" -version = "10.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29404707763da607e5d6e4771cb203998c28159279c2f64cc32de08d2814651" +checksum = "c32490ed687dba31c3c882beb8c20408bdd30ef96690d8f145b0ee9a87040bfe" dependencies = [ "alloy-eip7928", "bitflags 2.11.0", @@ -9298,7 +9355,7 @@ dependencies = [ "cfg-if", "getrandom 0.2.17", "libc", - "untrusted", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -9572,7 +9629,7 @@ dependencies = [ "aws-lc-rs", "ring", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -9599,6 +9656,15 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +[[package]] +name = "safe_arch" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +dependencies = [ + "bytemuck", +] + [[package]] name = "same-file" version = "1.0.6" @@ -10821,24 +10887,24 @@ dependencies = [ [[package]] name = "tree_hash" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" +checksum = "f7fd51aa83d2eb83b04570808430808b5d24fdbf479a4d5ac5dee4a2e2dd2be4" dependencies = [ "alloy-primitives", "ethereum_hashing", - "ethereum_ssz 0.9.1", + "ethereum_ssz", "smallvec", "typenum", ] [[package]] name = "tree_hash_derive" -version = "0.10.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" +checksum = "8840ad4d852e325d3afa7fde8a50b2412f89dce47d7eb291c0cc7f87cd040f38" dependencies = [ - "darling 0.20.11", + "darling 0.23.0", "proc-macro2", "quote", "syn 2.0.117", @@ -10984,6 +11050,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -11326,6 +11398,16 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "wide" +version = "0.7.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "widestring" version = "1.2.1" diff --git a/Cargo.toml b/Cargo.toml index f4db7bd..4695805 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,100 +23,100 @@ repository = "https://github.com/evstack/ev-reth" authors = ["Evolve Stack Contributors"] [workspace.dependencies] -# Reth dependencies - Using v2.0.0 stable -reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-primitives-traits = { version = "0.1.0", default-features = false } -reth-provider = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-storage-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-tracing = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -reth-network = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-network-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-db-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-ethereum-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-engine-local = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", features = ["serde", "reth-codec"] } -reth-e2e-test-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -reth-evm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.0.0" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.0.0" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-ethereum-forks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-revm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.0.0" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-rpc = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-rpc-convert = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0" } -reth-codecs = { version = "0.1.0", default-features = false } +# Reth dependencies - Using v2.1.0 stable +reth-chainspec = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-errors = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-trie-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-primitives-traits = { version = "0.3.0", default-features = false } +reth-provider = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-tracing = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } +reth-network = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-network-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-db-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-ethereum = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-ethereum-cli = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-engine-local = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-engine-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-ethereum-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-ethereum-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", features = ["serde", "reth-codec"] } +reth-e2e-test-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } +reth-evm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.1.0" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.1.0" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-ethereum-forks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-revm = { git = "https://github.com/paradigmxyz/reth.git", default-features = false, tag = "v2.1.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-rpc = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-rpc-convert = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0" } +reth-codecs = { version = "0.3.0", default-features = false } ev-revm = { path = "crates/ev-revm" } ev-primitives = { path = "crates/ev-primitives" } # Consensus dependencies -reth-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -reth-consensus-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -reth-ethereum-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } +reth-consensus-common = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } +reth-ethereum-consensus = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } # Test dependencies -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -reth-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } -reth-tasks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.0.0", default-features = false } +reth-testing-utils = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } +reth-db = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } +reth-tasks = { git = "https://github.com/paradigmxyz/reth.git", tag = "v2.1.0", default-features = false } -revm = { version = "36.0.0", default-features = false } +revm = { version = "38.0.0", default-features = false } -# Alloy dependencies (aligned to reth v2.0.0) -alloy = { version = "1.8.3", features = [ +# Alloy dependencies (aligned to reth v2.1.0) +alloy = { version = "2.0.0", features = [ "contract", "providers", "provider-http", "signers", "reqwest-rustls-tls", ], default-features = false } -alloy-evm = { version = "0.30.0", default-features = false } -alloy-eips = { version = "1.8.3", default-features = false } -alloy-network = { version = "1.8.3", default-features = false } -alloy-provider = { version = "1.8.3", default-features = false } -alloy-rpc-client = { version = "1.8.3", default-features = false } -alloy-rpc-types = { version = "1.8.3", default-features = false } -alloy-json-rpc = { version = "1.8.3", default-features = false } -alloy-rpc-types-eth = { version = "1.8.3", default-features = false } -alloy-rpc-types-engine = { version = "1.8.3", default-features = false } -alloy-signer = { version = "1.8.3", default-features = false } -alloy-signer-local = { version = "1.8.3", features = ["mnemonic"] } -alloy-serde = { version = "1.8.3", default-features = false } +alloy-evm = { version = "0.33.0", default-features = false } +alloy-eips = { version = "2.0.0", default-features = false } +alloy-network = { version = "2.0.0", default-features = false } +alloy-provider = { version = "2.0.0", default-features = false } +alloy-rpc-client = { version = "2.0.0", default-features = false } +alloy-rpc-types = { version = "2.0.0", default-features = false } +alloy-json-rpc = { version = "2.0.0", default-features = false } +alloy-rpc-types-eth = { version = "2.0.0", default-features = false } +alloy-rpc-types-engine = { version = "2.0.0", default-features = false } +alloy-signer = { version = "2.0.0", default-features = false } +alloy-signer-local = { version = "2.0.0", features = ["mnemonic"] } +alloy-serde = { version = "2.0.0", default-features = false } alloy-primitives = { version = "1.5.6", default-features = false } -alloy-consensus = { version = "1.8.3", default-features = false } -alloy-consensus-any = { version = "1.8.3", default-features = false } -alloy-rlp = { version = "0.3.15", default-features = false } -alloy-genesis = { version = "1.8.3", default-features = false } -alloy-rpc-types-txpool = { version = "1.8.3", default-features = false } +alloy-consensus = { version = "2.0.0", default-features = false } +alloy-consensus-any = { version = "2.0.0", default-features = false } +alloy-rlp = { version = "0.3.13", default-features = false } +alloy-genesis = { version = "2.0.0", default-features = false } +alloy-rpc-types-txpool = { version = "2.0.0", default-features = false } alloy-sol-types = { version = "1.5.6", default-features = false } # Utility dependencies bytes = "1.10.1" -revm-inspectors = "0.36.0" +revm-inspectors = "0.39.0" # force newer nybbles for const push_unchecked (needed for Rust 1.92+) nybbles = "0.4.8" diff --git a/crates/ev-precompiles/src/mint.rs b/crates/ev-precompiles/src/mint.rs index 438fb04..6a499c8 100644 --- a/crates/ev-precompiles/src/mint.rs +++ b/crates/ev-precompiles/src/mint.rs @@ -10,7 +10,10 @@ use alloy_evm::{ EvmInternals, EvmInternalsError, }; use alloy_primitives::{address, Address, Bytes, U256}; -use revm::{bytecode::Bytecode, precompile::PrecompileOutput}; +use revm::{ + bytecode::Bytecode, + precompile::{PrecompileHalt, PrecompileOutput}, +}; use std::sync::OnceLock; sol! { @@ -31,6 +34,24 @@ pub struct MintPrecompile { admin: Address, } +#[derive(Debug)] +enum MintPrecompileError { + Fatal(PrecompileError), + Halt(PrecompileHalt), +} + +type MintPrecompileResult = Result; + +impl MintPrecompileError { + fn fatal(err: EvmInternalsError) -> Self { + Self::Fatal(PrecompileError::Fatal(err.to_string())) + } + + const fn halt_static(reason: &'static str) -> Self { + Self::Halt(PrecompileHalt::other_static(reason)) + } +} + impl MintPrecompile { // Use a lazily-initialized static for the ID since `custom` is not const. pub fn id() -> &'static PrecompileId { @@ -47,14 +68,14 @@ impl MintPrecompile { Self { admin } } - fn map_internals_error(err: EvmInternalsError) -> PrecompileError { - PrecompileError::Other(err.to_string().into()) + fn map_internals_error(err: EvmInternalsError) -> MintPrecompileError { + MintPrecompileError::fatal(err) } fn ensure_account_created( internals: &mut EvmInternals<'_>, addr: Address, - ) -> Result<(), PrecompileError> { + ) -> MintPrecompileResult<()> { // load immutably first to check state let account = internals .load_account(addr) @@ -85,12 +106,12 @@ impl MintPrecompile { internals: &mut EvmInternals<'_>, addr: Address, amount: U256, - ) -> Result<(), PrecompileError> { + ) -> MintPrecompileResult<()> { let mut account = internals .load_account_mut(addr) .map_err(Self::map_internals_error)?; if !account.incr_balance(amount) { - return Err(PrecompileError::Other("balance overflow".into())); + return Err(MintPrecompileError::halt_static("balance overflow")); } Ok(()) } @@ -99,21 +120,21 @@ impl MintPrecompile { internals: &mut EvmInternals<'_>, addr: Address, amount: U256, - ) -> Result<(), PrecompileError> { + ) -> MintPrecompileResult<()> { let mut account = internals .load_account_mut(addr) .map_err(Self::map_internals_error)?; if !account.decr_balance(amount) { - return Err(PrecompileError::Other("insufficient balance".into())); + return Err(MintPrecompileError::halt_static("insufficient balance")); } Ok(()) } - fn ensure_admin(&self, caller: Address) -> Result<(), PrecompileError> { + fn ensure_admin(&self, caller: Address) -> MintPrecompileResult<()> { if caller == self.admin { Ok(()) } else { - Err(PrecompileError::Other("unauthorized caller".into())) + Err(MintPrecompileError::halt_static("unauthorized caller")) } } @@ -121,7 +142,7 @@ impl MintPrecompile { &self, internals: &mut EvmInternals<'_>, caller: Address, - ) -> Result<(), PrecompileError> { + ) -> MintPrecompileResult<()> { if caller == self.admin { tracing::debug!(target: "mint_precompile", ?caller, "authorization granted: admin"); return Ok(()); @@ -133,14 +154,14 @@ impl MintPrecompile { Ok(()) } else { tracing::warn!(target: "mint_precompile", ?caller, "authorization denied: not admin and not allowlisted"); - Err(PrecompileError::Other("unauthorized caller".into())) + Err(MintPrecompileError::halt_static("unauthorized caller")) } } fn is_allowlisted( internals: &mut EvmInternals<'_>, addr: Address, - ) -> Result { + ) -> MintPrecompileResult { Self::ensure_account_created(internals, MINT_PRECOMPILE_ADDR)?; let key = Self::allowlist_key(addr); let value = internals @@ -163,7 +184,7 @@ impl MintPrecompile { internals: &mut EvmInternals<'_>, addr: Address, allowed: bool, - ) -> Result<(), PrecompileError> { + ) -> MintPrecompileResult<()> { Self::ensure_account_created(internals, MINT_PRECOMPILE_ADDR)?; let value = if allowed { U256::from(1) } else { U256::ZERO }; internals @@ -189,6 +210,7 @@ impl Precompile for MintPrecompile { fn call(&self, mut input: PrecompileInput<'_>) -> PrecompileResult { let caller: Address = input.caller; let gas_limit = input.gas; + let reservoir = input.reservoir; let data_len = input.data.len(); tracing::info!( @@ -202,53 +224,66 @@ impl Precompile for MintPrecompile { // 1) Decode by ABI — this inspects the 4-byte selector and picks the right variant. let decoded = match INativeToken::INativeTokenCalls::abi_decode(input.data) { Ok(v) => v, - Err(e) => return Err(PrecompileError::Other(e.to_string().into())), + Err(e) => { + return Ok(PrecompileOutput::halt( + PrecompileHalt::other(e.to_string()), + reservoir, + )) + } }; let internals = input.internals_mut(); // 2) Dispatch to the right handler. - match decoded { - INativeToken::INativeTokenCalls::mint(call) => { - self.ensure_authorized(internals, caller)?; - let to = call.to; - let amount = call.amount; - - Self::ensure_account_created(internals, to)?; - Self::add_balance(internals, to, amount)?; - internals - .touch_account(to) - .map_err(Self::map_internals_error)?; - - Ok(PrecompileOutput::new(0, Bytes::new())) + let result = (|| -> MintPrecompileResult { + match decoded { + INativeToken::INativeTokenCalls::mint(call) => { + self.ensure_authorized(internals, caller)?; + let to = call.to; + let amount = call.amount; + + Self::ensure_account_created(internals, to)?; + Self::add_balance(internals, to, amount)?; + internals + .touch_account(to) + .map_err(Self::map_internals_error)?; + + Ok(Bytes::new()) + } + INativeToken::INativeTokenCalls::burn(call) => { + self.ensure_authorized(internals, caller)?; + let from = call.from; + let amount = call.amount; + + Self::ensure_account_created(internals, from)?; + Self::sub_balance(internals, from, amount)?; + internals + .touch_account(from) + .map_err(Self::map_internals_error)?; + + Ok(Bytes::new()) + } + INativeToken::INativeTokenCalls::addToAllowList(call) => { + self.ensure_admin(caller)?; + Self::set_allowlisted(internals, call.account, true)?; + Ok(Bytes::new()) + } + INativeToken::INativeTokenCalls::removeFromAllowList(call) => { + self.ensure_admin(caller)?; + Self::set_allowlisted(internals, call.account, false)?; + Ok(Bytes::new()) + } + INativeToken::INativeTokenCalls::allowlist(call) => { + let is_allowed = Self::is_allowlisted(internals, call.account)?; + let result = is_allowed.abi_encode(); + Ok(result.into()) + } } - INativeToken::INativeTokenCalls::burn(call) => { - self.ensure_authorized(internals, caller)?; - let from = call.from; - let amount = call.amount; + })(); - Self::ensure_account_created(internals, from)?; - Self::sub_balance(internals, from, amount)?; - internals - .touch_account(from) - .map_err(Self::map_internals_error)?; - - Ok(PrecompileOutput::new(0, Bytes::new())) - } - INativeToken::INativeTokenCalls::addToAllowList(call) => { - self.ensure_admin(caller)?; - Self::set_allowlisted(internals, call.account, true)?; - Ok(PrecompileOutput::new(0, Bytes::new())) - } - INativeToken::INativeTokenCalls::removeFromAllowList(call) => { - self.ensure_admin(caller)?; - Self::set_allowlisted(internals, call.account, false)?; - Ok(PrecompileOutput::new(0, Bytes::new())) - } - INativeToken::INativeTokenCalls::allowlist(call) => { - let is_allowed = Self::is_allowlisted(internals, call.account)?; - let result = is_allowed.abi_encode(); - Ok(PrecompileOutput::new(0, result.into())) - } + match result { + Ok(bytes) => Ok(PrecompileOutput::new(0, bytes, reservoir)), + Err(MintPrecompileError::Halt(reason)) => Ok(PrecompileOutput::halt(reason, reservoir)), + Err(MintPrecompileError::Fatal(err)) => Err(err), } } } @@ -292,6 +327,7 @@ mod tests { let input = PrecompileInput { data, gas: GAS_LIMIT, + reservoir: 0, caller, value: U256::ZERO, target_address: MINT_PRECOMPILE_ADDR, @@ -303,6 +339,21 @@ mod tests { precompile.call(input) } + fn assert_halt_message(result: PrecompileResult, expected: &str) { + match result { + Ok(output) => { + assert!(output.is_halt(), "expected halt output, got {output:?}"); + match output.halt_reason() { + Some(PrecompileHalt::Other(msg)) => { + assert_eq!(msg.as_ref(), expected, "unexpected halt message") + } + other => panic!("expected custom halt reason, got {other:?}"), + } + } + Err(err) => panic!("expected halting precompile output, got fatal error {err:?}"), + } + } + fn account_balance(journal: &TestJournal, address: Address) -> Option { journal .inner @@ -447,15 +498,7 @@ mod tests { &burn_calldata, ); - match result { - Err(PrecompileError::Other(msg)) => { - assert_eq!( - msg, "insufficient balance", - "expected insufficient balance error" - ) - } - other => panic!("expected underflow error, got {other:?}"), - } + assert_halt_message(result, "insufficient balance"); let balance = account_balance(&journal, holder).expect("holder account exists"); assert_eq!( @@ -489,15 +532,7 @@ mod tests { &calldata, ); - match result { - Err(PrecompileError::Other(msg)) => { - assert_eq!( - msg, "unauthorized caller", - "expected unauthorized caller error" - ) - } - other => panic!("expected unauthorized error, got {other:?}"), - } + assert_halt_message(result, "unauthorized caller"); assert!( !journal.inner.state.contains_key(&recipient), @@ -621,13 +656,7 @@ mod tests { &mint_calldata, ); - match result { - Err(PrecompileError::Other(msg)) => assert_eq!( - msg, "unauthorized caller", - "removed address should no longer be authorized" - ), - other => panic!("expected unauthorized error, got {other:?}"), - } + assert_halt_message(result, "unauthorized caller"); assert!( !journal.inner.state.contains_key(&recipient), @@ -736,12 +765,6 @@ mod tests { &add_calldata, ); - match result { - Err(PrecompileError::Other(msg)) => assert_eq!( - msg, "unauthorized caller", - "non-admin must not modify allowlist" - ), - other => panic!("expected unauthorized error, got {other:?}"), - } + assert_halt_message(result, "unauthorized caller"); } } diff --git a/crates/ev-primitives/Cargo.toml b/crates/ev-primitives/Cargo.toml index 123296a..bb0746a 100644 --- a/crates/ev-primitives/Cargo.toml +++ b/crates/ev-primitives/Cargo.toml @@ -12,7 +12,7 @@ alloy-primitives = { workspace = true, features = ["k256", "rlp", "serde"] } alloy-serde = { workspace = true } alloy-rlp = { workspace = true, features = ["derive"] } bytes = { workspace = true } -reth-codecs = { workspace = true } +reth-codecs = { workspace = true, features = ["alloy"] } reth-db-api = { workspace = true } reth-ethereum-primitives = { workspace = true } reth-primitives-traits = { workspace = true } diff --git a/crates/ev-revm/src/evm.rs b/crates/ev-revm/src/evm.rs index 82dab4c..46a76e8 100644 --- a/crates/ev-revm/src/evm.rs +++ b/crates/ev-revm/src/evm.rs @@ -355,6 +355,10 @@ where &self.inner.ctx.block } + fn cfg_env(&self) -> &CfgEnv { + &self.inner.ctx.cfg + } + fn chain_id(&self) -> u64 { self.inner.ctx.cfg.chain_id } @@ -452,6 +456,10 @@ where &self.inner.ctx.block } + fn cfg_env(&self) -> &CfgEnv { + &self.inner.ctx.cfg + } + fn chain_id(&self) -> u64 { self.inner.ctx.cfg.chain_id } diff --git a/crates/ev-revm/src/factory.rs b/crates/ev-revm/src/factory.rs index c289790..82a9f5d 100644 --- a/crates/ev-revm/src/factory.rs +++ b/crates/ev-revm/src/factory.rs @@ -534,7 +534,7 @@ mod tests { let ExecutionResult::Success { gas, .. } = result_and_state.result else { panic!("expected successful execution"); }; - let gas_used = gas.used(); + let gas_used = gas.tx_gas_used(); let state: EvmState = result_and_state.state; let sink_account = state diff --git a/crates/ev-revm/src/handler.rs b/crates/ev-revm/src/handler.rs index 65691b3..b0c10f4 100644 --- a/crates/ev-revm/src/handler.rs +++ b/crates/ev-revm/src/handler.rs @@ -141,7 +141,9 @@ where tx, calls, ctx.cfg().spec().into(), - false, + ctx.cfg().is_eip7623_disabled(), + ctx.cfg().is_amsterdam_eip8037_enabled(), + ctx.cfg().tx_gas_limit_cap(), ) .map_err(From::from); } @@ -155,13 +157,18 @@ where self.inner.load_accounts(evm) } - fn apply_eip7702_auth_list(&self, evm: &mut Self::Evm) -> Result { - self.inner.apply_eip7702_auth_list(evm) + fn apply_eip7702_auth_list( + &self, + evm: &mut Self::Evm, + init_and_floor_gas: &mut InitialAndFloorGas, + ) -> Result { + self.inner.apply_eip7702_auth_list(evm, init_and_floor_gas) } fn validate_against_state_and_deduct_caller( &self, evm: &mut Self::Evm, + _init_and_floor_gas: &mut InitialAndFloorGas, ) -> Result<(), Self::Error> { self.ensure_deploy_allowed(evm)?; @@ -215,8 +222,9 @@ where &mut self, evm: &mut Self::Evm, gas_limit: u64, + reservoir: u64, ) -> Result { - self.inner.first_frame_input(evm, gas_limit) + self.inner.first_frame_input(evm, gas_limit, reservoir) } fn execution( @@ -235,10 +243,15 @@ where }; let base_tx = evm.ctx().tx().clone(); - let gas_limit = base_tx.gas_limit(); + let tx_gas_limit = base_tx.gas_limit(); + let (mut remaining_gas, mut reservoir) = init_and_floor_gas.initial_gas_and_reservoir( + tx_gas_limit, + evm.ctx().cfg().tx_gas_limit_cap(), + evm.ctx().cfg().is_amsterdam_eip8037_enabled(), + ); let checkpoint = evm.ctx_mut().journal_mut().checkpoint(); - let mut remaining_gas = gas_limit.saturating_sub(init_and_floor_gas.initial_gas); let mut total_refunded: i64 = 0; + let mut total_state_gas_spent: u64 = 0; let mut last_result: Option = None; // Execute each call in the batch sequentially. @@ -249,11 +262,16 @@ where let mut call_tx = base_tx.clone(); call_tx.set_batch_call(call); evm.ctx_mut().set_tx(call_tx); - let first_frame_input = self.inner.first_frame_input(evm, remaining_gas)?; + let first_frame_input = self + .inner + .first_frame_input(evm, remaining_gas, reservoir)?; let mut frame_result = self.inner.run_exec_loop(evm, first_frame_input)?; let instruction_result = frame_result.interpreter_result().result; total_refunded = total_refunded.saturating_add(frame_result.gas().refunded()); remaining_gas = frame_result.gas().remaining(); + reservoir = frame_result.gas().reservoir(); + total_state_gas_spent = + total_state_gas_spent.saturating_add(frame_result.gas().state_gas_spent()); if !instruction_result.is_ok() { evm.ctx_mut().journal_mut().checkpoint_revert(checkpoint); @@ -273,7 +291,14 @@ where caller_account.data.set_nonce(nonce.saturating_add(1)); } } - finalize_batch_gas(&mut frame_result, gas_limit, remaining_gas, 0); + finalize_batch_gas( + &mut frame_result, + tx_gas_limit, + remaining_gas, + reservoir, + total_state_gas_spent, + 0, + ); return Ok(frame_result); } @@ -283,7 +308,14 @@ where evm.ctx_mut().journal_mut().checkpoint_commit(); let mut frame_result = last_result.expect("batch execution requires at least one call"); - finalize_batch_gas(&mut frame_result, gas_limit, remaining_gas, total_refunded); + finalize_batch_gas( + &mut frame_result, + tx_gas_limit, + remaining_gas, + reservoir, + total_state_gas_spent, + total_refunded, + ); Ok(frame_result) } @@ -478,14 +510,18 @@ fn validate_batch_initial_tx_gas( calls: &[ev_primitives::Call], spec: SpecId, is_eip7623_disabled: bool, + is_eip8037_enabled: bool, + tx_gas_limit_cap: u64, ) -> Result { - let mut initial_gas = 0u64; + let mut initial_total_gas = 0u64; + let mut initial_state_gas = 0u64; let mut floor_gas = 0u64; for call in calls { let call_gas = calculate_initial_tx_gas(spec, call.input.as_ref(), call.to.is_create(), 0, 0, 0); - initial_gas = initial_gas.saturating_add(call_gas.initial_gas); + initial_total_gas = initial_total_gas.saturating_add(call_gas.initial_total_gas); + initial_state_gas = initial_state_gas.saturating_add(call_gas.initial_state_gas); floor_gas = floor_gas.saturating_add(call_gas.floor_gas); } @@ -501,14 +537,15 @@ fn validate_batch_initial_tx_gas( } } - initial_gas = initial_gas + initial_total_gas = initial_total_gas .saturating_add(accounts.saturating_mul(ACCESS_LIST_ADDRESS)) .saturating_add(storages.saturating_mul(ACCESS_LIST_STORAGE_KEY)); if spec.is_enabled_in(SpecId::PRAGUE) { - initial_gas = initial_gas.saturating_add( - (tx.authorization_list_len() as u64).saturating_mul(eip7702::PER_EMPTY_ACCOUNT_COST), - ); + let auth_state_gas = + (tx.authorization_list_len() as u64).saturating_mul(eip7702::PER_EMPTY_ACCOUNT_COST); + initial_total_gas = initial_total_gas.saturating_add(auth_state_gas); + initial_state_gas = initial_state_gas.saturating_add(auth_state_gas); } else { floor_gas = 0; } @@ -517,11 +554,11 @@ fn validate_batch_initial_tx_gas( floor_gas = 0; } - if initial_gas > tx.gas_limit() { + if initial_total_gas > tx.gas_limit() { return Err( reth_revm::revm::context_interface::result::InvalidTransaction::CallGasCostMoreThanGasLimit { gas_limit: tx.gas_limit(), - initial_gas, + initial_gas: initial_total_gas, }, ); } @@ -535,13 +572,32 @@ fn validate_batch_initial_tx_gas( ); } - Ok(InitialAndFloorGas::new(initial_gas, floor_gas)) + if is_eip8037_enabled && tx.gas_limit() > tx_gas_limit_cap { + let min_regular_gas = initial_total_gas + .saturating_sub(initial_state_gas) + .max(floor_gas); + if min_regular_gas > tx_gas_limit_cap { + return Err( + reth_revm::revm::context_interface::result::InvalidTransaction::GasFloorMoreThanGasLimit { + gas_floor: min_regular_gas, + gas_limit: tx_gas_limit_cap, + }, + ); + } + } + + let mut gas = + InitialAndFloorGas::new_with_state_gas(initial_total_gas, initial_state_gas, floor_gas); + gas.eip7702_reservoir_refund = 0; + Ok(gas) } fn finalize_batch_gas( frame_result: &mut FrameResult, tx_gas_limit: u64, remaining_gas: u64, + reservoir: u64, + state_gas_spent: u64, refund: i64, ) { let instruction_result = frame_result.interpreter_result().result; @@ -551,6 +607,11 @@ fn finalize_batch_gas( } if instruction_result.is_ok() { gas.record_refund(refund); + gas.set_state_gas_spent(state_gas_spent); + gas.set_reservoir(reservoir); + } else { + gas.set_state_gas_spent(0); + gas.set_reservoir(reservoir.saturating_add(state_gas_spent)); } *frame_result.gas_mut() = gas; } @@ -718,6 +779,7 @@ mod tests { bytecode::Bytecode as RevmBytecode, context::{BlockEnv, CfgEnv, TxEnv}, handler::EthPrecompiles, + interpreter::InitialAndFloorGas, MainBuilder, }; @@ -805,16 +867,17 @@ mod tests { calculate_initial_tx_gas(SpecId::PRAGUE, calls[1].input.as_ref(), false, 0, 0, 0); let access_list_cost = ACCESS_LIST_ADDRESS + 2 * ACCESS_LIST_STORAGE_KEY; - let result = validate_batch_initial_tx_gas(&tx_env, &calls, SpecId::PRAGUE, false) - .expect("batch gas should validate"); + let result = + validate_batch_initial_tx_gas(&tx_env, &calls, SpecId::PRAGUE, false, false, u64::MAX) + .expect("batch gas should validate"); let expected_initial = gas_call_1 - .initial_gas - .saturating_add(gas_call_2.initial_gas) + .initial_total_gas + .saturating_add(gas_call_2.initial_total_gas) .saturating_add(access_list_cost); let expected_floor = gas_call_1.floor_gas.saturating_add(gas_call_2.floor_gas); - assert_eq!(result.initial_gas, expected_initial); + assert_eq!(result.initial_total_gas, expected_initial); assert_eq!(result.floor_gas, expected_floor); } @@ -831,8 +894,9 @@ mod tests { input: Bytes::from(vec![0x11; 64]), }]; - let err = validate_batch_initial_tx_gas(&tx_env, &calls, SpecId::CANCUN, false) - .expect_err("should reject when gas limit is too low"); + let err = + validate_batch_initial_tx_gas(&tx_env, &calls, SpecId::CANCUN, false, false, u64::MAX) + .expect_err("should reject when gas limit is too low"); assert!(matches!( err, @@ -1333,7 +1397,9 @@ mod tests { let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); - let result = handler.validate_against_state_and_deduct_caller(&mut evm); + let mut init_and_floor_gas = InitialAndFloorGas::default(); + let result = + handler.validate_against_state_and_deduct_caller(&mut evm, &mut init_and_floor_gas); assert!(matches!(result, Err(EVMError::Custom(_)))); } @@ -1355,7 +1421,9 @@ mod tests { let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); - let result = handler.validate_against_state_and_deduct_caller(&mut evm); + let mut init_and_floor_gas = InitialAndFloorGas::default(); + let result = + handler.validate_against_state_and_deduct_caller(&mut evm, &mut init_and_floor_gas); assert!( result.is_ok(), "empty allowlist should allow any caller to deploy, got: {result:?}" @@ -1378,7 +1446,9 @@ mod tests { let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, None); - let result = handler.validate_against_state_and_deduct_caller(&mut evm); + let mut init_and_floor_gas = InitialAndFloorGas::default(); + let result = + handler.validate_against_state_and_deduct_caller(&mut evm, &mut init_and_floor_gas); assert!( result.is_ok(), "no allowlist configured should allow any caller to deploy, got: {result:?}" @@ -1402,7 +1472,9 @@ mod tests { let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); - let result = handler.validate_against_state_and_deduct_caller(&mut evm); + let mut init_and_floor_gas = InitialAndFloorGas::default(); + let result = + handler.validate_against_state_and_deduct_caller(&mut evm, &mut init_and_floor_gas); assert!( result.is_ok(), "allowlisted caller should be allowed to deploy, got: {result:?}" @@ -1427,7 +1499,9 @@ mod tests { let mut evm = build_test_evm(ctx, None, None); let handler: TestHandler = EvHandler::new(None, Some(allowlist)); - let result = handler.validate_against_state_and_deduct_caller(&mut evm); + let mut init_and_floor_gas = InitialAndFloorGas::default(); + let result = + handler.validate_against_state_and_deduct_caller(&mut evm, &mut init_and_floor_gas); assert!( result.is_ok(), "CALL tx should be allowed regardless of allowlist, got: {result:?}" diff --git a/crates/evolve/src/types.rs b/crates/evolve/src/types.rs index 9084360..ea72521 100644 --- a/crates/evolve/src/types.rs +++ b/crates/evolve/src/types.rs @@ -19,6 +19,8 @@ pub struct EvolvePayloadAttributes { pub parent_hash: B256, /// Block number pub block_number: u64, + /// Slot number for post-Amsterdam payloads. + pub slot_number: Option, } impl EvolvePayloadAttributes { @@ -40,9 +42,16 @@ impl EvolvePayloadAttributes { suggested_fee_recipient, parent_hash, block_number, + slot_number: None, } } + /// Sets the slot number for post-Amsterdam payloads. + pub const fn with_slot_number(mut self, slot_number: Option) -> Self { + self.slot_number = slot_number; + self + } + /// Validates the payload attributes pub const fn validate(&self) -> Result<(), PayloadAttributesError> { // For evolve, empty transactions are allowed (empty blocks are valid) diff --git a/crates/node/src/attributes.rs b/crates/node/src/attributes.rs index 931c12a..3ca142e 100644 --- a/crates/node/src/attributes.rs +++ b/crates/node/src/attributes.rs @@ -40,6 +40,10 @@ impl PayloadAttributes for EvolveEnginePayloadAttributes { fn parent_beacon_block_root(&self) -> Option { self.inner.parent_beacon_block_root() } + + fn slot_number(&self) -> Option { + self.inner.slot_number() + } } impl From for EvolveEnginePayloadAttributes { @@ -77,6 +81,10 @@ impl PayloadAttributesBuilder .chain_spec .is_cancun_active_at_timestamp(timestamp) .then(B256::random), + slot_number: self + .chain_spec + .is_amsterdam_active_at_timestamp(timestamp) + .then_some(0), }; EvolveEnginePayloadAttributes { diff --git a/crates/node/src/builder.rs b/crates/node/src/builder.rs index e6ca3c9..c945718 100644 --- a/crates/node/src/builder.rs +++ b/crates/node/src/builder.rs @@ -135,6 +135,7 @@ where // and ensures version-specific fields are initialized. withdrawals: Some(Default::default()), extra_data: Default::default(), + slot_number: attributes.slot_number, }; let mut builder = self diff --git a/crates/node/src/evm_executor.rs b/crates/node/src/evm_executor.rs index 239f5b1..0e71105 100644 --- a/crates/node/src/evm_executor.rs +++ b/crates/node/src/evm_executor.rs @@ -1,3 +1,4 @@ +use core::cmp::min; use std::{borrow::Cow, boxed::Box, vec::Vec}; use alloy_consensus::{Transaction, TransactionEnvelope, TxReceipt}; @@ -6,7 +7,7 @@ use alloy_evm::{ block::{ state_changes::{balance_increment_state, post_block_balance_increments}, BlockExecutionError, BlockExecutionResult, BlockExecutor, BlockExecutorFactory, - BlockExecutorFor, BlockValidationError, ExecutableTx, OnStateHook, + BlockExecutorFor, BlockValidationError, ExecutableTx, GasOutput, OnStateHook, StateChangePostBlockSource, StateChangeSource, SystemCaller, }, eth::{ @@ -90,7 +91,9 @@ pub struct EvBlockExecutor<'a, Evm, Spec, R: ReceiptBuilder> { system_caller: SystemCaller, receipt_builder: R, receipts: Vec, - gas_used: u64, + cumulative_tx_gas_used: u64, + block_regular_gas_used: u64, + block_state_gas_used: u64, blob_gas_used: u64, } @@ -101,11 +104,14 @@ where { /// Creates a new block executor with the provided EVM, context, spec, and receipt builder. pub fn new(evm: Evm, ctx: EthBlockExecutionCtx<'a>, spec: Spec, receipt_builder: R) -> Self { + let tx_count_hint = ctx.tx_count_hint.unwrap_or_default(); Self { evm, ctx, - receipts: Vec::new(), - gas_used: 0, + receipts: Vec::with_capacity(tx_count_hint), + cumulative_tx_gas_used: 0, + block_regular_gas_used: 0, + block_state_gas_used: 0, blob_gas_used: 0, system_caller: SystemCaller::new(spec.clone()), spec, @@ -114,6 +120,20 @@ where } } +impl EvBlockExecutor<'_, Evm, Spec, R> +where + R: ReceiptBuilder, +{ + /// Returns the maximum of regular and state gas used by transactions in this block. + #[inline] + pub const fn max_block_gas_used(&self) -> u64 { + if self.block_regular_gas_used > self.block_state_gas_used { + return self.block_regular_gas_used; + } + self.block_state_gas_used + } +} + impl BlockExecutor for EvBlockExecutor<'_, E, Spec, R> where E: Evm< @@ -144,12 +164,22 @@ where ) -> Result { let (tx_env, tx) = tx.into_parts(); - let block_available_gas = self.evm.block().gas_limit() - self.gas_used; + let block_gas_used = if self.evm.cfg_env().enable_amsterdam_eip8037 { + self.block_regular_gas_used + } else { + self.cumulative_tx_gas_used + }; + let block_available_gas = self.evm.block().gas_limit() - block_gas_used; - if tx.tx().gas_limit() > block_available_gas { + let mut max_tx_gas_usage = tx.tx().gas_limit(); + if let Some(tx_gas_limit_cap) = self.evm.cfg_env().tx_gas_limit_cap { + max_tx_gas_usage = min(max_tx_gas_usage, tx_gas_limit_cap); + } + + if max_tx_gas_usage > block_available_gas { return Err( BlockValidationError::TransactionGasLimitMoreThanAvailableBlockGas { - transaction_gas_limit: tx.tx().gas_limit(), + transaction_gas_limit: max_tx_gas_usage, block_available_gas, } .into(), @@ -168,7 +198,10 @@ where }) } - fn commit_transaction(&mut self, output: Self::Result) -> Result { + fn commit_transaction( + &mut self, + output: Self::Result, + ) -> Result { let EvTxResult { result: ResultAndState { result, state }, blob_gas_used, @@ -178,8 +211,13 @@ where self.system_caller .on_state(StateChangeSource::Transaction(self.receipts.len()), &state); - let gas_used = result.gas_used(); - self.gas_used += gas_used; + let tx_gas_used = result.gas().tx_gas_used(); + let regular_gas_used = result.gas().block_regular_gas_used(); + let state_gas_used = result.gas().block_state_gas_used(); + + self.block_regular_gas_used += regular_gas_used; + self.block_state_gas_used += state_gas_used; + self.cumulative_tx_gas_used += tx_gas_used; if self .spec @@ -194,12 +232,12 @@ where evm: &self.evm, result, state: &state, - cumulative_gas_used: self.gas_used, + cumulative_gas_used: self.cumulative_tx_gas_used, })); self.evm.db_mut().commit(state); - Ok(gas_used) + Ok(GasOutput::with_state_gas(tx_gas_used, state_gas_used)) } fn receipts(&self) -> &[Self::Receipt] { @@ -222,10 +260,8 @@ where requests.push_request_with_type(eip6110::DEPOSIT_REQUEST_TYPE, deposit_requests); } - requests.extend( - self.system_caller - .apply_post_execution_changes(&mut self.evm)?, - ); + self.system_caller + .append_post_execution_changes(&mut self.evm, &mut requests)?; requests } else { Requests::default() @@ -270,12 +306,18 @@ where }) })?; + let gas_used = if self.evm.cfg_env().enable_amsterdam_eip8037 { + self.max_block_gas_used() + } else { + self.cumulative_tx_gas_used + }; + Ok(( self.evm, BlockExecutionResult { receipts: self.receipts, requests, - gas_used: self.gas_used, + gas_used, blob_gas_used: self.blob_gas_used, }, )) diff --git a/crates/node/src/executor.rs b/crates/node/src/executor.rs index baa45d3..70dbd18 100644 --- a/crates/node/src/executor.rs +++ b/crates/node/src/executor.rs @@ -248,7 +248,7 @@ where gas_limit, basefee: basefee.unwrap_or_default(), blob_excess_gas_and_price, - slot_num: 0, // EL client — CL slot tracking not applicable + slot_num: attributes.slot_number.unwrap_or_default(), }; Ok(EvmEnv { @@ -272,6 +272,7 @@ where .as_ref() .map(|w| std::borrow::Cow::Borrowed(w.as_slice())), extra_data: block.header().extra_data.clone(), + slot_number: block.header().slot_number, }) } @@ -289,6 +290,7 @@ where .withdrawals .map(|w| std::borrow::Cow::Owned(w.into_inner())), extra_data: attributes.extra_data, + slot_number: attributes.slot_number, }) } } @@ -354,7 +356,7 @@ where gas_limit: payload.payload.gas_limit(), basefee: payload.payload.saturated_base_fee_per_gas(), blob_excess_gas_and_price, - slot_num: 0, // EL client — CL slot tracking not applicable + slot_num: payload.payload.slot_number().unwrap_or_default(), }; Ok(EvmEnv { cfg_env, block_env }) @@ -374,6 +376,7 @@ where .withdrawals() .map(|w| std::borrow::Cow::Owned(w.clone())), extra_data: payload.payload.as_v1().extra_data.clone(), + slot_number: payload.payload.slot_number(), }) } diff --git a/crates/node/src/payload_service.rs b/crates/node/src/payload_service.rs index 96b2b5e..e58122e 100644 --- a/crates/node/src/payload_service.rs +++ b/crates/node/src/payload_service.rs @@ -247,7 +247,8 @@ where fee_recipient, parent_header.hash(), block_number, - ); + ) + .with_slot_number(attributes.slot_number()); // Build the payload using the evolve payload builder - use spawn_blocking for async work. let evolve_builder = self.evolve_builder.clone(); @@ -312,7 +313,8 @@ where fee_recipient, parent_header.hash(), block_number, - ); + ) + .with_slot_number(attributes.slot_number()); // Build empty payload - use spawn_blocking for async work. let evolve_builder = self.evolve_builder.clone(); @@ -420,6 +422,7 @@ mod tests { suggested_fee_recipient: Address::random(), withdrawals: Some(vec![]), parent_beacon_block_root: Some(B256::ZERO), + slot_number: None, }, transactions: None, gas_limit: Some(30_000_000), @@ -516,6 +519,7 @@ mod tests { suggested_fee_recipient: Address::random(), withdrawals: Some(vec![]), parent_beacon_block_root: Some(B256::ZERO), + slot_number: None, }, transactions: None, gas_limit: Some(30_000_000), @@ -602,6 +606,7 @@ mod tests { suggested_fee_recipient: Address::random(), withdrawals: Some(vec![]), parent_beacon_block_root: Some(B256::ZERO), + slot_number: None, }, transactions: Some(vec![invalid_tx]), gas_limit: Some(30_000_000), diff --git a/crates/node/src/payload_types.rs b/crates/node/src/payload_types.rs index 26614ea..5fc965c 100644 --- a/crates/node/src/payload_types.rs +++ b/crates/node/src/payload_types.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use alloy_eips::eip7685::Requests; +use alloy_eips::{eip7685::Requests, eip7928::EMPTY_BLOCK_ACCESS_LIST_HASH}; use alloy_primitives::{Bytes, U256}; use alloy_rpc_types_engine::{ BlobsBundleV1, BlobsBundleV2, ExecutionPayloadEnvelopeV2, ExecutionPayloadEnvelopeV3, @@ -226,12 +226,18 @@ impl TryFrom for ExecutionPayloadEnvelopeV6 { } }; + let block_hash = block.hash(); + let block_access_list = block.header().block_access_list_hash.map_or_else( + || Bytes::copy_from_slice(EMPTY_BLOCK_ACCESS_LIST_HASH.as_slice()), + |hash| Bytes::copy_from_slice(hash.as_slice()), + ); + let slot_number = block.header().slot_number.unwrap_or_default(); + let block = Arc::unwrap_or_clone(block).into_block(); + let execution_payload = ExecutionPayloadV4 { - payload_inner: ExecutionPayloadV3::from_block_unchecked( - block.hash(), - &Arc::unwrap_or_clone(block).into_block(), - ), - block_access_list: Bytes::new(), + payload_inner: ExecutionPayloadV3::from_block_unchecked(block_hash, &block), + block_access_list, + slot_number, }; Ok(Self { diff --git a/crates/node/src/validator.rs b/crates/node/src/validator.rs index 807f1c1..1bc3f81 100644 --- a/crates/node/src/validator.rs +++ b/crates/node/src/validator.rs @@ -175,8 +175,10 @@ fn parse_evolve_payload( .map(|w| alloy_consensus::proofs::calculate_withdrawals_root(w)), blob_gas_used: payload.blob_gas_used(), excess_blob_gas: payload.excess_blob_gas(), + block_access_list_hash: payload.bal_hash(), parent_beacon_block_root: sidecar.parent_beacon_block_root(), requests_hash: sidecar.requests_hash(), + slot_number: payload.slot_number(), }; // Build block body. diff --git a/crates/tests/src/e2e_tests.rs b/crates/tests/src/e2e_tests.rs index eee0bb2..51dd22c 100644 --- a/crates/tests/src/e2e_tests.rs +++ b/crates/tests/src/e2e_tests.rs @@ -124,6 +124,7 @@ pub(crate) async fn build_block_with_transactions( suggested_fee_recipient, withdrawals: Some(vec![]), parent_beacon_block_root: Some(B256::ZERO), + slot_number: None, }, transactions: Some(transactions), gas_limit, diff --git a/crates/tests/src/test_evolve_engine_api.rs b/crates/tests/src/test_evolve_engine_api.rs index d062c5e..4b705ed 100644 --- a/crates/tests/src/test_evolve_engine_api.rs +++ b/crates/tests/src/test_evolve_engine_api.rs @@ -314,6 +314,7 @@ async fn test_e2e_engine_api_gas_limit_handling() -> Result<()> { suggested_fee_recipient: fee_recipient, withdrawals: Some(vec![]), parent_beacon_block_root: Some(B256::ZERO), + slot_number: None, }, transactions: Some(invalid_batch), gas_limit: Some(0),