diff --git a/Cargo.lock b/Cargo.lock index fb72ebaba..840a4cc2e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -417,6 +417,7 @@ dependencies = [ "alloy-primitives", "alloy-pubsub", "alloy-rpc-client", + "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-rpc-types-txpool", "alloy-signer", @@ -5416,9 +5417,9 @@ dependencies = [ [[package]] name = "op-alloy-flz" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef71f23a8caf6f2a2d5cafbdc44956d44e6014dcb9aa58abf7e4e6481c6ec34" +checksum = "a79f352fc3893dcd670172e615afef993a41798a1d3fc0db88a3e60ef2e70ecc" [[package]] name = "op-alloy-network" @@ -5503,6 +5504,7 @@ dependencies = [ "alloy-serde", "alloy-transport", "alloy-transport-http", + "anyhow", "async-trait", "chrono", "clap", @@ -5513,6 +5515,7 @@ dependencies = [ "futures-util", "http", "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "jsonrpsee-core 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpsee-types 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", "metrics", "moka", @@ -5539,6 +5542,7 @@ dependencies = [ "reth-network-peers", "reth-node-api", "reth-node-builder", + "reth-node-core", "reth-node-ethereum", "reth-optimism-chainspec", "reth-optimism-cli", @@ -5558,8 +5562,12 @@ dependencies = [ "reth-primitives-traits", "reth-provider", "reth-revm", + "reth-rpc-api", + "reth-rpc-engine-api", "reth-rpc-eth-types", "reth-rpc-layer", + "reth-storage-api", + "reth-tasks", "reth-testing-utils", "reth-tracing-otlp", "reth-transaction-pool", @@ -5572,6 +5580,7 @@ dependencies = [ "serde_with", "serde_yaml", "shellexpand", + "tempfile", "thiserror 1.0.69", "tikv-jemallocator", "time", @@ -6679,8 +6688,8 @@ dependencies = [ [[package]] name = "reth" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-rpc-types", "aquamarine", @@ -6725,8 +6734,8 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6749,8 +6758,8 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6780,8 +6789,8 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-chains", "alloy-consensus", @@ -6800,8 +6809,8 @@ dependencies = [ [[package]] name = "reth-cli" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-genesis", "clap", @@ -6814,8 +6823,8 @@ dependencies = [ [[package]] name = "reth-cli-commands" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "ahash", "alloy-chains", @@ -6885,8 +6894,8 @@ dependencies = [ [[package]] name = "reth-cli-runner" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "reth-tasks", "tokio", @@ -6895,8 +6904,8 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -6913,8 +6922,8 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6933,8 +6942,8 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "convert_case", "proc-macro2", @@ -6944,8 +6953,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "eyre", "humantime-serde", @@ -6958,8 +6967,8 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -6971,8 +6980,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -6983,8 +6992,8 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7007,8 +7016,8 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "derive_more", @@ -7033,8 +7042,8 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7061,8 +7070,8 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-genesis", @@ -7090,8 +7099,8 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7105,8 +7114,8 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7131,8 +7140,8 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -7155,8 +7164,8 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "data-encoding", @@ -7179,8 +7188,8 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7209,8 +7218,8 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "aes", "alloy-primitives", @@ -7240,8 +7249,8 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7271,8 +7280,8 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7295,8 +7304,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "futures", "pin-project", @@ -7318,8 +7327,8 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7365,8 +7374,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -7392,8 +7401,8 @@ dependencies = [ [[package]] name = "reth-era" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7408,8 +7417,8 @@ dependencies = [ [[package]] name = "reth-era-downloader" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "bytes", @@ -7423,8 +7432,8 @@ dependencies = [ [[package]] name = "reth-era-utils" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "eyre", @@ -7443,8 +7452,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -7454,8 +7463,8 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-chains", "alloy-primitives", @@ -7482,8 +7491,8 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-chains", "alloy-consensus", @@ -7503,8 +7512,8 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7562,8 +7571,8 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7578,8 +7587,8 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7596,8 +7605,8 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eip2124", "alloy-hardforks", @@ -7609,8 +7618,8 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7636,8 +7645,8 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7654,8 +7663,8 @@ dependencies = [ [[package]] name = "reth-etl" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "rayon", "reth-db-api", @@ -7664,8 +7673,8 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7687,8 +7696,8 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7705,8 +7714,8 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-evm", "alloy-primitives", @@ -7718,8 +7727,8 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7736,8 +7745,8 @@ dependencies = [ [[package]] name = "reth-exex" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7774,8 +7783,8 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -7788,8 +7797,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "serde", "serde_json", @@ -7798,8 +7807,8 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -7826,8 +7835,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "bytes", "futures", @@ -7846,8 +7855,8 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "bitflags 2.9.0", "byteorder", @@ -7863,8 +7872,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "bindgen 0.70.1", "cc", @@ -7872,8 +7881,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "futures", "metrics", @@ -7884,16 +7893,16 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", ] [[package]] name = "reth-net-nat" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "futures-util", "if-addrs", @@ -7906,8 +7915,8 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -7961,8 +7970,8 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -7984,8 +7993,8 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8006,8 +8015,8 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8021,8 +8030,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -8035,8 +8044,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "anyhow", "bincode", @@ -8052,8 +8061,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -8076,8 +8085,8 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8141,8 +8150,8 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8191,8 +8200,8 @@ dependencies = [ [[package]] name = "reth-node-ethereum" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-rpc-types-engine", @@ -8227,8 +8236,8 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8251,8 +8260,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "eyre", "http", @@ -8272,8 +8281,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "reth-chainspec", "reth-db-api", @@ -8285,8 +8294,8 @@ dependencies = [ [[package]] name = "reth-optimism-chainspec" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-chains", "alloy-consensus", @@ -8312,8 +8321,8 @@ dependencies = [ [[package]] name = "reth-optimism-cli" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8359,8 +8368,8 @@ dependencies = [ [[package]] name = "reth-optimism-consensus" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8384,8 +8393,8 @@ dependencies = [ [[package]] name = "reth-optimism-evm" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8409,8 +8418,8 @@ dependencies = [ [[package]] name = "reth-optimism-forks" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-op-hardforks", "alloy-primitives", @@ -8420,8 +8429,8 @@ dependencies = [ [[package]] name = "reth-optimism-node" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8466,8 +8475,8 @@ dependencies = [ [[package]] name = "reth-optimism-payload-builder" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8505,8 +8514,8 @@ dependencies = [ [[package]] name = "reth-optimism-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8525,8 +8534,8 @@ dependencies = [ [[package]] name = "reth-optimism-rpc" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8583,8 +8592,8 @@ dependencies = [ [[package]] name = "reth-optimism-txpool" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8619,8 +8628,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-rpc-types", @@ -8639,8 +8648,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "pin-project", "reth-payload-primitives", @@ -8651,8 +8660,8 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -8670,8 +8679,8 @@ dependencies = [ [[package]] name = "reth-payload-util" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8680,8 +8689,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8690,8 +8699,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "c-kzg", @@ -8704,8 +8713,8 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8736,8 +8745,8 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8781,8 +8790,8 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8809,8 +8818,8 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "arbitrary", @@ -8823,8 +8832,8 @@ dependencies = [ [[package]] name = "reth-ress-protocol" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8842,8 +8851,8 @@ dependencies = [ [[package]] name = "reth-ress-provider" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -8869,8 +8878,8 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "reth-primitives-traits", @@ -8882,8 +8891,8 @@ dependencies = [ [[package]] name = "reth-rpc" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -8957,8 +8966,8 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-genesis", @@ -8976,6 +8985,7 @@ dependencies = [ "alloy-rpc-types-txpool", "alloy-serde", "jsonrpsee 0.25.1 (registry+https://github.com/rust-lang/crates.io-index)", + "reth-chain-state", "reth-engine-primitives", "reth-network-peers", "reth-rpc-eth-api", @@ -8984,8 +8994,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-network", "alloy-provider", @@ -9022,8 +9032,8 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9052,8 +9062,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-dyn-abi", @@ -9095,8 +9105,8 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9137,8 +9147,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-rpc-types-engine", "http", @@ -9151,8 +9161,8 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9167,8 +9177,8 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9180,8 +9190,8 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9222,8 +9232,8 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9249,8 +9259,8 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "arbitrary", @@ -9263,8 +9273,8 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "parking_lot", @@ -9283,8 +9293,8 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "clap", @@ -9295,8 +9305,8 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9319,8 +9329,8 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-eips", "alloy-primitives", @@ -9335,8 +9345,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "auto_impl", "dyn-clone", @@ -9353,8 +9363,8 @@ dependencies = [ [[package]] name = "reth-testing-utils" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9369,8 +9379,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "tokio", "tokio-stream", @@ -9379,8 +9389,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "clap", "eyre", @@ -9394,8 +9404,8 @@ dependencies = [ [[package]] name = "reth-tracing-otlp" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "opentelemetry 0.29.1", "opentelemetry-otlp 0.29.0", @@ -9408,8 +9418,8 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9446,8 +9456,8 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-eips", @@ -9471,8 +9481,8 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-consensus", "alloy-primitives", @@ -9497,8 +9507,8 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "reth-db-api", @@ -9510,8 +9520,8 @@ dependencies = [ [[package]] name = "reth-trie-parallel" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9535,8 +9545,8 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9553,8 +9563,8 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.4.7" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.7#dc7cb6e6670b0da294a0e5010e02855f5aaf6b49" +version = "1.4.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.4.8#127595e23079de2c494048d0821ea1f1107eb624" dependencies = [ "zstd", ] diff --git a/Cargo.toml b/Cargo.toml index a5c5b1270..1c29d5c93 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,57 +40,61 @@ codegen-units = 1 incremental = false [workspace.dependencies] -reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7", features = [ +reth = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-chain-state = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-cli-commands = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-cli-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-db-common = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-node-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-rpc-engine-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-trie-parallel = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-basic-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-primitives-traits = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8", features = [ "test-utils", ] } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-storage-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-evm-ethereum = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-execution-errors = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-exex = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-trie-db = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-payload-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-execution-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-payload-builder-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-payload-util = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-rpc-layer = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-network-peers = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-testing-utils = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-node-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-tracing-otlp = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } # reth optimism -reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7" } -reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.7", features = [ +reth-optimism-primitives = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-consensus = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-cli = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-forks = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-evm = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-node = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-payload-builder = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-chainspec = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-txpool = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8" } +reth-optimism-rpc = { git = "https://github.com/paradigmxyz/reth", tag = "v1.4.8", features = [ "client", ] } @@ -114,6 +118,7 @@ alloy-provider = { version = "1.0.9", features = [ "ipc", "pubsub", "txpool-api", + "engine-api", ] } alloy-pubsub = { version = "1.0.9" } alloy-eips = { version = "1.0.9" } @@ -141,7 +146,7 @@ op-alloy-rpc-types-engine = { version = "0.17.2", default-features = false } op-alloy-rpc-jsonrpsee = { version = "0.17.2", default-features = false } op-alloy-network = { version = "0.17.2", default-features = false } op-alloy-consensus = { version = "0.17.2", default-features = false } -op-alloy-flz = { version = "0.13.0", default-features = false } +op-alloy-flz = { version = "0.13.1", default-features = false } async-trait = { version = "0.1.83" } clap = { version = "4.4.3", features = ["derive", "env", "string"] } @@ -150,6 +155,7 @@ thiserror = { version = "1.0.64" } eyre = { version = "0.6.12" } jsonrpsee = { version = "0.25.1" } jsonrpsee-types = { version = "0.25.1" } +jsonrpsee-core = { version = "0.25.1" } parking_lot = { version = "0.12.3" } tokio = { version = "1.40.0" } auto_impl = { version = "1.2.0" } diff --git a/Makefile b/Makefile index 00c53c927..9f275770a 100644 --- a/Makefile +++ b/Makefile @@ -58,9 +58,9 @@ lt: lint test ## Run "lint" and "test" .PHONY: fmt fmt: ## Format the code cargo +nightly fmt - cargo +nightly fix --allow-staged - cargo +nightly clippy --features "$(FEATURES)" --fix --allow-staged - cargo +nightly clippy -p op-rbuilder --features "$(FEATURES)" --fix --allow-staged + cargo +nightly clippy --features "$(FEATURES)" --fix --allow-staged --allow-dirty + cargo +nightly clippy -p op-rbuilder --features "$(FEATURES)" --fix --allow-staged --allow-dirty + cargo +nightly fix --allow-staged --allow-dirty .PHONY: bench bench: ## Run benchmarks diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 8a1a8182c..ac239f4bd 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -28,6 +28,8 @@ reth-chainspec.workspace = true reth-primitives.workspace = true reth-primitives-traits.workspace = true reth-node-api.workspace = true +reth-rpc-engine-api.workspace = true +reth-node-core.workspace = true reth-basic-payload-builder.workspace = true reth-payload-builder.workspace = true reth-node-ethereum.workspace = true @@ -45,8 +47,11 @@ reth-network-peers.workspace = true reth-testing-utils.workspace = true reth-optimism-forks.workspace = true reth-node-builder.workspace = true +reth-storage-api.workspace = true +reth-rpc-api.workspace = true reth-rpc-eth-types.workspace = true reth-optimism-rpc.workspace = true +reth-tasks.workspace = true reth-tracing-otlp = { workspace = true, optional = true } alloy-primitives.workspace = true @@ -81,7 +86,8 @@ serde.workspace = true secp256k1.workspace = true tokio.workspace = true jsonrpsee = { workspace = true } -jsonrpsee-types.workspace = true +jsonrpsee-core = { workspace = true } +jsonrpsee-types = { workspace = true } async-trait = { workspace = true } clap_builder = { workspace = true } clap.workspace = true @@ -92,6 +98,7 @@ tokio-util.workspace = true thiserror.workspace = true parking_lot.workspace = true url.workspace = true +anyhow = "1" tower = "0.5" futures = "0.3" @@ -120,6 +127,7 @@ vergen-git2.workspace = true alloy-provider = { workspace = true, default-features = true, features = [ "txpool-api", ] } +tempfile = "3.8" [features] default = ["jemalloc"] @@ -148,6 +156,8 @@ interop = [] telemetry = ["reth-tracing-otlp"] +custom-engine-api = [] + [[bin]] name = "op-rbuilder" path = "src/main.rs" diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index d4b92e589..777baa919 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -3,13 +3,13 @@ //! Copied from OptimismNode to allow easy extension. //! clap [Args](clap::Args) for optimism rollup configuration -use std::path::PathBuf; - use crate::tx_signer::Signer; +use anyhow::{anyhow, Result}; use reth_optimism_node::args::RollupArgs; +use std::path::PathBuf; /// Parameters for rollup configuration -#[derive(Debug, Clone, Default, PartialEq, Eq, clap::Args)] +#[derive(Debug, Clone, Default, clap::Args)] #[command(next_help_heading = "Rollup")] pub struct OpRbuilderArgs { /// Rollup configuration @@ -38,6 +38,7 @@ pub struct OpRbuilderArgs { #[arg(long = "builder.enable-revert-protection", default_value = "false")] pub enable_revert_protection: bool, + /// Path to builder playgorund to automatically start up the node connected to it #[arg( long = "builder.playground", num_args = 0..=1, @@ -46,17 +47,16 @@ pub struct OpRbuilderArgs { env = "PLAYGROUND_DIR", )] pub playground: Option, - #[command(flatten)] pub flashblocks: FlashblocksArgs, } -fn expand_path(s: &str) -> Result { +fn expand_path(s: &str) -> Result { shellexpand::full(s) - .map_err(|e| format!("expansion error for `{s}`: {e}"))? + .map_err(|e| anyhow!("expansion error for `{s}`: {e}"))? .into_owned() .parse() - .map_err(|e| format!("invalid path after expansion: {e}")) + .map_err(|e| anyhow!("invalid path after expansion: {e}")) } /// Parameters for Flashblocks configuration diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 65bd8463a..fea4f7a61 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -586,12 +586,9 @@ impl OpPayloadBuilderCtx { // Create and sign the transaction let builder_tx = signed_builder_tx(db, builder_tx_gas, message, signer, base_fee, chain_id)?; - Ok( - op_alloy_flz::tx_estimated_size_fjord(builder_tx.encoded_2718().as_slice()) - // Downscaled by 1e6 to be compliant with op-geth estimate size function - // https://github.com/ethereum-optimism/op-geth/blob/optimism/core/types/rollup_cost.go#L563 - .wrapping_div(1_000_000), - ) + Ok(op_alloy_flz::tx_estimated_size_fjord_bytes( + builder_tx.encoded_2718().as_slice(), + )) }) .transpose() .unwrap_or_else(|err: PayloadBuilderError| { diff --git a/crates/op-rbuilder/src/builders/standard/payload.rs b/crates/op-rbuilder/src/builders/standard/payload.rs index ecf321373..45f4ffcab 100644 --- a/crates/op-rbuilder/src/builders/standard/payload.rs +++ b/crates/op-rbuilder/src/builders/standard/payload.rs @@ -11,7 +11,7 @@ use alloy_eips::{eip7685::EMPTY_REQUESTS_HASH, merge::BEACON_NONCE}; use alloy_primitives::U256; use reth::payload::PayloadBuilderAttributes; use reth_basic_payload_builder::{BuildOutcome, BuildOutcomeKind, MissingPayloadBehaviour}; -use reth_chain_state::{ExecutedBlock, ExecutedBlockWithTrieUpdates}; +use reth_chain_state::{ExecutedBlock, ExecutedBlockWithTrieUpdates, ExecutedTrieUpdates}; use reth_evm::{execute::BlockBuilder, ConfigureEvm}; use reth_node_api::{Block, PayloadBuilderError}; use reth_node_builder::{components::PayloadBuilderBuilder, BuilderContext}; @@ -543,7 +543,7 @@ impl OpBuilder<'_, Txs> { execution_output: Arc::new(execution_outcome), hashed_state: Arc::new(hashed_state), }, - trie: Arc::new(trie_output), + trie: ExecutedTrieUpdates::Present(Arc::new(trie_output)), }; let no_tx_pool = ctx.attributes().no_tx_pool; diff --git a/crates/op-rbuilder/src/lib.rs b/crates/op-rbuilder/src/lib.rs index f377643f9..2abc3a322 100644 --- a/crates/op-rbuilder/src/lib.rs +++ b/crates/op-rbuilder/src/lib.rs @@ -3,3 +3,6 @@ pub mod tx_signer; #[cfg(any(test, feature = "testing"))] pub mod tests; + +pub mod traits; +pub mod tx; diff --git a/crates/op-rbuilder/src/main.rs b/crates/op-rbuilder/src/main.rs index d13b669c5..194958232 100644 --- a/crates/op-rbuilder/src/main.rs +++ b/crates/op-rbuilder/src/main.rs @@ -18,13 +18,14 @@ use core::fmt::Debug; use metrics::VERSION; use moka::future::Cache; use monitor_tx_pool::monitor_tx_pool; +use primitives::reth::engine_api_builder::OpEngineApiBuilder; use reth::builder::{NodeBuilder, WithLaunchContext}; use reth_cli_commands::launcher::Launcher; use reth_db::mdbx::DatabaseEnv; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_cli::chainspec::OpChainSpecParser; use reth_optimism_node::{ - node::{OpAddOnsBuilder, OpPoolBuilder}, + node::{OpAddOns, OpAddOnsBuilder, OpEngineValidatorBuilder, OpPoolBuilder}, OpNode, }; use reth_transaction_pool::TransactionPool; @@ -101,12 +102,28 @@ where ) -> Result<()> { let builder_config = BuilderConfig::::try_from(builder_args.clone()) .expect("Failed to convert rollup args to builder config"); + let da_config = builder_config.da_config.clone(); let rollup_args = builder_args.rollup_args; let op_node = OpNode::new(rollup_args.clone()); let reverted_cache = Cache::builder().max_capacity(100).build(); let reverted_cache_copy = reverted_cache.clone(); + let mut addons: OpAddOns< + _, + _, + OpEngineValidatorBuilder, + OpEngineApiBuilder, + > = OpAddOnsBuilder::default() + .with_sequencer(rollup_args.sequencer.clone()) + .with_enable_tx_conditional(rollup_args.enable_tx_conditional) + .with_da_config(da_config) + .build(); + if cfg!(feature = "custom-engine-api") { + let engine_builder: OpEngineApiBuilder = + OpEngineApiBuilder::default(); + addons = addons.with_engine_api(engine_builder); + } let handle = builder .with_types::() .with_components( @@ -127,13 +144,7 @@ where ) .payload(B::new_service(builder_config)?), ) - .with_add_ons( - OpAddOnsBuilder::default() - .with_sequencer(rollup_args.sequencer.clone()) - .with_enable_tx_conditional(rollup_args.enable_tx_conditional) - .with_da_config(da_config) - .build(), - ) + .with_add_ons(addons) .extend_rpc_modules(move |ctx| { if builder_args.enable_revert_protection { tracing::info!("Revert protection enabled"); diff --git a/crates/op-rbuilder/src/primitives/reth/engine_api_builder.rs b/crates/op-rbuilder/src/primitives/reth/engine_api_builder.rs new file mode 100644 index 000000000..486602e1c --- /dev/null +++ b/crates/op-rbuilder/src/primitives/reth/engine_api_builder.rs @@ -0,0 +1,425 @@ +//! RPC component builder + +use reth_node_api::AddOnsContext; +use reth_node_builder::rpc::{EngineApiBuilder, EngineValidatorBuilder}; +use reth_node_core::version::{CARGO_PKG_VERSION, CLIENT_CODE, VERGEN_GIT_SHA}; +use reth_optimism_node::{OpEngineTypes, OP_NAME_CLIENT}; +use reth_optimism_rpc::engine::OP_ENGINE_CAPABILITIES; +pub use reth_optimism_rpc::OpEngineApi; +use reth_payload_builder::PayloadStore; +use reth_rpc_engine_api::EngineCapabilities; + +use crate::traits::NodeComponents; +use alloy_eips::eip7685::Requests; +use alloy_primitives::{BlockHash, B256, U64}; +use alloy_rpc_types_engine::{ + ClientVersionV1, ExecutionPayloadBodiesV1, ExecutionPayloadInputV2, ExecutionPayloadV3, + ForkchoiceState, ForkchoiceUpdated, PayloadId, PayloadStatus, +}; +use jsonrpsee::proc_macros::rpc; +use jsonrpsee_core::{server::RpcModule, RpcResult}; +use op_alloy_rpc_types_engine::{ + OpExecutionPayloadEnvelopeV3, OpExecutionPayloadEnvelopeV4, OpExecutionPayloadV4, + OpPayloadAttributes, ProtocolVersion, SuperchainSignal, +}; +use reth_node_api::{EngineTypes, EngineValidator}; +use reth_optimism_chainspec::OpChainSpec; +use reth_optimism_rpc::OpEngineApiServer; +use reth_rpc_api::IntoEngineApiRpcModule; +use reth_storage_api::{BlockReader, HeaderProvider, StateProviderFactory}; +use reth_transaction_pool::TransactionPool; + +/// Builder for basic [`OpEngineApi`] implementation. +#[derive(Debug, Clone)] +pub struct OpEngineApiBuilder { + engine_validator_builder: EV, +} + +impl Default for OpEngineApiBuilder +where + EV: Default, +{ + fn default() -> Self { + Self { + engine_validator_builder: EV::default(), + } + } +} + +impl EngineApiBuilder for OpEngineApiBuilder +where + N: NodeComponents, + EV: EngineValidatorBuilder, +{ + type EngineApi = OpEngineApiExt; + + async fn build_engine_api(self, ctx: &AddOnsContext<'_, N>) -> eyre::Result { + let Self { + engine_validator_builder, + } = self; + + let engine_validator = engine_validator_builder.build(ctx).await?; + let client = ClientVersionV1 { + code: CLIENT_CODE, + name: OP_NAME_CLIENT.to_string(), + version: CARGO_PKG_VERSION.to_string(), + commit: VERGEN_GIT_SHA.to_string(), + }; + let inner = reth_rpc_engine_api::EngineApi::new( + ctx.node.provider().clone(), + ctx.config.chain.clone(), + ctx.beacon_engine_handle.clone(), + PayloadStore::new(ctx.node.payload_builder_handle().clone()), + ctx.node.pool().clone(), + Box::new(ctx.node.task_executor().clone()), + client, + EngineCapabilities::new(OP_ENGINE_CAPABILITIES.iter().copied()), + engine_validator, + ctx.config.engine.accept_execution_requests_hash, + ); + + Ok(OpEngineApiExt::new(OpEngineApi::new(inner))) + } +} + +pub struct OpEngineApiExt { + inner: OpEngineApi, +} + +impl OpEngineApiExt +where + Provider: HeaderProvider + BlockReader + StateProviderFactory + 'static, + Pool: TransactionPool + 'static, + Validator: EngineValidator, +{ + pub fn new(engine: OpEngineApi) -> Self { + Self { inner: engine } + } +} + +#[async_trait::async_trait] +impl OpRbuilderEngineApiServer + for OpEngineApiExt +where + Provider: HeaderProvider + BlockReader + StateProviderFactory + 'static, + Pool: TransactionPool + 'static, + Validator: EngineValidator, +{ + async fn new_payload_v2(&self, payload: ExecutionPayloadInputV2) -> RpcResult { + self.inner.new_payload_v2(payload).await + } + + async fn new_payload_v3( + &self, + payload: ExecutionPayloadV3, + versioned_hashes: Vec, + parent_beacon_block_root: B256, + ) -> RpcResult { + self.inner + .new_payload_v3(payload, versioned_hashes, parent_beacon_block_root) + .await + } + + async fn new_payload_v4( + &self, + payload: OpExecutionPayloadV4, + versioned_hashes: Vec, + parent_beacon_block_root: B256, + execution_requests: Requests, + ) -> RpcResult { + self.inner + .new_payload_v4( + payload, + versioned_hashes, + parent_beacon_block_root, + execution_requests, + ) + .await + } + + async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult { + self.inner + .fork_choice_updated_v1(fork_choice_state, payload_attributes) + .await + } + + async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult { + self.inner + .fork_choice_updated_v2(fork_choice_state, payload_attributes) + .await + } + + async fn fork_choice_updated_v3( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult { + self.inner + .fork_choice_updated_v3(fork_choice_state, payload_attributes) + .await + } + + async fn get_payload_v2( + &self, + payload_id: PayloadId, + ) -> RpcResult<::ExecutionPayloadEnvelopeV2> { + self.inner.get_payload_v2(payload_id).await + } + + async fn get_payload_v3( + &self, + payload_id: PayloadId, + ) -> RpcResult { + self.inner.get_payload_v3(payload_id).await + } + + async fn get_payload_v4( + &self, + payload_id: PayloadId, + ) -> RpcResult { + self.inner.get_payload_v4(payload_id).await + } + + async fn get_payload_bodies_by_hash_v1( + &self, + block_hashes: Vec, + ) -> RpcResult { + self.inner.get_payload_bodies_by_hash_v1(block_hashes).await + } + + async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> RpcResult { + self.inner + .get_payload_bodies_by_range_v1(start, count) + .await + } + + async fn signal_superchain_v1(&self, signal: SuperchainSignal) -> RpcResult { + self.inner.signal_superchain_v1(signal).await + } + + async fn get_client_version_v1( + &self, + client: ClientVersionV1, + ) -> RpcResult> { + self.inner.get_client_version_v1(client).await + } + + async fn exchange_capabilities(&self, capabilities: Vec) -> RpcResult> { + self.inner.exchange_capabilities(capabilities).await + } +} + +impl IntoEngineApiRpcModule for OpEngineApiExt +where + Self: OpRbuilderEngineApiServer, +{ + fn into_rpc_module(self) -> RpcModule<()> { + self.into_rpc().remove_context() + } +} + +/// Extension trait that gives access to Optimism engine API RPC methods. +/// +/// Note: +/// > The provider should use a JWT authentication layer. +/// +/// This follows the Optimism specs that can be found at: +/// +#[rpc(server, namespace = "engine", server_bounds(Engine::PayloadAttributes: jsonrpsee::core::DeserializeOwned))] +pub trait OpRbuilderEngineApi { + /// Sends the given payload to the execution layer client, as specified for the Shanghai fork. + /// + /// See also + /// + /// No modifications needed for OP compatibility. + #[method(name = "newPayloadV2")] + async fn new_payload_v2(&self, payload: ExecutionPayloadInputV2) -> RpcResult; + + /// Sends the given payload to the execution layer client, as specified for the Cancun fork. + /// + /// See also + /// + /// OP modifications: + /// - expected versioned hashes MUST be an empty array: therefore the `versioned_hashes` + /// parameter is removed. + /// - parent beacon block root MUST be the parent beacon block root from the L1 origin block of + /// the L2 block. + /// - blob versioned hashes MUST be empty list. + #[method(name = "newPayloadV3")] + async fn new_payload_v3( + &self, + payload: ExecutionPayloadV3, + versioned_hashes: Vec, + parent_beacon_block_root: B256, + ) -> RpcResult; + + /// Sends the given payload to the execution layer client, as specified for the Prague fork. + /// + /// See also + /// + /// - blob versioned hashes MUST be empty list. + /// - execution layer requests MUST be empty list. + #[method(name = "newPayloadV4")] + async fn new_payload_v4( + &self, + payload: OpExecutionPayloadV4, + versioned_hashes: Vec, + parent_beacon_block_root: B256, + execution_requests: Requests, + ) -> RpcResult; + + /// See also + /// + /// This exists because it is used by op-node: + /// + /// Caution: This should not accept the `withdrawals` field in the payload attributes. + #[method(name = "forkchoiceUpdatedV1")] + async fn fork_choice_updated_v1( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult; + + /// Updates the execution layer client with the given fork choice, as specified for the Shanghai + /// fork. + /// + /// Caution: This should not accept the `parentBeaconBlockRoot` field in the payload attributes. + /// + /// See also + /// + /// OP modifications: + /// - The `payload_attributes` parameter is extended with the [`EngineTypes::PayloadAttributes`](EngineTypes) type as described in + #[method(name = "forkchoiceUpdatedV2")] + async fn fork_choice_updated_v2( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult; + + /// Updates the execution layer client with the given fork choice, as specified for the Cancun + /// fork. + /// + /// See also + /// + /// OP modifications: + /// - Must be called with an Ecotone payload + /// - Attributes must contain the parent beacon block root field + /// - The `payload_attributes` parameter is extended with the [`EngineTypes::PayloadAttributes`](EngineTypes) type as described in + #[method(name = "forkchoiceUpdatedV3")] + async fn fork_choice_updated_v3( + &self, + fork_choice_state: ForkchoiceState, + payload_attributes: Option, + ) -> RpcResult; + + /// Retrieves an execution payload from a previously started build process, as specified for the + /// Shanghai fork. + /// + /// See also + /// + /// Note: + /// > Provider software MAY stop the corresponding build process after serving this call. + /// + /// No modifications needed for OP compatibility. + #[method(name = "getPayloadV2")] + async fn get_payload_v2( + &self, + payload_id: PayloadId, + ) -> RpcResult; + + /// Retrieves an execution payload from a previously started build process, as specified for the + /// Cancun fork. + /// + /// See also + /// + /// Note: + /// > Provider software MAY stop the corresponding build process after serving this call. + /// + /// OP modifications: + /// - the response type is extended to [`EngineTypes::ExecutionPayloadEnvelopeV3`]. + #[method(name = "getPayloadV3")] + async fn get_payload_v3( + &self, + payload_id: PayloadId, + ) -> RpcResult; + + /// Returns the most recent version of the payload that is available in the corresponding + /// payload build process at the time of receiving this call. + /// + /// See also + /// + /// Note: + /// > Provider software MAY stop the corresponding build process after serving this call. + /// + /// OP modifications: + /// - the response type is extended to [`EngineTypes::ExecutionPayloadEnvelopeV4`]. + #[method(name = "getPayloadV4")] + async fn get_payload_v4( + &self, + payload_id: PayloadId, + ) -> RpcResult; + + /// Returns the execution payload bodies by the given hash. + /// + /// See also + #[method(name = "getPayloadBodiesByHashV1")] + async fn get_payload_bodies_by_hash_v1( + &self, + block_hashes: Vec, + ) -> RpcResult; + + /// Returns the execution payload bodies by the range starting at `start`, containing `count` + /// blocks. + /// + /// WARNING: This method is associated with the BeaconBlocksByRange message in the consensus + /// layer p2p specification, meaning the input should be treated as untrusted or potentially + /// adversarial. + /// + /// Implementers should take care when acting on the input to this method, specifically + /// ensuring that the range is limited properly, and that the range boundaries are computed + /// correctly and without panics. + /// + /// See also + #[method(name = "getPayloadBodiesByRangeV1")] + async fn get_payload_bodies_by_range_v1( + &self, + start: U64, + count: U64, + ) -> RpcResult; + + /// Signals superchain information to the Engine. + /// Returns the latest supported OP-Stack protocol version of the execution engine. + /// See also + #[method(name = "engine_signalSuperchainV1")] + async fn signal_superchain_v1(&self, _signal: SuperchainSignal) -> RpcResult; + + /// Returns the execution client version information. + /// + /// Note: + /// > The `client_version` parameter identifies the consensus client. + /// + /// See also + #[method(name = "getClientVersionV1")] + async fn get_client_version_v1( + &self, + client_version: ClientVersionV1, + ) -> RpcResult>; + + /// Returns the list of Engine API methods supported by the execution layer client software. + /// + /// See also + #[method(name = "exchangeCapabilities")] + async fn exchange_capabilities(&self, capabilities: Vec) -> RpcResult>; +} diff --git a/crates/op-rbuilder/src/primitives/reth/mod.rs b/crates/op-rbuilder/src/primitives/reth/mod.rs index 3aa4812af..ed2b38b92 100644 --- a/crates/op-rbuilder/src/primitives/reth/mod.rs +++ b/crates/op-rbuilder/src/primitives/reth/mod.rs @@ -1,2 +1,3 @@ +pub mod engine_api_builder; mod execution; pub use execution::{ExecutionInfo, TxnExecutionResult}; diff --git a/crates/op-rbuilder/src/traits.rs b/crates/op-rbuilder/src/traits.rs index 3c9243530..ef9dde45f 100644 --- a/crates/op-rbuilder/src/traits.rs +++ b/crates/op-rbuilder/src/traits.rs @@ -1,5 +1,5 @@ use alloy_consensus::Header; -use reth_node_api::{FullNodeTypes, NodeTypes}; +use reth_node_api::{FullNodeComponents, FullNodeTypes, NodeTypes}; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_node::OpEngineTypes; use reth_optimism_primitives::{OpPrimitives, OpTransactionSigned}; @@ -27,6 +27,24 @@ impl NodeBounds for T where { } +pub trait NodeComponents: + FullNodeComponents< + Types: NodeTypes, +> +{ +} + +impl NodeComponents for T where + T: FullNodeComponents< + Types: NodeTypes< + Payload = OpEngineTypes, + ChainSpec = OpChainSpec, + Primitives = OpPrimitives, + >, + > +{ +} + pub trait PoolBounds: TransactionPool> + Unpin + 'static where diff --git a/crates/op-rbuilder/src/tx.rs b/crates/op-rbuilder/src/tx.rs index a827767f0..b54b470e4 100644 --- a/crates/op-rbuilder/src/tx.rs +++ b/crates/op-rbuilder/src/tx.rs @@ -222,9 +222,7 @@ impl MaybeInteropTransaction for FBPooledTransaction { impl DataAvailabilitySized for FBPooledTransaction { fn estimated_da_size(&self) -> u64 { - // Downscaled by 1e6 to be compliant with op-geth estimate size function - // https://github.com/ethereum-optimism/op-geth/blob/optimism/core/types/rollup_cost.go#L563 - op_alloy_flz::tx_estimated_size_fjord(self.inner.encoded_2718()).wrapping_div(1_000_000) + self.inner.estimated_da_size() } }