diff --git a/Cargo.lock b/Cargo.lock index 19b979cf..6ca90b7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -101,9 +101,9 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea8ebf106e84a1c37f86244df7da0c7587e697b71a0d565cce079449b85ac6f8" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-core", - "alloy-eips 0.5.4", + "alloy-eips", "alloy-genesis", "alloy-provider", "alloy-rpc-client", @@ -126,27 +126,13 @@ dependencies = [ "strum", ] -[[package]] -name = "alloy-consensus" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" -dependencies = [ - "alloy-eips 0.4.2", - "alloy-primitives 0.8.9", - "alloy-rlp", - "auto_impl", - "c-kzg", - "derive_more 1.0.0", -] - [[package]] name = "alloy-consensus" version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-serde", @@ -202,16 +188,6 @@ dependencies = [ "serde", ] -[[package]] -name = "alloy-eip7702" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" -dependencies = [ - "alloy-primitives 0.8.9", - "alloy-rlp", -] - [[package]] name = "alloy-eip7702" version = "0.3.2" @@ -228,23 +204,6 @@ dependencies = [ "serde_with", ] -[[package]] -name = "alloy-eips" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702 0.1.1", - "alloy-primitives 0.8.9", - "alloy-rlp", - "c-kzg", - "derive_more 1.0.0", - "once_cell", - "serde", - "sha2 0.10.8", -] - [[package]] name = "alloy-eips" version = "0.5.4" @@ -252,7 +211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" dependencies = [ "alloy-eip2930", - "alloy-eip7702 0.3.2", + "alloy-eip7702", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-serde", @@ -309,8 +268,8 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives 0.8.9", @@ -330,8 +289,8 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-serde", "serde", @@ -398,8 +357,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4814d141ede360bb6cd1b4b064f1aab9de391e7c4d0d4d50ac89ea4bc1e25fbd" dependencies = [ "alloy-chains", - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -538,7 +497,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45357a642081c8ce235c0ad990c4e9279f5f18a723545076b38cfcc05cc25234" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "serde", @@ -562,8 +521,8 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "886d22d41992287a235af2f3af4299b5ced2bcafb81eb835572ad35747476946" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-serde", @@ -583,8 +542,8 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-network-primitives", "alloy-primitives 0.8.9", "alloy-rlp", @@ -603,7 +562,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3246948dfa5f5060a9abe04233d741ea656ef076b12958f3242416ce9f375058" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-serde", "serde", @@ -668,7 +627,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-network", "alloy-primitives 0.8.9", "alloy-signer", @@ -4801,8 +4760,6 @@ name = "mev-build-rs" version = "0.3.0" dependencies = [ "alloy", - "alloy-consensus 0.4.2", - "alloy-eips 0.4.2", "async-trait", "beacon-api-client", "clap", @@ -4813,8 +4770,11 @@ dependencies = [ "pin-project", "reth", "reth-basic-payload-builder", + "reth-chain-state", "reth-db", + "reth-errors", "reth-evm", + "reth-evm-ethereum", "reth-node-ethereum", "serde", "sha2 0.10.8", @@ -5289,8 +5249,8 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba7c98055fd048073738df0cc6d6537e992a0d8828f39d99a469e870db126dbd" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-serde", @@ -5307,8 +5267,8 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d631e8113cf88d30e621022677209caa148a9ca3ccb590fd34bbd1c731e3aff3" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-sol-types", "serde", @@ -5321,8 +5281,8 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b39574acb1873315e6bd89df174f6223e897188fb87eeea2ad1eda04f7d28eb" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-serde", @@ -6276,8 +6236,8 @@ name = "reth" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-rpc-types", @@ -6348,7 +6308,7 @@ name = "reth-auto-seal-consensus" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "futures-util", @@ -6379,7 +6339,7 @@ name = "reth-basic-payload-builder" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-primitives 0.8.9", "alloy-rlp", "futures-core", @@ -6404,7 +6364,7 @@ name = "reth-beacon-consensus" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "futures", @@ -6439,7 +6399,7 @@ name = "reth-blockchain-tree" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "aquamarine", "linked_hash_set", @@ -6485,7 +6445,7 @@ name = "reth-chain-state" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "auto_impl", "derive_more 1.0.0", @@ -6510,8 +6470,8 @@ version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ "alloy-chains", - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives 0.8.9", "auto_impl", @@ -6544,7 +6504,7 @@ version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ "ahash", - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "backon", "clap", @@ -6611,7 +6571,7 @@ name = "reth-cli-util" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "cfg-if", "eyre", @@ -6628,8 +6588,8 @@ name = "reth-codecs" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-trie", @@ -6668,7 +6628,7 @@ name = "reth-consensus" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "auto_impl", "derive_more 1.0.0", @@ -6680,7 +6640,7 @@ name = "reth-consensus-common" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-primitives 0.8.9", "reth-chainspec", "reth-consensus", @@ -6693,8 +6653,8 @@ name = "reth-consensus-debug-client" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-provider", "alloy-rpc-types", @@ -6885,7 +6845,7 @@ name = "reth-downloaders" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "futures", @@ -7011,7 +6971,7 @@ name = "reth-engine-tree" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "futures", @@ -7048,8 +7008,8 @@ name = "reth-engine-util" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "eyre", @@ -7122,7 +7082,7 @@ version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ "alloy-chains", - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "bytes", @@ -7149,8 +7109,8 @@ name = "reth-ethereum-consensus" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "reth-chainspec", "reth-consensus", @@ -7164,7 +7124,7 @@ name = "reth-ethereum-engine-primitives" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-rpc-types-engine", @@ -7200,8 +7160,8 @@ name = "reth-ethereum-payload-builder" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "reth-basic-payload-builder", "reth-chain-state", @@ -7237,7 +7197,7 @@ name = "reth-evm" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "auto_impl", "futures-util", @@ -7262,8 +7222,8 @@ name = "reth-evm-ethereum" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-sol-types", "reth-chainspec", @@ -7281,7 +7241,7 @@ name = "reth-execution-errors" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "derive_more 1.0.0", @@ -7297,7 +7257,7 @@ name = "reth-execution-types" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "reth-execution-errors", "reth-primitives", @@ -7312,7 +7272,7 @@ name = "reth-exex" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "eyre", "futures", @@ -7348,7 +7308,7 @@ name = "reth-exex-types" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "reth-chain-state", "reth-execution-types", @@ -7477,7 +7437,7 @@ name = "reth-network" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "aquamarine", @@ -7551,7 +7511,7 @@ name = "reth-network-p2p" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "auto_impl", "derive_more 1.0.0", @@ -7704,7 +7664,7 @@ name = "reth-node-core" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "clap", @@ -7781,7 +7741,7 @@ name = "reth-node-events" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "futures", @@ -7883,7 +7843,7 @@ name = "reth-payload-validator" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-rpc-types", "reth-chainspec", "reth-primitives", @@ -7895,8 +7855,8 @@ name = "reth-primitives" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-serde", @@ -7925,8 +7885,8 @@ name = "reth-primitives-traits" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-rlp", @@ -7946,8 +7906,8 @@ name = "reth-provider" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "auto_impl", @@ -8029,7 +7989,7 @@ name = "reth-revm" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "reth-execution-errors", "reth-primitives", @@ -8045,9 +8005,9 @@ name = "reth-rpc" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-dyn-abi", - "alloy-eips 0.5.4", + "alloy-eips", "alloy-genesis", "alloy-network", "alloy-primitives 0.8.9", @@ -8111,7 +8071,7 @@ name = "reth-rpc-api" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-json-rpc", "alloy-primitives 0.8.9", "alloy-rpc-types", @@ -8173,7 +8133,7 @@ name = "reth-rpc-engine-api" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types-engine", "async-trait", @@ -8204,9 +8164,9 @@ name = "reth-rpc-eth-api" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-dyn-abi", - "alloy-eips 0.5.4", + "alloy-eips", "alloy-json-rpc", "alloy-network", "alloy-primitives 0.8.9", @@ -8246,8 +8206,8 @@ name = "reth-rpc-eth-types" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rpc-types", "alloy-rpc-types-eth", @@ -8319,8 +8279,8 @@ name = "reth-rpc-types-compat" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-rpc-types", @@ -8442,8 +8402,8 @@ name = "reth-storage-api" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "auto_impl", "reth-chainspec", @@ -8462,7 +8422,7 @@ name = "reth-storage-errors" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-eips 0.5.4", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "derive_more 1.0.0", @@ -8518,8 +8478,8 @@ name = "reth-transaction-pool" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", - "alloy-eips 0.5.4", + "alloy-consensus", + "alloy-eips", "alloy-primitives 0.8.9", "alloy-rlp", "aquamarine", @@ -8554,7 +8514,7 @@ name = "reth-trie" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-primitives 0.8.9", "alloy-rlp", "auto_impl", @@ -8578,7 +8538,7 @@ name = "reth-trie-common" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?rev=8a40d5c6aabd8f232b9aaacce0ca474a480a9b64#8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" dependencies = [ - "alloy-consensus 0.5.4", + "alloy-consensus", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-rlp", @@ -8707,7 +8667,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d11fa1e195b0bebaf3fb18596f314a13ba3a4cb1fdd16d3465934d812fd921e" dependencies = [ "alloy-eip2930", - "alloy-eip7702 0.3.2", + "alloy-eip7702", "alloy-primitives 0.8.9", "auto_impl", "bitflags 2.6.0", diff --git a/Cargo.toml b/Cargo.toml index e5ca4796..ad6dc8de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,17 +33,16 @@ reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", rev reth-db = { git = "https://github.com/paradigmxyz/reth", rev = "8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" } reth-evm = { git = "https://github.com/paradigmxyz/reth", rev = "8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" } reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth", rev = "8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", rev = "8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", rev = "8a40d5c6aabd8f232b9aaacce0ca474a480a9b64" } alloy = { version = "0.5.4", features = [ - # "consensus", - # "eips", + "consensus", + "eips", "signers", "signer-local", "signer-mnemonic", ] } -# TODO: use `alloy` crate with `eips` feature, should be possible in next reth release -alloy-eips = "0.4.2" -# TODO: use `alloy` crate with `eips` feature, should be possible in next reth release -alloy-consensus = "0.4.2" futures = "0.3.21" tokio = "1.0" diff --git a/mev-build-rs/Cargo.toml b/mev-build-rs/Cargo.toml index ad778333..3ce0b908 100644 --- a/mev-build-rs/Cargo.toml +++ b/mev-build-rs/Cargo.toml @@ -32,9 +32,10 @@ reth-basic-payload-builder = { workspace = true } reth-db = { workspace = true } reth-evm = { workspace = true } reth-node-ethereum = { workspace = true } +reth-chain-state = { workspace = true } +reth-evm-ethereum = { workspace = true } +reth-errors = { workspace = true } alloy = { workspace = true } -alloy-eips = { workspace = true } -alloy-consensus = { workspace = true } sha2 = { workspace = true } eyre = { workspace = true } diff --git a/mev-build-rs/src/auctioneer/service.rs b/mev-build-rs/src/auctioneer/service.rs index 9174fd80..3e29246f 100644 --- a/mev-build-rs/src/auctioneer/service.rs +++ b/mev-build-rs/src/auctioneer/service.rs @@ -22,8 +22,11 @@ use mev_rs::{ BlindedBlockRelayer, Relay, }; use reth::{ - api::{EngineTypes, PayloadBuilderAttributes}, - payload::{EthBuiltPayload, Events, PayloadBuilder, PayloadBuilderHandle, PayloadId}, + api::{BuiltPayload, EngineTypes, PayloadBuilderAttributes}, + payload::{ + EthBuiltPayload, Events, PayloadBuilder, PayloadBuilderError, PayloadBuilderHandle, + PayloadId, + }, }; use serde::Deserialize; use std::{ @@ -63,7 +66,6 @@ fn prepare_submission( }; let fork = context.fork_for(auction_context.slot); let execution_payload = to_execution_payload(payload.block(), fork)?; - let execution_requests = to_execution_requests(payload.block(), fork)?; let signature = sign_builder_message(&message, signing_key, context)?; let submission = match fork { Fork::Bellatrix => { @@ -87,6 +89,14 @@ fn prepare_submission( signature, }), Fork::Electra => { + let executed_block = payload + .executed_block() + .ok_or_else(|| Error::PayloadBuilderError(PayloadBuilderError::MissingPayload))?; + + let execution_output = executed_block.execution_output.as_ref(); + // NOTE: assume the target requests we want are the first entry; + let requests = execution_output.requests.first(); + let execution_requests = to_execution_requests(requests, fork)?; SignedBidSubmission::Electra(block_submission::electra::SignedBidSubmission { message, execution_payload, @@ -246,7 +256,7 @@ impl< // TODO: work out cancellation discipline let auction = self.store_auction(auction); - if let Err(err) = self.builder.new_payload(auction.attributes.clone()).await { + if let Err(err) = self.builder.send_new_payload(auction.attributes.clone()).await { warn!(%err, "could not start build with payload builder"); return None } diff --git a/mev-build-rs/src/compat.rs b/mev-build-rs/src/compat.rs index d0172aa7..3a1ffa6e 100644 --- a/mev-build-rs/src/compat.rs +++ b/mev-build-rs/src/compat.rs @@ -1,15 +1,15 @@ use crate::Error; -use alloy_eips::eip2718::Encodable2718; +use alloy::eips::{eip2718::Encodable2718, eip7685::Requests}; use ethereum_consensus::{ - crypto::{self, KzgCommitment, KzgProof}, + crypto::{KzgCommitment, KzgProof}, primitives::{Bytes32, ExecutionAddress}, - ssz::prelude::{ByteList, ByteVector, DeserializeError, SimpleSerializeError, U256}, + ssz::prelude::{deserialize, ByteList, ByteVector, SimpleSerializeError, U256}, Fork, }; use mev_rs::types::{BlobsBundle, ExecutionPayload}; use reth::primitives::{ revm_primitives::{alloy_primitives::Bloom, Address, B256}, - BlobTransactionSidecar, Request, SealedBlock, + BlobTransactionSidecar, SealedBlock, }; #[cfg(not(feature = "minimal-preset"))] @@ -30,46 +30,27 @@ fn to_byte_vector(value: Bloom) -> ByteVector<256> { } pub fn to_execution_requests( - block: &SealedBlock, + payload_requests: Option<&Requests>, fork: Fork, ) -> Result { - let input = block.body.requests.as_ref(); let mut requests = electra::ExecutionRequests::default(); - if let Some(input) = input { - for request in &input.0 { - match request { - Request::DepositRequest(request) => { - requests.deposits.push(electra::DepositRequest { - public_key: TryFrom::try_from(request.pubkey.as_ref()) - .map_err(|err: crypto::BlsError| Error::Consensus(err.into()))?, - withdrawal_credentials: TryFrom::try_from( - request.withdrawal_credentials.as_ref(), - ) - .map_err(|err: DeserializeError| { - Error::Consensus(SimpleSerializeError::Deserialize(err).into()) - })?, - amount: request.amount, - signature: TryFrom::try_from(request.signature.as_ref()) - .map_err(|err: crypto::BlsError| Error::Consensus(err.into()))?, - index: request.index, - }); + if let Some(payload_requests) = payload_requests { + for (index, request_data) in payload_requests.iter().enumerate() { + match index { + 0 => { + requests.deposits = deserialize(&request_data).map_err(|err| { + Error::Consensus(SimpleSerializeError::Deserialize(err).into()) + })?; } - Request::WithdrawalRequest(request) => { - requests.withdrawals.push(electra::WithdrawalRequest { - source_address: to_bytes20(request.source_address), - validator_public_key: TryFrom::try_from(request.validator_pubkey.as_ref()) - .map_err(|err: crypto::BlsError| Error::Consensus(err.into()))?, - amount: request.amount, - }); + 1 => { + requests.withdrawals = deserialize(&request_data).map_err(|err| { + Error::Consensus(SimpleSerializeError::Deserialize(err).into()) + })?; } - Request::ConsolidationRequest(request) => { - requests.consolidations.push(electra::ConsolidationRequest { - source_address: to_bytes20(request.source_address), - source_public_key: TryFrom::try_from(request.source_pubkey.as_ref()) - .map_err(|err: crypto::BlsError| Error::Consensus(err.into()))?, - target_public_key: TryFrom::try_from(request.target_pubkey.as_ref()) - .map_err(|err: crypto::BlsError| Error::Consensus(err.into()))?, - }); + 2 => { + requests.consolidations = deserialize(&request_data).map_err(|err| { + Error::Consensus(SimpleSerializeError::Deserialize(err).into()) + })?; } _ => return Err(Error::UnsupportedFork(fork)), } diff --git a/mev-build-rs/src/node.rs b/mev-build-rs/src/node.rs index a457c003..b87b200f 100644 --- a/mev-build-rs/src/node.rs +++ b/mev-build-rs/src/node.rs @@ -14,8 +14,7 @@ use reth::{ }, }; use reth_node_ethereum::node::{ - EthereumConsensusBuilder, EthereumEngineValidatorBuilder, EthereumExecutorBuilder, - EthereumNetworkBuilder, EthereumPoolBuilder, + EthereumConsensusBuilder, EthereumExecutorBuilder, EthereumNetworkBuilder, EthereumPoolBuilder, }; #[derive(Debug, Default, Clone, Copy)] @@ -32,7 +31,6 @@ impl BuilderNode { EthereumNetworkBuilder, EthereumExecutorBuilder, EthereumConsensusBuilder, - EthereumEngineValidatorBuilder, > where Node: FullNodeTypes< @@ -46,7 +44,6 @@ impl BuilderNode { .network(EthereumNetworkBuilder::default()) .executor(EthereumExecutorBuilder::default()) .consensus(EthereumConsensusBuilder::default()) - .engine_validator(EthereumEngineValidatorBuilder::default()) } } @@ -70,7 +67,7 @@ impl PayloadTypes for BuilderEngineTypes { impl EngineTypes for BuilderEngineTypes { type ExecutionPayloadV1 = ExecutionPayloadV1; - type ExecutionPayloadV2 = ExecutionPayloadEnvelopeV2; - type ExecutionPayloadV3 = ExecutionPayloadEnvelopeV3; - type ExecutionPayloadV4 = ExecutionPayloadEnvelopeV4; + type ExecutionPayloadEnvelopeV2 = ExecutionPayloadEnvelopeV2; + type ExecutionPayloadEnvelopeV3 = ExecutionPayloadEnvelopeV3; + type ExecutionPayloadEnvelopeV4 = ExecutionPayloadEnvelopeV4; } diff --git a/mev-build-rs/src/payload/builder.rs b/mev-build-rs/src/payload/builder.rs index 3b8be5e1..9df05989 100644 --- a/mev-build-rs/src/payload/builder.rs +++ b/mev-build-rs/src/payload/builder.rs @@ -1,15 +1,19 @@ use crate::payload::{attributes::BuilderPayloadBuilderAttributes, job::PayloadFinalizerConfig}; -use alloy::signers::{local::PrivateKeySigner, SignerSync}; -use alloy_consensus::TxEip1559; +use alloy::{ + consensus::{ + constants::{EMPTY_RECEIPTS, EMPTY_TRANSACTIONS}, + TxEip1559, EMPTY_OMMER_ROOT_HASH, + }, + eips::eip7685::{Requests, EMPTY_REQUESTS_HASH}, + signers::{local::PrivateKeySigner, SignerSync}, +}; use mev_rs::compute_preferred_gas_limit; use reth::{ api::PayloadBuilderAttributes, chainspec::{ChainSpec, EthereumHardforks}, payload::{EthBuiltPayload, PayloadBuilderError, PayloadId}, primitives::{ - constants::{ - eip4844::MAX_DATA_GAS_PER_BLOCK, BEACON_NONCE, EMPTY_RECEIPTS, EMPTY_TRANSACTIONS, - }, + constants::{eip4844::MAX_DATA_GAS_PER_BLOCK, BEACON_NONCE}, proofs, revm_primitives::{ alloy_primitives::{ChainId, Parity}, @@ -17,7 +21,7 @@ use reth::{ }, transaction::FillTxEnv, Block, BlockBody, Header, Receipt, Receipts, SealedBlock, Signature, Transaction, - TransactionSigned, TransactionSignedEcRecovered, EMPTY_OMMER_ROOT_HASH, + TransactionSigned, TransactionSignedEcRecovered, }, providers::{ExecutionOutcome, StateProviderFactory}, revm::{ @@ -33,7 +37,10 @@ use reth_basic_payload_builder::{ commit_withdrawals, is_better_payload, BuildArguments, BuildOutcome, PayloadConfig, WithdrawalsOutcome, }; +use reth_chain_state::ExecutedBlock; +use reth_errors::RethError; use reth_evm::{system_calls::SystemCaller, ConfigureEvm, ConfigureEvmEnv, NextBlockEnvAttributes}; +use reth_evm_ethereum::eip6110::parse_deposits_from_receipts; use reth_node_ethereum::EthEvmConfig; use std::{ collections::HashMap, @@ -374,7 +381,7 @@ where let block_number = block_env.number.to::(); let block_gas_limit: u64 = block_env.gas_limit.try_into().unwrap_or(u64::MAX); - let mut system_caller = SystemCaller::new(&self.evm_config, chain_spec.clone()); + let mut system_caller = SystemCaller::new(self.evm_config.clone(), chain_spec.clone()); // apply eip-4788 pre block contract call system_caller.pre_block_beacon_root_contract_call( @@ -426,7 +433,7 @@ where blob_gas_used = Some(0); } - let header = Header { + let mut header = Header { parent_hash: parent_block.hash(), ommers_hash: EMPTY_OMMER_ROOT_HASH, beneficiary: block_env.coinbase, @@ -447,10 +454,14 @@ where blob_gas_used, excess_blob_gas, parent_beacon_block_root: attributes.parent_beacon_block_root(), - requests_root: None, + requests_hash: None, }; - let body = BlockBody { transactions: vec![], withdrawals, ommers: vec![], requests: None }; + if chain_spec.is_prague_active_at_timestamp(header.timestamp) { + header.requests_hash = Some(EMPTY_REQUESTS_HASH); + } + + let body = BlockBody { transactions: vec![], withdrawals, ommers: vec![] }; let block = Block { header, body }; let sealed_block = block.seal_slow(); @@ -501,7 +512,7 @@ where let block_number = block_env.number.to::(); - let mut system_caller = SystemCaller::new(&evm_config, chain_spec.clone()); + let mut system_caller = SystemCaller::new(evm_config.clone(), chain_spec.clone()); // apply eip-4788 pre block contract call system_caller.pre_block_beacon_root_contract_call( @@ -551,7 +562,7 @@ where let env = EnvWithHandlerCfg::new_with_cfg_env( cfg_env.clone(), block_env.clone(), - evm_config.tx_env(&tx), + evm_config.tx_env(&tx, tx.signer()), ); // Configure the environment for the block. @@ -628,6 +639,21 @@ where return Ok((BuildOutcome::Aborted { fees: total_fees, cached_reads }, None)) } + let requests = if chain_spec.is_prague_active_at_timestamp(attributes.timestamp()) { + let deposit_requests = parse_deposits_from_receipts(&chain_spec, receipts.iter().flatten()) + .map_err(|err| PayloadBuilderError::Internal(RethError::Execution(err.into())))?; + let withdrawal_requests = system_caller + .post_block_withdrawal_requests_contract_call(&mut db, &cfg_env, &block_env) + .map_err(|err| PayloadBuilderError::Internal(err.into()))?; + let consolidation_requests = system_caller + .post_block_consolidation_requests_contract_call(&mut db, &cfg_env, &block_env) + .map_err(|err| PayloadBuilderError::Internal(err.into()))?; + + Some(Requests::new(vec![deposit_requests, withdrawal_requests, consolidation_requests])) + } else { + None + }; + let WithdrawalsOutcome { withdrawals_root, withdrawals } = commit_withdrawals( &mut db, chain_spec, @@ -637,14 +663,14 @@ where // merge all transitions into bundle state, this would apply the withdrawal balance changes // and 4788 contract call - db.merge_transitions(BundleRetention::PlainState); + db.merge_transitions(BundleRetention::Reverts); - // TODO: final parameter is for EIP-7685 requests + let requests_hash = requests.as_ref().map(|requests| requests.requests_hash()); let execution_outcome = ExecutionOutcome::new( db.take_bundle(), Receipts::from(vec![receipts]), block_number, - vec![], + vec![requests.unwrap_or_default()], ); let receipts_root = execution_outcome.receipts_root_slow(block_number).expect("Number is in range"); @@ -703,18 +729,26 @@ where parent_beacon_block_root: attributes.parent_beacon_block_root(), blob_gas_used, excess_blob_gas, - requests_root: None, + requests_hash, }; // seal the block - let body = - BlockBody { transactions: executed_txs, withdrawals, ommers: vec![], requests: None }; + let body = BlockBody { transactions: executed_txs, withdrawals, ommers: vec![] }; let block = Block { header, body }; let sealed_block = block.seal_slow(); debug!(target: "payload_builder", ?sealed_block, "sealed built block"); - let mut payload = EthBuiltPayload::new(attributes.payload_id(), sealed_block, total_fees, None); + let executed = ExecutedBlock { + block: Arc::new(sealed_block.clone()), + senders: Arc::new(vec![]), + execution_output: Arc::new(execution_outcome.clone()), + hashed_state: Arc::new(Default::default()), + trie: Arc::new(Default::default()), + }; + + let mut payload = + EthBuiltPayload::new(attributes.payload_id(), sealed_block, total_fees, Some(executed)); // extend the payload with the blob sidecars from the executed txs payload.extend_sidecars(blob_sidecars); diff --git a/mev-build-rs/src/payload/job.rs b/mev-build-rs/src/payload/job.rs index 9ba033aa..53abae8f 100644 --- a/mev-build-rs/src/payload/job.rs +++ b/mev-build-rs/src/payload/job.rs @@ -76,7 +76,10 @@ where Ok(self.config.attributes.clone()) } - fn resolve(&mut self) -> (Self::ResolvePayloadFuture, KeepPayloadJobAlive) { + fn resolve_kind( + &mut self, + _kind: payload::PayloadKind, + ) -> (Self::ResolvePayloadFuture, KeepPayloadJobAlive) { let best_payload = self.best_payload.take(); let maybe_better = self.pending_block.take(); let mut empty_payload = None;