From 5bd61a2baca6fd42e7a3f678da7759bd903fb7da Mon Sep 17 00:00:00 2001 From: Brecht Devos Date: Sat, 11 Jan 2025 02:16:13 +0100 Subject: [PATCH] sync composability with state deltas --- Cargo.lock | 227 +++++++++--------- Cargo.toml | 75 ++++-- crates/rbuilder/Cargo.toml | 2 + .../rbuilder/src/bin/debug-bench-machine.rs | 7 +- .../builders/block_building_helper.rs | 2 +- crates/rbuilder/src/building/mod.rs | 157 +++++++++--- crates/rbuilder/src/building/order_commit.rs | 7 +- crates/rbuilder/src/live_builder/mod.rs | 28 ++- .../src/live_builder/simulation/sim_worker.rs | 5 +- crates/rbuilder/src/proposing/mod.rs | 121 +++++++++- 10 files changed, 451 insertions(+), 180 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 83abedb8..21182b81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3891,11 +3891,12 @@ dependencies = [ [[package]] name = "gwyneth" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", + "bincode", "eyre", "futures", "futures-util", @@ -5342,7 +5343,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -6178,7 +6179,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn 2.0.72", @@ -7603,6 +7604,7 @@ dependencies = [ "atoi", "beacon-api-client", "bigdecimal 0.4.5", + "bincode", "built", "clap", "criterion", @@ -7897,7 +7899,7 @@ dependencies = [ [[package]] name = "reth" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "aquamarine", @@ -7980,7 +7982,7 @@ dependencies = [ [[package]] name = "reth-auto-seal-consensus" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures-util", "reth-beacon-consensus", @@ -8008,7 +8010,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "futures-core", @@ -8031,7 +8033,7 @@ dependencies = [ [[package]] name = "reth-beacon-consensus" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures", "itertools 0.13.0", @@ -8065,7 +8067,7 @@ dependencies = [ [[package]] name = "reth-blockchain-tree" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "aquamarine", "linked_hash_set", @@ -8089,6 +8091,8 @@ dependencies = [ "reth-trie", "reth-trie-db", "reth-trie-parallel", + "serde", + "serde_json", "tokio", "tracing", ] @@ -8096,7 +8100,7 @@ dependencies = [ [[package]] name = "reth-blockchain-tree-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -8108,7 +8112,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-signer", "alloy-signer-local", @@ -8134,7 +8138,7 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-chains", "alloy-eips", @@ -8154,7 +8158,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "ahash", "backon", @@ -8208,7 +8212,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-tasks", "tokio", @@ -8218,7 +8222,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-eips", "alloy-primitives 0.8.7", @@ -8233,7 +8237,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8249,7 +8253,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "convert_case 0.6.0", "proc-macro2", @@ -8260,7 +8264,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "eyre", "humantime-serde", @@ -8274,7 +8278,7 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "auto_impl", "derive_more 1.0.0", @@ -8284,7 +8288,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-consensus", @@ -8294,7 +8298,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8317,7 +8321,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "bytes", "derive_more 1.0.0", @@ -8348,7 +8352,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "arbitrary", "bytes", @@ -8371,7 +8375,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-genesis", "boyer-moore-magiclen", @@ -8397,7 +8401,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "arbitrary", "bytes", @@ -8411,7 +8415,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "alloy-rlp", @@ -8435,7 +8439,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "alloy-rlp", @@ -8459,7 +8463,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "data-encoding", @@ -8481,7 +8485,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "futures", @@ -8508,7 +8512,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "aes", "alloy-primitives 0.8.7", @@ -8539,7 +8543,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-payload-primitives", @@ -8549,7 +8553,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures", "pin-project", @@ -8573,7 +8577,7 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures", "metrics", @@ -8608,7 +8612,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "eyre", "futures", @@ -8638,7 +8642,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-blockchain-tree-api", "reth-consensus", @@ -8651,7 +8655,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "bytes", @@ -8676,7 +8680,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-chains", "alloy-genesis", @@ -8692,7 +8696,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-consensus", @@ -8704,7 +8708,7 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "reth-chainspec", @@ -8722,7 +8726,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-chains", "alloy-primitives 0.8.7", @@ -8742,7 +8746,7 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-basic-payload-builder", "reth-errors", @@ -8762,7 +8766,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "rayon", "reth-db-api", @@ -8772,7 +8776,7 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-eips", "auto_impl", @@ -8790,7 +8794,7 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-eips", "alloy-sol-types", @@ -8809,7 +8813,7 @@ dependencies = [ [[package]] name = "reth-evm-optimism" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-ethereum-forks", @@ -8829,7 +8833,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-eips", "alloy-primitives 0.8.7", @@ -8845,18 +8849,19 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-execution-errors", "reth-primitives", "reth-trie", "revm", + "serde", ] [[package]] name = "reth-exex" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "eyre", "futures", @@ -8883,7 +8888,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "reth-provider", @@ -8892,7 +8897,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "serde", "serde_json", @@ -8902,7 +8907,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "async-trait", "bytes", @@ -8923,7 +8928,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "bitflags 2.6.0", "byteorder", @@ -8939,7 +8944,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "bindgen", "cc", @@ -8948,7 +8953,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures", "metrics", @@ -8960,7 +8965,7 @@ dependencies = [ [[package]] name = "reth-metrics-derive" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "proc-macro2", "quote", @@ -8971,7 +8976,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", ] @@ -8979,7 +8984,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures-util", "reqwest 0.12.5", @@ -8991,7 +8996,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "aquamarine", @@ -9039,7 +9044,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "alloy-rpc-types-admin", @@ -9062,7 +9067,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "auto_impl", "derive_more 1.0.0", @@ -9080,7 +9085,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "alloy-rlp", @@ -9095,7 +9100,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "humantime-serde", "reth-ethereum-forks", @@ -9109,7 +9114,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "anyhow", "bincode", @@ -9129,7 +9134,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-db-api", @@ -9147,7 +9152,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-network", "aquamarine", @@ -9205,7 +9210,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-genesis", "alloy-rpc-types-engine", @@ -9255,7 +9260,7 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "eyre", "reth-auto-seal-consensus", @@ -9279,7 +9284,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rpc-types-engine", "futures", @@ -9301,7 +9306,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "eyre", "http 1.1.0", @@ -9325,7 +9330,7 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-consensus", @@ -9337,12 +9342,12 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" [[package]] name = "reth-optimism-rpc" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "jsonrpsee-types 0.24.3", @@ -9374,7 +9379,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures-util", "metrics", @@ -9397,7 +9402,7 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chain-state", "reth-chainspec", @@ -9413,7 +9418,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-primitives", @@ -9424,7 +9429,7 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9449,6 +9454,7 @@ dependencies = [ "reth-primitives-traits", "reth-static-file-types", "reth-trie-common", + "revm", "revm-primitives", "secp256k1 0.29.0", "serde", @@ -9460,7 +9466,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9484,7 +9490,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rpc-types-engine", "auto_impl", @@ -9523,7 +9529,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "itertools 0.13.0", @@ -9549,7 +9555,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "bytes", @@ -9563,7 +9569,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "reth-chainspec", "reth-consensus-common", @@ -9578,7 +9584,7 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-dyn-abi", "alloy-genesis", @@ -9634,7 +9640,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-json-rpc", "jsonrpsee 0.24.3", @@ -9648,7 +9654,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "http 1.1.0", "jsonrpsee 0.24.3", @@ -9681,7 +9687,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "async-trait", "jsonrpsee-core 0.24.3", @@ -9709,7 +9715,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-dyn-abi", "alloy-json-rpc", @@ -9746,7 +9752,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-sol-types", "derive_more 1.0.0", @@ -9784,7 +9790,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rpc-types-engine", "http 1.1.0", @@ -9797,7 +9803,7 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "jsonrpsee-core 0.24.3", @@ -9813,7 +9819,7 @@ dependencies = [ [[package]] name = "reth-rpc-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "alloy-rpc-types", @@ -9833,7 +9839,7 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "alloy-rpc-types", @@ -9845,7 +9851,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "futures-util", "itertools 0.13.0", @@ -9879,7 +9885,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "aquamarine", @@ -9906,7 +9912,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "bytes", @@ -9919,7 +9925,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "parking_lot 0.12.3", @@ -9939,7 +9945,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-primitives 0.8.7", "clap", @@ -9951,7 +9957,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "auto_impl", "reth-chainspec", @@ -9967,7 +9973,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "derive_more 1.0.0", @@ -9978,7 +9984,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "auto_impl", "dyn-clone", @@ -9996,7 +10002,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "tokio", "tokio-stream", @@ -10006,7 +10012,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "clap", "eyre", @@ -10021,7 +10027,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "aquamarine", @@ -10053,7 +10059,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "auto_impl", @@ -10068,6 +10074,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", + "serde", "tracing", "triehash", ] @@ -10075,7 +10082,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -10098,7 +10105,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "auto_impl", @@ -10122,7 +10129,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.0.6" -source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth#b9f213f73bff01be454c7e879a33a5af1a81cb1e" +source = "git+https://github.com/taikoxyz/gwyneth?branch=gwyneth_with_debug_shit_revm_and_inspector#1b8dd7803a8ea373940c5a62ea9b52e5e8eef5be" dependencies = [ "alloy-rlp", "derive_more 1.0.0", @@ -10146,7 +10153,7 @@ dependencies = [ [[package]] name = "revm" version = "14.0.1" -source = "git+https://github.com/taikoxyz/revm.git?branch=v43-gwyneth#959611e7a6ceeb693acffe00ba8e4d976591479f" +source = "git+https://github.com/taikoxyz/revm.git?branch=gwyneth-debug-shit#c668ef09dc9a9f18af55d4e453026a5d2b541122" dependencies = [ "auto_impl", "cfg-if", @@ -10160,7 +10167,7 @@ dependencies = [ [[package]] name = "revm-inspectors" version = "0.6.0" -source = "git+https://github.com/taikoxyz/revm-inspectors.git?branch=main-rbuilder#a7db16ce222d58eac84cfeeed4b5a9541dadc1d0" +source = "git+https://github.com/taikoxyz/revm-inspectors.git?branch=main-rbuilder#95bcbfb09cfb7011cf0c3e360e3d7258bc8a8f84" dependencies = [ "alloy-primitives 0.8.7", "alloy-rpc-types-eth", @@ -10176,7 +10183,7 @@ dependencies = [ [[package]] name = "revm-interpreter" version = "10.0.1" -source = "git+https://github.com/taikoxyz/revm.git?branch=v43-gwyneth#959611e7a6ceeb693acffe00ba8e4d976591479f" +source = "git+https://github.com/taikoxyz/revm.git?branch=gwyneth-debug-shit#c668ef09dc9a9f18af55d4e453026a5d2b541122" dependencies = [ "revm-primitives", "serde", @@ -10185,7 +10192,7 @@ dependencies = [ [[package]] name = "revm-precompile" version = "11.0.1" -source = "git+https://github.com/taikoxyz/revm.git?branch=v43-gwyneth#959611e7a6ceeb693acffe00ba8e4d976591479f" +source = "git+https://github.com/taikoxyz/revm.git?branch=gwyneth-debug-shit#c668ef09dc9a9f18af55d4e453026a5d2b541122" dependencies = [ "aurora-engine-modexp", "blst", @@ -10203,7 +10210,7 @@ dependencies = [ [[package]] name = "revm-primitives" version = "9.0.1" -source = "git+https://github.com/taikoxyz/revm.git?branch=v43-gwyneth#959611e7a6ceeb693acffe00ba8e4d976591479f" +source = "git+https://github.com/taikoxyz/revm.git?branch=gwyneth-debug-shit#c668ef09dc9a9f18af55d4e453026a5d2b541122" dependencies = [ "alloy-eips", "alloy-primitives 0.8.7", diff --git a/Cargo.toml b/Cargo.toml index fc68c6ca..099abb06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0. reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6" } reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6" } reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6", features = ["test-utils"] } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6", features = ["test-utils", "serde"] } reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6" } reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6" } reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.0.6" } @@ -77,30 +77,57 @@ alloy-rpc-types-eth = { version = "0.3.0" } alloy-signer-local = { version = "0.3.0" } alloy-sol-types = { version = "0.8.2", default-features = false } +# misc +bincode = "1.3" + [patch.crates-io] -revm = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } -revm-primitives = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } -revm-interpreter = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } -revm-precompile = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } +# revm = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } +# revm-primitives = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } +# revm-interpreter = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } +# revm-precompile = { git = "https://github.com/taikoxyz/revm.git", branch = "v43-gwyneth" } +revm = { git = "https://github.com/taikoxyz/revm.git", branch = "gwyneth-debug-shit" } +revm-primitives = { git = "https://github.com/taikoxyz/revm.git", branch = "gwyneth-debug-shit" } +revm-interpreter = { git = "https://github.com/taikoxyz/revm.git", branch = "gwyneth-debug-shit" } +revm-precompile = { git = "https://github.com/taikoxyz/revm.git", branch = "gwyneth-debug-shit" } revm-inspectors = { git = "https://github.com/taikoxyz/revm-inspectors.git", branch = "main-rbuilder" } [patch."https://github.com/paradigmxyz/reth"] -reth = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-db = {git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-db-common = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-errors = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-libmdbx = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-payload-builder = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-node-api = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-trie = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-trie-parallel = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-basic-payload-builder = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-node-core = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-primitives = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-provider = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-chainspec = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-evm = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-evm-ethereum = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-db-api = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-execution-errors = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } -reth-trie-db = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth" } +reth = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-db = {git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-db-common = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-errors = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-libmdbx = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-payload-builder = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-node-api = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-trie = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-trie-parallel = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-basic-payload-builder = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-node-core = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-primitives = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-provider = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-chainspec = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-evm = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-evm-ethereum = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-db-api = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-execution-errors = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } +reth-trie-db = { git = "https://github.com/taikoxyz/gwyneth", branch = "gwyneth_with_debug_shit_revm_and_inspector" } + +#reth = { path = "../../revm-dani/gwyneth/bin/reth" } +#reth-db = { path = "../../revm-dani/gwyneth/crates/storage/db" } +#reth-db-common = { path = "../../revm-dani/gwyneth/crates/storage/db-common" } +#reth-errors = { path = "../../revm-dani/gwyneth/crates/errors" } +#reth-libmdbx = { path = "../../revm-dani/gwyneth/crates/storage/libmdbx-rs" } +#reth-payload-builder = { path = "../../revm-dani/gwyneth/crates/payload/builder" } +#reth-node-api = { path = "../../revm-dani/gwyneth/crates/node/api" } +#reth-trie = { path = "../../revm-dani/gwyneth/crates/trie/trie" } +#reth-trie-parallel = { path = "../../revm-dani/gwyneth/crates/trie/parallel" } +#reth-basic-payload-builder = { path = "../../revm-dani/gwyneth/crates/payload/basic" } +#reth-node-core = { path = "../../revm-dani/gwyneth/crates/node/core" } +#reth-primitives = { path = "../../revm-dani/gwyneth/crates/primitives" } +#reth-provider = { path = "../../revm-dani/gwyneth/crates/storage/provider" } +#reth-chainspec = { path = "../../revm-dani/gwyneth/crates/chainspec" } +#reth-evm = { path = "../../revm-dani/gwyneth/crates/evm" } +#reth-evm-ethereum = { path = "../../revm-dani/gwyneth/crates/ethereum/evm" } +#reth-db-api = { path = "../../revm-dani/gwyneth/crates/storage/db-api" } +#reth-execution-errors = { path = "../../revm-dani/gwyneth/crates/evm/execution-errors" } +#reth-trie-db = { path = "../../revm-dani/gwyneth/crates/trie/db" } \ No newline at end of file diff --git a/crates/rbuilder/Cargo.toml b/crates/rbuilder/Cargo.toml index 8476fb93..780d216d 100644 --- a/crates/rbuilder/Cargo.toml +++ b/crates/rbuilder/Cargo.toml @@ -60,6 +60,8 @@ alloy-sol-types.workspace = true ethereum_ssz_derive.workspace = true ethereum_ssz.workspace = true +bincode.workspace = true + test_utils = { path = "src/test_utils" } metrics_macros = { path = "src/telemetry/metrics_macros" } diff --git a/crates/rbuilder/src/bin/debug-bench-machine.rs b/crates/rbuilder/src/bin/debug-bench-machine.rs index 92423049..6a0422b7 100644 --- a/crates/rbuilder/src/bin/debug-bench-machine.rs +++ b/crates/rbuilder/src/bin/debug-bench-machine.rs @@ -14,7 +14,7 @@ use reth::providers::BlockNumReader; use reth_payload_builder::database::SyncCachedReads as CachedReads; use reth_provider::StateProvider; use revm_primitives::ChainAddress; -use std::{path::PathBuf, sync::Arc, time::Instant}; +use std::{collections::HashMap, path::PathBuf, sync::Arc, time::Instant}; use tracing::{debug, info}; #[derive(Parser, Debug)] @@ -116,11 +116,14 @@ async fn main() -> eyre::Result<()> { let build_time = build_time.elapsed(); + let mut factories = HashMap::default(); + factories.insert(chain_id, factory); + let finalize_time = Instant::now(); let finalized_block = partial_block.finalize( &mut state, &ctx, - factory.clone(), + factories, root_hash_config.clone(), config.base_config().root_hash_task_pool()?, )?; diff --git a/crates/rbuilder/src/building/builders/block_building_helper.rs b/crates/rbuilder/src/building/builders/block_building_helper.rs index 59feb36b..352e5474 100644 --- a/crates/rbuilder/src/building/builders/block_building_helper.rs +++ b/crates/rbuilder/src/building/builders/block_building_helper.rs @@ -376,7 +376,7 @@ impl BlockBuildingHelper for BlockBuildingHelper let finalized_block = match self.partial_block.clone().finalize( &mut self.block_state, &self.building_ctx, - provider_factory.clone(), + self.provider_factory.clone(), self.root_hash_config, self.root_hash_task_pool, ) { diff --git a/crates/rbuilder/src/building/mod.rs b/crates/rbuilder/src/building/mod.rs index 1f12c1d5..b67c9b71 100644 --- a/crates/rbuilder/src/building/mod.rs +++ b/crates/rbuilder/src/building/mod.rs @@ -12,8 +12,9 @@ pub mod testing; pub mod tracers; pub use block_orders::BlockOrders; use eth_sparse_mpt::SparseTrieSharedCache; -use reth_primitives::proofs::calculate_requests_root; -use revm_primitives::ChainAddress; +use reth_primitives::{proofs::calculate_requests_root, Requests}; +use reth_provider::execution_outcome_to_state_diff; +use revm_primitives::{Bytes, ChainAddress, B256}; use crate::{ primitives::{Order, OrderId, SimValue, SimulatedOrder, TransactionSignedEcRecoveredWithBlobs}, @@ -186,6 +187,7 @@ impl ChainBlockBuildingContext { extra_data: Vec, spec_id: Option, ) -> ChainBlockBuildingContext { + println!("from_attributes"); let attributes = EthPayloadBuilderAttributes::try_new( attributes.data.parent_block_hash, attributes.data.payload_attributes.clone(), @@ -683,11 +685,13 @@ impl PartialBlock { self, state: &mut BlockState, ctx: &BlockBuildingContext, - provider_factory: ProviderFactory, + provider_factories: HashMap>, root_hash_config: RootHashConfig, root_hash_task_pool: BlockingTaskPool, ) -> Result { - let ctx = &ctx.chains[&ctx.parent_chain_id]; + let super_ctx = ctx; + let chain_id = ctx.parent_chain_id; + let ctx = &super_ctx.chains[&chain_id]; let (withdrawals_root, withdrawals) = { let mut db = state.new_db_ref(); let WithdrawalsOutcome { @@ -738,6 +742,7 @@ impl PartialBlock { let requests_root = calculate_requests_root(&requests); (Some(requests.into()), Some(requests_root)) } else { + println!("prague not active"); (None, None) }; @@ -764,15 +769,15 @@ impl PartialBlock { // Brecht: state root calculation // TODO Brecht: Fix - let mut root_hash_config = root_hash_config; - root_hash_config.mode = RootHashMode::IgnoreParentHash; + let mut root_hash_config = root_hash_config.clone(); + //root_hash_config.mode = RootHashMode::IgnoreParentHash; let state_root = calculate_state_root( - provider_factory, + provider_factories.get(&chain_id).unwrap().clone(), ctx.attributes.parent, &execution_outcome, - root_hash_task_pool, + root_hash_task_pool.clone(), ctx.shared_sparse_mpt_cache.clone(), - root_hash_config, + root_hash_config.clone(), )?; // create the block header @@ -807,6 +812,97 @@ impl PartialBlock { (Some(0), Some(0)) }; + let mut chain_ids = Vec::new(); + for account in execution_outcome.bundle.state.keys() { + if !chain_ids.contains(&account.0) { + chain_ids.push(account.0); + } + } + + let mut blocks = HashMap::default(); + for chain_id in chain_ids { + let mut execution_outcome = execution_outcome.filter_chain(chain_id); + + let mut state_diff = execution_outcome_to_state_diff(&execution_outcome, B256::ZERO, self.gas_used); + // Filter out accounts + state_diff.accounts = state_diff.clone().accounts.into_iter().filter(|account| account.address != alloy_eips::eip4788::BEACON_ROOTS_ADDRESS && account.address != alloy_eips::eip2935::HISTORY_STORAGE_ADDRESS).collect::>(); + if chain_id == super_ctx.parent_chain_id { + state_diff.accounts = state_diff.clone().accounts.into_iter().filter(|account| account.address != ctx.block_env.coinbase.1).collect::>(); + } + + if chain_id == super_ctx.parent_chain_id { + execution_outcome.bundle.state = execution_outcome.bundle.state.into_iter().filter(|account| account.0.1 != ctx.block_env.coinbase.1).collect(); + } + + if !state_diff.accounts.is_empty() { + let ctx = &super_ctx.chains[&chain_id]; + + let state_root = calculate_state_root( + provider_factories.get(&chain_id).unwrap().clone(), + ctx.attributes.parent, + &execution_outcome, + root_hash_task_pool.clone(), + //ctx.shared_sparse_mpt_cache.clone(), + SparseTrieSharedCache::default(), + root_hash_config.clone(), + )?; + + state_diff.state_root = state_root; + + //let extra_data = Bytes::from(serde_json::to_string(&state_diff).unwrap().into_bytes()); + let extra_data = Bytes::from(bincode::serialize(&state_diff).unwrap()); + + println!("extra_data: {}", extra_data); + + let header = Header { + parent_hash: ctx.attributes.parent, + ommers_hash: EMPTY_OMMER_ROOT_HASH, + beneficiary: ctx.block_env.coinbase.1, + state_root, + transactions_root, + receipts_root, + withdrawals_root, + logs_bloom, + timestamp: ctx.attributes.timestamp, + mix_hash: /* ctx.attributes.prev_randao */ B256::ZERO, + nonce: BEACON_NONCE, + base_fee_per_gas: Some(ctx.block_env.basefee.to()), + number: ctx.block_env.number.to::(), + gas_limit: ctx.block_env.gas_limit.to(), + difficulty: U256::ZERO, + gas_used: self.gas_used, + extra_data, + parent_beacon_block_root: /* ctx.attributes.parent_beacon_block_root */ Some(B256::ZERO), + blob_gas_used, + excess_blob_gas, + requests_root, + }; + + println!("chain {} header: {:?}", chain_id, header); + + let block = Block { + header, + body: self + .executed_tx + .clone() + .into_iter() + .map(|t| t.into_internal_tx_unsecure().into()) + .collect(), + ommers: vec![], + withdrawals: Some(Withdrawals::default()), + requests: Some(Requests::default()), + }; + + let sealed_block = block.seal_slow(); + + println!("chain {} calculated block hash: {:?}", chain_id, sealed_block.hash()); + + blocks.insert(chain_id, sealed_block); + } + } + + let extra_data = Bytes::from(bincode::serialize(&(execution_outcome, blocks)).unwrap()); + let header = Header { parent_hash: ctx.attributes.parent, ommers_hash: EMPTY_OMMER_ROOT_HASH, @@ -824,7 +920,7 @@ impl PartialBlock { gas_limit: ctx.block_env.gas_limit.to(), difficulty: U256::ZERO, gas_used: self.gas_used, - extra_data: ctx.extra_data.clone().into(), + extra_data/*: ctx.extra_data.clone().into()*/, parent_beacon_block_root: ctx.attributes.parent_beacon_block_root, blob_gas_used, excess_blob_gas, @@ -857,26 +953,27 @@ impl PartialBlock { ctx: &BlockBuildingContext, state: &mut BlockState, ) -> eyre::Result<()> { - let ctx = &ctx.chains[&ctx.parent_chain_id]; - let evm_config = EthEvmConfig::default(); - let mut db = state.new_db_ref(); - pre_block_beacon_root_contract_call( - db.as_mut(), - &evm_config, - &ctx.chain_spec, - &ctx.initialized_cfg, - &ctx.block_env, - ctx.attributes.parent_beacon_block_root(), - )?; - pre_block_blockhashes_contract_call( - db.as_mut(), - &evm_config, - &ctx.chain_spec, - &ctx.initialized_cfg, - &ctx.block_env, - ctx.attributes.parent, - )?; - db.as_mut().merge_transitions(BundleRetention::Reverts); + // TODO(Brecht): all chains (or none) + // let ctx = &ctx.chains[&ctx.parent_chain_id]; + // let evm_config = EthEvmConfig::default(); + // let mut db = state.new_db_ref(); + // pre_block_beacon_root_contract_call( + // db.as_mut(), + // &evm_config, + // &ctx.chain_spec, + // &ctx.initialized_cfg, + // &ctx.block_env, + // ctx.attributes.parent_beacon_block_root(), + // )?; + // pre_block_blockhashes_contract_call( + // db.as_mut(), + // &evm_config, + // &ctx.chain_spec, + // &ctx.initialized_cfg, + // &ctx.block_env, + // ctx.attributes.parent, + // )?; + // db.as_mut().merge_transitions(BundleRetention::Reverts); Ok(()) } } diff --git a/crates/rbuilder/src/building/order_commit.rs b/crates/rbuilder/src/building/order_commit.rs index e909d551..62bab3bb 100644 --- a/crates/rbuilder/src/building/order_commit.rs +++ b/crates/rbuilder/src/building/order_commit.rs @@ -1168,9 +1168,10 @@ fn coinbase_profit( if coinbase_balance_after >= coinbase_balance_before { Ok(coinbase_balance_after - coinbase_balance_before) } else { - Err(OrderErr::NegativeProfit( - coinbase_balance_before - coinbase_balance_after, - )) + Ok(U256::ZERO) + // Err(OrderErr::NegativeProfit( + // coinbase_balance_before - coinbase_balance_after, + // )) } } diff --git a/crates/rbuilder/src/live_builder/mod.rs b/crates/rbuilder/src/live_builder/mod.rs index 84d230d9..5017157c 100644 --- a/crates/rbuilder/src/live_builder/mod.rs +++ b/crates/rbuilder/src/live_builder/mod.rs @@ -37,6 +37,7 @@ use reth::{ use reth_chainspec::ChainSpec; use reth_db::database::Database; use reth_evm::provider; +use revm_primitives::{BlobExcessGasAndPrice, ChainAddress}; use std::{cmp::min, path::PathBuf, sync::Arc, thread::sleep, time::Duration}; use time::OffsetDateTime; use tokio::{sync::mpsc, task::spawn_blocking}; @@ -167,8 +168,7 @@ impl all_chain_ids.append(&mut provider_factories.keys().cloned().collect::>()); while let Some(payload) = payload_events_channel.recv().await { - println!("Payload_attributes event received"); - println!("Parent block's hash: {:?}", payload.parent_block_hash()); + println!("Payload_attributes event received: {:?}", payload); if self.blocklist.contains(&payload.fee_recipient()) { warn!( @@ -255,6 +255,8 @@ impl // TODO(Brecht): hack to wait until latest L2 block is also created, which is later then when we get the payload build event sleep(Duration::from_millis(4000)); + println!("payload: {:?}", payload); + // TODO: Brecht let mut chains = HashMap::default(); for (&chain_id, _) in provider_factories.iter() { @@ -266,15 +268,37 @@ impl println!("updating ctx for {}", chain_id); let latest_block = self.layer2_info.get_latest_block(chain_id, BlockId::Number(BlockNumberOrTag::Latest)).await?; if let Some(latest_block) = latest_block { + println!("[{}] Building on top of {:?}", chain_id, latest_block.header.hash); + //let reth_block: Block = latest_block.try_into().unwrap(); + block_ctx = ChainBlockBuildingContext::from_attributes( + payload.payload_attributes_event.clone(), + &latest_block.header.clone().try_into().unwrap(), + self.coinbase_signer.clone(), + self.chain_chain_spec.clone(), + self.blocklist.clone(), + None, + Vec::new(), + None, + ); block_ctx.attributes.parent = latest_block.header.hash; + //block_ctx.attributes.parent_beacon_block_root = Some(B256::ZERO); block_ctx.block_env.number = U256::from(latest_block.header.number + 1); + //block_ctx.block_env.basefee = U256::from(latest_block.header.base_fee_per_gas.unwrap_or_default()); // TODO(Brecht): need to calculate the new one? + //block_ctx.block_env.prevrandao = Some(B256::ZERO); + //block_ctx.block_env.difficulty = U256::ZERO; + //block_ctx.block_env.blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new(0)); + block_ctx.block_env.coinbase = ChainAddress(chain_id, block_ctx.block_env.coinbase.1); } else { println!("failed to get latest block for {}", chain_id); } chain_spec.chain = Chain::from(chain_id); + chain_spec.genesis.config.chain_id = chain_id; block_ctx.chain_spec = chain_spec.into(); } println!("Latest block hash for {} is {}", chain_id, block_ctx.attributes.parent); + println!("[{}] attributes: {:?}", chain_id, block_ctx.attributes); + println!("[{}] block_env: {:?}", chain_id, block_ctx.block_env); + //println!("[{}] block_ctx.chain_spec: {:?}", chain_id, block_ctx.chain_spec); chains.insert(chain_id, block_ctx); } diff --git a/crates/rbuilder/src/live_builder/simulation/sim_worker.rs b/crates/rbuilder/src/live_builder/simulation/sim_worker.rs index 02b9cdf8..a74a7ab3 100644 --- a/crates/rbuilder/src/live_builder/simulation/sim_worker.rs +++ b/crates/rbuilder/src/live_builder/simulation/sim_worker.rs @@ -111,7 +111,10 @@ pub fn run_sim_worker( println!("sending result: {:?}", result_send); true } - OrderSimResult::Failed(_) => false, + OrderSimResult::Failed(err) => { + println!("sim failed for: {:?} -> {:?}", task, err); + false + }, }; telemetry::inc_simulated_orders(sim_ok); telemetry::inc_simulation_gas_used(sim_result.gas_used); diff --git a/crates/rbuilder/src/proposing/mod.rs b/crates/rbuilder/src/proposing/mod.rs index e75402e6..e04664bd 100644 --- a/crates/rbuilder/src/proposing/mod.rs +++ b/crates/rbuilder/src/proposing/mod.rs @@ -1,4 +1,5 @@ +use alloy_eips::BlockId; use alloy_network::{EthereumWallet, NetworkWallet, TransactionBuilder}; use alloy_provider::{Provider, ProviderBuilder}; use alloy_rlp::{Decodable, Encodable}; @@ -7,7 +8,9 @@ use alloy_signer_local::PrivateKeySigner; use eyre::Result; //use revm_primitives::{Address, B256, U256}; use alloy_primitives::{B256, U256, Address}; -use reth_primitives::TransactionSigned; +use reth_primitives::{SealedBlock, TransactionSigned}; +use reth_provider::{execution_outcome_to_state_diff, ExecutionOutcome}; +use revm_primitives::Bytes; //use revm_primitives::address; use url::Url; //use crate::mev_boost::{SubmitBlockRequest}; @@ -15,7 +18,8 @@ use url::Url; use alloy_rpc_types_engine::ExecutionPayload; use alloy_sol_types::{sol, SolCall, SolType}; use alloy_network::eip2718::Encodable2718; -use std::str::FromStr; +use std::{collections::HashMap, str::FromStr}; +use reth_primitives::{GwynethDA, ChainDA}; use alloy_rpc_types::{TransactionInput, TransactionRequest}; @@ -40,8 +44,30 @@ sol! { uint64 timestamp; uint24 txListByteOffset; uint24 txListByteSize; + // todo: Do we need this below ? + // bytes32 blobId OR blobHash; ? as per in current taiko-mono's preconfirmation branch ? bool blobUsed; bytes txList; + bytes stateDiffs; + StateDiff l1StateDiff; + } + + #[derive(Debug)] + /// @dev Struct representing the state delta that has to be applied to L1 + struct StateDiff { + StateDiffAccount[] accounts; + } + + #[derive(Debug)] + struct StateDiffAccount { + address addr; + StateDiffStorageSlot[] slots; + } + + #[derive(Debug)] + struct StateDiffStorageSlot { + bytes32 key; + bytes32 value; } //#[sol(rpc)] @@ -68,9 +94,8 @@ impl BlockProposer { } pub async fn propose_block(&self, request: &SubmitBlockRequest) -> Result<()> { - println!("propose_block"); - let execution_payload = request.execution_payload(); + println!("propose_block in L1 block {}", execution_payload.block_number()); // Create the transaction data let (meta, num_txs) = self.create_propose_block_tx_data(&execution_payload)?; @@ -97,6 +122,10 @@ impl BlockProposer { let chain_id = provider.get_chain_id().await?; let nonce = provider.get_transaction_count(signer.address()).await.unwrap(); + println!("proposing with nonce {}", nonce); + + //let block = provider.get_block(BlockId::latest(), BlockTransactionsKind::); + // Build a transaction to send 100 wei from Alice to Bob. // The `from` field is automatically filled to the first signer's address (Alice). let tx = TransactionRequest::default() @@ -105,9 +134,9 @@ impl BlockProposer { .with_nonce(nonce) .with_chain_id(chain_id) .with_value(U256::from(0)) - .with_gas_limit(5_000_000) - .with_max_priority_fee_per_gas(1_000_000_000) - .with_max_fee_per_gas(20_000_000_000); + .with_gas_limit(10_000_000) + .with_max_priority_fee_per_gas(2_000_000_000) + .with_max_fee_per_gas(200_000_000_000); // Build the transaction with the provided wallet. Flashbots Protect requires the transaction to // be signed locally and send using `eth_sendRawTransaction`. @@ -147,6 +176,9 @@ impl BlockProposer { } }; + println!("Proposed payload: {:?}", execution_payload); + let l1_chain_id = 160010; + let mut transactions = Vec::new(); for tx_data in execution_payload.transactions.iter() { transactions.push(TransactionSigned::decode(&mut tx_data.to_vec().as_slice()).unwrap()); @@ -161,6 +193,79 @@ impl BlockProposer { println!("transactions: {:?}", execution_payload.transactions); println!("tx list: {:?}", tx_list); + println!("Block extra data: {:?}", execution_payload.extra_data); + let da = if execution_payload.extra_data.len() > 32 { + println!("Decoding extra data..."); + let (execution_outcome, blocks): (ExecutionOutcome, HashMap) = bincode::deserialize(&execution_payload.extra_data.to_vec()).unwrap(); + + let mut chain_das = HashMap::default(); + for (&chain_id, block) in blocks.iter() { + //let execution_outcome = execution_outcome.filter_chain(chain_id); + + //let json_str = String::from_utf8(block.extra_data.to_vec()).unwrap(); + //let state_diff = serde_json::from_str(&json_str).unwrap_or(None); + + let state_diff = bincode::deserialize(&block.extra_data.to_vec()).unwrap(); + + // Filter out accounts + // let mut state_diff = execution_outcome_to_state_diff(&execution_outcome, block.state_root); + // state_diff.accounts = state_diff.clone().accounts.into_iter().filter(|account| account.address != alloy_eips::eip4788::BEACON_ROOTS_ADDRESS && account.address != alloy_eips::eip2935::HISTORY_STORAGE_ADDRESS).collect::>(); + // if chain_id == l1_chain_id { + // state_diff.accounts = state_diff.clone().accounts.into_iter().filter(|account| account.address != execution_payload.fee_recipient).collect::>(); + // } + // state_diff.state_root = block.state_root; + + chain_das.insert(chain_id, ChainDA { + block_hash: block.hash(), + state_diff: Some(state_diff), + extra_data: block.extra_data.clone(), + transactions: None, + }); + } + + GwynethDA { + chain_das, + transactions: None, + extra_data: Bytes::new(), + } + } else { + GwynethDA::default() + }; + + // L1 state diff to apply + let l1_state_diff = if da.chain_das.contains_key(&l1_chain_id) { + let state_diff = da.chain_das.get(&l1_chain_id).clone().unwrap().state_diff.clone().unwrap(); + let mut accounts = Vec::new(); + for account in state_diff.accounts.iter() { + let mut slots = Vec::new(); + for slot in account.storage.iter() { + slots.push(StateDiffStorageSlot { + key: slot.key.into(), + value: slot.value.into(), + }); + } + accounts.push(StateDiffAccount { + addr: account.address, + slots, + }); + } + StateDiff { + accounts + } + } else { + StateDiff { + accounts: Vec::new() + } + }; + + println!("da: {:?}", da); + + let serialized_bytes = bincode::serialize(&da).unwrap(); + //println!("state_diffs: {:?}", serialized_bytes); + let state_diffs = Bytes::from(serialized_bytes); + + println!("l1 state diff: {:?}", l1_state_diff); + let meta = BlockMetadata { blockHash: execution_payload.block_hash, parentBlockHash: execution_payload.parent_hash, @@ -178,6 +283,8 @@ impl BlockProposer { txListByteSize: (tx_list.len() as u32).try_into().map_err(|_| eyre::eyre!("txListByteSize conversion error"))?, blobUsed: false, txList: tx_list.into(), + stateDiffs: state_diffs, + l1StateDiff: l1_state_diff, }; println!("meta: {:?}", meta);