From 4c25858f8df3434fba64cc205e23e7b8ae75929a Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Thu, 6 Mar 2025 21:53:39 -0500 Subject: [PATCH 01/93] wip --- Cargo.lock | 6422 +++++++++++------ Cargo.toml | 107 +- crates/bin/Cargo.toml | 4 - crates/brontes-classifier/Cargo.toml | 5 +- .../src/classifiers/balancer/balancer_v2.rs | 3 +- .../src/classifiers/dodo/dodo_v2.rs | 2 +- .../src/classifiers/erc20.rs | 3 +- .../src/classifiers/maker/dss_flash.rs | 2 +- .../classifiers/oneinch/one_inch_fusion.rs | 2 +- crates/brontes-core/Cargo.toml | 6 +- crates/brontes-core/src/errors.rs | 2 +- crates/brontes-database/brontes-db/Cargo.toml | 5 +- crates/brontes-database/libmdbx-rs/Cargo.toml | 6 +- .../brontes-database/libmdbx-rs/src/codec.rs | 2 +- crates/brontes-inspect/Cargo.toml | 1 - .../cex_dex/markout/cex_dex_markout.rs | 2 +- .../mev_inspectors/cex_dex/markout/types.rs | 2 +- .../mev_inspectors/cex_dex/quotes/types.rs | 2 +- .../src/mev_inspectors/jit/jit_liquidity.rs | 3 +- .../src/mev_inspectors/searcher_activity.rs | 2 +- .../src/mev_inspectors/shared_utils.rs | 3 +- crates/brontes-metrics/Cargo.toml | 1 - crates/brontes-metrics/src/inspectors.rs | 2 +- crates/brontes-metrics/src/trace/types.rs | 2 +- crates/brontes-pricing/Cargo.toml | 2 +- .../pricing-test-utils/Cargo.toml | 2 +- crates/brontes-types/Cargo.toml | 23 +- .../brontes-types/src/block_metadata/mod.rs | 2 +- .../src/block_metadata/relays.rs | 2 +- crates/brontes-types/src/db/block_analysis.rs | 2 +- crates/brontes-types/src/db/builder.rs | 2 +- crates/brontes-types/src/db/clickhouse.rs | 2 +- .../src/db/clickhouse_serde/tx_trace.rs | 38 +- crates/brontes-types/src/db/codecs.rs | 6 +- crates/brontes-types/src/db/dex.rs | 9 +- crates/brontes-types/src/db/metadata.rs | 3 +- .../src/db/normalized_actions.rs | 2 +- crates/brontes-types/src/db/traces.rs | 43 +- crates/brontes-types/src/display/utils.rs | 2 +- crates/brontes-types/src/mev/backrun.rs | 2 +- crates/brontes-types/src/mev/block.rs | 3 +- crates/brontes-types/src/mev/bundle/data.rs | 2 +- crates/brontes-types/src/mev/bundle/header.rs | 2 +- crates/brontes-types/src/mev/bundle/mod.rs | 2 +- crates/brontes-types/src/mev/cex_dex.rs | 2 +- .../brontes-types/src/mev/cex_dex_quotes.rs | 2 +- .../brontes-types/src/mev/classified_mev.rs | 2 +- crates/brontes-types/src/mev/jit.rs | 2 +- crates/brontes-types/src/mev/jit_sandwich.rs | 2 +- crates/brontes-types/src/mev/liquidation.rs | 2 +- crates/brontes-types/src/mev/sandwich.rs | 2 +- crates/brontes-types/src/mev/searcher_tx.rs | 2 +- .../src/normalized_actions/aggregator.rs | 2 +- .../src/normalized_actions/flashloan.rs | 2 +- .../src/normalized_actions/lending.rs | 3 +- .../src/normalized_actions/liquidation.rs | 3 +- .../src/normalized_actions/liquidity.rs | 3 +- .../src/normalized_actions/mod.rs | 18 +- .../src/normalized_actions/self_destruct.rs | 4 +- .../src/normalized_actions/swaps.rs | 3 +- .../src/normalized_actions/transfer.rs | 2 +- crates/brontes-types/src/pair.rs | 6 +- crates/brontes-types/src/queries.rs | 6 +- crates/brontes-types/src/serde_utils.rs | 2 +- crates/brontes-types/src/structured_trace.rs | 7 +- crates/brontes-types/src/traits.rs | 14 +- crates/brontes-types/src/tree/mod.rs | 3 +- crates/brontes-types/src/tree/node.rs | 2 +- crates/brontes-types/src/tree/root.rs | 3 +- crates/reth-tracing-ext/Cargo.toml | 17 +- crates/reth-tracing-ext/src/lib.rs | 122 +- crates/reth-tracing-ext/src/provider.rs | 35 +- .../src/reth_tracer/inspector.rs | 120 +- .../reth-tracing-ext/src/reth_tracer/types.rs | 35 +- rust-toolchain.toml | 2 +- 75 files changed, 4520 insertions(+), 2652 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0a6aa60a95..9cd6ab9bec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -19,26 +19,14 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" -version = "0.4.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ + "crypto-common", "generic-array", ] -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "ctr 0.8.0", - "opaque-debug", -] - [[package]] name = "aes" version = "0.8.4" @@ -46,20 +34,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher 0.4.4", + "cipher", "cpufeatures", ] [[package]] name = "aes-gcm" -version = "0.9.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", - "aes 0.7.5", - "cipher 0.3.0", - "ctr 0.7.0", + "aes", + "cipher", + "ctr", "ghash", "subtle", ] @@ -75,7 +63,7 @@ dependencies = [ "getrandom 0.2.15", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -119,30 +107,47 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-chains" -version = "0.1.27" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b515e82c8468ddb6ff8db21c78a5997442f113fd8471fd5b2261b2602dd0c67" +checksum = "996564c1782285d4e0299c29b318bc74f24b1d7f456cef3e040810b061ee3256" dependencies = [ + "alloy-primitives 0.8.22", "alloy-rlp", - "arbitrary", "num_enum", - "proptest", "serde", - "strum 0.26.3", + "strum 0.27.1", ] [[package]] name = "alloy-consensus" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e32ef5c74bbeb1733c37f4ac7f866f8c8af208b7b4265e21af609dcac5bd5e" dependencies = [ "alloy-eips", - "alloy-primitives", + "alloy-primitives 0.8.22", "alloy-rlp", "alloy-serde", + "alloy-trie", + "auto_impl", "c-kzg", + "derive_more 1.0.0", + "serde", + "serde_with", +] + +[[package]] +name = "alloy-consensus-any" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-serde", "serde", - "sha2 0.10.8", ] [[package]] @@ -151,12 +156,11 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", + "alloy-json-abi 0.7.7", + "alloy-primitives 0.7.7", + "alloy-sol-type-parser 0.7.7", + "alloy-sol-types 0.7.7", "const-hex", - "derive_more", "itoa", "serde", "serde_json", @@ -164,28 +168,103 @@ dependencies = [ ] [[package]] -name = "alloy-eips" +name = "alloy-dyn-abi" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e08c581811006021970bf07f2ecf3213f6237c125f7fd99607004b23627b61" +dependencies = [ + "alloy-json-abi 0.8.22", + "alloy-primitives 0.8.22", + "alloy-sol-type-parser 0.8.22", + "alloy-sol-types 0.8.22", + "const-hex", + "derive_more 2.0.1", + "itoa", + "serde", + "serde_json", + "winnow 0.7.3", +] + +[[package]] +name = "alloy-eip2124" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "crc", + "serde", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-eip2930" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "k256", + "serde", + "serde_with", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-eips" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5591581ca2ab0b3e7226a4047f9a1bfcf431da1d0cce3752fda609fea3c27e37" dependencies = [ - "alloy-primitives", + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives 0.8.22", "alloy-rlp", "alloy-serde", - "arbitrary", + "auto_impl", "c-kzg", + "derive_more 1.0.0", + "ethereum_ssz", + "ethereum_ssz_derive", "once_cell", - "proptest", - "proptest-derive", "serde", + "sha2 0.10.8", ] [[package]] -name = "alloy-genesis" +name = "alloy-evm" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +source = "git+https://github.com/alloy-rs/evm?rev=04fa394#04fa3947c5694c2d15956bb18a31834b95e0e975" +dependencies = [ + "alloy-consensus", + "alloy-primitives 0.8.22", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", +] + +[[package]] +name = "alloy-genesis" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cded3a2d4bd7173f696458c5d4c98c18a628dfcc9f194385e80a486e412e2e0" dependencies = [ - "alloy-primitives", + "alloy-eips", + "alloy-primitives 0.8.22", "alloy-serde", + "alloy-trie", "serde", ] @@ -195,38 +274,91 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", + "alloy-primitives 0.7.7", + "alloy-sol-type-parser 0.7.7", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-abi" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125601804507fef5ae7debcbf800906b12741f19800c1c05b953d0f1b990131a" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-sol-type-parser 0.8.22", "serde", "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.8.22", + "alloy-sol-types 0.8.22", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tracing", ] [[package]] name = "alloy-network" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" dependencies = [ "alloy-consensus", + "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-types", + "alloy-network-primitives", + "alloy-primitives 0.8.22", + "alloy-rpc-types-any", + "alloy-rpc-types-eth", + "alloy-serde", "alloy-signer", + "alloy-sol-types 0.8.22", "async-trait", + "auto_impl", "futures-utils-wasm", - "thiserror", + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.18", + "hex-literal", + "itoa", + "ruint", + "tiny-keccak", ] [[package]] @@ -234,6 +366,28 @@ name = "alloy-primitives" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.18", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand 0.8.5", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c66bb6715b7499ea755bde4c96223ae8eb74e05c014ab38b9db602879ffb825" dependencies = [ "alloy-rlp", "arbitrary", @@ -241,54 +395,89 @@ dependencies = [ "cfg-if", "const-hex", "derive_arbitrary", - "derive_more", - "ethereum_ssz", + "derive_more 2.0.1", + "foldhash", "getrandom 0.2.15", - "hex-literal", + "hashbrown 0.15.2", + "indexmap 2.7.1", "itoa", "k256", "keccak-asm", + "paste", "proptest", - "proptest-derive", + "proptest-derive 0.5.1", "rand 0.8.5", "ruint", + "rustc-hash 2.1.1", "serde", + "sha3", "tiny-keccak", ] [[package]] name = "alloy-provider" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" dependencies = [ + "alloy-chains", + "alloy-consensus", "alloy-eips", "alloy-json-rpc", "alloy-network", - "alloy-primitives", + "alloy-network-primitives", + "alloy-primitives 0.8.22", + "alloy-pubsub", "alloy-rpc-client", - "alloy-rpc-types", - "alloy-rpc-types-trace", + "alloy-rpc-types-eth", + "alloy-sol-types 0.8.22", "alloy-transport", "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", "async-stream", "async-trait", "auto_impl", - "dashmap", + "dashmap 6.1.0", "futures", "futures-utils-wasm", - "lru", + "lru 0.13.0", + "parking_lot", + "pin-project", "reqwest 0.12.5", + "serde", "serde_json", + "thiserror 2.0.12", "tokio", "tracing", "url", + "wasmtimer", +] + +[[package]] +name = "alloy-pubsub" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives 0.8.22", + "alloy-transport", + "bimap", + "futures", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower 0.5.2", + "tracing", ] [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -297,23 +486,28 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] name = "alloy-rpc-client" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" dependencies = [ "alloy-json-rpc", + "alloy-primitives 0.8.22", + "alloy-pubsub", "alloy-transport", "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", "futures", "pin-project", "reqwest 0.12.5", @@ -321,124 +515,272 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower", + "tower 0.5.2", "tracing", "url", + "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "alloy-serde", - "alloy-sol-types", - "arbitrary", - "itertools 0.12.1", - "jsonrpsee-types", - "proptest", - "proptest-derive", "serde", - "serde_json", - "thiserror", ] [[package]] -name = "alloy-rpc-types-anvil" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +name = "alloy-rpc-types-admin" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" dependencies = [ - "alloy-primitives", - "alloy-serde", + "alloy-genesis", + "alloy-primitives 0.8.22", "serde", + "serde_json", ] [[package]] -name = "alloy-rpc-types-engine" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +name = "alloy-rpc-types-anvil" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types", + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", "alloy-serde", - "jsonrpsee-types", "serde", - "thiserror", ] [[package]] -name = "alloy-rpc-types-trace" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +name = "alloy-rpc-types-any" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" dependencies = [ - "alloy-primitives", - "alloy-rpc-types", + "alloy-consensus-any", + "alloy-rpc-types-eth", "alloy-serde", - "serde", - "serde_json", ] [[package]] -name = "alloy-serde" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +name = "alloy-rpc-types-beacon" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" dependencies = [ - "alloy-primitives", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "ethereum_ssz", + "ethereum_ssz_derive", "serde", - "serde_json", + "serde_with", + "thiserror 2.0.12", ] [[package]] -name = "alloy-signer" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +name = "alloy-rpc-types-debug" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "elliptic-curve", - "k256", - "thiserror", + "alloy-primitives 0.8.22", + "serde", ] [[package]] -name = "alloy-sol-macro" -version = "0.7.7" +name = "alloy-rpc-types-engine" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.74", -] - -[[package]] -name = "alloy-sol-macro-expander" + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-serde", + "derive_more 1.0.0", + "ethereum_ssz", + "ethereum_ssz_derive", + "jsonrpsee-types", + "jsonwebtoken", + "rand 0.8.5", + "serde", + "strum 0.26.3", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" +dependencies = [ + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types 0.8.22", + "itertools 0.14.0", + "jsonrpsee-types", + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-rpc-types-mev" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-rpc-types-trace" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-rpc-types-txpool" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-serde" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8732058f5ca28c1d53d241e8504620b997ef670315d7c8afab856b3e3b80d945" +dependencies = [ + "alloy-primitives 0.8.22", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f96b3526fdd779a4bd0f37319cfb4172db52a7ac24cdbb8804b72091c18e1701" +dependencies = [ + "alloy-primitives 0.8.22", + "async-trait", + "auto_impl", + "either", + "elliptic-curve", + "k256", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-signer-local" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives 0.8.22", + "alloy-signer", + "async-trait", + "k256", + "rand 0.8.5", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander 0.7.7", + "alloy-sol-macro-input 0.7.7", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f9c3c7bc1f4e334e5c5fc59ec8dac894973a71b11da09065affc6094025049" +dependencies = [ + "alloy-sol-macro-expander 0.8.22", + "alloy-sol-macro-input 0.8.22", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "alloy-sol-macro-expander" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" dependencies = [ - "alloy-json-abi", - "alloy-sol-macro-input", + "alloy-sol-macro-input 0.7.7", "const-hex", "heck 0.5.0", - "indexmap 2.4.0", + "indexmap 2.7.1", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.74", - "syn-solidity", + "syn 2.0.99", + "syn-solidity 0.7.7", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ff7aa715eb2404cb87fa94390d2c5d5addd70d9617e20b2398ee6f48cb21f0" +dependencies = [ + "alloy-json-abi 0.8.22", + "alloy-sol-macro-input 0.8.22", + "const-hex", + "heck 0.5.0", + "indexmap 2.7.1", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.99", + "syn-solidity 0.8.22", "tiny-keccak", ] @@ -448,15 +790,30 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" dependencies = [ - "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.99", + "syn-solidity 0.7.7", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f105fa700140c0cc6e2c3377adef650c389ac57b8ead8318a2e6bd52f1ae841" +dependencies = [ + "alloy-json-abi 0.8.22", "const-hex", "dunce", "heck 0.5.0", "proc-macro2", "quote", "serde_json", - "syn 2.0.74", - "syn-solidity", + "syn 2.0.99", + "syn-solidity 0.8.22", ] [[package]] @@ -469,65 +826,124 @@ dependencies = [ "winnow 0.6.18", ] +[[package]] +name = "alloy-sol-type-parser" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c649acc6c9d3893e392c737faeadce30b4a1751eed148ae43bc2f27f29c4480c" +dependencies = [ + "serde", + "winnow 0.7.3", +] + [[package]] name = "alloy-sol-types" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-macro", + "alloy-primitives 0.7.7", + "alloy-sol-macro 0.7.7", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-sol-types" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f819635439ebb06aa13c96beac9b2e7360c259e90f5160a6848ae0d94d10452" +dependencies = [ + "alloy-json-abi 0.8.22", + "alloy-primitives 0.8.22", + "alloy-sol-macro 0.8.22", "const-hex", "serde", ] [[package]] name = "alloy-transport" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" dependencies = [ "alloy-json-rpc", "base64 0.22.1", - "futures-util", "futures-utils-wasm", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tokio", - "tower", + "tower 0.5.2", + "tracing", "url", - "wasm-bindgen-futures", + "wasmtimer", ] [[package]] name = "alloy-transport-http" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy.git?rev=39b8695#39b869585955d95e9c64c3e1b66f16432ae4f132" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" dependencies = [ "alloy-json-rpc", "alloy-transport", "reqwest 0.12.5", "serde_json", - "tower", + "tower 0.5.2", + "tracing", "url", ] +[[package]] +name = "alloy-transport-ipc" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" +dependencies = [ + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", + "serde", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "alloy-transport-ws" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" +dependencies = [ + "alloy-pubsub", + "alloy-transport", + "futures", + "http 1.1.0", + "rustls", + "serde_json", + "tokio", + "tokio-tungstenite", + "tracing", + "ws_stream_wasm", +] + [[package]] name = "alloy-trie" -version = "0.3.1" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb28aa4ecd32fdfa1b1bdd111ff7357dd562c6b2372694cf9e613434fcba659" +checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.8.22", "alloy-rlp", - "arbitrary", - "derive_arbitrary", - "derive_more", - "hashbrown 0.14.5", + "arrayvec", + "derive_more 1.0.0", "nybbles", - "proptest", - "proptest-derive", "serde", "smallvec", "tracing", @@ -639,16 +1055,16 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2" dependencies = [ "include_dir", "itertools 0.10.5", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -656,9 +1072,6 @@ name = "arbitrary" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" -dependencies = [ - "derive_arbitrary", -] [[package]] name = "argminmax" @@ -810,6 +1223,9 @@ name = "arrayvec" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +dependencies = [ + "serde", +] [[package]] name = "arrow" @@ -952,7 +1368,7 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.4.0", + "indexmap 2.7.1", "lexical-core", "num", "serde", @@ -1056,6 +1472,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + [[package]] name = "async-scoped" version = "0.7.1" @@ -1087,7 +1514,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -1098,7 +1525,18 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.0", ] [[package]] @@ -1122,17 +1560,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "attohttpc" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" -dependencies = [ - "http 0.2.12", - "log", - "url", -] - [[package]] name = "aurora-engine-modexp" version = "1.1.0" @@ -1151,7 +1578,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -1224,13 +1651,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] -name = "beef" -version = "0.5.2" +name = "bimap" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde", -] +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" [[package]] name = "bincode" @@ -1266,7 +1690,7 @@ version = "0.69.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1277,14 +1701,26 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] -name = "binout" -version = "0.2.1" +name = "bindgen" +version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60b1af88a588fca5fe424ae7d735bc52814f80ff57614f57043cc4e2024f2ea" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.9.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.99", +] [[package]] name = "bit-set" @@ -1301,6 +1737,22 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -1309,28 +1761,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" dependencies = [ - "arbitrary", "serde", ] [[package]] -name = "bitm" -version = "0.4.2" +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06e8e5bec3490b9f6f3adbb78aa4f53e8396fd9994e8a62a346b44ea7c15f35" -dependencies = [ - "dyn_size_of", -] - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", @@ -1339,6 +1781,19 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake3" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -1378,130 +1833,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "boa_ast" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b6fb81ca0f301f33aff7401e2ffab37dc9e0e4a1cf0ccf6b34f4d9e60aa0682" -dependencies = [ - "bitflags 2.6.0", - "boa_interner", - "boa_macros", - "indexmap 2.4.0", - "num-bigint", - "rustc-hash 1.1.0", -] - -[[package]] -name = "boa_engine" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600e4e4a65b26efcef08a7b1cf2899d3845a32e82e067ee3b75eaf7e413ff31c" -dependencies = [ - "arrayvec", - "bitflags 2.6.0", - "boa_ast", - "boa_gc", - "boa_interner", - "boa_macros", - "boa_parser", - "boa_profiler", - "bytemuck", - "cfg-if", - "dashmap", - "fast-float", - "hashbrown 0.14.5", - "icu_normalizer", - "indexmap 2.4.0", - "intrusive-collections", - "itertools 0.12.1", - "num-bigint", - "num-integer", - "num-traits", - "num_enum", - "once_cell", - "paste", - "pollster", - "portable-atomic", - "rand 0.8.5", - "regress", - "rustc-hash 1.1.0", - "ryu-js", - "serde", - "serde_json", - "sptr", - "static_assertions", - "tap", - "thin-vec", - "thiserror", - "time", -] - -[[package]] -name = "boa_gc" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c055ef3cd87ea7db014779195bc90c6adfc35de4902e3b2fe587adecbd384578" -dependencies = [ - "boa_macros", - "boa_profiler", - "hashbrown 0.14.5", - "thin-vec", -] - -[[package]] -name = "boa_interner" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cacc9caf022d92195c827a3e5bf83f96089d4bfaff834b359ac7b6be46e9187" -dependencies = [ - "boa_gc", - "boa_macros", - "hashbrown 0.14.5", - "indexmap 2.4.0", - "once_cell", - "phf", - "rustc-hash 1.1.0", - "static_assertions", -] - -[[package]] -name = "boa_macros" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be9c93793b60dac381af475b98634d4b451e28336e72218cad9a20176218dbc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.74", - "synstructure", -] - -[[package]] -name = "boa_parser" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8592556849f0619ed142ce2b3a19086769314a8d657f93a5765d06dbce4818" -dependencies = [ - "bitflags 2.6.0", - "boa_ast", - "boa_interner", - "boa_macros", - "boa_profiler", - "fast-float", - "icu_properties", - "num-bigint", - "num-traits", - "regress", - "rustc-hash 1.1.0", -] - -[[package]] -name = "boa_profiler" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d8372f2d5cbac600a260de87877141b42da1e18d2c7a08ccb493a49cbd55c0" - [[package]] name = "boyer-moore-magiclen" version = "0.2.20" @@ -1518,12 +1849,12 @@ dependencies = [ "ahash", "alloy-json-rpc", "alloy-network", - "alloy-primitives", + "alloy-primitives 0.8.22", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "alloy-transport", "alloy-transport-http", "ansi-parser", @@ -1565,7 +1896,7 @@ dependencies = [ "itertools 0.11.0", "log-report-layer", "malachite", - "metrics-process", + "metrics-process 1.0.14", "num_cpus", "prettytable-rs", "prometheus", @@ -1573,17 +1904,13 @@ dependencies = [ "rayon", "regex", "reqwest 0.12.5", - "reth-beacon-consensus", - "reth-blockchain-tree", "reth-db", - "reth-interfaces", "reth-network-api", "reth-node-core", "reth-primitives", "reth-provider", "reth-rpc", "reth-rpc-api", - "reth-rpc-types", "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", @@ -1591,7 +1918,7 @@ dependencies = [ "serde_json", "strum 0.25.0", "tar", - "thiserror", + "thiserror 1.0.63", "tikv-jemallocator", "tokio", "toml", @@ -1604,11 +1931,11 @@ dependencies = [ name = "brontes-classifier" version = "0.1.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.8.22", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "brontes-classifier", "brontes-core", "brontes-database", @@ -1625,19 +1952,18 @@ dependencies = [ "lazy_static", "malachite", "once_cell", - "parking_lot 0.12.3", + "parking_lot", "paste", "phf", "rayon", "reth-db", "reth-primitives", - "reth-rpc-types", "reth-tracing-ext", "serde", "serde_json", "serial_test", "strum 0.25.0", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", ] @@ -1646,13 +1972,13 @@ dependencies = [ name = "brontes-core" version = "0.1.0" dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", + "alloy-dyn-abi 0.7.7", + "alloy-json-abi 0.7.7", + "alloy-primitives 0.8.22", "alloy-provider", "alloy-rpc-types", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "alloy-transport-http", "async-trait", "auto_impl", @@ -1674,17 +2000,13 @@ dependencies = [ "once_cell", "phf", "reqwest 0.12.5", - "reth-beacon-consensus", - "reth-blockchain-tree", "reth-db", - "reth-interfaces", "reth-metrics", "reth-network-api", "reth-primitives", "reth-provider", "reth-rpc", "reth-rpc-api", - "reth-rpc-types", "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", @@ -1692,7 +2014,7 @@ dependencies = [ "serde", "serde_json", "serial_test", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", "tracing-subscriber", @@ -1703,9 +2025,10 @@ name = "brontes-database" version = "0.1.0" dependencies = [ "ahash", - "alloy-json-abi", - "alloy-primitives", + "alloy-json-abi 0.7.7", + "alloy-primitives 0.8.22", "alloy-rlp", + "alloy-rpc-types", "arbitrary", "arrow", "async-rate-limiter", @@ -1725,9 +2048,9 @@ dependencies = [ "chrono", "clickhouse", "criterion", - "dashmap", + "dashmap 5.5.3", "db-interfaces", - "derive_more", + "derive_more 0.99.18", "dotenv", "eyre", "filesize", @@ -1745,13 +2068,13 @@ dependencies = [ "moka", "page_size", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot", "parquet", "paste", "petgraph", "polars", "proptest", - "proptest-derive", + "proptest-derive 0.4.0", "rand 0.8.5", "rayon", "redefined", @@ -1760,12 +2083,10 @@ dependencies = [ "reth-codecs", "reth-codecs-derive", "reth-db", - "reth-interfaces", "reth-libmdbx", "reth-mdbx-sys", "reth-primitives", "reth-rpc", - "reth-rpc-types", "reth-tasks", "reth-tracing-ext", "rkyv", @@ -1779,7 +2100,7 @@ dependencies = [ "strum_macros 0.25.3", "tar", "test-fuzz", - "thiserror", + "thiserror 1.0.63", "tokio", "tokio-scoped", "toml", @@ -1791,11 +2112,11 @@ dependencies = [ name = "brontes-inspect" version = "0.1.0" dependencies = [ - "alloy-json-abi", - "alloy-primitives", + "alloy-json-abi 0.7.7", + "alloy-primitives 0.8.22", "alloy-rpc-types", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "async-scoped", "async-trait", "auto_impl", @@ -1823,7 +2144,6 @@ dependencies = [ "reqwest 0.12.5", "reth-db", "reth-primitives", - "reth-rpc-types", "reth-tracing-ext", "serde", "serde_json", @@ -1831,7 +2151,7 @@ dependencies = [ "serial_test", "statrs", "strum 0.25.0", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", "tracing-subscriber", @@ -1841,19 +2161,19 @@ dependencies = [ name = "brontes-libmdbx" version = "0.0.0" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "byteorder", "criterion", - "dashmap", - "derive_more", - "indexmap 2.4.0", + "dashmap 5.5.3", + "derive_more 2.0.1", + "indexmap 2.7.1", "libc", "libffi", - "parking_lot 0.12.3", + "parking_lot", "pprof", "reth-mdbx-sys", "tempfile", - "thiserror", + "thiserror 1.0.63", "tracing", ] @@ -1864,29 +2184,28 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] name = "brontes-metrics" version = "0.1.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.8.22", "brontes-types", "clickhouse", "colored", - "dashmap", + "dashmap 5.5.3", "db-interfaces", "eyre", "futures", "hyper 0.14.30", - "metrics", - "metrics-exporter-prometheus", - "metrics-process", - "metrics-util", - "procfs", + "metrics 0.21.1", + "metrics-exporter-prometheus 0.12.1", + "metrics-process 1.0.14", + "metrics-util 0.15.0", + "procfs 0.16.0", "prometheus", - "reth-interfaces", "reth-metrics", "reth-primitives", "tikv-jemalloc-ctl", @@ -1899,11 +2218,12 @@ dependencies = [ name = "brontes-pricing" version = "0.1.0" dependencies = [ - "alloy-dyn-abi", - "alloy-primitives", + "alloy-dyn-abi 0.7.7", + "alloy-primitives 0.8.22", "alloy-rlp", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-rpc-types", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "arbitrary", "async-trait", "auto_impl", @@ -1916,25 +2236,25 @@ dependencies = [ "brontes-types", "bytes", "criterion", - "dashmap", - "derive_more", + "dashmap 5.5.3", + "derive_more 2.0.1", "dotenv", "erased-serde", "eyre", "futures", - "indexmap 2.4.0", + "indexmap 2.7.1", "itertools 0.12.1", "malachite", "modular-bitfield", "num-bigfloat", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot", "pathfinding", "petgraph", "phf", "pricing-test-utils", "proptest", - "proptest-derive", + "proptest-derive 0.4.0", "rand 0.8.5", "rayon", "redefined", @@ -1942,7 +2262,6 @@ dependencies = [ "reth-db", "reth-primitives", "reth-provider", - "reth-rpc-types", "reth-tracing-ext", "rkyv", "rustc-hash 1.1.0", @@ -1951,7 +2270,7 @@ dependencies = [ "serde_repr", "serde_with", "strum 0.25.0", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", ] @@ -1969,13 +2288,15 @@ name = "brontes-types" version = "0.1.0" dependencies = [ "ahash", - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", + "alloy-dyn-abi 0.7.7", + "alloy-json-abi 0.7.7", + "alloy-primitives 0.8.22", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-rpc-types-beacon", + "alloy-rpc-types-trace", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "async-trait", "auto_impl", "brontes-classifier", @@ -1987,7 +2308,7 @@ dependencies = [ "clap", "clickhouse", "colored", - "derive_more", + "derive_more 2.0.1", "dotenv", "dyn-clone", "erased-serde", @@ -2001,7 +2322,7 @@ dependencies = [ "malachite", "malachite-q", "once_cell", - "parking_lot 0.12.3", + "parking_lot", "paste", "phf", "pin-project", @@ -2012,10 +2333,8 @@ dependencies = [ "reqwest 0.12.5", "reth-codecs", "reth-db", - "reth-interfaces", "reth-primitives", "reth-rpc", - "reth-rpc-types", "reth-tasks", "reth-tracing-ext", "rkyv", @@ -2026,7 +2345,7 @@ dependencies = [ "serial_test", "statrs", "strum 0.25.0", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", "zstd", @@ -2126,6 +2445,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "bytecount" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" + [[package]] name = "bytemuck" version = "1.17.0" @@ -2143,7 +2468,7 @@ checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -2154,24 +2479,25 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" dependencies = [ "serde", ] [[package]] name = "c-kzg" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] @@ -2193,6 +2519,19 @@ dependencies = [ "serde", ] +[[package]] +name = "cargo_metadata" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", +] + [[package]] name = "cargo_metadata" version = "0.18.1" @@ -2204,7 +2543,7 @@ dependencies = [ "semver 1.0.23", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -2215,14 +2554,21 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.83" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "jobserver", "libc", + "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cexpr" version = "0.6.0" @@ -2238,6 +2584,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.38" @@ -2302,15 +2654,6 @@ dependencies = [ "half", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array", -] - [[package]] name = "cipher" version = "0.4.4" @@ -2351,7 +2694,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.1", + "strsim", ] [[package]] @@ -2363,7 +2706,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -2391,7 +2734,7 @@ dependencies = [ "serde_json", "serde_with", "static_assertions", - "thiserror", + "thiserror 1.0.63", "time", "tokio", "url", @@ -2433,6 +2776,16 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.1.1" @@ -2454,18 +2807,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "confy" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45b1f4c00870f07dc34adcac82bb6a72cc5aabca8536ba1797e01df51d2ce9a0" -dependencies = [ - "directories", - "serde", - "thiserror", - "toml", -] - [[package]] name = "console" version = "0.15.8" @@ -2481,9 +2822,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", @@ -2518,12 +2859,6 @@ dependencies = [ "tiny-keccak", ] -[[package]] -name = "const-str" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3618cccc083bb987a415d85c02ca6c9994ea5b44731ec28b9ecf09658655fba9" - [[package]] name = "const_format" version = "0.2.32" @@ -2545,6 +2880,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + [[package]] name = "convert_case" version = "0.4.0" @@ -2553,9 +2894,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "convert_case" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" dependencies = [ "unicode-segmentation", ] @@ -2665,6 +3006,12 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + [[package]] name = "crossbeam-channel" version = "0.5.13" @@ -2714,11 +3061,11 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "crossterm_winapi", "libc", "mio 0.8.11", - "parking_lot 0.12.3", + "parking_lot", "signal-hook", "signal-hook-mio", "winapi", @@ -2758,6 +3105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", + "rand_core 0.6.4", "typenum", ] @@ -2792,45 +3140,13 @@ dependencies = [ "memchr", ] -[[package]] -name = "ctr" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" -dependencies = [ - "cipher 0.3.0", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher 0.3.0", -] - [[package]] name = "ctr" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.4.4", -] - -[[package]] -name = "cuckoofilter" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" -dependencies = [ - "byteorder", - "fnv", - "rand 0.7.3", - "serde", - "serde_bytes", - "serde_derive", + "cipher", ] [[package]] @@ -2857,17 +3173,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", -] - -[[package]] -name = "darling" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" -dependencies = [ - "darling_core 0.10.2", - "darling_macro 0.10.2", + "syn 2.0.99", ] [[package]] @@ -2876,22 +3182,8 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", -] - -[[package]] -name = "darling_core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.9.3", - "syn 1.0.109", + "darling_core", + "darling_macro", ] [[package]] @@ -2904,43 +3196,46 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim 0.11.1", - "syn 2.0.74", + "strsim", + "syn 2.0.99", ] [[package]] name = "darling_macro" -version = "0.10.2" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.10.2", + "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.99", ] [[package]] -name = "darling_macro" -version = "0.20.10" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "darling_core 0.20.10", - "quote", - "syn 2.0.74", + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.10", + "parking_lot_core", ] [[package]] @@ -2991,7 +3286,7 @@ dependencies = [ "serde_json", "strum 0.25.0", "strum_macros 0.25.3", - "thiserror", + "thiserror 1.0.63", "tokio", ] @@ -3006,7 +3301,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -3026,11 +3321,12 @@ dependencies = [ [[package]] name = "delay_map" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8" +checksum = "df941644b671f05f59433e481ba0d31ac10e3667de725236a4c0d587c496fba1" dependencies = [ "futures", + "tokio", "tokio-util", ] @@ -3043,7 +3339,7 @@ dependencies = [ "proc-macro2", "quote", "semver 1.0.23", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -3077,6 +3373,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + [[package]] name = "derive_arbitrary" version = "1.3.2" @@ -3085,45 +3392,63 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] -name = "derive_builder" -version = "0.9.0" +name = "derive_more" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2658621297f2cf68762a6f7dc0bb7e1ff2cfd6583daef8ee0fed6f7ec468ec0" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "darling 0.10.2", - "derive_builder_core", + "convert_case 0.4.0", "proc-macro2", "quote", - "syn 1.0.109", + "rustc_version 0.4.0", + "syn 2.0.99", ] [[package]] -name = "derive_builder_core" -version = "0.9.0" +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl 2.0.1", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2791ea3e372c8495c0bc2033991d76b512cd799d07491fbd6890124db9458bef" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "darling 0.10.2", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.99", + "unicode-xid", ] [[package]] -name = "derive_more" -version = "0.99.18" +name = "derive_more-impl" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case 0.4.0", + "convert_case 0.7.1", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 2.0.74", + "syn 2.0.99", + "unicode-xid", ] [[package]] @@ -3135,13 +3460,19 @@ dependencies = [ "backtrace", "lazy_static", "mintex", - "parking_lot 0.12.3", + "parking_lot", "rustc-hash 1.1.0", "serde", "serde_json", "thousands", ] +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + [[package]] name = "digest" version = "0.9.0" @@ -3216,12 +3547,15 @@ dependencies = [ [[package]] name = "discv5" -version = "0.4.1" -source = "git+https://github.com/sigp/discv5?rev=04ac004#04ac0042a345a9edf93b090007e5d31c008261ed" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4b4e7798d2ff74e29cee344dc490af947ae657d6ab5273dde35d58ce06a4d71" dependencies = [ - "aes 0.7.5", + "aes", "aes-gcm", + "alloy-rlp", "arrayvec", + "ctr", "delay_map", "enr", "fnv", @@ -3230,17 +3564,17 @@ dependencies = [ "hex", "hkdf", "lazy_static", - "libp2p", - "lru", + "libp2p-identity", + "lru 0.12.4", "more-asserts", - "parking_lot 0.11.2", + "multiaddr", + "parking_lot", "rand 0.8.5", - "rlp", "smallvec", - "socket2 0.4.10", + "socket2", "tokio", "tracing", - "uint", + "uint 0.10.0", "zeroize", ] @@ -3252,20 +3586,14 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] -name = "dns-lookup" -version = "1.0.8" +name = "doctest-file" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ecafc952c4528d9b51a458d1a8904b81783feff9fde08ab6ed2545ff396872" -dependencies = [ - "cfg-if", - "libc", - "socket2 0.4.10", - "winapi", -] +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" [[package]] name = "dotenv" @@ -3285,12 +3613,6 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" -[[package]] -name = "dyn_size_of" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d4f78a40b1ec35bf8cafdaaf607ba2f773c366b0b3bda48937cacd7a8d5134" - [[package]] name = "ecdsa" version = "0.16.9" @@ -3301,6 +3623,7 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] @@ -3330,18 +3653,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "educe" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" -dependencies = [ - "enum-ordinalize", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "either" version = "1.13.0" @@ -3363,6 +3674,7 @@ dependencies = [ "pkcs8", "rand_core 0.6.4", "sec1", + "serdect", "subtle", "zeroize", ] @@ -3396,36 +3708,24 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "enr" -version = "0.10.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +checksum = "851bd664a3d3a3c175cff92b2f0df02df3c541b4895d0ae307611827aae46152" dependencies = [ - "base64 0.21.7", + "alloy-rlp", + "base64 0.22.1", "bytes", "ed25519-dalek", "hex", "k256", "log", "rand 0.8.5", - "rlp", - "secp256k1 0.27.0", + "secp256k1 0.30.0", "serde", "sha3", "zeroize", ] -[[package]] -name = "enum-as-inner" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "enum-as-inner" version = "0.6.0" @@ -3435,20 +3735,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.74", -] - -[[package]] -name = "enum-ordinalize" -version = "3.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -3460,7 +3747,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -3471,7 +3758,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -3500,41 +3787,52 @@ dependencies = [ ] [[package]] -name = "ethbloom" -version = "0.13.0" +name = "error-chain" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", + "version_check", ] [[package]] -name = "ethereum-types" -version = "0.14.1" +name = "ethereum_serde_utils" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +checksum = "70cbccfccf81d67bff0ab36e591fa536c8a935b078a7b0e58c1d00d418332fc9" dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types", - "uint", + "alloy-primitives 0.8.22", + "hex", + "serde", + "serde_derive", + "serde_json", ] [[package]] name = "ethereum_ssz" -version = "0.5.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3627f83d8b87b432a5fad9934b4565260722a141a2c40f371f8080adec9425" +checksum = "86da3096d1304f5f28476ce383005385459afeaf0eea08592b65ddbc9b258d16" dependencies = [ - "ethereum-types", - "itertools 0.10.5", + "alloy-primitives 0.8.22", + "ethereum_serde_utils", + "itertools 0.13.0", + "serde", + "serde_derive", "smallvec", + "typenum", +] + +[[package]] +name = "ethereum_ssz_derive" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d832a5c38eba0e7ad92592f7a22d693954637fbb332b4f669590d66a5c3183e5" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.99", ] [[package]] @@ -3589,7 +3887,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -3647,7 +3945,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ - "arbitrary", "byteorder", "rand 0.8.5", "rustc-hex", @@ -3686,6 +3983,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3732,6 +4035,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + [[package]] name = "funty" version = "2.0.0" @@ -3778,7 +4090,6 @@ dependencies = [ "futures-core", "futures-task", "futures-util", - "num_cpus", ] [[package]] @@ -3795,7 +4106,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -3810,23 +4121,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" -[[package]] -name = "futures-test" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce388237b32ac42eca0df1ba55ed3bbda4eaf005d7d4b5dbc0b20ab962928ac9" -dependencies = [ - "futures-core", - "futures-executor", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "futures-util", - "pin-project", - "pin-utils", -] - [[package]] name = "futures-timer" version = "3.0.3" @@ -3834,7 +4128,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ "gloo-timers", - "send_wrapper", + "send_wrapper 0.4.0", ] [[package]] @@ -3867,6 +4161,7 @@ version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ + "serde", "typenum", "version_check", "zeroize", @@ -3874,33 +4169,34 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.2.15" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", - "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] name = "ghash" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", "polyval", @@ -3920,20 +4216,20 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gloo-net" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" +checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" dependencies = [ "futures-channel", "futures-core", "futures-sink", "gloo-utils", - "http 0.2.12", + "http 1.1.0", "js-sys", "pin-project", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3987,7 +4283,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -4006,7 +4302,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.4.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util", @@ -4057,14 +4353,25 @@ dependencies = [ "ahash", "allocator-api2", "rayon", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", "serde", ] [[package]] name = "hashlink" -version = "0.8.4" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ "hashbrown 0.14.5", ] @@ -4131,12 +4438,69 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + [[package]] name = "hex-literal" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hickory-proto" +version = "0.25.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2" +dependencies = [ + "async-recursion", + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand 0.9.0", + "serde", + "thiserror 2.0.12", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.25.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "moka", + "once_cell", + "parking_lot", + "rand 0.9.0", + "resolv-conf", + "serde", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -4254,9 +4618,9 @@ dependencies = [ [[package]] name = "http-range-header" -version = "0.3.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" [[package]] name = "httparse" @@ -4318,7 +4682,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", "tower-service", "tracing", @@ -4338,6 +4702,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.1", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -4345,22 +4710,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.30", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.2" @@ -4371,25 +4720,14 @@ dependencies = [ "http 1.1.0", "hyper 1.4.1", "hyper-util", - "rustls 0.23.12", + "log", + "rustls", + "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", - "tower-service", -] - -[[package]] -name = "hyper-system-resolver" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eea26c5d0b6ab9d72219f65000af310f042a740926f7b2fa3553e774036e2e7" -dependencies = [ - "derive_builder", - "dns-lookup", - "hyper 0.14.30", - "tokio", + "tokio-rustls", "tower-service", - "tracing", + "webpki-roots", ] [[package]] @@ -4434,9 +4772,9 @@ dependencies = [ "http-body 1.0.1", "hyper 1.4.1", "pin-project-lite", - "socket2 0.5.7", + "socket2", "tokio", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -4452,7 +4790,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -4579,7 +4917,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -4590,33 +4928,33 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.2.3" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", ] [[package]] -name = "idna" -version = "0.4.0" +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] -name = "idna" -version = "0.5.0" +name = "if-addrs" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "libc", + "windows-sys 0.52.0", ] [[package]] @@ -4625,25 +4963,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" -[[package]] -name = "igd-next" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4" -dependencies = [ - "async-trait", - "attohttpc", - "bytes", - "futures", - "http 0.2.12", - "hyper 0.14.30", - "log", - "rand 0.8.5", - "tokio", - "url", - "xmltree", -] - [[package]] name = "impl-codec" version = "0.6.0" @@ -4653,24 +4972,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -4720,12 +5021,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ + "arbitrary", "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "serde", ] @@ -4749,10 +5051,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" [[package]] -name = "inout" -version = "0.1.3" +name = "inotify" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +dependencies = [ + "bitflags 2.9.0", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "block-padding", "generic-array", @@ -4783,12 +5105,18 @@ dependencies = [ ] [[package]] -name = "intrusive-collections" -version = "0.9.6" +name = "interprocess" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b694dc9f70c3bda874626d2aed13b780f137aab435f4e9814121955cf706122e" +checksum = "894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb" dependencies = [ - "memoffset", + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", ] [[package]] @@ -4797,7 +5125,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.7", + "socket2", "widestring", "windows-sys 0.48.0", "winreg 0.50.0", @@ -4863,6 +5191,24 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -4875,6 +5221,26 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror 1.0.63", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" version = "0.1.32" @@ -4895,9 +5261,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" +checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4913,48 +5279,50 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" +checksum = "def0fd41e2f53118bd1620478d12305b2c75feef57ea1f93ef70568c98081b7e" dependencies = [ + "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http 0.2.12", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.1", + "rustls", "rustls-pki-types", + "rustls-platform-verifier", "soketto", - "thiserror", + "thiserror 1.0.63", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tokio-util", "tracing", "url", - "webpki-roots", ] [[package]] name = "jsonrpsee-core" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" +checksum = "76637f6294b04e747d68e69336ef839a3493ca62b35bf488ead525f7da75c5bb" dependencies = [ - "anyhow", "async-trait", - "beef", + "bytes", "futures-timer", "futures-util", - "hyper 0.14.30", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", "jsonrpsee-types", - "parking_lot 0.12.3", + "parking_lot", "pin-project", "rand 0.8.5", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", "tokio", "tokio-stream", "tracing", @@ -4963,46 +5331,54 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" +checksum = "87c24e981ad17798bbca852b0738bfb7b94816ed687bd0d5da60bfa35fa0fdc3" dependencies = [ "async-trait", - "hyper 0.14.30", - "hyper-rustls 0.24.2", + "base64 0.22.1", + "http-body 1.0.1", + "hyper 1.4.1", + "hyper-rustls", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", + "rustls", + "rustls-platform-verifier", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", "tokio", - "tower", + "tower 0.4.13", "tracing", "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" +checksum = "6fcae0c6c159e11541080f1f829873d8f374f81eda0abc67695a13fc8dc1a580" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] name = "jsonrpsee-server" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" +checksum = "66b7a3df90a1a60c3ed68e7ca63916b53e9afa928e33531e87f61a9c8e9ae87b" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.30", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", "pin-project", @@ -5010,32 +5386,31 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror", + "thiserror 1.0.63", "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] [[package]] name = "jsonrpsee-types" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" +checksum = "ddb81adb1a5ae9182df379e374a79e24e992334e7346af4d065ae5b2acb8d4c6" dependencies = [ - "anyhow", - "beef", + "http 1.1.0", "serde", "serde_json", - "thiserror", + "thiserror 1.0.63", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f448d8eacd945cc17b6c0b42c361531ca36a962ee186342a97cdb8fca679cd77" +checksum = "42e41af42ca39657313748174d02766e5287d3a57356f16756dbd8065b933977" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -5044,11 +5419,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.22.5" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" +checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" dependencies = [ - "http 0.2.12", + "http 1.1.0", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -5057,13 +5432,14 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "8.3.0" +version = "9.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", + "js-sys", "pem", - "ring 0.16.20", + "ring", "serde", "serde_json", "simple_asn1", @@ -5079,6 +5455,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", "signature", ] @@ -5117,13 +5494,33 @@ version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4933f3f57a8e9d9da04db23fb153356ecaf00cbd14aee46279c33dc80925c37" +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.9.8", + "spin", ] [[package]] @@ -5198,9 +5595,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.156" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5f43f184355eefb8d17fc948dbecf6c13be3c141f20d834ae842193a448c72a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libffi" @@ -5237,81 +5634,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" -[[package]] -name = "libp2p" -version = "0.53.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681fb3f183edfbedd7a57d32ebe5dcdc0b9f94061185acf3c30249349cc6fc99" -dependencies = [ - "bytes", - "either", - "futures", - "futures-timer", - "getrandom 0.2.15", - "instant", - "libp2p-allow-block-list", - "libp2p-connection-limits", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "multiaddr", - "pin-project", - "rw-stream-sink", - "thiserror", -] - -[[package]] -name = "libp2p-allow-block-list" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "107b238b794cb83ab53b74ad5dcf7cca3200899b72fe662840cfb52f5b0a32e6" -dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "void", -] - -[[package]] -name = "libp2p-connection-limits" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7cd50a78ccfada14de94cbacd3ce4b0138157f376870f13d3a8422cd075b4fd" -dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "void", -] - -[[package]] -name = "libp2p-core" -version = "0.41.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5a8920cbd8540059a01950c1e5c96ea8d89eb50c51cd366fc18bdf540a6e48f" -dependencies = [ - "either", - "fnv", - "futures", - "futures-timer", - "libp2p-identity", - "multiaddr", - "multihash", - "multistream-select", - "once_cell", - "parking_lot 0.12.3", - "pin-project", - "quick-protobuf", - "rand 0.8.5", - "rw-stream-sink", - "smallvec", - "thiserror", - "tracing", - "unsigned-varint 0.8.0", - "void", - "web-time", -] - [[package]] name = "libp2p-identity" version = "0.2.9" @@ -5325,42 +5647,19 @@ dependencies = [ "libsecp256k1", "multihash", "quick-protobuf", - "rand 0.8.5", "sha2 0.10.8", - "thiserror", + "thiserror 1.0.63", "tracing", "zeroize", ] -[[package]] -name = "libp2p-swarm" -version = "0.44.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80cae6cb75f89dbca53862f9ebe0b9f463aa7b302762fcfaafb9e51dcc9b0f7e" -dependencies = [ - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-identity", - "lru", - "multistream-select", - "once_cell", - "rand 0.8.5", - "smallvec", - "tracing", - "void", -] - [[package]] name = "libproc" version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae9ea4b75e1a81675429dafe43441df1caea70081e82246a8cccf514884a88bb" dependencies = [ - "bindgen", + "bindgen 0.69.4", "errno", "libc", ] @@ -5371,9 +5670,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall", ] [[package]] @@ -5437,6 +5736,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" dependencies = [ "linked-hash-map", + "serde", ] [[package]] @@ -5459,6 +5759,7 @@ checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", + "serde", ] [[package]] @@ -5489,12 +5790,12 @@ dependencies = [ ] [[package]] -name = "lru-cache" -version = "0.1.2" +name = "lru" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" dependencies = [ - "linked-hash-map", + "hashbrown 0.15.2", ] [[package]] @@ -5611,12 +5912,6 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "matrixmultiply" version = "0.3.9" @@ -5652,25 +5947,38 @@ dependencies = [ ] [[package]] -name = "memoffset" -version = "0.9.1" +name = "metrics" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "autocfg", + "ahash", + "metrics-macros", + "portable-atomic", ] [[package]] name = "metrics" -version = "0.21.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" +checksum = "7a7deb012b3b2767169ff203fadb4c6b0b82b947512e5eb9e0b78c2e186ad9e3" dependencies = [ "ahash", - "metrics-macros", "portable-atomic", ] +[[package]] +name = "metrics-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3dbdd96ed57d565ec744cba02862d707acf373c5772d152abae6ec5c4e24f6c" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn 2.0.99", +] + [[package]] name = "metrics-exporter-prometheus" version = "0.12.1" @@ -5681,14 +5989,28 @@ dependencies = [ "hyper 0.14.30", "indexmap 1.9.3", "ipnet", - "metrics", - "metrics-util", + "metrics 0.21.1", + "metrics-util 0.15.0", "quanta 0.11.1", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", ] +[[package]] +name = "metrics-exporter-prometheus" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" +dependencies = [ + "base64 0.22.1", + "indexmap 2.7.1", + "metrics 0.24.1", + "metrics-util 0.19.0", + "quanta 0.12.3", + "thiserror 1.0.63", +] + [[package]] name = "metrics-macros" version = "0.7.1" @@ -5697,7 +6019,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -5708,11 +6030,27 @@ checksum = "6aa2a67e2580fbeba4d5a96e659945981e700a383b4cea1432e0cfc18f58c5da" dependencies = [ "libproc", "mach2", - "metrics", + "metrics 0.21.1", + "once_cell", + "procfs 0.16.0", + "rlimit", + "windows 0.52.0", +] + +[[package]] +name = "metrics-process" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a82c8add4382f29a122fa64fff1891453ed0f6b2867d971e7d60cb8dfa322ff" +dependencies = [ + "libc", + "libproc", + "mach2", + "metrics 0.24.1", "once_cell", - "procfs", + "procfs 0.17.0", "rlimit", - "windows", + "windows 0.58.0", ] [[package]] @@ -5726,12 +6064,28 @@ dependencies = [ "crossbeam-utils", "hashbrown 0.13.2", "indexmap 1.9.3", - "metrics", + "metrics 0.21.1", "num_cpus", "ordered-float 3.9.2", "quanta 0.11.1", "radix_trie", - "sketches-ddsketch", + "sketches-ddsketch 0.2.2", +] + +[[package]] +name = "metrics-util" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd4884b1dd24f7d6628274a2f5ae22465c337c5ba065ec9b6edccddf8acc673" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.15.2", + "metrics 0.24.1", + "quanta 0.12.3", + "rand 0.8.5", + "rand_xoshiro", + "sketches-ddsketch 0.3.0", ] [[package]] @@ -5750,6 +6104,21 @@ dependencies = [ "unicase", ] +[[package]] +name = "mini-moka" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c325dfab65f261f386debee8b0969da215b3fa0037e74c8a1234db7ba986d803" +dependencies = [ + "crossbeam-channel", + "crossbeam-utils", + "dashmap 5.5.3", + "skeptic", + "smallvec", + "tagptr", + "triomphe", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -5791,6 +6160,7 @@ checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ "hermit-abi 0.3.9", "libc", + "log", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -5826,12 +6196,12 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "once_cell", - "parking_lot 0.12.3", + "parking_lot", "quanta 0.12.3", "rustc_version 0.4.0", "smallvec", "tagptr", - "thiserror", + "thiserror 1.0.63", "triomphe", "uuid", ] @@ -5857,7 +6227,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.2", + "unsigned-varint", "url", ] @@ -5879,21 +6249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint 0.7.2", -] - -[[package]] -name = "multistream-select" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" -dependencies = [ - "bytes", - "futures", - "log", - "pin-project", - "smallvec", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -5995,17 +6351,42 @@ dependencies = [ ] [[package]] -name = "now" -version = "0.1.3" +name = "notify" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0" +checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ - "chrono", + "bitflags 2.9.0", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio 1.0.2", + "notify-types", + "walkdir", + "windows-sys 0.59.0", ] [[package]] -name = "ntapi" -version = "0.4.1" +name = "notify-types" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" + +[[package]] +name = "now" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0" +dependencies = [ + "chrono", +] + +[[package]] +name = "ntapi" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" dependencies = [ @@ -6055,7 +6436,6 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "serde", ] [[package]] @@ -6139,10 +6519,9 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -6162,12 +6541,11 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "nybbles" -version = "0.2.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f06be0417d97f81fe4e5c86d7d01b392655a9cac9c19a848aa033e18937b23" +checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" dependencies = [ "alloy-rlp", - "arbitrary", "const-hex", "proptest", "serde", @@ -6185,9 +6563,13 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] name = "oorandom" @@ -6195,6 +6577,40 @@ version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" +[[package]] +name = "op-alloy-consensus" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed6cad421e41d400667a06df8bd306dd316c3e1fed803df065b1c65d7de6795" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-serde", + "derive_more 1.0.0", + "serde", + "serde_with", + "thiserror 2.0.12", +] + +[[package]] +name = "op-alloy-rpc-types-engine" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9593354ed29d9c1d9b761d400c5b059176bc36d06db3f9ac6697331f212ea7de" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "derive_more 1.0.0", + "ethereum_ssz", + "op-alloy-consensus", + "snap", + "thiserror 2.0.12", +] + [[package]] name = "opaque-debug" version = "0.3.1" @@ -6207,7 +6623,7 @@ version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", "foreign-types", "libc", @@ -6224,7 +6640,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -6275,6 +6691,18 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "page_size" version = "0.6.0" @@ -6312,31 +6740,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "parity-tokio-ipc" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" -dependencies = [ - "futures", - "libc", - "log", - "rand 0.7.3", - "tokio", - "winapi", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.3" @@ -6344,21 +6747,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -6369,7 +6758,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] @@ -6436,20 +6825,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39103a901800b5711b9076f2474da1e7412f804c11a0f3b4e8dd3b1e59c58b12" dependencies = [ "deprecate-until", - "indexmap 2.4.0", + "indexmap 2.7.1", "integer-sqrt", "num-traits", - "rustc-hash 2.0.0", - "thiserror", + "rustc-hash 2.1.1", + "thiserror 1.0.63", ] [[package]] name = "pem" -version = "1.1.1" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", + "serde", ] [[package]] @@ -6465,7 +6855,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.63", "ucd-trie", ] @@ -6476,20 +6866,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.7.1", ] [[package]] -name = "ph" -version = "0.8.3" +name = "pharos" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b7b74d575d7c11fb653fae69688be5206cafc1ead33c01ce61ac7f36eae45b" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ - "binout", - "bitm", - "dyn_size_of", - "rayon", - "wyhash", + "futures", + "rustc_version 0.4.0", ] [[package]] @@ -6498,7 +6885,6 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" dependencies = [ - "phf_macros", "phf_shared", ] @@ -6522,19 +6908,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared", - "proc-macro2", - "quote", - "syn 2.0.74", -] - [[package]] name = "phf_shared" version = "0.11.2" @@ -6561,7 +6934,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -6717,14 +7090,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f20d3c227186f74aa3c228c64ef72f5a15617322fed30b4323eaf53b25f8e7b" dependencies = [ "ahash", - "bitflags 2.6.0", + "bitflags 2.9.0", "bytemuck", "chrono", "chrono-tz", "comfy-table", "either", "hashbrown 0.14.5", - "indexmap 2.4.0", + "indexmap 2.7.1", "num-traits", "once_cell", "polars-arrow", @@ -6737,7 +7110,7 @@ dependencies = [ "rayon", "regex", "smartstring", - "thiserror", + "thiserror 1.0.63", "version_check", "xxhash-rust", ] @@ -6751,7 +7124,7 @@ dependencies = [ "polars-arrow-format", "regex", "simdutf8", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -6791,7 +7164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c27df26a19d3092298d31d47614ad84dc330c106e38aa8cd53727cd91c07cf56" dependencies = [ "ahash", - "bitflags 2.6.0", + "bitflags 2.9.0", "glob", "once_cell", "polars-arrow", @@ -6822,7 +7195,7 @@ dependencies = [ "either", "hashbrown 0.14.5", "hex", - "indexmap 2.4.0", + "indexmap 2.7.1", "memchr", "num-traits", "polars-arrow", @@ -6964,28 +7337,22 @@ dependencies = [ "ahash", "bytemuck", "hashbrown 0.14.5", - "indexmap 2.4.0", + "indexmap 2.7.1", "num-traits", "once_cell", "polars-error", "raw-cpuid 11.1.0", "rayon", "smartstring", - "sysinfo", + "sysinfo 0.30.13", "version_check", ] -[[package]] -name = "pollster" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" - [[package]] name = "polyval" -version = "0.5.3" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -6995,9 +7362,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "powerfmt" @@ -7018,11 +7385,11 @@ dependencies = [ "log", "nix", "once_cell", - "parking_lot 0.12.3", + "parking_lot", "smallvec", "symbolic-demangle", "tempfile", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -7031,7 +7398,17 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", +] + +[[package]] +name = "pretty_assertions" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" +dependencies = [ + "diff", + "yansi", ] [[package]] @@ -7041,7 +7418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -7062,11 +7439,12 @@ dependencies = [ name = "pricing-test-utils" version = "0.1.0" dependencies = [ - "alloy-dyn-abi", - "alloy-primitives", + "alloy-dyn-abi 0.7.7", + "alloy-primitives 0.8.22", "alloy-rlp", - "alloy-sol-macro", - "alloy-sol-types", + "alloy-rpc-types", + "alloy-sol-macro 0.8.22", + "alloy-sol-types 0.8.22", "arbitrary", "async-trait", "auto_impl", @@ -7079,8 +7457,8 @@ dependencies = [ "brontes-types", "bytes", "criterion", - "dashmap", - "derive_more", + "dashmap 5.5.3", + "derive_more 2.0.1", "dotenv", "erased-serde", "eyre", @@ -7090,19 +7468,18 @@ dependencies = [ "modular-bitfield", "num-bigfloat", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot", "pathfinding", "petgraph", "phf", "proptest", - "proptest-derive", + "proptest-derive 0.4.0", "rand 0.8.5", "rayon", "redefined", "reth-codecs", "reth-db", "reth-primitives", - "reth-rpc-types", "reth-tracing-ext", "rkyv", "rustc-hash 1.1.0", @@ -7111,11 +7488,20 @@ dependencies = [ "serde_repr", "serde_with", "strum 0.25.0", - "thiserror", + "thiserror 1.0.63", "tokio", "tracing", ] +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.2" @@ -7124,9 +7510,7 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "uint", + "uint 0.9.5", ] [[package]] @@ -7162,11 +7546,33 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.99", +] + [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -7177,12 +7583,26 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "chrono", "flate2", "hex", "lazy_static", - "procfs-core", + "procfs-core 0.16.0", + "rustix", +] + +[[package]] +name = "procfs" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" +dependencies = [ + "bitflags 2.9.0", + "chrono", + "flate2", + "hex", + "procfs-core 0.17.0", "rustix", ] @@ -7192,7 +7612,18 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", + "chrono", + "hex", +] + +[[package]] +name = "procfs-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" +dependencies = [ + "bitflags 2.9.0", "chrono", "hex", ] @@ -7207,9 +7638,9 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.3", + "parking_lot", "protobuf", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -7220,7 +7651,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.9.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -7243,6 +7674,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "proptest-derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + [[package]] name = "protobuf" version = "2.28.0" @@ -7270,24 +7712,14 @@ dependencies = [ ] [[package]] -name = "public-ip" -version = "0.2.2" +name = "pulldown-cmark" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4c40db5262d93298c363a299f8bc1b3a956a78eecddba3bc0e58b76e2f419a" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "dns-lookup", - "futures-core", - "futures-util", - "http 0.2.12", - "hyper 0.14.30", - "hyper-system-resolver", - "pin-project-lite", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "trust-dns-client", - "trust-dns-proto 0.20.4", + "bitflags 2.9.0", + "memchr", + "unicase", ] [[package]] @@ -7336,6 +7768,58 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quinn" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.1", + "rustls", + "socket2", + "thiserror 2.0.12", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +dependencies = [ + "bytes", + "getrandom 0.2.15", + "rand 0.8.5", + "ring", + "rustc-hash 2.1.1", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.12", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -7361,19 +7845,6 @@ dependencies = [ "nibble_vec", ] -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -7383,16 +7854,18 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", + "serde", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "rand" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "zerocopy 0.8.22", ] [[package]] @@ -7406,12 +7879,13 @@ dependencies = [ ] [[package]] -name = "rand_core" -version = "0.5.1" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ - "getrandom 0.1.16", + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -7423,6 +7897,15 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", +] + [[package]] name = "rand_distr" version = "0.4.3" @@ -7434,19 +7917,19 @@ dependencies = [ ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_xorshift" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.5.1", + "rand_core 0.6.4", ] [[package]] -name = "rand_xorshift" -version = "0.3.0" +name = "rand_xoshiro" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ "rand_core 0.6.4", ] @@ -7466,7 +7949,7 @@ version = "11.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -7495,6 +7978,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + [[package]] name = "redefined" version = "0.1.0" @@ -7514,26 +8003,17 @@ dependencies = [ "reqwest 0.12.5", "serde", "serde_json", - "syn 2.0.74", + "syn 2.0.99", "tokio", ] [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -7544,7 +8024,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror", + "thiserror 1.0.63", ] [[package]] @@ -7591,16 +8071,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" -[[package]] -name = "regress" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eae2a1ebfecc58aff952ef8ccd364329abe627762f5bf09ff42eb9d98522479" -dependencies = [ - "hashbrown 0.14.5", - "memchr", -] - [[package]] name = "relays-openapi" version = "0.1.0" @@ -7679,7 +8149,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.4.1", - "hyper-rustls 0.27.2", + "hyper-rustls", "hyper-tls 0.6.0", "hyper-util", "ipnet", @@ -7690,7 +8160,11 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", + "rustls-native-certs", "rustls-pemfile 2.1.3", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", @@ -7698,6 +8172,7 @@ dependencies = [ "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -7705,6 +8180,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", + "webpki-roots", "winreg 0.52.0", ] @@ -7718,204 +8194,295 @@ dependencies = [ "quick-error", ] -[[package]] -name = "reth-auto-seal-consensus" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" -dependencies = [ - "futures-util", - "reth-beacon-consensus", - "reth-engine-primitives", - "reth-evm", - "reth-interfaces", - "reth-primitives", - "reth-provider", - "reth-revm", - "reth-stages-api", - "reth-transaction-pool", - "tokio", - "tokio-stream", - "tracing", -] - [[package]] name = "reth-basic-payload-builder" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", "futures-core", "futures-util", - "metrics", - "reth-engine-primitives", - "reth-interfaces", + "metrics 0.24.1", "reth-metrics", "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-revm", "reth-tasks", - "reth-transaction-pool", - "revm", "tokio", "tracing", ] [[package]] -name = "reth-beacon-consensus" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-chain-state" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "futures", - "metrics", - "reth-beacon-consensus-core", - "reth-db", - "reth-engine-primitives", - "reth-interfaces", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "derive_more 2.0.1", + "metrics 0.24.1", + "parking_lot", + "pin-project", + "reth-chainspec", + "reth-errors", + "reth-execution-types", "reth-metrics", - "reth-payload-builder", - "reth-payload-validator", "reth-primitives", - "reth-provider", - "reth-prune", - "reth-rpc-types", - "reth-stages-api", - "reth-static-file", - "reth-tasks", - "reth-tokio-util", - "schnellru", - "thiserror", + "reth-primitives-traits", + "reth-storage-api", + "reth-trie", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "tokio", "tokio-stream", "tracing", ] [[package]] -name = "reth-beacon-consensus-core" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-chainspec" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "reth-consensus-common", - "reth-interfaces", - "reth-primitives", + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives 0.8.22", + "alloy-trie", + "auto_impl", + "derive_more 2.0.1", + "reth-ethereum-forks", + "reth-network-peers", + "reth-primitives-traits", + "serde_json", ] [[package]] -name = "reth-blockchain-tree" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-cli-util" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "aquamarine", - "linked_hash_set", - "lru", - "metrics", - "parking_lot 0.12.3", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-stages-api", - "reth-trie", - "reth-trie-parallel", - "tokio", - "tracing", + "alloy-eips", + "alloy-primitives 0.8.22", + "cfg-if", + "eyre", + "libc", + "rand 0.8.5", + "reth-fs-util", + "secp256k1 0.30.0", + "serde", + "thiserror 2.0.12", ] [[package]] name = "reth-codecs" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", "alloy-eips", - "alloy-primitives", + "alloy-genesis", + "alloy-primitives 0.8.22", + "alloy-trie", "bytes", + "modular-bitfield", + "op-alloy-consensus", "reth-codecs-derive", + "serde", ] [[package]] name = "reth-codecs-derive" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "convert_case 0.6.0", + "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] name = "reth-config" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "eyre", "humantime-serde", - "reth-discv4", - "reth-net-nat", - "reth-network", - "reth-primitives", - "secp256k1 0.27.0", + "reth-network-types", + "reth-prune-types", + "reth-stages-types", "serde", + "toml", +] + +[[package]] +name = "reth-consensus" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-primitives 0.8.22", + "auto_impl", + "reth-execution-types", + "reth-primitives-traits", + "thiserror 2.0.12", ] [[package]] name = "reth-consensus-common" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "reth-interfaces", - "reth-primitives", - "reth-provider", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "reth-chainspec", + "reth-consensus", + "reth-primitives-traits", +] + +[[package]] +name = "reth-consensus-debug-client" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-provider", + "alloy-rpc-types-engine", + "auto_impl", + "derive_more 2.0.1", + "eyre", + "futures", + "reqwest 0.12.5", + "reth-node-api", + "reth-primitives-traits", + "reth-tracing", + "ringbuffer", + "serde", + "tokio", ] [[package]] name = "reth-db" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "arbitrary", - "bytes", - "derive_more", + "alloy-primitives 0.8.22", + "derive_more 2.0.1", "eyre", - "metrics", - "modular-bitfield", - "once_cell", + "metrics 0.24.1", "page_size", - "parity-scale-codec", - "paste", - "proptest", - "proptest-derive", - "reth-codecs", - "reth-interfaces", + "reth-db-api", + "reth-fs-util", "reth-libmdbx", "reth-metrics", "reth-nippy-jar", "reth-primitives", + "reth-storage-errors", "reth-tracing", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", + "strum 0.27.1", + "sysinfo 0.33.1", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-db-api" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-genesis", + "alloy-primitives 0.8.22", + "bytes", + "derive_more 2.0.1", + "metrics 0.24.1", + "modular-bitfield", + "parity-scale-codec", + "reth-codecs", + "reth-db-models", + "reth-primitives", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "roaring", + "serde", +] + +[[package]] +name = "reth-db-common" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-genesis", + "alloy-primitives 0.8.22", + "boyer-moore-magiclen", + "eyre", + "reth-chainspec", + "reth-codecs", + "reth-config", + "reth-db-api", + "reth-etl", + "reth-fs-util", + "reth-node-types", + "reth-primitives", + "reth-provider", + "reth-stages-types", + "reth-trie", + "reth-trie-db", + "serde", + "serde_json", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "reth-db-models" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "bytes", + "modular-bitfield", + "reth-codecs", + "reth-primitives-traits", "serde", - "strum 0.26.3", - "tempfile", - "thiserror", ] [[package]] name = "reth-discv4" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-primitives 0.8.22", "alloy-rlp", "discv5", "enr", "generic-array", - "parking_lot 0.12.3", - "reth-net-common", + "itertools 0.14.0", + "parking_lot", + "rand 0.8.5", + "reth-ethereum-forks", + "reth-net-banlist", "reth-net-nat", - "reth-primitives", - "rlp", - "secp256k1 0.27.0", + "reth-network-peers", + "schnellru", + "secp256k1 0.30.0", "serde", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -7923,70 +8490,77 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-primitives 0.8.22", "alloy-rlp", - "derive_more", + "derive_more 2.0.1", "discv5", "enr", "futures", - "itertools 0.12.1", - "libp2p-identity", - "metrics", - "multiaddr", + "itertools 0.14.0", + "metrics 0.24.1", "rand 0.8.5", + "reth-chainspec", + "reth-ethereum-forks", "reth-metrics", - "reth-primitives", - "rlp", - "secp256k1 0.27.0", - "thiserror", + "reth-network-peers", + "secp256k1 0.30.0", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-dns-discovery" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", + "alloy-primitives 0.8.22", "data-encoding", "enr", + "hickory-resolver", "linked_hash_set", - "parking_lot 0.12.3", - "reth-net-common", - "reth-primitives", + "parking_lot", + "reth-ethereum-forks", + "reth-network-peers", + "reth-tokio-util", "schnellru", - "secp256k1 0.27.0", + "secp256k1 0.30.0", "serde", "serde_with", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", - "trust-dns-resolver", ] [[package]] name = "reth-downloaders" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", "alloy-rlp", "futures", "futures-util", - "itertools 0.12.1", - "metrics", + "itertools 0.14.0", + "metrics 0.24.1", "pin-project", "rayon", "reth-config", - "reth-interfaces", + "reth-consensus", "reth-metrics", + "reth-network-p2p", + "reth-network-peers", "reth-primitives", - "reth-provider", + "reth-primitives-traits", + "reth-storage-api", "reth-tasks", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -7995,29 +8569,28 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "aes 0.8.4", + "aes", + "alloy-primitives 0.8.22", "alloy-rlp", "block-padding", "byteorder", - "cipher 0.4.4", + "cipher", "concat-kdf", - "ctr 0.9.2", + "ctr", "digest 0.10.7", - "educe", "futures", "generic-array", "hmac 0.12.1", "pin-project", "rand 0.8.5", - "reth-net-common", - "reth-primitives", - "secp256k1 0.27.0", + "reth-network-peers", + "secp256k1 0.30.0", "sha2 0.10.8", "sha3", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -8026,314 +8599,630 @@ dependencies = [ ] [[package]] -name = "reth-engine-primitives" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" -dependencies = [ - "reth-primitives", - "reth-rpc-types", - "serde", - "thiserror", -] - -[[package]] -name = "reth-eth-wire" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-engine-local" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", - "bytes", - "derive_more", - "futures", - "metrics", - "pin-project", - "reth-codecs", - "reth-discv4", - "reth-ecies", - "reth-eth-wire-types", - "reth-metrics", - "reth-primitives", - "serde", - "snap", - "thiserror", + "alloy-consensus", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "eyre", + "futures-util", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", + "reth-engine-service", + "reth-engine-tree", + "reth-ethereum-engine-primitives", + "reth-evm", + "reth-node-types", + "reth-payload-builder", + "reth-payload-primitives", + "reth-provider", + "reth-prune", + "reth-stages-api", + "reth-transaction-pool", "tokio", "tokio-stream", - "tokio-util", "tracing", ] [[package]] -name = "reth-eth-wire-types" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-engine-primitives" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", - "bytes", - "derive_more", - "reth-codecs", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "auto_impl", + "futures", + "reth-chain-state", + "reth-errors", + "reth-execution-types", + "reth-payload-builder-primitives", + "reth-payload-primitives", "reth-primitives", + "reth-primitives-traits", + "reth-trie", + "reth-trie-common", "serde", - "thiserror", + "thiserror 2.0.12", + "tokio", ] [[package]] -name = "reth-ethereum-engine-primitives" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-engine-service" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", - "reth-engine-primitives", + "futures", + "pin-project", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", + "reth-engine-tree", + "reth-evm", + "reth-network-p2p", + "reth-node-types", + "reth-payload-builder", + "reth-primitives", + "reth-provider", + "reth-prune", + "reth-stages-api", + "reth-tasks", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-engine-tree" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-rpc-types-engine", + "derive_more 2.0.1", + "futures", + "metrics 0.24.1", + "mini-moka", + "parking_lot", + "rayon", + "reth-chain-state", + "reth-consensus", + "reth-db", + "reth-engine-primitives", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-metrics", + "reth-network-p2p", + "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-provider", + "reth-prune", + "reth-revm", + "reth-stages-api", + "reth-tasks", + "reth-trie", + "reth-trie-db", + "reth-trie-parallel", + "reth-trie-sparse", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "schnellru", + "thiserror 2.0.12", + "tokio", + "tracing", +] + +[[package]] +name = "reth-engine-util" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "eyre", + "futures", + "itertools 0.14.0", + "pin-project", + "reth-chainspec", + "reth-consensus-common", + "reth-engine-primitives", + "reth-errors", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-evm", + "reth-fs-util", + "reth-payload-primitives", + "reth-primitives", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-trie", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "reth-errors" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "reth-consensus", + "reth-execution-errors", + "reth-fs-util", + "reth-storage-errors", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-eth-wire" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-chains", + "alloy-primitives 0.8.22", + "alloy-rlp", + "bytes", + "derive_more 2.0.1", + "futures", + "pin-project", + "reth-codecs", + "reth-ecies", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-metrics", + "reth-network-peers", + "reth-primitives-traits", + "serde", + "snap", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "reth-eth-wire-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "bytes", + "derive_more 2.0.1", + "reth-chainspec", + "reth-codecs-derive", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-primitives-traits", + "serde", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-ethereum-consensus" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "reth-chainspec", + "reth-consensus", + "reth-consensus-common", + "reth-execution-types", + "reth-primitives", + "reth-primitives-traits", + "tracing", +] + +[[package]] +name = "reth-ethereum-engine-primitives" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-rpc-types-engine", + "reth-engine-primitives", + "reth-payload-primitives", "reth-primitives", - "reth-rpc-types", - "reth-rpc-types-compat", - "revm-primitives", "serde", "sha2 0.10.8", ] [[package]] name = "reth-ethereum-forks" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "alloy-chains", - "alloy-primitives", - "alloy-rlp", - "arbitrary", - "crc", - "proptest", - "proptest-derive", + "alloy-eip2124", + "alloy-primitives 0.8.22", + "auto_impl", + "dyn-clone", + "once_cell", + "rustc-hash 2.1.1", "serde", - "thiserror", ] [[package]] name = "reth-ethereum-payload-builder" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", "reth-basic-payload-builder", + "reth-chainspec", + "reth-errors", + "reth-ethereum-primitives", + "reth-evm", + "reth-evm-ethereum", + "reth-execution-types", "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-payload-validator", "reth-primitives", - "reth-provider", + "reth-primitives-traits", "reth-revm", + "reth-storage-api", "reth-transaction-pool", - "revm", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "tracing", ] +[[package]] +name = "reth-ethereum-primitives" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-network", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", + "derive_more 2.0.1", + "modular-bitfield", + "reth-codecs", + "reth-primitives-traits", + "reth-zstd-compressors", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "secp256k1 0.30.0", + "serde", +] + [[package]] name = "reth-etl" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "rayon", - "reth-db", + "reth-db-api", "tempfile", ] [[package]] name = "reth-evm" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "reth-interfaces", + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives 0.8.22", + "auto_impl", + "derive_more 2.0.1", + "futures-util", + "metrics 0.24.1", + "reth-chainspec", + "reth-consensus-common", + "reth-execution-errors", + "reth-execution-types", + "reth-metrics", "reth-primitives", - "revm", - "revm-primitives", + "reth-primitives-traits", + "reth-storage-errors", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-optimism", ] [[package]] name = "reth-evm-ethereum" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-evm", + "alloy-primitives 0.8.22", + "alloy-sol-types 0.8.22", + "reth-chainspec", + "reth-ethereum-forks", "reth-evm", - "reth-interfaces", + "reth-execution-types", "reth-primitives", - "reth-provider", - "reth-revm", - "revm-primitives", - "tracing", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", +] + +[[package]] +name = "reth-execution-errors" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eips", + "alloy-evm", + "alloy-primitives 0.8.22", + "alloy-rlp", + "nybbles", + "reth-storage-errors", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-execution-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "derive_more 2.0.1", + "reth-ethereum-primitives", + "reth-execution-errors", + "reth-primitives-traits", + "reth-trie-common", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", + "serde_with", ] [[package]] name = "reth-exex" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", "eyre", - "metrics", + "futures", + "itertools 0.14.0", + "metrics 0.24.1", + "parking_lot", + "reth-chain-state", + "reth-chainspec", "reth-config", + "reth-evm", + "reth-exex-types", + "reth-fs-util", "reth-metrics", "reth-node-api", "reth-node-core", + "reth-payload-builder", "reth-primitives", + "reth-primitives-traits", "reth-provider", + "reth-prune-types", + "reth-revm", + "reth-stages-api", "reth-tasks", "reth-tracing", + "rmp-serde", + "thiserror 2.0.12", "tokio", "tokio-util", + "tracing", ] [[package]] -name = "reth-interfaces" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-exex-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "auto_impl", - "clap", + "alloy-eips", + "alloy-primitives 0.8.22", + "reth-chain-state", + "reth-execution-types", + "reth-primitives", + "reth-primitives-traits", + "serde", + "serde_with", +] + +[[package]] +name = "reth-fs-util" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-invalid-block-hooks" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-rpc-types-debug", + "eyre", "futures", - "parking_lot 0.12.3", - "rand 0.8.5", - "reth-eth-wire-types", - "reth-network-api", + "jsonrpsee", + "pretty_assertions", + "reth-chainspec", + "reth-engine-primitives", + "reth-evm", "reth-primitives", - "reth-rpc-types", - "secp256k1 0.27.0", - "thiserror", - "tokio", - "tracing", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-rpc-api", + "reth-tracing", + "reth-trie", + "serde", + "serde_json", ] [[package]] name = "reth-ipc" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "async-trait", "bytes", "futures", + "futures-util", + "interprocess", "jsonrpsee", - "parity-tokio-ipc", "pin-project", "serde_json", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] [[package]] name = "reth-libmdbx" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "byteorder", - "dashmap", - "derive_more", - "indexmap 2.4.0", - "libc", - "libffi", - "parking_lot 0.12.3", + "dashmap 6.1.0", + "derive_more 2.0.1", + "indexmap 2.7.1", + "parking_lot", "reth-mdbx-sys", - "thiserror", + "smallvec", + "thiserror 2.0.12", "tracing", ] [[package]] name = "reth-mdbx-sys" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "bindgen", + "bindgen 0.70.1", "cc", - "libc", ] [[package]] name = "reth-metrics" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "futures", - "metrics", - "reth-metrics-derive", + "metrics 0.24.1", + "metrics-derive", "tokio", "tokio-util", ] [[package]] -name = "reth-metrics-derive" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-net-banlist" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "regex", - "syn 2.0.74", -] - -[[package]] -name = "reth-net-common" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" -dependencies = [ - "pin-project", - "reth-primitives", - "tokio", + "alloy-primitives 0.8.22", ] [[package]] name = "reth-net-nat" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "igd-next", - "pin-project-lite", - "public-ip", + "futures-util", + "if-addrs", + "reqwest 0.12.5", "serde_with", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-network" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", "alloy-rlp", "aquamarine", "auto_impl", - "derive_more", + "derive_more 2.0.1", "discv5", "enr", - "fnv", "futures", - "futures-test", - "humantime-serde", - "itertools 0.12.1", - "linked_hash_set", - "metrics", - "parking_lot 0.12.3", + "itertools 0.14.0", + "metrics 0.24.1", + "parking_lot", "pin-project", "rand 0.8.5", + "reth-chainspec", + "reth-consensus", "reth-discv4", "reth-discv5", "reth-dns-discovery", "reth-ecies", "reth-eth-wire", - "reth-interfaces", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-fs-util", "reth-metrics", - "reth-net-common", + "reth-net-banlist", "reth-network-api", + "reth-network-p2p", + "reth-network-peers", + "reth-network-types", "reth-primitives", - "reth-provider", - "reth-rpc-types", + "reth-primitives-traits", + "reth-storage-api", "reth-tasks", "reth-tokio-util", "reth-transaction-pool", + "rustc-hash 2.1.1", "schnellru", - "secp256k1 0.27.0", + "secp256k1 0.30.0", "serde", - "serde_json", "smallvec", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-util", @@ -8342,551 +9231,992 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rpc-types-admin", + "auto_impl", + "derive_more 2.0.1", "enr", - "reth-discv4", - "reth-eth-wire", - "reth-primitives", - "reth-rpc-types", + "futures", + "reth-eth-wire-types", + "reth-ethereum-forks", + "reth-network-p2p", + "reth-network-peers", + "reth-network-types", + "reth-tokio-util", "serde", - "thiserror", + "thiserror 2.0.12", + "tokio", + "tokio-stream", +] + +[[package]] +name = "reth-network-p2p" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "auto_impl", + "derive_more 2.0.1", + "futures", + "reth-consensus", + "reth-eth-wire-types", + "reth-ethereum-primitives", + "reth-network-peers", + "reth-network-types", + "reth-primitives-traits", + "reth-storage-errors", + "tokio", + "tracing", +] + +[[package]] +name = "reth-network-peers" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "enr", + "secp256k1 0.30.0", + "serde_with", + "thiserror 2.0.12", "tokio", + "url", +] + +[[package]] +name = "reth-network-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eip2124", + "humantime-serde", + "reth-net-banlist", + "reth-network-peers", + "serde", + "serde_json", + "tracing", ] [[package]] name = "reth-nippy-jar" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "anyhow", "bincode 1.3.3", - "cuckoofilter", - "derive_more", + "derive_more 2.0.1", "lz4_flex", - "memmap2 0.7.1", - "ph", - "reth-primitives", + "memmap2 0.9.4", + "reth-fs-util", "serde", - "sucds", - "thiserror", + "thiserror 2.0.12", "tracing", "zstd", ] [[package]] name = "reth-node-api" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "reth-db", + "alloy-rpc-types-engine", + "eyre", + "reth-basic-payload-builder", + "reth-consensus", + "reth-db-api", "reth-engine-primitives", "reth-evm", - "reth-network", + "reth-network-api", + "reth-node-core", + "reth-node-types", "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", "reth-provider", "reth-tasks", + "reth-tokio-util", "reth-transaction-pool", ] [[package]] name = "reth-node-builder" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types", + "alloy-rpc-types-engine", "aquamarine", - "confy", "eyre", "fdlimit", "futures", + "jsonrpsee", "rayon", - "reth-auto-seal-consensus", - "reth-beacon-consensus", - "reth-blockchain-tree", + "reth-basic-payload-builder", + "reth-chain-state", + "reth-chainspec", + "reth-cli-util", "reth-config", - "reth-db", + "reth-consensus", + "reth-consensus-debug-client", + "reth-db-api", + "reth-db-common", "reth-downloaders", + "reth-engine-local", + "reth-engine-service", + "reth-engine-tree", + "reth-engine-util", + "reth-evm", "reth-exex", - "reth-interfaces", + "reth-fs-util", + "reth-invalid-block-hooks", "reth-network", + "reth-network-api", + "reth-network-p2p", "reth-node-api", "reth-node-core", "reth-node-events", + "reth-node-metrics", "reth-payload-builder", "reth-primitives", "reth-provider", "reth-prune", - "reth-revm", "reth-rpc", + "reth-rpc-api", + "reth-rpc-builder", "reth-rpc-engine-api", + "reth-rpc-eth-types", + "reth-rpc-layer", "reth-stages", "reth-static-file", "reth-tasks", + "reth-tokio-util", "reth-tracing", "reth-transaction-pool", + "secp256k1 0.30.0", "tokio", + "tokio-stream", + "tracing", ] [[package]] name = "reth-node-core" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", "clap", - "const-str", - "derive_more", + "derive_more 2.0.1", "dirs-next", - "discv5", "eyre", "futures", "humantime", - "hyper 0.14.30", - "metrics", - "metrics-exporter-prometheus", - "metrics-process", - "metrics-util", - "once_cell", - "procfs", "rand 0.8.5", - "reth-beacon-consensus", + "reth-chainspec", + "reth-cli-util", "reth-config", - "reth-consensus-common", + "reth-consensus", "reth-db", "reth-discv4", - "reth-engine-primitives", - "reth-evm", - "reth-interfaces", - "reth-metrics", + "reth-discv5", + "reth-ethereum-forks", "reth-net-nat", "reth-network", - "reth-network-api", + "reth-network-p2p", + "reth-network-peers", "reth-primitives", - "reth-provider", - "reth-rpc", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-engine-api", - "reth-rpc-types", + "reth-primitives-traits", + "reth-prune-types", + "reth-rpc-eth-types", + "reth-rpc-server-types", "reth-rpc-types-compat", - "reth-tasks", + "reth-stages-types", + "reth-storage-api", + "reth-storage-errors", "reth-tracing", "reth-transaction-pool", - "secp256k1 0.27.0", + "secp256k1 0.30.0", "serde", - "serde_json", "shellexpand", - "thiserror", - "tokio", + "strum 0.27.1", + "thiserror 2.0.12", + "toml", "tracing", "vergen", ] [[package]] name = "reth-node-ethereum" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", "eyre", - "reth-basic-payload-builder", + "reth-chainspec", + "reth-consensus", + "reth-engine-primitives", + "reth-ethereum-consensus", "reth-ethereum-engine-primitives", "reth-ethereum-payload-builder", + "reth-ethereum-primitives", + "reth-evm", "reth-evm-ethereum", "reth-network", + "reth-node-api", "reth-node-builder", - "reth-payload-builder", + "reth-payload-primitives", + "reth-primitives", "reth-provider", + "reth-revm", + "reth-rpc", + "reth-rpc-api", + "reth-rpc-builder", + "reth-rpc-eth-types", + "reth-rpc-server-types", "reth-tracing", "reth-transaction-pool", + "reth-trie-db", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", ] [[package]] name = "reth-node-events" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "derive_more 2.0.1", "futures", "humantime", "pin-project", - "reth-beacon-consensus", - "reth-db", - "reth-interfaces", - "reth-network", + "reth-engine-primitives", "reth-network-api", - "reth-primitives", - "reth-provider", - "reth-prune", + "reth-primitives-traits", + "reth-prune-types", "reth-stages", - "reth-static-file", + "reth-static-file-types", + "reth-storage-api", + "tokio", + "tracing", +] + +[[package]] +name = "reth-node-metrics" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "eyre", + "http 1.1.0", + "jsonrpsee-server", + "metrics 0.24.1", + "metrics-exporter-prometheus 0.16.2", + "metrics-process 2.4.0", + "metrics-util 0.19.0", + "procfs 0.17.0", + "reth-metrics", + "reth-tasks", "tokio", + "tower 0.4.13", "tracing", ] +[[package]] +name = "reth-node-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "reth-chainspec", + "reth-db-api", + "reth-engine-primitives", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-trie-db", +] + [[package]] name = "reth-payload-builder" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-rpc-types", "futures-util", - "metrics", - "reth-engine-primitives", + "metrics 0.24.1", + "reth-chain-state", "reth-ethereum-engine-primitives", - "reth-interfaces", "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-rpc-types", - "reth-transaction-pool", - "thiserror", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", "tokio", "tokio-stream", "tracing", ] [[package]] -name = "reth-payload-validator" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-payload-builder-primitives" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "pin-project", + "reth-payload-primitives", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-payload-primitives" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "auto_impl", + "op-alloy-rpc-types-engine", + "reth-chain-state", + "reth-chainspec", + "reth-errors", "reth-primitives", - "reth-rpc-types", - "reth-rpc-types-compat", + "serde", + "thiserror 2.0.12", + "tokio", +] + +[[package]] +name = "reth-payload-validator" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-rpc-types-engine", + "reth-primitives-traits", ] [[package]] name = "reth-primitives" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-chains", + "alloy-consensus", + "c-kzg", + "once_cell", + "reth-ethereum-forks", + "reth-ethereum-primitives", + "reth-primitives-traits", + "reth-static-file-types", +] + +[[package]] +name = "reth-primitives-traits" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives", + "alloy-primitives 0.8.22", "alloy-rlp", "alloy-trie", - "arbitrary", + "auto_impl", "byteorder", "bytes", - "c-kzg", - "cfg-if", - "derive_more", - "enr", - "itertools 0.12.1", + "derive_more 2.0.1", + "k256", "modular-bitfield", - "nybbles", "once_cell", - "proptest", - "proptest-derive", + "op-alloy-consensus", "rayon", "reth-codecs", - "reth-ethereum-forks", - "reth-rpc-types", - "revm", - "revm-primitives", - "roaring", - "secp256k1 0.27.0", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "secp256k1 0.30.0", "serde", - "serde_json", "serde_with", - "sha2 0.10.8", - "strum 0.26.3", - "tempfile", - "thiserror", - "zstd", + "thiserror 2.0.12", ] [[package]] name = "reth-provider" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", "auto_impl", - "dashmap", - "itertools 0.12.1", - "metrics", - "parking_lot 0.12.3", - "pin-project", + "dashmap 6.1.0", + "eyre", + "itertools 0.14.0", + "metrics 0.24.1", + "notify", + "parking_lot", "rayon", + "reth-chain-state", + "reth-chainspec", "reth-codecs", "reth-db", + "reth-db-api", + "reth-errors", "reth-evm", - "reth-interfaces", + "reth-execution-types", + "reth-fs-util", "reth-metrics", + "reth-network-p2p", "reth-nippy-jar", + "reth-node-types", "reth-primitives", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-api", + "reth-storage-errors", "reth-trie", - "revm", - "strum 0.26.3", + "reth-trie-db", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "strum 0.27.1", "tokio", - "tokio-stream", "tracing", ] [[package]] name = "reth-prune" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "itertools 0.12.1", - "metrics", + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "itertools 0.14.0", + "metrics 0.24.1", "rayon", + "reth-chainspec", "reth-config", - "reth-db", - "reth-interfaces", + "reth-db-api", + "reth-errors", + "reth-exex-types", "reth-metrics", - "reth-primitives", + "reth-primitives-traits", "reth-provider", + "reth-prune-types", + "reth-static-file-types", "reth-tokio-util", - "thiserror", + "rustc-hash 2.1.1", + "thiserror 2.0.12", "tokio", - "tokio-stream", "tracing", ] +[[package]] +name = "reth-prune-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "derive_more 2.0.1", + "modular-bitfield", + "reth-codecs", + "serde", + "thiserror 2.0.12", +] + [[package]] name = "reth-revm" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "reth-consensus-common", - "reth-evm", - "reth-interfaces", - "reth-primitives", - "reth-provider", - "revm", - "revm-inspectors", - "tracing", + "alloy-primitives 0.8.22", + "reth-primitives-traits", + "reth-storage-api", + "reth-storage-errors", + "reth-trie", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", ] [[package]] name = "reth-rpc" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-dyn-abi", - "alloy-primitives", + "alloy-consensus", + "alloy-dyn-abi 0.8.22", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-primitives 0.8.22", "alloy-rlp", - "alloy-sol-types", + "alloy-rpc-types", + "alloy-rpc-types-admin", + "alloy-rpc-types-beacon", + "alloy-rpc-types-debug", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-rpc-types-mev", + "alloy-rpc-types-trace", + "alloy-rpc-types-txpool", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", "async-trait", - "derive_more", - "dyn-clone", + "derive_more 2.0.1", "futures", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", "jsonrpsee", "jsonwebtoken", - "metrics", - "parking_lot 0.12.3", + "parking_lot", "pin-project", "rand 0.8.5", + "reth-chainspec", + "reth-consensus", "reth-consensus-common", + "reth-engine-primitives", + "reth-errors", "reth-evm", - "reth-interfaces", "reth-metrics", "reth-network-api", + "reth-network-peers", + "reth-network-types", + "reth-node-api", "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-revm", "reth-rpc-api", "reth-rpc-engine-api", - "reth-rpc-types", + "reth-rpc-eth-api", + "reth-rpc-eth-types", + "reth-rpc-server-types", "reth-rpc-types-compat", "reth-tasks", "reth-transaction-pool", - "revm", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "revm-inspectors", - "revm-primitives", - "schnellru", - "secp256k1 0.27.0", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tracing", "tracing-futures", ] [[package]] name = "reth-rpc-api" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-eips", + "alloy-genesis", + "alloy-json-rpc", + "alloy-primitives 0.8.22", + "alloy-rpc-types", + "alloy-rpc-types-admin", + "alloy-rpc-types-anvil", + "alloy-rpc-types-beacon", + "alloy-rpc-types-debug", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-rpc-types-mev", + "alloy-rpc-types-trace", + "alloy-rpc-types-txpool", + "alloy-serde", "jsonrpsee", "reth-engine-primitives", - "reth-primitives", - "reth-rpc-types", - "serde", - "serde_json", + "reth-network-peers", + "reth-rpc-eth-api", ] [[package]] name = "reth-rpc-builder" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "hyper 0.14.30", + "alloy-network", + "alloy-provider", + "http 1.1.0", "jsonrpsee", - "metrics", + "metrics 0.24.1", "pin-project", - "reth-engine-primitives", + "reth-chainspec", + "reth-consensus", "reth-evm", "reth-ipc", "reth-metrics", "reth-network-api", + "reth-node-core", + "reth-primitives", "reth-provider", "reth-rpc", "reth-rpc-api", + "reth-rpc-eth-api", + "reth-rpc-eth-types", + "reth-rpc-layer", + "reth-rpc-server-types", "reth-tasks", "reth-transaction-pool", "serde", - "strum 0.26.3", - "thiserror", - "tower", + "thiserror 2.0.12", + "tokio", + "tokio-util", + "tower 0.4.13", "tower-http", "tracing", ] [[package]] name = "reth-rpc-engine-api" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "async-trait", + "jsonrpsee-core", + "jsonrpsee-types", + "metrics 0.24.1", + "parking_lot", + "reth-chainspec", + "reth-engine-primitives", + "reth-metrics", + "reth-payload-builder", + "reth-payload-builder-primitives", + "reth-payload-primitives", + "reth-primitives-traits", + "reth-rpc-api", + "reth-storage-api", + "reth-tasks", + "reth-transaction-pool", + "serde", + "thiserror 2.0.12", + "tokio", + "tracing", +] + +[[package]] +name = "reth-rpc-eth-api" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-dyn-abi 0.8.22", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-rpc-types-mev", + "alloy-serde", "async-trait", + "auto_impl", + "dyn-clone", + "futures", + "jsonrpsee", + "jsonrpsee-types", + "parking_lot", + "reth-chainspec", + "reth-errors", + "reth-evm", + "reth-network-api", + "reth-node-api", + "reth-payload-builder", + "reth-primitives", + "reth-primitives-traits", + "reth-provider", + "reth-revm", + "reth-rpc-eth-types", + "reth-rpc-server-types", + "reth-rpc-types-compat", + "reth-tasks", + "reth-transaction-pool", + "reth-trie-common", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-inspectors", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "tokio", + "tracing", +] + +[[package]] +name = "reth-rpc-eth-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", + "alloy-sol-types 0.8.22", + "derive_more 2.0.1", + "futures", + "itertools 0.14.0", "jsonrpsee-core", "jsonrpsee-types", - "metrics", - "reth-beacon-consensus", - "reth-engine-primitives", - "reth-interfaces", + "metrics 0.24.1", + "rand 0.8.5", + "reth-chain-state", + "reth-chainspec", + "reth-errors", + "reth-evm", + "reth-execution-types", "reth-metrics", - "reth-payload-builder", "reth-primitives", - "reth-provider", - "reth-rpc-api", - "reth-rpc-types", + "reth-primitives-traits", + "reth-revm", + "reth-rpc-server-types", "reth-rpc-types-compat", + "reth-storage-api", "reth-tasks", + "reth-transaction-pool", + "reth-trie", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-inspectors", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "schnellru", "serde", - "thiserror", + "thiserror 2.0.12", "tokio", + "tokio-stream", "tracing", ] [[package]] -name = "reth-rpc-types" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-rpc-layer" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types", - "alloy-rpc-types-anvil", "alloy-rpc-types-engine", - "alloy-rpc-types-trace", - "arbitrary", - "enr", + "http 1.1.0", + "jsonrpsee-http-client", + "pin-project", + "tower 0.4.13", + "tower-http", + "tracing", +] + +[[package]] +name = "reth-rpc-server-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "jsonrpsee-core", "jsonrpsee-types", - "proptest", - "proptest-derive", - "secp256k1 0.27.0", + "reth-errors", + "reth-network-api", "serde", - "serde_json", - "serde_with", - "thiserror", - "url", + "strum 0.27.1", ] [[package]] name = "reth-rpc-types-compat" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "alloy-rlp", - "alloy-rpc-types", + "alloy-consensus", + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", + "jsonrpsee-types", "reth-primitives", - "reth-rpc-types", + "reth-primitives-traits", + "serde", ] [[package]] name = "reth-stages" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "bincode 1.3.3", + "blake3", "futures-util", - "itertools 0.12.1", + "itertools 0.14.0", "num-traits", "rayon", + "reqwest 0.12.5", "reth-codecs", "reth-config", + "reth-consensus", "reth-db", + "reth-db-api", "reth-etl", + "reth-evm", + "reth-execution-types", "reth-exex", - "reth-interfaces", + "reth-fs-util", + "reth-network-p2p", "reth-primitives", + "reth-primitives-traits", "reth-provider", + "reth-prune", + "reth-prune-types", + "reth-revm", "reth-stages-api", + "reth-storage-errors", "reth-trie", - "thiserror", + "reth-trie-db", + "serde", + "thiserror 2.0.12", "tokio", "tracing", ] [[package]] name = "reth-stages-api" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", "aquamarine", "auto_impl", "futures-util", - "metrics", - "reth-db", - "reth-interfaces", + "metrics 0.24.1", + "reth-consensus", + "reth-errors", "reth-metrics", - "reth-primitives", + "reth-network-p2p", + "reth-primitives-traits", "reth-provider", + "reth-prune", + "reth-stages-types", "reth-static-file", + "reth-static-file-types", "reth-tokio-util", - "thiserror", + "thiserror 2.0.12", "tokio", - "tokio-stream", "tracing", ] +[[package]] +name = "reth-stages-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "bytes", + "modular-bitfield", + "reth-codecs", + "reth-trie-common", + "serde", +] + [[package]] name = "reth-static-file" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "parking_lot 0.12.3", + "alloy-primitives 0.8.22", + "parking_lot", "rayon", + "reth-codecs", "reth-db", - "reth-interfaces", - "reth-nippy-jar", - "reth-primitives", + "reth-db-api", + "reth-primitives-traits", "reth-provider", + "reth-prune-types", + "reth-stages-types", + "reth-static-file-types", + "reth-storage-errors", "reth-tokio-util", - "tokio-stream", "tracing", ] +[[package]] +name = "reth-static-file-types" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "derive_more 2.0.1", + "serde", + "strum 0.27.1", +] + +[[package]] +name = "reth-storage-api" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rpc-types-engine", + "auto_impl", + "reth-chainspec", + "reth-db-api", + "reth-db-models", + "reth-ethereum-primitives", + "reth-execution-types", + "reth-primitives-traits", + "reth-prune-types", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "reth-trie-db", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", +] + +[[package]] +name = "reth-storage-errors" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "derive_more 2.0.1", + "reth-primitives-traits", + "reth-prune-types", + "reth-static-file-types", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "thiserror 2.0.12", +] + [[package]] name = "reth-tasks" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ + "auto_impl", "dyn-clone", "futures-util", - "metrics", + "metrics 0.24.1", "pin-project", "rayon", "reth-metrics", - "thiserror", + "thiserror 2.0.12", "tokio", "tracing", "tracing-futures", @@ -8894,17 +10224,18 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "tokio", "tokio-stream", + "tracing", ] [[package]] name = "reth-tracing" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ "clap", "eyre", @@ -8920,12 +10251,12 @@ dependencies = [ name = "reth-tracing-ext" version = "0.1.0" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.8.22", "alloy-rpc-types", "alloy-rpc-types-trace", - "alloy-sol-types", + "alloy-sol-types 0.8.22", "async-trait", - "bitflags 2.6.0", + "bitflags 2.9.0", "brontes-core", "brontes-macros", "brontes-types", @@ -8933,24 +10264,25 @@ dependencies = [ "eyre", "futures", "num_cpus", - "reth-beacon-consensus", - "reth-blockchain-tree", + "rayon", + "reth-chainspec", "reth-db", - "reth-interfaces", "reth-network-api", "reth-node-ethereum", + "reth-node-types", "reth-primitives", "reth-provider", "reth-revm", "reth-rpc", "reth-rpc-api", - "reth-rpc-types", + "reth-rpc-eth-types", + "reth-rpc-server-types", "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", - "revm", - "revm-inspectors", - "revm-primitives", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 1.3.0", "serde", "serde_json", "tokio", @@ -8958,157 +10290,564 @@ dependencies = [ ] [[package]] -name = "reth-transaction-pool" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "reth-transaction-pool" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "aquamarine", + "auto_impl", + "bitflags 2.9.0", + "futures-util", + "metrics 0.24.1", + "parking_lot", + "rand 0.8.5", + "reth-chain-state", + "reth-chainspec", + "reth-eth-wire-types", + "reth-execution-types", + "reth-fs-util", + "reth-metrics", + "reth-primitives", + "reth-primitives-traits", + "reth-storage-api", + "reth-tasks", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "rustc-hash 2.1.1", + "schnellru", + "serde", + "smallvec", + "thiserror 2.0.12", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "reth-trie" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-trie", + "auto_impl", + "itertools 0.14.0", + "metrics 0.24.1", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-stages-types", + "reth-storage-errors", + "reth-trie-common", + "reth-trie-sparse", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "tracing", +] + +[[package]] +name = "reth-trie-common" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-consensus", + "alloy-primitives 0.8.22", + "alloy-rlp", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-trie", + "bytes", + "derive_more 2.0.1", + "itertools 0.14.0", + "nybbles", + "rayon", + "reth-codecs", + "reth-primitives-traits", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", + "serde_with", +] + +[[package]] +name = "reth-trie-db" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "derive_more 2.0.1", + "metrics 0.24.1", + "reth-db-api", + "reth-execution-errors", + "reth-metrics", + "reth-primitives-traits", + "reth-trie", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "tracing", +] + +[[package]] +name = "reth-trie-parallel" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "derive_more 2.0.1", + "itertools 0.14.0", + "metrics 0.24.1", + "rayon", + "reth-execution-errors", + "reth-metrics", + "reth-primitives", + "reth-provider", + "reth-storage-errors", + "reth-trie", + "reth-trie-common", + "reth-trie-db", + "thiserror 2.0.12", + "tracing", +] + +[[package]] +name = "reth-trie-sparse" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "alloy-primitives 0.8.22", + "alloy-rlp", + "reth-execution-errors", + "reth-primitives-traits", + "reth-tracing", + "reth-trie-common", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-zstd-compressors" +version = "1.2.0" +source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +dependencies = [ + "zstd", +] + +[[package]] +name = "revm" +version = "20.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", +] + +[[package]] +name = "revm" +version = "20.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", +] + +[[package]] +name = "revm-bytecode" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "bitvec", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", +] + +[[package]] +name = "revm-bytecode" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "bitvec", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", +] + +[[package]] +name = "revm-context" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "cfg-if", + "derive-where", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", +] + +[[package]] +name = "revm-context" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "auto_impl", + "cfg-if", + "derive-where", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "serde", +] + +[[package]] +name = "revm-database" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", +] + +[[package]] +name = "revm-database" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "auto_impl", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", +] + +[[package]] +name = "revm-database-interface" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "auto_impl", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", +] + +[[package]] +name = "revm-database-interface" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "auto_impl", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", +] + +[[package]] +name = "revm-handler" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ - "alloy-rlp", - "aquamarine", "auto_impl", - "bitflags 2.6.0", - "fnv", - "futures-util", - "itertools 0.12.1", - "metrics", - "parking_lot 0.12.3", - "paste", - "rand 0.8.5", - "reth-eth-wire", - "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-tasks", - "revm", - "schnellru", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "serde", - "smallvec", - "thiserror", - "tokio", - "tokio-stream", - "tracing", ] [[package]] -name = "reth-trie" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "revm-handler" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ - "alloy-rlp", "auto_impl", - "derive_more", - "metrics", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-primitives", - "revm", - "thiserror", - "tracing", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "serde", ] [[package]] -name = "reth-trie-parallel" -version = "0.2.0-beta.6" -source = "git+https://github.com/paradigmxyz/reth?rev=ac29b4b#ac29b4b73be382caf2a2462d426e6bad75e18af9" +name = "revm-inspector" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ - "alloy-rlp", - "derive_more", - "itertools 0.12.1", - "metrics", - "rayon", - "reth-db", - "reth-interfaces", - "reth-metrics", - "reth-primitives", - "reth-provider", - "reth-tasks", - "reth-trie", - "thiserror", - "tokio", - "tracing", + "auto_impl", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", + "serde_json", ] [[package]] -name = "revm" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a454c1c650b2b2e23f0c461af09e6c31e1d15e1cbebe905a701c46b8a50afc" +name = "revm-inspector" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" dependencies = [ "auto_impl", - "cfg-if", - "dyn-clone", - "revm-interpreter", - "revm-precompile", - "serde", - "serde_json", + "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", ] [[package]] name = "revm-inspectors" -version = "0.1.0" -source = "git+https://github.com/paradigmxyz/evm-inspectors?rev=dc614ee#dc614eec85ee4d4af938865b121fad58ec7dad5f" +version = "0.15.0" +source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=8900c2b#8900c2bf8430e41f1a1cc92dbc1cf0615f00a26b" dependencies = [ - "alloy-primitives", - "alloy-rpc-types", + "alloy-primitives 0.8.22", + "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types", + "alloy-sol-types 0.8.22", "anstyle", - "boa_engine", - "boa_gc", "colorchoice", - "revm", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", ] [[package]] name = "revm-interpreter" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d322f2730cd300e99d271a1704a2dfb8973d832428f5aa282aaa40e2473b5eec" +version = "16.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", +] + +[[package]] +name = "revm-interpreter" +version = "16.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "serde", +] + +[[package]] +name = "revm-optimism" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ - "revm-primitives", + "auto_impl", + "once_cell", + "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "serde", ] [[package]] name = "revm-precompile" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931f692f3f4fc72ec39d5d270f8e9d208c4a6008de7590ee96cf948e3b6d3f8d" +version = "17.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" dependencies = [ "aurora-engine-modexp", + "blst", "c-kzg", + "cfg-if", "k256", + "libsecp256k1", "once_cell", - "revm-primitives", + "p256", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "ripemd", "secp256k1 0.28.2", "sha2 0.10.8", "substrate-bn", ] +[[package]] +name = "revm-precompile" +version = "17.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "aurora-engine-modexp", + "c-kzg", + "cfg-if", + "k256", + "libsecp256k1", + "once_cell", + "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "ripemd", + "secp256k1 0.30.0", + "sha2 0.10.8", + "substrate-bn", +] + [[package]] name = "revm-primitives" -version = "3.1.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbbc9640790cebcb731289afb7a7d96d16ad94afeb64b5d0b66443bd151e79d6" +checksum = "51187b852d9e458816a2e19c81f1dd6c924077e1a8fccd16e4f044f865f299d7" dependencies = [ - "alloy-primitives", + "alloy-primitives 0.4.2", + "alloy-rlp", "auto_impl", - "bitflags 2.6.0", + "bitflags 2.9.0", "bitvec", - "c-kzg", - "cfg-if", - "derive_more", - "dyn-clone", "enumn", "hashbrown 0.14.5", "hex", - "once_cell", +] + +[[package]] +name = "revm-primitives" +version = "16.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "alloy-primitives 0.8.22", +] + +[[package]] +name = "revm-primitives" +version = "16.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "alloy-primitives 0.8.22", +] + +[[package]] +name = "revm-specification" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "enumn", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "serde", +] + +[[package]] +name = "revm-specification" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "enumn", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", +] + +[[package]] +name = "revm-state" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +dependencies = [ + "bitflags 2.9.0", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "serde", ] +[[package]] +name = "revm-state" +version = "1.0.0-alpha.1" +source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +dependencies = [ + "bitflags 2.9.0", + "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -9119,21 +10858,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -9144,11 +10868,17 @@ dependencies = [ "cfg-if", "getrandom 0.2.15", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys 0.52.0", ] +[[package]] +name = "ringbuffer" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53" + [[package]] name = "ripemd" version = "0.1.3" @@ -9204,6 +10934,28 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rmp" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + [[package]] name = "roaring" version = "0.10.6" @@ -9274,9 +11026,12 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +dependencies = [ + "rand 0.8.5", +] [[package]] name = "rustc-hex" @@ -9308,64 +11063,28 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.6", - "subtle", - "zeroize", -] - [[package]] name = "rustls" version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ + "log", "once_cell", + "ring", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - [[package]] name = "rustls-native-certs" version = "0.7.1" @@ -9403,26 +11122,46 @@ name = "rustls-pki-types" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +dependencies = [ + "web-time", +] [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rustls-platform-verifier" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-roots", + "winapi", ] +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ - "ring 0.17.8", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -9443,29 +11182,12 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "rw-stream-sink" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" -dependencies = [ - "futures", - "pin-project", - "static_assertions", -] - [[package]] name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "ryu-js" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad97d4ce1560a5e27cec89519dc8300d1aa6035b099821261c651486a19e44d5" - [[package]] name = "safe_arch" version = "0.7.2" @@ -9510,16 +11232,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "seahash" version = "4.1.0" @@ -9548,45 +11260,47 @@ dependencies = [ "der", "generic-array", "pkcs8", + "serdect", "subtle", "zeroize", ] [[package]] name = "secp256k1" -version = "0.27.0" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "rand 0.8.5", - "secp256k1-sys 0.8.1", - "serde", + "secp256k1-sys 0.9.2", ] [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ + "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys 0.9.2", + "secp256k1-sys 0.10.1", + "serde", ] [[package]] name = "secp256k1-sys" -version = "0.8.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" dependencies = [ "cc", ] [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] @@ -9597,10 +11311,11 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] @@ -9647,6 +11362,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "seq-macro" version = "0.3.5" @@ -9662,15 +11383,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_bytes" -version = "0.11.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" -dependencies = [ - "serde", -] - [[package]] name = "serde_derive" version = "1.0.208" @@ -9679,7 +11391,7 @@ checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -9699,7 +11411,7 @@ version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.7.1", "itoa", "memchr", "ryu", @@ -9714,7 +11426,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -9740,15 +11452,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.4.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -9757,15 +11469,25 @@ dependencies = [ ] [[package]] -name = "serde_with_macros" -version = "3.9.0" +name = "serde_with_macros" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "serdect" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ - "darling 0.20.10", - "proc-macro2", - "quote", - "syn 2.0.74", + "base16ct", + "serde", ] [[package]] @@ -9774,11 +11496,11 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d" dependencies = [ - "dashmap", + "dashmap 5.5.3", "futures", "lazy_static", "log", - "parking_lot 0.12.3", + "parking_lot", "serial_test_derive", ] @@ -9790,27 +11512,25 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] name = "sha-1" -version = "0.9.8" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ - "block-buffer 0.9.0", "cfg-if", "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "digest 0.10.7", ] [[package]] -name = "sha-1" -version = "0.10.1" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -9952,7 +11672,7 @@ checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ "num-bigint", "num-traits", - "thiserror", + "thiserror 1.0.63", "time", ] @@ -9962,12 +11682,33 @@ version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +[[package]] +name = "skeptic" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8" +dependencies = [ + "bytecount", + "cargo_metadata 0.14.2", + "error-chain", + "glob", + "pulldown-cmark", + "tempfile", + "walkdir", +] + [[package]] name = "sketches-ddsketch" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" +[[package]] +name = "sketches-ddsketch" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" + [[package]] name = "slab" version = "0.4.9" @@ -9983,7 +11724,6 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" dependencies = [ - "arbitrary", "serde", ] @@ -10004,16 +11744,6 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.7" @@ -10026,26 +11756,20 @@ dependencies = [ [[package]] name = "soketto" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", "bytes", "futures", - "http 0.2.12", + "http 1.1.0", "httparse", "log", "rand 0.8.5", - "sha-1 0.9.8", + "sha1", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -10062,12 +11786,6 @@ dependencies = [ "der", ] -[[package]] -name = "sptr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" - [[package]] name = "sqlparser" version = "0.39.0" @@ -10123,12 +11841,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" -[[package]] -name = "strsim" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - [[package]] name = "strsim" version = "0.11.1" @@ -10153,6 +11865,15 @@ dependencies = [ "strum_macros 0.26.4", ] +[[package]] +name = "strum" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +dependencies = [ + "strum_macros 0.27.1", +] + [[package]] name = "strum_macros" version = "0.25.3" @@ -10163,7 +11884,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -10176,7 +11897,20 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.74", + "syn 2.0.99", +] + +[[package]] +name = "strum_macros" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.99", ] [[package]] @@ -10198,16 +11932,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "sucds" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53d46182afe6ed822a94c54a532dc0d59691a8f49226bdc4596529ca864cdd6" -dependencies = [ - "anyhow", - "num-traits", -] - [[package]] name = "symbolic-common" version = "12.10.0" @@ -10244,9 +11968,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.74" +version = "2.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" +checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" dependencies = [ "proc-macro2", "quote", @@ -10262,7 +11986,19 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", +] + +[[package]] +name = "syn-solidity" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac9f9798a84bca5cd4d1760db691075fda8f2c3a5d9647e8bfd29eb9b3fabb87" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.99", ] [[package]] @@ -10285,7 +12021,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -10299,7 +12035,20 @@ dependencies = [ "libc", "ntapi", "once_cell", - "windows", + "windows 0.52.0", +] + +[[package]] +name = "sysinfo" +version = "0.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", + "windows 0.57.0", ] [[package]] @@ -10395,7 +12144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dc636f7d25fd41828408b08931216b93a4d18454a72e2d55d78bc3b78dc167e" dependencies = [ "bincode 1.3.3", - "cargo_metadata", + "cargo_metadata 0.18.1", "serde", ] @@ -10405,14 +12154,14 @@ version = "4.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da89cfe93508da3676114d5a15aa26e29aa88d5230e22bc5ea5f3c1f08ef5f6" dependencies = [ - "darling 0.20.10", + "darling", "if_chain", "itertools 0.12.1", "once_cell", "prettyplease", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -10424,23 +12173,26 @@ dependencies = [ "hex", "num-traits", "serde", - "sha-1 0.10.1", + "sha-1", "test-fuzz-internal", ] [[package]] -name = "thin-vec" -version = "0.2.13" +name = "thiserror" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl 1.0.63", +] [[package]] name = "thiserror" -version = "1.0.63" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", ] [[package]] @@ -10451,7 +12203,18 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", ] [[package]] @@ -10529,7 +12292,6 @@ checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", - "js-sys", "libc", "num-conv", "num_threads", @@ -10609,10 +12371,10 @@ dependencies = [ "bytes", "libc", "mio 1.0.2", - "parking_lot 0.12.3", + "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.7", + "socket2", "tokio-macros", "tracing", "windows-sys 0.52.0", @@ -10626,7 +12388,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -10639,34 +12401,13 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls", "rustls-pki-types", "tokio", ] @@ -10693,6 +12434,22 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +dependencies = [ + "futures-util", + "log", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki-roots", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -10735,7 +12492,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.7.1", "toml_datetime", "winnow 0.5.40", ] @@ -10746,7 +12503,7 @@ version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -10774,20 +12531,35 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.1", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-http" -version = "0.4.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ "async-compression", - "base64 0.21.7", - "bitflags 2.6.0", + "base64 0.22.1", + "bitflags 2.9.0", "bytes", "futures-core", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", "http-range-header", "httpdate", "iri-string", @@ -10797,7 +12569,7 @@ dependencies = [ "pin-project-lite", "tokio", "tokio-util", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", "tracing", @@ -10835,7 +12607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror", + "thiserror 1.0.63", "time", "tracing-subscriber", ] @@ -10848,7 +12620,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -10867,8 +12639,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "futures", - "futures-task", "pin-project", "tracing", ] @@ -10891,156 +12661,84 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-logfmt" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" -dependencies = [ - "time", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "triomphe" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" - -[[package]] -name = "trust-dns-client" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b4ef9b9bde0559b78a4abb00339143750085f05e5a453efb7b8bef1061f09dc" -dependencies = [ - "cfg-if", - "data-encoding", - "futures-channel", - "futures-util", - "lazy_static", - "log", - "radix_trie", - "rand 0.8.5", - "thiserror", - "time", - "tokio", - "trust-dns-proto 0.20.4", -] - -[[package]] -name = "trust-dns-proto" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.3.4", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "log", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "url", + "once_cell", + "tracing-core", ] [[package]] -name = "trust-dns-proto" -version = "0.23.2" +name = "tracing-logfmt" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.6.0", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", + "time", "tracing", - "url", + "tracing-core", + "tracing-subscriber", ] [[package]] -name = "trust-dns-resolver" -version = "0.23.2" +name = "tracing-serde" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lru-cache", + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", "once_cell", - "parking_lot 0.12.3", - "rand 0.8.5", - "resolv-conf", + "regex", + "serde", + "serde_json", + "sharded-slab", "smallvec", - "thiserror", - "tokio", + "thread_local", "tracing", - "trust-dns-proto 0.23.2", + "tracing-core", + "tracing-log", + "tracing-serde", ] +[[package]] +name = "triomphe" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" + [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +dependencies = [ + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "rand 0.9.0", + "rustls", + "rustls-pki-types", + "sha1", + "thiserror 2.0.12", + "utf-8", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -11069,7 +12767,18 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" dependencies = [ - "arbitrary", + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "uint" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909988d098b2f738727b161a106cfc7cab00c539c2687a8836f8e565976fb53e" +dependencies = [ "byteorder", "crunchy", "hex", @@ -11091,27 +12800,12 @@ dependencies = [ "version_check", ] -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "unicode-normalization" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-reverse" version = "1.0.9" @@ -11141,11 +12835,11 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "universal-hash" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "generic-array", + "crypto-common", "subtle", ] @@ -11155,18 +12849,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" -[[package]] -name = "unsigned-varint" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -11175,15 +12857,22 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna", "percent-encoding", + "serde", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf16_iter" version = "1.0.5" @@ -11230,7 +12919,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" dependencies = [ "anyhow", - "cargo_metadata", + "cargo_metadata 0.18.1", "cfg-if", "regex", "rustversion", @@ -11249,12 +12938,6 @@ version = "0.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314" -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - [[package]] name = "wait-timeout" version = "0.2.0" @@ -11285,15 +12968,18 @@ dependencies = [ [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.13.3+wasi-0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] [[package]] name = "wasm-bindgen" @@ -11317,7 +13003,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", "wasm-bindgen-shared", ] @@ -11351,7 +13037,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -11375,6 +13061,20 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasmtimer" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", +] + [[package]] name = "web-sys" version = "0.3.70" @@ -11457,7 +13157,27 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core", + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", "windows-targets 0.52.6", ] @@ -11470,6 +13190,103 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -11636,6 +13453,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -11656,6 +13482,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.9.0", +] + [[package]] name = "write16" version = "1.0.0" @@ -11669,12 +13504,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] -name = "wyhash" -version = "0.5.0" +name = "ws_stream_wasm" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf6e163c25e3fac820b4b453185ea2dea3b6a3e0a721d4d23d75bd33734c295" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" dependencies = [ - "rand_core 0.6.4", + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.0", + "send_wrapper 0.6.0", + "thiserror 1.0.63", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", ] [[package]] @@ -11697,27 +13542,18 @@ dependencies = [ "rustix", ] -[[package]] -name = "xml-rs" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" - -[[package]] -name = "xmltree" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" -dependencies = [ - "xml-rs", -] - [[package]] name = "xxhash-rust" version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + [[package]] name = "yoke" version = "0.7.4" @@ -11738,7 +13574,7 @@ checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", "synstructure", ] @@ -11749,7 +13585,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09612fda0b63f7cb9e0af7e5916fe5a1f8cdcb066829f10f36883207628a4872" +dependencies = [ + "zerocopy-derive 0.8.22", ] [[package]] @@ -11760,7 +13605,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79f81d38d7a2ed52d8f034e62c568e111df9bf8aba2f7cf19ddc5bf7bd89d520" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.99", ] [[package]] @@ -11780,7 +13636,7 @@ checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", "synstructure", ] @@ -11801,7 +13657,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] @@ -11823,7 +13679,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.74", + "syn 2.0.99", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2639d0fa5b..22811f5b7b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,70 +37,74 @@ brontes-analytics = { path = "./crates/brontes-analytics" } brontes-libmdbx = { path = "./crates/brontes-database/libmdbx-rs" } # Reth -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", rev = "ac29b4b" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", package = "reth-tasks", rev = "ac29b4b" } -reth-rpc = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc", rev = "ac29b4b" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-api", rev = "ac29b4b" } -reth-rpc-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-types", rev = "ac29b4b" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-builder", rev = "ac29b4b" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", rev = "ac29b4b" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", package = "reth-transaction-pool", rev = "ac29b4b" } -reth-network-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-network-api", rev = "ac29b4b" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", package = "reth-primitives", rev = "ac29b4b" } -reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", rev = "ac29b4b" } -reth-blockchain-tree = { git = "https://github.com/paradigmxyz/reth", package = "reth-blockchain-tree", rev = "ac29b4b" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-core", rev = "ac29b4b" } -reth-beacon-consensus = { git = "https://github.com/paradigmxyz/reth", package = "reth-beacon-consensus", rev = "ac29b4b" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", package = "reth-revm", rev = "ac29b4b" } -reth-interfaces = { git = "https://github.com/paradigmxyz/reth", package = "reth-interfaces", features = [ - "test-utils", -], rev = "ac29b4b" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", rev = "916b2415" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-types", rev = "916b2415" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", package = "reth-tasks", rev = "916b2415" } +reth-rpc = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc", rev = "916b2415" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-api", rev = "916b2415" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-builder", rev = "916b2415" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", rev = "916b2415" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", package = "reth-transaction-pool", rev = "916b2415" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", package = "reth-chainspec", rev = "916b2415" } +reth-network-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-network-api", rev = "916b2415" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", package = "reth-primitives", rev = "916b2415" } +reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", rev = "916b2415" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-core", rev = "916b2415" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", package = "reth-revm", rev = "916b2415" } reth-stages = { git = "https://github.com/paradigmxyz/reth", package = "reth-stages", features = [ "test-utils", -], rev = "ac29b4b" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", package = "reth-trie", rev = "ac29b4b" } -reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", package = "reth-libmdbx", rev = "ac29b4b" } -reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", package = "reth-eth-wire", rev = "ac29b4b" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-payload-builder", rev = "ac29b4b" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", package = "reth-metrics", rev = "ac29b4b" } -reth-codecs = { git = "https://github.com/paradigmxyz/reth", package = "reth-codecs", rev = "ac29b4b" } -reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", rev = "ac29b4b" } +], rev = "916b2415" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", package = "reth-trie", rev = "916b2415" } +reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", package = "reth-libmdbx", rev = "916b2415" } +reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", package = "reth-eth-wire", rev = "916b2415" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-payload-builder", rev = "916b2415" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", package = "reth-metrics", rev = "916b2415" } +reth-codecs = { git = "https://github.com/paradigmxyz/reth", package = "reth-codecs", rev = "916b2415" } +reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } +reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } # ruint ruint = "1.9.0" # revm -revm = { version = "8.0.0", features = [ +revm = { git = "https://github.com/bluealloy/revm.git", version = "20.0.0-alpha.1", features = [ "std", "secp256k1", + "optional_balance_check", + "optional_block_gas_limit", ], default-features = false } -revm-primitives = { version = "3.1", features = [ +revm-primitives = { version = "1.0.0-alpha.1", features = [ "std", ], default-features = false } -revm-inspectors = { git = "https://github.com/paradigmxyz/evm-inspectors", rev = "dc614ee" } +revm-inspector = { version = "1.0.0-alpha.1", default-features = false } # Alloy -alloy-sol-types = { version = "0.7.0", features = ["json"] } -alloy-sol-macro = { version = "0.7.0", features = ["json"] } +alloy-sol-types = { version = "0.8.15", features = ["json"] } +alloy-sol-macro = { version = "0.8.15", features = ["json"] } alloy-rlp = { version = "0.3.4" } alloy-rlp-derive = { version = "0.3.4" } -alloy-primitives = { version = "0.7.0", features = ["rlp"] } +alloy-primitives = { version = "0.8.21", features = ["rlp"] } alloy-json-abi = "0.7.0" alloy-dyn-abi = "0.7.0 " # Alloy core -alloy-provider = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695", features = [ +alloy-provider = { version = "0.11.1", default-features = false, features = [ + "ipc", + "ws", + "pubsub", "reqwest", ] } -alloy-transport-http = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695" } -alloy-transport = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695" } -alloy-network = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695" } -alloy-json-rpc = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695" } -alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695", features = [ - "jsonrpsee-types", -] } -alloy-rpc-client = { git = "https://github.com/alloy-rs/alloy.git", rev = "39b8695" } +alloy-transport-http = { version = "0.11.1" } +alloy-transport = { version = "0.11.1" } +alloy-network = { version = "0.11.1" } +alloy-json-rpc = { version = "0.11.1" } +alloy-rpc-types = { version = "0.11.1", features = ["jsonrpsee-types", "eth"] } +alloy-rpc-types-trace = "0.11.1" +alloy-rpc-types-beacon = "0.11.1" +alloy-rpc-client = { version = "0.11.1" } + # Async tokio = { version = "1.13.0", features = ["full", "tracing"] } @@ -129,7 +133,7 @@ thiserror = "1.0.44" eyre = "0.6.8" # http/rpc -hyper = "0.14.25" +hyper = { version = "0.14.25", features = ["server"] } hyper-tls = "0.5.0" reqwest = "0.12.2" @@ -169,7 +173,7 @@ toml = "0.8.2" auto_impl = "1.1.0" strum = "0.25.0" serial_test = "2.0.0" -derive_more = "0.99.17" +derive_more = { version = "2.0", default-features = false } rkyv = { git = "https://github.com/rkyv/rkyv.git", branch = "0.7-hashbrown-0.14", features = [ "validation", ] } @@ -191,6 +195,23 @@ tar = "0.4.41" flate2 = "1.0.30" +[patch.crates-io] +alloy-evm = { git = "https://github.com/alloy-rs/evm", rev = "04fa394" } +revm = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-bytecode = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-database = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-state = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-inspector = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-context = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-context-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-database-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-specification = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-optimism = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } +revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "8900c2b" } + + [profile.release] lto = "thin" strip = "debuginfo" diff --git a/crates/bin/Cargo.toml b/crates/bin/Cargo.toml index d72b92d068..5f79121b10 100644 --- a/crates/bin/Cargo.toml +++ b/crates/bin/Cargo.toml @@ -39,17 +39,13 @@ reqwest = { workspace = true, features = ["blocking"] } reth-tasks.workspace = true reth-rpc.workspace = true reth-rpc-api.workspace = true -reth-rpc-types.workspace = true reth-provider.workspace = true reth-node-core.workspace = true reth-transaction-pool.workspace = true reth-network-api.workspace = true reth-primitives.workspace = true reth-db.workspace = true -reth-blockchain-tree.workspace = true -reth-beacon-consensus.workspace = true #reth-revm.workspace = true -reth-interfaces.workspace = true # Alloy alloy-primitives.workspace = true diff --git a/crates/brontes-classifier/Cargo.toml b/crates/brontes-classifier/Cargo.toml index f644d21148..e8510f0eb3 100644 --- a/crates/brontes-classifier/Cargo.toml +++ b/crates/brontes-classifier/Cargo.toml @@ -24,11 +24,10 @@ futures.workspace = true # alloy alloy-sol-types.workspace = true alloy-sol-macro = { workspace = true, features = ["json"] } -alloy-rpc-types.workspace = true alloy-rlp.workspace = true # reth -reth-rpc-types.workspace = true +alloy-rpc-types.workspace = true reth-primitives.workspace = true reth-db.workspace = true @@ -96,5 +95,3 @@ local-clickhouse = [ "brontes-database/local-clickhouse", "brontes-core/local-clickhouse", ] - - diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index 083a19a22a..015d7a79d6 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -1,4 +1,4 @@ -use alloy_primitives::{Address, FixedBytes}; +use alloy_primitives::{Address, FixedBytes, U256}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_macros::action_impl; use brontes_pricing::Protocol; @@ -13,7 +13,6 @@ use brontes_types::{ }; use eyre::Error; use malachite::Rational; -use reth_primitives::U256; use crate::BalancerV2Vault::PoolBalanceChanged; diff --git a/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs b/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs index b8bc918357..c491d277f7 100644 --- a/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs +++ b/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs @@ -4,7 +4,7 @@ use brontes_types::{ structured_trace::CallInfo, Protocol, ToScaledRational, }; -use reth_primitives::U256; +use alloy_primitives::U256; action_impl!( Protocol::Dodo, diff --git a/crates/brontes-classifier/src/classifiers/erc20.rs b/crates/brontes-classifier/src/classifiers/erc20.rs index 2c11a6851a..a8cd31fe75 100644 --- a/crates/brontes-classifier/src/classifiers/erc20.rs +++ b/crates/brontes-classifier/src/classifiers/erc20.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use alloy_primitives::{Address, Bytes}; +use alloy_primitives::{Address, Bytes, U256}; use alloy_sol_types::SolCall; use brontes_core::missing_token_info::load_missing_token_info; use brontes_types::{ @@ -10,7 +10,6 @@ use brontes_types::{ ToScaledRational, }; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::U256; alloy_sol_macro::sol!( function transfer(address, uint) returns(bool); diff --git a/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs b/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs index b90909f82d..b4eab74821 100644 --- a/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs +++ b/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs @@ -49,7 +49,7 @@ mod tests { normalized_actions::{Action, NormalizedTransfer}, TreeSearchBuilder, }; - use reth_primitives::U256; + use alloy_primitives::U256; use super::*; diff --git a/crates/brontes-classifier/src/classifiers/oneinch/one_inch_fusion.rs b/crates/brontes-classifier/src/classifiers/oneinch/one_inch_fusion.rs index 8fe133a5e1..5ab17a0dda 100644 --- a/crates/brontes-classifier/src/classifiers/oneinch/one_inch_fusion.rs +++ b/crates/brontes-classifier/src/classifiers/oneinch/one_inch_fusion.rs @@ -1,7 +1,7 @@ +use alloy_primitives::Address; use brontes_macros::action_impl; use brontes_pricing::Protocol; use brontes_types::{normalized_actions::NormalizedAggregator, structured_trace::CallInfo}; -use reth_primitives::Address; action_impl!( Protocol::OneInchFusion, diff --git a/crates/brontes-core/Cargo.toml b/crates/brontes-core/Cargo.toml index 94dabaff39..a41d029dc4 100644 --- a/crates/brontes-core/Cargo.toml +++ b/crates/brontes-core/Cargo.toml @@ -12,15 +12,11 @@ harness = false reth-tasks.workspace = true reth-rpc.workspace = true reth-rpc-api.workspace = true -reth-rpc-types.workspace = true reth-primitives.workspace = true reth-provider.workspace = true reth-transaction-pool.workspace = true reth-network-api.workspace = true reth-db.workspace = true -reth-blockchain-tree.workspace = true -reth-beacon-consensus.workspace = true -reth-interfaces.workspace = true reth-metrics.workspace = true reth-tracing-ext.workspace = true ruint = { workspace = true, features = ["primitive-types", "rlp"] } @@ -45,7 +41,7 @@ alloy-json-abi.workspace = true alloy-dyn-abi = { workspace = true, features = ["default"] } alloy-provider.workspace = true alloy-transport-http.workspace = true -alloy-rpc-types = { workspace = true, features = ["jsonrpsee-types"] } +alloy-rpc-types.workspace = true # Serde serde.workspace = true diff --git a/crates/brontes-core/src/errors.rs b/crates/brontes-core/src/errors.rs index 5e04652bfb..9244c54ad6 100644 --- a/crates/brontes-core/src/errors.rs +++ b/crates/brontes-core/src/errors.rs @@ -1,5 +1,5 @@ use brontes_metrics::trace::types::TraceParseErrorKind; -use reth_primitives::B256; +use alloy_primitives::B256; use reth_rpc::eth::error::EthApiError; use thiserror::Error; diff --git a/crates/brontes-database/brontes-db/Cargo.toml b/crates/brontes-database/brontes-db/Cargo.toml index d10459f4e8..1cd092338b 100644 --- a/crates/brontes-database/brontes-db/Cargo.toml +++ b/crates/brontes-database/brontes-db/Cargo.toml @@ -29,15 +29,14 @@ alloy-json-abi = { workspace = true, features = ["serde_json"] } # reth reth-primitives.workspace = true -reth-interfaces.workspace = true reth-libmdbx = { workspace = true, features = [ "return-borrowed", "read-tx-timeouts", ] } -reth-mdbx-sys = { git = "https://github.com/paradigmxyz/reth", rev = "ac29b4b" } +reth-mdbx-sys = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } reth-db.workspace = true reth-rpc.workspace = true -reth-rpc-types.workspace = true +alloy-rpc-types.workspace = true # filesystem fs2.workspace = true diff --git a/crates/brontes-database/libmdbx-rs/Cargo.toml b/crates/brontes-database/libmdbx-rs/Cargo.toml index 7959ffa256..6ae2533e26 100644 --- a/crates/brontes-database/libmdbx-rs/Cargo.toml +++ b/crates/brontes-database/libmdbx-rs/Cargo.toml @@ -18,7 +18,7 @@ thiserror.workspace = true dashmap = { version = "5.5.3", features = ["inline"], optional = true } tracing.workspace = true -ffi = { package = "reth-mdbx-sys", git = "https://github.com/paradigmxyz/reth", rev = "ac29b4b" } +ffi = { package = "reth-mdbx-sys", git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } [dev-dependencies] tempfile = "3.8" @@ -32,7 +32,3 @@ libffi = "3.2.0" default = [] return-borrowed = [] read-tx-timeouts = ["dashmap", "dashmap/inline"] - - - - diff --git a/crates/brontes-database/libmdbx-rs/src/codec.rs b/crates/brontes-database/libmdbx-rs/src/codec.rs index d422fa3c9b..6729d656e1 100644 --- a/crates/brontes-database/libmdbx-rs/src/codec.rs +++ b/crates/brontes-database/libmdbx-rs/src/codec.rs @@ -71,7 +71,7 @@ impl TableObject for () { } /// If you don't need the data itself, just its length. -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Deref, DerefMut)] +#[derive(Clone, Copy, std::fmt::Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Deref, DerefMut)] pub struct ObjectLength(pub usize); impl TableObject for ObjectLength { diff --git a/crates/brontes-inspect/Cargo.toml b/crates/brontes-inspect/Cargo.toml index 9b494e516b..89d3b61209 100644 --- a/crates/brontes-inspect/Cargo.toml +++ b/crates/brontes-inspect/Cargo.toml @@ -37,7 +37,6 @@ async-scoped = { version = "0.7.1", features = ["use-tokio"] } # reth reth-primitives.workspace = true -reth-rpc-types.workspace = true # tracing tracing.workspace = true diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs index ecbb38ba2d..93949cc1db 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs @@ -34,7 +34,7 @@ use malachite::{ }, Rational, }; -use reth_primitives::Address; +use alloy_primitives::Address; use tracing::trace; use super::{ diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs index fca3d25c40..e58de4d5b0 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs @@ -17,7 +17,7 @@ use brontes_types::{ use colored::Colorize; use itertools::Itertools; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::Address; +use alloy_primitives::Address; use strum::Display; use tracing::warn; diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs index 89e6d62a8c..ffd248bd74 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs @@ -5,7 +5,7 @@ use brontes_types::{ ToFloatNearest, TxInfo, }; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::Address; +use alloy_primitives::Address; use tracing::warn; #[derive(Debug, Default)] diff --git a/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs b/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs index aa92daf4c2..6360778742 100644 --- a/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs +++ b/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs @@ -1,6 +1,6 @@ use std::{collections::hash_map::Entry, sync::Arc}; -use alloy_primitives::{Address, B256}; +use alloy_primitives::{Address, TxHash, B256}; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -15,7 +15,6 @@ use brontes_types::{ }; use itertools::Itertools; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::TxHash; use super::types::{PossibleJit, PossibleJitWithInfo}; use crate::{ diff --git a/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs b/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs index aefbb00444..b6ddf8e6df 100644 --- a/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs +++ b/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs @@ -11,7 +11,7 @@ use brontes_types::{ }; use itertools::multizip; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::Address; +use alloy_primitives::Address; use super::{MAX_PROFIT, MIN_PROFIT}; use crate::{shared_utils::SharedInspectorUtils, Inspector, Metadata}; diff --git a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs index 2c182bcb28..1b717efab6 100644 --- a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs +++ b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use alloy_primitives::{Address, FixedBytes}; +use alloy_primitives::{Address, FixedBytes, TxHash}; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -29,7 +29,6 @@ use malachite::{ }, Rational, }; -use reth_primitives::TxHash; const CONNECTION_TH: usize = 2; const LOW_LIQ_TH: Rational = Rational::const_from_unsigned(50_000u64); diff --git a/crates/brontes-metrics/Cargo.toml b/crates/brontes-metrics/Cargo.toml index 2ac9c6b828..31254154bb 100644 --- a/crates/brontes-metrics/Cargo.toml +++ b/crates/brontes-metrics/Cargo.toml @@ -19,7 +19,6 @@ reth-metrics.workspace = true alloy-primitives.workspace = true reth-primitives.workspace = true colored.workspace = true -reth-interfaces.workspace = true # metrics metrics-exporter-prometheus.workspace = true metrics-util.workspace = true diff --git a/crates/brontes-metrics/src/inspectors.rs b/crates/brontes-metrics/src/inspectors.rs index f1b992cb3e..700f0900d7 100644 --- a/crates/brontes-metrics/src/inspectors.rs +++ b/crates/brontes-metrics/src/inspectors.rs @@ -5,7 +5,7 @@ use dashmap::DashMap; use metrics::{Counter, Gauge}; use prometheus::{HistogramVec, IntCounterVec}; use reth_metrics::Metrics; -use reth_primitives::Address; +use alloy_primitives::Address; #[derive(Clone)] pub struct OutlierMetrics { diff --git a/crates/brontes-metrics/src/trace/types.rs b/crates/brontes-metrics/src/trace/types.rs index 6a0d6a0663..ee5676c6e1 100644 --- a/crates/brontes-metrics/src/trace/types.rs +++ b/crates/brontes-metrics/src/trace/types.rs @@ -1,5 +1,5 @@ use colored::Colorize; -use reth_primitives::B256; +use alloy_primitives::B256; use tracing::debug; use crate::ParserMetricEvents; diff --git a/crates/brontes-pricing/Cargo.toml b/crates/brontes-pricing/Cargo.toml index 60e7ab93fb..160b33ea7b 100644 --- a/crates/brontes-pricing/Cargo.toml +++ b/crates/brontes-pricing/Cargo.toml @@ -19,7 +19,7 @@ futures.workspace = true thiserror.workspace = true # reth -reth-rpc-types.workspace = true +alloy-rpc-types.workspace = true reth-primitives.workspace = true reth-db.workspace = true reth-codecs.workspace = true diff --git a/crates/brontes-pricing/pricing-test-utils/Cargo.toml b/crates/brontes-pricing/pricing-test-utils/Cargo.toml index 3ca1c83d16..d53187b507 100644 --- a/crates/brontes-pricing/pricing-test-utils/Cargo.toml +++ b/crates/brontes-pricing/pricing-test-utils/Cargo.toml @@ -13,7 +13,7 @@ futures.workspace = true thiserror.workspace = true # reth -reth-rpc-types.workspace = true +alloy-rpc-types.workspace = true reth-primitives.workspace = true reth-db.workspace = true reth-codecs.workspace = true diff --git a/crates/brontes-types/Cargo.toml b/crates/brontes-types/Cargo.toml index 0e6b1078c7..ce0954dfa0 100644 --- a/crates/brontes-types/Cargo.toml +++ b/crates/brontes-types/Cargo.toml @@ -6,18 +6,18 @@ edition = "2021" [dependencies] # reth -reth-rpc-types.workspace = true reth-primitives.workspace = true reth-codecs.workspace = true reth-tasks.workspace = true reth-db.workspace = true async-trait.workspace = true -reth-interfaces.workspace = true reth-rpc.workspace = true # alloy alloy-json-abi = { workspace = true, features = ["serde_json"] } alloy-rpc-types.workspace = true +alloy-rpc-types-trace.workspace = true +alloy-rpc-types-beacon.workspace = true # tracing tracing.workspace = true @@ -55,7 +55,22 @@ alloy-sol-macro.workspace = true alloy-dyn-abi.workspace = true alloy-rlp.workspace = true parking_lot.workspace = true -derive_more.workspace = true +derive_more = { workspace = true, features = [ + "as_ref", + "add", + "add_assign", + "not", + "deref", + "deref_mut", + "from", + "from_str", + "index", + "index_mut", + "into", + "into_iterator", + "display", + "deref", +] } dyn-clone = "1.0.16" itertools.workspace = true rkyv.workspace = true @@ -98,8 +113,6 @@ brontes-database = { workspace = true, features = ["tests"] } reth-tracing-ext.workspace = true - - [features] tests = [] test_pricing = [] diff --git a/crates/brontes-types/src/block_metadata/mod.rs b/crates/brontes-types/src/block_metadata/mod.rs index 6b338c2480..5018b25614 100644 --- a/crates/brontes-types/src/block_metadata/mod.rs +++ b/crates/brontes-types/src/block_metadata/mod.rs @@ -5,7 +5,7 @@ pub use relays::*; mod bids_payloads; pub use bids_payloads::*; -use reth_primitives::Address; +use alloy_primitives::Address; #[derive(Debug, Clone, PartialEq, Eq)] pub struct RelayBlockMetadata { diff --git a/crates/brontes-types/src/block_metadata/relays.rs b/crates/brontes-types/src/block_metadata/relays.rs index 3ca0cead81..ac5ff2d5ca 100644 --- a/crates/brontes-types/src/block_metadata/relays.rs +++ b/crates/brontes-types/src/block_metadata/relays.rs @@ -1,10 +1,10 @@ use std::collections::HashSet; +use alloy_primitives::BlockHash; use relays_openapi::apis::{ configuration::Configuration, data_api::{get_delivered_payloads, get_received_bids}, }; -use reth_primitives::BlockHash; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; use strum::IntoEnumIterator; diff --git a/crates/brontes-types/src/db/block_analysis.rs b/crates/brontes-types/src/db/block_analysis.rs index 4724344d91..c3ce87c09b 100644 --- a/crates/brontes-types/src/db/block_analysis.rs +++ b/crates/brontes-types/src/db/block_analysis.rs @@ -3,7 +3,7 @@ use crate::serde_utils::address; use alloy_primitives::Address; use clickhouse::Row; use itertools::Itertools; -use reth_primitives::TxHash; +use alloy_primitives::TxHash; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use crate::serde_utils::vec_address; diff --git a/crates/brontes-types/src/db/builder.rs b/crates/brontes-types/src/db/builder.rs index 72f182107c..123839b11f 100644 --- a/crates/brontes-types/src/db/builder.rs +++ b/crates/brontes-types/src/db/builder.rs @@ -1,7 +1,7 @@ use alloy_primitives::Address; +use alloy_rpc_types_beacon::BlsPublicKey; use clickhouse::Row; use redefined::Redefined; -use reth_rpc_types::beacon::BlsPublicKey; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/db/clickhouse.rs b/crates/brontes-types/src/db/clickhouse.rs index dff129f0ce..7fae4ee0b9 100644 --- a/crates/brontes-types/src/db/clickhouse.rs +++ b/crates/brontes-types/src/db/clickhouse.rs @@ -1,8 +1,8 @@ use std::str::FromStr; use alloy_json_abi::JsonAbi; +use alloy_primitives::{Address, B256, U256}; use clickhouse::{fixed_string::FixedString, Row}; -use reth_primitives::{Address, B256, U256}; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; diff --git a/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs b/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs index af68355f70..d4b9594913 100644 --- a/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs +++ b/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs @@ -1,5 +1,5 @@ +use alloy_rpc_types_trace::parity::{Action, TraceOutput}; use itertools::Itertools; -use reth_rpc_types::trace::parity::{Action, TraceOutput}; use crate::structured_trace::TxTrace; @@ -116,7 +116,7 @@ impl<'a> From<&'a TxTrace> for ClickhouseCreateAction { Action::Create(c) => { this.trace_idx.push(trace.trace_idx); this.from.push(format!("{:?}", c.from)); - this.gas.push(c.gas.to::()); + this.gas.push(c.gas); this.init.push(format!("{:?}", c.init)); this.value.push(c.value.to_le_bytes() as [u8; 32]); } @@ -151,7 +151,7 @@ impl<'a> From<&'a TxTrace> for ClickhouseCallAction { this.trace_idx.push(trace.trace_idx); this.from.push(format!("{:?}", c.from)); this.call_type.push(format!("{:?}", c.call_type)); - this.gas.push(c.gas.to::()); + this.gas.push(c.gas); this.input.push(format!("{:?}", c.input)); this.to.push(format!("{:?}", c.to)); this.value.push(c.value.to_le_bytes() as [u8; 32]); @@ -240,7 +240,7 @@ impl<'a> From<&'a TxTrace> for ClickhouseCallOutput { .filter_map(|trace| { trace.trace.result.as_ref().and_then(|res| match res { TraceOutput::Call(c) => { - Some((trace.trace_idx, c.gas_used.to::(), format!("{:?}", c.output))) + Some((trace.trace_idx, c.gas_used, format!("{:?}", c.output))) } _ => None, }) @@ -276,7 +276,7 @@ impl<'a> From<&'a TxTrace> for ClickhouseCreateOutput { trace.trace_idx, format!("{:?}", c.address), format!("{:?}", c.code), - c.gas_used.to::(), + c.gas_used, )), _ => None, }) @@ -296,11 +296,11 @@ pub mod tx_traces_inner { use std::str::FromStr; use alloy_primitives::{Address, Bytes, Log, LogData, TxHash, U256, U64}; - use itertools::Itertools; - use reth_rpc_types::trace::parity::{ - Action, CallAction, CallOutput, CallType, CreateAction, CreateOutput, RewardAction, - RewardType, SelfdestructAction, TraceOutput, TransactionTrace, + use alloy_rpc_types_trace::parity::{ + Action, CallAction, CallOutput, CallType, CreateAction, CreateOutput, CreationMethod, + RewardAction, RewardType, SelfdestructAction, TraceOutput, TransactionTrace, }; + use itertools::Itertools; use serde::de::{Deserialize, Deserializer}; use crate::{ @@ -459,10 +459,11 @@ pub mod tx_traces_inner { let entry = map.entry(trace_idx).or_insert(default_trace.clone()); let create = CreateAction { - from: Address::from_str(&from).unwrap(), - gas: U64::from(gas), - init: Bytes::from_str(&init).unwrap(), + from: Address::from_str(&from).unwrap(), + gas, + init: Bytes::from_str(&init).unwrap(), value: U256::from_le_bytes(value), + creation_method: CreationMethod::default(), }; entry.trace.action = Action::Create(create); @@ -488,7 +489,7 @@ pub mod tx_traces_inner { let call = CallAction { from: Address::from_str(&from).unwrap(), - gas: U64::from(gas), + gas, value: U256::from_le_bytes(value), call_type, input: Bytes::from_str(&input).unwrap(), @@ -545,10 +546,7 @@ pub mod tx_traces_inner { .for_each(|(trace_idx, gas_used, output)| { let entry = map.entry(trace_idx).or_insert(default_trace.clone()); - let call = CallOutput { - gas_used: U64::from(gas_used), - output: Bytes::from_str(&output).unwrap(), - }; + let call = CallOutput { gas_used, output: Bytes::from_str(&output).unwrap() }; entry.trace.result = Some(TraceOutput::Call(call)) }); @@ -560,9 +558,9 @@ pub mod tx_traces_inner { let entry = map.entry(trace_idx).or_insert(default_trace.clone()); let create = CreateOutput { - gas_used: U64::from(gas_used), - address: Address::from_str(&address).unwrap(), - code: Bytes::from_str(&code).unwrap(), + gas_used, + address: Address::from_str(&address).unwrap(), + code: Bytes::from_str(&code).unwrap(), }; entry.trace.result = Some(TraceOutput::Create(create)) diff --git a/crates/brontes-types/src/db/codecs.rs b/crates/brontes-types/src/db/codecs.rs index f3003f77d2..22912ae495 100644 --- a/crates/brontes-types/src/db/codecs.rs +++ b/crates/brontes-types/src/db/codecs.rs @@ -24,7 +24,7 @@ macro_rules! implement_table_value_codecs_with_zc { impl reth_db::table::Compress for $table_value { type Compressed = Vec; - fn compress_to_buf>(self, buf: &mut B) { + fn compress_to_buf>(&self, buf: &mut B) { let mut encoded = Vec::new(); alloy_rlp::Encodable::encode(&self, &mut encoded); let encoded_compressed = zstd::encode_all(&*encoded, 0).unwrap(); @@ -34,8 +34,8 @@ macro_rules! implement_table_value_codecs_with_zc { } impl reth_db::table::Decompress for $table_value { - fn decompress>(value: B) -> Result { - let binding = value.as_ref().to_vec(); + fn decompress(value: &[u8]) -> Result { + let binding = value.to_vec(); let encoded_decompressed = zstd::decode_all(&*binding).unwrap(); let buf = &mut encoded_decompressed.as_slice(); diff --git a/crates/brontes-types/src/db/dex.rs b/crates/brontes-types/src/db/dex.rs index 5325967d74..e12dba1e13 100644 --- a/crates/brontes-types/src/db/dex.rs +++ b/crates/brontes-types/src/db/dex.rs @@ -395,10 +395,7 @@ impl From for Vec<(Pair, DexPrices)> { implement_table_value_codecs_with_zc!(DexQuoteWithIndexRedefined); -wrap_fixed_bytes!( - extra_derives: [], - pub struct DexKey<10>; -); +wrap_fixed_bytes!(pub struct DexKey<10>;); impl reth_db::table::Encode for DexKey { type Encoded = [u8; 10]; @@ -409,8 +406,8 @@ impl reth_db::table::Encode for DexKey { } impl reth_db::table::Decode for DexKey { - fn decode>(value: B) -> Result { - Ok(DexKey::from_slice(value.as_ref())) + fn decode(value: &[u8]) -> Result { + Ok(DexKey::from_slice(value)) } } diff --git a/crates/brontes-types/src/db/metadata.rs b/crates/brontes-types/src/db/metadata.rs index 301fbb4748..10fc0c59cb 100644 --- a/crates/brontes-types/src/db/metadata.rs +++ b/crates/brontes-types/src/db/metadata.rs @@ -1,8 +1,7 @@ -use alloy_primitives::{Address, TxHash, U256}; +use alloy_primitives::{Address, BlockHash, TxHash, U256}; use clickhouse::Row; use malachite::{num::basic::traits::Zero, Rational}; use redefined::Redefined; -use reth_primitives::BlockHash; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::Serialize; use serde_with::serde_as; diff --git a/crates/brontes-types/src/db/normalized_actions.rs b/crates/brontes-types/src/db/normalized_actions.rs index 08e2a3f716..f17a0e259c 100644 --- a/crates/brontes-types/src/db/normalized_actions.rs +++ b/crates/brontes-types/src/db/normalized_actions.rs @@ -1,7 +1,7 @@ use alloy_primitives::Address; use clickhouse::DbRow; use itertools::MultiUnzip; -use reth_primitives::B256; +use alloy_primitives::B256; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use crate::{normalized_actions::Action, GasDetails, Node, Root}; diff --git a/crates/brontes-types/src/db/traces.rs b/crates/brontes-types/src/db/traces.rs index dd6d441787..31fb9374f0 100644 --- a/crates/brontes-types/src/db/traces.rs +++ b/crates/brontes-types/src/db/traces.rs @@ -1,10 +1,10 @@ use alloy_primitives::{Log, LogData}; +use alloy_rpc_types_trace::parity::{ + Action, CallAction, CallOutput, CallType, CreateAction, CreateOutput, CreationMethod, + RewardAction, RewardType, SelfdestructAction, TraceOutput, TransactionTrace, +}; use clickhouse::Row; use redefined::Redefined; -use reth_rpc_types::trace::parity::{ - Action, CallAction, CallOutput, CallType, CreateAction, CreateOutput, RewardAction, RewardType, - SelfdestructAction, TraceOutput, TransactionTrace, -}; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; @@ -138,7 +138,7 @@ pub enum ActionRedefined { pub struct CallActionRedefined { pub from: AddressRedefined, pub call_type: CallTypeRedefined, - pub gas: U64Redefined, + pub gas: u64, pub input: BytesRedefined, pub to: AddressRedefined, pub value: U256Redefined, @@ -157,10 +157,30 @@ pub struct CallActionRedefined { )] #[redefined(CreateAction)] pub struct CreateActionRedefined { - pub from: AddressRedefined, - pub gas: U64Redefined, - pub init: BytesRedefined, - pub value: U256Redefined, + pub from: AddressRedefined, + pub gas: u64, + pub init: BytesRedefined, + pub value: U256Redefined, + pub creation_method: CreationMethodRedefined, +} + +#[derive( + Clone, + Debug, + Eq, + PartialEq, + serde::Serialize, + rSerialize, + rDeserialize, + rkyv::Archive, + Redefined, +)] +#[redefined(CreationMethod)] +pub enum CreationMethodRedefined { + None, + Create, + Create2, + EofCreate, } #[derive( @@ -234,6 +254,7 @@ pub enum CallTypeRedefined { CallCode, DelegateCall, StaticCall, + AuthCall, } #[derive( @@ -266,7 +287,7 @@ pub enum TraceOutputRedefined { )] #[redefined(CallOutput)] pub struct CallOutputRedefined { - pub gas_used: U64Redefined, + pub gas_used: u64, pub output: BytesRedefined, } @@ -285,5 +306,5 @@ pub struct CallOutputRedefined { pub struct CreateOutputRedefined { pub address: AddressRedefined, pub code: BytesRedefined, - pub gas_used: U64Redefined, + pub gas_used: u64, } diff --git a/crates/brontes-types/src/display/utils.rs b/crates/brontes-types/src/display/utils.rs index 1e3bb94a8d..9b0f1a3733 100644 --- a/crates/brontes-types/src/display/utils.rs +++ b/crates/brontes-types/src/display/utils.rs @@ -5,7 +5,7 @@ use colored::{ColoredString, Colorize}; use indoc::indoc; use itertools::Itertools; use prettytable::{Cell, Row, Table}; -use reth_primitives::B256; +use alloy_primitives::B256; use crate::{ mev::{ArbDetails, AtomicArbType, Bundle, BundleData, CexDex, OptimisticTrade}, diff --git a/crates/brontes-types/src/mev/backrun.rs b/crates/brontes-types/src/mev/backrun.rs index 6cfb484399..d68bdbc3b3 100644 --- a/crates/brontes-types/src/mev/backrun.rs +++ b/crates/brontes-types/src/mev/backrun.rs @@ -9,7 +9,7 @@ use ahash::HashSet; #[allow(unused)] use clickhouse::fixed_string::FixedString; use redefined::{self_convert_redefined, Redefined}; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/block.rs b/crates/brontes-types/src/mev/block.rs index f3d096c1dc..66c17bbbd7 100644 --- a/crates/brontes-types/src/mev/block.rs +++ b/crates/brontes-types/src/mev/block.rs @@ -3,13 +3,12 @@ use std::{ ops::Add, }; -use alloy_primitives::Address; +use alloy_primitives::{Address, B256}; #[allow(unused)] use clickhouse::{fixed_string::FixedString, row::*, Row}; use colored::Colorize; use indoc::indoc; use redefined::{self_convert_redefined, Redefined}; -use reth_primitives::B256; use rkyv::{Archive, Deserialize as rDeser, Serialize as rSer}; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/bundle/data.rs b/crates/brontes-types/src/mev/bundle/data.rs index bb19bd42b5..fe58bf6f92 100644 --- a/crates/brontes-types/src/mev/bundle/data.rs +++ b/crates/brontes-types/src/mev/bundle/data.rs @@ -1,9 +1,9 @@ use std::fmt::Debug; use ahash::HashSet; +use alloy_primitives::B256; use clickhouse::InsertRow; use redefined::Redefined; -use reth_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize, Serializer}; use strum::{Display, EnumIter}; diff --git a/crates/brontes-types/src/mev/bundle/header.rs b/crates/brontes-types/src/mev/bundle/header.rs index 3e6f373121..a87f5267f4 100644 --- a/crates/brontes-types/src/mev/bundle/header.rs +++ b/crates/brontes-types/src/mev/bundle/header.rs @@ -5,7 +5,7 @@ use clickhouse::{DbRow, Row}; use colored::Colorize; use itertools::Itertools; use redefined::Redefined; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/bundle/mod.rs b/crates/brontes-types/src/mev/bundle/mod.rs index bd9a207a3e..e992e9434c 100644 --- a/crates/brontes-types/src/mev/bundle/mod.rs +++ b/crates/brontes-types/src/mev/bundle/mod.rs @@ -10,7 +10,7 @@ pub use data::*; use dyn_clone::DynClone; pub use header::*; use redefined::{self_convert_redefined, Redefined}; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/cex_dex.rs b/crates/brontes-types/src/mev/cex_dex.rs index 933a38e8ec..1f204ee26f 100644 --- a/crates/brontes-types/src/mev/cex_dex.rs +++ b/crates/brontes-types/src/mev/cex_dex.rs @@ -9,7 +9,7 @@ use ahash::HashSet; use colored::Colorize; use malachite::Rational; use redefined::{self_convert_redefined, Redefined}; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde_with::serde_as; use strum::Display; diff --git a/crates/brontes-types/src/mev/cex_dex_quotes.rs b/crates/brontes-types/src/mev/cex_dex_quotes.rs index f957934cd5..43096180d2 100644 --- a/crates/brontes-types/src/mev/cex_dex_quotes.rs +++ b/crates/brontes-types/src/mev/cex_dex_quotes.rs @@ -7,7 +7,7 @@ use ::serde::{ }; use ahash::HashSet; use redefined::Redefined; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/classified_mev.rs b/crates/brontes-types/src/mev/classified_mev.rs index 5a94c37020..0bd2060067 100644 --- a/crates/brontes-types/src/mev/classified_mev.rs +++ b/crates/brontes-types/src/mev/classified_mev.rs @@ -5,7 +5,7 @@ use colored::Colorize; use dyn_clone::DynClone; use indoc::indoc; use redefined::{self_convert_redefined, RedefinedConvert}; -use reth_primitives::B256; +use alloy_primitives::B256; use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/jit.rs b/crates/brontes-types/src/mev/jit.rs index 5f16321f8e..e717f0487e 100644 --- a/crates/brontes-types/src/mev/jit.rs +++ b/crates/brontes-types/src/mev/jit.rs @@ -3,7 +3,7 @@ use std::fmt::Debug; use ahash::HashSet; use clickhouse::DbRow; use redefined::Redefined; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ ser::{SerializeStruct, Serializer}, diff --git a/crates/brontes-types/src/mev/jit_sandwich.rs b/crates/brontes-types/src/mev/jit_sandwich.rs index 3ee16ea533..41a572c3b4 100644 --- a/crates/brontes-types/src/mev/jit_sandwich.rs +++ b/crates/brontes-types/src/mev/jit_sandwich.rs @@ -5,7 +5,7 @@ use ahash::HashSet; #[allow(unused)] use clickhouse::row::*; use redefined::Redefined; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/liquidation.rs b/crates/brontes-types/src/mev/liquidation.rs index 33e2a35452..86f40a7074 100644 --- a/crates/brontes-types/src/mev/liquidation.rs +++ b/crates/brontes-types/src/mev/liquidation.rs @@ -3,10 +3,10 @@ use std::fmt::Debug; use ::clickhouse::DbRow; use ::serde::ser::{SerializeStruct, Serializer}; use ahash::HashSet; +use alloy_primitives::B256; #[allow(unused)] use clickhouse::fixed_string::FixedString; use redefined::Redefined; -use reth_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/sandwich.rs b/crates/brontes-types/src/mev/sandwich.rs index 73ad806926..ef3884efa0 100644 --- a/crates/brontes-types/src/mev/sandwich.rs +++ b/crates/brontes-types/src/mev/sandwich.rs @@ -3,9 +3,9 @@ use std::fmt::Debug; use ::clickhouse::DbRow; use ::serde::ser::{SerializeStruct, Serializer}; use ahash::HashSet; +use alloy_primitives::{Address, B256}; use malachite::Rational; use redefined::Redefined; -use reth_primitives::{Address, B256}; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/searcher_tx.rs b/crates/brontes-types/src/mev/searcher_tx.rs index 31c70043fe..62052eda52 100644 --- a/crates/brontes-types/src/mev/searcher_tx.rs +++ b/crates/brontes-types/src/mev/searcher_tx.rs @@ -4,7 +4,7 @@ use ::serde::ser::Serializer; use ahash::{HashSet, HashSetExt}; use clickhouse::DbRow; use redefined::Redefined; -use reth_primitives::B256; +use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/normalized_actions/aggregator.rs b/crates/brontes-types/src/normalized_actions/aggregator.rs index a8a4a1d88d..6e0c719b06 100644 --- a/crates/brontes-types/src/normalized_actions/aggregator.rs +++ b/crates/brontes-types/src/normalized_actions/aggregator.rs @@ -1,5 +1,5 @@ +use alloy_primitives::{Address, U256}; use clickhouse::Row; -use reth_primitives::{Address, U256}; use serde::{Deserialize, Serialize}; use super::accounting::{AddressDeltas, TokenAccounting}; diff --git a/crates/brontes-types/src/normalized_actions/flashloan.rs b/crates/brontes-types/src/normalized_actions/flashloan.rs index 0a36fb9c88..b27543f254 100644 --- a/crates/brontes-types/src/normalized_actions/flashloan.rs +++ b/crates/brontes-types/src/normalized_actions/flashloan.rs @@ -1,8 +1,8 @@ use std::fmt::Debug; +use alloy_primitives::{Address, U256}; use clickhouse::Row; use malachite::Rational; -use reth_primitives::{Address, U256}; use serde::{Deserialize, Serialize}; use super::accounting::{AddressDeltas, TokenAccounting}; diff --git a/crates/brontes-types/src/normalized_actions/lending.rs b/crates/brontes-types/src/normalized_actions/lending.rs index f32da49a4e..28826f5dcf 100644 --- a/crates/brontes-types/src/normalized_actions/lending.rs +++ b/crates/brontes-types/src/normalized_actions/lending.rs @@ -1,9 +1,8 @@ use std::fmt::Debug; -use alloy_primitives::U256; +use alloy_primitives::{Address, U256}; use clickhouse::Row; use malachite::Rational; -use reth_primitives::Address; use serde::{Deserialize, Serialize}; use crate::{db::token_info::TokenInfoWithAddress, FastHashMap, Protocol}; diff --git a/crates/brontes-types/src/normalized_actions/liquidation.rs b/crates/brontes-types/src/normalized_actions/liquidation.rs index 237bd7b2d0..910e38b2f8 100644 --- a/crates/brontes-types/src/normalized_actions/liquidation.rs +++ b/crates/brontes-types/src/normalized_actions/liquidation.rs @@ -1,11 +1,10 @@ use std::fmt::{self, Debug}; -use alloy_primitives::U256; +use alloy_primitives::{Address, U256}; use clickhouse::Row; use colored::Colorize; use malachite::Rational; use redefined::Redefined; -use reth_primitives::Address; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; diff --git a/crates/brontes-types/src/normalized_actions/liquidity.rs b/crates/brontes-types/src/normalized_actions/liquidity.rs index 3ce24777df..b8094a5fb6 100644 --- a/crates/brontes-types/src/normalized_actions/liquidity.rs +++ b/crates/brontes-types/src/normalized_actions/liquidity.rs @@ -1,12 +1,11 @@ use std::fmt::{self, Debug}; -use alloy_primitives::TxHash; +use alloy_primitives::{Address, TxHash}; use clickhouse::Row; use colored::Colorize; use itertools::Itertools; use malachite::Rational; use redefined::Redefined; -use reth_primitives::Address; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; diff --git a/crates/brontes-types/src/normalized_actions/mod.rs b/crates/brontes-types/src/normalized_actions/mod.rs index 8d94c85ab9..dfd3c05eba 100644 --- a/crates/brontes-types/src/normalized_actions/mod.rs +++ b/crates/brontes-types/src/normalized_actions/mod.rs @@ -18,6 +18,7 @@ use ::clickhouse::DbRow; use accounting::{AddressDeltas, TokenAccounting}; pub use aggregator::*; use alloy_primitives::{Address, Bytes, Log}; +use alloy_rpc_types_trace::parity::Action as TraceAction; pub use batch::*; use clickhouse::InsertRow; pub use eth_transfer::*; @@ -27,7 +28,6 @@ pub use liquidation::*; pub use liquidity::*; pub use multi_callframe::*; pub use pool::*; -use reth_rpc_types::trace::parity::Action as TraceAction; pub use self_destruct::*; pub use swaps::*; pub use transfer::*; @@ -327,10 +327,10 @@ impl Action { Action::Liquidation(c) => c.pool, Action::SelfDestruct(c) => c.get_refund_address(), Action::Unclassified(t) => match &t.trace.action { - reth_rpc_types::trace::parity::Action::Call(c) => c.to, - reth_rpc_types::trace::parity::Action::Create(_) => Address::ZERO, - reth_rpc_types::trace::parity::Action::Reward(_) => Address::ZERO, - reth_rpc_types::trace::parity::Action::Selfdestruct(s) => s.address, + alloy_rpc_types_trace::parity::Action::Call(c) => c.to, + alloy_rpc_types_trace::parity::Action::Create(_) => Address::ZERO, + alloy_rpc_types_trace::parity::Action::Reward(_) => Address::ZERO, + alloy_rpc_types_trace::parity::Action::Selfdestruct(s) => s.address, }, Action::EthTransfer(t) => t.to, Action::NewPool(p) => p.pool_address, @@ -353,10 +353,10 @@ impl Action { Action::Liquidation(c) => c.liquidator, Action::SelfDestruct(c) => c.get_address(), Action::Unclassified(t) => match &t.trace.action { - reth_rpc_types::trace::parity::Action::Call(c) => c.to, - reth_rpc_types::trace::parity::Action::Create(_) => Address::ZERO, - reth_rpc_types::trace::parity::Action::Reward(_) => Address::ZERO, - reth_rpc_types::trace::parity::Action::Selfdestruct(s) => s.address, + alloy_rpc_types_trace::parity::Action::Call(c) => c.to, + alloy_rpc_types_trace::parity::Action::Create(_) => Address::ZERO, + alloy_rpc_types_trace::parity::Action::Reward(_) => Address::ZERO, + alloy_rpc_types_trace::parity::Action::Selfdestruct(s) => s.address, }, Action::EthTransfer(t) => t.from, Action::Revert => unreachable!(), diff --git a/crates/brontes-types/src/normalized_actions/self_destruct.rs b/crates/brontes-types/src/normalized_actions/self_destruct.rs index 068f6227d4..693efa18d9 100644 --- a/crates/brontes-types/src/normalized_actions/self_destruct.rs +++ b/crates/brontes-types/src/normalized_actions/self_destruct.rs @@ -1,8 +1,8 @@ use std::fmt::Debug; +use alloy_primitives::{Address, U256}; +use alloy_rpc_types_trace::parity::SelfdestructAction; use clickhouse::Row; -use reth_primitives::{Address, U256}; -use reth_rpc_types::trace::parity::SelfdestructAction; use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Clone, Row, PartialEq, Eq, Deserialize)] diff --git a/crates/brontes-types/src/normalized_actions/swaps.rs b/crates/brontes-types/src/normalized_actions/swaps.rs index a0f4ce3e6d..0bc183669f 100644 --- a/crates/brontes-types/src/normalized_actions/swaps.rs +++ b/crates/brontes-types/src/normalized_actions/swaps.rs @@ -4,13 +4,12 @@ use std::{ ops::{Deref, DerefMut}, }; -use alloy_primitives::{TxHash, U256}; +use alloy_primitives::{Address, TxHash, U256}; use clickhouse::Row; use colored::Colorize; use itertools::Itertools; use malachite::{num::basic::traits::Zero, Rational}; use redefined::Redefined; -use reth_primitives::Address; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; diff --git a/crates/brontes-types/src/normalized_actions/transfer.rs b/crates/brontes-types/src/normalized_actions/transfer.rs index 1a1243f0d5..b246a9ddde 100644 --- a/crates/brontes-types/src/normalized_actions/transfer.rs +++ b/crates/brontes-types/src/normalized_actions/transfer.rs @@ -1,9 +1,9 @@ use std::fmt::Debug; +use alloy_primitives::{Address, U256}; use clickhouse::Row; use malachite::Rational; use redefined::Redefined; -use reth_primitives::{Address, U256}; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; diff --git a/crates/brontes-types/src/pair.rs b/crates/brontes-types/src/pair.rs index 2bd3eef4fa..600c9d52ab 100644 --- a/crates/brontes-types/src/pair.rs +++ b/crates/brontes-types/src/pair.rs @@ -110,9 +110,9 @@ impl Encode for Pair { } impl Decode for Pair { - fn decode>(value: B) -> Result { - let address0 = &value.as_ref()[0..20]; - let address1 = &value.as_ref()[20..]; + fn decode(value: &[u8]) -> Result { + let address0 = &value[0..20]; + let address1 = &value[20..]; Ok(Pair(Address::from_slice(address0), Address::from_slice(address1))) } diff --git a/crates/brontes-types/src/queries.rs b/crates/brontes-types/src/queries.rs index 9d3281dad9..bb6da0fa59 100644 --- a/crates/brontes-types/src/queries.rs +++ b/crates/brontes-types/src/queries.rs @@ -1,8 +1,8 @@ use std::sync::Arc; -use alloy_primitives::Address; +use alloy_primitives::{Address, TxKind}; +use alloy_rpc_types::{request::TransactionInput, TransactionRequest}; use alloy_sol_types::SolCall; -use reth_rpc_types::{request::TransactionInput, TransactionRequest}; use crate::traits::TracingProvider; @@ -14,7 +14,7 @@ pub async fn make_call_request( ) -> eyre::Result { let encoded = call.abi_encode(); let req = TransactionRequest { - to: Some(to), + to: Some(TxKind::Call(to)), input: TransactionInput::new(encoded.into()), ..Default::default() }; diff --git a/crates/brontes-types/src/serde_utils.rs b/crates/brontes-types/src/serde_utils.rs index 9d10c9c32f..e580267b61 100644 --- a/crates/brontes-types/src/serde_utils.rs +++ b/crates/brontes-types/src/serde_utils.rs @@ -282,7 +282,7 @@ pub mod vec_bls_pub_key { use std::{fmt::Debug, str::FromStr}; - use reth_rpc_types::beacon::BlsPublicKey; + use alloy_rpc_types_beacon::BlsPublicKey; use serde::{ de::{Deserialize, Deserializer}, ser::{Serialize, Serializer}, diff --git a/crates/brontes-types/src/structured_trace.rs b/crates/brontes-types/src/structured_trace.rs index 5ccc6ea11a..eeaaf42b54 100644 --- a/crates/brontes-types/src/structured_trace.rs +++ b/crates/brontes-types/src/structured_trace.rs @@ -1,11 +1,10 @@ use std::str::FromStr; -use alloy_primitives::{Address, Log, U256}; +use alloy_primitives::{Address, Bytes, Log, B256, U256}; +use alloy_rpc_types_trace::parity::*; use clickhouse::DbRow; use itertools::Itertools; use redefined::self_convert_redefined; -use reth_primitives::{Bytes, B256}; -use reth_rpc_types::trace::parity::*; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use serde_with::serde_as; @@ -94,7 +93,7 @@ impl TraceActions for TransactionTraceWithLogs { return Bytes::default(); }; match res { - reth_rpc_types::trace::parity::TraceOutput::Call(bytes) => bytes.output.clone(), + alloy_rpc_types_trace::parity::TraceOutput::Call(bytes) => bytes.output.clone(), _ => Bytes::default(), } } diff --git a/crates/brontes-types/src/traits.rs b/crates/brontes-types/src/traits.rs index 40f34415ce..b1a04737de 100644 --- a/crates/brontes-types/src/traits.rs +++ b/crates/brontes-types/src/traits.rs @@ -1,11 +1,9 @@ -use alloy_primitives::TxHash; -use alloy_rpc_types::AnyReceiptEnvelope; -use reth_primitives::{ - Address, BlockId, BlockNumber, BlockNumberOrTag, Bytecode, Bytes, Header, StorageValue, B256, -}; -use reth_rpc_types::{ - state::StateOverride, BlockOverrides, Log, TransactionReceipt, TransactionRequest, +use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; +use alloy_rpc_types::{ + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Header, Log, ReceiptEnvelope, + TransactionRequest, }; +use reth_primitives::Bytecode; use crate::structured_trace::TxTrace; @@ -46,7 +44,7 @@ pub trait TracingProvider: Send + Sync + 'static { async fn block_receipts( &self, number: BlockNumberOrTag, - ) -> eyre::Result>>>>; + ) -> eyre::Result>>>; async fn header_by_number(&self, number: BlockNumber) -> eyre::Result>; diff --git a/crates/brontes-types/src/tree/mod.rs b/crates/brontes-types/src/tree/mod.rs index 5e2250ca24..a3caefb9ad 100644 --- a/crates/brontes-types/src/tree/mod.rs +++ b/crates/brontes-types/src/tree/mod.rs @@ -1,7 +1,8 @@ use std::{panic::AssertUnwindSafe, sync::Arc}; +use alloy_primitives::B256; +use alloy_rpc_types::Header; use itertools::Itertools; -use reth_primitives::{Header, B256}; use statrs::statistics::Statistics; use tracing::{error, info, span, Level}; diff --git a/crates/brontes-types/src/tree/node.rs b/crates/brontes-types/src/tree/node.rs index 485a8b1c3b..b62aa3b6fd 100644 --- a/crates/brontes-types/src/tree/node.rs +++ b/crates/brontes-types/src/tree/node.rs @@ -1,5 +1,5 @@ +use alloy_primitives::Address; use itertools::Itertools; -use reth_primitives::Address; use tracing::{error, warn}; use super::{types::NodeWithDataRef, NodeData}; diff --git a/crates/brontes-types/src/tree/root.rs b/crates/brontes-types/src/tree/root.rs index 0da53bfe24..a327420069 100644 --- a/crates/brontes-types/src/tree/root.rs +++ b/crates/brontes-types/src/tree/root.rs @@ -1,11 +1,10 @@ use std::{fmt, fmt::Display}; -use alloy_primitives::TxHash; +use alloy_primitives::{Address, TxHash, B256}; use clickhouse::Row; use colored::Colorize; use itertools::Itertools; use redefined::self_convert_redefined; -use reth_primitives::{Address, B256}; use serde::{Deserialize, Serialize}; use super::Node; diff --git a/crates/reth-tracing-ext/Cargo.toml b/crates/reth-tracing-ext/Cargo.toml index 3ec9477357..919c24891e 100644 --- a/crates/reth-tracing-ext/Cargo.toml +++ b/crates/reth-tracing-ext/Cargo.toml @@ -8,31 +8,32 @@ edition = "2021" [dependencies] # Reth reth-node-ethereum.workspace = true +reth-node-types.workspace = true async-trait.workspace = true reth-tasks.workspace = true reth-rpc.workspace = true -reth-rpc-types.workspace = true reth-rpc-api.workspace = true +reth-chainspec.workspace = true reth-provider.workspace = true reth-transaction-pool.workspace = true reth-network-api.workspace = true reth-primitives.workspace = true reth-db.workspace = true -reth-blockchain-tree.workspace = true -reth-beacon-consensus.workspace = true reth-revm.workspace = true -reth-interfaces.workspace = true alloy-primitives.workspace = true alloy-sol-types.workspace = true -alloy-rpc-types-trace= { git = "https://github.com/alloy-rs/alloy", rev = "39b8695" } -alloy-rpc-types = { workspace = true, features = ["jsonrpsee-types"] } +alloy-rpc-types-trace.workspace = true +alloy-rpc-types.workspace = true futures.workspace = true +reth-rpc-eth-types.workspace = true +reth-rpc-server-types.workspace = true brontes-types.workspace = true tracing.workspace = true num_cpus.workspace = true revm-primitives.workspace = true -revm-inspectors.workspace = true +revm-inspector.workspace = true +rayon.workspace = true bitflags = "2.4" revm.workspace = true @@ -58,5 +59,3 @@ local-clickhouse = [ "brontes-core/local-clickhouse", "brontes-types/local-clickhouse", ] - - diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index 7537398087..d3581cc42b 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -4,25 +4,25 @@ use std::{ sync::Arc, }; +use alloy_rpc_types::BlockId; use brontes_types::{structured_trace::TxTrace, BrontesTaskExecutor}; -use reth_beacon_consensus::BeaconConsensus; -use reth_blockchain_tree::{ - externals::TreeExternals, BlockchainTree, BlockchainTreeConfig, ShareableBlockchainTree, -}; +use rayon::ThreadPoolBuilder; +use reth_chainspec::MAINNET; use reth_db::{mdbx::DatabaseArguments, DatabaseEnv}; use reth_network_api::noop::NoopNetwork; -use reth_node_ethereum::EthEvmConfig; -use reth_primitives::{BlockId, PruneModes, MAINNET}; -use reth_provider::{providers::BlockchainProvider, ProviderFactory}; -use reth_revm::{inspectors::GasInspector, EvmProcessorFactory}; -use reth_rpc::{ - eth::{ - cache::{EthStateCache, EthStateCacheConfig}, - error::EthResult, - gas_oracle::{GasPriceOracle, GasPriceOracleConfig}, - EthTransactions, FeeHistoryCache, FeeHistoryCacheConfig, RPC_DEFAULT_GAS_CAP, - }, - EthApi, TraceApi, +use reth_node_ethereum::{BasicBlockExecutorProvider, EthEvmConfig, EthereumNode}; +use reth_node_types::NodeTypesWithDBAdapter; +use reth_provider::{ + providers::{BlockchainProvider, StaticFileProvider}, + ProviderFactory, +}; +use reth_rpc::{DebugApi, EthApi, EthFilter, TraceApi}; +use reth_rpc_eth_types::{ + EthResult, EthStateCache, EthStateCacheConfig, FeeHistoryCache, FeeHistoryCacheConfig, GasCap, + GasPriceOracle, GasPriceOracleConfig, +}; +use reth_rpc_server_types::constants::{ + DEFAULT_ETH_PROOF_WINDOW, DEFAULT_MAX_SIMULATE_BLOCKS, DEFAULT_PROOF_PERMITS, }; use reth_tasks::pool::{BlockingTaskGuard, BlockingTaskPool}; use reth_tracer::{ @@ -32,29 +32,34 @@ use reth_tracer::{ }; use reth_transaction_pool::{ blobstore::NoopBlobStore, validate::EthTransactionValidatorBuilder, CoinbaseTipOrdering, - EthPooledTransaction, EthTransactionValidator, Pool, TransactionValidationTaskExecutor, + EthPooledTransaction, EthTransactionValidator, Pool, PoolConfig, + TransactionValidationTaskExecutor, }; +use revm::inspector::inspectors::GasInspector; + mod provider; pub mod reth_tracer; -pub type Provider = BlockchainProvider< - Arc, - ShareableBlockchainTree, EvmProcessorFactory>, ->; - -pub type RethApi = EthApi; - +pub type RethProvider = BlockchainProvider>>; +pub type RethProviderFactory = + ProviderFactory>>; +pub type RethDbProvider = + BlockchainProvider>>; +pub type RethApi = EthApi; +pub type RethFilter = EthFilter; +pub type RethTrace = TraceApi; +pub type RethDebug = DebugApi>; pub type RethTxPool = Pool< - TransactionValidationTaskExecutor>, + TransactionValidationTaskExecutor>, CoinbaseTipOrdering, NoopBlobStore, >; #[derive(Debug, Clone)] pub struct TracingClient { - pub api: EthApi, - pub trace: TraceApi, - pub provider_factory: ProviderFactory>, + pub api: RethApi, + pub trace: RethTrace, + pub provider_factory: RethProviderFactory, } impl TracingClient { pub fn new_with_db( @@ -64,33 +69,28 @@ impl TracingClient { static_files_path: PathBuf, ) -> Self { let chain = MAINNET.clone(); - let provider_factory = - ProviderFactory::new(Arc::clone(&db), Arc::clone(&chain), static_files_path) - .expect("failed to start provider factory"); - - let tree_externals = TreeExternals::new( - provider_factory.clone(), - Arc::new(BeaconConsensus::new(Arc::clone(&chain))), - EvmProcessorFactory::new(chain.clone(), EthEvmConfig::default()), - ); + let static_file_provider = StaticFileProvider::read_only(static_files_path.clone(), true)?; - let tree_config = BlockchainTreeConfig::default(); + let provider_factory: ProviderFactory< + NodeTypesWithDBAdapter>, + > = ProviderFactory::new(db.clone(), chain.clone(), static_file_provider); - let blockchain_tree = ShareableBlockchainTree::new( - BlockchainTree::new(tree_externals, tree_config, Some(PruneModes::none())).unwrap(), - ); - - let provider = BlockchainProvider::new(provider_factory.clone(), blockchain_tree).unwrap(); + let provider = BlockchainProvider::new(provider_factory.clone()).unwrap(); let state_cache = EthStateCache::spawn_with( provider.clone(), EthStateCacheConfig::default(), task_executor.clone(), - EthEvmConfig::default(), ); - let transaction_validator = EthTransactionValidatorBuilder::new(chain.clone()) - .build_with_tasks(provider.clone(), task_executor.clone(), NoopBlobStore::default()); + let transaction_validator = EthTransactionValidatorBuilder::new(provider.clone()) + .build_with_tasks(task_executor.clone(), NoopBlobStore::default()); + + let tx_pool = Pool::eth_pool( + transaction_validator.clone(), + NoopBlobStore::default(), + PoolConfig::default(), + ); let tx_pool = reth_transaction_pool::Pool::eth_pool( transaction_validator, @@ -98,20 +98,7 @@ impl TracingClient { Default::default(), ); - let blocking = BlockingTaskPool::build().unwrap(); - let eth_state_config = EthStateCacheConfig::default(); - let fee_history = FeeHistoryCache::new( - EthStateCache::spawn_with( - provider.clone(), - eth_state_config, - task_executor.clone(), - EthEvmConfig::default(), - ), - FeeHistoryCacheConfig::default(), - ); - // blocking task pool - // fee history cache - let api = EthApi::with_spawner( + let api = EthApi::new( provider.clone(), tx_pool.clone(), NoopNetwork::default(), @@ -121,16 +108,17 @@ impl TracingClient { GasPriceOracleConfig::default(), state_cache.clone(), ), - RPC_DEFAULT_GAS_CAP.into(), - Box::new(task_executor.clone()), - blocking, - fee_history, - EthEvmConfig::default(), - None, + GasCap::default(), + DEFAULT_MAX_SIMULATE_BLOCKS, + DEFAULT_ETH_PROOF_WINDOW, + BlockingTaskPool::new(ThreadPoolBuilder::new().build()?), + FeeHistoryCache::new(FeeHistoryCacheConfig::default()), + EthEvmConfig::new(chain.clone()), + DEFAULT_PROOF_PERMITS, ); let tracing_call_guard = BlockingTaskGuard::new(max_tasks as usize); - let trace = TraceApi::new(provider, api.clone(), tracing_call_guard); + let trace = TraceApi::new(api.clone(), tracing_call_guard); Self { api, trace, provider_factory } } diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index 43c67cc630..304ac8fd7e 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -1,28 +1,23 @@ use std::cmp::min; -use alloy_rpc_types::AnyReceiptEnvelope; +use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256, U256}; +use alloy_rpc_types::{ + state::StateOverride, AnyReceiptEnvelope, BlockId, BlockNumberOrTag, BlockOverrides, Header, + Log, ReceiptEnvelope, TransactionReceipt, TransactionRequest, +}; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; use eyre::eyre; -use reth_primitives::{ - Address, BlockId, BlockNumber, BlockNumberOrTag, Bytecode, Bytes, Header, StorageValue, TxHash, - B256, U256, -}; +use reth_primitives::Bytecode; use reth_provider::{BlockIdReader, BlockNumReader, HeaderProvider}; use reth_revm::{database::StateProviderDatabase, db::CacheDB}; -use reth_rpc::eth::{ - error::{EthApiError, EthResult, RevertError, RpcInvalidTransactionError}, - EthTransactions, -}; use reth_rpc_api::EthApiServer; -use reth_rpc_types::{ - state::StateOverride, BlockOverrides, Log, TransactionReceipt, TransactionRequest, -}; -use revm::{ - primitives::{ - db::DatabaseRef, BlockEnv, CfgEnvWithHandlerCfg, EnvWithHandlerCfg, TransactTo, TxEnv, - }, - Database, -}; +// use reth_rpc_eth_types::{ +// AnyReceiptEnvelope, BlockId, BlockNumberOrTag, BlockOverrides, +// EthApiError, EthResult, EthTransactions, Log, RevertError, RpcInvalidTransactionError, +// TransactionReceipt, TransactionRequest, +// }; +use reth_rpc_eth_types::{EthApiError, EthResult, RevertError, RpcInvalidTransactionError}; +use revm::Database; use revm_primitives::ExecutionResult; use crate::TracingClient; @@ -91,7 +86,7 @@ impl TracingProvider for TracingClient { async fn block_receipts( &self, number: BlockNumberOrTag, - ) -> eyre::Result>>>> { + ) -> eyre::Result>>> { Ok(self .api .block_receipts(BlockId::Number(number)) @@ -141,7 +136,7 @@ impl TracingProvider for TracingClient { None => self.provider_factory.latest(), }?; - let bytecode = provider.account_code(address)?; + let bytecode = provider.account_code(&address)?; Ok(bytecode) } diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index f037ad7858..d49c3129e6 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -1,20 +1,21 @@ use std::fmt::Debug; -use alloy_primitives::{Address, Log, B256, U256}; +use alloy_primitives::{Address, Bytes, B256, U256}; +use alloy_rpc_types::TransactionInfo; +use alloy_rpc_types_trace::parity::*; use arena::{CallTraceArena, PushTraceKind}; use brontes_types::structured_trace::{TransactionTraceWithLogs, TxTrace}; use config::TracingInspectorConfig; -use reth_primitives::{Bytes, U64}; -use reth_rpc_types::{trace::parity::*, TransactionInfo}; use revm::{ - inspectors::GasInspector, + bytecode::opcode::{self, OpCode}, interpreter::{ - opcode, CallInputs, CallOutcome, CallScheme, CreateInputs, CreateOutcome, - InstructionResult, Interpreter, InterpreterResult, OpCode, + CallInputs, CallOutcome, CallScheme, CreateInputs, CreateOutcome, InstructionResult, + Interpreter, InterpreterResult, }, - primitives::{ExecutionResult, SpecId}, - Database, EvmContext, Inspector, JournalEntry, + Context, Database, Inspector, JournalEntry, }; +use revm_inspector::inspectors::GasInspector; +use revm_primitives::{Log, SpecId}; use types::{ CallKind, CallTrace, CallTraceNode, CallTraceStep, LogCallOrder, RecordedMemory, StorageChange, StorageChangeReason, @@ -115,7 +116,7 @@ impl BrontesTracingInspector { #[inline] fn is_precompile_call( &self, - context: &EvmContext, + context: &Context, to: &Address, value: U256, ) -> bool { @@ -228,7 +229,7 @@ impl BrontesTracingInspector { /// This expects an existing trace [Self::start_trace_on_call] fn fill_trace_on_call_end( &mut self, - context: &mut EvmContext, + context: &mut DB, result: InterpreterResult, created_address: Option
, ) { @@ -421,7 +422,11 @@ impl BrontesTracingInspector { let logs = node .logs .iter() - .map(|log| Log { address: node.trace.address, data: log.clone() }) + .map(|log| Log { + address: node.trace.address, + data: log.clone(), + topics: log.topics(), + }) .collect::>(); let msg_sender = if let Action::Call(c) = &trace.action { @@ -550,35 +555,44 @@ impl BrontesTracingInspector { pub(crate) fn parity_action(&self, node: &CallTraceNode) -> Action { match node.trace.kind { - CallKind::Call | CallKind::StaticCall | CallKind::CallCode | CallKind::DelegateCall => { - Action::Call(CallAction { - from: node.trace.caller, - to: node.trace.address, - value: node.trace.value, - gas: U64::from(node.trace.gas_limit), - input: node.trace.data.clone(), - call_type: node.trace.kind.into(), - }) - } + CallKind::Call + | CallKind::StaticCall + | CallKind::CallCode + | CallKind::DelegateCall + | CallKind::ExtCall + | CallKind::ExtStaticCall + | CallKind::ExtDelegateCall => Action::Call(CallAction { + from: node.trace.caller, + to: node.trace.address, + value: node.trace.value, + gas: node.trace.gas_limit, + input: node.trace.data.clone(), + call_type: node.trace.kind.into(), + }), CallKind::Create | CallKind::Create2 => Action::Create(CreateAction { - from: node.trace.caller, - value: node.trace.value, - gas: U64::from(node.trace.gas_limit), - init: node.trace.data.clone(), + from: node.trace.caller, + value: node.trace.value, + gas: node.trace.gas_limit, + init: node.trace.data.clone(), + creation_method: CreationMethod::default(), }), } } pub(crate) fn parity_trace_output(&self, node: &CallTraceNode) -> TraceOutput { match node.trace.kind { - CallKind::Call | CallKind::StaticCall | CallKind::CallCode | CallKind::DelegateCall => { - TraceOutput::Call(CallOutput { - gas_used: U64::from(node.trace.gas_used), - output: node.trace.output.clone(), - }) - } + CallKind::Call + | CallKind::StaticCall + | CallKind::CallCode + | CallKind::DelegateCall + | CallKind::ExtCall + | CallKind::ExtStaticCall + | CallKind::ExtDelegateCall => TraceOutput::Call(CallOutput { + gas_used: node.trace.gas_used, + output: node.trace.output.clone(), + }), CallKind::Create | CallKind::Create2 => TraceOutput::Create(CreateOutput { - gas_used: U64::from(node.trace.gas_used), + gas_used: node.trace.gas_used, code: node.trace.output.clone(), address: node.trace.address, }), @@ -617,30 +631,30 @@ impl BrontesTracingInspector { } } -impl Inspector for BrontesTracingInspector +impl Inspector> for BrontesTracingInspector where DB: Database, { #[inline] fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { - self.gas_inspector.initialize_interp(interp, context) + self.gas_inspector.initialize_interp(interp, context.tx.g) } - fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step(&mut self, interp: &mut Interpreter, context: &mut DB) { self.gas_inspector.step(interp, context); if self.config.record_steps { self.start_step(interp, context); } } - fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step_end(&mut self, interp: &mut Interpreter, context: &mut Context) { self.gas_inspector.step_end(interp, context); if self.config.record_steps { self.fill_step_on_step_end(interp, context); } } - fn log(&mut self, context: &mut EvmContext, log: &Log) { + fn log(&mut self, interp: &mut Interpreter, context: &mut DB, log: &mut Log) { self.gas_inspector.log(context, log); let trace_idx = self.last_trace_idx(); @@ -652,11 +666,7 @@ where } } - fn call( - &mut self, - context: &mut EvmContext, - inputs: &mut CallInputs, - ) -> Option { + fn call(&mut self, context: &mut DB, inputs: &mut CallInputs) -> Option { self.gas_inspector.call(context, inputs); // determine correct `from` and `to` based on the call scheme @@ -699,24 +709,13 @@ where None } - fn call_end( - &mut self, - context: &mut EvmContext, - inputs: &CallInputs, - outcome: CallOutcome, - ) -> CallOutcome { - let outcome = self.gas_inspector.call_end(context, inputs, outcome); + fn call_end(&mut self, context: &mut DB, inputs: &CallInputs, outcome: &mut CallOutcome) { + self.gas_inspector.call_end(outcome); self.fill_trace_on_call_end(context, outcome.result.clone(), None); - - outcome } - fn create( - &mut self, - context: &mut EvmContext, - inputs: &mut CreateInputs, - ) -> Option { + fn create(&mut self, context: &mut DB, inputs: &mut CreateInputs) -> Option { self.gas_inspector.create(context, inputs); let _ = context.load_account(inputs.caller); @@ -742,11 +741,11 @@ where /// result of the create. fn create_end( &mut self, - context: &mut EvmContext, + context: &mut DB, inputs: &CreateInputs, - outcome: CreateOutcome, + outcome: &mut CreateOutcome, ) -> CreateOutcome { - let outcome = self.gas_inspector.create_end(context, inputs, outcome); + self.gas_inspector.create_end(&mut outcome); self.fill_trace_on_call_end(context, outcome.result.clone(), outcome.address); @@ -774,6 +773,9 @@ impl From for CallType { CallKind::CallCode => CallType::CallCode, CallKind::DelegateCall => CallType::DelegateCall, CallKind::Create | CallKind::Create2 => CallType::None, + CallKind::ExtCall => CallType::Call, + CallKind::ExtStaticCall => CallType::StaticCall, + CallKind::ExtDelegateCall => CallType::DelegateCall, } } } diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index b350835926..ae718eb280 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -5,8 +5,8 @@ use alloy_primitives::{Address, Bytes, LogData, U256, U64}; use alloy_rpc_types_trace::{ geth::{CallFrame, CallLogFrame, GethDefaultTracingOptions, StructLog}, parity::{ - Action, ActionType, CallAction, CallOutput, CreateAction, CreateOutput, SelfdestructAction, - TraceOutput, TransactionTrace, + Action, ActionType, CallAction, CallOutput, CreateAction, CreateOutput, CreationMethod, + SelfdestructAction, TraceOutput, TransactionTrace, }, }; use revm::interpreter::{opcode, CallContext, CallScheme, CreateScheme, InstructionResult, OpCode}; @@ -216,12 +216,12 @@ impl CallTraceNode { match self.kind() { CallKind::Call | CallKind::StaticCall | CallKind::CallCode | CallKind::DelegateCall => { TraceOutput::Call(CallOutput { - gas_used: U64::from(self.trace.gas_used), + gas_used: self.trace.gas_used, output: self.trace.output.clone(), }) } CallKind::Create | CallKind::Create2 => TraceOutput::Create(CreateOutput { - gas_used: U64::from(self.trace.gas_used), + gas_used: self.trace.gas_used, code: self.trace.output.clone(), address: self.trace.address, }), @@ -282,16 +282,17 @@ impl CallTraceNode { from: self.trace.caller, to: self.trace.address, value: self.trace.value, - gas: U64::from(self.trace.gas_limit), + gas: self.trace.gas_limit, input: self.trace.data.clone(), call_type: self.kind().into(), }) } CallKind::Create | CallKind::Create2 => Action::Create(CreateAction { - from: self.trace.caller, - value: self.trace.value, - gas: U64::from(self.trace.gas_limit), - init: self.trace.data.clone(), + from: self.trace.caller, + value: self.trace.value, + gas: self.trace.gas_limit, + init: self.trace.data.clone(), + creation_method: CreationMethod::default(), }), } } @@ -330,10 +331,12 @@ impl CallTraceNode { call_frame.logs = self .logs .iter() - .map(|log| CallLogFrame { - address: Some(self.execution_address()), - topics: Some(log.topics().to_vec()), - data: Some(log.data.clone()), + .enumerate() + .map(|(i, log)| CallLogFrame { + address: Some(self.execution_address()), + topics: Some(log.topics().to_vec()), + data: Some(log.data.clone()), + position: Some(i as u64), }) .collect(); } @@ -359,6 +362,9 @@ pub enum CallKind { Create, /// Represents a contract creation operation using the CREATE2 opcode. Create2, + ExtCall, + ExtStaticCall, + ExtDelegateCall, } impl CallKind { @@ -413,6 +419,9 @@ impl From for CallKind { CallScheme::StaticCall => Self::StaticCall, CallScheme::CallCode => Self::CallCode, CallScheme::DelegateCall => Self::DelegateCall, + CallScheme::ExtCall => Self::ExtCall, + CallScheme::ExtStaticCall => Self::ExtStaticCall, + CallScheme::ExtDelegateCall => Self::ExtDelegateCall, } } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 3656b7a34b..ed14199ee5 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2024-08-10" +channel = "nightly-2025-02-26" components = ["rustfmt"] targets = ["aarch64-apple-darwin", "x86_64-unknown-linux-gnu"] From 84c7f7d9cec9677b8c7321b593be6681e97e0152 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Thu, 13 Mar 2025 19:00:44 -0500 Subject: [PATCH 02/93] wip --- Cargo.lock | 3722 +++++++++-------- Cargo.toml | 94 +- crates/brontes-database/brontes-db/Cargo.toml | 2 +- crates/reth-tracing-ext/Cargo.toml | 5 +- crates/reth-tracing-ext/src/lib.rs | 36 +- crates/reth-tracing-ext/src/provider.rs | 45 +- .../reth-tracing-ext/src/reth_tracer/arena.rs | 67 +- .../src/reth_tracer/config.rs | 302 +- .../src/reth_tracer/inspector.rs | 370 +- .../reth-tracing-ext/src/reth_tracer/types.rs | 542 ++- .../reth-tracing-ext/src/reth_tracer/utils.rs | 152 +- 11 files changed, 3062 insertions(+), 2275 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9cd6ab9bec..2c0da4144d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,18 @@ version = 4 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "aead" @@ -101,17 +101,17 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "996564c1782285d4e0299c29b318bc74f24b1d7f456cef3e040810b061ee3256" +checksum = "963fc7ac17f25d92c237448632330eb87b39ba8aa0209d4b517069a05b57db62" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "num_enum", "serde", @@ -120,31 +120,36 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e32ef5c74bbeb1733c37f4ac7f866f8c8af208b7b4265e21af609dcac5bd5e" +checksum = "a84efb7b8ddb9223346bfad9d8094e1a100c254037a3b5913243bfa8e04be266" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde", "alloy-trie", "auto_impl", "c-kzg", - "derive_more 1.0.0", + "derive_more 2.0.1", + "either", + "k256", + "once_cell", + "rand 0.8.5", "serde", "serde_with", + "thiserror 2.0.12", ] [[package]] name = "alloy-consensus-any" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" +checksum = "fafded0c1ff8f0275c4a484239058e1c01c0c2589f8a16e03669ef7094a06f9b" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde", "serde", @@ -164,25 +169,25 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.6.18", + "winnow 0.6.26", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e08c581811006021970bf07f2ecf3213f6237c125f7fd99607004b23627b61" +checksum = "7078bef2bc353c1d1a97b44981d0186198be320038fbfbb0b37d1dd822a555d3" dependencies = [ - "alloy-json-abi 0.8.22", - "alloy-primitives 0.8.22", - "alloy-sol-type-parser 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-json-abi 0.8.23", + "alloy-primitives 0.8.23", + "alloy-sol-type-parser 0.8.23", + "alloy-sol-types 0.8.23", "const-hex", "derive_more 2.0.1", "itoa", "serde", "serde_json", - "winnow 0.7.3", + "winnow 0.7.4", ] [[package]] @@ -191,7 +196,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "crc", "serde", @@ -204,7 +209,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "serde", ] @@ -215,7 +220,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "k256", "serde", @@ -225,19 +230,20 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5591581ca2ab0b3e7226a4047f9a1bfcf431da1d0cce3752fda609fea3c27e37" +checksum = "5f4bffedaddc627520eabdcbfe27a2d2c2f716e15295e2ed1010df3feae67040" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde", "auto_impl", "c-kzg", - "derive_more 1.0.0", + "derive_more 2.0.1", + "either", "ethereum_ssz", "ethereum_ssz_derive", "once_cell", @@ -247,27 +253,49 @@ dependencies = [ [[package]] name = "alloy-evm" -version = "0.1.0" -source = "git+https://github.com/alloy-rs/evm?rev=04fa394#04fa3947c5694c2d15956bb18a31834b95e0e975" +version = "0.1.0-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68af08d4a6c5b66b45e80e9811b9fa3dccd3cc08465246107b98fcf87afbf020" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.22", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "alloy-eips", + "alloy-hardforks", + "alloy-primitives 0.8.23", + "alloy-sol-types 0.8.23", + "auto_impl", + "derive_more 1.0.0", + "op-revm", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 2.0.12", ] [[package]] name = "alloy-genesis" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cded3a2d4bd7173f696458c5d4c98c18a628dfcc9f194385e80a486e412e2e0" +checksum = "96b11774716152a5204aff0e86a8c841df499ea81464e2b1f82b3f72d6a2ef32" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-serde", "alloy-trie", "serde", ] +[[package]] +name = "alloy-hardforks" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac52fcdca02c101b5e651af856702dd35b1af31cb00a87350f562ada636b5033" +dependencies = [ + "alloy-chains", + "alloy-eip2124", + "alloy-primitives 0.8.23", + "auto_impl", + "dyn-clone", + "serde", +] + [[package]] name = "alloy-json-abi" version = "0.7.7" @@ -282,24 +310,24 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125601804507fef5ae7debcbf800906b12741f19800c1c05b953d0f1b990131a" +checksum = "ec80745c33797e8baf547a8cfeb850e60d837fe9b9e67b3f579c1fcd26f527e9" dependencies = [ - "alloy-primitives 0.8.22", - "alloy-sol-type-parser 0.8.22", + "alloy-primitives 0.8.23", + "alloy-sol-type-parser 0.8.23", "serde", "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" +checksum = "6929e607b0a56803c69c68adc6e8aae1644c94e37ea458aa2d0713fc77490e70" dependencies = [ - "alloy-primitives 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-primitives 0.8.23", + "alloy-sol-types 0.8.23", "serde", "serde_json", "thiserror 2.0.12", @@ -308,23 +336,24 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" +checksum = "c2b14524c3605ed5ee173b966333089474415416a8cfd80ceb003c18fd6d1736" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 0.8.22", + "alloy-sol-types 0.8.23", "async-trait", "auto_impl", + "derive_more 2.0.1", "futures-utils-wasm", "serde", "serde_json", @@ -333,34 +362,17 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" +checksum = "4c06932646544ea341f0fda48d2c0fe4fda75bc132379cb84019cdfb6ddcb0fb" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-serde", "serde", ] -[[package]] -name = "alloy-primitives" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 0.99.18", - "hex-literal", - "itoa", - "ruint", - "tiny-keccak", -] - [[package]] name = "alloy-primitives" version = "0.7.7" @@ -371,7 +383,7 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 0.99.18", + "derive_more 0.99.19", "hex-literal", "itoa", "k256", @@ -385,9 +397,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c66bb6715b7499ea755bde4c96223ae8eb74e05c014ab38b9db602879ffb825" +checksum = "eacedba97e65cdc7ab592f2b22ef5d3ab8d60b2056bc3a6e6363577e8270ec6f" dependencies = [ "alloy-rlp", "arbitrary", @@ -399,7 +411,7 @@ dependencies = [ "foldhash", "getrandom 0.2.15", "hashbrown 0.15.2", - "indexmap 2.7.1", + "indexmap 2.8.0", "itoa", "k256", "keccak-asm", @@ -416,9 +428,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" +checksum = "ff1ec2eabd9b3acc46e59247c35f75545960372431c68f7fdbfcfb970a486c30" dependencies = [ "alloy-chains", "alloy-consensus", @@ -426,11 +438,11 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-network-primitives", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-eth", - "alloy-sol-types 0.8.22", + "alloy-sol-types 0.8.23", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -444,7 +456,7 @@ dependencies = [ "lru 0.13.0", "parking_lot", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.14", "serde", "serde_json", "thiserror 2.0.12", @@ -456,12 +468,12 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3a68996f193f542f9e29c88dfa8ed1369d6ee04fa764c1bf23dc11b2f9e4a2" +checksum = "b1cf194abddb88b034d22ab41449ed8532e5113e58699cd055bf21d98a0991ab" dependencies = [ "alloy-json-rpc", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-transport", "bimap", "futures", @@ -492,17 +504,17 @@ checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "alloy-rpc-client" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" +checksum = "6213829d8eabc239c2f9572452a5993ebdf78b04c020abc450ae48c54261d4ce" dependencies = [ "alloy-json-rpc", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-pubsub", "alloy-transport", "alloy-transport-http", @@ -510,7 +522,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.14", "serde", "serde_json", "tokio", @@ -523,11 +535,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" +checksum = "a153db94cf231b03238fe4da48f59dc6f36e01b5e4d5a2e30de33b95395380fa" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -536,23 +548,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e30339fff15d53a3a258a7add476c7d24b61d6f4a71476cc39c8b567666772" +checksum = "f5275d2e24dbdd82032c3b305db359fb2681069cc75add7feb66863ce50b5cb5" dependencies = [ "alloy-genesis", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d06300df4a87d960add35909240fc72da355dd2ac926fa6999f9efafbdc5a7" +checksum = "5462937f088889c337c236c2509226e87a26301d2b01f9fafee246bd84cb0407" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -560,9 +572,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" +checksum = "2cd4ceea38ea27eeb26f021df34ed5b7b793704ad7a2a009f16137a19461e7ca" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -571,65 +583,67 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799103aa44270c7bea076ec5d3d7b6c6d29557ab5485c91a74d3068327adb485" +checksum = "7c14f3c5747750f7373ec9f633230923ff149c2e31960513e31593bcfcf916be" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "ethereum_ssz", "ethereum_ssz_derive", "serde", "serde_with", "thiserror 2.0.12", + "tree_hash", + "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834b7012054cb2f90ee9893b7cc97702edca340ec1ef386c30c42e55e6cd691" +checksum = "8fa8f6e27d47b4c56c627cb03dc91624c26bd814f6609bb1d1a836148b76fc9b" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "serde", ] [[package]] name = "alloy-rpc-types-engine" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" +checksum = "b1a1a0710dbfbab2b33200ef45c650963d63edf6a81b2c7399ede762b3586dfd" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde", - "derive_more 1.0.0", + "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", "jsonrpsee-types", "jsonwebtoken", "rand 0.8.5", "serde", - "strum 0.26.3", + "strum 0.27.1", ] [[package]] name = "alloy-rpc-types-eth" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" +checksum = "8e18d94b1036302720b987564560e4a5b85035a17553c53a50afa2bd8762b487" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.8.22", + "alloy-sol-types 0.8.23", "itertools 0.14.0", "jsonrpsee-types", "serde", @@ -639,12 +653,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418eb6584edd695dfe496dda85a19102c1ae4838f142efce11e2463ed2288d71" +checksum = "9ec941a4b3eedf15daef2b7aeb7848dfc6e677f58b2a21eab0ac1efef1ffac62" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -653,11 +667,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd951155515fa452a2ca4b5434d4b3ab742bcd3d1d1b9a91704bcef5b8d2604" +checksum = "5ef4bba67ec601730ceb23e542980d73ae9f718819604dfdd8289b13a506e762" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -667,11 +681,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d8dd5bd94993eda3d56a8c4c0d693548183a35462523ffc4385c0b020d3b0c" +checksum = "8edc8512f919feb79dd30864ef7574d2877e71b73e30b5de4925ba9bc6bd4f96" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -679,22 +693,22 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8732058f5ca28c1d53d241e8504620b997ef670315d7c8afab856b3e3b80d945" +checksum = "9824e1bf92cd7848ca6fabb01c9aca15c9c5fb0ab96da5514ef0543f021c69f6" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f96b3526fdd779a4bd0f37319cfb4172db52a7ac24cdbb8804b72091c18e1701" +checksum = "81755ed6a6a33061302ac95e9bb7b40ebf7078e4568397168024242bc31a3e58" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "async-trait", "auto_impl", "either", @@ -705,13 +719,13 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" +checksum = "aa857621a5c95c13e640e18bb9c4720f4338a666d6276f55446477a6bc3912ff" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-signer", "async-trait", "k256", @@ -730,21 +744,21 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "alloy-sol-macro" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f9c3c7bc1f4e334e5c5fc59ec8dac894973a71b11da09065affc6094025049" +checksum = "3637022e781bc73a9e300689cd91105a0e6be00391dd4e2110a71cc7e9f20a94" dependencies = [ - "alloy-sol-macro-expander 0.8.22", - "alloy-sol-macro-input 0.8.22", + "alloy-sol-macro-expander 0.8.23", + "alloy-sol-macro-input 0.8.23", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -756,31 +770,31 @@ dependencies = [ "alloy-sol-macro-input 0.7.7", "const-hex", "heck 0.5.0", - "indexmap 2.7.1", + "indexmap 2.8.0", "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "syn-solidity 0.7.7", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ff7aa715eb2404cb87fa94390d2c5d5addd70d9617e20b2398ee6f48cb21f0" +checksum = "3b9bd22d0bba90e40f40c625c33d39afb7d62b22192476a2ce1dcf8409dce880" dependencies = [ - "alloy-json-abi 0.8.22", - "alloy-sol-macro-input 0.8.22", + "alloy-json-abi 0.8.23", + "alloy-sol-macro-input 0.8.23", "const-hex", "heck 0.5.0", - "indexmap 2.7.1", + "indexmap 2.8.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.99", - "syn-solidity 0.8.22", + "syn 2.0.100", + "syn-solidity 0.8.23", "tiny-keccak", ] @@ -795,25 +809,26 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "syn-solidity 0.7.7", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f105fa700140c0cc6e2c3377adef650c389ac57b8ead8318a2e6bd52f1ae841" +checksum = "05ae4646e8123ec2fd10f9c22e361ffe4365c42811431829c2eabae528546bcc" dependencies = [ - "alloy-json-abi 0.8.22", + "alloy-json-abi 0.8.23", "const-hex", "dunce", "heck 0.5.0", + "macro-string", "proc-macro2", "quote", "serde_json", - "syn 2.0.99", - "syn-solidity 0.8.22", + "syn 2.0.100", + "syn-solidity 0.8.23", ] [[package]] @@ -823,17 +838,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ "serde", - "winnow 0.6.18", + "winnow 0.6.26", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c649acc6c9d3893e392c737faeadce30b4a1751eed148ae43bc2f27f29c4480c" +checksum = "488a747fdcefeec5c1ed5aa9e08becd775106777fdeae2a35730729fc8a95910" dependencies = [ "serde", - "winnow 0.7.3", + "winnow 0.7.4", ] [[package]] @@ -850,22 +865,22 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f819635439ebb06aa13c96beac9b2e7360c259e90f5160a6848ae0d94d10452" +checksum = "767957235807b021126dca1598ac3ef477007eace07961607dc5f490550909c7" dependencies = [ - "alloy-json-abi 0.8.22", - "alloy-primitives 0.8.22", - "alloy-sol-macro 0.8.22", + "alloy-json-abi 0.8.23", + "alloy-primitives 0.8.23", + "alloy-sol-macro 0.8.23", "const-hex", "serde", ] [[package]] name = "alloy-transport" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" +checksum = "6c74598eb65cefa886be6ba624c14a6856d9d84339ec720520f3efcc03311716" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -882,13 +897,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" +checksum = "cfcd2f8ab2f053cd848ead5d625cb1b63716562951101588c1fa49300e3c6418" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.5", + "reqwest 0.12.14", "serde_json", "tower 0.5.2", "tracing", @@ -897,9 +912,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e88304aa8b796204e5e2500dfe235933ed692745e3effd94c3733643db6d218" +checksum = "e61e2b5cbf16f7588e4420848b61824f6514944773732534f4129ba6a251e059" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -917,14 +932,14 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.11.1" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9653ea9aa06d0e02fcbe2f04f1c47f35a85c378ccefa98e54ae85210bc8bbfa" +checksum = "67ddcf4b98b3448eb998e057dc5a27345997863d6544ee7f0f79957616768dd3" dependencies = [ "alloy-pubsub", "alloy-transport", "futures", - "http 1.1.0", + "http 1.3.1", "rustls", "serde_json", "tokio", @@ -939,7 +954,7 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "arrayvec", "derive_more 1.0.0", @@ -991,9 +1006,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -1006,43 +1021,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "approx" @@ -1064,14 +1080,14 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" [[package]] name = "argminmax" @@ -1116,7 +1132,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -1214,15 +1230,15 @@ checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76" [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" dependencies = [ "serde", ] @@ -1368,7 +1384,7 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.7.1", + "indexmap 2.8.0", "lexical-core", "num", "serde", @@ -1439,7 +1455,7 @@ dependencies = [ "memchr", "num", "regex", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -1450,11 +1466,11 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "310c9bcae737a48ef5cdee3174184e6d548b292739ede61a1f955ef76a738861" dependencies = [ - "brotli 6.0.0", + "brotli 7.0.0", "flate2", "futures-core", "memchr", @@ -1480,7 +1496,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -1497,9 +1513,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -1508,24 +1524,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -1536,7 +1552,7 @@ checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ "futures", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -1562,9 +1578,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "aurora-engine-modexp" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aef7712851e524f35fbbb74fa6599c5cd8692056a1c36f9ca0d2001b670e7e5" +checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" dependencies = [ "hex", "num", @@ -1572,20 +1588,20 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" @@ -1601,17 +1617,17 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -1646,9 +1662,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bimap" @@ -1667,43 +1683,24 @@ dependencies = [ [[package]] name = "bincode" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ "bincode_derive", "serde", + "unty", ] [[package]] name = "bincode_derive" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" dependencies = [ "virtue", ] -[[package]] -name = "bindgen" -version = "0.69.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" -dependencies = [ - "bitflags 2.9.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.99", -] - [[package]] name = "bindgen" version = "0.70.1" @@ -1719,23 +1716,23 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "bit-set" -version = "0.5.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.6.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitcoin-io" @@ -1823,9 +1820,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" dependencies = [ "cc", "glob", @@ -1849,12 +1846,12 @@ dependencies = [ "ahash", "alloy-json-rpc", "alloy-network", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "alloy-transport", "alloy-transport-http", "ansi-parser", @@ -1877,7 +1874,7 @@ dependencies = [ "colored", "comfy-table", "const_format", - "crossterm", + "crossterm 0.27.0", "db-interfaces", "dhat", "directories", @@ -1890,7 +1887,7 @@ dependencies = [ "fs_extra", "futures", "human_bytes", - "hyper 0.14.30", + "hyper 0.14.32", "indicatif", "indoc", "itertools 0.11.0", @@ -1903,7 +1900,7 @@ dependencies = [ "rand 0.8.5", "rayon", "regex", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-db", "reth-network-api", "reth-node-core", @@ -1918,24 +1915,24 @@ dependencies = [ "serde_json", "strum 0.25.0", "tar", - "thiserror 1.0.63", + "thiserror 1.0.69", "tikv-jemallocator", "tokio", "toml", "tracing", "tracing-subscriber", - "vergen", + "vergen 8.3.2", ] [[package]] name = "brontes-classifier" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "brontes-classifier", "brontes-core", "brontes-database", @@ -1963,7 +1960,7 @@ dependencies = [ "serde_json", "serial_test", "strum 0.25.0", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -1974,11 +1971,11 @@ version = "0.1.0" dependencies = [ "alloy-dyn-abi 0.7.7", "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-provider", "alloy-rpc-types", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "alloy-transport-http", "async-trait", "auto_impl", @@ -1999,7 +1996,7 @@ dependencies = [ "malachite", "once_cell", "phf", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-db", "reth-metrics", "reth-network-api", @@ -2014,7 +2011,7 @@ dependencies = [ "serde", "serde_json", "serial_test", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", "tracing-subscriber", @@ -2026,7 +2023,7 @@ version = "0.1.0" dependencies = [ "ahash", "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", "arbitrary", @@ -2035,7 +2032,7 @@ dependencies = [ "async-trait", "auto_impl", "backon", - "bincode 2.0.0-rc.3", + "bincode 2.0.1", "brontes-classifier", "brontes-core", "brontes-database", @@ -2050,7 +2047,7 @@ dependencies = [ "criterion", "dashmap 5.5.3", "db-interfaces", - "derive_more 0.99.18", + "derive_more 0.99.19", "dotenv", "eyre", "filesize", @@ -2059,7 +2056,7 @@ dependencies = [ "fs_extra", "futures", "human_bytes", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-tls 0.5.0", "indicatif", "itertools 0.12.1", @@ -2079,12 +2076,12 @@ dependencies = [ "rayon", "redefined", "regex", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-codecs", "reth-codecs-derive", "reth-db", "reth-libmdbx", - "reth-mdbx-sys", + "reth-mdbx-sys 1.2.0", "reth-primitives", "reth-rpc", "reth-tasks", @@ -2100,7 +2097,7 @@ dependencies = [ "strum_macros 0.25.3", "tar", "test-fuzz", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tokio-scoped", "toml", @@ -2113,10 +2110,10 @@ name = "brontes-inspect" version = "0.1.0" dependencies = [ "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "async-scoped", "async-trait", "auto_impl", @@ -2134,14 +2131,14 @@ dependencies = [ "dotenv", "eyre", "futures", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-tls 0.5.0", "itertools 0.11.0", "lazy_static", "malachite", "rand 0.8.5", "rayon", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-db", "reth-primitives", "reth-tracing-ext", @@ -2151,7 +2148,7 @@ dependencies = [ "serial_test", "statrs", "strum 0.25.0", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", "tracing-subscriber", @@ -2166,14 +2163,14 @@ dependencies = [ "criterion", "dashmap 5.5.3", "derive_more 2.0.1", - "indexmap 2.7.1", + "indexmap 2.8.0", "libc", "libffi", "parking_lot", "pprof", - "reth-mdbx-sys", + "reth-mdbx-sys 1.2.0", "tempfile", - "thiserror 1.0.63", + "thiserror 1.0.69", "tracing", ] @@ -2184,14 +2181,14 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "brontes-metrics" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "brontes-types", "clickhouse", "colored", @@ -2199,7 +2196,7 @@ dependencies = [ "db-interfaces", "eyre", "futures", - "hyper 0.14.30", + "hyper 0.14.32", "metrics 0.21.1", "metrics-exporter-prometheus 0.12.1", "metrics-process 1.0.14", @@ -2219,11 +2216,11 @@ name = "brontes-pricing" version = "0.1.0" dependencies = [ "alloy-dyn-abi 0.7.7", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "arbitrary", "async-trait", "auto_impl", @@ -2242,7 +2239,7 @@ dependencies = [ "erased-serde", "eyre", "futures", - "indexmap 2.7.1", + "indexmap 2.8.0", "itertools 0.12.1", "malachite", "modular-bitfield", @@ -2270,7 +2267,7 @@ dependencies = [ "serde_repr", "serde_with", "strum 0.25.0", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -2290,13 +2287,13 @@ dependencies = [ "ahash", "alloy-dyn-abi 0.7.7", "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-beacon", "alloy-rpc-types-trace", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "async-trait", "auto_impl", "brontes-classifier", @@ -2315,7 +2312,7 @@ dependencies = [ "eyre", "futures", "humansize", - "hyper 0.14.30", + "hyper 0.14.32", "indicatif", "indoc", "itertools 0.11.0", @@ -2330,7 +2327,7 @@ dependencies = [ "rayon", "redefined", "relays-openapi", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-codecs", "reth-db", "reth-primitives", @@ -2345,7 +2342,7 @@ dependencies = [ "serial_test", "statrs", "strum 0.25.0", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", "zstd", @@ -2364,13 +2361,13 @@ dependencies = [ [[package]] name = "brotli" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor 4.0.1", + "brotli-decompressor 4.0.2", ] [[package]] @@ -2385,9 +2382,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -2404,24 +2401,24 @@ dependencies = [ [[package]] name = "bstr" -version = "1.10.0" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", ] [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-slice-cast" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytecheck" @@ -2453,22 +2450,22 @@ checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.7.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" +checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -2503,18 +2500,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3054fea8a20d8ff3968d5b22cc27501d2b08dc4decdb31b184323f00c5ef23bb" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -2527,7 +2524,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.23", + "semver 1.0.26", "serde", "serde_json", ] @@ -2540,10 +2537,24 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", - "semver 1.0.23", + "semver 1.0.26", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.26", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 2.0.12", ] [[package]] @@ -2554,9 +2565,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.16" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ "jobserver", "libc", @@ -2592,9 +2603,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", @@ -2602,7 +2613,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -2677,9 +2688,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", "clap_derive", @@ -2687,9 +2698,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstream", "anstyle", @@ -2699,21 +2710,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clickhouse" @@ -2725,16 +2736,16 @@ dependencies = [ "clickhouse-derive", "clickhouse-rs-cityhash-sys", "futures", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-tls 0.5.0", "lz4", - "reqwest 0.12.5", + "reqwest 0.12.14", "sealed", "serde", "serde_json", "serde_with", "static_assertions", - "thiserror 1.0.63", + "thiserror 1.0.69", "time", "tokio", "url", @@ -2762,18 +2773,18 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "colored" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -2788,14 +2799,13 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.1" +version = "7.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" +checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ - "crossterm", - "strum 0.26.3", - "strum_macros 0.26.4", - "unicode-width", + "crossterm 0.28.1", + "unicode-segmentation", + "unicode-width 0.2.0", ] [[package]] @@ -2809,15 +2819,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ - "encode_unicode 0.3.6", - "lazy_static", + "encode_unicode", "libc", - "unicode-width", - "windows-sys 0.52.0", + "once_cell", + "unicode-width 0.2.0", + "windows-sys 0.59.0", ] [[package]] @@ -2861,9 +2871,9 @@ dependencies = [ [[package]] name = "const_format" -version = "0.2.32" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" dependencies = [ "const_format_proc_macros", "konst", @@ -2871,9 +2881,9 @@ dependencies = [ [[package]] name = "const_format_proc_macros" -version = "0.2.32" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" dependencies = [ "proc-macro2", "quote", @@ -2892,6 +2902,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.7.1" @@ -2911,6 +2930,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -2928,18 +2957,18 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" +checksum = "96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d" dependencies = [ "cfg-if", ] [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -3014,18 +3043,18 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -3042,18 +3071,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crossterm" @@ -3071,6 +3100,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" +dependencies = [ + "bitflags 2.9.0", + "crossterm_winapi", + "parking_lot", + "rustix 0.38.44", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -3082,9 +3124,9 @@ dependencies = [ [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -3121,9 +3163,9 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" dependencies = [ "csv-core", "itoa", @@ -3133,9 +3175,9 @@ dependencies = [ [[package]] name = "csv-core" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" dependencies = [ "memchr", ] @@ -3160,7 +3202,7 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "subtle", "zeroize", ] @@ -3173,7 +3215,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3197,7 +3239,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3208,7 +3250,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3240,15 +3282,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "data-encoding-macro" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +checksum = "9f9724adfcf41f45bf652b3995837669d73c4d49a1b5ac1ff82905ac7d9b5558" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -3256,18 +3298,18 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "db-interfaces" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/db-interfaces#12892c736a6e041ab5698bb73361cdcdac60a5f2" +source = "git+https://github.com/SorellaLabs/db-interfaces#738d9e2581d63eb568774516b153ffe5c927e3ff" dependencies = [ "chrono", "clickhouse", @@ -3277,23 +3319,23 @@ dependencies = [ "erased-serde", "eyre", "futures", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-tls 0.5.0", "primitive-types", "rand 0.8.5", - "reqwest 0.12.5", + "reqwest 0.12.14", "serde", "serde_json", "strum 0.25.0", "strum_macros 0.25.3", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", ] [[package]] name = "db-interfaces-macros" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/db-interfaces#12892c736a6e041ab5698bb73361cdcdac60a5f2" +source = "git+https://github.com/SorellaLabs/db-interfaces#738d9e2581d63eb568774516b153ffe5c927e3ff" dependencies = [ "dotenv", "itertools 0.11.0", @@ -3301,7 +3343,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3338,8 +3380,8 @@ checksum = "7a3767f826efbbe5a5ae093920b58b43b01734202be697e1354914e862e8e704" dependencies = [ "proc-macro2", "quote", - "semver 1.0.23", - "syn 2.0.99", + "semver 1.0.26", + "syn 2.0.100", ] [[package]] @@ -3381,31 +3423,62 @@ checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.100", ] [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 2.0.99", + "rustc_version 0.4.1", + "syn 2.0.100", ] [[package]] @@ -3432,9 +3505,10 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ + "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "unicode-xid", ] @@ -3447,7 +3521,7 @@ dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "unicode-xid", ] @@ -3565,7 +3639,7 @@ dependencies = [ "hkdf", "lazy_static", "libp2p-identity", - "lru 0.12.4", + "lru 0.12.5", "more-asserts", "multiaddr", "parking_lot", @@ -3586,7 +3660,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3609,9 +3683,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -3655,9 +3729,12 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] [[package]] name = "elliptic-curve" @@ -3681,21 +3758,15 @@ dependencies = [ [[package]] name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encode_unicode" -version = "1.0.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -3720,7 +3791,7 @@ dependencies = [ "k256", "log", "rand 0.8.5", - "secp256k1 0.30.0", + "secp256k1", "serde", "sha3", "zeroize", @@ -3728,14 +3799,14 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3747,7 +3818,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3758,14 +3829,14 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" @@ -3778,12 +3849,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3795,13 +3866,24 @@ dependencies = [ "version_check", ] +[[package]] +name = "ethereum_hashing" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c853bd72c9e5787f8aafc3df2907c2ed03cff3150c3acd94e2e53a98ab70a8ab" +dependencies = [ + "cpufeatures", + "ring", + "sha2 0.10.8", +] + [[package]] name = "ethereum_serde_utils" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70cbccfccf81d67bff0ab36e591fa536c8a935b078a7b0e58c1d00d418332fc9" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "hex", "serde", "serde_derive", @@ -3814,7 +3896,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86da3096d1304f5f28476ce383005385459afeaf0eea08592b65ddbc9b258d16" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "ethereum_serde_utils", "itertools 0.13.0", "serde", @@ -3832,7 +3914,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -3865,9 +3947,9 @@ checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c" [[package]] name = "fastrand" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastrlp" @@ -3880,6 +3962,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + [[package]] name = "fdlimit" version = "0.3.0" @@ -3887,14 +3980,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", "subtle", @@ -3917,9 +4010,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", @@ -3964,14 +4057,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640" dependencies = [ "bitflags 1.3.2", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] name = "flate2" -version = "1.0.31" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide", @@ -4052,9 +4145,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -4067,9 +4160,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -4077,15 +4170,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -4094,32 +4187,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -4133,9 +4226,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -4155,6 +4248,19 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.58.0", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -4204,15 +4310,28 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "git2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff" +dependencies = [ + "bitflags 2.9.0", + "libc", + "libgit2-sys", + "log", + "url", +] [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "gloo-net" @@ -4224,12 +4343,12 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http 1.1.0", + "http 1.3.1", "js-sys", "pin-project", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -4283,7 +4402,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.7.1", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -4292,17 +4411,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.7.1", + "http 1.3.1", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -4425,9 +4544,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" +checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" [[package]] name = "hex" @@ -4542,22 +4661,22 @@ dependencies = [ [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "hostname" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ + "cfg-if", "libc", - "match_cfg", - "winapi", + "windows 0.52.0", ] [[package]] @@ -4573,9 +4692,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -4600,18 +4719,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.3.1", ] [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", - "http 1.1.0", + "futures-core", + "http 1.3.1", "http-body 1.0.1", "pin-project-lite", ] @@ -4624,9 +4743,9 @@ checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" [[package]] name = "httparse" -version = "1.9.4" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -4651,9 +4770,9 @@ dependencies = [ [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "humantime-serde" @@ -4667,9 +4786,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", @@ -4691,15 +4810,15 @@ dependencies = [ [[package]] name = "hyper" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", - "http 1.1.0", + "h2 0.4.8", + "http 1.3.1", "http-body 1.0.1", "httparse", "httpdate", @@ -4712,17 +4831,17 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http 1.3.1", + "hyper 1.6.0", "hyper-util", "log", "rustls", - "rustls-native-certs", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls", @@ -4737,7 +4856,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper 0.14.30", + "hyper 0.14.32", "native-tls", "tokio", "tokio-native-tls", @@ -4751,7 +4870,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper 1.6.0", "hyper-util", "native-tls", "tokio", @@ -4761,29 +4880,28 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.6.0", "pin-project-lite", "socket2", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4804,9 +4922,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137d96353afc8544d437e8a99eceb10ab291352699573b0de5b08bda38c78c60" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", "yoke", @@ -4816,9 +4934,9 @@ dependencies = [ [[package]] name = "icu_locid" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0aa2536adc14c07e2a521e95512b75ed8ef832f0fdf9299d4a0a45d2be2a9d" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -4829,9 +4947,9 @@ dependencies = [ [[package]] name = "icu_locid_transform" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c17d8f6524fdca4471101dd71f0a132eb6382b5d6d7f2970441cb25f6f435a" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" dependencies = [ "displaydoc", "icu_locid", @@ -4843,15 +4961,15 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545c6c3e8bf9580e2dafee8de6f9ec14826aaf359787789c7724f1f85f47d3dc" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" [[package]] name = "icu_normalizer" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accb85c5b2e76f8dade22978b3795ae1e550198c6cfc7e915144e17cd6e2ab56" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ "displaydoc", "icu_collections", @@ -4867,15 +4985,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3744fecc0df9ce19999cdaf1f9f3a48c253431ce1d67ef499128fe9d0b607ab" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "1.4.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db9e559598096627aeca8cdfb98138a70eb4078025f8d1d5f2416a361241f756" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ "displaydoc", "icu_collections", @@ -4888,15 +5006,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70a8b51ee5dd4ff8f20ee9b1dd1bc07afc110886a3747b1fec04cc6e5a15815" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba58e782287eb6950247abbf11719f83f5d4e4a5c1f2cd490d30a334bc47c2f4" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", "icu_locid", @@ -4911,13 +5029,13 @@ dependencies = [ [[package]] name = "icu_provider_macros" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -4974,13 +5092,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -5021,9 +5139,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "arbitrary", "equivalent", @@ -5033,22 +5151,22 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width", + "unicode-width 0.2.0", + "web-time", ] [[package]] name = "indoc" -version = "2.0.5" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" +checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] name = "inotify" @@ -5072,23 +5190,14 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "block-padding", "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - [[package]] name = "integer-encoding" version = "3.0.4" @@ -5106,9 +5215,9 @@ dependencies = [ [[package]] name = "interprocess" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb" +checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" dependencies = [ "doctest-file", "futures-core", @@ -5128,20 +5237,20 @@ dependencies = [ "socket2", "widestring", "windows-sys 0.48.0", - "winreg 0.50.0", + "winreg", ] [[package]] name = "ipnet" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.2" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f5f6c2df22c009ac44f6f1499308e7a3ac7ba42cd2378475cc691510e1eef1b" +checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" dependencies = [ "memchr", "serde", @@ -5149,13 +5258,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.13" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi 0.4.0", + "hermit-abi 0.5.0", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5211,9 +5320,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "itoap" @@ -5231,7 +5340,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror 1.0.63", + "thiserror 1.0.69", "walkdir", ] @@ -5252,10 +5361,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -5287,14 +5397,14 @@ dependencies = [ "futures-channel", "futures-util", "gloo-net", - "http 1.1.0", + "http 1.3.1", "jsonrpsee-core", "pin-project", "rustls", "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tokio-rustls", "tokio-util", @@ -5312,7 +5422,7 @@ dependencies = [ "bytes", "futures-timer", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "jsonrpsee-types", @@ -5322,7 +5432,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -5338,7 +5448,7 @@ dependencies = [ "async-trait", "base64 0.22.1", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.6.0", "hyper-rustls", "hyper-util", "jsonrpsee-core", @@ -5347,7 +5457,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tower 0.4.13", "tracing", @@ -5364,7 +5474,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -5374,10 +5484,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b7a3df90a1a60c3ed68e7ca63916b53e9afa928e33531e87f61a9c8e9ae87b" dependencies = [ "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.6.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -5386,7 +5496,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -5400,10 +5510,10 @@ version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddb81adb1a5ae9182df379e374a79e24e992334e7346af4d065ae5b2acb8d4c6" dependencies = [ - "http 1.1.0", + "http 1.3.1", "serde", "serde_json", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -5423,7 +5533,7 @@ version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" dependencies = [ - "http 1.1.0", + "http 1.3.1", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -5447,9 +5557,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -5471,9 +5581,9 @@ dependencies = [ [[package]] name = "keccak-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" dependencies = [ "digest 0.10.7", "sha3-asm", @@ -5523,12 +5633,6 @@ dependencies = [ "spin", ] -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "lexical-core" version = "0.8.5" @@ -5595,9 +5699,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.170" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libffi" @@ -5618,11 +5722,23 @@ dependencies = [ "cc", ] +[[package]] +name = "libgit2-sys" +version = "0.18.0+1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", "windows-targets 0.52.6", @@ -5630,15 +5746,15 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libp2p-identity" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" +checksum = "257b5621d159b32282eac446bed6670c39c7dc68a200a992d8f056afa0066f6d" dependencies = [ "asn1_der", "bs58", @@ -5648,18 +5764,18 @@ dependencies = [ "multihash", "quick-protobuf", "sha2 0.10.8", - "thiserror 1.0.63", + "thiserror 1.0.69", "tracing", "zeroize", ] [[package]] name = "libproc" -version = "0.14.8" +version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9ea4b75e1a81675429dafe43441df1caea70081e82246a8cccf514884a88bb" +checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" dependencies = [ - "bindgen 0.69.4", + "bindgen", "errno", "libc", ] @@ -5723,6 +5839,18 @@ dependencies = [ "libsecp256k1-core", ] +[[package]] +name = "libz-sys" +version = "1.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -5731,9 +5859,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" dependencies = [ "linked-hash-map", "serde", @@ -5741,15 +5869,21 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" @@ -5764,9 +5898,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "log-report-layer" @@ -5774,19 +5908,32 @@ version = "0.1.0" source = "git+https://github.com/SorellaLabs/log-report-layer#7f7be4d600ee46662eb521f1667e2a0f627f65c0" dependencies = [ "eyre", - "reqwest 0.12.5", + "reqwest 0.12.14", "tokio", "tracing", "tracing-subscriber", ] +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", +] + [[package]] name = "lru" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -5800,19 +5947,18 @@ dependencies = [ [[package]] name = "lz4" -version = "1.26.0" +version = "1.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" +checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" dependencies = [ - "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.10.0" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -5836,11 +5982,22 @@ dependencies = [ "libc", ] +[[package]] +name = "macro-string" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "malachite" -version = "0.4.14" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6ea071913d15f7e0566bc4768aae3918906ea77f0abbb387ca7c0dc9303f90" +checksum = "2fbdf9cb251732db30a7200ebb6ae5d22fe8e11397364416617d2c2cf0c51cb5" dependencies = [ "malachite-base", "malachite-float", @@ -5850,9 +6007,9 @@ dependencies = [ [[package]] name = "malachite-base" -version = "0.4.14" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c817c713ff9f16e06cfdc23baa3fecf1b71eaaac714816a98a560f4e350aa6" +checksum = "5ea0ed76adf7defc1a92240b5c36d5368cfe9251640dcce5bd2d0b7c1fd87aeb" dependencies = [ "hashbrown 0.14.5", "itertools 0.11.0", @@ -5862,9 +6019,9 @@ dependencies = [ [[package]] name = "malachite-float" -version = "0.4.14" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4fc2c9c0893bae56d0690c01df3117e116edb08fe18a06b4c5337e60bf526d3" +checksum = "af9d20db1c73759c1377db7b27575df6f2eab7368809dd62c0a715dc1bcc39f7" dependencies = [ "itertools 0.11.0", "malachite-base", @@ -5875,9 +6032,9 @@ dependencies = [ [[package]] name = "malachite-nz" -version = "0.4.14" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603729facf62429736ac17a9fc9fe1bf7e0eb8bde3da3b18cc2b6153150464d5" +checksum = "34a79feebb2bc9aa7762047c8e5495269a367da6b5a90a99882a0aeeac1841f7" dependencies = [ "itertools 0.11.0", "libm", @@ -5887,9 +6044,9 @@ dependencies = [ [[package]] name = "malachite-q" -version = "0.4.14" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c73844ccbf0e9baaf34d4a6d187f0d6a925ce8e74ef37a67d238e7d65529b38c" +checksum = "50f235d5747b1256b47620f5640c2a17a88c7569eebdf27cd9cb130e1a619191" dependencies = [ "itertools 0.11.0", "malachite-base", @@ -5897,12 +6054,6 @@ dependencies = [ "serde", ] -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - [[package]] name = "matchers" version = "0.1.0" @@ -5939,9 +6090,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -5976,7 +6127,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -5986,13 +6137,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" dependencies = [ "base64 0.21.7", - "hyper 0.14.30", + "hyper 0.14.32", "indexmap 1.9.3", "ipnet", "metrics 0.21.1", "metrics-util 0.15.0", "quanta 0.11.1", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -6004,11 +6155,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", - "indexmap 2.7.1", + "indexmap 2.8.0", "metrics 0.24.1", "metrics-util 0.19.0", - "quanta 0.12.3", - "thiserror 1.0.63", + "quanta 0.12.5", + "thiserror 1.0.69", ] [[package]] @@ -6019,7 +6170,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -6082,7 +6233,7 @@ dependencies = [ "crossbeam-utils", "hashbrown 0.15.2", "metrics 0.24.1", - "quanta 0.12.3", + "quanta 0.12.5", "rand 0.8.5", "rand_xoshiro", "sketches-ddsketch 0.3.0", @@ -6127,11 +6278,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" dependencies = [ - "adler", + "adler2", ] [[package]] @@ -6154,11 +6305,10 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", @@ -6188,21 +6338,20 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.8" +version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cf62eb4dd975d2dde76432fb1075c49e3ee2331cf36f1f8fd4b66550d32b6f" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" dependencies = [ "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "once_cell", + "loom", "parking_lot", - "quanta 0.12.3", - "rustc_version 0.4.0", + "portable-atomic", + "rustc_version 0.4.1", "smallvec", "tagptr", - "thiserror 1.0.63", - "triomphe", + "thiserror 1.0.69", "uuid", ] @@ -6214,9 +6363,9 @@ checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" [[package]] name = "multiaddr" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" dependencies = [ "arrayref", "byteorder", @@ -6244,9 +6393,9 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" dependencies = [ "core2", "unsigned-varint", @@ -6305,9 +6454,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -6315,7 +6464,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -6363,7 +6512,7 @@ dependencies = [ "kqueue", "libc", "log", - "mio 1.0.2", + "mio 1.0.3", "notify-types", "walkdir", "windows-sys 0.59.0", @@ -6521,7 +6670,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -6554,18 +6703,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" dependencies = [ "critical-section", "portable-atomic", @@ -6573,19 +6722,19 @@ dependencies = [ [[package]] name = "oorandom" -version = "11.1.4" +version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "op-alloy-consensus" -version = "0.10.7" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed6cad421e41d400667a06df8bd306dd316c3e1fed803df065b1c65d7de6795" +checksum = "5e5099f9c3a41a313dd5f7fe7657545d972781e53d70c62976858aba8dac9eef" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-serde", "derive_more 1.0.0", @@ -6596,13 +6745,13 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.10.7" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9593354ed29d9c1d9b761d400c5b059176bc36d06db3f9ac6697331f212ea7de" +checksum = "e829ee4a0f373132258ccdce71ed1984cdbf7df83ab928522997ee79943879c2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "derive_more 1.0.0", "ethereum_ssz", @@ -6611,6 +6760,18 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "op-revm" +version = "1.0.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bace6de3cbeca7d98d49354b3812c6d72fc609c54e162ce9db0dae1c82d2eb57" +dependencies = [ + "auto_impl", + "once_cell", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", +] + [[package]] name = "opaque-debug" version = "0.3.1" @@ -6619,9 +6780,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.66" +version = "0.10.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -6640,20 +6801,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.103" +version = "0.9.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" dependencies = [ "cc", "libc", @@ -6715,29 +6876,31 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "c9fde3d0718baf5bc92f577d652001da0f8d54cd03a7974e118d04fc888dc23d" dependencies = [ "arrayvec", "bitvec", "byte-slice-cast", "bytes", + "const_format", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "581c837bb6b9541ce7faa9377c20616e4fb7650f6b0f68bc93c827ee504fb7b3" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -6820,16 +6983,16 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathfinding" -version = "4.10.0" +version = "4.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39103a901800b5711b9076f2474da1e7412f804c11a0f3b4e8dd3b1e59c58b12" +checksum = "59ac35caa284c08f3721fb33c2741b5f763decaf42d080c8a6a722154347017e" dependencies = [ "deprecate-until", - "indexmap 2.7.1", + "indexmap 2.8.0", "integer-sqrt", "num-traits", "rustc-hash 2.1.1", - "thiserror 1.0.63", + "thiserror 2.0.12", ] [[package]] @@ -6850,12 +7013,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 1.0.63", + "thiserror 2.0.12", "ucd-trie", ] @@ -6866,7 +7029,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.7.1", + "indexmap 2.8.0", ] [[package]] @@ -6876,23 +7039,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ "futures", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] name = "phf" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ + "phf_macros", "phf_shared", + "serde", ] [[package]] name = "phf_codegen" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ "phf_generator", "phf_shared", @@ -6900,48 +7065,61 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", "rand 0.8.5", ] +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "phf_shared" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ "siphasher", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -6961,9 +7139,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "planus" @@ -6976,9 +7154,9 @@ dependencies = [ [[package]] name = "plotters" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15b6eccb8484002195a3e44fe65a4ce8e93a625797a063735536fd59cb01cf3" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" dependencies = [ "num-traits", "plotters-backend", @@ -6989,15 +7167,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414cec62c6634ae900ea1c56128dfe87cf63e7caece0852ec76aba307cebadb7" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" [[package]] name = "plotters-svg" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b30686a7d9c3e010b84284bdd26a29f2138574f52f5eb6f794fc0ad924e705" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" dependencies = [ "plotters-backend", ] @@ -7097,7 +7275,7 @@ dependencies = [ "comfy-table", "either", "hashbrown 0.14.5", - "indexmap 2.7.1", + "indexmap 2.8.0", "num-traits", "once_cell", "polars-arrow", @@ -7110,7 +7288,7 @@ dependencies = [ "rayon", "regex", "smartstring", - "thiserror 1.0.63", + "thiserror 1.0.69", "version_check", "xxhash-rust", ] @@ -7124,7 +7302,7 @@ dependencies = [ "polars-arrow-format", "regex", "simdutf8", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] @@ -7195,7 +7373,7 @@ dependencies = [ "either", "hashbrown 0.14.5", "hex", - "indexmap 2.7.1", + "indexmap 2.8.0", "memchr", "num-traits", "polars-arrow", @@ -7337,11 +7515,11 @@ dependencies = [ "ahash", "bytemuck", "hashbrown 0.14.5", - "indexmap 2.7.1", + "indexmap 2.8.0", "num-traits", "once_cell", "polars-error", - "raw-cpuid 11.1.0", + "raw-cpuid 11.5.0", "rayon", "smartstring", "sysinfo 0.30.13", @@ -7389,16 +7567,16 @@ dependencies = [ "smallvec", "symbolic-demangle", "tempfile", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.7.35", + "zerocopy 0.8.23", ] [[package]] @@ -7413,12 +7591,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" dependencies = [ "proc-macro2", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -7428,11 +7606,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" dependencies = [ "csv", - "encode_unicode 1.0.0", + "encode_unicode", "is-terminal", "lazy_static", "term", - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -7440,11 +7618,11 @@ name = "pricing-test-utils" version = "0.1.0" dependencies = [ "alloy-dyn-abi 0.7.7", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-sol-macro 0.8.23", + "alloy-sol-types 0.8.23", "arbitrary", "async-trait", "auto_impl", @@ -7488,7 +7666,7 @@ dependencies = [ "serde_repr", "serde_with", "strum 0.25.0", - "thiserror 1.0.63", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -7515,11 +7693,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] @@ -7565,7 +7743,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -7589,7 +7767,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core 0.16.0", - "rustix", + "rustix 0.38.44", ] [[package]] @@ -7603,7 +7781,7 @@ dependencies = [ "flate2", "hex", "procfs-core 0.17.0", - "rustix", + "rustix 0.38.44", ] [[package]] @@ -7640,14 +7818,14 @@ dependencies = [ "memchr", "parking_lot", "protobuf", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "proptest" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", @@ -7657,7 +7835,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -7682,7 +7860,7 @@ checksum = "4ee1c9ac207483d5e7db4940700de86a9aae46ef90c48b57f99fe7edb8345e49" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -7740,14 +7918,14 @@ dependencies = [ [[package]] name = "quanta" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" dependencies = [ "crossbeam-utils", "libc", "once_cell", - "raw-cpuid 11.1.0", + "raw-cpuid 11.5.0", "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", @@ -7822,9 +8000,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -7865,7 +8043,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.22", + "zerocopy 0.8.23", ] [[package]] @@ -7945,9 +8123,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.1.0" +version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ "bitflags 2.9.0", ] @@ -8000,43 +8178,43 @@ dependencies = [ "futures", "proc-macro2", "quote", - "reqwest 0.12.5", + "reqwest 0.12.14", "serde", "serde_json", - "syn 2.0.99", + "syn 2.0.100", "tokio", ] [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ "bitflags 2.9.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom 0.2.15", "libredox", - "thiserror 1.0.63", + "thiserror 1.0.69", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick 1.1.3", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", ] [[package]] @@ -8050,13 +8228,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick 1.1.3", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -8067,9 +8245,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relays-openapi" @@ -8105,7 +8283,7 @@ dependencies = [ "h2 0.3.26", "http 0.2.12", "http-body 0.4.6", - "hyper 0.14.30", + "hyper 0.14.32", "hyper-tls 0.5.0", "ipnet", "js-sys", @@ -8121,7 +8299,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", - "system-configuration", + "system-configuration 0.5.1", "tokio", "tokio-native-tls", "tower-service", @@ -8129,14 +8307,14 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "989e327e510263980e231de548a33e63d34962d29ae61b467389a1a09627a254" dependencies = [ "base64 0.22.1", "bytes", @@ -8144,11 +8322,11 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.5", - "http 1.1.0", + "h2 0.4.8", + "http 1.3.1", "http-body 1.0.1", "http-body-util", - "hyper 1.4.1", + "hyper 1.6.0", "hyper-rustls", "hyper-tls 0.6.0", "hyper-util", @@ -8162,18 +8340,19 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-native-certs", - "rustls-pemfile 2.1.3", + "rustls-native-certs 0.8.1", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration", + "sync_wrapper 1.0.2", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", "tokio-rustls", "tokio-util", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", @@ -8181,27 +8360,26 @@ dependencies = [ "wasm-streams", "web-sys", "webpki-roots", - "winreg 0.52.0", + "windows-registry", ] [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" dependencies = [ "hostname", - "quick-error", ] [[package]] name = "reth-basic-payload-builder" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "futures-core", "futures-util", "metrics 0.24.1", @@ -8220,25 +8398,25 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "derive_more 2.0.1", "metrics 0.24.1", "parking_lot", "pin-project", "reth-chainspec", "reth-errors", + "reth-ethereum-primitives", "reth-execution-types", "reth-metrics", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-trie", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio", "tokio-stream", "tracing", @@ -8246,14 +8424,15 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", + "alloy-evm", "alloy-genesis", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-trie", "auto_impl", "derive_more 2.0.1", @@ -8265,30 +8444,30 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "cfg-if", "eyre", "libc", "rand 0.8.5", "reth-fs-util", - "secp256k1 0.30.0", + "secp256k1", "serde", "thiserror 2.0.12", ] [[package]] name = "reth-codecs" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-trie", "bytes", "modular-bitfield", @@ -8299,19 +8478,19 @@ dependencies = [ [[package]] name = "reth-codecs-derive" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "convert_case 0.7.1", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "reth-config" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "eyre", "humantime-serde", @@ -8324,11 +8503,11 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "auto_impl", "reth-execution-types", "reth-primitives-traits", @@ -8337,12 +8516,11 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -8350,19 +8528,19 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-provider", "alloy-rpc-types-engine", "auto_impl", "derive_more 2.0.1", "eyre", "futures", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-node-api", "reth-primitives-traits", "reth-tracing", @@ -8373,10 +8551,10 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "derive_more 2.0.1", "eyre", "metrics 0.24.1", @@ -8386,7 +8564,7 @@ dependencies = [ "reth-libmdbx", "reth-metrics", "reth-nippy-jar", - "reth-primitives", + "reth-static-file-types", "reth-storage-errors", "reth-tracing", "rustc-hash 2.1.1", @@ -8397,12 +8575,12 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "bytes", "derive_more 2.0.1", "metrics 0.24.1", @@ -8410,7 +8588,7 @@ dependencies = [ "parity-scale-codec", "reth-codecs", "reth-db-models", - "reth-primitives", + "reth-ethereum-primitives", "reth-primitives-traits", "reth-prune-types", "reth-stages-types", @@ -8422,12 +8600,12 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -8437,9 +8615,10 @@ dependencies = [ "reth-etl", "reth-fs-util", "reth-node-types", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-stages-types", + "reth-static-file-types", "reth-trie", "reth-trie-db", "serde", @@ -8450,11 +8629,11 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "bytes", "modular-bitfield", "reth-codecs", @@ -8464,10 +8643,10 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "discv5", "enr", @@ -8480,7 +8659,7 @@ dependencies = [ "reth-net-nat", "reth-network-peers", "schnellru", - "secp256k1 0.30.0", + "secp256k1", "serde", "thiserror 2.0.12", "tokio", @@ -8490,10 +8669,10 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "derive_more 2.0.1", "discv5", @@ -8506,7 +8685,7 @@ dependencies = [ "reth-ethereum-forks", "reth-metrics", "reth-network-peers", - "secp256k1 0.30.0", + "secp256k1", "thiserror 2.0.12", "tokio", "tracing", @@ -8514,10 +8693,10 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "data-encoding", "enr", "hickory-resolver", @@ -8527,7 +8706,7 @@ dependencies = [ "reth-network-peers", "reth-tokio-util", "schnellru", - "secp256k1 0.30.0", + "secp256k1", "serde", "serde_with", "thiserror 2.0.12", @@ -8538,12 +8717,12 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "futures", "futures-util", @@ -8569,11 +8748,11 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "aes", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "block-padding", "byteorder", @@ -8587,7 +8766,7 @@ dependencies = [ "pin-project", "rand 0.8.5", "reth-network-peers", - "secp256k1 0.30.0", + "secp256k1", "sha2 0.10.8", "sha3", "thiserror 2.0.12", @@ -8600,11 +8779,11 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -8629,12 +8808,11 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "auto_impl", "futures", @@ -8654,8 +8832,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "futures", "pin-project", @@ -8677,12 +8855,13 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-evm", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-engine", "derive_more 2.0.1", @@ -8712,7 +8891,7 @@ dependencies = [ "reth-trie-db", "reth-trie-parallel", "reth-trie-sparse", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "schnellru", "thiserror 2.0.12", "tokio", @@ -8721,23 +8900,18 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-eips", - "alloy-primitives 0.8.22", "alloy-rpc-types-engine", "eyre", "futures", "itertools 0.14.0", "pin-project", "reth-chainspec", - "reth-consensus-common", "reth-engine-primitives", "reth-errors", - "reth-ethereum-forks", - "reth-ethereum-primitives", "reth-evm", "reth-fs-util", "reth-payload-primitives", @@ -8745,9 +8919,6 @@ dependencies = [ "reth-primitives-traits", "reth-provider", "reth-revm", - "reth-trie", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "serde", "serde_json", "tokio", @@ -8757,8 +8928,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -8769,11 +8940,11 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "bytes", "derive_more 2.0.1", @@ -8797,13 +8968,13 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "bytes", "derive_more 2.0.1", @@ -8818,60 +8989,58 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "reth-chainspec", "reth-consensus", "reth-consensus-common", "reth-execution-types", - "reth-primitives", "reth-primitives-traits", "tracing", ] [[package]] name = "reth-ethereum-engine-primitives" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", + "reth-ethereum-primitives", "reth-payload-primitives", - "reth-primitives", + "reth-primitives-traits", "serde", "sha2 0.10.8", ] [[package]] name = "reth-ethereum-forks" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-chains", "alloy-eip2124", - "alloy-primitives 0.8.22", + "alloy-hardforks", + "alloy-primitives 0.8.23", "auto_impl", - "dyn-clone", "once_cell", "rustc-hash 2.1.1", - "serde", ] [[package]] name = "reth-ethereum-payload-builder" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "reth-basic-payload-builder", "reth-chainspec", @@ -8879,30 +9048,28 @@ dependencies = [ "reth-ethereum-primitives", "reth-evm", "reth-evm-ethereum", - "reth-execution-types", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", "reth-payload-validator", - "reth-primitives", "reth-primitives-traits", "reth-revm", "reth-storage-api", "reth-transaction-pool", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", "tracing", ] [[package]] name = "reth-ethereum-primitives" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-network", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -8911,15 +9078,15 @@ dependencies = [ "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "secp256k1 0.30.0", + "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "secp256k1", "serde", ] [[package]] name = "reth-etl" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "rayon", "reth-db-api", @@ -8928,90 +9095,88 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "auto_impl", "derive_more 2.0.1", "futures-util", "metrics 0.24.1", - "reth-chainspec", - "reth-consensus-common", + "op-revm", + "reth-ethereum-primitives", "reth-execution-errors", "reth-execution-types", "reth-metrics", - "reth-primitives", "reth-primitives-traits", + "reth-storage-api", "reth-storage-errors", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-optimism", + "reth-trie-common", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "reth-evm-ethereum" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.22", - "alloy-sol-types 0.8.22", + "alloy-primitives 0.8.23", "reth-chainspec", "reth-ethereum-forks", + "reth-ethereum-primitives", "reth-evm", "reth-execution-types", - "reth-primitives", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "reth-primitives-traits", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "reth-execution-errors" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "nybbles", "reth-storage-errors", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "thiserror 2.0.12", ] [[package]] name = "reth-execution-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-evm", + "alloy-primitives 0.8.23", "derive_more 2.0.1", "reth-ethereum-primitives", - "reth-execution-errors", "reth-primitives-traits", "reth-trie-common", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_with", ] [[package]] name = "reth-exex" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "eyre", "futures", "itertools 0.14.0", @@ -9044,11 +9209,11 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "reth-chain-state", "reth-execution-types", "reth-primitives", @@ -9059,8 +9224,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "serde", "serde_json", @@ -9069,11 +9234,11 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-debug", "eyre", @@ -9096,8 +9261,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "async-trait", "bytes", @@ -9117,16 +9282,16 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "bitflags 2.9.0", "byteorder", "dashmap 6.1.0", "derive_more 2.0.1", - "indexmap 2.7.1", + "indexmap 2.8.0", "parking_lot", - "reth-mdbx-sys", + "reth-mdbx-sys 1.3.0", "smallvec", "thiserror 2.0.12", "tracing", @@ -9137,14 +9302,23 @@ name = "reth-mdbx-sys" version = "1.2.0" source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" dependencies = [ - "bindgen 0.70.1", + "bindgen", + "cc", +] + +[[package]] +name = "reth-mdbx-sys" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +dependencies = [ + "bindgen", "cc", ] [[package]] name = "reth-metrics" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "futures", "metrics 0.24.1", @@ -9155,20 +9329,20 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", ] [[package]] name = "reth-net-nat" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "futures-util", "if-addrs", - "reqwest 0.12.5", + "reqwest 0.12.14", "serde_with", "thiserror 2.0.12", "tokio", @@ -9177,12 +9351,12 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "aquamarine", "auto_impl", @@ -9204,6 +9378,7 @@ dependencies = [ "reth-eth-wire", "reth-eth-wire-types", "reth-ethereum-forks", + "reth-ethereum-primitives", "reth-fs-util", "reth-metrics", "reth-net-banlist", @@ -9219,7 +9394,7 @@ dependencies = [ "reth-transaction-pool", "rustc-hash 2.1.1", "schnellru", - "secp256k1 0.30.0", + "secp256k1", "serde", "smallvec", "thiserror 2.0.12", @@ -9231,10 +9406,10 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-admin", "auto_impl", "derive_more 2.0.1", @@ -9254,12 +9429,12 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "auto_impl", "derive_more 2.0.1", "futures", @@ -9276,13 +9451,13 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "enr", - "secp256k1 0.30.0", + "secp256k1", "serde_with", "thiserror 2.0.12", "tokio", @@ -9291,8 +9466,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -9305,14 +9480,14 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "anyhow", "bincode 1.3.3", "derive_more 2.0.1", "lz4_flex", - "memmap2 0.9.4", + "memmap2 0.9.5", "reth-fs-util", "serde", "thiserror 2.0.12", @@ -9322,8 +9497,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -9346,12 +9521,12 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types", "alloy-rpc-types-engine", "aquamarine", @@ -9401,7 +9576,7 @@ dependencies = [ "reth-tokio-util", "reth-tracing", "reth-transaction-pool", - "secp256k1 0.30.0", + "secp256k1", "tokio", "tokio-stream", "tracing", @@ -9409,12 +9584,12 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "clap", "derive_more 2.0.1", @@ -9430,6 +9605,7 @@ dependencies = [ "reth-db", "reth-discv4", "reth-discv5", + "reth-engine-primitives", "reth-ethereum-forks", "reth-net-nat", "reth-network", @@ -9446,20 +9622,21 @@ dependencies = [ "reth-storage-errors", "reth-tracing", "reth-transaction-pool", - "secp256k1 0.30.0", + "secp256k1", "serde", "shellexpand", "strum 0.27.1", "thiserror 2.0.12", "toml", "tracing", - "vergen", + "vergen 9.0.4", + "vergen-git2", ] [[package]] name = "reth-node-ethereum" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-rpc-types-engine", "alloy-rpc-types-eth", @@ -9477,7 +9654,7 @@ dependencies = [ "reth-node-api", "reth-node-builder", "reth-payload-primitives", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-revm", "reth-rpc", @@ -9488,17 +9665,17 @@ dependencies = [ "reth-tracing", "reth-transaction-pool", "reth-trie-db", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "reth-node-events" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "derive_more 2.0.1", "futures", @@ -9517,11 +9694,11 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "eyre", - "http 1.1.0", + "http 1.3.1", "jsonrpsee-server", "metrics 0.24.1", "metrics-exporter-prometheus 0.16.2", @@ -9537,8 +9714,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "reth-chainspec", "reth-db-api", @@ -9550,8 +9727,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-rpc-types", @@ -9570,8 +9747,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "pin-project", "reth-payload-primitives", @@ -9582,11 +9759,11 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "auto_impl", "op-alloy-rpc-types-engine", @@ -9601,8 +9778,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -9611,8 +9788,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "c-kzg", @@ -9625,13 +9802,13 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-trie", "auto_impl", @@ -9644,10 +9821,10 @@ dependencies = [ "op-alloy-consensus", "rayon", "reth-codecs", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "secp256k1 0.30.0", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "secp256k1", "serde", "serde_with", "thiserror 2.0.12", @@ -9655,12 +9832,12 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "auto_impl", "dashmap 6.1.0", @@ -9691,7 +9868,7 @@ dependencies = [ "reth-storage-errors", "reth-trie", "reth-trie-db", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "strum 0.27.1", "tokio", "tracing", @@ -9699,12 +9876,12 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "itertools 0.14.0", "metrics 0.24.1", "rayon", @@ -9727,10 +9904,10 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "derive_more 2.0.1", "modular-bitfield", "reth-codecs", @@ -9740,30 +9917,31 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", "reth-trie", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-inspector 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "reth-rpc" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.8.22", + "alloy-dyn-abi 0.8.23", "alloy-eips", + "alloy-evm", "alloy-genesis", "alloy-network", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", @@ -9780,9 +9958,9 @@ dependencies = [ "async-trait", "derive_more 2.0.1", "futures", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", - "hyper 1.4.1", + "hyper 1.6.0", "jsonrpsee", "jsonwebtoken", "parking_lot", @@ -9790,16 +9968,15 @@ dependencies = [ "rand 0.8.5", "reth-chainspec", "reth-consensus", - "reth-consensus-common", "reth-engine-primitives", "reth-errors", + "reth-ethereum-primitives", "reth-evm", "reth-metrics", "reth-network-api", "reth-network-peers", "reth-network-types", "reth-node-api", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -9811,9 +9988,9 @@ dependencies = [ "reth-rpc-types-compat", "reth-tasks", "reth-transaction-pool", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", "revm-inspectors", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_json", "thiserror 2.0.12", @@ -9826,13 +10003,13 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", "alloy-genesis", "alloy-json-rpc", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -9852,12 +10029,12 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-network", "alloy-provider", - "http 1.1.0", + "http 1.3.1", "jsonrpsee", "metrics 0.24.1", "pin-project", @@ -9868,7 +10045,7 @@ dependencies = [ "reth-metrics", "reth-network-api", "reth-node-core", - "reth-primitives", + "reth-primitives-traits", "reth-provider", "reth-rpc", "reth-rpc-api", @@ -9889,11 +10066,11 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core", @@ -9919,15 +10096,15 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.8.22", + "alloy-dyn-abi 0.8.23", "alloy-eips", "alloy-json-rpc", "alloy-network", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", @@ -9945,7 +10122,6 @@ dependencies = [ "reth-network-api", "reth-node-api", "reth-payload-builder", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -9955,23 +10131,22 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie-common", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", "revm-inspectors", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "tokio", "tracing", ] [[package]] name = "reth-rpc-eth-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", - "alloy-sol-types 0.8.22", + "alloy-sol-types 0.8.23", "derive_more 2.0.1", "futures", "itertools 0.14.0", @@ -9994,10 +10169,10 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "revm-inspectors", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "schnellru", "serde", "thiserror 2.0.12", @@ -10008,11 +10183,11 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-rpc-types-engine", - "http 1.1.0", + "http 1.3.1", "jsonrpsee-http-client", "pin-project", "tower 0.4.13", @@ -10022,11 +10197,11 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "jsonrpsee-core", "jsonrpsee-types", @@ -10038,33 +10213,32 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", "jsonrpsee-types", - "reth-primitives", "reth-primitives-traits", "serde", ] [[package]] name = "reth-stages" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "bincode 1.3.3", "blake3", "futures-util", "itertools 0.14.0", "num-traits", "rayon", - "reqwest 0.12.5", + "reqwest 0.12.14", "reth-codecs", "reth-config", "reth-consensus", @@ -10076,13 +10250,13 @@ dependencies = [ "reth-exex", "reth-fs-util", "reth-network-p2p", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-prune", "reth-prune-types", "reth-revm", "reth-stages-api", + "reth-static-file-types", "reth-storage-errors", "reth-trie", "reth-trie-db", @@ -10094,11 +10268,11 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "aquamarine", "auto_impl", "futures-util", @@ -10121,10 +10295,10 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "bytes", "modular-bitfield", "reth-codecs", @@ -10134,10 +10308,10 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "parking_lot", "rayon", "reth-codecs", @@ -10155,10 +10329,10 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "derive_more 2.0.1", "serde", "strum 0.27.1", @@ -10166,12 +10340,12 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -10185,29 +10359,29 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "reth-trie-db", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "reth-storage-errors" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "derive_more 2.0.1", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 2.0.12", ] [[package]] name = "reth-tasks" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "auto_impl", "dyn-clone", @@ -10224,8 +10398,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "tokio", "tokio-stream", @@ -10234,8 +10408,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "clap", "eyre", @@ -10251,10 +10425,10 @@ dependencies = [ name = "reth-tracing-ext" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types", "alloy-rpc-types-trace", - "alloy-sol-types 0.8.22", + "alloy-sol-types 0.8.23", "async-trait", "bitflags 2.9.0", "brontes-core", @@ -10275,14 +10449,16 @@ dependencies = [ "reth-revm", "reth-rpc", "reth-rpc-api", + "reth-rpc-eth-api", "reth-rpc-eth-types", "reth-rpc-server-types", "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 1.3.0", + "revm 20.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-inspector 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-inspectors", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_json", "tokio", @@ -10291,12 +10467,12 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "aquamarine", "auto_impl", @@ -10308,15 +10484,15 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-eth-wire-types", + "reth-ethereum-primitives", "reth-execution-types", "reth-fs-util", "reth-metrics", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hash 2.1.1", "schnellru", "serde", @@ -10329,12 +10505,12 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-trie", "auto_impl", @@ -10347,17 +10523,17 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "reth-trie-sparse", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "tracing", ] [[package]] name = "reth-trie-common" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -10369,17 +10545,17 @@ dependencies = [ "rayon", "reth-codecs", "reth-primitives-traits", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_with", ] [[package]] name = "reth-trie-db" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "derive_more 2.0.1", "metrics 0.24.1", @@ -10388,16 +10564,16 @@ dependencies = [ "reth-metrics", "reth-primitives-traits", "reth-trie", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", "tracing", ] [[package]] name = "reth-trie-parallel" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "derive_more 2.0.1", "itertools 0.14.0", @@ -10412,15 +10588,16 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "thiserror 2.0.12", + "tokio", "tracing", ] [[package]] name = "reth-trie-sparse" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rlp", "reth-execution-errors", "reth-primitives-traits", @@ -10432,264 +10609,267 @@ dependencies = [ [[package]] name = "reth-zstd-compressors" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" +version = "1.3.0" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "20.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "20.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4eafd506f0f00559874b343901fb441771b8d3722724d08dab6859d3339289f" dependencies = [ - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-handler 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-inspector 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-precompile 17.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "revm" -version = "20.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "20.0.0-alpha.5" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-database 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-context 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-database 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-handler 1.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-inspector 1.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-precompile 17.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", ] [[package]] name = "revm-bytecode" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ad4e81fd3d5241ba201d2514a21835d8d06fa8bb7a2fb5b733a424a4776f0c4" dependencies = [ "bitvec", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "phf", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-bytecode" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.3" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "bitvec", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "phf", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "serde", ] [[package]] name = "revm-context" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6aa6c3cd7ddd1aa68a0478f101fb5ebff83ee0566064b458cb3769725cde7fa" dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", "cfg-if", "derive-where", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", ] [[package]] name = "revm-context" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.4" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ - "auto_impl", "cfg-if", "derive-where", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", "serde", ] [[package]] name = "revm-context-interface" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117c87d8d2fce323ea208a091a1b399fd0f74a208679952e0e88a8da061f016e" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-context-interface" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.4" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", "serde", ] [[package]] name = "revm-database" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8e7b21693b74dbd9ee824a00225aad6a4ec9db903625304ae1ce0f4c0940c4" dependencies = [ + "alloy-eips", "auto_impl", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-database" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.3" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ + "alloy-eips", "auto_impl", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "serde", ] [[package]] name = "revm-database-interface" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd54a44b415d510cffea16955888544ce54f987958578b40a52d15963462b259" dependencies = [ "auto_impl", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-database-interface" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.3" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "auto_impl", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "serde", ] [[package]] name = "revm-handler" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc6048d06362493e8f0864d99ede5092ee2324db37e1e7d592fcb3c50e4af482" dependencies = [ "auto_impl", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-precompile 17.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-handler" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.5" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "auto_impl", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-context 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-precompile 17.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", "serde", ] [[package]] name = "revm-inspector" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b97116c773f9330b5d7f01796f57282f075389145d8e8932ac144d448356ad" dependencies = [ "auto_impl", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-handler 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-precompile 17.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_json", ] [[package]] name = "revm-inspector" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.5" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "auto_impl", - "revm-context 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-handler 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-context 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-handler 1.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-interpreter 16.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-precompile 17.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "serde", + "serde_json", ] [[package]] name = "revm-inspectors" -version = "0.15.0" -source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=8900c2b#8900c2bf8430e41f1a1cc92dbc1cf0615f00a26b" +version = "0.17.0-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1504e2851a11562fb350a9f408e5783351650aef11790aea0b0d0d9ab961c40" dependencies = [ - "alloy-primitives 0.8.22", + "alloy-primitives 0.8.23", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types 0.8.22", + "alloy-sol-types 0.8.23", "anstyle", "colorchoice", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_json", "thiserror 2.0.12", @@ -10697,45 +10877,32 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "16.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7273ce9185b2a63cbd6bc6cfb3bc2a611923f9fb0bd432bd565c4d8c0d5f606f" dependencies = [ - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-interpreter" -version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "16.0.0-alpha.5" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "serde", -] - -[[package]] -name = "revm-optimism" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" -dependencies = [ - "auto_impl", - "once_cell", - "revm 20.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-inspector 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-precompile 17.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", "serde", ] [[package]] name = "revm-precompile" -version = "17.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "17.0.0-alpha.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e812019b128ea7f33efa36e88f68ed5d9400e835055fe31e2b7162bd9ddc97ef" dependencies = [ "aurora-engine-modexp", "blst", @@ -10745,19 +10912,18 @@ dependencies = [ "libsecp256k1", "once_cell", "p256", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd", - "secp256k1 0.28.2", + "secp256k1", "sha2 0.10.8", "substrate-bn", ] [[package]] name = "revm-precompile" -version = "17.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "17.0.0-alpha.5" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "aurora-engine-modexp", "c-kzg", @@ -10765,87 +10931,57 @@ dependencies = [ "k256", "libsecp256k1", "once_cell", - "revm-context-interface 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "p256", + "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", "ripemd", - "secp256k1 0.30.0", + "secp256k1", "sha2 0.10.8", "substrate-bn", ] [[package]] name = "revm-primitives" -version = "1.3.0" +version = "16.0.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51187b852d9e458816a2e19c81f1dd6c924077e1a8fccd16e4f044f865f299d7" +checksum = "aa626cac49fb6bfdbfed2a1cd232eb5f54d36281703092eaeec859111b1a220e" dependencies = [ - "alloy-primitives 0.4.2", - "alloy-rlp", - "auto_impl", - "bitflags 2.9.0", - "bitvec", + "alloy-primitives 0.8.23", "enumn", - "hashbrown 0.14.5", - "hex", -] - -[[package]] -name = "revm-primitives" -version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" -dependencies = [ - "alloy-primitives 0.8.22", + "serde", ] [[package]] name = "revm-primitives" -version = "16.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" -dependencies = [ - "alloy-primitives 0.8.22", -] - -[[package]] -name = "revm-specification" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "16.0.0-alpha.3" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ + "alloy-primitives 0.8.23", "enumn", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", "serde", ] -[[package]] -name = "revm-specification" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" -dependencies = [ - "enumn", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", -] - [[package]] name = "revm-state" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm?rev=a8a9893b#a8a9893b11c480a4f1c2fa8742d8ca60bf3d7ba4" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3869d401da38fcf76021a6f5e4182fa027976f54763bc6ab2c477e440c6cd8f" dependencies = [ "bitflags 2.9.0", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm?rev=a8a9893b)", + "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] [[package]] name = "revm-state" -version = "1.0.0-alpha.1" -source = "git+https://github.com/bluealloy/revm.git#19a5f3be55d633f65bcb1291670292073046cdfc" +version = "1.0.0-alpha.3" +source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" dependencies = [ "bitflags 2.9.0", - "revm-bytecode 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", - "revm-specification 1.0.0-alpha.1 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "serde", ] [[package]] @@ -10860,15 +10996,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", "getrandom 0.2.15", "libc", - "spin", "untrusted", "windows-sys 0.52.0", ] @@ -10917,9 +11052,9 @@ dependencies = [ [[package]] name = "rlimit" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3560f70f30a0f16d11d01ed078a07740fe6b489667abc7c7b029155d9f21c3d8" +checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" dependencies = [ "libc", ] @@ -10958,9 +11093,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.6" +version = "0.10.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" +checksum = "a652edd001c53df0b3f96a36a8dc93fce6866988efc16808235653c6bcac8bf2" dependencies = [ "bytemuck", "byteorder", @@ -10983,17 +11118,19 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", - "fastrlp", + "fastrlp 0.3.1", + "fastrlp 0.4.0", "num-bigint", + "num-integer", "num-traits", "parity-scale-codec", "primitive-types", @@ -11050,31 +11187,44 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.23", + "semver 1.0.26", ] [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.2", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "log", "once_cell", @@ -11087,15 +11237,27 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework 3.2.0", ] [[package]] @@ -11109,19 +11271,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" dependencies = [ "web-time", ] @@ -11132,16 +11293,16 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "jni", "log", "once_cell", "rustls", - "rustls-native-certs", + "rustls-native-certs 0.7.3", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "webpki-roots", "winapi", @@ -11155,9 +11316,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -11166,9 +11327,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "rusty-fork" @@ -11184,15 +11345,15 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe_arch" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" dependencies = [ "bytemuck", ] @@ -11208,24 +11369,30 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "schnellru" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" +checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ "ahash", "cfg-if", "hashbrown 0.13.2", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -11265,16 +11432,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.28.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" -dependencies = [ - "rand 0.8.5", - "secp256k1-sys 0.9.2", -] - [[package]] name = "secp256k1" version = "0.30.0" @@ -11283,19 +11440,10 @@ checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys 0.10.1", + "secp256k1-sys", "serde", ] -[[package]] -name = "secp256k1-sys" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" -dependencies = [ - "cc", -] - [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -11312,18 +11460,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.9.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "num-bigint", "security-framework-sys", ] +[[package]] +name = "security-framework" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -11340,18 +11501,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] @@ -11370,28 +11531,28 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "seq-macro" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" +checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" [[package]] name = "serde" -version = "1.0.208" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -11407,11 +11568,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.8.0", "itoa", "memchr", "ryu", @@ -11420,20 +11581,20 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -11460,7 +11621,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.1", + "indexmap 2.8.0", "serde", "serde_derive", "serde_json", @@ -11477,7 +11638,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -11512,7 +11673,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -11573,9 +11734,9 @@ dependencies = [ [[package]] name = "sha3-asm" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" dependencies = [ "cc", "cfg-if", @@ -11660,27 +11821,27 @@ dependencies = [ [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "simple_asn1" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 1.0.63", + "thiserror 2.0.12", "time", ] [[package]] name = "siphasher" -version = "0.3.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "skeptic" @@ -11720,9 +11881,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" dependencies = [ "serde", ] @@ -11746,9 +11907,9 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -11763,7 +11924,7 @@ dependencies = [ "base64 0.22.1", "bytes", "futures", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "rand 0.8.5", @@ -11856,15 +12017,6 @@ dependencies = [ "strum_macros 0.25.3", ] -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - [[package]] name = "strum" version = "0.27.1" @@ -11884,20 +12036,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.99", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -11910,7 +12049,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -11934,21 +12073,21 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" -version = "12.10.0" +version = "12.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16629323a4ec5268ad23a575110a724ad4544aae623451de600c747bf87b36cf" +checksum = "66135c8273581acaab470356f808a1c74a707fe7ec24728af019d7247e089e71" dependencies = [ "debugid", - "memmap2 0.9.4", + "memmap2 0.9.5", "stable_deref_trait", "uuid", ] [[package]] name = "symbolic-demangle" -version = "12.10.0" +version = "12.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c043a45f08f41187414592b3ceb53fb0687da57209cc77401767fb69d5b596" +checksum = "42bcacd080282a72e795864660b148392af7babd75691d5ae9a3b77e29c98c77" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -11968,9 +12107,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.99" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -11986,19 +12125,19 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "syn-solidity" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9f9798a84bca5cd4d1760db691075fda8f2c3a5d9647e8bfd29eb9b3fabb87" +checksum = "d975606bae72d8aad5b07d9342465e123a2cccf53a5a735aedf81ca92a709ecb" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -12009,9 +12148,12 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -12021,7 +12163,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -12058,8 +12200,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", + "core-foundation 0.9.4", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.9.4", + "system-configuration-sys 0.6.0", ] [[package]] @@ -12072,6 +12225,16 @@ dependencies = [ "libc", ] +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tagptr" version = "0.2.0" @@ -12086,9 +12249,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.41" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" dependencies = [ "filetime", "libc", @@ -12103,14 +12266,15 @@ checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" dependencies = [ "cfg-if", "fastrand", + "getrandom 0.3.1", "once_cell", - "rustix", + "rustix 1.0.2", "windows-sys 0.59.0", ] @@ -12161,7 +12325,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -12179,11 +12343,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.63", + "thiserror-impl 1.0.69", ] [[package]] @@ -12197,13 +12361,13 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -12214,7 +12378,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -12286,9 +12450,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" dependencies = [ "deranged", "itoa", @@ -12303,15 +12467,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" dependencies = [ "num-conv", "time-core", @@ -12348,9 +12512,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -12363,14 +12527,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.2", + "mio 1.0.3", "parking_lot", "pin-project-lite", "signal-hook-registry", @@ -12382,13 +12546,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -12403,12 +12567,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] @@ -12424,9 +12587,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -12452,9 +12615,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", @@ -12467,14 +12630,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit", ] [[package]] @@ -12488,26 +12651,15 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.7.1", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.20" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.8.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow 0.7.4", ] [[package]] @@ -12540,7 +12692,8 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", + "tokio", "tower-layer", "tower-service", ] @@ -12557,7 +12710,7 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 1.1.0", + "http 1.3.1", "http-body 1.0.1", "http-body-util", "http-range-header", @@ -12590,9 +12743,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -12607,27 +12760,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ "crossbeam-channel", - "thiserror 1.0.63", + "thiserror 1.0.69", "time", "tracing-subscriber", ] [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -12645,9 +12798,9 @@ dependencies = [ [[package]] name = "tracing-journald" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba316a74e8fc3c3896a850dba2375928a9fa171b085ecddfc7c054d39970f3fd" +checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", @@ -12679,9 +12832,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" dependencies = [ "serde", "tracing-core", @@ -12689,9 +12842,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -12708,11 +12861,36 @@ dependencies = [ "tracing-serde", ] +[[package]] +name = "tree_hash" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c58eb0f518840670270d90d97ffee702d8662d9c5494870c9e1e9e0fa00f668" +dependencies = [ + "alloy-primitives 0.8.23", + "ethereum_hashing", + "ethereum_ssz", + "smallvec", + "typenum", +] + +[[package]] +name = "tree_hash_derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "699e7fb6b3fdfe0c809916f251cf5132d64966858601695c3736630a87e7166a" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "triomphe" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" +checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" [[package]] name = "try-lock" @@ -12728,7 +12906,7 @@ checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "rand 0.9.0", @@ -12751,15 +12929,15 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -12793,18 +12971,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-reverse" @@ -12817,21 +12992,27 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -12845,9 +13026,9 @@ dependencies = [ [[package]] name = "unsigned-varint" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" [[package]] name = "untrusted" @@ -12855,6 +13036,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" version = "2.5.4" @@ -12893,18 +13080,18 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.1", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -12926,6 +13113,47 @@ dependencies = [ "time", ] +[[package]] +name = "vergen" +version = "9.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" +dependencies = [ + "anyhow", + "cargo_metadata 0.19.2", + "derive_builder", + "regex", + "rustversion", + "time", + "vergen-lib", +] + +[[package]] +name = "vergen-git2" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86bae87104cb2790cdee615c2bb54729804d307191732ab27b1c5357ea6ddc5" +dependencies = [ + "anyhow", + "derive_builder", + "git2", + "rustversion", + "time", + "vergen 9.0.4", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + [[package]] name = "version_check" version = "0.9.5" @@ -12934,15 +13162,15 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "virtue" -version = "0.0.13" +version = "0.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] @@ -12983,47 +13211,48 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13031,28 +13260,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -13077,9 +13309,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -13097,18 +13329,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ "rustls-pki-types", ] [[package]] name = "wide" -version = "0.7.28" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690" +checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" dependencies = [ "bytemuck", "safe_arch", @@ -13211,7 +13443,7 @@ dependencies = [ "windows-implement 0.58.0", "windows-interface 0.58.0", "windows-result 0.2.0", - "windows-strings", + "windows-strings 0.1.0", "windows-targets 0.52.6", ] @@ -13223,7 +13455,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -13234,7 +13466,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -13245,7 +13477,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -13256,7 +13488,24 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", +] + +[[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result 0.3.1", + "windows-strings 0.3.1", + "windows-targets 0.53.0", ] [[package]] @@ -13277,6 +13526,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-strings" version = "0.1.0" @@ -13287,6 +13545,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -13338,13 +13605,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -13357,6 +13640,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -13369,6 +13658,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -13381,12 +13676,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -13399,6 +13706,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -13411,6 +13724,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -13423,6 +13742,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -13436,28 +13761,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.5.40" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] @@ -13472,16 +13794,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "wit-bindgen-rt" version = "0.33.0" @@ -13514,9 +13826,9 @@ dependencies = [ "js-sys", "log", "pharos", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 1.0.63", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -13533,20 +13845,19 @@ dependencies = [ [[package]] name = "xattr" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" dependencies = [ "libc", - "linux-raw-sys", - "rustix", + "rustix 1.0.2", ] [[package]] name = "xxhash-rust" -version = "0.8.12" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" [[package]] name = "yansi" @@ -13556,9 +13867,9 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -13568,13 +13879,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "synstructure", ] @@ -13584,17 +13895,16 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", "zerocopy-derive 0.7.35", ] [[package]] name = "zerocopy" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09612fda0b63f7cb9e0af7e5916fe5a1f8cdcb066829f10f36883207628a4872" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" dependencies = [ - "zerocopy-derive 0.8.22", + "zerocopy-derive 0.8.23", ] [[package]] @@ -13605,38 +13915,38 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "zerocopy-derive" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79f81d38d7a2ed52d8f034e62c568e111df9bf8aba2f7cf19ddc5bf7bd89d520" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", "synstructure", ] @@ -13657,7 +13967,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] @@ -13679,32 +13989,32 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.99", + "syn 2.0.100", ] [[package]] name = "zstd" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.2.1" +version = "7.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.14+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 22811f5b7b..abdeb678aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,47 +37,50 @@ brontes-analytics = { path = "./crates/brontes-analytics" } brontes-libmdbx = { path = "./crates/brontes-database/libmdbx-rs" } # Reth -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", rev = "916b2415" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-types", rev = "916b2415" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", package = "reth-tasks", rev = "916b2415" } -reth-rpc = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc", rev = "916b2415" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-api", rev = "916b2415" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-builder", rev = "916b2415" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", rev = "916b2415" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", package = "reth-transaction-pool", rev = "916b2415" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", package = "reth-chainspec", rev = "916b2415" } -reth-network-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-network-api", rev = "916b2415" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", package = "reth-primitives", rev = "916b2415" } -reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", rev = "916b2415" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-core", rev = "916b2415" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", package = "reth-revm", rev = "916b2415" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", version = "1.3.0", tag = "v1.3.0" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-types", version = "1.3.0", tag = "v1.3.0" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", package = "reth-tasks", version = "1.3.0", tag = "v1.3.0" } +reth-rpc = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-api", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-eth-api", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-builder", version = "1.3.0", tag = "v1.3.0" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", version = "1.3.0", tag = "v1.3.0" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", package = "reth-transaction-pool", version = "1.3.0", tag = "v1.3.0" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", package = "reth-chainspec", version = "1.3.0", tag = "v1.3.0" } +reth-network-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-network-api", version = "1.3.0", tag = "v1.3.0" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", package = "reth-primitives", version = "1.3.0", tag = "v1.3.0" } +reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", version = "1.3.0", tag = "v1.3.0" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-core", version = "1.3.0", tag = "v1.3.0" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", package = "reth-revm", version = "1.3.0", tag = "v1.3.0" } reth-stages = { git = "https://github.com/paradigmxyz/reth", package = "reth-stages", features = [ "test-utils", -], rev = "916b2415" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", package = "reth-trie", rev = "916b2415" } -reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", package = "reth-libmdbx", rev = "916b2415" } -reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", package = "reth-eth-wire", rev = "916b2415" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-payload-builder", rev = "916b2415" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", package = "reth-metrics", rev = "916b2415" } -reth-codecs = { git = "https://github.com/paradigmxyz/reth", package = "reth-codecs", rev = "916b2415" } -reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } -reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } +], version = "1.3.0", tag = "v1.3.0" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", package = "reth-trie", version = "1.3.0", tag = "v1.3.0" } +reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", package = "reth-libmdbx", version = "1.3.0", tag = "v1.3.0" } +reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", package = "reth-eth-wire", version = "1.3.0", tag = "v1.3.0" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-payload-builder", version = "1.3.0", tag = "v1.3.0" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", package = "reth-metrics", version = "1.3.0", tag = "v1.3.0" } +reth-codecs = { git = "https://github.com/paradigmxyz/reth", package = "reth-codecs", version = "1.3.0", tag = "v1.3.0" } +reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } # ruint ruint = "1.9.0" # revm -revm = { git = "https://github.com/bluealloy/revm.git", version = "20.0.0-alpha.1", features = [ +revm = { git = "https://github.com/bluealloy/revm.git", version = "20.0.0-alpha.5", features = [ "std", "secp256k1", "optional_balance_check", "optional_block_gas_limit", ], default-features = false } -revm-primitives = { version = "1.0.0-alpha.1", features = [ +revm-primitives = { version = "16.0.0-alpha.3", features = [ "std", ], default-features = false } -revm-inspector = { version = "1.0.0-alpha.1", default-features = false } +revm-inspector = { version = "1.0.0-alpha.5", default-features = false } +revm-inspectors = "0.17.0-alpha.1" +# revm-interpreter = { version = "16.0.0-alpha.5", default-features = false } # Alloy @@ -85,25 +88,25 @@ alloy-sol-types = { version = "0.8.15", features = ["json"] } alloy-sol-macro = { version = "0.8.15", features = ["json"] } alloy-rlp = { version = "0.3.4" } alloy-rlp-derive = { version = "0.3.4" } -alloy-primitives = { version = "0.8.21", features = ["rlp"] } +alloy-primitives = { version = "0.8.20", features = ["rlp"] } alloy-json-abi = "0.7.0" alloy-dyn-abi = "0.7.0 " # Alloy core -alloy-provider = { version = "0.11.1", default-features = false, features = [ +alloy-provider = { version = "0.12.5", default-features = false, features = [ "ipc", "ws", "pubsub", "reqwest", ] } -alloy-transport-http = { version = "0.11.1" } -alloy-transport = { version = "0.11.1" } -alloy-network = { version = "0.11.1" } -alloy-json-rpc = { version = "0.11.1" } -alloy-rpc-types = { version = "0.11.1", features = ["jsonrpsee-types", "eth"] } -alloy-rpc-types-trace = "0.11.1" -alloy-rpc-types-beacon = "0.11.1" -alloy-rpc-client = { version = "0.11.1" } +alloy-transport-http = { version = "0.12.5" } +alloy-transport = { version = "0.12.5" } +alloy-network = { version = "0.12.5" } +alloy-json-rpc = { version = "0.12.5" } +alloy-rpc-types = { version = "0.12.5", features = ["jsonrpsee-types", "eth"] } +alloy-rpc-types-trace = "0.12.5" +alloy-rpc-types-beacon = "0.12.5" +alloy-rpc-client = { version = "0.12.5" } # Async @@ -195,23 +198,6 @@ tar = "0.4.41" flate2 = "1.0.30" -[patch.crates-io] -alloy-evm = { git = "https://github.com/alloy-rs/evm", rev = "04fa394" } -revm = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-bytecode = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-database = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-state = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-primitives = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-inspector = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-context = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-context-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-database-interface = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-specification = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-optimism = { git = "https://github.com/bluealloy/revm", rev = "a8a9893b" } -revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "8900c2b" } - - [profile.release] lto = "thin" strip = "debuginfo" diff --git a/crates/brontes-database/brontes-db/Cargo.toml b/crates/brontes-database/brontes-db/Cargo.toml index 1cd092338b..c518a38dc8 100644 --- a/crates/brontes-database/brontes-db/Cargo.toml +++ b/crates/brontes-database/brontes-db/Cargo.toml @@ -56,7 +56,7 @@ rand = "0.8.5" modular-bitfield = "0.11.2" bytes = "1.5" zstd = "0.13" -chrono = "0.4.35" +chrono = "0.4.40" dashmap = "5.5.3" polars.workspace = true arrow.workspace = true diff --git a/crates/reth-tracing-ext/Cargo.toml b/crates/reth-tracing-ext/Cargo.toml index 919c24891e..1b34362a5c 100644 --- a/crates/reth-tracing-ext/Cargo.toml +++ b/crates/reth-tracing-ext/Cargo.toml @@ -26,13 +26,16 @@ alloy-rpc-types-trace.workspace = true alloy-rpc-types.workspace = true futures.workspace = true reth-rpc-eth-types.workspace = true +reth-rpc-eth-api.workspace = true reth-rpc-server-types.workspace = true brontes-types.workspace = true +revm-inspector.workspace = true +# revm-interpreter.workspace = true tracing.workspace = true num_cpus.workspace = true revm-primitives.workspace = true -revm-inspector.workspace = true +revm-inspectors.workspace = true rayon.workspace = true bitflags = "2.4" diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index d3581cc42b..0819066e60 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -17,6 +17,7 @@ use reth_provider::{ ProviderFactory, }; use reth_rpc::{DebugApi, EthApi, EthFilter, TraceApi}; +use reth_rpc_eth_api::helpers::Trace; use reth_rpc_eth_types::{ EthResult, EthStateCache, EthStateCacheConfig, FeeHistoryCache, FeeHistoryCacheConfig, GasCap, GasPriceOracle, GasPriceOracleConfig, @@ -36,6 +37,7 @@ use reth_transaction_pool::{ TransactionValidationTaskExecutor, }; use revm::inspector::inspectors::GasInspector; +// use revm::inspector::inspectors::GasInspector; mod provider; pub mod reth_tracer; @@ -139,13 +141,15 @@ impl TracingClient { ) -> EthResult>> { let insp_setup = || BrontesTracingInspector { config: TracingInspectorConfig { - record_logs: true, - record_steps: false, - record_state_diff: false, - record_stack_snapshots: StackSnapshotType::None, - record_memory_snapshots: false, - record_call_return_data: true, - exclude_precompile_calls: true, + record_logs: true, + record_steps: false, + record_state_diff: false, + record_stack_snapshots: StackSnapshotType::None, + record_memory_snapshots: false, + exclude_precompile_calls: true, + record_returndata_snapshots: false, + record_opcodes_filter: None, + record_immediate_bytes: false, }, traces: CallTraceArena::default(), trace_stack: Vec::new(), @@ -155,11 +159,19 @@ impl TracingClient { spec_id: None, }; - self.api - .trace_block_with_inspector(block_id, insp_setup, move |tx_info, inspector, res, _, _| { - Ok(inspector.into_trace_results(tx_info, &res)) - }) - .await + let t = + self.api + .trace_block_inspector( + block_id, + None, + insp_setup, + move |tx_info, inspector, res, _, _| { + Ok(inspector.into_trace_results(tx_info, &res)) + }, + ) + .await; + + Ok(()) } } diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index 304ac8fd7e..e7fa941b07 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -2,24 +2,26 @@ use std::cmp::min; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256, U256}; use alloy_rpc_types::{ - state::StateOverride, AnyReceiptEnvelope, BlockId, BlockNumberOrTag, BlockOverrides, Header, - Log, ReceiptEnvelope, TransactionReceipt, TransactionRequest, + state::StateOverride, AccessList, AnyReceiptEnvelope, BlockId, BlockNumberOrTag, + BlockOverrides, Header, Log, ReceiptEnvelope, TransactionReceipt, TransactionRequest, }; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; use eyre::eyre; use reth_primitives::Bytecode; use reth_provider::{BlockIdReader, BlockNumReader, HeaderProvider}; -use reth_revm::{database::StateProviderDatabase, db::CacheDB}; +use reth_revm::{ + context::{result::ExecutionResult, Block, BlockEnv, CfgEnv}, + database::StateProviderDatabase, + db::CacheDB, +}; use reth_rpc_api::EthApiServer; -// use reth_rpc_eth_types::{ -// AnyReceiptEnvelope, BlockId, BlockNumberOrTag, BlockOverrides, -// EthApiError, EthResult, EthTransactions, Log, RevertError, RpcInvalidTransactionError, -// TransactionReceipt, TransactionRequest, -// }; +use reth_rpc_eth_api::helpers::{Call, LoadState}; use reth_rpc_eth_types::{EthApiError, EthResult, RevertError, RpcInvalidTransactionError}; -use revm::Database; -use revm_primitives::ExecutionResult; +use revm::{Database, DatabaseRef}; +use revm_primitives::TxEnv; +// use revm::{context::Block, Database, DatabaseRef}; +// use revm_primitives::TxEnv; use crate::TracingClient; #[async_trait::async_trait] @@ -42,10 +44,16 @@ impl TracingProvider for TracingClient { request: TransactionRequest, block_number: BlockId, ) -> eyre::Result { - let (cfg, block_env, at) = self.api.evm_env_at(block_number).await?; - let state = self.api.state_at(at)?; + let (cfg, at) = self.api.evm_env_at(block_number).await?; + let state = self.api.state_at_block_id(at)?; let mut db = CacheDB::new(StateProviderDatabase::new(state)); - let env = prepare_call_env(cfg, block_env, request, self.api.call_gas_limit(), &mut db)?; + let env = prepare_call_env( + cfg.cfg_env, + cfg.block_env, + request, + self.api.call_gas_limit(), + &mut db, + )?; let (res, _) = self.api.transact(&mut db, env)?; Ok(ensure_success(res.result)?) @@ -143,7 +151,7 @@ impl TracingProvider for TracingClient { } pub(crate) fn prepare_call_env( - mut cfg: CfgEnvWithHandlerCfg, + mut cfg: CfgEnv, block: BlockEnv, request: TransactionRequest, gas_limit: u64, @@ -196,6 +204,7 @@ pub(crate) fn build_call_evm_env( request: TransactionRequest, ) -> EthResult { let tx = create_txn_env(&block, request)?; + // CfgEnv: Ok(EnvWithHandlerCfg::new_with_cfg_env(cfg, block, tx)) } @@ -234,13 +243,13 @@ pub(crate) fn create_txn_env( gas_price.map(U256::from), max_fee_per_gas.map(U256::from), max_priority_fee_per_gas.map(U256::from), - block_env.basefee, + U256::from(block_env.basefee), blob_versioned_hashes.as_deref(), max_fee_per_blob_gas.map(U256::from), - block_env.get_blob_gasprice().map(U256::from), + block_env.blob_gasprice().map(U256::from), )?; - let gas_limit = gas.unwrap_or_else(|| block_env.gas_limit.min(U256::from(u64::MAX)).to()); + let gas_limit = gas.unwrap_or_else(|| block_env.gas_limit.min(u64::MAX)); let env = TxEnv { gas_limit: gas_limit .try_into() @@ -254,7 +263,7 @@ pub(crate) fn create_txn_env( data: input.try_into_unique_input()?.unwrap_or_default(), chain_id, access_list: access_list - .map(reth_rpc_types::AccessList::into_flattened) + .map(AccessList::into_flattened) .unwrap_or_default(), // EIP-4844 fields blob_hashes: blob_versioned_hashes.unwrap_or_default(), diff --git a/crates/reth-tracing-ext/src/reth_tracer/arena.rs b/crates/reth-tracing-ext/src/reth_tracer/arena.rs index de8cfb45ee..cec9820539 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/arena.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/arena.rs @@ -1,14 +1,48 @@ -use types::{CallTrace, CallTraceNode, LogCallOrder}; +use super::types::{CallTrace, CallTraceNode, TraceMemberOrder}; -use super::types; /// An arena of recorded traces. +/// +/// This type will be populated via the +/// [TracingInspector](super::TracingInspector). #[derive(Clone, Debug, PartialEq, Eq)] pub struct CallTraceArena { /// The arena of recorded trace nodes pub(crate) arena: Vec, } +impl Default for CallTraceArena { + fn default() -> Self { + // The first node is the root node + Self { arena: vec![Default::default()] } + } +} + impl CallTraceArena { + /// Returns the nodes in the arena. + pub fn nodes(&self) -> &[CallTraceNode] { + &self.arena + } + + /// Returns a mutable reference to the nodes in the arena. + pub fn nodes_mut(&mut self) -> &mut Vec { + &mut self.arena + } + + /// Consumes the arena and returns the nodes. + pub fn into_nodes(self) -> Vec { + self.arena + } + + /// Clears the arena + /// + /// Note that this method has no effect on the allocated capacity of the + /// arena. + #[inline] + pub fn clear(&mut self) { + self.arena.clear(); + self.arena.push(Default::default()); + } + /// Pushes a new trace into the arena, returning the trace ID /// /// This appends a new trace to the arena, and also inserts a new entry in @@ -43,7 +77,7 @@ impl CallTraceArena { if kind.is_attach_to_parent() { let parent = &mut self.arena[entry]; let trace_location = parent.children.len(); - parent.ordering.push(LogCallOrder::Call(trace_location)); + parent.ordering.push(TraceMemberOrder::Call(trace_location)); parent.children.push(id); } @@ -59,28 +93,10 @@ impl CallTraceArena { } } } - - /// Returns the nodes in the arena - pub fn nodes(&self) -> &[CallTraceNode] { - &self.arena - } - - /// Consumes the arena and returns the nodes - pub fn into_nodes(self) -> Vec { - self.arena - } - - /// Clears the arena - /// - /// Note that this method has no effect on the allocated capacity of the - /// arena. - #[inline] - pub fn clear(&mut self) { - self.arena.clear(); - } } /// How to push a trace into the arena +#[derive(Clone, Copy, Debug, PartialEq, Eq)] pub(crate) enum PushTraceKind { /// This will _only_ push the trace into the arena. PushOnly, @@ -95,10 +111,3 @@ impl PushTraceKind { matches!(self, Self::PushAndAttachToParent) } } - -impl Default for CallTraceArena { - fn default() -> Self { - // The first node is the root node - Self { arena: vec![Default::default()] } - } -} diff --git a/crates/reth-tracing-ext/src/reth_tracer/config.rs b/crates/reth-tracing-ext/src/reth_tracer/config.rs index 04481f4099..fabc013782 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/config.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/config.rs @@ -1,39 +1,110 @@ -use std::collections::HashSet; +use alloy_primitives::{map::HashSet, U256}; +use alloy_rpc_types_trace::{ + geth::{CallConfig, FlatCallConfig, GethDefaultTracingOptions, PreStateConfig}, + parity::TraceType, +}; +use revm::bytecode::opcode::OpCode; -use alloy_rpc_types_trace::{geth::GethDefaultTracingOptions, parity::TraceType}; +/// 256 bits each marking whether an opcode should be included into steps trace +/// or not. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[must_use] +pub struct OpcodeFilter(U256); + +impl Default for OpcodeFilter { + fn default() -> Self { + Self::new() + } +} + +impl OpcodeFilter { + /// Returns a new [OpcodeFilter] that does not trace any opcodes. + #[inline] + pub const fn new() -> Self { + Self(U256::ZERO) + } + + /// Returns whether steps with given [OpCode] should be traced. + #[inline] + pub fn is_enabled(&self, op: OpCode) -> bool { + self.0.bit(op.get() as usize) + } + + /// Enables tracing of given [OpCode]. + #[inline] + pub fn enable(&mut self, op: OpCode) -> &mut Self { + self.0.set_bit(op.get() as usize, true); + self + } + /// Enables tracing of given [OpCode]. + #[inline] + pub const fn enabled(mut self, op: OpCode) -> Self { + let index = op.get() as usize; + let mut limbs = self.0.into_limbs(); + let (limb, bit) = (index / 64, index % 64); + limbs[limb] |= 1 << bit; + self.0 = U256::from_limbs(limbs); + self + } +} + +/// Gives guidance to the [TracingInspector](crate::tracing::TracingInspector). +/// /// Use [TracingInspectorConfig::default_parity] or /// [TracingInspectorConfig::default_geth] to get the default configs for /// specific styles of traces. -#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)] pub struct TracingInspectorConfig { /// Whether to record every individual opcode level step. - pub record_steps: bool, + pub record_steps: bool, /// Whether to record individual memory snapshots. - pub record_memory_snapshots: bool, + pub record_memory_snapshots: bool, /// Whether to record individual stack snapshots. - pub record_stack_snapshots: StackSnapshotType, + pub record_stack_snapshots: StackSnapshotType, /// Whether to record state diffs. - pub record_state_diff: bool, + pub record_state_diff: bool, + /// Whether to record returndata buffer snapshots. + pub record_returndata_snapshots: bool, + /// Optional filter for opcodes to record. If provided, only steps with + /// opcode in this set will be recorded. + pub record_opcodes_filter: Option, /// Whether to ignore precompile calls. - pub exclude_precompile_calls: bool, - /// Whether to record individual return data - pub record_call_return_data: bool, + pub exclude_precompile_calls: bool, /// Whether to record logs - pub record_logs: bool, + pub record_logs: bool, + /// Whether to record immediate bytes for opcodes. + pub record_immediate_bytes: bool, } impl TracingInspectorConfig { /// Returns a config with everything enabled. pub const fn all() -> Self { Self { - record_steps: true, - record_memory_snapshots: true, - record_stack_snapshots: StackSnapshotType::Full, - record_state_diff: false, - exclude_precompile_calls: false, - record_call_return_data: false, - record_logs: true, + record_steps: true, + record_memory_snapshots: true, + record_stack_snapshots: StackSnapshotType::Full, + record_state_diff: true, + record_returndata_snapshots: true, + record_opcodes_filter: None, + exclude_precompile_calls: false, + record_logs: true, + record_immediate_bytes: true, + } + } + + /// Returns a config with everything disabled. + pub const fn none() -> Self { + Self { + record_steps: false, + record_memory_snapshots: false, + record_stack_snapshots: StackSnapshotType::None, + record_state_diff: false, + record_returndata_snapshots: false, + exclude_precompile_calls: false, + record_logs: false, + record_opcodes_filter: None, + record_immediate_bytes: false, } } @@ -43,13 +114,15 @@ impl TracingInspectorConfig { /// `trace_transaction` pub const fn default_parity() -> Self { Self { - record_steps: false, - record_memory_snapshots: false, - record_stack_snapshots: StackSnapshotType::None, - record_state_diff: false, - exclude_precompile_calls: true, - record_call_return_data: false, - record_logs: false, + record_steps: false, + record_memory_snapshots: false, + record_stack_snapshots: StackSnapshotType::None, + record_state_diff: false, + record_returndata_snapshots: false, + exclude_precompile_calls: true, + record_logs: false, + record_opcodes_filter: None, + record_immediate_bytes: false, } } @@ -57,15 +130,20 @@ impl TracingInspectorConfig { /// /// This config does _not_ record opcode level traces and is suited for /// `debug_traceTransaction` + /// + /// This will configure the default output of geth's default + /// [StructLogTracer](alloy_rpc_types_trace::geth::DefaultFrame). pub const fn default_geth() -> Self { Self { - record_steps: true, - record_memory_snapshots: true, - record_stack_snapshots: StackSnapshotType::Full, - record_state_diff: true, - exclude_precompile_calls: false, - record_call_return_data: false, - record_logs: false, + record_steps: true, + record_memory_snapshots: false, + record_stack_snapshots: StackSnapshotType::Full, + record_state_diff: true, + record_returndata_snapshots: false, + exclude_precompile_calls: false, + record_logs: false, + record_opcodes_filter: None, + record_immediate_bytes: false, } } @@ -87,6 +165,10 @@ impl TracingInspectorConfig { /// Returns a config for geth style traces based on the given /// [GethDefaultTracingOptions]. + /// + /// This will configure the output of geth's default + /// [StructLogTracer](alloy_rpc_types_trace::geth::DefaultFrame) according + /// to the given config. #[inline] pub fn from_geth_config(config: &GethDefaultTracingOptions) -> Self { Self { @@ -101,6 +183,58 @@ impl TracingInspectorConfig { } } + /// Returns a config for geth's + /// [CallTracer](alloy_rpc_types_trace::geth::CallFrame). + /// + /// This returns [Self::none] and enables + /// [TracingInspectorConfig::record_logs] if configured in + /// the given [CallConfig] + #[inline] + pub fn from_geth_call_config(config: &CallConfig) -> Self { + Self::none() + // call tracer is similar parity tracer with optional support for logs + .set_record_logs(config.with_log.unwrap_or_default()) + } + + /// Returns a config for geth's + /// [FlatCallTracer](alloy_rpc_types_trace::geth::call::FlatCallFrame). + /// + /// This returns [Self::default_parity] and sets + /// [TracingInspectorConfig::exclude_precompile_calls] if configured in the + /// given [FlatCallConfig] + #[inline] + pub fn from_flat_call_config(config: &FlatCallConfig) -> Self { + Self::default_parity() + // call tracer is similar parity tracer with optional support for logs + .set_exclude_precompile_calls(!config.include_precompiles.unwrap_or_default()) + } + + /// Returns a config for geth's + /// [PrestateTracer](alloy_rpc_types_trace::geth::PreStateFrame). + /// + /// Note: This currently returns [Self::none] because the prestate tracer + /// result currently relies on the execution result entirely, see + /// [GethTraceBuilder::geth_prestate_traces](crate::tracing::geth::GethTraceBuilder::geth_prestate_traces) + #[inline] + pub const fn from_geth_prestate_config(_config: &PreStateConfig) -> Self { + Self::none() + } + + /// Merge another config into this one. + #[inline] + pub fn merge(&mut self, other: Self) -> &mut Self { + self.record_steps |= other.record_steps; + self.record_memory_snapshots |= other.record_memory_snapshots; + self.record_stack_snapshots = other.record_stack_snapshots; + self.record_state_diff |= other.record_state_diff; + self.record_returndata_snapshots |= other.record_returndata_snapshots; + self.exclude_precompile_calls |= other.exclude_precompile_calls; + self.record_logs |= other.record_logs; + self.record_opcodes_filter = self.record_opcodes_filter.or(other.record_opcodes_filter); + self.record_immediate_bytes |= other.record_immediate_bytes; + self + } + /// Configure whether calls to precompiles should be ignored. /// /// If set to `true`, calls to precompiles without value transfers will be @@ -110,27 +244,57 @@ impl TracingInspectorConfig { self } + /// Disable recording of individual opcode level steps + pub const fn disable_steps(self) -> Self { + self.set_steps(false) + } + + /// Enable recording of individual opcode level steps + pub const fn steps(self) -> Self { + self.set_steps(true) + } + /// Configure whether individual opcode level steps should be recorded pub const fn set_steps(mut self, record_steps: bool) -> Self { self.record_steps = record_steps; self } + /// Disable recording of individual memory snapshots + pub const fn disable_memory_snapshots(self) -> Self { + self.set_memory_snapshots(false) + } + + /// Enable recording of individual memory snapshots + pub const fn memory_snapshots(self) -> Self { + self.set_memory_snapshots(true) + } + /// Configure whether the tracer should record memory snapshots pub const fn set_memory_snapshots(mut self, record_memory_snapshots: bool) -> Self { self.record_memory_snapshots = record_memory_snapshots; self } + /// Disable recording of individual stack snapshots + pub const fn disable_stack_snapshots(self) -> Self { + self.set_stack_snapshots(StackSnapshotType::None) + } + + /// Enable recording of individual stack snapshots + pub const fn stack_snapshots(self) -> Self { + self.set_stack_snapshots(StackSnapshotType::Full) + } + /// Configure how the tracer should record stack snapshots pub const fn set_stack_snapshots(mut self, record_stack_snapshots: StackSnapshotType) -> Self { self.record_stack_snapshots = record_stack_snapshots; self } - /// Sets state diff recording to true. - pub const fn with_state_diffs(self) -> Self { - self.set_steps_and_state_diffs(true) + /// Disable recording of state diffs + pub const fn disable_state_diffs(self) -> Self { + self.set_state_diffs(false) } /// Configure whether the tracer should record state diffs @@ -139,6 +303,14 @@ impl TracingInspectorConfig { self } + /// Sets state diff recording to true. + /// + /// Also enables steps recording since state diff recording requires steps + /// recording. + pub const fn with_state_diffs(self) -> Self { + self.set_steps_and_state_diffs(true) + } + /// Configure whether the tracer should record steps and state diffs. /// /// This is a convenience method for setting both @@ -151,19 +323,52 @@ impl TracingInspectorConfig { self } + /// Disable recording of individual logs + pub const fn disable_record_logs(self) -> Self { + self.set_record_logs(false) + } + + /// Enable recording of individual logs + pub const fn record_logs(self) -> Self { + self.set_record_logs(true) + } + /// Configure whether the tracer should record logs pub const fn set_record_logs(mut self, record_logs: bool) -> Self { self.record_logs = record_logs; self } + + /// Configure whether the tracer should record immediate bytes + pub const fn set_immediate_bytes(mut self, record_immediate_bytes: bool) -> Self { + self.record_immediate_bytes = record_immediate_bytes; + self + } + + /// Enable recording of immediate bytes + pub const fn record_immediate_bytes(self) -> Self { + self.set_immediate_bytes(true) + } + + /// If [OpcodeFilter] is configured, returns whether the given opcode should + /// be recorded. Otherwise, always returns true. + #[inline] + pub fn should_record_opcode(&self, op: OpCode) -> bool { + self.record_opcodes_filter + .as_ref() + .is_none_or(|filter| filter.is_enabled(op)) + } } /// How much of the stack to record. Nothing, just the items pushed, or the full /// stack -#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)] pub enum StackSnapshotType { /// Don't record stack snapshots + #[default] None, + /// Record full, push stack + All, /// Record only the items pushed to the stack Pushes, /// Record the full stack @@ -171,6 +376,12 @@ pub enum StackSnapshotType { } impl StackSnapshotType { + /// Returns true if this is the [StackSnapshotType::All] variant + #[inline] + pub const fn is_all(self) -> bool { + matches!(self, Self::All) + } + /// Returns true if this is the [StackSnapshotType::Full] variant #[inline] pub const fn is_full(self) -> bool { @@ -187,7 +398,6 @@ impl StackSnapshotType { /// What kind of tracing style this is. /// /// This affects things like error messages. -#[allow(dead_code)] #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub(crate) enum TraceStyle { /// Parity style tracer @@ -199,7 +409,6 @@ pub(crate) enum TraceStyle { impl TraceStyle { /// Returns true if this is a parity style tracer. - #[allow(dead_code)] pub(crate) const fn is_parity(self) -> bool { matches!(self, Self::Parity) } @@ -211,20 +420,20 @@ mod tests { #[test] fn test_parity_config() { - let mut s = HashSet::new(); + let mut s = HashSet::default(); s.insert(TraceType::StateDiff); let config = TracingInspectorConfig::from_parity_config(&s); // not required assert!(!config.record_steps); assert!(!config.record_state_diff); - let mut s = HashSet::new(); + let mut s = HashSet::default(); s.insert(TraceType::VmTrace); let config = TracingInspectorConfig::from_parity_config(&s); assert!(config.record_steps); assert!(!config.record_state_diff); - let mut s = HashSet::new(); + let mut s = HashSet::default(); s.insert(TraceType::VmTrace); s.insert(TraceType::StateDiff); let config = TracingInspectorConfig::from_parity_config(&s); @@ -232,4 +441,15 @@ mod tests { // not required for StateDiff assert!(!config.record_state_diff); } + + #[test] + fn test_flat_call_config() { + let config = FlatCallConfig { include_precompiles: Some(true), ..Default::default() }; + let config = TracingInspectorConfig::from_flat_call_config(&config); + assert!(!config.exclude_precompile_calls); + + let config = FlatCallConfig { include_precompiles: Some(false), ..Default::default() }; + let config = TracingInspectorConfig::from_flat_call_config(&config); + assert!(config.exclude_precompile_calls); + } } diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index d49c3129e6..d18e972bd0 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -1,28 +1,38 @@ use std::fmt::Debug; -use alloy_primitives::{Address, Bytes, B256, U256}; +use alloy_primitives::{Address, Bytes, Log, B256, U256}; use alloy_rpc_types::TransactionInfo; use alloy_rpc_types_trace::parity::*; use arena::{CallTraceArena, PushTraceKind}; use brontes_types::structured_trace::{TransactionTraceWithLogs, TxTrace}; use config::TracingInspectorConfig; use revm::{ - bytecode::opcode::{self, OpCode}, + bytecode::opcode::{self, immediate_size, OpCode}, + context::{result::ExecutionResult, BlockEnv, CfgEnv, ContextTr, Journal, JournalTr, TxEnv}, + inspector::{inspectors::GasInspector, Inspector, JournalExt}, interpreter::{ - CallInputs, CallOutcome, CallScheme, CreateInputs, CreateOutcome, InstructionResult, + interpreter_types::{ + Immediates, InputsTr, Jumps, LoopControl, ReturnData, RuntimeFlag, SubRoutineStack, + }, + CallInputs, CallOutcome, CallScheme, CreateInputs, CreateOutcome, Host, InstructionResult, Interpreter, InterpreterResult, }, - Context, Database, Inspector, JournalEntry, + primitives::hardfork::SpecId, + Context, Database, JournalEntry, }; -use revm_inspector::inspectors::GasInspector; -use revm_primitives::{Log, SpecId}; use types::{ - CallKind, CallTrace, CallTraceNode, CallTraceStep, LogCallOrder, RecordedMemory, StorageChange, + CallKind, CallTrace, CallTraceNode, CallTraceStep, RecordedMemory, StorageChange, StorageChangeReason, }; -use utils::{gas_used, stack_push_count}; +use utils::gas_used; -use super::{arena, config, types, utils}; +use super::{ + arena, config, + types::{self, CallLog, TraceMemberOrder}, + utils, +}; + +pub type EvmContext = Context; /// An inspector that collects call traces. /// @@ -116,11 +126,11 @@ impl BrontesTracingInspector { #[inline] fn is_precompile_call( &self, - context: &Context, + context: &EvmContext, to: &Address, value: U256, ) -> bool { - if context.precompiles.contains_key(to) { + if context.journaled_state.precompiles.contains(to) { // only if this is _not_ the root call return self.is_deep() && value.is_zero() } @@ -195,11 +205,11 @@ impl BrontesTracingInspector { // transaction, because initialization costs are already subtracted // from gas_limit For the root call this value should use the // transaction's gas limit See and - gas_limit = context.env.tx.gas_limit; + gas_limit = context.tx.gas_limit; // we set the spec id here because we only need to do this once and this // condition is hit exactly once - self.spec_id = Some(context.spec_id()); + self.spec_id = Some(context.cfg.spec); } self.trace_stack.push(self.traces.push_trace( @@ -229,7 +239,7 @@ impl BrontesTracingInspector { /// This expects an existing trace [Self::start_trace_on_call] fn fill_trace_on_call_end( &mut self, - context: &mut DB, + context: &mut EvmContext, result: InterpreterResult, created_address: Option
, ) { @@ -241,7 +251,7 @@ impl BrontesTracingInspector { if trace_idx == 0 { // this is the root call which should get the gas used of the transaction // refunds are applied after execution, which is when the root call ends - trace.gas_used = gas_used(context.spec_id(), gas.spent(), gas.refunded() as u64); + trace.gas_used = gas_used(context.cfg.spec, gas.spent(), gas.refunded() as u64); } else { trace.gas_used = gas.spent(); } @@ -266,113 +276,150 @@ impl BrontesTracingInspector { /// /// This expects an existing [CallTrace], in other words, this panics if not /// within the context of a call. - fn start_step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + #[cold] + fn start_step(&mut self, interp: &mut Interpreter, context: &mut CTX) { let trace_idx = self.last_trace_idx(); let trace = &mut self.traces.arena[trace_idx]; + let step_idx = trace.trace.steps.len(); + // We always want an OpCode, even it is unknown because it could be an + // additional opcode that not a known constant. + let op = unsafe { OpCode::new_unchecked(interp.bytecode.opcode()) }; + + let record = self.config.should_record_opcode(op); + self.step_stack - .push(StackStep { trace_idx, step_idx: trace.trace.steps.len() }); + .push(StackStep { trace_idx, step_idx, record }); - let memory = self - .config - .record_memory_snapshots - .then(|| RecordedMemory::new(interp.shared_memory.context_memory().to_vec())) - .unwrap_or_default(); - let stack = if self.config.record_stack_snapshots.is_full() { + if !record { + return; + } + + // Reuse the memory from the previous step if: + // - there is not opcode filter -- in this case we cannot rely on the order of + // steps + // - it exists and has not modified memory + let memory = self.config.record_memory_snapshots.then(|| { + if self.config.record_opcodes_filter.is_none() { + if let Some(prev) = trace.trace.steps.last() { + if !prev.op.modifies_memory() { + if let Some(memory) = &prev.memory { + return memory.clone(); + } + } + } + } + RecordedMemory::new(interp.memory.borrow().context_memory()) + }); + + let stack = if self.config.record_stack_snapshots.is_all() + || self.config.record_stack_snapshots.is_full() + { Some(interp.stack.data().clone()) } else { None }; + let returndata = self + .config + .record_returndata_snapshots + .then(|| interp.return_data.buffer().to_vec().into()) + .unwrap_or_default(); - // we always want an OpCode, even it is unknown because it could be an - // additional opcode that not a known constant - let op = unsafe { OpCode::new_unchecked(interp.current_opcode()) }; + let gas_used = gas_used( + interp.runtime_flag.spec_id(), + interp.control.gas.spent(), + interp.control.gas.refunded() as u64, + ); + + let mut immediate_bytes = None; + if self.config.record_immediate_bytes { + let size = interp.bytecode.read_u8(); + if size != 0 { + immediate_bytes = Some( + interp.bytecode.read_slice(size as usize + 1)[1..] + .to_vec() + .into(), + ); + } + } trace.trace.steps.push(CallTraceStep { - depth: context.journaled_state.depth(), - pc: interp.program_counter(), + depth: context.journal().depth() as u64, + pc: interp.bytecode.pc(), + code_section_idx: interp.sub_routine.routine_idx(), op, - contract: interp.contract.address, + contract: interp.input.target_address(), stack, push_stack: None, - memory_size: memory.len(), memory, - gas_remaining: self.gas_inspector.gas_remaining(), - gas_refund_counter: interp.gas.refunded() as u64, + returndata, + gas_remaining: interp.control.gas().remaining(), + gas_refund_counter: interp.control.gas().refunded() as u64, + gas_used, + decoded: None, + immediate_bytes, // fields will be populated end of call gas_cost: 0, storage_change: None, status: InstructionResult::Continue, }); + + trace.ordering.push(TraceMemberOrder::Step(step_idx)); } /// Fills the current trace with the output of a step. /// /// Invoked on [Inspector::step_end]. - fn fill_step_on_step_end( + #[cold] + fn fill_step_on_step_end>( &mut self, - interp: &Interpreter, - context: &EvmContext, + interp: &mut Interpreter, + context: &mut CTX, ) { - let StackStep { trace_idx, step_idx } = self + let StackStep { trace_idx, step_idx, record } = self .step_stack .pop() .expect("can't fill step without starting a step first"); + + if !record { + return; + } + let step = &mut self.traces.arena[trace_idx].trace.steps[step_idx]; - if self.config.record_stack_snapshots.is_pushes() { - let num_pushed = stack_push_count(step.op); - let start = interp.stack.len() - num_pushed; + if self.config.record_stack_snapshots.is_all() + || self.config.record_stack_snapshots.is_pushes() + { + let start = interp.stack.len() - step.op.outputs() as usize; step.push_stack = Some(interp.stack.data()[start..].to_vec()); } - if self.config.record_memory_snapshots { - // resize memory so opcodes that allocated memory is correctly displayed - if interp.shared_memory.len() > step.memory.len() { - step.memory.resize(interp.shared_memory.len()); - } - } if self.config.record_state_diff { let op = step.op.get(); - let journal_entry = context - .journaled_state - .journal - .last() - // This should always work because revm initializes it as `vec![vec![]]` - // See [JournaledState::new](revm::JournaledState) - .expect("exists; initialized with vec") - .last(); + let journal_entry = context.journal_ref().last_journal().last(); step.storage_change = match (op, journal_entry) { ( opcode::SLOAD | opcode::SSTORE, - Some(JournalEntry::StorageChange { address, key, had_value }), + Some(JournalEntry::StorageChanged { address, key, had_value }), ) => { // SAFETY: (Address,key) exists if part if StorageChange - let value = context.journaled_state.state[address].storage[key].present_value(); + let value = + context.journal_ref().evm_state()[address].storage[key].present_value(); let reason = match op { opcode::SLOAD => StorageChangeReason::SLOAD, opcode::SSTORE => StorageChangeReason::SSTORE, _ => unreachable!(), }; - let change = StorageChange { key: *key, value, had_value: *had_value, reason }; + let change = + StorageChange { key: *key, value, had_value: Some(*had_value), reason }; Some(change) } _ => None, }; } - - // The gas cost is the difference between the recorded gas remaining at the - // start of the step the remaining gas here, at the end of the step. - // TODO: Figure out why this can overflow. https://github.com/paradigmxyz/evm-inspectors/pull/38 - step.gas_cost = step - .gas_remaining - .saturating_sub(self.gas_inspector.gas_remaining()); - - // set the status - step.status = interp.instruction_result; } } @@ -422,11 +469,7 @@ impl BrontesTracingInspector { let logs = node .logs .iter() - .map(|log| Log { - address: node.trace.address, - data: log.clone(), - topics: log.topics(), - }) + .map(|log| Log { address: node.trace.address, data: log.clone() }) .collect::>(); let msg_sender = if let Action::Call(c) = &trace.action { @@ -465,7 +508,10 @@ impl BrontesTracingInspector { traces.push(TransactionTraceWithLogs { trace, - logs, + logs: logs + .iter() + .map(|l| Log { address: l.address, data: l.raw_log.clone() }) + .collect(), msg_sender, decoded_data: None, trace_idx: node.idx as u64, @@ -554,49 +600,51 @@ impl BrontesTracingInspector { } pub(crate) fn parity_action(&self, node: &CallTraceNode) -> Action { - match node.trace.kind { - CallKind::Call - | CallKind::StaticCall - | CallKind::CallCode - | CallKind::DelegateCall - | CallKind::ExtCall - | CallKind::ExtStaticCall - | CallKind::ExtDelegateCall => Action::Call(CallAction { - from: node.trace.caller, - to: node.trace.address, - value: node.trace.value, - gas: node.trace.gas_limit, - input: node.trace.data.clone(), - call_type: node.trace.kind.into(), - }), - CallKind::Create | CallKind::Create2 => Action::Create(CreateAction { - from: node.trace.caller, - value: node.trace.value, - gas: node.trace.gas_limit, - init: node.trace.data.clone(), - creation_method: CreationMethod::default(), - }), - } + node.parity_action() + // match { + // CallKind::Call + // | CallKind::StaticCall + // | CallKind::CallCode + // | CallKind::DelegateCall + // | CallKind::ExtCall + // | CallKind::ExtStaticCall + // | CallKind::ExtDelegateCall => Action::Call(CallAction { + // from: node.trace.caller, + // to: node.trace.address, + // value: node.trace.value, + // gas: node.trace.gas_limit, + // input: node.trace.data.clone(), + // call_type: node.trace.kind.into(), + // }), + // CallKind::Create | CallKind::Create2 => + // Action::Create(CreateAction { from: + // node.trace.caller, value: node.trace.value, + // gas: node.trace.gas_limit, + // init: node.trace.data.clone(), + // creation_method: CreationMethod::default(), + // }), + // } } pub(crate) fn parity_trace_output(&self, node: &CallTraceNode) -> TraceOutput { - match node.trace.kind { - CallKind::Call - | CallKind::StaticCall - | CallKind::CallCode - | CallKind::DelegateCall - | CallKind::ExtCall - | CallKind::ExtStaticCall - | CallKind::ExtDelegateCall => TraceOutput::Call(CallOutput { - gas_used: node.trace.gas_used, - output: node.trace.output.clone(), - }), - CallKind::Create | CallKind::Create2 => TraceOutput::Create(CreateOutput { - gas_used: node.trace.gas_used, - code: node.trace.output.clone(), - address: node.trace.address, - }), - } + node.parity_trace_output() + // match node.trace.kind { + // CallKind::Call + // | CallKind::StaticCall + // | CallKind::CallCode + // | CallKind::DelegateCall + // | CallKind::ExtCall + // | CallKind::ExtStaticCall + // | CallKind::ExtDelegateCall => TraceOutput::Call(CallOutput { + // gas_used: node.trace.gas_used, + // output: node.trace.output.clone(), + // }), + // CallKind::Create | CallKind::Create2 => + // TraceOutput::Create(CreateOutput { gas_used: + // node.trace.gas_used, code: + // node.trace.output.clone(), address: + // node.trace.address, }), + // } } /// Returns the error message if it is an erroneous result. @@ -631,61 +679,68 @@ impl BrontesTracingInspector { } } -impl Inspector> for BrontesTracingInspector +impl Inspector> for BrontesTracingInspector where DB: Database, { #[inline] fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { - self.gas_inspector.initialize_interp(interp, context.tx.g) + self.gas_inspector.initialize_interp(interp.control.gas()) } - fn step(&mut self, interp: &mut Interpreter, context: &mut DB) { - self.gas_inspector.step(interp, context); + fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + self.gas_inspector.step(interp.control.gas()); if self.config.record_steps { self.start_step(interp, context); } } - fn step_end(&mut self, interp: &mut Interpreter, context: &mut Context) { - self.gas_inspector.step_end(interp, context); + fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + self.gas_inspector.step_end(interp.control.gas_mut()); if self.config.record_steps { self.fill_step_on_step_end(interp, context); } } - fn log(&mut self, interp: &mut Interpreter, context: &mut DB, log: &mut Log) { - self.gas_inspector.log(context, log); + fn log(&mut self, interp: &mut Interpreter, context: &mut EvmContext, log: Log) { + self.gas_inspector.journal.log(context, log); + // context.log(log.clone()); let trace_idx = self.last_trace_idx(); let trace = &mut self.traces.arena[trace_idx]; if self.config.record_logs { - trace.ordering.push(LogCallOrder::Log(trace.logs.len())); - trace.logs.push(log.data.clone()); + trace.ordering.push(TraceMemberOrder::Log(trace.logs.len())); + trace + .logs + .push(CallLog::from(log.clone()).with_position(trace.children.len() as u64)); } } - fn call(&mut self, context: &mut DB, inputs: &mut CallInputs) -> Option { - self.gas_inspector.call(context, inputs); + fn call( + &mut self, + context: &mut EvmContext, + inputs: &mut CallInputs, + ) -> Option { + // self.gas_inspector.call(context, inputs); // determine correct `from` and `to` based on the call scheme - let (from, to) = match inputs.context.scheme { + let (from, to) = match inputs.scheme { CallScheme::DelegateCall | CallScheme::CallCode => { - (inputs.context.address, inputs.context.code_address) + (inputs.target_address, inputs.bytecode_address) } - _ => (inputs.context.caller, inputs.context.address), + _ => (inputs.caller, inputs.target_address), }; - let value = if matches!(inputs.context.scheme, CallScheme::DelegateCall) { + let value = if matches!(inputs.scheme, CallScheme::DelegateCall) { // for delegate calls we need to use the value of the top trace if let Some(parent) = self.active_trace() { parent.trace.value } else { - inputs.transfer.value + inputs.call_value() } } else { - inputs.transfer.value + inputs.call_value() }; // if calls to precompiles should be excluded, check whether this is a call to a @@ -700,7 +755,7 @@ where to, inputs.input.clone(), value, - inputs.context.scheme.into(), + inputs.scheme.into(), from, inputs.gas_limit, maybe_precompile, @@ -709,16 +764,25 @@ where None } - fn call_end(&mut self, context: &mut DB, inputs: &CallInputs, outcome: &mut CallOutcome) { + fn call_end( + &mut self, + context: &mut EvmContext, + _inputs: &CallInputs, + outcome: &mut CallOutcome, + ) { self.gas_inspector.call_end(outcome); self.fill_trace_on_call_end(context, outcome.result.clone(), None); } - fn create(&mut self, context: &mut DB, inputs: &mut CreateInputs) -> Option { - self.gas_inspector.create(context, inputs); + fn create( + &mut self, + context: &mut EvmContext, + inputs: &mut CreateInputs, + ) -> Option { + // self.gas_inspector.create(context, inputs); - let _ = context.load_account(inputs.caller); + let _ = context.journaled_state.load_account(inputs.caller); let nonce = context.journaled_state.account(inputs.caller).info.nonce; self.start_trace_on_call( context, @@ -741,15 +805,13 @@ where /// result of the create. fn create_end( &mut self, - context: &mut DB, + context: &mut EvmContext, inputs: &CreateInputs, outcome: &mut CreateOutcome, - ) -> CreateOutcome { - self.gas_inspector.create_end(&mut outcome); + ) { + self.gas_inspector.create_end(outcome); self.fill_trace_on_call_end(context, outcome.result.clone(), outcome.address); - - outcome } fn selfdestruct(&mut self, _contract: Address, target: Address, _value: U256) { @@ -759,23 +821,19 @@ where } } +/// Struct keeping track of internal inspector steps stack. #[derive(Clone, Copy, Debug)] -pub struct StackStep { +pub(crate) struct StackStep { + /// Whether this step should be recorded. + /// + /// This is set to `false` if [OpcodeFilter] is configured and this step's + /// opcode is not enabled for tracking + record: bool, + /// Idx of the trace node this step belongs. trace_idx: usize, + /// Idx of this step in the [CallTrace::steps]. + /// + /// Please note that if `record` is `false`, this will still contain a + /// value, but the step will not appear in the steps list. step_idx: usize, } - -impl From for CallType { - fn from(item: CallKind) -> Self { - match item { - CallKind::Call => CallType::Call, - CallKind::StaticCall => CallType::StaticCall, - CallKind::CallCode => CallType::CallCode, - CallKind::DelegateCall => CallType::DelegateCall, - CallKind::Create | CallKind::Create2 => CallType::None, - CallKind::ExtCall => CallType::Call, - CallKind::ExtStaticCall => CallType::StaticCall, - CallKind::ExtDelegateCall => CallType::DelegateCall, - } - } -} diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index ae718eb280..1ffbaf426e 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -1,65 +1,100 @@ +//! Types for representing call trace items. + use std::collections::VecDeque; pub use alloy_primitives::Log; -use alloy_primitives::{Address, Bytes, LogData, U256, U64}; +use alloy_primitives::{Address, Bytes, FixedBytes, LogData, U256}; use alloy_rpc_types_trace::{ geth::{CallFrame, CallLogFrame, GethDefaultTracingOptions, StructLog}, parity::{ - Action, ActionType, CallAction, CallOutput, CreateAction, CreateOutput, CreationMethod, - SelfdestructAction, TraceOutput, TransactionTrace, + Action, ActionType, CallAction, CallOutput, CallType, CreateAction, CreateOutput, + CreationMethod, SelfdestructAction, TraceOutput, TransactionTrace, }, }; -use revm::interpreter::{opcode, CallContext, CallScheme, CreateScheme, InstructionResult, OpCode}; -use serde::{Deserialize, Serialize}; -use utils::{convert_memory, TraceStyle}; +use revm::{ + bytecode::opcode::{self, OpCode}, + interpreter::{CallScheme, CreateScheme, InstructionResult}, +}; + +use super::{ + config::TraceStyle, + utils::{self, convert_memory}, +}; -use super::utils; -/// A trace of a call. +/// Decoded call data. +#[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct DecodedCallData { + /// The function signature. + pub signature: String, + /// The function arguments. + pub args: Vec, +} + +/// Additional decoded data enhancing the [CallTrace]. +#[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct DecodedCallTrace { + /// Optional decoded label for the call. + pub label: Option, + /// Optional decoded return data. + pub return_data: Option, + /// Optional decoded call data. + pub call_data: Option, +} + +/// A trace of a call with optional decoded data. #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct CallTrace { - /// The depth of the call + /// The depth of the call. pub depth: usize, - /// Whether the call was successful + /// Whether the call was successful. pub success: bool, - /// caller of this call + /// The caller address. pub caller: Address, - /// The destination address of the call or the address from the created - /// contract. + /// The target address of this call. /// - /// In other words, this is the callee if the [CallKind::Call] or the - /// address of the created contract if [CallKind::Create]. + /// This is: + /// - [`CallKind::Call`] and alike: the callee, the address of the contract + /// being called + /// - [`CallKind::Create`] and alike: the address of the created contract pub address: Address, - /// Whether this is a call to a precompile + /// Whether this is a call to a precompile. /// - /// Note: This is an Option because not all tracers make use of this + /// Note: This is optional because not all tracers make use of this. pub maybe_precompile: Option, - /// Holds the target for the __selfdestruct__ refund target + /// The address of the selfdestructed contract. + pub selfdestruct_address: Option
, + /// Holds the target for the selfdestruct refund target. /// - /// This is only set if a selfdestruct was executed. + /// This is only `Some` if a selfdestruct was executed and the call is + /// executed before the Cancun hardfork. /// - /// Note: This not necessarily guarantees that the status is - /// [InstructionResult::SelfDestruct] There's an edge case where a new - /// created contract is immediately selfdestructed. + /// See [`is_selfdestruct`](Self::is_selfdestruct) for more information. pub selfdestruct_refund_target: Option
, - /// The kind of call this is + /// The value transferred on a selfdestruct. + /// + /// This is only `Some` if a selfdestruct was executed and the call is + /// executed before the Cancun hardfork. + /// + /// See [`is_selfdestruct`](Self::is_selfdestruct) for more information. + pub selfdestruct_transferred_value: Option, + /// The kind of call. pub kind: CallKind, - /// The value transferred in the call + /// The value transferred in the call. pub value: U256, - /// The calldata for the call, or the init code for contract creations + /// The calldata/input, or the init code for contract creations. pub data: Bytes, - /// The return data of the call if this was not a contract creation, - /// otherwise it is the runtime bytecode of the created contract + /// The return data, or the runtime bytecode of the created contract. pub output: Bytes, - /// The gas cost of the call + /// The total gas cost of the call. pub gas_used: u64, - /// The gas limit of the call + /// The gas limit of the call. pub gas_limit: u64, - /// The status of the trace's call + /// The final status of the call. pub status: InstructionResult, - /// call context of the runtime - pub call_context: Option>, - /// Opcode-level execution steps + /// Opcode-level execution steps. pub steps: Vec, + /// Optional complementary decoded call data. + pub decoded: DecodedCallTrace, } impl CallTrace { @@ -70,12 +105,29 @@ impl CallTrace { !self.status.is_ok() } - /// Returns true if the status code is a revert + /// Returns true if the status code is a revert. #[inline] pub fn is_revert(&self) -> bool { self.status == InstructionResult::Revert } + /// Returns `true` if this trace was a selfdestruct. + /// + /// See also `TracingInspector::selfdestruct`. + /// + /// We can't rely entirely on [`Self::status`] being + /// [`InstructionResult::SelfDestruct`] because there's an edge case + /// where a new created contract (CREATE) is immediately selfdestructed. + /// + /// We also can't rely entirely on `selfdestruct_refund_target` being `Some` + /// as the `selfdestruct` inspector function will not be called after + /// the Cancun hardfork. + #[inline] + pub const fn is_selfdestruct(&self) -> bool { + matches!(self.status, InstructionResult::SelfDestruct) + || self.selfdestruct_refund_target.is_some() + } + /// Returns the error message if it is an erroneous result. pub(crate) fn as_error_msg(&self, kind: TraceStyle) -> Option { // See also @@ -83,9 +135,27 @@ impl CallTrace { InstructionResult::Revert => { if kind.is_parity() { "Reverted" } else { "execution reverted" }.to_string() } - InstructionResult::OutOfGas | InstructionResult::MemoryOOG => { + InstructionResult::OutOfGas | InstructionResult::PrecompileOOG => { if kind.is_parity() { "Out of gas" } else { "out of gas" }.to_string() } + InstructionResult::OutOfFunds => if kind.is_parity() { + "Insufficient balance for transfer" + } else { + "insufficient balance for transfer" + } + .to_string(), + InstructionResult::MemoryOOG => { + if kind.is_parity() { "Out of gas" } else { "out of gas: out of memory" } + .to_string() + } + InstructionResult::MemoryLimitOOG => { + if kind.is_parity() { "Out of gas" } else { "out of gas: reach memory limit" } + .to_string() + } + InstructionResult::InvalidOperandOOG => { + if kind.is_parity() { "Out of gas" } else { "out of gas: invalid operand" } + .to_string() + } InstructionResult::OpcodeNotFound => { if kind.is_parity() { "Bad instruction" } else { "invalid opcode" }.to_string() } @@ -97,11 +167,63 @@ impl CallTrace { InstructionResult::PrecompileError => { if kind.is_parity() { "Built-in failed" } else { "precompiled failed" }.to_string() } + InstructionResult::InvalidFEOpcode => { + if kind.is_parity() { "Bad instruction" } else { "invalid opcode: INVALID" } + .to_string() + } + // TODO(mattsse): upcoming error + // InstructionResult::ReentrancySentryOOG => if kind.is_parity() { + // "Out of gas" + // } else { + // "out of gas: not enough gas for reentrancy sentry" + // } + // .to_string(), status => format!("{:?}", status), }) } } +/// Additional decoded data enhancing the [CallLog]. +#[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct DecodedCallLog { + /// The decoded event name. + pub name: Option, + /// The decoded log parameters, a vector of the parameter name (e.g. foo) + /// and the parameter value (e.g. 0x9d3...45ca). + pub params: Option>, +} + +/// A log with optional decoded data. +#[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct CallLog { + /// The raw log data. + pub raw_log: LogData, + /// Optional complementary decoded log data. + pub decoded: DecodedCallLog, + /// The position of the log relative to subcalls within the same trace. + pub position: u64, +} + +impl From for CallLog { + /// Converts a [`Log`] into a [`CallLog`]. + fn from(log: Log) -> Self { + Self { + position: Default::default(), + raw_log: log.data, + decoded: DecodedCallLog { name: None, params: None }, + } + } +} + +impl CallLog { + /// Sets the position of the log. + #[inline] + pub fn with_position(mut self, position: u64) -> Self { + self.position = position; + self + } +} + /// A node in the arena #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct CallTraceNode { @@ -114,14 +236,16 @@ pub struct CallTraceNode { /// The call trace pub trace: CallTrace, /// Recorded logs, if enabled - pub logs: Vec, + pub logs: Vec, /// Ordering of child calls and logs - pub ordering: Vec, + pub ordering: Vec, } impl CallTraceNode { /// Returns the call context's execution address - + /// + /// See `Inspector::call` impl of + /// [TracingInspector](crate::tracing::TracingInspector) pub const fn execution_address(&self) -> Address { if self.trace.kind.is_delegate() { self.trace.caller @@ -130,7 +254,6 @@ impl CallTraceNode { } } - #[allow(dead_code)] /// Pushes all steps onto the stack in reverse order /// so that the first step is on top of the stack pub(crate) fn push_steps_on_stack<'a>( @@ -140,7 +263,6 @@ impl CallTraceNode { stack.extend(self.call_step_stack().into_iter().rev()); } - #[allow(dead_code)] /// Returns a list of all steps in this trace in the order they were /// executed /// @@ -183,18 +305,17 @@ impl CallTraceNode { self.trace.status } - /// Returns true if the call was a selfdestruct - /// - /// A selfdestruct is marked by the refund target being set. - /// - /// See also `TracingInspector::selfdestruct` + /// Returns the call context's 4 byte selector + pub fn selector(&self) -> Option> { + (self.trace.data.len() >= 4).then(|| FixedBytes::from_slice(&self.trace.data[..4])) + } + + /// Returns `true` if this trace was a selfdestruct. /// - /// Note: We can't rely in the [Self::status] being - /// [InstructionResult::SelfDestruct] because there's an edge case where - /// a new created contract (CREATE) is immediately selfdestructed. + /// See [`CallTrace::is_selfdestruct`] for more details. #[inline] pub const fn is_selfdestruct(&self) -> bool { - self.trace.selfdestruct_refund_target.is_some() + self.trace.is_selfdestruct() } /// Converts this node into a parity `TransactionTrace` @@ -214,47 +335,48 @@ impl CallTraceNode { /// Returns the `Output` for a parity trace pub fn parity_trace_output(&self) -> TraceOutput { match self.kind() { - CallKind::Call | CallKind::StaticCall | CallKind::CallCode | CallKind::DelegateCall => { - TraceOutput::Call(CallOutput { + CallKind::Call + | CallKind::StaticCall + | CallKind::CallCode + | CallKind::DelegateCall + | CallKind::AuthCall => TraceOutput::Call(CallOutput { + gas_used: self.trace.gas_used, + output: self.trace.output.clone(), + }), + CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => { + TraceOutput::Create(CreateOutput { gas_used: self.trace.gas_used, - output: self.trace.output.clone(), + code: self.trace.output.clone(), + address: self.trace.address, }) } - CallKind::Create | CallKind::Create2 => TraceOutput::Create(CreateOutput { - gas_used: self.trace.gas_used, - code: self.trace.output.clone(), - address: self.trace.address, - }), } } /// If the trace is a selfdestruct, returns the `Action` for a parity trace. pub fn parity_selfdestruct_action(&self) -> Option { - if self.is_selfdestruct() { - Some(Action::Selfdestruct(SelfdestructAction { - address: self.trace.address, + self.is_selfdestruct().then(|| { + Action::Selfdestruct(SelfdestructAction { + address: self.trace.selfdestruct_address.unwrap_or_default(), refund_address: self.trace.selfdestruct_refund_target.unwrap_or_default(), - balance: self.trace.value, - })) - } else { - None - } + balance: self + .trace + .selfdestruct_transferred_value + .unwrap_or_default(), + }) + }) } /// If the trace is a selfdestruct, returns the `CallFrame` for a geth call /// trace pub fn geth_selfdestruct_call_trace(&self) -> Option { - if self.is_selfdestruct() { - Some(CallFrame { - typ: "SELFDESTRUCT".to_string(), - from: self.trace.caller, - to: self.trace.selfdestruct_refund_target, - value: Some(self.trace.value), - ..Default::default() - }) - } else { - None - } + self.is_selfdestruct().then(|| CallFrame { + typ: "SELFDESTRUCT".to_string(), + from: self.trace.selfdestruct_address.unwrap_or_default(), + to: self.trace.selfdestruct_refund_target, + value: self.trace.selfdestruct_transferred_value, + ..Default::default() + }) } /// If the trace is a selfdestruct, returns the `TransactionTrace` for a @@ -277,23 +399,27 @@ impl CallTraceNode { /// action. pub fn parity_action(&self) -> Action { match self.kind() { - CallKind::Call | CallKind::StaticCall | CallKind::CallCode | CallKind::DelegateCall => { - Action::Call(CallAction { - from: self.trace.caller, - to: self.trace.address, - value: self.trace.value, - gas: self.trace.gas_limit, - input: self.trace.data.clone(), - call_type: self.kind().into(), + CallKind::Call + | CallKind::StaticCall + | CallKind::CallCode + | CallKind::DelegateCall + | CallKind::AuthCall => Action::Call(CallAction { + from: self.trace.caller, + to: self.trace.address, + value: self.trace.value, + gas: self.trace.gas_limit, + input: self.trace.data.clone(), + call_type: self.kind().into(), + }), + CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => { + Action::Create(CreateAction { + from: self.trace.caller, + value: self.trace.value, + gas: self.trace.gas_limit, + init: self.trace.data.clone(), + creation_method: self.kind().into(), }) } - CallKind::Create | CallKind::Create2 => Action::Create(CreateAction { - from: self.trace.caller, - value: self.trace.value, - gas: self.trace.gas_limit, - init: self.trace.data.clone(), - creation_method: CreationMethod::default(), - }), } } @@ -321,22 +447,30 @@ impl CallTraceNode { // we need to populate error and revert reason if !self.trace.success { + if self.kind().is_any_create() { + call_frame.to = None; + } + + if !self.status().is_revert() { + call_frame.gas_used = U256::from(self.trace.gas_limit); + call_frame.output = None; + } + call_frame.revert_reason = utils::maybe_revert_reason(self.trace.output.as_ref()); - // Note: the call tracer mimics parity's trace transaction and geth maps errors to parity style error messages, - call_frame.error = self.trace.as_error_msg(TraceStyle::Parity); + // Note: regular calltracer uses geth errors, only flatCallTracer uses parity errors: + call_frame.error = self.trace.as_error_msg(TraceStyle::Geth); } if include_logs && !self.logs.is_empty() { call_frame.logs = self .logs .iter() - .enumerate() - .map(|(i, log)| CallLogFrame { + .map(|log| CallLogFrame { address: Some(self.execution_address()), - topics: Some(log.topics().to_vec()), - data: Some(log.data.clone()), - position: Some(i as u64), + topics: Some(log.raw_log.topics().to_vec()), + data: Some(log.raw_log.data.clone()), + position: Some(log.position), }) .collect(); } @@ -346,8 +480,7 @@ impl CallTraceNode { } /// A unified representation of a call. -#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize)] -#[serde(rename_all = "UPPERCASE")] +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub enum CallKind { /// Represents a regular call. #[default] @@ -358,20 +491,35 @@ pub enum CallKind { CallCode, /// Represents a delegate call. DelegateCall, + /// Represents an authorized call. + AuthCall, /// Represents a contract creation operation. Create, /// Represents a contract creation operation using the CREATE2 opcode. Create2, - ExtCall, - ExtStaticCall, - ExtDelegateCall, + /// Represents an EOF contract creation operation. + EOFCreate, } impl CallKind { + /// Returns the string representation of the call kind. + pub const fn to_str(self) -> &'static str { + match self { + Self::Call => "CALL", + Self::StaticCall => "STATICCALL", + Self::CallCode => "CALLCODE", + Self::DelegateCall => "DELEGATECALL", + Self::AuthCall => "AUTHCALL", + Self::Create => "CREATE", + Self::Create2 => "CREATE2", + Self::EOFCreate => "EOF_CREATE", + } + } + /// Returns true if the call is a create #[inline] pub const fn is_any_create(&self) -> bool { - matches!(self, Self::Create | Self::Create2) + matches!(self, Self::Create | Self::Create2 | Self::EOFCreate) } /// Returns true if the call is a delegate of some sorts @@ -385,43 +533,38 @@ impl CallKind { pub const fn is_static_call(&self) -> bool { matches!(self, Self::StaticCall) } + + /// Returns true if the call is [CallKind::AuthCall]. + #[inline] + pub const fn is_auth_call(&self) -> bool { + matches!(self, Self::AuthCall) + } } -impl std::fmt::Display for CallKind { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Self::Call => { - write!(f, "CALL") - } - Self::StaticCall => { - write!(f, "STATICCALL") - } - Self::CallCode => { - write!(f, "CALLCODE") - } - Self::DelegateCall => { - write!(f, "DELEGATECALL") - } - Self::Create => { - write!(f, "CREATE") - } - Self::Create2 => { - write!(f, "CREATE2") - } +impl From for CreationMethod { + fn from(kind: CallKind) -> CreationMethod { + match kind { + CallKind::Create => CreationMethod::Create, + CallKind::Create2 => CreationMethod::Create2, + CallKind::EOFCreate => CreationMethod::EofCreate, + _ => CreationMethod::None, } } } +impl core::fmt::Display for CallKind { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.write_str(self.to_str()) + } +} + impl From for CallKind { fn from(scheme: CallScheme) -> Self { match scheme { - CallScheme::Call => Self::Call, - CallScheme::StaticCall => Self::StaticCall, + CallScheme::Call | CallScheme::ExtCall => Self::Call, + CallScheme::StaticCall | CallScheme::ExtStaticCall => Self::StaticCall, + CallScheme::DelegateCall | CallScheme::ExtDelegateCall => Self::DelegateCall, CallScheme::CallCode => Self::CallCode, - CallScheme::DelegateCall => Self::DelegateCall, - CallScheme::ExtCall => Self::ExtCall, - CallScheme::ExtStaticCall => Self::ExtStaticCall, - CallScheme::ExtDelegateCall => Self::ExtDelegateCall, } } } @@ -438,16 +581,29 @@ impl From for CallKind { impl From for ActionType { fn from(kind: CallKind) -> Self { match kind { - CallKind::Call | CallKind::StaticCall | CallKind::DelegateCall | CallKind::CallCode => { - Self::Call - } - CallKind::Create => Self::Create, - CallKind::Create2 => Self::Create, + CallKind::Call + | CallKind::StaticCall + | CallKind::DelegateCall + | CallKind::CallCode + | CallKind::AuthCall => Self::Call, + CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => Self::Create, + } + } +} + +impl From for CallType { + fn from(ty: CallKind) -> Self { + match ty { + CallKind::Call => Self::Call, + CallKind::StaticCall => Self::StaticCall, + CallKind::CallCode => Self::CallCode, + CallKind::DelegateCall => Self::DelegateCall, + CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => Self::None, + CallKind::AuthCall => Self::AuthCall, } } } -#[allow(dead_code)] pub(crate) struct CallTraceStepStackItem<'a> { /// The trace node that contains this step pub(crate) trace_node: &'a CallTraceNode, @@ -458,13 +614,39 @@ pub(crate) struct CallTraceStepStackItem<'a> { pub(crate) call_child_id: Option, } -/// Ordering enum for calls and logs -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum LogCallOrder { +/// Ordering enum for calls, logs and steps +#[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub enum TraceMemberOrder { /// Contains the index of the corresponding log Log(usize), /// Contains the index of the corresponding trace node Call(usize), + /// Contains the index of the corresponding step, if those are being traced + Step(usize), +} + +/// Represents a decoded internal function call. +#[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct DecodedInternalCall { + /// Name of the internal function. + pub func_name: String, + /// Input arguments of the internal function. + pub args: Option>, + /// Optional decoded return data. + pub return_data: Option>, +} + +/// Represents a decoded trace step. Currently two formats are supported. +#[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub enum DecodedTraceStep { + /// Decoded internal function call. Displayed similarly to external calls. + /// + /// Keeps decoded internal call data and an index of the step where the + /// internal call execution ends. + InternalCall(DecodedInternalCall, usize), + /// Arbitrary line representing the step. Might be used for displaying + /// individual opcodes. + Line(String), } /// Represents a tracked call step during execution @@ -475,6 +657,8 @@ pub struct CallTraceStep { pub depth: u64, /// Program counter before step execution pub pc: usize, + /// Code section index before step execution + pub code_section_idx: usize, /// Opcode to be executed pub op: OpCode, /// Current contract address @@ -483,16 +667,18 @@ pub struct CallTraceStep { pub stack: Option>, /// The new stack items placed by this step if any pub push_stack: Option>, - /// All allocated memory in a step + /// Memory before step execution. /// - /// This will be empty if memory capture is disabled - pub memory: RecordedMemory, - /// Size of memory at the beginning of the step - pub memory_size: usize, + /// This will be `None` only if memory capture is disabled. + pub memory: Option, + /// Returndata before step execution + pub returndata: Bytes, /// Remaining gas before step execution pub gas_remaining: u64, /// Gas refund counter before step execution pub gas_refund_counter: u64, + /// Total gas used before step execution + pub gas_used: u64, // Fields filled in `step_end` /// Gas cost of step execution pub gas_cost: u64, @@ -503,6 +689,10 @@ pub struct CallTraceStep { /// /// This is set after the step was executed. pub status: InstructionResult, + /// Immediate bytes of the step + pub immediate_bytes: Option, + /// Optional complementary decoded step data. + pub decoded: Option, } // === impl CallTraceStep === @@ -511,7 +701,6 @@ impl CallTraceStep { /// Converts this step into a geth [StructLog] /// /// This sets memory and stack capture based on the `opts` parameter. - #[allow(dead_code)] pub(crate) fn convert_to_geth_struct_log(&self, opts: &GethDefaultTracingOptions) -> StructLog { let mut log = StructLog { depth: self.depth, @@ -538,14 +727,13 @@ impl CallTraceStep { } if opts.is_memory_enabled() { - log.memory = Some(self.memory.memory_chunks()); + log.memory = self.memory.as_ref().map(RecordedMemory::memory_chunks); } log } /// Returns true if the step is a STOP opcode - #[allow(dead_code)] #[inline] pub(crate) const fn is_stop(&self) -> bool { matches!(self.op.get(), opcode::STOP) @@ -553,7 +741,6 @@ impl CallTraceStep { /// Returns true if the step is a call operation, any of /// CALL, CALLCODE, DELEGATECALL, STATICCALL, CREATE, CREATE2 - #[allow(dead_code)] #[inline] pub(crate) const fn is_calllike_op(&self) -> bool { matches!( @@ -569,14 +756,12 @@ impl CallTraceStep { // Returns true if the status code is an error or revert, See // [InstructionResult::Revert] - #[allow(dead_code)] #[inline] pub(crate) const fn is_error(&self) -> bool { self.status as u8 >= InstructionResult::Revert as u8 } /// Returns the error message if it is an erroneous result. - #[allow(dead_code)] #[inline] pub(crate) fn as_error(&self) -> Option { self.is_error().then(|| format!("{:?}", self.status)) @@ -586,7 +771,7 @@ impl CallTraceStep { /// Represents the source of a storage change - e.g., whether it came /// from an SSTORE or SLOAD instruction. #[allow(clippy::upper_case_acronyms)] -#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub enum StorageChangeReason { /// SLOAD opcode SLOAD, @@ -597,11 +782,11 @@ pub enum StorageChangeReason { /// Represents a storage change during execution. /// /// This maps to evm internals: -/// [JournalEntry::StorageChange](revm::JournalEntry::StorageChange) +/// [JournalEntry::StorageChanged](revm::JournalEntry::StorageChanged) /// /// It is used to track both storage change and warm load of a storage slot. For /// warm load in regard to EIP-2929 AccessList had_value will be None. -#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct StorageChange { /// key of the storage slot pub key: U256, @@ -617,39 +802,46 @@ pub struct StorageChange { /// /// This is a wrapper around the [SharedMemory](revm::interpreter::SharedMemory) /// context memory. -#[derive(Clone, Debug, Default, PartialEq, Eq)] -pub struct RecordedMemory(pub(crate) Vec); +#[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct RecordedMemory(pub(crate) Bytes); impl RecordedMemory { #[inline] - pub(crate) fn new(mem: Vec) -> Self { - Self(mem) + pub(crate) fn new(mem: &[u8]) -> Self { + if mem.is_empty() { + return Self(Bytes::new()); + } + + Self(Bytes::copy_from_slice(mem)) } /// Returns the memory as a byte slice #[inline] - pub fn as_bytes(&self) -> &[u8] { + pub fn as_bytes(&self) -> &Bytes { &self.0 } + /// Returns the memory as a byte vector #[inline] - pub(crate) fn resize(&mut self, size: usize) { - self.0.resize(size, 0); + pub fn into_bytes(self) -> Bytes { + self.0 } - /// Returns the size of the memory + /// Returns the size of the memory. #[inline] pub fn len(&self) -> usize { self.0.len() } - /// Returns whether the memory is empty + /// Returns whether the memory is empty. #[inline] pub fn is_empty(&self) -> bool { self.0.is_empty() } - /// Converts the memory into 32byte hex chunks + /// Formats memory data into a list of 32-byte hex-encoded chunks. + /// + /// See: #[inline] pub fn memory_chunks(&self) -> Vec { convert_memory(self.as_bytes()) @@ -661,3 +853,25 @@ impl AsRef<[u8]> for RecordedMemory { self.as_bytes() } } + +#[cfg(feature = "serde")] +mod opcode_serde { + use serde::{Deserialize, Deserializer, Serializer}; + + use super::OpCode; + + pub(super) fn serialize(op: &OpCode, serializer: S) -> Result + where + S: Serializer, + { + serializer.serialize_u8(op.get()) + } + + pub(super) fn deserialize<'de, D>(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let op = u8::deserialize(deserializer)?; + Ok(OpCode::new(op).unwrap_or_else(|| OpCode::new(revm::bytecode::opcode::INVALID).unwrap())) + } +} diff --git a/crates/reth-tracing-ext/src/reth_tracer/utils.rs b/crates/reth-tracing-ext/src/reth_tracer/utils.rs index d07110b097..2c484fa2e9 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/utils.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/utils.rs @@ -1,20 +1,24 @@ -//! Util functions for revm related ops - -use alloy_primitives::hex; +use alloy_primitives::{hex, Bytes}; use alloy_sol_types::{ContractError, GenericRevertReason}; use revm::{ - interpreter::{opcode, OpCode}, - primitives::SpecId, + primitives::{hardfork::SpecId, KECCAK_EMPTY}, + DatabaseRef, }; -/// creates the memory data in 32byte chunks -/// see -#[inline] +/// Formats memory data into a list of 32-byte hex-encoded chunks. +/// +/// See: pub(crate) fn convert_memory(data: &[u8]) -> Vec { - let mut memory = Vec::with_capacity((data.len() + 31) / 32); - for idx in (0..data.len()).step_by(32) { - let len = std::cmp::min(idx + 32, data.len()); - memory.push(hex::encode(&data[idx..len])); + let mut memory = Vec::with_capacity(data.len().div_ceil(32)); + let chunks = data.chunks_exact(32); + let remainder = chunks.remainder(); + for chunk in chunks { + memory.push(hex::encode(chunk)); + } + if !remainder.is_empty() { + let mut last_chunk = [0u8; 32]; + last_chunk[..remainder.len()].copy_from_slice(remainder); + memory.push(hex::encode(last_chunk)); } memory } @@ -22,11 +26,34 @@ pub(crate) fn convert_memory(data: &[u8]) -> Vec { /// Get the gas used, accounting for refunds #[inline] pub(crate) fn gas_used(spec: SpecId, spent: u64, refunded: u64) -> u64 { - let refund_quotient = if SpecId::enabled(spec, SpecId::LONDON) { 5 } else { 2 }; + let refund_quotient = if SpecId::is_enabled_in(spec, SpecId::LONDON) { 5 } else { 2 }; spent - (refunded).min(spent / refund_quotient) } -/// Returns a non empty revert reason if the output is a revert/error. +/// Loads the code for the given account from the account itself or the database +/// +/// Returns None if the code hash is the KECCAK_EMPTY hash +#[inline] +pub(crate) fn load_account_code( + db: DB, + db_acc: &revm::state::AccountInfo, +) -> Option { + db_acc + .code + .as_ref() + .map(|code| code.original_bytes()) + .or_else(|| { + if db_acc.code_hash == KECCAK_EMPTY { + None + } else { + db.code_by_hash_ref(db_acc.code_hash) + .ok() + .map(|code| code.original_bytes()) + } + }) +} + +/// Returns a non-empty revert reason if the output is a revert/error. #[inline] pub(crate) fn maybe_revert_reason(output: &[u8]) -> Option { let reason = match GenericRevertReason::decode(output)? { @@ -46,86 +73,25 @@ pub(crate) fn maybe_revert_reason(output: &[u8]) -> Option { } } -/// Returns the number of items pushed on the stack by a given opcode. -/// This used to determine how many stack etries to put in the `push` element -/// in a parity vmTrace. -/// The value is obvious for most opcodes, but SWAP* and DUP* are a bit weird, -/// and we handle those as they are handled in parity vmtraces. -/// For reference: -pub(crate) const fn stack_push_count(step_op: OpCode) -> usize { - let step_op = step_op.get(); - match step_op { - opcode::PUSH0..=opcode::PUSH32 => 1, - opcode::SWAP1..=opcode::SWAP16 => (step_op - opcode::SWAP1) as usize + 2, - opcode::DUP1..=opcode::DUP16 => (step_op - opcode::DUP1) as usize + 2, - opcode::CALLDATALOAD - | opcode::SLOAD - | opcode::MLOAD - | opcode::CALLDATASIZE - | opcode::LT - | opcode::GT - | opcode::DIV - | opcode::SDIV - | opcode::SAR - | opcode::AND - | opcode::EQ - | opcode::CALLVALUE - | opcode::ISZERO - | opcode::ADD - | opcode::EXP - | opcode::CALLER - | opcode::KECCAK256 - | opcode::SUB - | opcode::ADDRESS - | opcode::GAS - | opcode::MUL - | opcode::RETURNDATASIZE - | opcode::NOT - | opcode::SHR - | opcode::SHL - | opcode::EXTCODESIZE - | opcode::SLT - | opcode::OR - | opcode::NUMBER - | opcode::PC - | opcode::TIMESTAMP - | opcode::BALANCE - | opcode::SELFBALANCE - | opcode::MULMOD - | opcode::ADDMOD - | opcode::BASEFEE - | opcode::BLOCKHASH - | opcode::BYTE - | opcode::XOR - | opcode::ORIGIN - | opcode::CODESIZE - | opcode::MOD - | opcode::SIGNEXTEND - | opcode::GASLIMIT - | opcode::DIFFICULTY - | opcode::SGT - | opcode::GASPRICE - | opcode::MSIZE - | opcode::EXTCODEHASH - | opcode::SMOD - | opcode::CHAINID - | opcode::COINBASE => 1, - _ => 0, - } -} +#[cfg(test)] +mod tests { + use alloy_sol_types::{GenericContractError, SolInterface}; -#[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub enum TraceStyle { - /// Parity style tracer - Parity, - /// Geth style tracer - #[allow(dead_code)] - Geth, -} + use super::*; + + #[test] + fn decode_revert_reason() { + let err = GenericContractError::Revert("my revert".into()); + let encoded = err.abi_encode(); + let reason = maybe_revert_reason(&encoded).unwrap(); + assert_eq!(reason, "my revert"); + } -impl TraceStyle { - /// Returns true if this is a parity style tracer. - pub(crate) const fn is_parity(self) -> bool { - matches!(self, Self::Parity) + // + #[test] + fn decode_revert_reason_with_error() { + let err = hex!("08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000024556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e5400000000000000000000000000000000000000000000000000000080"); + let reason = maybe_revert_reason(&err[..]).unwrap(); + assert_eq!(reason, "UniswapV2: INSUFFICIENT_INPUT_AMOUNT"); } } From 1ae2bfc4f062d16dadb71c672baa8c91fe34b444 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Thu, 13 Mar 2025 20:32:37 -0500 Subject: [PATCH 03/93] wip but almost done --- Cargo.lock | 740 +++++------------- Cargo.toml | 62 +- crates/brontes-database/brontes-db/Cargo.toml | 5 +- .../brontes-db/src/libmdbx/env.rs | 17 +- .../libmdbx/implementation/native/cursor.rs | 2 +- .../src/libmdbx/implementation/native/tx.rs | 10 +- .../libmdbx/implementation/native/utils.rs | 2 +- .../src/libmdbx/libmdbx_read_write.rs | 2 +- .../brontes-db/src/libmdbx/mod.rs | 5 +- .../brontes-db/src/libmdbx/tables/mod.rs | 3 +- crates/brontes-database/libmdbx-rs/Cargo.toml | 2 +- .../brontes-database/libmdbx-rs/src/codec.rs | 17 +- .../brontes-database/libmdbx-rs/src/cursor.rs | 130 +-- .../libmdbx-rs/src/database.rs | 12 +- .../libmdbx-rs/src/environment.rs | 105 +-- .../brontes-database/libmdbx-rs/src/error.rs | 124 +-- .../brontes-database/libmdbx-rs/src/flags.rs | 30 +- crates/brontes-database/libmdbx-rs/src/lib.rs | 2 +- .../libmdbx-rs/src/transaction.rs | 117 +-- .../libmdbx-rs/src/txn_manager.rs | 46 +- crates/brontes-metrics/Cargo.toml | 1 + crates/brontes-metrics/src/db_writer.rs | 3 +- crates/brontes-metrics/src/pricing.rs | 10 +- .../src/prometheus_exporter.rs | 18 +- crates/brontes-metrics/src/range.rs | 4 +- .../protocols/uniswap_v2/batch_request/mod.rs | 6 +- .../src/protocols/uniswap_v2/mod.rs | 4 +- .../protocols/uniswap_v3/batch_request/mod.rs | 12 +- .../src/protocols/uniswap_v3/mod.rs | 8 +- crates/brontes-types/Cargo.toml | 1 + crates/brontes-types/src/lib.rs | 1 - crates/brontes-types/src/traits.rs | 3 +- crates/reth-tracing-ext/Cargo.toml | 2 + crates/reth-tracing-ext/src/lib.rs | 9 +- crates/reth-tracing-ext/src/provider.rs | 129 +-- .../src/reth_tracer/inspector.rs | 43 - 36 files changed, 688 insertions(+), 999 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c0da4144d..802013346f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,15 +66,6 @@ dependencies = [ "zerocopy 0.7.35", ] -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -265,7 +256,7 @@ dependencies = [ "auto_impl", "derive_more 1.0.0", "op-revm", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "thiserror 2.0.12", ] @@ -1245,9 +1236,9 @@ dependencies = [ [[package]] name = "arrow" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219d05930b81663fd3b32e3bde8ce5bff3c4d23052a99f11a8fa50a3b47b2658" +checksum = "dc208515aa0151028e464cc94a692156e945ce5126abd3537bb7fd6ba2143ed1" dependencies = [ "arrow-arith", "arrow-array", @@ -1266,24 +1257,23 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0272150200c07a86a390be651abdd320a2d12e84535f0837566ca87ecd8f95e0" +checksum = "e07e726e2b3f7816a85c6a45b6ec118eeeabf0b2a8c208122ad949437181f49a" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "chrono", - "half", "num", ] [[package]] name = "arrow-array" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8010572cf8c745e242d1b632bd97bd6d4f40fefed5ed1290a8f433abaa686fea" +checksum = "a2262eba4f16c78496adfd559a29fe4b24df6088efc9985a873d58e92be022d5" dependencies = [ "ahash", "arrow-buffer", @@ -1291,15 +1281,15 @@ dependencies = [ "arrow-schema", "chrono", "half", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "num", ] [[package]] name = "arrow-buffer" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0a2432f0cba5692bf4cb757469c66791394bac9ec7ce63c1afe74744c37b27" +checksum = "4e899dade2c3b7f5642eb8366cfd898958bcca099cde6dfea543c7e8d3ad88d4" dependencies = [ "bytes", "half", @@ -1308,9 +1298,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9abc10cd7995e83505cc290df9384d6e5412b207b79ce6bdff89a10505ed2cba" +checksum = "4103d88c5b441525ed4ac23153be7458494c2b0c9a11115848fdb9b81f6f886a" dependencies = [ "arrow-array", "arrow-buffer", @@ -1328,28 +1318,25 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95cbcba196b862270bf2a5edb75927380a7f3a163622c61d40cbba416a6305f2" +checksum = "43d3cb0914486a3cae19a5cad2598e44e225d53157926d0ada03c20521191a65" dependencies = [ "arrow-array", - "arrow-buffer", "arrow-cast", - "arrow-data", "arrow-schema", "chrono", "csv", "csv-core", "lazy_static", - "lexical-core", "regex", ] [[package]] name = "arrow-data" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2742ac1f6650696ab08c88f6dd3f0eb68ce10f8c253958a18c943a68cd04aec5" +checksum = "0a329fb064477c9ec5f0870d2f5130966f91055c7c5bce2b3a084f116bc28c3b" dependencies = [ "arrow-buffer", "arrow-schema", @@ -1359,13 +1346,12 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42ea853130f7e78b9b9d178cb4cd01dee0f78e64d96c2949dc0a915d6d9e19d" +checksum = "ddecdeab02491b1ce88885986e25002a3da34dd349f682c7cfe67bab7cc17b86" dependencies = [ "arrow-array", "arrow-buffer", - "arrow-cast", "arrow-data", "arrow-schema", "flatbuffers", @@ -1373,9 +1359,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaafb5714d4e59feae964714d724f880511500e3569cc2a94d02456b403a2a49" +checksum = "d03b9340013413eb84868682ace00a1098c81a5ebc96d279f7ebf9a4cac3c0fd" dependencies = [ "arrow-array", "arrow-buffer", @@ -1393,45 +1379,41 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3e6b61e3dc468f503181dccc2fc705bdcc5f2f146755fa5b56d0a6c5943f412" +checksum = "f841bfcc1997ef6ac48ee0305c4dfceb1f7c786fe31e67c1186edf775e1f1160" dependencies = [ "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "arrow-select", - "half", - "num", ] [[package]] name = "arrow-row" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848ee52bb92eb459b811fb471175ea3afcf620157674c8794f539838920f9228" +checksum = "1eeb55b0a0a83851aa01f2ca5ee5648f607e8506ba6802577afdda9d75cdedcd" dependencies = [ - "ahash", "arrow-array", "arrow-buffer", "arrow-data", "arrow-schema", "half", - "hashbrown 0.14.5", ] [[package]] name = "arrow-schema" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d9483aaabe910c4781153ae1b6ae0393f72d9ef757d38d09d450070cf2e528" +checksum = "85934a9d0261e0fa5d4e2a5295107d743b543a6e0484a835d4b8db2da15306f9" [[package]] name = "arrow-select" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "849524fa70e0e3c5ab58394c770cb8f514d0122d20de08475f7b472ed8075830" +checksum = "7e2932aece2d0c869dd2125feb9bd1709ef5c445daa3838ac4112dcfa0fda52c" dependencies = [ "ahash", "arrow-array", @@ -1443,9 +1425,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9373cb5a021aee58863498c37eb484998ef13377f69989c6c5ccfbd258236cdb" +checksum = "912e38bd6a7a7714c1d9b61df80315685553b7455e8a6045c27531d8ecd5b458" dependencies = [ "arrow-array", "arrow-buffer", @@ -1470,7 +1452,7 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "310c9bcae737a48ef5cdee3174184e6d548b292739ede61a1f955ef76a738861" dependencies = [ - "brotli 7.0.0", + "brotli", "flate2", "futures-core", "memchr", @@ -1893,7 +1875,7 @@ dependencies = [ "itertools 0.11.0", "log-report-layer", "malachite", - "metrics-process 1.0.14", + "metrics-process", "num_cpus", "prettytable-rs", "prometheus", @@ -2081,9 +2063,10 @@ dependencies = [ "reth-codecs-derive", "reth-db", "reth-libmdbx", - "reth-mdbx-sys 1.2.0", + "reth-mdbx-sys", "reth-primitives", "reth-rpc", + "reth-storage-errors", "reth-tasks", "reth-tracing-ext", "rkyv", @@ -2168,7 +2151,7 @@ dependencies = [ "libffi", "parking_lot", "pprof", - "reth-mdbx-sys 1.2.0", + "reth-mdbx-sys", "tempfile", "thiserror 1.0.69", "tracing", @@ -2197,14 +2180,15 @@ dependencies = [ "eyre", "futures", "hyper 0.14.32", - "metrics 0.21.1", - "metrics-exporter-prometheus 0.12.1", - "metrics-process 1.0.14", - "metrics-util 0.15.0", + "metrics", + "metrics-exporter-prometheus", + "metrics-process", + "metrics-util", "procfs 0.16.0", "prometheus", "reth-metrics", "reth-primitives", + "reth-storage-errors", "tikv-jemalloc-ctl", "tokio", "tracing", @@ -2285,6 +2269,7 @@ name = "brontes-types" version = "0.1.0" dependencies = [ "ahash", + "alloy-consensus", "alloy-dyn-abi 0.7.7", "alloy-json-abi 0.7.7", "alloy-primitives 0.8.23", @@ -2348,17 +2333,6 @@ dependencies = [ "zstd", ] -[[package]] -name = "brotli" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor 2.5.1", -] - [[package]] name = "brotli" version = "7.0.0" @@ -2367,17 +2341,7 @@ checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", - "brotli-decompressor 4.0.2", -] - -[[package]] -name = "brotli-decompressor" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", + "brotli-decompressor", ] [[package]] @@ -2603,9 +2567,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -2613,7 +2577,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-targets 0.52.6", ] [[package]] @@ -3771,12 +3735,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - [[package]] name = "enr" version = "0.13.0" @@ -4052,9 +4010,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flatbuffers" -version = "23.5.26" +version = "24.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640" +checksum = "4f1baf0dbf96932ec9a3038d57900329c015b0bfb7b63d904f3bc27e2b02a096" dependencies = [ "bitflags 1.3.2", "rustc_version 0.4.1", @@ -4459,9 +4417,6 @@ name = "hashbrown" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] [[package]] name = "hashbrown" @@ -5635,9 +5590,9 @@ dependencies = [ [[package]] name = "lexical-core" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" +checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" dependencies = [ "lexical-parse-float", "lexical-parse-integer", @@ -5648,9 +5603,9 @@ dependencies = [ [[package]] name = "lexical-parse-float" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" +checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" dependencies = [ "lexical-parse-integer", "lexical-util", @@ -5659,9 +5614,9 @@ dependencies = [ [[package]] name = "lexical-parse-integer" -version = "0.8.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" +checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" dependencies = [ "lexical-util", "static_assertions", @@ -5669,18 +5624,18 @@ dependencies = [ [[package]] name = "lexical-util" -version = "0.8.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" +checksum = "5a82e24bf537fd24c177ffbbdc6ebcc8d54732c35b50a3f28cc3f4e4c949a0b3" dependencies = [ "static_assertions", ] [[package]] name = "lexical-write-float" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" +checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" dependencies = [ "lexical-util", "lexical-write-integer", @@ -5689,9 +5644,9 @@ dependencies = [ [[package]] name = "lexical-write-integer" -version = "0.8.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" +checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" dependencies = [ "lexical-util", "static_assertions", @@ -6097,17 +6052,6 @@ dependencies = [ "libc", ] -[[package]] -name = "metrics" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" -dependencies = [ - "ahash", - "metrics-macros", - "portable-atomic", -] - [[package]] name = "metrics" version = "0.24.1" @@ -6130,24 +6074,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "metrics-exporter-prometheus" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" -dependencies = [ - "base64 0.21.7", - "hyper 0.14.32", - "indexmap 1.9.3", - "ipnet", - "metrics 0.21.1", - "metrics-util 0.15.0", - "quanta 0.11.1", - "thiserror 1.0.69", - "tokio", - "tracing", -] - [[package]] name = "metrics-exporter-prometheus" version = "0.16.2" @@ -6156,38 +6082,12 @@ checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", "indexmap 2.8.0", - "metrics 0.24.1", - "metrics-util 0.19.0", - "quanta 0.12.5", + "metrics", + "metrics-util", + "quanta", "thiserror 1.0.69", ] -[[package]] -name = "metrics-macros" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "metrics-process" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa2a67e2580fbeba4d5a96e659945981e700a383b4cea1432e0cfc18f58c5da" -dependencies = [ - "libproc", - "mach2", - "metrics 0.21.1", - "once_cell", - "procfs 0.16.0", - "rlimit", - "windows 0.52.0", -] - [[package]] name = "metrics-process" version = "2.4.0" @@ -6197,32 +6097,13 @@ dependencies = [ "libc", "libproc", "mach2", - "metrics 0.24.1", + "metrics", "once_cell", "procfs 0.17.0", "rlimit", "windows 0.58.0", ] -[[package]] -name = "metrics-util" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111cb375987443c3de8d503580b536f77dc8416d32db62d9456db5d93bd7ac47" -dependencies = [ - "aho-corasick 0.7.20", - "crossbeam-epoch", - "crossbeam-utils", - "hashbrown 0.13.2", - "indexmap 1.9.3", - "metrics 0.21.1", - "num_cpus", - "ordered-float 3.9.2", - "quanta 0.11.1", - "radix_trie", - "sketches-ddsketch 0.2.2", -] - [[package]] name = "metrics-util" version = "0.19.0" @@ -6232,11 +6113,11 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.2", - "metrics 0.24.1", - "quanta 0.12.5", + "metrics", + "quanta", "rand 0.8.5", "rand_xoshiro", - "sketches-ddsketch 0.3.0", + "sketches-ddsketch", ] [[package]] @@ -6469,15 +6350,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - [[package]] name = "nix" version = "0.26.4" @@ -6768,7 +6640,7 @@ checksum = "bace6de3cbeca7d98d49354b3812c6d72fc609c54e162ce9db0dae1c82d2eb57" dependencies = [ "auto_impl", "once_cell", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "serde", ] @@ -6837,15 +6709,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "ordered-float" -version = "3.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" -dependencies = [ - "num-traits", -] - [[package]] name = "overload" version = "0.1.1" @@ -6928,9 +6791,9 @@ dependencies = [ [[package]] name = "parquet" -version = "51.0.0" +version = "54.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "096795d4f47f65fd3ee1ec5a98b77ab26d602f2cc785b0e4be5443add17ecc32" +checksum = "f88838dca3b84d41444a0341b19f347e8098a3898b0f21536654b8b799e11abd" dependencies = [ "ahash", "arrow-array", @@ -6941,23 +6804,25 @@ dependencies = [ "arrow-schema", "arrow-select", "base64 0.22.1", - "brotli 3.5.0", + "brotli", "bytes", "chrono", "flate2", "futures", "half", - "hashbrown 0.14.5", + "hashbrown 0.15.2", "lz4_flex", "num", "num-bigint", "paste", "seq-macro", + "simdutf8", "snap", "thrift", "tokio", "twox-hash", "zstd", + "zstd-sys", ] [[package]] @@ -7519,7 +7384,7 @@ dependencies = [ "num-traits", "once_cell", "polars-error", - "raw-cpuid 11.5.0", + "raw-cpuid", "rayon", "smartstring", "sysinfo 0.30.13", @@ -7900,22 +7765,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "quanta" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" -dependencies = [ - "crossbeam-utils", - "libc", - "mach2", - "once_cell", - "raw-cpuid 10.7.0", - "wasi 0.11.0+wasi-snapshot-preview1", - "web-sys", - "winapi", -] - [[package]] name = "quanta" version = "0.12.5" @@ -7925,7 +7774,7 @@ dependencies = [ "crossbeam-utils", "libc", "once_cell", - "raw-cpuid 11.5.0", + "raw-cpuid", "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", @@ -8013,16 +7862,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - [[package]] name = "rand" version = "0.8.5" @@ -8112,15 +7951,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "raw-cpuid" -version = "10.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "raw-cpuid" version = "11.5.0" @@ -8211,7 +8041,7 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "aho-corasick 1.1.3", + "aho-corasick", "memchr", "regex-automata 0.4.9", "regex-syntax 0.8.5", @@ -8232,7 +8062,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ - "aho-corasick 1.1.3", + "aho-corasick", "memchr", "regex-syntax 0.8.5", ] @@ -8382,7 +8212,7 @@ dependencies = [ "alloy-primitives 0.8.23", "futures-core", "futures-util", - "metrics 0.24.1", + "metrics", "reth-metrics", "reth-payload-builder", "reth-payload-builder-primitives", @@ -8405,7 +8235,7 @@ dependencies = [ "alloy-eips", "alloy-primitives 0.8.23", "derive_more 2.0.1", - "metrics 0.24.1", + "metrics", "parking_lot", "pin-project", "reth-chainspec", @@ -8416,7 +8246,7 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "reth-trie", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database", "tokio", "tokio-stream", "tracing", @@ -8557,7 +8387,7 @@ dependencies = [ "alloy-primitives 0.8.23", "derive_more 2.0.1", "eyre", - "metrics 0.24.1", + "metrics", "page_size", "reth-db-api", "reth-fs-util", @@ -8583,7 +8413,7 @@ dependencies = [ "alloy-primitives 0.8.23", "bytes", "derive_more 2.0.1", - "metrics 0.24.1", + "metrics", "modular-bitfield", "parity-scale-codec", "reth-codecs", @@ -8679,7 +8509,7 @@ dependencies = [ "enr", "futures", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "rand 0.8.5", "reth-chainspec", "reth-ethereum-forks", @@ -8727,7 +8557,7 @@ dependencies = [ "futures", "futures-util", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "pin-project", "rayon", "reth-config", @@ -8866,7 +8696,7 @@ dependencies = [ "alloy-rpc-types-engine", "derive_more 2.0.1", "futures", - "metrics 0.24.1", + "metrics", "mini-moka", "parking_lot", "rayon", @@ -8891,7 +8721,7 @@ dependencies = [ "reth-trie-db", "reth-trie-parallel", "reth-trie-sparse", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives", "schnellru", "thiserror 2.0.12", "tokio", @@ -9056,7 +8886,7 @@ dependencies = [ "reth-revm", "reth-storage-api", "reth-transaction-pool", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "tracing", ] @@ -9078,7 +8908,7 @@ dependencies = [ "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", - "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-context", "secp256k1", "serde", ] @@ -9105,7 +8935,7 @@ dependencies = [ "auto_impl", "derive_more 2.0.1", "futures-util", - "metrics 0.24.1", + "metrics", "op-revm", "reth-ethereum-primitives", "reth-execution-errors", @@ -9115,8 +8945,8 @@ dependencies = [ "reth-storage-api", "reth-storage-errors", "reth-trie-common", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", + "revm-database", ] [[package]] @@ -9134,7 +8964,7 @@ dependencies = [ "reth-evm", "reth-execution-types", "reth-primitives-traits", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", ] [[package]] @@ -9163,8 +8993,8 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", + "revm-database", "serde", "serde_with", ] @@ -9180,7 +9010,7 @@ dependencies = [ "eyre", "futures", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "parking_lot", "reth-chain-state", "reth-chainspec", @@ -9291,21 +9121,12 @@ dependencies = [ "derive_more 2.0.1", "indexmap 2.8.0", "parking_lot", - "reth-mdbx-sys 1.3.0", + "reth-mdbx-sys", "smallvec", "thiserror 2.0.12", "tracing", ] -[[package]] -name = "reth-mdbx-sys" -version = "1.2.0" -source = "git+https://github.com/paradigmxyz/reth?rev=916b2415#916b241532f62a3a5d5c91fdb2d792cb37b29def" -dependencies = [ - "bindgen", - "cc", -] - [[package]] name = "reth-mdbx-sys" version = "1.3.0" @@ -9321,7 +9142,7 @@ version = "1.3.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" dependencies = [ "futures", - "metrics 0.24.1", + "metrics", "metrics-derive", "tokio", "tokio-util", @@ -9365,7 +9186,7 @@ dependencies = [ "enr", "futures", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "parking_lot", "pin-project", "rand 0.8.5", @@ -9665,7 +9486,7 @@ dependencies = [ "reth-tracing", "reth-transaction-pool", "reth-trie-db", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", ] [[package]] @@ -9700,10 +9521,10 @@ dependencies = [ "eyre", "http 1.3.1", "jsonrpsee-server", - "metrics 0.24.1", - "metrics-exporter-prometheus 0.16.2", - "metrics-process 2.4.0", - "metrics-util 0.19.0", + "metrics", + "metrics-exporter-prometheus", + "metrics-process", + "metrics-util", "procfs 0.17.0", "reth-metrics", "reth-tasks", @@ -9733,7 +9554,7 @@ dependencies = [ "alloy-consensus", "alloy-rpc-types", "futures-util", - "metrics 0.24.1", + "metrics", "reth-chain-state", "reth-ethereum-engine-primitives", "reth-metrics", @@ -9821,9 +9642,9 @@ dependencies = [ "op-alloy-consensus", "rayon", "reth-codecs", - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-bytecode", + "revm-primitives", + "revm-state", "secp256k1", "serde", "serde_with", @@ -9843,7 +9664,7 @@ dependencies = [ "dashmap 6.1.0", "eyre", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "notify", "parking_lot", "rayon", @@ -9868,7 +9689,7 @@ dependencies = [ "reth-storage-errors", "reth-trie", "reth-trie-db", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database", "strum 0.27.1", "tokio", "tracing", @@ -9883,7 +9704,7 @@ dependencies = [ "alloy-eips", "alloy-primitives 0.8.23", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "rayon", "reth-chainspec", "reth-config", @@ -9925,9 +9746,9 @@ dependencies = [ "reth-storage-api", "reth-storage-errors", "reth-trie", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-inspector 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", + "revm-database", + "revm-inspector", ] [[package]] @@ -9988,9 +9809,9 @@ dependencies = [ "reth-rpc-types-compat", "reth-tasks", "reth-transaction-pool", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "revm-inspectors", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives", "serde", "serde_json", "thiserror 2.0.12", @@ -10036,7 +9857,7 @@ dependencies = [ "alloy-provider", "http 1.3.1", "jsonrpsee", - "metrics 0.24.1", + "metrics", "pin-project", "reth-chainspec", "reth-consensus", @@ -10075,7 +9896,7 @@ dependencies = [ "async-trait", "jsonrpsee-core", "jsonrpsee-types", - "metrics 0.24.1", + "metrics", "parking_lot", "reth-chainspec", "reth-engine-primitives", @@ -10131,7 +9952,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie-common", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "revm-inspectors", "tokio", "tracing", @@ -10152,7 +9973,7 @@ dependencies = [ "itertools 0.14.0", "jsonrpsee-core", "jsonrpsee-types", - "metrics 0.24.1", + "metrics", "rand 0.8.5", "reth-chain-state", "reth-chainspec", @@ -10169,10 +9990,10 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "reth-trie", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", + "revm-database", "revm-inspectors", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives", "schnellru", "serde", "thiserror 2.0.12", @@ -10276,7 +10097,7 @@ dependencies = [ "aquamarine", "auto_impl", "futures-util", - "metrics 0.24.1", + "metrics", "reth-consensus", "reth-errors", "reth-metrics", @@ -10359,7 +10180,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "reth-trie-db", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database", ] [[package]] @@ -10374,7 +10195,7 @@ dependencies = [ "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database-interface", "thiserror 2.0.12", ] @@ -10386,7 +10207,7 @@ dependencies = [ "auto_impl", "dyn-clone", "futures-util", - "metrics 0.24.1", + "metrics", "pin-project", "rayon", "reth-metrics", @@ -10425,6 +10246,8 @@ dependencies = [ name = "reth-tracing-ext" version = "0.1.0" dependencies = [ + "alloy-consensus", + "alloy-evm", "alloy-primitives 0.8.23", "alloy-rpc-types", "alloy-rpc-types-trace", @@ -10455,10 +10278,10 @@ dependencies = [ "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", - "revm 20.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-inspector 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", + "revm-inspector", "revm-inspectors", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-primitives", "serde", "serde_json", "tokio", @@ -10478,7 +10301,7 @@ dependencies = [ "auto_impl", "bitflags 2.9.0", "futures-util", - "metrics 0.24.1", + "metrics", "parking_lot", "rand 0.8.5", "reth-chain-state", @@ -10491,8 +10314,8 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "reth-tasks", - "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-interpreter", + "revm-primitives", "rustc-hash 2.1.1", "schnellru", "serde", @@ -10515,7 +10338,7 @@ dependencies = [ "alloy-trie", "auto_impl", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", @@ -10523,7 +10346,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "reth-trie-sparse", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database", "tracing", ] @@ -10545,7 +10368,7 @@ dependencies = [ "rayon", "reth-codecs", "reth-primitives-traits", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-database", "serde", "serde_with", ] @@ -10558,13 +10381,13 @@ dependencies = [ "alloy-primitives 0.8.23", "alloy-rlp", "derive_more 2.0.1", - "metrics 0.24.1", + "metrics", "reth-db-api", "reth-execution-errors", "reth-metrics", "reth-primitives-traits", "reth-trie", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "tracing", ] @@ -10577,7 +10400,7 @@ dependencies = [ "alloy-rlp", "derive_more 2.0.1", "itertools 0.14.0", - "metrics 0.24.1", + "metrics", "rayon", "reth-execution-errors", "reth-metrics", @@ -10621,35 +10444,17 @@ version = "20.0.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4eafd506f0f00559874b343901fb441771b8d3722724d08dab6859d3339289f" dependencies = [ - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-handler 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-inspector 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-precompile 17.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "revm" -version = "20.0.0-alpha.5" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-context 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-database 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-handler 1.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-inspector 1.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-precompile 17.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database", + "revm-database-interface", + "revm-handler", + "revm-inspector", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-state", ] [[package]] @@ -10660,18 +10465,7 @@ checksum = "6ad4e81fd3d5241ba201d2514a21835d8d06fa8bb7a2fb5b733a424a4776f0c4" dependencies = [ "bitvec", "phf", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-bytecode" -version = "1.0.0-alpha.3" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "bitvec", - "phf", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives", "serde", ] @@ -10683,26 +10477,11 @@ checksum = "d6aa6c3cd7ddd1aa68a0478f101fb5ebff83ee0566064b458cb3769725cde7fa" dependencies = [ "cfg-if", "derive-where", - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-context" -version = "1.0.0-alpha.4" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "cfg-if", - "derive-where", - "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode", + "revm-context-interface", + "revm-database-interface", + "revm-primitives", + "revm-state", "serde", ] @@ -10715,23 +10494,9 @@ dependencies = [ "alloy-eip2930", "alloy-eip7702", "auto_impl", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-context-interface" -version = "1.0.0-alpha.4" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-database-interface", + "revm-primitives", + "revm-state", "serde", ] @@ -10743,24 +10508,10 @@ checksum = "cd8e7b21693b74dbd9ee824a00225aad6a4ec9db903625304ae1ce0f4c0940c4" dependencies = [ "alloy-eips", "auto_impl", - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-database" -version = "1.0.0-alpha.3" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "alloy-eips", - "auto_impl", - "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode", + "revm-database-interface", + "revm-primitives", + "revm-state", "serde", ] @@ -10771,19 +10522,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd54a44b415d510cffea16955888544ce54f987958578b40a52d15963462b259" dependencies = [ "auto_impl", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-database-interface" -version = "1.0.0-alpha.3" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "auto_impl", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-primitives", + "revm-state", "serde", ] @@ -10794,31 +10534,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc6048d06362493e8f0864d99ede5092ee2324db37e1e7d592fcb3c50e4af482" dependencies = [ "auto_impl", - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-precompile 17.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-handler" -version = "1.0.0-alpha.5" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "auto_impl", - "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-context 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-precompile 17.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database-interface", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-state", "serde", ] @@ -10829,30 +10552,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8b97116c773f9330b5d7f01796f57282f075389145d8e8932ac144d448356ad" dependencies = [ "auto_impl", - "revm-context 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-database-interface 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-handler 1.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-interpreter 16.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-precompile 17.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-state 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", - "serde_json", -] - -[[package]] -name = "revm-inspector" -version = "1.0.0-alpha.5" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "auto_impl", - "revm-context 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-database-interface 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-handler 1.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-interpreter 16.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-precompile 17.0.0-alpha.5 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-state 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-context", + "revm-database-interface", + "revm-handler", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-state", "serde", "serde_json", ] @@ -10869,7 +10575,7 @@ dependencies = [ "alloy-sol-types 0.8.23", "anstyle", "colorchoice", - "revm 20.0.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", + "revm", "serde", "serde_json", "thiserror 2.0.12", @@ -10881,20 +10587,9 @@ version = "16.0.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7273ce9185b2a63cbd6bc6cfb3bc2a611923f9fb0bd432bd565c4d8c0d5f606f" dependencies = [ - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-interpreter" -version = "16.0.0-alpha.5" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode", + "revm-context-interface", + "revm-primitives", "serde", ] @@ -10912,28 +10607,8 @@ dependencies = [ "libsecp256k1", "once_cell", "p256", - "revm-context-interface 1.0.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ripemd", - "secp256k1", - "sha2 0.10.8", - "substrate-bn", -] - -[[package]] -name = "revm-precompile" -version = "17.0.0-alpha.5" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "aurora-engine-modexp", - "c-kzg", - "cfg-if", - "k256", - "libsecp256k1", - "once_cell", - "p256", - "revm-context-interface 1.0.0-alpha.4 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-context-interface", + "revm-primitives", "ripemd", "secp256k1", "sha2 0.10.8", @@ -10951,16 +10626,6 @@ dependencies = [ "serde", ] -[[package]] -name = "revm-primitives" -version = "16.0.0-alpha.3" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "alloy-primitives 0.8.23", - "enumn", - "serde", -] - [[package]] name = "revm-state" version = "1.0.0-alpha.3" @@ -10968,19 +10633,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3869d401da38fcf76021a6f5e4182fa027976f54763bc6ab2c477e440c6cd8f" dependencies = [ "bitflags 2.9.0", - "revm-bytecode 1.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "revm-primitives 16.0.0-alpha.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde", -] - -[[package]] -name = "revm-state" -version = "1.0.0-alpha.3" -source = "git+https://github.com/bluealloy/revm.git#00d5ec474c15b351843da475f796f6e7101ab92e" -dependencies = [ - "bitflags 2.9.0", - "revm-bytecode 1.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", - "revm-primitives 16.0.0-alpha.3 (git+https://github.com/bluealloy/revm.git)", + "revm-bytecode", + "revm-primitives", "serde", ] @@ -11858,12 +11512,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "sketches-ddsketch" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" - [[package]] name = "sketches-ddsketch" version = "0.3.0" @@ -12414,7 +12062,7 @@ checksum = "7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09" dependencies = [ "byteorder", "integer-encoding", - "ordered-float 2.10.1", + "ordered-float", ] [[package]] @@ -14003,18 +13651,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.3" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3051792fbdc2e1e143244dc28c60f73d8470e93f3f9cbd0ead44da5ed802722" +checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.14+zstd.1.5.7" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb060d4926e4ac3a3ad15d864e99ceb5f343c6b34f5bd6d81ae6ed417311be5" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index abdeb678aa..cfcb3d0579 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,39 +37,41 @@ brontes-analytics = { path = "./crates/brontes-analytics" } brontes-libmdbx = { path = "./crates/brontes-database/libmdbx-rs" } # Reth -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", version = "1.3.0", tag = "v1.3.0" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-types", version = "1.3.0", tag = "v1.3.0" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", package = "reth-tasks", version = "1.3.0", tag = "v1.3.0" } -reth-rpc = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-api", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-eth-api", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-rpc-builder", version = "1.3.0", tag = "v1.3.0" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", version = "1.3.0", tag = "v1.3.0" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", package = "reth-transaction-pool", version = "1.3.0", tag = "v1.3.0" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", package = "reth-chainspec", version = "1.3.0", tag = "v1.3.0" } -reth-network-api = { git = "https://github.com/paradigmxyz/reth", package = "reth-network-api", version = "1.3.0", tag = "v1.3.0" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", package = "reth-primitives", version = "1.3.0", tag = "v1.3.0" } -reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", version = "1.3.0", tag = "v1.3.0" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-core", version = "1.3.0", tag = "v1.3.0" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", package = "reth-revm", version = "1.3.0", tag = "v1.3.0" } -reth-stages = { git = "https://github.com/paradigmxyz/reth", package = "reth-stages", features = [ +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-rpc = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-network-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-db = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-stages = { git = "https://github.com/paradigmxyz/reth", features = [ "test-utils", ], version = "1.3.0", tag = "v1.3.0" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", package = "reth-trie", version = "1.3.0", tag = "v1.3.0" } -reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", package = "reth-libmdbx", version = "1.3.0", tag = "v1.3.0" } -reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", package = "reth-eth-wire", version = "1.3.0", tag = "v1.3.0" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", package = "reth-payload-builder", version = "1.3.0", tag = "v1.3.0" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", package = "reth-metrics", version = "1.3.0", tag = "v1.3.0" } -reth-codecs = { git = "https://github.com/paradigmxyz/reth", package = "reth-codecs", version = "1.3.0", tag = "v1.3.0" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-codecs = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-storage-errors = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-mdbx-sys = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } # ruint ruint = "1.9.0" # revm -revm = { git = "https://github.com/bluealloy/revm.git", version = "20.0.0-alpha.5", features = [ +revm = { version = "20.0.0-alpha.5", features = [ "std", "secp256k1", "optional_balance_check", @@ -80,6 +82,7 @@ revm-primitives = { version = "16.0.0-alpha.3", features = [ ], default-features = false } revm-inspector = { version = "1.0.0-alpha.5", default-features = false } revm-inspectors = "0.17.0-alpha.1" +alloy-evm = { version = "0.1.0-alpha.1", default-features = false } # revm-interpreter = { version = "16.0.0-alpha.5", default-features = false } @@ -101,6 +104,7 @@ alloy-provider = { version = "0.12.5", default-features = false, features = [ ] } alloy-transport-http = { version = "0.12.5" } alloy-transport = { version = "0.12.5" } +alloy-consensus = { version = "0.12.5" } alloy-network = { version = "0.12.5" } alloy-json-rpc = { version = "0.12.5" } alloy-rpc-types = { version = "0.12.5", features = ["jsonrpsee-types", "eth"] } @@ -124,9 +128,9 @@ tracing-subscriber = { version = "0.3.17", default-features = false, features = colored = "2.0" # Metrics -metrics-exporter-prometheus = "=0.12.1" -metrics-util = "0.15.0" -metrics-process = "=1.0.14" +metrics-exporter-prometheus = { version = "0.16.0", default-features = false } +metrics-process = "2.1.0" +metrics-util = { default-features = false, version = "0.19.0" } # Logging env_logger = "0.10.0" @@ -159,7 +163,7 @@ phf = "0.11.2" phf_codegen = "0.11.2" # metrics -metrics = "0.21.1" +metrics = "0.24.0" # misc backon = "0.4.4" @@ -185,9 +189,9 @@ redefined = { git = "https://github.com/SorellaLabs/redefined" } bytes = "1.5" bitflags = "2.5.0" -arrow = "51.0.0" +arrow = "54.2.1" polars = { version = "0.38.3", features = ["lazy"] } -parquet = { version = "51.0.0", features = ["async"] } +parquet = { version = "54.2.1", features = ["async"] } indicatif = "0.17.8" # filesystem diff --git a/crates/brontes-database/brontes-db/Cargo.toml b/crates/brontes-database/brontes-db/Cargo.toml index c518a38dc8..2f0f6bc606 100644 --- a/crates/brontes-database/brontes-db/Cargo.toml +++ b/crates/brontes-database/brontes-db/Cargo.toml @@ -29,11 +29,12 @@ alloy-json-abi = { workspace = true, features = ["serde_json"] } # reth reth-primitives.workspace = true +reth-storage-errors.workspace = true reth-libmdbx = { workspace = true, features = [ "return-borrowed", "read-tx-timeouts", ] } -reth-mdbx-sys = { git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } +reth-mdbx-sys.workspace = true reth-db.workspace = true reth-rpc.workspace = true alloy-rpc-types.workspace = true @@ -56,7 +57,7 @@ rand = "0.8.5" modular-bitfield = "0.11.2" bytes = "1.5" zstd = "0.13" -chrono = "0.4.40" +chrono = "0.4.39" dashmap = "5.5.3" polars.workspace = true arrow.workspace = true diff --git a/crates/brontes-database/brontes-db/src/libmdbx/env.rs b/crates/brontes-database/brontes-db/src/libmdbx/env.rs index 21be00144d..aca748117b 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/env.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/env.rs @@ -7,12 +7,11 @@ use brontes_libmdbx::{ PageSize, SyncMode, }; use reth_db::{ - database_metrics::{DatabaseMetadata, DatabaseMetadataValue}, - models::client_version::ClientVersion, tables::{TableType, Tables}, - DatabaseError, + ClientVersion, DatabaseError, }; -use reth_interfaces::db::LogLevel; +use reth_storage_errors::db::LogLevel; + const GIGABYTE: usize = 1024 * 1024 * 1024; /// MDBX allows up to 32767 readers (`MDBX_READERS_LIMIT`), but we limit it to @@ -126,11 +125,11 @@ pub struct DatabaseEnv { inner: Environment, } -impl DatabaseMetadata for DatabaseEnv { - fn metadata(&self) -> DatabaseMetadataValue { - DatabaseMetadataValue::new(self.freelist().ok()) - } -} +// impl DatabaseMetadata for DatabaseEnv { +// fn metadata(&self) -> DatabaseMetadataValue { +// DatabaseMetadataValue::new(self.freelist().ok()) +// } +// } impl DatabaseEnv { /// Opens the database at the specified path with the given `EnvKind`. diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs index a55dc8a6ab..05c2226c88 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs @@ -14,7 +14,7 @@ use reth_db::{ table::{DupSort, Encode, Table}, DatabaseError, DatabaseWriteOperation, }; -use reth_interfaces::db::DatabaseWriteError; +use reth_storage_errors::db::DatabaseWriteError; use super::utils::{decode_one, decode_value, decoder, uncompressable_ref_util}; diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs index e595f4f7c8..e3f07b58e4 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs @@ -7,8 +7,9 @@ use reth_db::{ transaction::{DbTx, DbTxMut}, DatabaseError, DatabaseWriteOperation, TableType, }; -use reth_interfaces::db::DatabaseWriteError; +use reth_storage_errors::db::DatabaseWriteError; +// use super::{cursor::LibmdbxCursor, utils::decode_one}; use crate::libmdbx::{ env::DatabaseEnv, @@ -162,6 +163,13 @@ impl DbTx for LibmdbxTx { .map_err(|e| DatabaseError::Stats(e.into()))? .entries()) } + + fn get_by_encoded_key( + &self, + key: &::Encoded, + ) -> Result, DatabaseError> { + self.get(key.decode()) + } } impl DbTxMut for LibmdbxTx { diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs index 4d67dc6929..a70e59ee5f 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs @@ -16,7 +16,7 @@ where { let key = match kv.0 { Cow::Borrowed(k) => Decode::decode(k)?, - Cow::Owned(k) => Decode::decode(k)?, + Cow::Owned(k) => Decode::decode(&k)?, }; let value = match kv.1 { Cow::Borrowed(v) => Decompress::decompress(v)?, diff --git a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs index 9cd8fbf835..2d962761ba 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs @@ -34,7 +34,7 @@ use indicatif::ProgressBar; use itertools::Itertools; use malachite::Rational; use reth_db::table::{Compress, Encode}; -use reth_interfaces::db::LogLevel; +use reth_storage_errors::db::LogLevel; use tokio::sync::mpsc::{unbounded_channel, UnboundedSender}; use tracing::{info, instrument}; diff --git a/crates/brontes-database/brontes-db/src/libmdbx/mod.rs b/crates/brontes-database/brontes-db/src/libmdbx/mod.rs index 421f8914fd..9dc529d89e 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/mod.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/mod.rs @@ -28,12 +28,11 @@ pub use libmdbx_read_write::{ }; use reth_db::{ is_database_empty, - models::client_version::ClientVersion, transaction::DbTx, version::{check_db_version_file, create_db_version_file, DatabaseVersionError}, - DatabaseError, + ClientVersion, DatabaseError, }; -use reth_interfaces::db::LogLevel; +use reth_storage_errors::db::LogLevel; use tables::*; use tracing::info; diff --git a/crates/brontes-database/brontes-db/src/libmdbx/tables/mod.rs b/crates/brontes-database/brontes-db/src/libmdbx/tables/mod.rs index 772f5db9ae..514e45498e 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/tables/mod.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/tables/mod.rs @@ -566,7 +566,8 @@ macro_rules! compressed_table { impl reth_db::table::Table for $table_name { // this type is needed for the trait impl but we never actually use it, // so an arbitrary table will do - const TABLE: reth_db::Tables = reth_db::Tables::CanonicalHeaders; + // const TABLE: reth_db::Tables = reth_db::Tables::CanonicalHeaders; + const DUPSORT: bool = false; const NAME: &'static str = stringify!($table_name); type Key = $key; type Value = $c_val; diff --git a/crates/brontes-database/libmdbx-rs/Cargo.toml b/crates/brontes-database/libmdbx-rs/Cargo.toml index 6ae2533e26..df421cecd0 100644 --- a/crates/brontes-database/libmdbx-rs/Cargo.toml +++ b/crates/brontes-database/libmdbx-rs/Cargo.toml @@ -18,7 +18,7 @@ thiserror.workspace = true dashmap = { version = "5.5.3", features = ["inline"], optional = true } tracing.workspace = true -ffi = { package = "reth-mdbx-sys", git = "https://github.com/paradigmxyz/reth", rev = "916b2415" } +reth-mdbx-sys.workspace = true [dev-dependencies] tempfile = "3.8" diff --git a/crates/brontes-database/libmdbx-rs/src/codec.rs b/crates/brontes-database/libmdbx-rs/src/codec.rs index 6729d656e1..1b6c7d78ad 100644 --- a/crates/brontes-database/libmdbx-rs/src/codec.rs +++ b/crates/brontes-database/libmdbx-rs/src/codec.rs @@ -16,8 +16,8 @@ pub trait TableObject: Sized { /// This should only in the context of an MDBX transaction. #[doc(hidden)] unsafe fn decode_val( - _: *const ffi::MDBX_txn, - data_val: ffi::MDBX_val, + _: *const reth_mdbx_sys::MDBX_txn, + data_val: reth_mdbx_sys::MDBX_val, ) -> Result { let s = slice::from_raw_parts(data_val.iov_base as *const u8, data_val.iov_len); Self::decode(s) @@ -31,8 +31,8 @@ impl<'tx> TableObject for Cow<'tx, [u8]> { #[doc(hidden)] unsafe fn decode_val( - _txn: *const ffi::MDBX_txn, - data_val: ffi::MDBX_val, + _txn: *const reth_mdbx_sys::MDBX_txn, + data_val: reth_mdbx_sys::MDBX_val, ) -> Result { let s = slice::from_raw_parts(data_val.iov_base as *const u8, data_val.iov_len); @@ -44,7 +44,10 @@ impl<'tx> TableObject for Cow<'tx, [u8]> { #[cfg(not(feature = "return-borrowed"))] { let is_dirty = (!K::IS_READ_ONLY) - && crate::error::mdbx_result(ffi::mdbx_is_dirty(_txn, data_val.iov_base))?; + && crate::error::mdbx_result(reth_mdbx_sys::mdbx_is_dirty( + _txn, + data_val.iov_base, + ))?; Ok(if is_dirty { Cow::Owned(s.to_vec()) } else { Cow::Borrowed(s) }) } @@ -63,8 +66,8 @@ impl TableObject for () { } unsafe fn decode_val( - _: *const ffi::MDBX_txn, - _: ffi::MDBX_val, + _: *const reth_mdbx_sys::MDBX_txn, + _: reth_mdbx_sys::MDBX_val, ) -> Result { Ok(()) } diff --git a/crates/brontes-database/libmdbx-rs/src/cursor.rs b/crates/brontes-database/libmdbx-rs/src/cursor.rs index a16520f7a0..5a5c1a2825 100644 --- a/crates/brontes-database/libmdbx-rs/src/cursor.rs +++ b/crates/brontes-database/libmdbx-rs/src/cursor.rs @@ -1,12 +1,12 @@ use std::{borrow::Cow, fmt, marker::PhantomData, mem, ptr}; -extern crate ffi; -use ffi::{ +extern crate reth_mdbx_sys; +use libc::c_void; +use reth_mdbx_sys::{ MDBX_cursor_op, MDBX_FIRST, MDBX_FIRST_DUP, MDBX_GET_BOTH, MDBX_GET_BOTH_RANGE, MDBX_GET_CURRENT, MDBX_GET_MULTIPLE, MDBX_LAST, MDBX_LAST_DUP, MDBX_NEXT, MDBX_NEXT_DUP, MDBX_NEXT_MULTIPLE, MDBX_NEXT_NODUP, MDBX_PREV, MDBX_PREV_DUP, MDBX_PREV_MULTIPLE, MDBX_PREV_NODUP, MDBX_SET, MDBX_SET_KEY, MDBX_SET_LOWERBOUND, MDBX_SET_RANGE, }; -use libc::c_void; use crate::{ error::{mdbx_result, Error, Result}, @@ -22,18 +22,18 @@ where K: TransactionKind, { txn: Transaction, - cursor: *mut ffi::MDBX_cursor, + cursor: *mut reth_mdbx_sys::MDBX_cursor, } impl Cursor where K: TransactionKind, { - pub(crate) fn new(txn: Transaction, dbi: ffi::MDBX_dbi) -> Result { - let mut cursor: *mut ffi::MDBX_cursor = ptr::null_mut(); + pub(crate) fn new(txn: Transaction, dbi: reth_mdbx_sys::MDBX_dbi) -> Result { + let mut cursor: *mut reth_mdbx_sys::MDBX_cursor = ptr::null_mut(); unsafe { txn.txn_execute(|txn_ptr| { - mdbx_result(ffi::mdbx_cursor_open(txn_ptr, dbi, &mut cursor)) + mdbx_result(reth_mdbx_sys::mdbx_cursor_open(txn_ptr, dbi, &mut cursor)) })??; } Ok(Self { txn, cursor }) @@ -41,9 +41,9 @@ where fn new_at_position(other: &Self) -> Result { unsafe { - let cursor = ffi::mdbx_cursor_create(ptr::null_mut()); + let cursor = reth_mdbx_sys::mdbx_cursor_create(ptr::null_mut()); - let res = ffi::mdbx_cursor_copy(other.cursor(), cursor); + let res = reth_mdbx_sys::mdbx_cursor_copy(other.cursor(), cursor); let s = Self { txn: other.txn.clone(), cursor }; @@ -57,7 +57,7 @@ where /// /// The caller **must** ensure that the pointer is not used after the /// lifetime of the cursor. - pub fn cursor(&self) -> *mut ffi::MDBX_cursor { + pub fn cursor(&self) -> *mut reth_mdbx_sys::MDBX_cursor { self.cursor } @@ -95,7 +95,7 @@ where let key_ptr = key_val.iov_base; let data_ptr = data_val.iov_base; self.txn.txn_execute(|txn| { - let v = mdbx_result(ffi::mdbx_cursor_get( + let v = mdbx_result(reth_mdbx_sys::mdbx_cursor_get( self.cursor, &mut key_val, &mut data_val, @@ -355,7 +355,7 @@ where Key: TableObject, Value: TableObject, { - Iter::new(self, ffi::MDBX_NEXT, ffi::MDBX_NEXT) + Iter::new(self, reth_mdbx_sys::MDBX_NEXT, reth_mdbx_sys::MDBX_NEXT) } /// Iterate over database items starting from the beginning of the database. @@ -368,7 +368,7 @@ where Key: TableObject, Value: TableObject, { - Iter::new(self, ffi::MDBX_FIRST, ffi::MDBX_NEXT) + Iter::new(self, reth_mdbx_sys::MDBX_FIRST, reth_mdbx_sys::MDBX_NEXT) } /// Iterate over database items starting from the given key. @@ -385,7 +385,7 @@ where if let Err(error) = res { return Iter::Err(Some(error)) }; - Iter::new(self, ffi::MDBX_GET_CURRENT, ffi::MDBX_NEXT) + Iter::new(self, reth_mdbx_sys::MDBX_GET_CURRENT, reth_mdbx_sys::MDBX_NEXT) } /// Iterate over duplicate database items. The iterator will begin with the @@ -396,7 +396,7 @@ where Key: TableObject, Value: TableObject, { - IterDup::new(self, ffi::MDBX_NEXT) + IterDup::new(self, reth_mdbx_sys::MDBX_NEXT) } /// Iterate over duplicate database items starting from the beginning of the @@ -406,7 +406,7 @@ where Key: TableObject, Value: TableObject, { - IterDup::new(self, ffi::MDBX_FIRST) + IterDup::new(self, reth_mdbx_sys::MDBX_FIRST) } /// Iterate over duplicate items in the database starting from the given @@ -420,7 +420,7 @@ where if let Err(error) = res { return IterDup::Err(Some(error)) }; - IterDup::new(self, ffi::MDBX_GET_CURRENT) + IterDup::new(self, reth_mdbx_sys::MDBX_GET_CURRENT) } /// Iterate over the duplicates of the item in the database with the given @@ -435,11 +435,11 @@ where Ok(Some(_)) => (), Ok(None) => { let _: Result> = self.last(); - return Iter::new(self, ffi::MDBX_NEXT, ffi::MDBX_NEXT) + return Iter::new(self, reth_mdbx_sys::MDBX_NEXT, reth_mdbx_sys::MDBX_NEXT) } Err(error) => return Iter::Err(Some(error)), }; - Iter::new(self, ffi::MDBX_GET_CURRENT, ffi::MDBX_NEXT_DUP) + Iter::new(self, reth_mdbx_sys::MDBX_GET_CURRENT, reth_mdbx_sys::MDBX_NEXT_DUP) } } @@ -447,13 +447,15 @@ impl Cursor { /// Puts a key/data pair into the database. The cursor will be positioned at /// the new data item, or on failure usually near it. pub fn put(&mut self, key: &[u8], data: &[u8], flags: WriteFlags) -> Result<()> { - let key_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; - let mut data_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: data.len(), iov_base: data.as_ptr() as *mut c_void }; + let key_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; + let mut data_val: reth_mdbx_sys::MDBX_val = reth_mdbx_sys::MDBX_val { + iov_len: data.len(), + iov_base: data.as_ptr() as *mut c_void, + }; mdbx_result(unsafe { self.txn.txn_execute(|_| { - ffi::mdbx_cursor_put(self.cursor, &key_val, &mut data_val, flags.bits()) + reth_mdbx_sys::mdbx_cursor_put(self.cursor, &key_val, &mut data_val, flags.bits()) })? })?; @@ -469,7 +471,7 @@ impl Cursor { pub fn del(&mut self, flags: WriteFlags) -> Result<()> { mdbx_result(unsafe { self.txn - .txn_execute(|_| ffi::mdbx_cursor_del(self.cursor, flags.bits()))? + .txn_execute(|_| reth_mdbx_sys::mdbx_cursor_del(self.cursor, flags.bits()))? })?; Ok(()) @@ -502,17 +504,18 @@ where { fn drop(&mut self) { self.txn - .txn_execute(|_| unsafe { ffi::mdbx_cursor_close(self.cursor) }) + .txn_execute(|_| unsafe { reth_mdbx_sys::mdbx_cursor_close(self.cursor) }) .unwrap() } } -unsafe fn slice_to_val(slice: Option<&[u8]>) -> ffi::MDBX_val { +unsafe fn slice_to_val(slice: Option<&[u8]>) -> reth_mdbx_sys::MDBX_val { match slice { - Some(slice) => { - ffi::MDBX_val { iov_len: slice.len(), iov_base: slice.as_ptr() as *mut c_void } - } - None => ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }, + Some(slice) => reth_mdbx_sys::MDBX_val { + iov_len: slice.len(), + iov_base: slice.as_ptr() as *mut c_void, + }, + None => reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }, } } @@ -544,10 +547,10 @@ where /// The first operation to perform when the consumer calls /// [Iter::next()]. - op: ffi::MDBX_cursor_op, + op: reth_mdbx_sys::MDBX_cursor_op, /// The next and subsequent operations to perform. - next_op: ffi::MDBX_cursor_op, + next_op: reth_mdbx_sys::MDBX_cursor_op, _marker: PhantomData<(&'cur (), Key, Value)>, }, @@ -560,7 +563,11 @@ where Value: TableObject, { /// Creates a new iterator backed by the given cursor. - fn new(cursor: Cursor, op: ffi::MDBX_cursor_op, next_op: ffi::MDBX_cursor_op) -> Self { + fn new( + cursor: Cursor, + op: reth_mdbx_sys::MDBX_cursor_op, + next_op: reth_mdbx_sys::MDBX_cursor_op, + ) -> Self { IntoIter::Ok { cursor, op, next_op, _marker: Default::default() } } } @@ -576,13 +583,18 @@ where fn next(&mut self) -> Option { match self { Self::Ok { cursor, op, next_op, .. } => { - let mut key = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; - let mut data = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let mut key = reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let mut data = reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; let op = mem::replace(op, *next_op); unsafe { let result = cursor.txn.txn_execute(|txn| { - match ffi::mdbx_cursor_get(cursor.cursor(), &mut key, &mut data, op) { - ffi::MDBX_SUCCESS => { + match reth_mdbx_sys::mdbx_cursor_get( + cursor.cursor(), + &mut key, + &mut data, + op, + ) { + reth_mdbx_sys::MDBX_SUCCESS => { let key = match Key::decode_val::(txn, key) { Ok(v) => v, Err(e) => return Some(Err(e)), @@ -596,7 +608,7 @@ where // MDBX_ENODATA can occur when the cursor was previously sought to a // non-existent value, e.g. iter_from with a // key greater than all values in the database. - ffi::MDBX_NOTFOUND | ffi::MDBX_ENODATA => None, + reth_mdbx_sys::MDBX_NOTFOUND | reth_mdbx_sys::MDBX_ENODATA => None, error => Some(Err(Error::from_err_code(error))), } }); @@ -636,10 +648,10 @@ where /// The first operation to perform when the consumer calls /// [Iter::next()]. - op: ffi::MDBX_cursor_op, + op: reth_mdbx_sys::MDBX_cursor_op, /// The next and subsequent operations to perform. - next_op: ffi::MDBX_cursor_op, + next_op: reth_mdbx_sys::MDBX_cursor_op, _marker: PhantomData, }, @@ -654,8 +666,8 @@ where /// Creates a new iterator backed by the given cursor. fn new( cursor: &'cur mut Cursor, - op: ffi::MDBX_cursor_op, - next_op: ffi::MDBX_cursor_op, + op: reth_mdbx_sys::MDBX_cursor_op, + next_op: reth_mdbx_sys::MDBX_cursor_op, ) -> Self { Iter::Ok { cursor, op, next_op, _marker: Default::default() } } @@ -672,13 +684,18 @@ where fn next(&mut self) -> Option { match self { Iter::Ok { cursor, op, next_op, .. } => { - let mut key = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; - let mut data = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let mut key = reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let mut data = reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; let op = mem::replace(op, *next_op); unsafe { let result = cursor.txn.txn_execute(|txn| { - match ffi::mdbx_cursor_get(cursor.cursor(), &mut key, &mut data, op) { - ffi::MDBX_SUCCESS => { + match reth_mdbx_sys::mdbx_cursor_get( + cursor.cursor(), + &mut key, + &mut data, + op, + ) { + reth_mdbx_sys::MDBX_SUCCESS => { let key = match Key::decode_val::(txn, key) { Ok(v) => v, Err(e) => return Some(Err(e)), @@ -692,7 +709,7 @@ where // MDBX_NODATA can occur when the cursor was previously sought to a // non-existent value, e.g. iter_from with a // key greater than all values in the database. - ffi::MDBX_NOTFOUND | ffi::MDBX_ENODATA => None, + reth_mdbx_sys::MDBX_NOTFOUND | reth_mdbx_sys::MDBX_ENODATA => None, error => Some(Err(Error::from_err_code(error))), } }); @@ -773,19 +790,20 @@ where fn next(&mut self) -> Option { match self { IterDup::Ok { cursor, op, .. } => { - let mut key = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; - let mut data = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; - let op = mem::replace(op, ffi::MDBX_NEXT_NODUP); + let mut key = reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let mut data = reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let op = mem::replace(op, reth_mdbx_sys::MDBX_NEXT_NODUP); let result = cursor.txn.txn_execute(|_| { - let err_code = - unsafe { ffi::mdbx_cursor_get(cursor.cursor(), &mut key, &mut data, op) }; + let err_code = unsafe { + reth_mdbx_sys::mdbx_cursor_get(cursor.cursor(), &mut key, &mut data, op) + }; - (err_code == ffi::MDBX_SUCCESS).then(|| { + (err_code == reth_mdbx_sys::MDBX_SUCCESS).then(|| { IntoIter::new( Cursor::new_at_position(&**cursor).unwrap(), - ffi::MDBX_GET_CURRENT, - ffi::MDBX_NEXT_DUP, + reth_mdbx_sys::MDBX_GET_CURRENT, + reth_mdbx_sys::MDBX_NEXT_DUP, ) }) }); diff --git a/crates/brontes-database/libmdbx-rs/src/database.rs b/crates/brontes-database/libmdbx-rs/src/database.rs index a9e05303af..75e93c682c 100644 --- a/crates/brontes-database/libmdbx-rs/src/database.rs +++ b/crates/brontes-database/libmdbx-rs/src/database.rs @@ -1,6 +1,6 @@ use std::{ffi::CString, ptr}; -use ffi::MDBX_db_flags_t; +use reth_mdbx_sys::MDBX_db_flags_t; use crate::{ error::{mdbx_result, Result}, @@ -14,7 +14,7 @@ use crate::{ /// environment. #[derive(Debug)] pub struct Database { - dbi: ffi::MDBX_dbi, + dbi: reth_mdbx_sys::MDBX_dbi, /// The environment that this database belongs to keeps it alive as long as /// the database instance exists. _env: Option, @@ -32,14 +32,14 @@ impl Database { ) -> Result { let c_name = name.map(|n| CString::new(n).unwrap()); let name_ptr = if let Some(c_name) = &c_name { c_name.as_ptr() } else { ptr::null() }; - let mut dbi: ffi::MDBX_dbi = 0; + let mut dbi: reth_mdbx_sys::MDBX_dbi = 0; txn.txn_execute(|txn_ptr| { - mdbx_result(unsafe { ffi::mdbx_dbi_open(txn_ptr, name_ptr, flags, &mut dbi) }) + mdbx_result(unsafe { reth_mdbx_sys::mdbx_dbi_open(txn_ptr, name_ptr, flags, &mut dbi) }) })??; Ok(Self::new_from_ptr(dbi, txn.env().clone())) } - pub(crate) fn new_from_ptr(dbi: ffi::MDBX_dbi, env: Environment) -> Self { + pub(crate) fn new_from_ptr(dbi: reth_mdbx_sys::MDBX_dbi, env: Environment) -> Self { Self { dbi, _env: Some(env) } } @@ -52,7 +52,7 @@ impl Database { /// /// The caller **must** ensure that the handle is not used after the /// lifetime of the environment, or after the database has been closed. - pub fn dbi(&self) -> ffi::MDBX_dbi { + pub fn dbi(&self) -> reth_mdbx_sys::MDBX_dbi { self.dbi } } diff --git a/crates/brontes-database/libmdbx-rs/src/environment.rs b/crates/brontes-database/libmdbx-rs/src/environment.rs index de294e9776..08180c8fc3 100644 --- a/crates/brontes-database/libmdbx-rs/src/environment.rs +++ b/crates/brontes-database/libmdbx-rs/src/environment.rs @@ -143,7 +143,7 @@ impl Environment { /// The caller **must** ensure that the pointer is never dereferenced after /// the environment has been dropped. #[inline] - pub(crate) fn env_ptr(&self) -> *mut ffi::MDBX_env { + pub(crate) fn env_ptr(&self) -> *mut reth_mdbx_sys::MDBX_env { self.inner.env } @@ -158,21 +158,21 @@ impl Environment { #[doc(hidden)] pub fn with_raw_env_ptr(&self, f: F) -> T where - F: FnOnce(*mut ffi::MDBX_env) -> T, + F: FnOnce(*mut reth_mdbx_sys::MDBX_env) -> T, { f(self.env_ptr()) } /// Flush the environment data buffers to disk. pub fn sync(&self, force: bool) -> Result { - mdbx_result(unsafe { ffi::mdbx_env_sync_ex(self.env_ptr(), force, false) }) + mdbx_result(unsafe { reth_mdbx_sys::mdbx_env_sync_ex(self.env_ptr(), force, false) }) } /// Retrieves statistics about this environment. pub fn stat(&self) -> Result { unsafe { let mut stat = Stat::new(); - mdbx_result(ffi::mdbx_env_stat_ex( + mdbx_result(reth_mdbx_sys::mdbx_env_stat_ex( self.env_ptr(), ptr::null(), stat.mdb_stat(), @@ -186,7 +186,7 @@ impl Environment { pub fn info(&self) -> Result { unsafe { let mut info = Info(mem::zeroed()); - mdbx_result(ffi::mdbx_env_info_ex( + mdbx_result(reth_mdbx_sys::mdbx_env_info_ex( self.env_ptr(), ptr::null(), &mut info.0, @@ -245,14 +245,15 @@ impl Environment { /// Container type for Environment internals. /// /// This holds the raw pointer to the MDBX environment and the transaction -/// manager. The env is opened via [mdbx_env_create](ffi::mdbx_env_create) and -/// closed when this type drops. +/// manager. The env is opened via +/// [mdbx_env_create](reth_mdbx_sys::mdbx_env_create) and closed when this type +/// drops. struct EnvironmentInner { /// The raw pointer to the MDBX environment. /// /// Accessing the environment is thread-safe as long as long as this type /// exists. - env: *mut ffi::MDBX_env, + env: *mut reth_mdbx_sys::MDBX_env, /// Whether the environment was opened as WRITEMAP. env_kind: EnvironmentKind, /// Transaction manager @@ -263,7 +264,7 @@ impl Drop for EnvironmentInner { fn drop(&mut self) { // Close open mdbx environment on drop unsafe { - ffi::mdbx_env_close_ex(self.env, false); + reth_mdbx_sys::mdbx_env_close_ex(self.env, false); } } } @@ -303,16 +304,16 @@ impl EnvironmentKind { } /// Additional flags required when opening the environment. - pub(crate) fn extra_flags(&self) -> ffi::MDBX_env_flags_t { + pub(crate) fn extra_flags(&self) -> reth_mdbx_sys::MDBX_env_flags_t { match self { - EnvironmentKind::Default => ffi::MDBX_ENV_DEFAULTS, - EnvironmentKind::WriteMap => ffi::MDBX_WRITEMAP, + EnvironmentKind::Default => reth_mdbx_sys::MDBX_ENV_DEFAULTS, + EnvironmentKind::WriteMap => reth_mdbx_sys::MDBX_WRITEMAP, } } } #[derive(Copy, Clone, Debug)] -pub(crate) struct EnvPtr(pub(crate) *mut ffi::MDBX_env); +pub(crate) struct EnvPtr(pub(crate) *mut reth_mdbx_sys::MDBX_env); unsafe impl Send for EnvPtr {} unsafe impl Sync for EnvPtr {} @@ -322,16 +323,16 @@ unsafe impl Sync for EnvPtr {} /// database. #[derive(Debug)] #[repr(transparent)] -pub struct Stat(ffi::MDBX_stat); +pub struct Stat(reth_mdbx_sys::MDBX_stat); impl Stat { - /// Create a new Stat with zero'd inner struct `ffi::MDB_stat`. + /// Create a new Stat with zero'd inner struct `reth_mdbx_sys::MDB_stat`. pub(crate) fn new() -> Stat { unsafe { Stat(mem::zeroed()) } } - /// Returns a mut pointer to `ffi::MDB_stat`. - pub(crate) fn mdb_stat(&mut self) -> *mut ffi::MDBX_stat { + /// Returns a mut pointer to `reth_mdbx_sys::MDB_stat`. + pub(crate) fn mdb_stat(&mut self) -> *mut reth_mdbx_sys::MDBX_stat { &mut self.0 } } @@ -377,7 +378,7 @@ impl Stat { #[derive(Debug)] #[repr(transparent)] -pub struct GeometryInfo(ffi::MDBX_envinfo__bindgen_ty_1); +pub struct GeometryInfo(reth_mdbx_sys::MDBX_envinfo__bindgen_ty_1); impl GeometryInfo { pub fn min(&self) -> u64 { @@ -391,7 +392,7 @@ impl GeometryInfo { /// etc. #[derive(Debug)] #[repr(transparent)] -pub struct Info(ffi::MDBX_envinfo); +pub struct Info(reth_mdbx_sys::MDBX_envinfo); impl Info { pub fn geometry(&self) -> GeometryInfo { @@ -618,7 +619,7 @@ pub struct EnvironmentBuilder { spill_max_denominator: Option, spill_min_denominator: Option, geometry: Option, Option)>>, - log_level: Option, + log_level: Option, kind: EnvironmentKind, #[cfg(not(windows))] handle_slow_readers: Option, @@ -643,17 +644,21 @@ impl EnvironmentBuilder { pub fn open_with_permissions( &self, path: &Path, - mode: ffi::mdbx_mode_t, + mode: reth_mdbx_sys::mdbx_mode_t, ) -> Result { - let mut env: *mut ffi::MDBX_env = ptr::null_mut(); + let mut env: *mut reth_mdbx_sys::MDBX_env = ptr::null_mut(); unsafe { if let Some(log_level) = self.log_level { // Returns the previously debug_flags in the 0-15 bits and log_level in the // 16-31 bits, no need to use `mdbx_result`. - ffi::mdbx_setup_debug(log_level, ffi::MDBX_DBG_DONTCHANGE, None); + reth_mdbx_sys::mdbx_setup_debug( + log_level, + reth_mdbx_sys::MDBX_DBG_DONTCHANGE, + None, + ); } - mdbx_result(ffi::mdbx_env_create(&mut env))?; + mdbx_result(reth_mdbx_sys::mdbx_env_create(&mut env))?; if let Err(e) = (|| { if let Some(geometry) = &self.geometry { @@ -670,7 +675,7 @@ impl EnvironmentBuilder { } } - mdbx_result(ffi::mdbx_env_set_geometry( + mdbx_result(reth_mdbx_sys::mdbx_env_set_geometry( env, min_size, -1, @@ -685,31 +690,31 @@ impl EnvironmentBuilder { ))?; } for (opt, v) in [ - (ffi::MDBX_opt_max_db, self.max_dbs), - (ffi::MDBX_opt_rp_augment_limit, self.rp_augment_limit), - (ffi::MDBX_opt_loose_limit, self.loose_limit), - (ffi::MDBX_opt_dp_reserve_limit, self.dp_reserve_limit), - (ffi::MDBX_opt_txn_dp_limit, self.txn_dp_limit), - (ffi::MDBX_opt_spill_max_denominator, self.spill_max_denominator), - (ffi::MDBX_opt_spill_min_denominator, self.spill_min_denominator), + (reth_mdbx_sys::MDBX_opt_max_db, self.max_dbs), + (reth_mdbx_sys::MDBX_opt_rp_augment_limit, self.rp_augment_limit), + (reth_mdbx_sys::MDBX_opt_loose_limit, self.loose_limit), + (reth_mdbx_sys::MDBX_opt_dp_reserve_limit, self.dp_reserve_limit), + (reth_mdbx_sys::MDBX_opt_txn_dp_limit, self.txn_dp_limit), + (reth_mdbx_sys::MDBX_opt_spill_max_denominator, self.spill_max_denominator), + (reth_mdbx_sys::MDBX_opt_spill_min_denominator, self.spill_min_denominator), ] { if let Some(v) = v { - mdbx_result(ffi::mdbx_env_set_option(env, opt, v))?; + mdbx_result(reth_mdbx_sys::mdbx_env_set_option(env, opt, v))?; } } // set max readers if specified if let Some(max_readers) = self.max_readers { - mdbx_result(ffi::mdbx_env_set_option( + mdbx_result(reth_mdbx_sys::mdbx_env_set_option( env, - ffi::MDBX_opt_max_readers, + reth_mdbx_sys::MDBX_opt_max_readers, max_readers, ))?; } #[cfg(not(windows))] if let Some(handle_slow_readers) = self.handle_slow_readers { - mdbx_result(ffi::mdbx_env_set_hsr( + mdbx_result(reth_mdbx_sys::mdbx_env_set_hsr( env, handle_slow_readers_callback(handle_slow_readers), ))?; @@ -723,9 +728,9 @@ impl EnvironmentBuilder { #[cfg(windows)] fn path_to_bytes>(path: P) -> Vec { - // On Windows, could use std::os::windows::ffi::OsStrExt to encode_wide(), - // but we end up with a Vec instead of a Vec, so that doesn't - // really help. + // On Windows, could use std::os::windows::reth_mdbx_sys::OsStrExt to + // encode_wide(), but we end up with a Vec instead of a + // Vec, so that doesn't really help. path.as_ref().to_string_lossy().to_string().into_bytes() } @@ -733,7 +738,7 @@ impl EnvironmentBuilder { Ok(path) => path, Err(_) => return Err(Error::Invalid), }; - mdbx_result(ffi::mdbx_env_open( + mdbx_result(reth_mdbx_sys::mdbx_env_open( env, path.as_ptr(), self.flags.make_flags() | self.kind.extra_flags(), @@ -742,7 +747,7 @@ impl EnvironmentBuilder { Ok(()) })() { - ffi::mdbx_env_close_ex(env, false); + reth_mdbx_sys::mdbx_env_close_ex(env, false); return Err(e) } @@ -864,7 +869,7 @@ impl EnvironmentBuilder { self } - pub fn set_log_level(&mut self, log_level: ffi::MDBX_log_level_t) -> &mut Self { + pub fn set_log_level(&mut self, log_level: reth_mdbx_sys::MDBX_log_level_t) -> &mut Self { self.log_level = Some(log_level); self } @@ -923,19 +928,23 @@ pub(crate) mod read_transactions { /// the program. It's fine, because we also expect the database environment to /// be alive during this whole time. #[cfg(not(windows))] -unsafe fn handle_slow_readers_callback(callback: HandleSlowReadersCallback) -> ffi::MDBX_hsr_func { +unsafe fn handle_slow_readers_callback( + callback: HandleSlowReadersCallback, +) -> reth_mdbx_sys::MDBX_hsr_func { // Move the callback function to heap and intentionally leak it, so it's not // dropped and the MDBX env can use it throughout the whole program. + + use libffi::high::Closure8; let callback = Box::leak(Box::new(callback)); // Wrap the callback into an ffi binding. The callback is needed for a nicer UX // with Rust types, and without `env` and `txn` arguments that we don't want // to expose to the user. Again, move the closure to heap and leak. let hsr = Box::leak(Box::new( - |_env: *const ffi::MDBX_env, - _txn: *const ffi::MDBX_txn, - pid: ffi::mdbx_pid_t, - tid: ffi::mdbx_tid_t, + |_env: *const reth_mdbx_sys::MDBX_env, + _txn: *const reth_mdbx_sys::MDBX_txn, + pid: reth_mdbx_sys::mdbx_pid_t, + tid: reth_mdbx_sys::mdbx_tid_t, laggard: u64, gap: ::libc::c_uint, space: usize, @@ -947,7 +956,7 @@ unsafe fn handle_slow_readers_callback(callback: HandleSlowReadersCallback) -> f // Create a pointer to the C function from the Rust closure, and forcefully // forget the original closure. - let closure = libffi::high::Closure8::new(hsr); + let closure = Closure8::new(hsr); let closure_ptr = *closure.code_ptr(); std::mem::forget(closure); diff --git a/crates/brontes-database/libmdbx-rs/src/error.rs b/crates/brontes-database/libmdbx-rs/src/error.rs index bbb5502dfa..a514aad5fa 100644 --- a/crates/brontes-database/libmdbx-rs/src/error.rs +++ b/crates/brontes-database/libmdbx-rs/src/error.rs @@ -137,35 +137,35 @@ impl Error { /// Converts a raw error code to an [Error]. pub fn from_err_code(err_code: c_int) -> Error { match err_code { - ffi::MDBX_KEYEXIST => Error::KeyExist, - ffi::MDBX_NOTFOUND => Error::NotFound, - ffi::MDBX_ENODATA => Error::NoData, - ffi::MDBX_PAGE_NOTFOUND => Error::PageNotFound, - ffi::MDBX_CORRUPTED => Error::Corrupted, - ffi::MDBX_PANIC => Error::Panic, - ffi::MDBX_VERSION_MISMATCH => Error::VersionMismatch, - ffi::MDBX_INVALID => Error::Invalid, - ffi::MDBX_MAP_FULL => Error::MapFull, - ffi::MDBX_DBS_FULL => Error::DbsFull, - ffi::MDBX_READERS_FULL => Error::ReadersFull, - ffi::MDBX_TXN_FULL => Error::TxnFull, - ffi::MDBX_CURSOR_FULL => Error::CursorFull, - ffi::MDBX_PAGE_FULL => Error::PageFull, - ffi::MDBX_UNABLE_EXTEND_MAPSIZE => Error::UnableExtendMapSize, - ffi::MDBX_INCOMPATIBLE => Error::Incompatible, - ffi::MDBX_BAD_RSLOT => Error::BadRslot, - ffi::MDBX_BAD_TXN => Error::BadTxn, - ffi::MDBX_BAD_VALSIZE => Error::BadValSize, - ffi::MDBX_BAD_DBI => Error::BadDbi, - ffi::MDBX_PROBLEM => Error::Problem, - ffi::MDBX_BUSY => Error::Busy, - ffi::MDBX_EMULTIVAL => Error::Multival, - ffi::MDBX_WANNA_RECOVERY => Error::WannaRecovery, - ffi::MDBX_EKEYMISMATCH => Error::KeyMismatch, - ffi::MDBX_EINVAL => Error::DecodeError, - ffi::MDBX_EACCESS => Error::Access, - ffi::MDBX_TOO_LARGE => Error::TooLarge, - ffi::MDBX_EBADSIGN => Error::BadSignature, + reth_mdbx_sys::MDBX_KEYEXIST => Error::KeyExist, + reth_mdbx_sys::MDBX_NOTFOUND => Error::NotFound, + reth_mdbx_sys::MDBX_ENODATA => Error::NoData, + reth_mdbx_sys::MDBX_PAGE_NOTFOUND => Error::PageNotFound, + reth_mdbx_sys::MDBX_CORRUPTED => Error::Corrupted, + reth_mdbx_sys::MDBX_PANIC => Error::Panic, + reth_mdbx_sys::MDBX_VERSION_MISMATCH => Error::VersionMismatch, + reth_mdbx_sys::MDBX_INVALID => Error::Invalid, + reth_mdbx_sys::MDBX_MAP_FULL => Error::MapFull, + reth_mdbx_sys::MDBX_DBS_FULL => Error::DbsFull, + reth_mdbx_sys::MDBX_READERS_FULL => Error::ReadersFull, + reth_mdbx_sys::MDBX_TXN_FULL => Error::TxnFull, + reth_mdbx_sys::MDBX_CURSOR_FULL => Error::CursorFull, + reth_mdbx_sys::MDBX_PAGE_FULL => Error::PageFull, + reth_mdbx_sys::MDBX_UNABLE_EXTEND_MAPSIZE => Error::UnableExtendMapSize, + reth_mdbx_sys::MDBX_INCOMPATIBLE => Error::Incompatible, + reth_mdbx_sys::MDBX_BAD_RSLOT => Error::BadRslot, + reth_mdbx_sys::MDBX_BAD_TXN => Error::BadTxn, + reth_mdbx_sys::MDBX_BAD_VALSIZE => Error::BadValSize, + reth_mdbx_sys::MDBX_BAD_DBI => Error::BadDbi, + reth_mdbx_sys::MDBX_PROBLEM => Error::Problem, + reth_mdbx_sys::MDBX_BUSY => Error::Busy, + reth_mdbx_sys::MDBX_EMULTIVAL => Error::Multival, + reth_mdbx_sys::MDBX_WANNA_RECOVERY => Error::WannaRecovery, + reth_mdbx_sys::MDBX_EKEYMISMATCH => Error::KeyMismatch, + reth_mdbx_sys::MDBX_EINVAL => Error::DecodeError, + reth_mdbx_sys::MDBX_EACCESS => Error::Access, + reth_mdbx_sys::MDBX_TOO_LARGE => Error::TooLarge, + reth_mdbx_sys::MDBX_EBADSIGN => Error::BadSignature, other => Error::Other(other), } } @@ -173,37 +173,37 @@ impl Error { /// Converts an [Error] to the raw error code. pub fn to_err_code(&self) -> i32 { match self { - Error::KeyExist => ffi::MDBX_KEYEXIST, - Error::NotFound => ffi::MDBX_NOTFOUND, - Error::NoData => ffi::MDBX_ENODATA, - Error::PageNotFound => ffi::MDBX_PAGE_NOTFOUND, - Error::Corrupted => ffi::MDBX_CORRUPTED, - Error::Panic => ffi::MDBX_PANIC, - Error::VersionMismatch => ffi::MDBX_VERSION_MISMATCH, - Error::Invalid => ffi::MDBX_INVALID, - Error::MapFull => ffi::MDBX_MAP_FULL, - Error::DbsFull => ffi::MDBX_DBS_FULL, - Error::ReadersFull => ffi::MDBX_READERS_FULL, - Error::TxnFull => ffi::MDBX_TXN_FULL, - Error::CursorFull => ffi::MDBX_CURSOR_FULL, - Error::PageFull => ffi::MDBX_PAGE_FULL, - Error::UnableExtendMapSize => ffi::MDBX_UNABLE_EXTEND_MAPSIZE, - Error::Incompatible => ffi::MDBX_INCOMPATIBLE, - Error::BadRslot => ffi::MDBX_BAD_RSLOT, - Error::BadTxn => ffi::MDBX_BAD_TXN, - Error::BadValSize => ffi::MDBX_BAD_VALSIZE, - Error::BadDbi => ffi::MDBX_BAD_DBI, - Error::Problem => ffi::MDBX_PROBLEM, - Error::Busy => ffi::MDBX_BUSY, - Error::Multival => ffi::MDBX_EMULTIVAL, - Error::WannaRecovery => ffi::MDBX_WANNA_RECOVERY, - Error::KeyMismatch => ffi::MDBX_EKEYMISMATCH, - Error::DecodeErrorLenDiff | Error::DecodeError => ffi::MDBX_EINVAL, - Error::Access => ffi::MDBX_EACCESS, - Error::TooLarge => ffi::MDBX_TOO_LARGE, - Error::BadSignature => ffi::MDBX_EBADSIGN, - Error::WriteTransactionUnsupportedInReadOnlyMode => ffi::MDBX_EACCESS, - Error::NestedTransactionsUnsupportedWithWriteMap => ffi::MDBX_EACCESS, + Error::KeyExist => reth_mdbx_sys::MDBX_KEYEXIST, + Error::NotFound => reth_mdbx_sys::MDBX_NOTFOUND, + Error::NoData => reth_mdbx_sys::MDBX_ENODATA, + Error::PageNotFound => reth_mdbx_sys::MDBX_PAGE_NOTFOUND, + Error::Corrupted => reth_mdbx_sys::MDBX_CORRUPTED, + Error::Panic => reth_mdbx_sys::MDBX_PANIC, + Error::VersionMismatch => reth_mdbx_sys::MDBX_VERSION_MISMATCH, + Error::Invalid => reth_mdbx_sys::MDBX_INVALID, + Error::MapFull => reth_mdbx_sys::MDBX_MAP_FULL, + Error::DbsFull => reth_mdbx_sys::MDBX_DBS_FULL, + Error::ReadersFull => reth_mdbx_sys::MDBX_READERS_FULL, + Error::TxnFull => reth_mdbx_sys::MDBX_TXN_FULL, + Error::CursorFull => reth_mdbx_sys::MDBX_CURSOR_FULL, + Error::PageFull => reth_mdbx_sys::MDBX_PAGE_FULL, + Error::UnableExtendMapSize => reth_mdbx_sys::MDBX_UNABLE_EXTEND_MAPSIZE, + Error::Incompatible => reth_mdbx_sys::MDBX_INCOMPATIBLE, + Error::BadRslot => reth_mdbx_sys::MDBX_BAD_RSLOT, + Error::BadTxn => reth_mdbx_sys::MDBX_BAD_TXN, + Error::BadValSize => reth_mdbx_sys::MDBX_BAD_VALSIZE, + Error::BadDbi => reth_mdbx_sys::MDBX_BAD_DBI, + Error::Problem => reth_mdbx_sys::MDBX_PROBLEM, + Error::Busy => reth_mdbx_sys::MDBX_BUSY, + Error::Multival => reth_mdbx_sys::MDBX_EMULTIVAL, + Error::WannaRecovery => reth_mdbx_sys::MDBX_WANNA_RECOVERY, + Error::KeyMismatch => reth_mdbx_sys::MDBX_EKEYMISMATCH, + Error::DecodeErrorLenDiff | Error::DecodeError => reth_mdbx_sys::MDBX_EINVAL, + Error::Access => reth_mdbx_sys::MDBX_EACCESS, + Error::TooLarge => reth_mdbx_sys::MDBX_TOO_LARGE, + Error::BadSignature => reth_mdbx_sys::MDBX_EBADSIGN, + Error::WriteTransactionUnsupportedInReadOnlyMode => reth_mdbx_sys::MDBX_EACCESS, + Error::NestedTransactionsUnsupportedWithWriteMap => reth_mdbx_sys::MDBX_EACCESS, Error::ReadTransactionTimeout => -96000, // Custom non-MDBX error code Error::Other(err_code) => *err_code, } @@ -219,8 +219,8 @@ impl From for i32 { #[inline] pub(crate) fn mdbx_result(err_code: c_int) -> Result { match err_code { - ffi::MDBX_SUCCESS => Ok(false), - ffi::MDBX_RESULT_TRUE => Ok(true), + reth_mdbx_sys::MDBX_SUCCESS => Ok(false), + reth_mdbx_sys::MDBX_RESULT_TRUE => Ok(true), other => Err(Error::from_err_code(other)), } } diff --git a/crates/brontes-database/libmdbx-rs/src/flags.rs b/crates/brontes-database/libmdbx-rs/src/flags.rs index e0361539b2..0f9696a698 100644 --- a/crates/brontes-database/libmdbx-rs/src/flags.rs +++ b/crates/brontes-database/libmdbx-rs/src/flags.rs @@ -1,5 +1,5 @@ use bitflags::bitflags; -use ffi::*; +use reth_mdbx_sys::*; /// MDBX sync mode #[derive(Clone, Copy, Debug)] @@ -163,52 +163,52 @@ pub struct EnvironmentFlags { impl EnvironmentFlags { /// Configures the mdbx flags to use when opening the environment. - pub(crate) fn make_flags(&self) -> ffi::MDBX_env_flags_t { + pub(crate) fn make_flags(&self) -> reth_mdbx_sys::MDBX_env_flags_t { let mut flags = 0; if self.no_sub_dir { - flags |= ffi::MDBX_NOSUBDIR; + flags |= reth_mdbx_sys::MDBX_NOSUBDIR; } if self.exclusive { - flags |= ffi::MDBX_EXCLUSIVE; + flags |= reth_mdbx_sys::MDBX_EXCLUSIVE; } if self.accede { - flags |= ffi::MDBX_ACCEDE; + flags |= reth_mdbx_sys::MDBX_ACCEDE; } match self.mode { Mode::ReadOnly => { - flags |= ffi::MDBX_RDONLY; + flags |= reth_mdbx_sys::MDBX_RDONLY; } Mode::ReadWrite { sync_mode } => { flags |= match sync_mode { - SyncMode::Durable => ffi::MDBX_SYNC_DURABLE, - SyncMode::NoMetaSync => ffi::MDBX_NOMETASYNC, - SyncMode::SafeNoSync => ffi::MDBX_SAFE_NOSYNC, - SyncMode::UtterlyNoSync => ffi::MDBX_UTTERLY_NOSYNC, + SyncMode::Durable => reth_mdbx_sys::MDBX_SYNC_DURABLE, + SyncMode::NoMetaSync => reth_mdbx_sys::MDBX_NOMETASYNC, + SyncMode::SafeNoSync => reth_mdbx_sys::MDBX_SAFE_NOSYNC, + SyncMode::UtterlyNoSync => reth_mdbx_sys::MDBX_UTTERLY_NOSYNC, }; } } if self.no_rdahead { - flags |= ffi::MDBX_NORDAHEAD; + flags |= reth_mdbx_sys::MDBX_NORDAHEAD; } if self.no_meminit { - flags |= ffi::MDBX_NOMEMINIT; + flags |= reth_mdbx_sys::MDBX_NOMEMINIT; } if self.coalesce { - flags |= ffi::MDBX_COALESCE; + flags |= reth_mdbx_sys::MDBX_COALESCE; } if self.liforeclaim { - flags |= ffi::MDBX_LIFORECLAIM; + flags |= reth_mdbx_sys::MDBX_LIFORECLAIM; } - flags |= ffi::MDBX_NOTLS; + flags |= reth_mdbx_sys::MDBX_NOTLS; flags } diff --git a/crates/brontes-database/libmdbx-rs/src/lib.rs b/crates/brontes-database/libmdbx-rs/src/lib.rs index d6bb95119c..967d668a69 100644 --- a/crates/brontes-database/libmdbx-rs/src/lib.rs +++ b/crates/brontes-database/libmdbx-rs/src/lib.rs @@ -21,7 +21,7 @@ pub use crate::{ transaction::{CommitLatency, Transaction, TransactionKind, RO, RW}, }; pub mod ffi { - pub use ffi::{MDBX_dbi as DBI, MDBX_log_level_t as LogLevel}; + pub use reth_mdbx_sys::{MDBX_dbi as DBI, MDBX_log_level_t as LogLevel}; } #[cfg(feature = "read-tx-timeouts")] diff --git a/crates/brontes-database/libmdbx-rs/src/transaction.rs b/crates/brontes-database/libmdbx-rs/src/transaction.rs index 6d59047cd6..e89cc08c13 100644 --- a/crates/brontes-database/libmdbx-rs/src/transaction.rs +++ b/crates/brontes-database/libmdbx-rs/src/transaction.rs @@ -6,10 +6,10 @@ use std::{ time::Duration, }; -use ffi::{mdbx_txn_renew, MDBX_txn_flags_t, MDBX_TXN_RDONLY, MDBX_TXN_READWRITE}; use indexmap::IndexSet; use libc::{c_uint, c_void}; use parking_lot::{Mutex, MutexGuard}; +use reth_mdbx_sys::{mdbx_txn_renew, MDBX_txn_flags_t, MDBX_TXN_RDONLY, MDBX_TXN_READWRITE}; use crate::{ database::Database, @@ -71,9 +71,9 @@ where K: TransactionKind, { pub(crate) fn new(env: Environment) -> Result { - let mut txn: *mut ffi::MDBX_txn = ptr::null_mut(); + let mut txn: *mut reth_mdbx_sys::MDBX_txn = ptr::null_mut(); unsafe { - mdbx_result(ffi::mdbx_txn_begin_ex( + mdbx_result(reth_mdbx_sys::mdbx_txn_begin_ex( env.env_ptr(), ptr::null_mut(), K::OPEN_FLAGS, @@ -84,7 +84,7 @@ where } } - pub(crate) fn new_from_ptr(env: Environment, txn_ptr: *mut ffi::MDBX_txn) -> Self { + pub(crate) fn new_from_ptr(env: Environment, txn_ptr: *mut reth_mdbx_sys::MDBX_txn) -> Self { let txn = TransactionPtr::new(txn_ptr); #[cfg(feature = "read-tx-timeouts")] @@ -111,7 +111,7 @@ where #[inline] pub fn txn_execute(&self, f: F) -> Result where - F: FnOnce(*mut ffi::MDBX_txn) -> T, + F: FnOnce(*mut reth_mdbx_sys::MDBX_txn) -> T, { self.inner.txn_execute(f) } @@ -119,7 +119,7 @@ where /// Returns a copy of the raw pointer to the underlying MDBX transaction. #[doc(hidden)] #[cfg(test)] - pub fn txn(&self) -> *mut ffi::MDBX_txn { + pub fn txn(&self) -> *mut reth_mdbx_sys::MDBX_txn { self.inner.txn.txn } @@ -130,7 +130,7 @@ where /// Returns the transaction id. pub fn id(&self) -> Result { - self.txn_execute(|txn| unsafe { ffi::mdbx_txn_id(txn) }) + self.txn_execute(|txn| unsafe { reth_mdbx_sys::mdbx_txn_id(txn) }) } /// Gets an item from a database. @@ -141,18 +141,19 @@ where /// returned. Retrieval of other items requires the use of /// [Cursor]. If the item is not in the database, then /// [None] will be returned. - pub fn get(&self, dbi: ffi::MDBX_dbi, key: &[u8]) -> Result> + pub fn get(&self, dbi: reth_mdbx_sys::MDBX_dbi, key: &[u8]) -> Result> where Key: TableObject, { - let key_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; - let mut data_val: ffi::MDBX_val = ffi::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; + let key_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; + let mut data_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: 0, iov_base: ptr::null_mut() }; self.txn_execute(|txn| unsafe { - match ffi::mdbx_get(txn, dbi, &key_val, &mut data_val) { - ffi::MDBX_SUCCESS => Key::decode_val::(txn, data_val).map(Some), - ffi::MDBX_NOTFOUND => Ok(None), + match reth_mdbx_sys::mdbx_get(txn, dbi, &key_val, &mut data_val) { + reth_mdbx_sys::MDBX_SUCCESS => Key::decode_val::(txn, data_val).map(Some), + reth_mdbx_sys::MDBX_NOTFOUND => Ok(None), err_code => Err(Error::from_err_code(err_code)), } })? @@ -180,7 +181,7 @@ where let mut latency = CommitLatency::new(); mdbx_result(unsafe { - ffi::mdbx_txn_commit_ex(txn, latency.mdb_commit_latency()) + reth_mdbx_sys::mdbx_txn_commit_ex(txn, latency.mdb_commit_latency()) }) .map(|v| (v, latency)) } else { @@ -232,7 +233,12 @@ where let mut flags: c_uint = 0; unsafe { self.txn_execute(|txn| { - mdbx_result(ffi::mdbx_dbi_flags_ex(txn, db.dbi(), &mut flags, ptr::null_mut())) + mdbx_result(reth_mdbx_sys::mdbx_dbi_flags_ex( + txn, + db.dbi(), + &mut flags, + ptr::null_mut(), + )) })??; } @@ -247,11 +253,16 @@ where } /// Retrieves database statistics by the given dbi. - pub fn db_stat_with_dbi(&self, dbi: ffi::MDBX_dbi) -> Result { + pub fn db_stat_with_dbi(&self, dbi: reth_mdbx_sys::MDBX_dbi) -> Result { unsafe { let mut stat = Stat::new(); self.txn_execute(|txn| { - mdbx_result(ffi::mdbx_dbi_stat(txn, dbi, stat.mdb_stat(), size_of::())) + mdbx_result(reth_mdbx_sys::mdbx_dbi_stat( + txn, + dbi, + stat.mdb_stat(), + size_of::(), + )) })??; Ok(stat) } @@ -263,7 +274,7 @@ where } /// Open a new cursor on the given dbi. - pub fn cursor_with_dbi(&self, dbi: ffi::MDBX_dbi) -> Result> { + pub fn cursor_with_dbi(&self, dbi: reth_mdbx_sys::MDBX_dbi) -> Result> { Cursor::new(self.clone(), dbi) } @@ -304,7 +315,7 @@ where /// The transaction pointer itself. txn: TransactionPtr, /// A set of database handles that are primed for permaopen. - primed_dbis: Mutex>, + primed_dbis: Mutex>, /// Whether the transaction has committed. committed: AtomicBool, env: Environment, @@ -328,7 +339,7 @@ where #[inline] fn txn_execute(&self, f: F) -> Result where - F: FnOnce(*mut ffi::MDBX_txn) -> T, + F: FnOnce(*mut reth_mdbx_sys::MDBX_txn) -> T, { self.txn.txn_execute_fail_on_timeout(f) } @@ -349,7 +360,7 @@ where self.env.txn_manager().remove_active_read_transaction(txn); unsafe { - ffi::mdbx_txn_abort(txn); + reth_mdbx_sys::mdbx_txn_abort(txn); } } else { let (sender, rx) = sync_channel(0); @@ -396,19 +407,21 @@ impl Transaction { /// item if duplicates are allowed ([DatabaseFlags::DUP_SORT]). pub fn put( &self, - dbi: ffi::MDBX_dbi, + dbi: reth_mdbx_sys::MDBX_dbi, key: impl AsRef<[u8]>, data: impl AsRef<[u8]>, flags: WriteFlags, ) -> Result<()> { let key = key.as_ref(); let data = data.as_ref(); - let key_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; - let mut data_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: data.len(), iov_base: data.as_ptr() as *mut c_void }; + let key_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; + let mut data_val: reth_mdbx_sys::MDBX_val = reth_mdbx_sys::MDBX_val { + iov_len: data.len(), + iov_base: data.as_ptr() as *mut c_void, + }; mdbx_result(self.txn_execute(|txn| unsafe { - ffi::mdbx_put(txn, dbi, &key_val, &mut data_val, flags.bits()) + reth_mdbx_sys::mdbx_put(txn, dbi, &key_val, &mut data_val, flags.bits()) })?)?; Ok(()) @@ -425,18 +438,18 @@ impl Transaction { flags: WriteFlags, ) -> Result<&mut [u8]> { let key = key.as_ref(); - let key_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; - let mut data_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: len, iov_base: ptr::null_mut::() }; + let key_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; + let mut data_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: len, iov_base: ptr::null_mut::() }; unsafe { mdbx_result(self.txn_execute(|txn| { - ffi::mdbx_put( + reth_mdbx_sys::mdbx_put( txn, db.dbi(), &key_val, &mut data_val, - flags.bits() | ffi::MDBX_RESERVE, + flags.bits() | reth_mdbx_sys::MDBX_RESERVE, ) })?)?; Ok(slice::from_raw_parts_mut(data_val.iov_base as *mut u8, data_val.iov_len)) @@ -455,14 +468,14 @@ impl Transaction { /// Returns `true` if the key/value pair was present. pub fn del( &self, - dbi: ffi::MDBX_dbi, + dbi: reth_mdbx_sys::MDBX_dbi, key: impl AsRef<[u8]>, data: Option<&[u8]>, ) -> Result { let key = key.as_ref(); - let key_val: ffi::MDBX_val = - ffi::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; - let data_val: Option = data.map(|data| ffi::MDBX_val { + let key_val: reth_mdbx_sys::MDBX_val = + reth_mdbx_sys::MDBX_val { iov_len: key.len(), iov_base: key.as_ptr() as *mut c_void }; + let data_val: Option = data.map(|data| reth_mdbx_sys::MDBX_val { iov_len: data.len(), iov_base: data.as_ptr() as *mut c_void, }); @@ -470,9 +483,9 @@ impl Transaction { mdbx_result({ self.txn_execute(|txn| { if let Some(d) = data_val { - unsafe { ffi::mdbx_del(txn, dbi, &key_val, &d) } + unsafe { reth_mdbx_sys::mdbx_del(txn, dbi, &key_val, &d) } } else { - unsafe { ffi::mdbx_del(txn, dbi, &key_val, ptr::null()) } + unsafe { reth_mdbx_sys::mdbx_del(txn, dbi, &key_val, ptr::null()) } } })? }) @@ -484,8 +497,8 @@ impl Transaction { } /// Empties the given database. All items will be removed. - pub fn clear_db(&self, dbi: ffi::MDBX_dbi) -> Result<()> { - mdbx_result(self.txn_execute(|txn| unsafe { ffi::mdbx_drop(txn, dbi, false) })?)?; + pub fn clear_db(&self, dbi: reth_mdbx_sys::MDBX_dbi) -> Result<()> { + mdbx_result(self.txn_execute(|txn| unsafe { reth_mdbx_sys::mdbx_drop(txn, dbi, false) })?)?; Ok(()) } @@ -496,7 +509,7 @@ impl Transaction { /// Caller must close ALL other [Database] and [Cursor] instances pointing /// to the same dbi BEFORE calling this function. pub unsafe fn drop_db(&self, db: Database) -> Result<()> { - mdbx_result(self.txn_execute(|txn| ffi::mdbx_drop(txn, db.dbi(), true))?)?; + mdbx_result(self.txn_execute(|txn| reth_mdbx_sys::mdbx_drop(txn, db.dbi(), true))?)?; Ok(()) } @@ -509,7 +522,7 @@ impl Transaction { /// Caller must close ALL other [Database] and [Cursor] instances pointing /// to the same dbi BEFORE calling this function. pub unsafe fn close_db(&self, db: Database) -> Result<()> { - mdbx_result(ffi::mdbx_dbi_close(self.env().env_ptr(), db.dbi()))?; + mdbx_result(reth_mdbx_sys::mdbx_dbi_close(self.env().env_ptr(), db.dbi()))?; Ok(()) } @@ -541,13 +554,13 @@ impl Transaction { /// A shareable pointer to an MDBX transaction. #[derive(Debug, Clone)] pub(crate) struct TransactionPtr { - txn: *mut ffi::MDBX_txn, + txn: *mut reth_mdbx_sys::MDBX_txn, timed_out: Arc, lock: Arc>, } impl TransactionPtr { - fn new(txn: *mut ffi::MDBX_txn) -> Self { + fn new(txn: *mut reth_mdbx_sys::MDBX_txn) -> Self { Self { txn, timed_out: Arc::new(AtomicBool::new(false)), lock: Arc::new(Mutex::new(())) } } @@ -590,7 +603,7 @@ impl TransactionPtr { #[inline] pub(crate) fn txn_execute_fail_on_timeout(&self, f: F) -> Result where - F: FnOnce(*mut ffi::MDBX_txn) -> T, + F: FnOnce(*mut reth_mdbx_sys::MDBX_txn) -> T, { let _lck = self.lock(); @@ -612,7 +625,7 @@ impl TransactionPtr { #[inline] fn txn_execute_renew_on_timeout(&self, f: F) -> Result where - F: FnOnce(*mut ffi::MDBX_txn) -> T, + F: FnOnce(*mut reth_mdbx_sys::MDBX_txn) -> T, { let _lck = self.lock(); @@ -632,17 +645,17 @@ impl TransactionPtr { /// Inner struct stores this info in 1/65536 of seconds units. #[derive(Debug)] #[repr(transparent)] -pub struct CommitLatency(ffi::MDBX_commit_latency); +pub struct CommitLatency(reth_mdbx_sys::MDBX_commit_latency); impl CommitLatency { /// Create a new CommitLatency with zero'd inner struct - /// `ffi::MDBX_commit_latency`. + /// `reth_mdbx_sys::MDBX_commit_latency`. pub(crate) fn new() -> Self { unsafe { Self(std::mem::zeroed()) } } - /// Returns a mut pointer to `ffi::MDBX_commit_latency`. - pub(crate) fn mdb_commit_latency(&mut self) -> *mut ffi::MDBX_commit_latency { + /// Returns a mut pointer to `reth_mdbx_sys::MDBX_commit_latency`. + pub(crate) fn mdb_commit_latency(&mut self) -> *mut reth_mdbx_sys::MDBX_commit_latency { &mut self.0 } } diff --git a/crates/brontes-database/libmdbx-rs/src/txn_manager.rs b/crates/brontes-database/libmdbx-rs/src/txn_manager.rs index 080be4c985..75a1d83ae1 100644 --- a/crates/brontes-database/libmdbx-rs/src/txn_manager.rs +++ b/crates/brontes-database/libmdbx-rs/src/txn_manager.rs @@ -10,14 +10,24 @@ use crate::{ }; #[derive(Copy, Clone, Debug)] -pub(crate) struct TxnPtr(pub(crate) *mut ffi::MDBX_txn); +pub(crate) struct TxnPtr(pub(crate) *mut reth_mdbx_sys::MDBX_txn); unsafe impl Send for TxnPtr {} unsafe impl Sync for TxnPtr {} pub(crate) enum TxnManagerMessage { - Begin { parent: TxnPtr, flags: ffi::MDBX_txn_flags_t, sender: SyncSender> }, - Abort { tx: TxnPtr, sender: SyncSender> }, - Commit { tx: TxnPtr, sender: SyncSender> }, + Begin { + parent: TxnPtr, + flags: reth_mdbx_sys::MDBX_txn_flags_t, + sender: SyncSender>, + }, + Abort { + tx: TxnPtr, + sender: SyncSender>, + }, + Commit { + tx: TxnPtr, + sender: SyncSender>, + }, } /// Manages transactions by doing two things: @@ -51,11 +61,11 @@ impl TxnManager { /// the result on the provided channel. /// /// - [TxnManagerMessage::Begin] opens a new transaction with - /// [ffi::mdbx_txn_begin_ex] + /// [reth_mdbx_sys::mdbx_txn_begin_ex] /// - [TxnManagerMessage::Abort] aborts a transaction with - /// [ffi::mdbx_txn_abort] + /// [reth_mdbx_sys::mdbx_txn_abort] /// - [TxnManagerMessage::Commit] commits a transaction with - /// [ffi::mdbx_txn_commit_ex] + /// [reth_mdbx_sys::mdbx_txn_commit_ex] fn start_message_listener(&self, env: EnvPtr, rx: Receiver) { std::thread::spawn(move || { #[allow(clippy::redundant_locals)] @@ -64,9 +74,9 @@ impl TxnManager { match rx.recv() { Ok(msg) => match msg { TxnManagerMessage::Begin { parent, flags, sender } => { - let mut txn: *mut ffi::MDBX_txn = ptr::null_mut(); + let mut txn: *mut reth_mdbx_sys::MDBX_txn = ptr::null_mut(); let res = mdbx_result(unsafe { - ffi::mdbx_txn_begin_ex( + reth_mdbx_sys::mdbx_txn_begin_ex( env.0, parent.0, flags, @@ -79,7 +89,7 @@ impl TxnManager { } TxnManagerMessage::Abort { tx, sender } => { sender - .send(mdbx_result(unsafe { ffi::mdbx_txn_abort(tx.0) })) + .send(mdbx_result(unsafe { reth_mdbx_sys::mdbx_txn_abort(tx.0) })) .unwrap(); } TxnManagerMessage::Commit { tx, sender } => { @@ -87,7 +97,10 @@ impl TxnManager { .send({ let mut latency = CommitLatency::new(); mdbx_result(unsafe { - ffi::mdbx_txn_commit_ex(tx.0, latency.mdb_commit_latency()) + reth_mdbx_sys::mdbx_txn_commit_ex( + tx.0, + latency.mdb_commit_latency(), + ) }) .map(|v| (v, latency)) }) @@ -145,7 +158,7 @@ mod read_transactions { /// Adds a new transaction to the list of active read transactions. pub(crate) fn add_active_read_transaction( &self, - ptr: *mut ffi::MDBX_txn, + ptr: *mut reth_mdbx_sys::MDBX_txn, tx: TransactionPtr, ) { if let Some(read_transactions) = &self.read_transactions { @@ -156,7 +169,7 @@ mod read_transactions { /// Removes a transaction from the list of active read transactions. pub(crate) fn remove_active_read_transaction( &self, - ptr: *mut ffi::MDBX_txn, + ptr: *mut reth_mdbx_sys::MDBX_txn, ) -> Option<(usize, (TransactionPtr, Instant))> { self.read_transactions.as_ref()?.remove_active(ptr) } @@ -192,14 +205,14 @@ mod read_transactions { } /// Adds a new transaction to the list of active read transactions. - pub(super) fn add_active(&self, ptr: *mut ffi::MDBX_txn, tx: TransactionPtr) { + pub(super) fn add_active(&self, ptr: *mut reth_mdbx_sys::MDBX_txn, tx: TransactionPtr) { let _ = self.active.insert(ptr as usize, (tx, Instant::now())); } /// Removes a transaction from the list of active read transactions. pub(super) fn remove_active( &self, - ptr: *mut ffi::MDBX_txn, + ptr: *mut reth_mdbx_sys::MDBX_txn, ) -> Option<(usize, (TransactionPtr, Instant))> { self.timed_out_not_aborted.remove(&(ptr as usize)); self.active.remove(&(ptr as usize)) @@ -239,7 +252,8 @@ mod read_transactions { // and assume that it is unique. // // See https://erthink.github.io/libmdbx/group__c__transactions.html#gae9f34737fe60b0ba538d5a09b6a25c8d for more info. - let result = mdbx_result(unsafe { ffi::mdbx_txn_reset(txn_ptr) }); + let result = + mdbx_result(unsafe { reth_mdbx_sys::mdbx_txn_reset(txn_ptr) }); if result.is_ok() { tx.set_timed_out(); } diff --git a/crates/brontes-metrics/Cargo.toml b/crates/brontes-metrics/Cargo.toml index 31254154bb..5564559e7b 100644 --- a/crates/brontes-metrics/Cargo.toml +++ b/crates/brontes-metrics/Cargo.toml @@ -16,6 +16,7 @@ brontes-types.workspace = true tracing.workspace = true tracing-subscriber.workspace = true reth-metrics.workspace = true +reth-storage-errors.workspace = true alloy-primitives.workspace = true reth-primitives.workspace = true colored.workspace = true diff --git a/crates/brontes-metrics/src/db_writer.rs b/crates/brontes-metrics/src/db_writer.rs index dd6edabb52..dfc2245885 100644 --- a/crates/brontes-metrics/src/db_writer.rs +++ b/crates/brontes-metrics/src/db_writer.rs @@ -1,7 +1,7 @@ use std::time::{Duration, Instant}; use prometheus::{Histogram, HistogramVec, IntCounterVec, IntGauge, IntGaugeVec}; -use reth_interfaces::db::DatabaseError; +use reth_storage_errors::db::DatabaseError; #[derive(Clone)] pub struct LibmdbxWriterMetrics { @@ -148,6 +148,7 @@ impl LibmdbxWriterMetrics { DatabaseError::Decode => "Decode", DatabaseError::Stats(_) => "Stats", DatabaseError::LogLevelUnavailable(_) => "LogLevelUnavailable", + DatabaseError::Other(_) => "Other", }; self.write_error_types diff --git a/crates/brontes-metrics/src/pricing.rs b/crates/brontes-metrics/src/pricing.rs index c9e8cbd9be..b15db49981 100644 --- a/crates/brontes-metrics/src/pricing.rs +++ b/crates/brontes-metrics/src/pricing.rs @@ -39,11 +39,11 @@ impl Debug for DexPricingMetrics { impl DexPricingMetrics { pub fn new() -> Self { - let active_subgraphs = metrics::register_gauge!("dex_pricing_active_subgraphs"); - let active_state = metrics::register_gauge!("dex_pricing_active_state"); - let state_load_queries = metrics::register_gauge!("dex_pricing_state_load_queries"); - let state_load_time_ms = metrics::register_histogram!("dex_pricing_state_load_time_ms"); - let processed_blocks = metrics::register_counter!("dex_pricing_processed_blocks"); + let active_subgraphs = metrics::gauge!("dex_pricing_active_subgraphs"); + let active_state = metrics::gauge!("dex_pricing_active_state"); + let state_load_queries = metrics::gauge!("dex_pricing_state_load_queries"); + let state_load_time_ms = metrics::histogram!("dex_pricing_state_load_time_ms"); + let processed_blocks = metrics::counter!("dex_pricing_processed_blocks"); let range_processing = prometheus::register_int_counter_vec!( "dex_pricing_range_processed_blocks", "the amount of blocks a range has processed", diff --git a/crates/brontes-metrics/src/prometheus_exporter.rs b/crates/brontes-metrics/src/prometheus_exporter.rs index 7cfdbf0bcd..15cbc7be89 100644 --- a/crates/brontes-metrics/src/prometheus_exporter.rs +++ b/crates/brontes-metrics/src/prometheus_exporter.rs @@ -120,37 +120,43 @@ fn collect_memory_stats() { if let Ok(value) = stats::active::read() .map_err(|error| error!(%error, "Failed to read jemalloc.stats.active")) { - gauge!("jemalloc.active", value as f64); + let key = [("value", (value as f64).to_string())]; + gauge!("jemalloc.active", &key); } if let Ok(value) = stats::allocated::read() .map_err(|error| error!(%error, "Failed to read jemalloc.stats.allocated")) { - gauge!("jemalloc.allocated", value as f64); + let key = [("value", (value as f64).to_string())]; + gauge!("jemalloc.allocated", &key); } if let Ok(value) = stats::mapped::read() .map_err(|error| error!(%error, "Failed to read jemalloc.stats.mapped")) { - gauge!("jemalloc.mapped", value as f64); + let key = [("value", (value as f64).to_string())]; + gauge!("jemalloc.mapped", &key); } if let Ok(value) = stats::metadata::read() .map_err(|error| error!(%error, "Failed to read jemalloc.stats.metadata")) { - gauge!("jemalloc.metadata", value as f64); + let key = [("value", (value as f64).to_string())]; + gauge!("jemalloc.metadata", &key); } if let Ok(value) = stats::resident::read() .map_err(|error| error!(%error, "Failed to read jemalloc.stats.resident")) { - gauge!("jemalloc.resident", value as f64); + let key = [("value", (value as f64).to_string())]; + gauge!("jemalloc.resident", &key); } if let Ok(value) = stats::retained::read() .map_err(|error| error!(%error, "Failed to read jemalloc.stats.retained")) { - gauge!("jemalloc.retained", value as f64); + let key = [("value", (value as f64).to_string())]; + gauge!("jemalloc.retained", &key); } } diff --git a/crates/brontes-metrics/src/range.rs b/crates/brontes-metrics/src/range.rs index 1bcdd218bb..1425c92bc5 100644 --- a/crates/brontes-metrics/src/range.rs +++ b/crates/brontes-metrics/src/range.rs @@ -99,8 +99,8 @@ impl GlobalRangeMetrics { total_blocks_range, block_tracing_throughput: block_tracing, classification_throughput: tree_builder, - completed_blocks: metrics::register_counter!("brontes_total_completed_blocks"), - processing_run_time_ms: metrics::register_histogram!("brontes_processing_runtime_ms"), + completed_blocks: metrics::counter!("brontes_total_completed_blocks"), + processing_run_time_ms: metrics::histogram!("brontes_processing_runtime_ms"), } } diff --git a/crates/brontes-pricing/src/protocols/uniswap_v2/batch_request/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v2/batch_request/mod.rs index 77ed5940ca..b336ff2ed2 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v2/batch_request/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v2/batch_request/mod.rs @@ -1,10 +1,10 @@ use std::sync::Arc; +use alloy_rpc_types::{request::TransactionInput, TransactionRequest}; use alloy_sol_macro::sol; use alloy_sol_types::SolCall; use brontes_types::traits::TracingProvider; use futures::TryFutureExt; -use reth_rpc_types::{request::TransactionInput, TransactionRequest}; use super::UniswapV2Pool; use crate::errors::AmmError; @@ -32,8 +32,8 @@ fn populate_pool_data_from_tokens(mut pool: UniswapV2Pool, pool_data: PoolData) pool.token_a_decimals = pool_data.tokenADecimals; pool.token_b = pool_data.tokenB; pool.token_b_decimals = pool_data.tokenBDecimals; - pool.reserve_0 = pool_data.reserve0; - pool.reserve_1 = pool_data.reserve1; + pool.reserve_0 = pool_data.reserve0.to(); + pool.reserve_1 = pool_data.reserve1.to(); pool } diff --git a/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs index 3006edbe7b..1055cb0223 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs @@ -78,8 +78,8 @@ impl UpdatableProtocol for UniswapV2Pool { if event_signature == SYNC_EVENT_SIGNATURE { let sync_event = IUniswapV2Pair::Sync::decode_log_data(&log, false)?; - self.reserve_0 = sync_event.reserve0; - self.reserve_1 = sync_event.reserve1; + self.reserve_0 = sync_event.reserve0.to(); + self.reserve_1 = sync_event.reserve1.to(); Ok(()) } else { diff --git a/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs index f6c3311cbc..38bf8e6c25 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs @@ -3,12 +3,12 @@ use std::{ sync::Arc, }; -use alloy_primitives::{hex, Bytes, FixedBytes, U256}; +use alloy_primitives::{aliases::I24, hex, Address, Bytes, FixedBytes, StorageValue, U256}; +use alloy_rpc_types::{request::TransactionInput, TransactionRequest}; use alloy_sol_macro::sol; use alloy_sol_types::SolCall; use brontes_types::traits::TracingProvider; -use reth_primitives::{Address, Bytecode, StorageValue}; -use reth_rpc_types::{request::TransactionInput, TransactionRequest}; +use reth_primitives::Bytecode; mod test_bytecodes; use super::UniswapV3Pool; @@ -136,7 +136,7 @@ pub async fn get_v3_pool_data_batch_request( pool.address ))) } - let pool_bytecode = Bytes::from(hex::encode_prefixed(pool_bytecode.bytecode.as_ref())); + let pool_bytecode = Bytes::from(hex::encode_prefixed(pool_bytecode.bytecode().as_ref())); let (token0, token1, fee, tick_spacing) = extract_uni_v3_immutables(pool_bytecode)?; pool.fee = fee; pool.tick_spacing = tick_spacing; @@ -178,9 +178,9 @@ pub async fn get_uniswap_v3_tick_data_batch_request( tick_constructorCall::new(( pool.address, zero_for_one, - tick_start, + I24::unchecked_from(tick_start), num_ticks, - pool.tick_spacing, + I24::unchecked_from(pool.tick_spacing), )) .abi_encode_raw(&mut bytecode); diff --git a/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs index 128ad3372f..2a6a4427ff 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs @@ -313,7 +313,7 @@ impl UniswapV3Pool { ) -> Result { let call = IUniswapV3Pool::tickSpacingCall::new(()); let res = make_call_request(call, &middleware, self.address, None).await?; - Ok(res._0) + Ok(res._0.as_i32()) } pub async fn get_tick( @@ -321,7 +321,7 @@ impl UniswapV3Pool { middleware: Arc, block: u64, ) -> Result { - Ok(self.get_slot_0(middleware, block).await?._1) + Ok(self.get_slot_0(middleware, block).await?._1.as_i32()) } pub async fn get_slot_0( @@ -471,9 +471,9 @@ impl UniswapV3Pool { self.reserve_1 -= swap_event.amount1.unsigned_abs(); } - self.sqrt_price = swap_event.sqrtPriceX96; + self.sqrt_price = U256::from(swap_event.sqrtPriceX96); self.liquidity = swap_event.liquidity; - self.tick = swap_event.tick; + self.tick = swap_event.tick.as_i32(); Ok(()) } diff --git a/crates/brontes-types/Cargo.toml b/crates/brontes-types/Cargo.toml index ce0954dfa0..d0885374bb 100644 --- a/crates/brontes-types/Cargo.toml +++ b/crates/brontes-types/Cargo.toml @@ -16,6 +16,7 @@ reth-rpc.workspace = true # alloy alloy-json-abi = { workspace = true, features = ["serde_json"] } alloy-rpc-types.workspace = true +alloy-consensus.workspace = true alloy-rpc-types-trace.workspace = true alloy-rpc-types-beacon.workspace = true diff --git a/crates/brontes-types/src/lib.rs b/crates/brontes-types/src/lib.rs index a58607e0b1..bea9ea5a3b 100644 --- a/crates/brontes-types/src/lib.rs +++ b/crates/brontes-types/src/lib.rs @@ -3,7 +3,6 @@ #![feature(const_type_id)] #![feature(core_intrinsics)] #![feature(const_for)] -#![feature(const_mut_refs)] #![allow(internal_features)] #![allow(clippy::type_complexity)] diff --git a/crates/brontes-types/src/traits.rs b/crates/brontes-types/src/traits.rs index b1a04737de..aa44d2b6dc 100644 --- a/crates/brontes-types/src/traits.rs +++ b/crates/brontes-types/src/traits.rs @@ -1,6 +1,7 @@ +use alloy_consensus::Header; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; use alloy_rpc_types::{ - state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Header, Log, ReceiptEnvelope, + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, ReceiptEnvelope, TransactionRequest, }; use reth_primitives::Bytecode; diff --git a/crates/reth-tracing-ext/Cargo.toml b/crates/reth-tracing-ext/Cargo.toml index 1b34362a5c..10b737f360 100644 --- a/crates/reth-tracing-ext/Cargo.toml +++ b/crates/reth-tracing-ext/Cargo.toml @@ -20,6 +20,7 @@ reth-network-api.workspace = true reth-primitives.workspace = true reth-db.workspace = true reth-revm.workspace = true +alloy-consensus.workspace = true alloy-primitives.workspace = true alloy-sol-types.workspace = true alloy-rpc-types-trace.workspace = true @@ -30,6 +31,7 @@ reth-rpc-eth-api.workspace = true reth-rpc-server-types.workspace = true brontes-types.workspace = true revm-inspector.workspace = true +alloy-evm.workspace = true # revm-interpreter.workspace = true tracing.workspace = true diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index 0819066e60..e98350906c 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -71,7 +71,8 @@ impl TracingClient { static_files_path: PathBuf, ) -> Self { let chain = MAINNET.clone(); - let static_file_provider = StaticFileProvider::read_only(static_files_path.clone(), true)?; + let static_file_provider = + StaticFileProvider::read_only(static_files_path.clone(), true).unwrap(); let provider_factory: ProviderFactory< NodeTypesWithDBAdapter>, @@ -113,7 +114,7 @@ impl TracingClient { GasCap::default(), DEFAULT_MAX_SIMULATE_BLOCKS, DEFAULT_ETH_PROOF_WINDOW, - BlockingTaskPool::new(ThreadPoolBuilder::new().build()?), + BlockingTaskPool::new(ThreadPoolBuilder::new().build().unwrap()), FeeHistoryCache::new(FeeHistoryCacheConfig::default()), EthEvmConfig::new(chain.clone()), DEFAULT_PROOF_PERMITS, @@ -169,9 +170,9 @@ impl TracingClient { Ok(inspector.into_trace_results(tx_info, &res)) }, ) - .await; + .await?; - Ok(()) + Ok(t) } } diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index e7fa941b07..80127b5cd0 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -1,24 +1,26 @@ use std::cmp::min; +use alloy_consensus::Header; +use alloy_evm::EvmEnv; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256, U256}; use alloy_rpc_types::{ state::StateOverride, AccessList, AnyReceiptEnvelope, BlockId, BlockNumberOrTag, - BlockOverrides, Header, Log, ReceiptEnvelope, TransactionReceipt, TransactionRequest, + BlockOverrides, Log, ReceiptEnvelope, TransactionReceipt, TransactionRequest, }; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; use eyre::eyre; use reth_primitives::Bytecode; use reth_provider::{BlockIdReader, BlockNumReader, HeaderProvider}; -use reth_revm::{ - context::{result::ExecutionResult, Block, BlockEnv, CfgEnv}, - database::StateProviderDatabase, - db::CacheDB, -}; +use reth_revm::database::StateProviderDatabase; use reth_rpc_api::EthApiServer; use reth_rpc_eth_api::helpers::{Call, LoadState}; use reth_rpc_eth_types::{EthApiError, EthResult, RevertError, RpcInvalidTransactionError}; -use revm::{Database, DatabaseRef}; -use revm_primitives::TxEnv; +use revm::{ + context::{result::ExecutionResult, Block, BlockEnv, CfgEnv, TxEnv}, + database::CacheDB, + Context, Database, DatabaseRef, +}; +use revm_primitives::TxKind; // use revm::{context::Block, Database, DatabaseRef}; // use revm_primitives::TxEnv; @@ -47,14 +49,10 @@ impl TracingProvider for TracingClient { let (cfg, at) = self.api.evm_env_at(block_number).await?; let state = self.api.state_at_block_id(at)?; let mut db = CacheDB::new(StateProviderDatabase::new(state)); - let env = prepare_call_env( - cfg.cfg_env, - cfg.block_env, - request, - self.api.call_gas_limit(), - &mut db, - )?; - let (res, _) = self.api.transact(&mut db, env)?; + let tx_env = build_tx_env(&cfg.block_env, request, &mut db, self.api.call_gas_limit())?; + let evm_env = build_evm_env(cfg.cfg_env, cfg.block_env)?; + + let (res, _) = self.api.transact(&mut db, evm_env, tx_env)?; Ok(ensure_success(res.result)?) } @@ -150,17 +148,7 @@ impl TracingProvider for TracingClient { } } -pub(crate) fn prepare_call_env( - mut cfg: CfgEnv, - block: BlockEnv, - request: TransactionRequest, - gas_limit: u64, - db: &mut CacheDB, -) -> EthResult -where - DB: DatabaseRef, - EthApiError: From<::Error>, -{ +pub(crate) fn build_evm_env(mut cfg: CfgEnv, block: BlockEnv) -> EthResult { // we want to disable this in eth_call, since this is common practice used by // other node impls and providers cfg.disable_block_gas_limit = true; @@ -174,38 +162,43 @@ where // cfg.disable_base_fee = true; - let request_gas = request.gas; - let mut env = build_call_evm_env(cfg, block, request)?; + Ok(EvmEnv::new(cfg, block)) +} + +pub(crate) fn build_tx_env( + block: &BlockEnv, + mut tx_req: TransactionRequest, + db: &mut CacheDB, + gas_limit: u64, +) -> EthResult +where + DB: DatabaseRef, + EthApiError: From<::Error>, +{ + let request_gas = tx_req.gas; + // set nonce to None so that the next nonce is used when transacting the call - env.tx.nonce = None; + tx_req.nonce = None; + + let mut tx = create_txn_env(block, tx_req)?; if request_gas.is_none() { // No gas limit was provided in the request, so we need to cap the transaction // gas limit - if env.tx.gas_price > U256::ZERO { + if tx.gas_price > 0 { // If gas price is specified, cap transaction gas limit with caller allowance - cap_tx_gas_limit_with_caller_allowance(db, &mut env.tx)?; + cap_tx_gas_limit_with_caller_allowance(db, &mut tx)?; } else { // If no gas price is specified, use maximum allowed gas limit. The reason for // this is that both Erigon and Geth use pre-configured gas cap even // if it's possible to derive the gas limit from the block: // - env.tx.gas_limit = gas_limit; + tx.gas_limit = gas_limit; } } - Ok(env) -} - -pub(crate) fn build_call_evm_env( - cfg: CfgEnvWithHandlerCfg, - block: BlockEnv, - request: TransactionRequest, -) -> EthResult { - let tx = create_txn_env(&block, request)?; - // CfgEnv: - Ok(EnvWithHandlerCfg::new_with_cfg_env(cfg, block, tx)) + Ok(tx) } pub(crate) fn create_txn_env( @@ -235,6 +228,8 @@ pub(crate) fn create_txn_env( chain_id, blob_versioned_hashes, max_fee_per_blob_gas, + transaction_type, + authorization_list, .. } = request; @@ -254,20 +249,22 @@ pub(crate) fn create_txn_env( gas_limit: gas_limit .try_into() .map_err(|_| RpcInvalidTransactionError::GasUintOverflow)?, - nonce, + nonce: nonce.unwrap_or_default(), caller: from.unwrap_or_default(), - gas_price, - gas_priority_fee: max_priority_fee_per_gas, - transact_to: to.map(TransactTo::Call).unwrap_or_else(TransactTo::create), + gas_price: gas_price.to(), + gas_priority_fee: max_priority_fee_per_gas.map(|v| v.to()), value: value.unwrap_or_default(), data: input.try_into_unique_input()?.unwrap_or_default(), chain_id, - access_list: access_list - .map(AccessList::into_flattened) - .unwrap_or_default(), + access_list: access_list.unwrap_or_default(), + // .map(AccessList::into_flattened) + // .unwrap_or_default(), // EIP-4844 fields blob_hashes: blob_versioned_hashes.unwrap_or_default(), - max_fee_per_blob_gas, + max_fee_per_blob_gas: max_fee_per_blob_gas.unwrap_or_default().to(), + tx_type: transaction_type.unwrap_or_default(), + kind: to.unwrap_or(TxKind::Create), + authorization_list: authorization_list.unwrap_or_default(), }; Ok(env) @@ -291,20 +288,26 @@ where DB: Database, EthApiError: From<::Error>, { - Ok(db - // Get the caller account. + // Get the caller account. + // Get the caller balance. + let account_balance = db .basic(env.caller)? - // Get the caller balance. .map(|acc| acc.balance) - .unwrap_or_default() + .unwrap_or_default(); + Ok( // Subtract transferred value from the caller balance. - .checked_sub(env.value) - // Return error if the caller has insufficient funds. - .ok_or_else(|| RpcInvalidTransactionError::InsufficientFunds)? - // Calculate the amount of gas the caller can afford with the specified gas price. - .checked_div(env.gas_price) - // This will be 0 if gas price is 0. It is fine, because we check it before. - .unwrap_or_default()) + account_balance + .checked_sub(env.value) + // Return error if the caller has insufficient funds. + .ok_or_else(|| RpcInvalidTransactionError::InsufficientFunds { + cost: env.value, + balance: account_balance, + })? + // Calculate the amount of gas the caller can afford with the specified gas price. + .checked_div(U256::from(env.gas_price)) + // This will be 0 if gas price is 0. It is fine, because we check it before. + .unwrap_or_default(), + ) } /// Helper type for representing the fees of a [TransactionRequest] diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index d18e972bd0..fcb51b7be8 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -601,50 +601,10 @@ impl BrontesTracingInspector { pub(crate) fn parity_action(&self, node: &CallTraceNode) -> Action { node.parity_action() - // match { - // CallKind::Call - // | CallKind::StaticCall - // | CallKind::CallCode - // | CallKind::DelegateCall - // | CallKind::ExtCall - // | CallKind::ExtStaticCall - // | CallKind::ExtDelegateCall => Action::Call(CallAction { - // from: node.trace.caller, - // to: node.trace.address, - // value: node.trace.value, - // gas: node.trace.gas_limit, - // input: node.trace.data.clone(), - // call_type: node.trace.kind.into(), - // }), - // CallKind::Create | CallKind::Create2 => - // Action::Create(CreateAction { from: - // node.trace.caller, value: node.trace.value, - // gas: node.trace.gas_limit, - // init: node.trace.data.clone(), - // creation_method: CreationMethod::default(), - // }), - // } } pub(crate) fn parity_trace_output(&self, node: &CallTraceNode) -> TraceOutput { node.parity_trace_output() - // match node.trace.kind { - // CallKind::Call - // | CallKind::StaticCall - // | CallKind::CallCode - // | CallKind::DelegateCall - // | CallKind::ExtCall - // | CallKind::ExtStaticCall - // | CallKind::ExtDelegateCall => TraceOutput::Call(CallOutput { - // gas_used: node.trace.gas_used, - // output: node.trace.output.clone(), - // }), - // CallKind::Create | CallKind::Create2 => - // TraceOutput::Create(CreateOutput { gas_used: - // node.trace.gas_used, code: - // node.trace.output.clone(), address: - // node.trace.address, }), - // } } /// Returns the error message if it is an erroneous result. @@ -703,9 +663,6 @@ where } fn log(&mut self, interp: &mut Interpreter, context: &mut EvmContext, log: Log) { - self.gas_inspector.journal.log(context, log); - // context.log(log.clone()); - let trace_idx = self.last_trace_idx(); let trace = &mut self.traces.arena[trace_idx]; From 26873b8016706972e5a4a2838fd0129c60f53f17 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:10:30 -0500 Subject: [PATCH 04/93] let's goooooo --- Cargo.lock | 17 ++- Cargo.toml | 5 +- crates/bin/Cargo.toml | 5 + crates/bin/src/cli/db/db_query.rs | 2 +- crates/bin/src/cli/db/table_stats.rs | 26 ++-- .../src/executors/shared/metadata_loader.rs | 3 +- .../src/executors/shared/state_collector.rs | 4 +- crates/brontes-classifier/Cargo.toml | 3 + .../src/classifiers/aave/mod.rs | 6 +- .../src/classifiers/aave/v3.rs | 5 + .../src/classifiers/balancer/balancer_v2.rs | 32 ++++ .../src/classifiers/cowswap/mod.rs | 8 +- .../src/classifiers/dodo/dodo_v2.rs | 12 +- .../src/classifiers/maker/dss_flash.rs | 3 +- .../brontes-classifier/src/classifiers/mod.rs | 52 ++++--- .../src/classifiers/zerox/mod.rs | 20 +-- .../brontes-classifier/src/discovery_only.rs | 6 +- crates/brontes-classifier/src/lib.rs | 11 +- .../src/tree_builder/mod.rs | 5 +- .../src/tree_builder/utils.rs | 2 +- crates/brontes-core/Cargo.toml | 2 + crates/brontes-core/src/decoding/mod.rs | 5 +- crates/brontes-core/src/decoding/parser.rs | 25 ++- crates/brontes-core/src/errors.rs | 109 +++++++------- crates/brontes-core/src/local_provider.rs | 86 +++++------ crates/brontes-core/src/test_utils/mod.rs | 4 +- .../brontes-db/src/clickhouse/http_client.rs | 3 +- .../brontes-db/src/clickhouse/mod.rs | 2 +- crates/brontes-database/brontes-db/src/lib.rs | 1 - .../compressed_wrappers/cursor.rs | 6 +- .../libmdbx/implementation/native/cursor.rs | 8 +- .../src/libmdbx/implementation/native/tx.rs | 6 +- .../libmdbx/implementation/native/utils.rs | 2 +- .../src/mev_inspectors/atomic_arb.rs | 2 +- .../cex_dex/markout/cex_dex_markout.rs | 3 +- .../mev_inspectors/cex_dex/markout/types.rs | 8 +- .../mev_inspectors/cex_dex/quotes/types.rs | 2 +- .../src/mev_inspectors/liquidations.rs | 2 +- .../src/mev_inspectors/sandwich/mod.rs | 2 +- .../src/mev_inspectors/sandwich/types.rs | 2 +- .../src/mev_inspectors/searcher_activity.rs | 2 +- crates/brontes-metrics/src/inspectors.rs | 2 +- crates/brontes-metrics/src/trace/types.rs | 2 +- .../brontes-types/src/block_metadata/mod.rs | 2 +- .../src/db/clickhouse_serde/tx_trace.rs | 2 +- crates/brontes-types/src/db/codecs.rs | 4 +- .../src/db/normalized_actions.rs | 3 +- crates/brontes-types/src/display/utils.rs | 3 +- crates/brontes-types/src/lib.rs | 1 + crates/brontes-types/src/mev/backrun.rs | 2 +- crates/brontes-types/src/mev/bundle/header.rs | 3 +- crates/brontes-types/src/mev/bundle/mod.rs | 3 +- crates/brontes-types/src/mev/cex_dex.rs | 2 +- .../brontes-types/src/mev/cex_dex_quotes.rs | 2 +- crates/brontes-types/src/mev/jit.rs | 2 +- crates/brontes-types/src/mev/jit_sandwich.rs | 2 +- crates/brontes-types/src/mev/searcher_tx.rs | 2 +- crates/brontes-types/src/tree/mod.rs | 2 +- crates/reth-tracing-ext/src/lib.rs | 9 +- crates/reth-tracing-ext/src/provider.rs | 6 +- .../src/reth_tracer/inspector.rs | 14 +- .../reth-tracing-ext/src/reth_tracer/types.rs | 142 +----------------- .../reth-tracing-ext/src/reth_tracer/utils.rs | 30 +--- 63 files changed, 332 insertions(+), 417 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 802013346f..97aa6ac52e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1826,6 +1826,7 @@ name = "brontes" version = "0.1.0" dependencies = [ "ahash", + "alloy-consensus", "alloy-json-rpc", "alloy-network", "alloy-primitives 0.8.23", @@ -1883,13 +1884,17 @@ dependencies = [ "rayon", "regex", "reqwest 0.12.14", + "reth-chainspec", "reth-db", "reth-network-api", "reth-node-core", + "reth-node-ethereum", + "reth-node-types", "reth-primitives", "reth-provider", "reth-rpc", "reth-rpc-api", + "reth-storage-errors", "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", @@ -1910,9 +1915,11 @@ dependencies = [ name = "brontes-classifier" version = "0.1.0" dependencies = [ + "alloy-consensus", "alloy-primitives 0.8.23", "alloy-rlp", "alloy-rpc-types", + "alloy-rpc-types-trace", "alloy-sol-macro 0.8.23", "alloy-sol-types 0.8.23", "brontes-classifier", @@ -1951,6 +1958,7 @@ dependencies = [ name = "brontes-core" version = "0.1.0" dependencies = [ + "alloy-consensus", "alloy-dyn-abi 0.7.7", "alloy-json-abi 0.7.7", "alloy-primitives 0.8.23", @@ -1986,6 +1994,7 @@ dependencies = [ "reth-provider", "reth-rpc", "reth-rpc-api", + "reth-storage-errors", "reth-tasks", "reth-tracing-ext", "reth-transaction-pool", @@ -2748,7 +2757,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -3267,7 +3276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 2.0.100", + "syn 1.0.109", ] [[package]] @@ -5696,7 +5705,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -13022,7 +13031,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index cfcb3d0579..ab58f1e17b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -83,12 +83,11 @@ revm-primitives = { version = "16.0.0-alpha.3", features = [ revm-inspector = { version = "1.0.0-alpha.5", default-features = false } revm-inspectors = "0.17.0-alpha.1" alloy-evm = { version = "0.1.0-alpha.1", default-features = false } -# revm-interpreter = { version = "16.0.0-alpha.5", default-features = false } # Alloy -alloy-sol-types = { version = "0.8.15", features = ["json"] } -alloy-sol-macro = { version = "0.8.15", features = ["json"] } +alloy-sol-types = { version = "0.8.23", features = ["json"] } +alloy-sol-macro = { version = "0.8.23", features = ["json"] } alloy-rlp = { version = "0.3.4" } alloy-rlp-derive = { version = "0.3.4" } alloy-primitives = { version = "0.8.20", features = ["rlp"] } diff --git a/crates/bin/Cargo.toml b/crates/bin/Cargo.toml index 5f79121b10..3f7af1e259 100644 --- a/crates/bin/Cargo.toml +++ b/crates/bin/Cargo.toml @@ -38,7 +38,11 @@ reqwest = { workspace = true, features = ["blocking"] } # Reth reth-tasks.workspace = true reth-rpc.workspace = true +reth-storage-errors.workspace = true +reth-chainspec.workspace = true +reth-node-types.workspace = true reth-rpc-api.workspace = true +reth-node-ethereum.workspace = true reth-provider.workspace = true reth-node-core.workspace = true reth-transaction-pool.workspace = true @@ -53,6 +57,7 @@ alloy-sol-macro = { workspace = true, features = ["json"] } alloy-sol-types = { workspace = true, features = ["json"] } alloy-provider.workspace = true +alloy-consensus.workspace = true alloy-transport-http.workspace = true alloy-transport.workspace = true alloy-network.workspace = true diff --git a/crates/bin/src/cli/db/db_query.rs b/crates/bin/src/cli/db/db_query.rs index a9840342bf..a3f79bb08a 100644 --- a/crates/bin/src/cli/db/db_query.rs +++ b/crates/bin/src/cli/db/db_query.rs @@ -6,7 +6,7 @@ use brontes_libmdbx::RO; use brontes_types::init_thread_pools; use clap::Parser; use itertools::Itertools; -use reth_interfaces::db::DatabaseErrorInfo; +use reth_storage_errors::db::DatabaseErrorInfo; #[derive(Debug, Parser)] pub struct DatabaseQuery { diff --git a/crates/bin/src/cli/db/table_stats.rs b/crates/bin/src/cli/db/table_stats.rs index 5447e2095b..d1dabfd27a 100644 --- a/crates/bin/src/cli/db/table_stats.rs +++ b/crates/bin/src/cli/db/table_stats.rs @@ -4,9 +4,11 @@ use clap::Parser; use comfy_table::{Cell, Row, Table as ComfyTable}; use eyre::WrapErr; use human_bytes::human_bytes; +use reth_chainspec::MAINNET; use reth_db::{database::Database, mdbx, open_db, DatabaseEnv}; -use reth_primitives::ChainSpec; -use reth_provider::ProviderFactory; +use reth_node_ethereum::EthereumNode; +use reth_node_types::NodeTypesWithDBAdapter; +use reth_provider::{providers::StaticFileProvider, ProviderFactory}; #[derive(Parser, Debug)] /// The arguments for the `brontes db table-stats` command @@ -20,13 +22,16 @@ impl Stats { /// Execute `db stats` command pub fn execute(self, db_path: String) -> eyre::Result<()> { let db_path = Path::new(&db_path); - let chain = Arc::new(ChainSpec::default()); + let mut static_files_path = db_path.to_path_buf(); + static_files_path.push("static_files"); - let db = Arc::new(open_db(db_path, Default::default())?); + let static_file_provider = StaticFileProvider::read_only(static_files_path.clone(), true)?; - let mut statis_files_path = db_path.to_path_buf(); - statis_files_path.push("static_files"); - let provider_factory = ProviderFactory::new(db, chain.clone(), statis_files_path)?; + let chain = MAINNET.clone(); + let db = Arc::new(open_db(db_path, Default::default())?); + let provider_factory: ProviderFactory< + NodeTypesWithDBAdapter>, + > = ProviderFactory::new(db.clone(), chain.clone(), static_file_provider); self.run(&provider_factory)?; @@ -34,7 +39,10 @@ impl Stats { } /// Execute `db stats` command - fn run(self, provider_factory: &ProviderFactory>) -> eyre::Result<()> { + fn run( + self, + provider_factory: &ProviderFactory>>, + ) -> eyre::Result<()> { let db_stats_table = self.db_stats_table(provider_factory)?; println!("{db_stats_table}"); @@ -43,7 +51,7 @@ impl Stats { fn db_stats_table( &self, - provider_factory: &ProviderFactory>, + provider_factory: &ProviderFactory>>, ) -> eyre::Result { let mut table = ComfyTable::new(); table.load_preset(comfy_table::presets::ASCII_MARKDOWN); diff --git a/crates/bin/src/executors/shared/metadata_loader.rs b/crates/bin/src/executors/shared/metadata_loader.rs index 16cc1829a9..d3140e154a 100644 --- a/crates/bin/src/executors/shared/metadata_loader.rs +++ b/crates/bin/src/executors/shared/metadata_loader.rs @@ -9,7 +9,7 @@ use std::{ time::Duration, }; -use alloy_primitives::Address; +use alloy_primitives::{Address, BlockHash}; use brontes_database::clickhouse::ClickhouseHandle; use brontes_types::{ db::{ @@ -24,7 +24,6 @@ use brontes_types::{ }; use futures::{stream::FuturesOrdered, Future, Stream, StreamExt}; use itertools::Itertools; -use reth_primitives::BlockHash; use tracing::error; use super::dex_pricing::WaitingForPricerFuture; diff --git a/crates/bin/src/executors/shared/state_collector.rs b/crates/bin/src/executors/shared/state_collector.rs index 33ff7e5fa5..28693a15eb 100644 --- a/crates/bin/src/executors/shared/state_collector.rs +++ b/crates/bin/src/executors/shared/state_collector.rs @@ -7,7 +7,8 @@ use std::{ task::{Poll, Waker}, }; -use alloy_primitives::Address; +use alloy_consensus::Header; +use alloy_primitives::{Address, BlockHash}; use brontes_classifier::Classifier; use brontes_core::decoding::Parser; use brontes_database::clickhouse::ClickhouseHandle; @@ -21,7 +22,6 @@ use brontes_types::{ }; use eyre::eyre; use futures::{Future, FutureExt, Stream, StreamExt}; -use reth_primitives::{BlockHash, Header}; use tracing::{span, trace, Instrument, Level}; use super::{metadata_loader::MetadataLoader, multi_block_window::MultiBlockWindow}; diff --git a/crates/brontes-classifier/Cargo.toml b/crates/brontes-classifier/Cargo.toml index e8510f0eb3..495d606751 100644 --- a/crates/brontes-classifier/Cargo.toml +++ b/crates/brontes-classifier/Cargo.toml @@ -16,6 +16,7 @@ brontes-database.workspace = true brontes-pricing.workspace = true brontes-core.workspace = true alloy-primitives.workspace = true +alloy-consensus.workspace = true # async tokio.workspace = true @@ -25,6 +26,8 @@ futures.workspace = true alloy-sol-types.workspace = true alloy-sol-macro = { workspace = true, features = ["json"] } alloy-rlp.workspace = true +alloy-rpc-types-trace.workspace = true + # reth alloy-rpc-types.workspace = true diff --git a/crates/brontes-classifier/src/classifiers/aave/mod.rs b/crates/brontes-classifier/src/classifiers/aave/mod.rs index bf55caf74d..46fe66fc8f 100644 --- a/crates/brontes-classifier/src/classifiers/aave/mod.rs +++ b/crates/brontes-classifier/src/classifiers/aave/mod.rs @@ -1,5 +1,7 @@ mod v2; -mod v3; - pub use v2::*; + +/* +mod v3; pub use v3::*; +*/ diff --git a/crates/brontes-classifier/src/classifiers/aave/v3.rs b/crates/brontes-classifier/src/classifiers/aave/v3.rs index 86643e9c5f..5503de507a 100644 --- a/crates/brontes-classifier/src/classifiers/aave/v3.rs +++ b/crates/brontes-classifier/src/classifiers/aave/v3.rs @@ -1,3 +1,5 @@ +/* + use brontes_macros::action_impl; use brontes_types::{ normalized_actions::{NormalizedFlashLoan, NormalizedLiquidation}, @@ -156,3 +158,6 @@ mod tests { .unwrap(); } } + + +*/ diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index 015d7a79d6..d4d6e09d6b 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -16,6 +16,36 @@ use malachite::Rational; use crate::BalancerV2Vault::PoolBalanceChanged; +action_impl!( + Protocol::BalancerV2, + crate::IGeneralPool::onSwapCall, + Swap, + [..], + call_data: true, + return_data: true, + |info: CallInfo, call_data: onSwapCall, return_data: onSwapReturn, db: &DB| { + let pool = pool_id_to_address(call_data.swapRequest.poolId); + let token_in = db.try_fetch_token_info(call_data.swapRequest.tokenIn)?; + let token_out = db.try_fetch_token_info(call_data.swapRequest.tokenOut)?; + let amount_in = call_data.swapRequest.amount.to_scaled_rational(token_in.decimals); + let amount_out = return_data.amount.to_scaled_rational(token_out.decimals); + + Ok(NormalizedSwap { + protocol: Protocol::BalancerV2, + trace_index: info.trace_idx, + from: call_data.swapRequest.from, + recipient: call_data.swapRequest.to, + pool, + token_in, + amount_in, + token_out, + amount_out, + msg_value: U256::ZERO, + }) + } +); + +/* action_impl!( Protocol::BalancerV2, crate::IGeneralPool::onSwap_0Call, @@ -74,6 +104,8 @@ action_impl!( } ); +*/ + fn process_pool_balance_changes( logs: &PoolBalanceChanged, db: &DB, diff --git a/crates/brontes-classifier/src/classifiers/cowswap/mod.rs b/crates/brontes-classifier/src/classifiers/cowswap/mod.rs index 47b2beb742..0181b74a85 100644 --- a/crates/brontes-classifier/src/classifiers/cowswap/mod.rs +++ b/crates/brontes-classifier/src/classifiers/cowswap/mod.rs @@ -1,3 +1,5 @@ +/* + use alloy_primitives::{Address, U256}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_macros::action_impl; @@ -10,7 +12,8 @@ use brontes_types::{ use eyre::Error; use Protocol::Cowswap; -use crate::CowswapGPv2Settlement::Trade; + + use crate::CowswapGPv2Settlement::Trade; fn create_normalized_swap( trade: &Trade, @@ -159,3 +162,6 @@ mod tests { .unwrap(); } } + + +*/ diff --git a/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs b/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs index c491d277f7..2bc0526c51 100644 --- a/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs +++ b/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs @@ -1,10 +1,9 @@ use brontes_macros::action_impl; use brontes_types::{ - normalized_actions::{NormalizedBurn, NormalizedFlashLoan, NormalizedMint, NormalizedSwap}, + normalized_actions::{NormalizedFlashLoan, NormalizedSwap}, structured_trace::CallInfo, Protocol, ToScaledRational, }; -use alloy_primitives::U256; action_impl!( Protocol::Dodo, @@ -106,6 +105,7 @@ action_impl!( } ); +/* action_impl!( Protocol::Dodo, crate::DodoDSPPool::buySharesCall, @@ -186,8 +186,12 @@ action_impl!( } ); + + + #[cfg(test)] mod tests { + use std::str::FromStr; use alloy_primitives::{hex, Address, B256}; @@ -256,6 +260,7 @@ mod tests { .unwrap(); } + #[brontes_macros::test] async fn test_dodo_sell_shares() { let classifier_utils = ClassifierTestUtils::new().await; @@ -311,6 +316,7 @@ mod tests { .unwrap(); } + // Tested but couldn't find a transaction that was less than 300 lines of // trace. #[brontes_macros::test] // async fn test_dodo_sell_base() { @@ -371,3 +377,5 @@ mod tests { // .unwrap(); // } } + +*/ diff --git a/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs b/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs index b4eab74821..d633899c7a 100644 --- a/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs +++ b/crates/brontes-classifier/src/classifiers/maker/dss_flash.rs @@ -42,14 +42,13 @@ action_impl!( mod tests { use std::str::FromStr; - use alloy_primitives::{hex, Address, B256}; + use alloy_primitives::{hex, Address, B256, U256}; use brontes_classifier::test_utils::ClassifierTestUtils; use brontes_types::{ db::token_info::{TokenInfo, TokenInfoWithAddress}, normalized_actions::{Action, NormalizedTransfer}, TreeSearchBuilder, }; - use alloy_primitives::U256; use super::*; diff --git a/crates/brontes-classifier/src/classifiers/mod.rs b/crates/brontes-classifier/src/classifiers/mod.rs index 15417e3465..5bef525402 100644 --- a/crates/brontes-classifier/src/classifiers/mod.rs +++ b/crates/brontes-classifier/src/classifiers/mod.rs @@ -29,8 +29,10 @@ pub use maker::*; pub mod zerox; pub use zerox::*; +/* pub mod cowswap; pub use cowswap::*; +*/ pub mod oneinch; pub use oneinch::*; @@ -146,15 +148,15 @@ action_dispatch!( MakerPSMSellGemCall, MakerDssFlashFlashLoanCall, AaveV2LiquidationCallCall, - AaveV3LiquidationCallCall, + // AaveV3LiquidationCallCall, AaveV2FlashLoanCall, - AaveV3FlashLoanCall, - AaveV3FlashLoanSimpleCall, + // AaveV3FlashLoanCall, + // AaveV3FlashLoanSimpleCall, BalancerV1SwapExactAmountInCall, BalancerV1SwapExactAmountOutCall, BalancerV1BindCall, - BalancerV2OnSwap_0Call, - BalancerV2OnSwap_1Call, + // BalancerV2OnSwap_0Call, + // BalancerV2OnSwap_1Call, BalancerV2FlashLoanCall, BalancerV2JoinPoolCall, BalancerV2ExitPoolCall, @@ -176,36 +178,36 @@ action_dispatch!( ClipperExchangeSellTokenForEthCall, ClipperExchangeTransmitAndSwapCall, ClipperExchangeTransmitAndSellTokenForEthCall, - CowswapSettleCall, - CowswapSwapCall, + // CowswapSettleCall, + // CowswapSwapCall, ZeroXSellToUniswapCall, ZeroXSellEthForTokenToUniswapV3Call, ZeroXSellTokenForEthToUniswapV3Call, ZeroXSellTokenForTokenToUniswapV3Call, ZeroXTransformERC20Call, ZeroXSellToPancakeSwapCall, - ZeroXFillOtcOrderCall, - ZeroXFillOtcOrderForEthCall, - ZeroXFillOtcOrderWithEthCall, - ZeroXFillTakerSignedOtcOrderCall, - ZeroXFillTakerSignedOtcOrderForEthCall, - ZeroXBatchFillTakerSignedOtcOrdersCall, + // ZeroXFillOtcOrderCall, + // ZeroXFillOtcOrderForEthCall, + // ZeroXFillOtcOrderWithEthCall, + // ZeroXFillTakerSignedOtcOrderCall, + // ZeroXFillTakerSignedOtcOrderForEthCall, + // ZeroXBatchFillTakerSignedOtcOrdersCall, ZeroXSellToLiquidityProviderCall, - ZeroXMultiplexBatchSellEthForTokenCall, - ZeroXMultiplexBatchSellTokenForEthCall, - ZeroXMultiplexBatchSellTokenForTokenCall, - ZeroXMultiplexMultiHopSellEthForTokenCall, - ZeroXMultiplexMultiHopSellTokenForEthCall, - ZeroXMultiplexMultiHopSellTokenForTokenCall, - ZeroXFillLimitOrderCall, - ZeroXFillRfqOrderCall, - ZeroXFillOrKillLimitOrderCall, - ZeroXFillOrKillRfqOrderCall, + // ZeroXMultiplexBatchSellEthForTokenCall, + // ZeroXMultiplexBatchSellTokenForEthCall, + // ZeroXMultiplexBatchSellTokenForTokenCall, + // ZeroXMultiplexMultiHopSellEthForTokenCall, + // ZeroXMultiplexMultiHopSellTokenForEthCall, + // ZeroXMultiplexMultiHopSellTokenForTokenCall, + // ZeroXFillLimitOrderCall, + // ZeroXFillRfqOrderCall, + // ZeroXFillOrKillLimitOrderCall, + // ZeroXFillOrKillRfqOrderCall, DodoCreateDODOVendingMachineCall, DodoCreateDODOStablePoolCall, DodoInitDODOPrivatePoolCall, - DodoBuySharesCall, - DodoSellSharesCall, + // DodoBuySharesCall, + // DodoSellSharesCall, DodoSellBaseCall, DodoSellQuoteCall, DodoFlashLoanCall diff --git a/crates/brontes-classifier/src/classifiers/zerox/mod.rs b/crates/brontes-classifier/src/classifiers/zerox/mod.rs index c259fb8393..941ac84c81 100644 --- a/crates/brontes-classifier/src/classifiers/zerox/mod.rs +++ b/crates/brontes-classifier/src/classifiers/zerox/mod.rs @@ -1,11 +1,6 @@ -use alloy_primitives::U256; use brontes_macros::action_impl; use brontes_pricing::Protocol; -use brontes_types::{ - normalized_actions::{NormalizedAggregator, NormalizedBatch, NormalizedSwap}, - structured_trace::CallInfo, - ToScaledRational, -}; +use brontes_types::{normalized_actions::NormalizedAggregator, structured_trace::CallInfo}; // Uniswap action_impl!( @@ -122,6 +117,8 @@ action_impl!( } ); +/* + // OTC Orders action_impl!( Protocol::ZeroX, @@ -334,6 +331,8 @@ action_impl!( } ); +*/ + // Liquidity Provider action_impl!( Protocol::ZeroX, @@ -358,6 +357,7 @@ action_impl!( ); +/* // Multiplex action_impl!( Protocol::ZeroX, @@ -600,16 +600,18 @@ action_impl!( } ); +*/ + #[cfg(test)] mod tests { use std::str::FromStr; - use alloy_primitives::{hex, Address, B256}; + use alloy_primitives::{hex, Address, B256, U256}; use brontes_classifier::test_utils::ClassifierTestUtils; use brontes_types::{ db::token_info::{TokenInfo, TokenInfoWithAddress}, - normalized_actions::Action, - TreeSearchBuilder, + normalized_actions::{Action, NormalizedSwap}, + ToScaledRational, TreeSearchBuilder, }; use super::*; diff --git a/crates/brontes-classifier/src/discovery_only.rs b/crates/brontes-classifier/src/discovery_only.rs index 458c71ba2a..c3d5d2c5a2 100644 --- a/crates/brontes-classifier/src/discovery_only.rs +++ b/crates/brontes-classifier/src/discovery_only.rs @@ -1,6 +1,8 @@ use std::sync::Arc; -use alloy_primitives::Log; +use alloy_consensus::Header; +use alloy_primitives::{Address, Log}; +use alloy_rpc_types_trace::parity::{Action as TraceAction, CallType}; use brontes_core::missing_token_info::load_missing_token_info; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_pricing::types::DexPriceMsg; @@ -11,8 +13,6 @@ use brontes_types::{ tree::{root::NodeData, GasDetails, Node, Root}, }; use futures::future::join_all; -use reth_primitives::{Address, Header}; -use reth_rpc_types::trace::parity::{Action as TraceAction, CallType}; use tracing::{error, trace}; use self::erc20::try_decode_transfer; diff --git a/crates/brontes-classifier/src/lib.rs b/crates/brontes-classifier/src/lib.rs index cdca293516..1896e27df3 100644 --- a/crates/brontes-classifier/src/lib.rs +++ b/crates/brontes-classifier/src/lib.rs @@ -48,7 +48,7 @@ sol!(CurveCryptoSwap, "./classifier-abis/CurveCryptoSwap.json"); sol!(BalancerV1, "./classifier-abis/balancer/BalancerV1Pool.json"); sol!(BalancerV2Vault, "./classifier-abis/balancer/BalancerV2Vault.json"); sol!(AaveV2, "./classifier-abis/AaveV2Pool.json"); -sol!(AaveV3, "./classifier-abis/AaveV3Pool.json"); +// sol!(AaveV3, "./classifier-abis/AaveV3Pool.json"); sol!(UniswapX, "./classifier-abis/UniswapXExclusiveDutchOrderReactor.json"); sol!(MakerPSM, "./classifier-abis/maker/MakerPSM.json"); sol!(MakerDssFlash, "./classifier-abis/maker/MakerDssFlash.json"); @@ -56,16 +56,17 @@ sol!(CompoundV2CToken, "./classifier-abis/CompoundV2CToken.json"); sol!(OneInchAggregationRouterV5, "./classifier-abis/OneInchAggregationRouterV5.json"); sol!(OneInchFusionSettlement, "./classifier-abis/OneInchFusionSettlement.json"); sol!(ClipperExchange, "./classifier-abis/ClipperExchange.json"); -sol!(CowswapGPv2Settlement, "./classifier-abis/cowswap/GPv2Settlement.json"); +// sol!(CowswapGPv2Settlement, "./classifier-abis/cowswap/GPv2Settlement.json"); sol!(ZeroXUniswapFeaure, "./classifier-abis/zero-x/ZeroXUniswapFeature.json"); sol!(ZeroXUniswapV3Feature, "./classifier-abis/zero-x/ZeroXUniswapV3Feature.json"); sol!(ZeroXTransformERC20Feature, "./classifier-abis/zero-x/ZeroXTransformERC20Feature.json"); sol!(ZeroXPancakeSwapFeature, "./classifier-abis/zero-x/ZeroXPancakeSwapFeature.json"); -sol!(ZeroXOtcOrdersFeature, "./classifier-abis/zero-x/ZeroXOtcOrdersFeature.json"); +// sol!(ZeroXOtcOrdersFeature, +// "./classifier-abis/zero-x/ZeroXOtcOrdersFeature.json"); sol!(ZeroXLiquidityProviderFeature, "./classifier-abis/zero-x/ZeroXLiquidityProviderFeature.json"); -sol!(ZeroXInterface, "./classifier-abis/zero-x/ZeroXInterface.json"); +// sol!(ZeroXInterface, "./classifier-abis/zero-x/ZeroXInterface.json"); sol!(DodoDPPPool, "./classifier-abis/dodo/DPPPool.json"); -sol!(DodoDSPPool, "./classifier-abis/dodo/DSPPool.json"); +// sol!(DodoDSPPool, "./classifier-abis/dodo/DSPPool.json"); // Discovery sol!(UniswapV2Factory, "./classifier-abis/UniswapV2Factory.json"); diff --git a/crates/brontes-classifier/src/tree_builder/mod.rs b/crates/brontes-classifier/src/tree_builder/mod.rs index c9fecd8c63..c328e9e7f9 100644 --- a/crates/brontes-classifier/src/tree_builder/mod.rs +++ b/crates/brontes-classifier/src/tree_builder/mod.rs @@ -15,6 +15,9 @@ use malachite::{num::basic::traits::Zero, Rational}; mod tree_pruning; pub(crate) mod utils; +use alloy_consensus::Header; +use alloy_primitives::Address; +use alloy_rpc_types_trace::parity::{Action as TraceAction, CallType}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_pricing::types::DexPriceMsg; use brontes_types::{ @@ -26,8 +29,6 @@ use brontes_types::{ use futures::future::join_all; use itertools::Itertools; use malachite::num::arithmetic::traits::Abs; -use reth_primitives::{Address, Header}; -use reth_rpc_types::trace::parity::{Action as TraceAction, CallType}; use tokio::sync::mpsc::UnboundedSender; use tracing::{error, trace}; use tree_pruning::{account_for_tax_tokens, remove_possible_transfer_double_counts}; diff --git a/crates/brontes-classifier/src/tree_builder/utils.rs b/crates/brontes-classifier/src/tree_builder/utils.rs index eb31b6e843..c5dac0dac6 100644 --- a/crates/brontes-classifier/src/tree_builder/utils.rs +++ b/crates/brontes-classifier/src/tree_builder/utils.rs @@ -1,6 +1,6 @@ use alloy_primitives::{Address, FixedBytes, Log, B256, U256}; +use alloy_rpc_types_trace::parity::Action; use hex_literal::hex; -use reth_rpc_types::trace::parity::Action; pub(crate) fn get_coinbase_transfer(builder: Address, action: &Action) -> Option { match action { diff --git a/crates/brontes-core/Cargo.toml b/crates/brontes-core/Cargo.toml index a41d029dc4..696e221d9a 100644 --- a/crates/brontes-core/Cargo.toml +++ b/crates/brontes-core/Cargo.toml @@ -18,6 +18,7 @@ reth-transaction-pool.workspace = true reth-network-api.workspace = true reth-db.workspace = true reth-metrics.workspace = true +reth-storage-errors.workspace = true reth-tracing-ext.workspace = true ruint = { workspace = true, features = ["primitive-types", "rlp"] } brontes-types.workspace = true @@ -36,6 +37,7 @@ malachite.workspace = true # alloy alloy-sol-types.workspace = true alloy-sol-macro.workspace = true +alloy-consensus.workspace = true alloy-primitives.workspace = true alloy-json-abi.workspace = true alloy-dyn-abi = { workspace = true, features = ["default"] } diff --git a/crates/brontes-core/src/decoding/mod.rs b/crates/brontes-core/src/decoding/mod.rs index 444b3e0232..19ff718228 100644 --- a/crates/brontes-core/src/decoding/mod.rs +++ b/crates/brontes-core/src/decoding/mod.rs @@ -1,10 +1,11 @@ use std::{pin::Pin, sync::Arc}; +use alloy_consensus::Header; +use alloy_primitives::{BlockHash, B256}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_types::structured_trace::TxTrace; pub use brontes_types::traits::TracingProvider; use futures::Future; -use reth_primitives::{BlockHash, BlockNumberOrTag, Header, B256}; use tokio::sync::mpsc::UnboundedSender; use self::parser::TraceParser; @@ -23,7 +24,7 @@ pub(crate) const UNKNOWN: &str = "unknown"; pub(crate) const RECEIVE: &str = "receive"; #[allow(dead_code)] pub(crate) const FALLBACK: &str = "fallback"; -use reth_primitives::BlockId; +use alloy_rpc_types::BlockId; pub type ParserFuture = Pin, Header)>> + Send + 'static>>; diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index 53f7d6b93a..6a670ad0c8 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -1,17 +1,18 @@ use std::time::Duration; +use alloy_consensus::ReceiptEnvelope; #[cfg(feature = "dyn-decode")] use alloy_json_abi::JsonAbi; #[cfg(feature = "dyn-decode")] use alloy_primitives::Address; +use alloy_primitives::BlockHash; +#[cfg(feature = "dyn-decode")] +use alloy_rpc_types::trace::parity::Action; +use alloy_rpc_types::{BlockNumberOrTag, Log}; use brontes_metrics::trace::types::{BlockStats, TraceParseErrorKind, TransactionStats}; #[cfg(feature = "dyn-decode")] use brontes_types::FastHashMap; use futures::future::join_all; -use reth_primitives::BlockHash; -#[cfg(feature = "dyn-decode")] -use reth_rpc_types::trace::parity::Action; -use reth_rpc_types::{AnyReceiptEnvelope, Log, TransactionReceipt}; use tracing::error; #[cfg(feature = "dyn-decode")] use tracing::info; @@ -290,7 +291,7 @@ impl TraceParser { pub(crate) async fn get_receipts( &self, block_num: u64, - ) -> (Option>>>, BlockStats) { + ) -> (Option>>, BlockStats) { let tx_receipts = self .tracer .block_receipts(BlockNumberOrTag::Number(block_num)) @@ -313,7 +314,7 @@ impl TraceParser { &self, block_trace: Vec, #[cfg(feature = "dyn-decode")] dyn_json: FastHashMap, - block_receipts: Vec>>, + block_receipts: Vec>, block_num: u64, ) -> (Vec, BlockStats, Header) { let mut stats = BlockStats::new(block_num, None); @@ -321,17 +322,15 @@ impl TraceParser { let (traces, tx_stats): (Vec<_>, Vec<_>) = join_all(block_trace.into_iter().zip(block_receipts.into_iter()).map( |(trace, receipt)| { - let tx_hash = trace.tx_hash; - self.parse_transaction( - trace, + trace.clone(), #[cfg(feature = "dyn-decode")] &dyn_json, block_num, - tx_hash, - receipt.transaction_index.unwrap(), - receipt.gas_used, - receipt.effective_gas_price, + trace.tx_hash, + trace.tx_index, + receipt.cumulative_gas_used() as u128, + trace.effective_price, ) }, )) diff --git a/crates/brontes-core/src/errors.rs b/crates/brontes-core/src/errors.rs index 9244c54ad6..f12c1b16e4 100644 --- a/crates/brontes-core/src/errors.rs +++ b/crates/brontes-core/src/errors.rs @@ -1,6 +1,5 @@ -use brontes_metrics::trace::types::TraceParseErrorKind; use alloy_primitives::B256; -use reth_rpc::eth::error::EthApiError; +use brontes_metrics::trace::types::TraceParseErrorKind; use thiserror::Error; /// Custom error type @@ -20,19 +19,19 @@ pub enum TraceParseError { AbiDecodingFailed(B256), #[error("send error to prometheus")] ChannelSendError(String), - #[error("trace missing")] - EthApiError(EthApiError), + // #[error("trace missing")] + // EthApiError(EthApiError), #[error("alloy error {0}")] AlloyError(alloy_dyn_abi::Error), #[error(transparent)] Eyre(#[from] eyre::Report), } -impl From for TraceParseError { - fn from(err: EthApiError) -> TraceParseError { - TraceParseError::EthApiError(err) - } -} +// impl From for TraceParseError { +// fn from(err: EthApiError) -> TraceParseError { +// TraceParseError::EthApiError(err) +// } +// } impl From for TraceParseError { fn from(err: alloy_dyn_abi::Error) -> TraceParseError { @@ -49,51 +48,55 @@ impl From<&TraceParseError> for TraceParseErrorKind { TraceParseError::TracesMissingBlock(_) => TraceParseErrorKind::TracesMissingBlock, TraceParseError::TracesMissingTx(_) => TraceParseErrorKind::TracesMissingTx, TraceParseError::EmptyInput(_) => TraceParseErrorKind::EmptyInput, - TraceParseError::EthApiError(e) => match e { - EthApiError::EmptyRawTransactionData => { - TraceParseErrorKind::EthApiEmptyRawTransactionData - } - EthApiError::FailedToDecodeSignedTransaction => { - TraceParseErrorKind::EthApiFailedToDecodeSignedTransaction - } - EthApiError::InvalidTransactionSignature => { - TraceParseErrorKind::EthApiInvalidTransactionSignature - } - EthApiError::UnknownSafeOrFinalizedBlock => { - TraceParseErrorKind::EthApiUnknownSafeOrFinalizedBlock - } - EthApiError::ExecutionTimedOut(_) => TraceParseErrorKind::EthApiExecutionTimedOut, + // TraceParseError::EthApiError(e) => match e { + // EthApiError::EmptyRawTransactionData => { + // TraceParseErrorKind::EthApiEmptyRawTransactionData + // } + // EthApiError::FailedToDecodeSignedTransaction => { + // TraceParseErrorKind::EthApiFailedToDecodeSignedTransaction + // } + // EthApiError::InvalidTransactionSignature => { + // TraceParseErrorKind::EthApiInvalidTransactionSignature + // } + // EthApiError::UnknownSafeOrFinalizedBlock => { + // TraceParseErrorKind::EthApiUnknownSafeOrFinalizedBlock + // } + // EthApiError::ExecutionTimedOut(_) => + // TraceParseErrorKind::EthApiExecutionTimedOut, - EthApiError::PoolError(_) => TraceParseErrorKind::EthApiPoolError, - EthApiError::UnknownBlockNumber => TraceParseErrorKind::EthApiUnknownBlockNumber, - EthApiError::UnknownBlockOrTxIndex => { - TraceParseErrorKind::EthApiUnknownBlockOrTxIndex - } - EthApiError::InvalidBlockRange => TraceParseErrorKind::EthApiInvalidBlockRange, - EthApiError::PrevrandaoNotSet => TraceParseErrorKind::EthApiPrevrandaoNotSet, - EthApiError::ConflictingFeeFieldsInRequest => { - TraceParseErrorKind::EthApiConflictingFeeFieldsInRequest - } - EthApiError::InvalidTransaction(_) => TraceParseErrorKind::EthApiInvalidTransaction, - EthApiError::InvalidBlockData(_) => TraceParseErrorKind::EthApiInvalidBlockData, - EthApiError::BothStateAndStateDiffInOverride(_) => { - TraceParseErrorKind::EthApiBothStateAndStateDiffInOverride - } - EthApiError::Internal(_) => TraceParseErrorKind::EthApiInternal, - EthApiError::Signing(_) => TraceParseErrorKind::EthApiSigning, - EthApiError::TransactionNotFound => TraceParseErrorKind::EthApiTransactionNotFound, - EthApiError::Unsupported(_) => TraceParseErrorKind::EthApiUnsupported, - EthApiError::InvalidParams(_) => TraceParseErrorKind::EthApiInvalidParams, - EthApiError::InvalidTracerConfig => TraceParseErrorKind::EthApiInvalidTracerConfig, - EthApiError::InvalidRewardPercentiles => { - TraceParseErrorKind::EthApiInvalidRewardPercentiles - } - EthApiError::InternalEthError => TraceParseErrorKind::EthApiInternalEthError, - EthApiError::InternalJsTracerError(_) => { - TraceParseErrorKind::EthApiInternalJsTracerError - } - _ => TraceParseErrorKind::EthApiInternalJsTracerError, - }, + // EthApiError::PoolError(_) => TraceParseErrorKind::EthApiPoolError, + // EthApiError::UnknownBlockNumber => TraceParseErrorKind::EthApiUnknownBlockNumber, + // EthApiError::UnknownBlockOrTxIndex => { + // TraceParseErrorKind::EthApiUnknownBlockOrTxIndex + // } + // EthApiError::InvalidBlockRange => TraceParseErrorKind::EthApiInvalidBlockRange, + // EthApiError::PrevrandaoNotSet => TraceParseErrorKind::EthApiPrevrandaoNotSet, + // EthApiError::ConflictingFeeFieldsInRequest => { + // TraceParseErrorKind::EthApiConflictingFeeFieldsInRequest + // } + // EthApiError::InvalidTransaction(_) => + // TraceParseErrorKind::EthApiInvalidTransaction, + // EthApiError::InvalidBlockData(_) => TraceParseErrorKind::EthApiInvalidBlockData, + // EthApiError::BothStateAndStateDiffInOverride(_) => { + // TraceParseErrorKind::EthApiBothStateAndStateDiffInOverride + // } + // EthApiError::Internal(_) => TraceParseErrorKind::EthApiInternal, + // EthApiError::Signing(_) => TraceParseErrorKind::EthApiSigning, + // EthApiError::TransactionNotFound => + // TraceParseErrorKind::EthApiTransactionNotFound, + // EthApiError::Unsupported(_) => TraceParseErrorKind::EthApiUnsupported, + // EthApiError::InvalidParams(_) => TraceParseErrorKind::EthApiInvalidParams, + // EthApiError::InvalidTracerConfig => + // TraceParseErrorKind::EthApiInvalidTracerConfig, + // EthApiError::InvalidRewardPercentiles => { + // TraceParseErrorKind::EthApiInvalidRewardPercentiles + // } + // EthApiError::InternalEthError => TraceParseErrorKind::EthApiInternalEthError, + // EthApiError::InternalJsTracerError(_) => { + // TraceParseErrorKind::EthApiInternalJsTracerError + // } + // _ => TraceParseErrorKind::EthApiInternalJsTracerError, + // }, TraceParseError::AbiParseError(_) => TraceParseErrorKind::AbiParseError, TraceParseError::InvalidFunctionSelector(_) => { TraceParseErrorKind::InvalidFunctionSelector diff --git a/crates/brontes-core/src/local_provider.rs b/crates/brontes-core/src/local_provider.rs index 2e1ba0eed3..22313ed6e2 100644 --- a/crates/brontes-core/src/local_provider.rs +++ b/crates/brontes-core/src/local_provider.rs @@ -1,21 +1,18 @@ use std::sync::Arc; +use alloy_consensus::{Header, ReceiptEnvelope}; +use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; use alloy_provider::{Provider, RootProvider}; -use alloy_rpc_types::AnyReceiptEnvelope; -use alloy_transport_http::Http; +use alloy_rpc_types::{ + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, TransactionRequest, +}; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; use itertools::Itertools; -use reth_primitives::{ - Address, BlockId, BlockNumber, BlockNumberOrTag, Bytecode, Bytes, Header, StorageValue, TxHash, - B256, -}; -use reth_rpc_types::{ - state::StateOverride, BlockOverrides, Log, TransactionReceipt, TransactionRequest, -}; +use reth_primitives::Bytecode; -#[derive(Debug, Clone)] +#[derive(Clone)] pub struct LocalProvider { - provider: Arc>>, + provider: Arc, retries: u8, } @@ -42,7 +39,8 @@ impl TracingProvider for LocalProvider { loop { let res = self .provider - .call(&request.clone(), block_number.unwrap_or(BlockId::latest())) + .call(request.clone()) + .block(block_number.unwrap_or(BlockId::latest())) .await; if res.is_ok() || attempts > self.retries { return res.map_err(Into::into) @@ -53,9 +51,10 @@ impl TracingProvider for LocalProvider { async fn block_hash_for_id(&self, block_num: u64) -> eyre::Result> { self.provider - .get_block(BlockId::Number(BlockNumberOrTag::Number(block_num)), true) + .get_block(BlockId::Number(BlockNumberOrTag::Number(block_num))) + .full() .await - .map(|op| op.map(|block| block.header.hash.unwrap())) + .map(|op| op.map(|block| block.header.hash)) .map_err(Into::into) } @@ -79,22 +78,20 @@ impl TracingProvider for LocalProvider { async fn block_receipts( &self, number: BlockNumberOrTag, - ) -> eyre::Result>>>> { - Ok(self.provider.get_block_receipts(number).await?.map(|t| { - t.into_iter() - .map(|tx| { - tx.map_inner(|reciept_env| { - let bloom = reciept_env.as_receipt_with_bloom().unwrap().clone(); - let log_type = reciept_env.tx_type() as u8; - AnyReceiptEnvelope { inner: bloom, r#type: log_type } - }) - }) - .collect_vec() - })) + ) -> eyre::Result>>> { + Ok(self + .provider + .get_block_receipts(number.into()) + .await? + .map(|t| t.into_iter().map(|tx| tx.inner).collect_vec())) } async fn block_and_tx_index(&self, hash: TxHash) -> eyre::Result<(u64, usize)> { - let tx = self.provider.get_transaction_by_hash(hash).await?; + let tx = self + .provider + .get_transaction_by_hash(hash) + .await? + .ok_or(eyre::eyre!("could not find tx '{hash:?}'"))?; let err = || eyre::eyre!("failed to unwrap option"); Ok((tx.block_number.ok_or_else(err)?, tx.transaction_index.ok_or_else(err)? as usize)) @@ -104,21 +101,19 @@ impl TracingProvider for LocalProvider { let err = || eyre::eyre!("failed to unwrap option"); let block = self .provider - .get_block(BlockId::Number(BlockNumberOrTag::Number(number)), true) + .get_block(BlockId::Number(BlockNumberOrTag::Number(number))) + .full() .await? .ok_or_else(err)?; let header = Header { - number: block.header.number.ok_or_else(err)?, - base_fee_per_gas: block.header.base_fee_per_gas.map(|f| f as u64), - mix_hash: block.header.mix_hash.ok_or_else(err)?, + requests_hash: block.header.requests_hash, + number: block.header.number, + base_fee_per_gas: block.header.base_fee_per_gas, + mix_hash: block.header.mix_hash, withdrawals_root: block.header.withdrawals_root, parent_beacon_block_root: block.header.parent_beacon_block_root, - nonce: block - .header - .nonce - .map(|i| u64::from_be_bytes(*i)) - .ok_or_else(err)?, + nonce: block.header.nonce, gas_used: block.header.gas_used as u64, gas_limit: block.header.gas_limit as u64, timestamp: block.header.timestamp, @@ -128,11 +123,11 @@ impl TracingProvider for LocalProvider { receipts_root: block.header.receipts_root, transactions_root: block.header.transactions_root, logs_bloom: block.header.logs_bloom, - extra_data: block.header.extra_data, - blob_gas_used: block.header.blob_gas_used.map(|f| f as u64), - excess_blob_gas: block.header.excess_blob_gas.map(|f| f as u64), - ommers_hash: block.header.uncles_hash, - beneficiary: block.header.miner, + extra_data: block.header.extra_data.clone(), + blob_gas_used: block.header.blob_gas_used, + excess_blob_gas: block.header.excess_blob_gas, + ommers_hash: block.header.ommers_hash, + beneficiary: block.header.beneficiary, }; Ok(Some(header)) @@ -150,7 +145,8 @@ impl TracingProvider for LocalProvider { }; let storage_value = self .provider - .get_storage_at(address, storage_key.into(), block_id) + .get_storage_at(address, storage_key.into()) + .block_id(block_id) .await?; Ok(Some(storage_value)) @@ -165,7 +161,11 @@ impl TracingProvider for LocalProvider { Some(number) => BlockId::Number(BlockNumberOrTag::Number(number)), None => BlockId::Number(BlockNumberOrTag::Latest), }; - let bytes = self.provider.get_code_at(address, block_id).await?; + let bytes = self + .provider + .get_code_at(address) + .block_id(block_id) + .await?; let bytecode = Bytecode::new_raw(bytes); Ok(Some(bytecode)) diff --git a/crates/brontes-core/src/test_utils/mod.rs b/crates/brontes-core/src/test_utils/mod.rs index 81bcd2c2eb..9039fa7d27 100644 --- a/crates/brontes-core/src/test_utils/mod.rs +++ b/crates/brontes-core/src/test_utils/mod.rs @@ -2,7 +2,8 @@ use std::sync::OnceLock; use std::{collections::hash_map::Entry, env, fs::OpenOptions, io::Write, sync::Arc}; -use alloy_primitives::Address; +use alloy_consensus::Header; +use alloy_primitives::{Address, BlockHash, B256}; #[cfg(feature = "local-clickhouse")] use brontes_database::clickhouse::Clickhouse; #[cfg(not(feature = "local-clickhouse"))] @@ -27,7 +28,6 @@ use futures::future::join_all; use indicatif::MultiProgress; #[cfg(feature = "local-reth")] use reth_db::DatabaseEnv; -use reth_primitives::{BlockHash, Header, B256}; use reth_provider::ProviderError; #[cfg(feature = "local-reth")] use reth_tracing_ext::init_db; diff --git a/crates/brontes-database/brontes-db/src/clickhouse/http_client.rs b/crates/brontes-database/brontes-db/src/clickhouse/http_client.rs index 89195c6b3b..89543fc856 100644 --- a/crates/brontes-database/brontes-db/src/clickhouse/http_client.rs +++ b/crates/brontes-database/brontes-db/src/clickhouse/http_client.rs @@ -1,6 +1,6 @@ use std::fmt::Debug; -use alloy_primitives::{Address, TxHash}; +use alloy_primitives::{Address, BlockHash, TxHash}; use brontes_types::{ db::{ dex::{DexPrices, DexQuotes}, @@ -13,7 +13,6 @@ use clickhouse::{remote_cursor::RemoteCursor, DbRow}; use futures::TryStreamExt; use itertools::Itertools; use reqwest::StatusCode; -use reth_primitives::BlockHash; use serde::Deserialize; use crate::{ diff --git a/crates/brontes-database/brontes-db/src/clickhouse/mod.rs b/crates/brontes-database/brontes-db/src/clickhouse/mod.rs index 7aba3c2819..2863c1b8a9 100644 --- a/crates/brontes-database/brontes-db/src/clickhouse/mod.rs +++ b/crates/brontes-database/brontes-db/src/clickhouse/mod.rs @@ -9,9 +9,9 @@ pub mod errors; pub use db_client::*; #[cfg(feature = "local-clickhouse")] pub mod split_db; +use alloy_primitives::{Address, BlockHash, TxHash}; #[cfg(feature = "local-clickhouse")] pub use db_interfaces::clickhouse::config::ClickhouseConfig; -use reth_primitives::{Address, BlockHash, TxHash}; #[cfg(feature = "local-clickhouse")] pub use split_db::*; #[cfg(not(feature = "local-clickhouse"))] diff --git a/crates/brontes-database/brontes-db/src/lib.rs b/crates/brontes-database/brontes-db/src/lib.rs index 31f378609b..c488f37656 100644 --- a/crates/brontes-database/brontes-db/src/lib.rs +++ b/crates/brontes-database/brontes-db/src/lib.rs @@ -1,7 +1,6 @@ #![feature(trivial_bounds)] #![feature(associated_type_defaults)] #![feature(const_trait_impl)] -#![feature(noop_waker)] pub mod clickhouse; pub mod libmdbx; diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs index 294ec3df85..e51b7ad02a 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs @@ -151,7 +151,7 @@ where key: T::Key, value: T::DecompressedValue, ) -> Result<(), DatabaseError> { - self.0.upsert(key, value.into()) + self.0.upsert(key, &(value.into())) } pub fn insert( @@ -159,7 +159,7 @@ where key: T::Key, value: T::DecompressedValue, ) -> Result<(), DatabaseError> { - self.0.insert(key, value.into()) + self.0.insert(key, &(value.into())) } pub fn append( @@ -167,7 +167,7 @@ where key: T::Key, value: T::DecompressedValue, ) -> Result<(), DatabaseError> { - self.0.append(key, value.into()) + self.0.append(key, &(value.into())) } pub fn delete_current(&mut self) -> Result<(), DatabaseError> { diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs index 05c2226c88..b69ab34448 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs @@ -209,7 +209,7 @@ impl DbCursorRW for LibmdbxCursor { /// the subkeys are the same. So if you want to properly upsert, you'll /// need to `seek_exact` & `delete_current` if the key+subkey was found, /// before calling `upsert`. - fn upsert(&mut self, key: T::Key, value: T::Value) -> Result<(), DatabaseError> { + fn upsert(&mut self, key: T::Key, value: &T::Value) -> Result<(), DatabaseError> { let (key, value) = uncompressable_ref_util::(key, value); self.inner .put(&key, &value, WriteFlags::UPSERT) @@ -224,7 +224,7 @@ impl DbCursorRW for LibmdbxCursor { }) } - fn insert(&mut self, key: T::Key, value: T::Value) -> Result<(), DatabaseError> { + fn insert(&mut self, key: T::Key, value: &T::Value) -> Result<(), DatabaseError> { let (key, value) = uncompressable_ref_util::(key, value); self.inner .put(&key, &value, WriteFlags::NO_OVERWRITE) @@ -242,7 +242,7 @@ impl DbCursorRW for LibmdbxCursor { /// Appends the data to the end of the table. Consequently, the append /// operation will fail if the inserted key is less than the last table /// key - fn append(&mut self, key: T::Key, value: T::Value) -> Result<(), DatabaseError> { + fn append(&mut self, key: T::Key, value: &T::Value) -> Result<(), DatabaseError> { let (key, value) = uncompressable_ref_util::(key, value); self.inner .put(&key, &value, WriteFlags::APPEND) @@ -272,7 +272,7 @@ impl DbDupCursorRW for LibmdbxCursor { } fn append_dup(&mut self, key: T::Key, value: T::Value) -> Result<(), DatabaseError> { - let (key, value) = uncompressable_ref_util::(key, value); + let (key, value) = uncompressable_ref_util::(key, &value); self.inner .put(&key, &value, WriteFlags::APPEND_DUP) .map_err(|e| { diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs index e3f07b58e4..5340a1180d 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs @@ -168,7 +168,11 @@ impl DbTx for LibmdbxTx { &self, key: &::Encoded, ) -> Result, DatabaseError> { - self.get(key.decode()) + self.inner + .get(self.get_dbi::()?, key.as_ref()) + .map_err(|e| DatabaseError::Read(e.into()))? + .map(decode_one::) + .transpose() } } diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs index a70e59ee5f..5c954b4458 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/utils.rs @@ -51,7 +51,7 @@ where pub(crate) fn uncompressable_ref_util( key: T::Key, - value: T::Value, + value: &T::Value, ) -> (Vec, Vec) { if let Some(val) = value.uncompressable_ref() { (key.encode().into(), val.to_vec()) diff --git a/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs b/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs index bdf247b894..68cbd1fec8 100644 --- a/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs +++ b/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use alloy_primitives::{Address, B256}; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -15,7 +16,6 @@ use brontes_types::{ }; use itertools::Itertools; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::{Address, B256}; use crate::{ shared_utils::SharedInspectorUtils, BlockTree, Inspector, Metadata, MAX_PROFIT, MIN_PROFIT, diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs index 93949cc1db..1e87d42566 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs @@ -3,7 +3,7 @@ use std::{ sync::Arc, }; -use alloy_primitives::FixedBytes; +use alloy_primitives::{Address, FixedBytes}; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -34,7 +34,6 @@ use malachite::{ }, Rational, }; -use alloy_primitives::Address; use tracing::trace; use super::{ diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs index e58de4d5b0..e8b885fc63 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs @@ -1,6 +1,6 @@ use std::{fmt, sync::Arc}; -use alloy_primitives::FixedBytes; +use alloy_primitives::{Address, FixedBytes}; use brontes_types::{ db::cex::{ trades::{ @@ -17,7 +17,6 @@ use brontes_types::{ use colored::Colorize; use itertools::Itertools; use malachite::{num::basic::traits::Zero, Rational}; -use alloy_primitives::Address; use strum::Display; use tracing::warn; @@ -36,7 +35,10 @@ pub struct CexPricesForSwaps { } impl CexPricesForSwaps { - pub fn per_exchange_trades<'a>(&'a self, exchanges: &'a [CexExchange]) -> PerExchangePrices { + pub fn per_exchange_trades<'a>( + &'a self, + exchanges: &'a [CexExchange], + ) -> PerExchangePrices<'a> { exchanges .iter() .map(|exchange| { diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs index ffd248bd74..08e180804d 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/types.rs @@ -1,3 +1,4 @@ +use alloy_primitives::Address; use brontes_types::{ db::cex::CexExchange, mev::{BundleData, CexDexQuote}, @@ -5,7 +6,6 @@ use brontes_types::{ ToFloatNearest, TxInfo, }; use malachite::{num::basic::traits::Zero, Rational}; -use alloy_primitives::Address; use tracing::warn; #[derive(Debug, Default)] diff --git a/crates/brontes-inspect/src/mev_inspectors/liquidations.rs b/crates/brontes-inspect/src/mev_inspectors/liquidations.rs index f7dc6a2a5a..d15500974d 100644 --- a/crates/brontes-inspect/src/mev_inspectors/liquidations.rs +++ b/crates/brontes-inspect/src/mev_inspectors/liquidations.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use alloy_primitives::{b256, Address}; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -10,7 +11,6 @@ use brontes_types::{ }; use itertools::multizip; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::{b256, Address}; use super::{MAX_PROFIT, MIN_PROFIT}; use crate::{shared_utils::SharedInspectorUtils, Inspector, Metadata}; diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 79a252f199..1fca208e9d 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -6,6 +6,7 @@ use std::{ use alloy_primitives::TxHash; use tracing::trace; mod types; +use alloy_primitives::{Address, B256}; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -20,7 +21,6 @@ use brontes_types::{ }; use itertools::Itertools; use malachite::{num::basic::traits::Zero, Rational}; -use reth_primitives::{Address, B256}; use types::{PossibleSandwich, PossibleSandwichWithTxInfo}; use super::MAX_PROFIT; diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/types.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/types.rs index 1e6d1224ed..fa496055ca 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/types.rs @@ -1,7 +1,7 @@ use std::hash::Hash; +use alloy_primitives::{Address, B256}; use brontes_types::{FastHashMap, TxInfo}; -use reth_primitives::{Address, B256}; #[derive(Debug, PartialEq, Eq, Clone, Hash)] pub struct PossibleSandwich { diff --git a/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs b/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs index b6ddf8e6df..990aad864e 100644 --- a/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs +++ b/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs @@ -1,5 +1,6 @@ use std::sync::Arc; +use alloy_primitives::Address; use brontes_database::libmdbx::LibmdbxReader; use brontes_metrics::inspectors::OutlierMetrics; use brontes_types::{ @@ -11,7 +12,6 @@ use brontes_types::{ }; use itertools::multizip; use malachite::{num::basic::traits::Zero, Rational}; -use alloy_primitives::Address; use super::{MAX_PROFIT, MIN_PROFIT}; use crate::{shared_utils::SharedInspectorUtils, Inspector, Metadata}; diff --git a/crates/brontes-metrics/src/inspectors.rs b/crates/brontes-metrics/src/inspectors.rs index 700f0900d7..dc3d080ac3 100644 --- a/crates/brontes-metrics/src/inspectors.rs +++ b/crates/brontes-metrics/src/inspectors.rs @@ -1,11 +1,11 @@ use std::{pin::Pin, time::Instant}; +use alloy_primitives::Address; use brontes_types::{mev::MevType, pair::Pair, FastHashMap}; use dashmap::DashMap; use metrics::{Counter, Gauge}; use prometheus::{HistogramVec, IntCounterVec}; use reth_metrics::Metrics; -use alloy_primitives::Address; #[derive(Clone)] pub struct OutlierMetrics { diff --git a/crates/brontes-metrics/src/trace/types.rs b/crates/brontes-metrics/src/trace/types.rs index ee5676c6e1..c960bc3134 100644 --- a/crates/brontes-metrics/src/trace/types.rs +++ b/crates/brontes-metrics/src/trace/types.rs @@ -1,5 +1,5 @@ -use colored::Colorize; use alloy_primitives::B256; +use colored::Colorize; use tracing::debug; use crate::ParserMetricEvents; diff --git a/crates/brontes-types/src/block_metadata/mod.rs b/crates/brontes-types/src/block_metadata/mod.rs index 5018b25614..78ac6539d9 100644 --- a/crates/brontes-types/src/block_metadata/mod.rs +++ b/crates/brontes-types/src/block_metadata/mod.rs @@ -4,8 +4,8 @@ use std::str::FromStr; pub use relays::*; mod bids_payloads; -pub use bids_payloads::*; use alloy_primitives::Address; +pub use bids_payloads::*; #[derive(Debug, Clone, PartialEq, Eq)] pub struct RelayBlockMetadata { diff --git a/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs b/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs index d4b9594913..8186d1ec48 100644 --- a/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs +++ b/crates/brontes-types/src/db/clickhouse_serde/tx_trace.rs @@ -295,7 +295,7 @@ impl<'a> From<&'a TxTrace> for ClickhouseCreateOutput { pub mod tx_traces_inner { use std::str::FromStr; - use alloy_primitives::{Address, Bytes, Log, LogData, TxHash, U256, U64}; + use alloy_primitives::{Address, Bytes, Log, LogData, TxHash, U256}; use alloy_rpc_types_trace::parity::{ Action, CallAction, CallOutput, CallType, CreateAction, CreateOutput, CreationMethod, RewardAction, RewardType, SelfdestructAction, TraceOutput, TransactionTrace, diff --git a/crates/brontes-types/src/db/codecs.rs b/crates/brontes-types/src/db/codecs.rs index 22912ae495..7c43e26e31 100644 --- a/crates/brontes-types/src/db/codecs.rs +++ b/crates/brontes-types/src/db/codecs.rs @@ -24,7 +24,9 @@ macro_rules! implement_table_value_codecs_with_zc { impl reth_db::table::Compress for $table_value { type Compressed = Vec; - fn compress_to_buf>(&self, buf: &mut B) { + fn compress_to_buf(&self, buf: &mut B) + where B: alloy_primitives::bytes::BufMut + AsMut<[u8]> + { let mut encoded = Vec::new(); alloy_rlp::Encodable::encode(&self, &mut encoded); let encoded_compressed = zstd::encode_all(&*encoded, 0).unwrap(); diff --git a/crates/brontes-types/src/db/normalized_actions.rs b/crates/brontes-types/src/db/normalized_actions.rs index f17a0e259c..8a21a89be8 100644 --- a/crates/brontes-types/src/db/normalized_actions.rs +++ b/crates/brontes-types/src/db/normalized_actions.rs @@ -1,7 +1,6 @@ -use alloy_primitives::Address; +use alloy_primitives::{Address, B256}; use clickhouse::DbRow; use itertools::MultiUnzip; -use alloy_primitives::B256; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use crate::{normalized_actions::Action, GasDetails, Node, Root}; diff --git a/crates/brontes-types/src/display/utils.rs b/crates/brontes-types/src/display/utils.rs index 9b0f1a3733..f5d2ffc288 100644 --- a/crates/brontes-types/src/display/utils.rs +++ b/crates/brontes-types/src/display/utils.rs @@ -1,11 +1,10 @@ use std::fmt; -use alloy_primitives::{Address, FixedBytes}; +use alloy_primitives::{Address, FixedBytes, B256}; use colored::{ColoredString, Colorize}; use indoc::indoc; use itertools::Itertools; use prettytable::{Cell, Row, Table}; -use alloy_primitives::B256; use crate::{ mev::{ArbDetails, AtomicArbType, Bundle, BundleData, CexDex, OptimisticTrade}, diff --git a/crates/brontes-types/src/lib.rs b/crates/brontes-types/src/lib.rs index bea9ea5a3b..29194abc4a 100644 --- a/crates/brontes-types/src/lib.rs +++ b/crates/brontes-types/src/lib.rs @@ -5,6 +5,7 @@ #![feature(const_for)] #![allow(internal_features)] #![allow(clippy::type_complexity)] +#![allow(unexpected_cfgs)] pub mod multi_block; pub use multi_block::*; diff --git a/crates/brontes-types/src/mev/backrun.rs b/crates/brontes-types/src/mev/backrun.rs index d68bdbc3b3..547c4de7f3 100644 --- a/crates/brontes-types/src/mev/backrun.rs +++ b/crates/brontes-types/src/mev/backrun.rs @@ -6,10 +6,10 @@ use std::{ use ::clickhouse::DbRow; use ::serde::ser::{SerializeStruct, Serializer}; use ahash::HashSet; +use alloy_primitives::B256; #[allow(unused)] use clickhouse::fixed_string::FixedString; use redefined::{self_convert_redefined, Redefined}; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/bundle/header.rs b/crates/brontes-types/src/mev/bundle/header.rs index a87f5267f4..fc7ded72ee 100644 --- a/crates/brontes-types/src/mev/bundle/header.rs +++ b/crates/brontes-types/src/mev/bundle/header.rs @@ -1,11 +1,10 @@ use std::fmt::{self, Debug, Display}; -use alloy_primitives::Address; +use alloy_primitives::{Address, B256}; use clickhouse::{DbRow, Row}; use colored::Colorize; use itertools::Itertools; use redefined::Redefined; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/bundle/mod.rs b/crates/brontes-types/src/mev/bundle/mod.rs index e992e9434c..823ea31cd0 100644 --- a/crates/brontes-types/src/mev/bundle/mod.rs +++ b/crates/brontes-types/src/mev/bundle/mod.rs @@ -3,14 +3,13 @@ pub mod header; use std::fmt::{self, Debug}; use ahash::HashSet; -use alloy_primitives::Address; +use alloy_primitives::{Address, B256}; use clap::ValueEnum; use clickhouse::Row; pub use data::*; use dyn_clone::DynClone; pub use header::*; use redefined::{self_convert_redefined, Redefined}; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/cex_dex.rs b/crates/brontes-types/src/mev/cex_dex.rs index 1f204ee26f..6b5763ba90 100644 --- a/crates/brontes-types/src/mev/cex_dex.rs +++ b/crates/brontes-types/src/mev/cex_dex.rs @@ -6,10 +6,10 @@ use ::serde::{ Deserialize, Serialize, }; use ahash::HashSet; +use alloy_primitives::B256; use colored::Colorize; use malachite::Rational; use redefined::{self_convert_redefined, Redefined}; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde_with::serde_as; use strum::Display; diff --git a/crates/brontes-types/src/mev/cex_dex_quotes.rs b/crates/brontes-types/src/mev/cex_dex_quotes.rs index 43096180d2..b937674d5d 100644 --- a/crates/brontes-types/src/mev/cex_dex_quotes.rs +++ b/crates/brontes-types/src/mev/cex_dex_quotes.rs @@ -6,8 +6,8 @@ use ::serde::{ Deserialize, Serialize, }; use ahash::HashSet; -use redefined::Redefined; use alloy_primitives::B256; +use redefined::Redefined; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/jit.rs b/crates/brontes-types/src/mev/jit.rs index e717f0487e..b44dd7d81b 100644 --- a/crates/brontes-types/src/mev/jit.rs +++ b/crates/brontes-types/src/mev/jit.rs @@ -1,9 +1,9 @@ use std::fmt::Debug; use ahash::HashSet; +use alloy_primitives::B256; use clickhouse::DbRow; use redefined::Redefined; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ ser::{SerializeStruct, Serializer}, diff --git a/crates/brontes-types/src/mev/jit_sandwich.rs b/crates/brontes-types/src/mev/jit_sandwich.rs index 41a572c3b4..d34df880d6 100644 --- a/crates/brontes-types/src/mev/jit_sandwich.rs +++ b/crates/brontes-types/src/mev/jit_sandwich.rs @@ -2,10 +2,10 @@ use std::fmt::Debug; use ::serde::ser::{SerializeStruct, Serializer}; use ahash::HashSet; +use alloy_primitives::B256; #[allow(unused)] use clickhouse::row::*; use redefined::Redefined; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/mev/searcher_tx.rs b/crates/brontes-types/src/mev/searcher_tx.rs index 62052eda52..b2ca9a2af1 100644 --- a/crates/brontes-types/src/mev/searcher_tx.rs +++ b/crates/brontes-types/src/mev/searcher_tx.rs @@ -2,9 +2,9 @@ use std::fmt::Debug; use ::serde::ser::Serializer; use ahash::{HashSet, HashSetExt}; +use alloy_primitives::B256; use clickhouse::DbRow; use redefined::Redefined; -use alloy_primitives::B256; use rkyv::{Archive, Deserialize as rDeserialize, Serialize as rSerialize}; use serde::{ser::SerializeStruct, Deserialize, Serialize}; use serde_with::serde_as; diff --git a/crates/brontes-types/src/tree/mod.rs b/crates/brontes-types/src/tree/mod.rs index a3caefb9ad..9033cd8fcc 100644 --- a/crates/brontes-types/src/tree/mod.rs +++ b/crates/brontes-types/src/tree/mod.rs @@ -1,7 +1,7 @@ use std::{panic::AssertUnwindSafe, sync::Arc}; +use alloy_consensus::Header; use alloy_primitives::B256; -use alloy_rpc_types::Header; use itertools::Itertools; use statrs::statistics::Statistics; use tracing::{error, info, span, Level}; diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index e98350906c..5d048a15d4 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -33,8 +33,7 @@ use reth_tracer::{ }; use reth_transaction_pool::{ blobstore::NoopBlobStore, validate::EthTransactionValidatorBuilder, CoinbaseTipOrdering, - EthPooledTransaction, EthTransactionValidator, Pool, PoolConfig, - TransactionValidationTaskExecutor, + EthPooledTransaction, EthTransactionValidator, Pool, TransactionValidationTaskExecutor, }; use revm::inspector::inspectors::GasInspector; // use revm::inspector::inspectors::GasInspector; @@ -89,12 +88,6 @@ impl TracingClient { let transaction_validator = EthTransactionValidatorBuilder::new(provider.clone()) .build_with_tasks(task_executor.clone(), NoopBlobStore::default()); - let tx_pool = Pool::eth_pool( - transaction_validator.clone(), - NoopBlobStore::default(), - PoolConfig::default(), - ); - let tx_pool = reth_transaction_pool::Pool::eth_pool( transaction_validator, NoopBlobStore::default(), diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index 80127b5cd0..c487f3b0e9 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -4,8 +4,8 @@ use alloy_consensus::Header; use alloy_evm::EvmEnv; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256, U256}; use alloy_rpc_types::{ - state::StateOverride, AccessList, AnyReceiptEnvelope, BlockId, BlockNumberOrTag, - BlockOverrides, Log, ReceiptEnvelope, TransactionReceipt, TransactionRequest, + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, ReceiptEnvelope, + TransactionRequest, }; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; use eyre::eyre; @@ -18,7 +18,7 @@ use reth_rpc_eth_types::{EthApiError, EthResult, RevertError, RpcInvalidTransact use revm::{ context::{result::ExecutionResult, Block, BlockEnv, CfgEnv, TxEnv}, database::CacheDB, - Context, Database, DatabaseRef, + Database, DatabaseRef, }; use revm_primitives::TxKind; diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index fcb51b7be8..ea05dbf517 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -7,14 +7,14 @@ use arena::{CallTraceArena, PushTraceKind}; use brontes_types::structured_trace::{TransactionTraceWithLogs, TxTrace}; use config::TracingInspectorConfig; use revm::{ - bytecode::opcode::{self, immediate_size, OpCode}, - context::{result::ExecutionResult, BlockEnv, CfgEnv, ContextTr, Journal, JournalTr, TxEnv}, + bytecode::opcode::{self, OpCode}, + context::{result::ExecutionResult, BlockEnv, CfgEnv, ContextTr, JournalTr, TxEnv}, inspector::{inspectors::GasInspector, Inspector, JournalExt}, interpreter::{ interpreter_types::{ Immediates, InputsTr, Jumps, LoopControl, ReturnData, RuntimeFlag, SubRoutineStack, }, - CallInputs, CallOutcome, CallScheme, CreateInputs, CreateOutcome, Host, InstructionResult, + CallInputs, CallOutcome, CallScheme, CreateInputs, CreateOutcome, InstructionResult, Interpreter, InterpreterResult, }, primitives::hardfork::SpecId, @@ -644,7 +644,7 @@ where DB: Database, { #[inline] - fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn initialize_interp(&mut self, interp: &mut Interpreter, _: &mut EvmContext) { self.gas_inspector.initialize_interp(interp.control.gas()) } @@ -662,7 +662,7 @@ where } } - fn log(&mut self, interp: &mut Interpreter, context: &mut EvmContext, log: Log) { + fn log(&mut self, _: &mut Interpreter, _: &mut EvmContext, log: Log) { let trace_idx = self.last_trace_idx(); let trace = &mut self.traces.arena[trace_idx]; @@ -763,7 +763,7 @@ where fn create_end( &mut self, context: &mut EvmContext, - inputs: &CreateInputs, + _: &CreateInputs, outcome: &mut CreateOutcome, ) { self.gas_inspector.create_end(outcome); @@ -780,7 +780,7 @@ where /// Struct keeping track of internal inspector steps stack. #[derive(Clone, Copy, Debug)] -pub(crate) struct StackStep { +pub struct StackStep { /// Whether this step should be recorded. /// /// This is set to `false` if [OpcodeFilter] is configured and this step's diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index 1ffbaf426e..53e35774de 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -1,7 +1,5 @@ //! Types for representing call trace items. -use std::collections::VecDeque; - pub use alloy_primitives::Log; use alloy_primitives::{Address, Bytes, FixedBytes, LogData, U256}; use alloy_rpc_types_trace::{ @@ -12,7 +10,7 @@ use alloy_rpc_types_trace::{ }, }; use revm::{ - bytecode::opcode::{self, OpCode}, + bytecode::opcode::OpCode, interpreter::{CallScheme, CreateScheme, InstructionResult}, }; @@ -254,39 +252,6 @@ impl CallTraceNode { } } - /// Pushes all steps onto the stack in reverse order - /// so that the first step is on top of the stack - pub(crate) fn push_steps_on_stack<'a>( - &'a self, - stack: &mut VecDeque>, - ) { - stack.extend(self.call_step_stack().into_iter().rev()); - } - - /// Returns a list of all steps in this trace in the order they were - /// executed - /// - /// If the step is a call, the id of the child trace is set. - pub(crate) fn call_step_stack(&self) -> Vec> { - let mut stack = Vec::with_capacity(self.trace.steps.len()); - let mut child_id = 0; - for step in self.trace.steps.iter() { - let mut item = CallTraceStepStackItem { trace_node: self, step, call_child_id: None }; - - // If the opcode is a call, put the child trace on the stack - if step.is_calllike_op() { - // The opcode of this step is a call but it's possible that this step resulted - // in a revert or out of gas error in which case there's no actual child call executed and recorded: - if let Some(call_id) = self.children.get(child_id).copied() { - item.call_child_id = Some(call_id); - child_id += 1; - } - } - stack.push(item); - } - stack - } - /// Returns true if this is a call to a precompile #[inline] pub fn is_precompile(&self) -> bool { @@ -604,16 +569,6 @@ impl From for CallType { } } -pub(crate) struct CallTraceStepStackItem<'a> { - /// The trace node that contains this step - pub(crate) trace_node: &'a CallTraceNode, - /// The step that this stack item represents - pub(crate) step: &'a CallTraceStep, - /// The index of the child call in the CallArena if this step's opcode is a - /// call - pub(crate) call_child_id: Option, -} - /// Ordering enum for calls, logs and steps #[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub enum TraceMemberOrder { @@ -695,79 +650,6 @@ pub struct CallTraceStep { pub decoded: Option, } -// === impl CallTraceStep === - -impl CallTraceStep { - /// Converts this step into a geth [StructLog] - /// - /// This sets memory and stack capture based on the `opts` parameter. - pub(crate) fn convert_to_geth_struct_log(&self, opts: &GethDefaultTracingOptions) -> StructLog { - let mut log = StructLog { - depth: self.depth, - error: self.as_error(), - gas: self.gas_remaining, - gas_cost: self.gas_cost, - op: self.op.to_string(), - pc: self.pc as u64, - refund_counter: (self.gas_refund_counter > 0).then_some(self.gas_refund_counter), - // Filled, if not disabled manually - stack: None, - // Filled in `CallTraceArena::geth_trace` as a result of compounding all slot changes - return_data: None, - // Filled via trace object - storage: None, - // Only enabled if `opts.enable_memory` is true - memory: None, - // This is None in the rpc response - memory_size: None, - }; - - if opts.is_stack_enabled() { - log.stack.clone_from(&self.stack); - } - - if opts.is_memory_enabled() { - log.memory = self.memory.as_ref().map(RecordedMemory::memory_chunks); - } - - log - } - - /// Returns true if the step is a STOP opcode - #[inline] - pub(crate) const fn is_stop(&self) -> bool { - matches!(self.op.get(), opcode::STOP) - } - - /// Returns true if the step is a call operation, any of - /// CALL, CALLCODE, DELEGATECALL, STATICCALL, CREATE, CREATE2 - #[inline] - pub(crate) const fn is_calllike_op(&self) -> bool { - matches!( - self.op.get(), - opcode::CALL - | opcode::DELEGATECALL - | opcode::STATICCALL - | opcode::CREATE - | opcode::CALLCODE - | opcode::CREATE2 - ) - } - - // Returns true if the status code is an error or revert, See - // [InstructionResult::Revert] - #[inline] - pub(crate) const fn is_error(&self) -> bool { - self.status as u8 >= InstructionResult::Revert as u8 - } - - /// Returns the error message if it is an erroneous result. - #[inline] - pub(crate) fn as_error(&self) -> Option { - self.is_error().then(|| format!("{:?}", self.status)) - } -} - /// Represents the source of a storage change - e.g., whether it came /// from an SSTORE or SLOAD instruction. #[allow(clippy::upper_case_acronyms)] @@ -853,25 +735,3 @@ impl AsRef<[u8]> for RecordedMemory { self.as_bytes() } } - -#[cfg(feature = "serde")] -mod opcode_serde { - use serde::{Deserialize, Deserializer, Serializer}; - - use super::OpCode; - - pub(super) fn serialize(op: &OpCode, serializer: S) -> Result - where - S: Serializer, - { - serializer.serialize_u8(op.get()) - } - - pub(super) fn deserialize<'de, D>(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let op = u8::deserialize(deserializer)?; - Ok(OpCode::new(op).unwrap_or_else(|| OpCode::new(revm::bytecode::opcode::INVALID).unwrap())) - } -} diff --git a/crates/reth-tracing-ext/src/reth_tracer/utils.rs b/crates/reth-tracing-ext/src/reth_tracer/utils.rs index 2c484fa2e9..9be69a3d34 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/utils.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/utils.rs @@ -1,9 +1,6 @@ -use alloy_primitives::{hex, Bytes}; +use alloy_primitives::hex; use alloy_sol_types::{ContractError, GenericRevertReason}; -use revm::{ - primitives::{hardfork::SpecId, KECCAK_EMPTY}, - DatabaseRef, -}; +use revm::primitives::hardfork::SpecId; /// Formats memory data into a list of 32-byte hex-encoded chunks. /// @@ -30,29 +27,6 @@ pub(crate) fn gas_used(spec: SpecId, spent: u64, refunded: u64) -> u64 { spent - (refunded).min(spent / refund_quotient) } -/// Loads the code for the given account from the account itself or the database -/// -/// Returns None if the code hash is the KECCAK_EMPTY hash -#[inline] -pub(crate) fn load_account_code( - db: DB, - db_acc: &revm::state::AccountInfo, -) -> Option { - db_acc - .code - .as_ref() - .map(|code| code.original_bytes()) - .or_else(|| { - if db_acc.code_hash == KECCAK_EMPTY { - None - } else { - db.code_by_hash_ref(db_acc.code_hash) - .ok() - .map(|code| code.original_bytes()) - } - }) -} - /// Returns a non-empty revert reason if the output is a revert/error. #[inline] pub(crate) fn maybe_revert_reason(output: &[u8]) -> Option { From 537ddf31b524edffcd1a77a2818be0a05e27856d Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:35:52 -0500 Subject: [PATCH 05/93] made stable --- Cargo.lock | 8 +- crates/brontes-core/src/lib.rs | 1 - crates/brontes-database/brontes-db/src/lib.rs | 4 - crates/brontes-types/src/lib.rs | 5 - .../reth-tracing-ext/src/reth_tracer/types.rs | 124 +++++++++--------- rust-toolchain.toml | 2 +- 6 files changed, 67 insertions(+), 77 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 97aa6ac52e..ded939ec4a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3282,7 +3282,7 @@ dependencies = [ [[package]] name = "db-interfaces" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/db-interfaces#738d9e2581d63eb568774516b153ffe5c927e3ff" +source = "git+https://github.com/SorellaLabs/db-interfaces#f08e9be67afb3f902e26fd4e039edf752cab12ae" dependencies = [ "chrono", "clickhouse", @@ -3308,7 +3308,7 @@ dependencies = [ [[package]] name = "db-interfaces-macros" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/db-interfaces#738d9e2581d63eb568774516b153ffe5c927e3ff" +source = "git+https://github.com/SorellaLabs/db-interfaces#f08e9be67afb3f902e26fd4e039edf752cab12ae" dependencies = [ "dotenv", "itertools 0.11.0", @@ -8004,7 +8004,7 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redefined" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/redefined#d00ea479224a2d50ed525aec93591cf497b3f852" +source = "git+https://github.com/SorellaLabs/redefined#031c3b67ba806baa396fc53652f18f5a8da8cbb6" dependencies = [ "redefined-derive", ] @@ -8012,7 +8012,7 @@ dependencies = [ [[package]] name = "redefined-derive" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/redefined#d00ea479224a2d50ed525aec93591cf497b3f852" +source = "git+https://github.com/SorellaLabs/redefined#031c3b67ba806baa396fc53652f18f5a8da8cbb6" dependencies = [ "futures", "proc-macro2", diff --git a/crates/brontes-core/src/lib.rs b/crates/brontes-core/src/lib.rs index 2ed6269bcf..d878f33149 100644 --- a/crates/brontes-core/src/lib.rs +++ b/crates/brontes-core/src/lib.rs @@ -1,4 +1,3 @@ -#![feature(trait_alias)] pub mod decoding; pub mod errors; pub mod executor; diff --git a/crates/brontes-database/brontes-db/src/lib.rs b/crates/brontes-database/brontes-db/src/lib.rs index c488f37656..7e5e1050a0 100644 --- a/crates/brontes-database/brontes-db/src/lib.rs +++ b/crates/brontes-database/brontes-db/src/lib.rs @@ -1,7 +1,3 @@ -#![feature(trivial_bounds)] -#![feature(associated_type_defaults)] -#![feature(const_trait_impl)] - pub mod clickhouse; pub mod libmdbx; pub mod parquet; diff --git a/crates/brontes-types/src/lib.rs b/crates/brontes-types/src/lib.rs index 29194abc4a..57a6181991 100644 --- a/crates/brontes-types/src/lib.rs +++ b/crates/brontes-types/src/lib.rs @@ -1,8 +1,3 @@ -#![feature(trait_alias)] -#![feature(trivial_bounds)] -#![feature(const_type_id)] -#![feature(core_intrinsics)] -#![feature(const_for)] #![allow(internal_features)] #![allow(clippy::type_complexity)] #![allow(unexpected_cfgs)] diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index 53e35774de..9b00dbc8a5 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -3,7 +3,7 @@ pub use alloy_primitives::Log; use alloy_primitives::{Address, Bytes, FixedBytes, LogData, U256}; use alloy_rpc_types_trace::{ - geth::{CallFrame, CallLogFrame, GethDefaultTracingOptions, StructLog}, + geth::{CallFrame, CallLogFrame}, parity::{ Action, ActionType, CallAction, CallOutput, CallType, CreateAction, CreateOutput, CreationMethod, SelfdestructAction, TraceOutput, TransactionTrace, @@ -25,18 +25,18 @@ pub struct DecodedCallData { /// The function signature. pub signature: String, /// The function arguments. - pub args: Vec, + pub args: Vec, } /// Additional decoded data enhancing the [CallTrace]. #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct DecodedCallTrace { /// Optional decoded label for the call. - pub label: Option, + pub label: Option, /// Optional decoded return data. pub return_data: Option, /// Optional decoded call data. - pub call_data: Option, + pub call_data: Option, } /// A trace of a call with optional decoded data. @@ -185,7 +185,7 @@ impl CallTrace { #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct DecodedCallLog { /// The decoded event name. - pub name: Option, + pub name: Option, /// The decoded log parameters, a vector of the parameter name (e.g. foo) /// and the parameter value (e.g. 0x9d3...45ca). pub params: Option>, @@ -195,9 +195,9 @@ pub struct DecodedCallLog { #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct CallLog { /// The raw log data. - pub raw_log: LogData, + pub raw_log: LogData, /// Optional complementary decoded log data. - pub decoded: DecodedCallLog, + pub decoded: DecodedCallLog, /// The position of the log relative to subcalls within the same trace. pub position: u64, } @@ -207,8 +207,8 @@ impl From for CallLog { fn from(log: Log) -> Self { Self { position: Default::default(), - raw_log: log.data, - decoded: DecodedCallLog { name: None, params: None }, + raw_log: log.data, + decoded: DecodedCallLog { name: None, params: None }, } } } @@ -226,15 +226,15 @@ impl CallLog { #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct CallTraceNode { /// Parent node index in the arena - pub parent: Option, + pub parent: Option, /// Children node indexes in the arena pub children: Vec, /// This node's index in the arena - pub idx: usize, + pub idx: usize, /// The call trace - pub trace: CallTrace, + pub trace: CallTrace, /// Recorded logs, if enabled - pub logs: Vec, + pub logs: Vec, /// Ordering of child calls and logs pub ordering: Vec, } @@ -306,13 +306,13 @@ impl CallTraceNode { | CallKind::DelegateCall | CallKind::AuthCall => TraceOutput::Call(CallOutput { gas_used: self.trace.gas_used, - output: self.trace.output.clone(), + output: self.trace.output.clone(), }), CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => { TraceOutput::Create(CreateOutput { gas_used: self.trace.gas_used, - code: self.trace.output.clone(), - address: self.trace.address, + code: self.trace.output.clone(), + address: self.trace.address, }) } } @@ -322,9 +322,9 @@ impl CallTraceNode { pub fn parity_selfdestruct_action(&self) -> Option { self.is_selfdestruct().then(|| { Action::Selfdestruct(SelfdestructAction { - address: self.trace.selfdestruct_address.unwrap_or_default(), + address: self.trace.selfdestruct_address.unwrap_or_default(), refund_address: self.trace.selfdestruct_refund_target.unwrap_or_default(), - balance: self + balance: self .trace .selfdestruct_transferred_value .unwrap_or_default(), @@ -369,19 +369,19 @@ impl CallTraceNode { | CallKind::CallCode | CallKind::DelegateCall | CallKind::AuthCall => Action::Call(CallAction { - from: self.trace.caller, - to: self.trace.address, - value: self.trace.value, - gas: self.trace.gas_limit, - input: self.trace.data.clone(), + from: self.trace.caller, + to: self.trace.address, + value: self.trace.value, + gas: self.trace.gas_limit, + input: self.trace.data.clone(), call_type: self.kind().into(), }), CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => { Action::Create(CreateAction { - from: self.trace.caller, - value: self.trace.value, - gas: self.trace.gas_limit, - init: self.trace.data.clone(), + from: self.trace.caller, + value: self.trace.value, + gas: self.trace.gas_limit, + init: self.trace.data.clone(), creation_method: self.kind().into(), }) } @@ -391,18 +391,18 @@ impl CallTraceNode { /// Converts this call trace into an _empty_ geth [CallFrame] pub fn geth_empty_call_frame(&self, include_logs: bool) -> CallFrame { let mut call_frame = CallFrame { - typ: self.trace.kind.to_string(), - from: self.trace.caller, - to: Some(self.trace.address), - value: Some(self.trace.value), - gas: U256::from(self.trace.gas_limit), - gas_used: U256::from(self.trace.gas_used), - input: self.trace.data.clone(), - output: (!self.trace.output.is_empty()).then(|| self.trace.output.clone()), - error: None, + typ: self.trace.kind.to_string(), + from: self.trace.caller, + to: Some(self.trace.address), + value: Some(self.trace.value), + gas: U256::from(self.trace.gas_limit), + gas_used: U256::from(self.trace.gas_used), + input: self.trace.data.clone(), + output: (!self.trace.output.is_empty()).then(|| self.trace.output.clone()), + error: None, revert_reason: None, - calls: Default::default(), - logs: Default::default(), + calls: Default::default(), + logs: Default::default(), }; if self.trace.kind.is_static_call() { @@ -432,9 +432,9 @@ impl CallTraceNode { .logs .iter() .map(|log| CallLogFrame { - address: Some(self.execution_address()), - topics: Some(log.raw_log.topics().to_vec()), - data: Some(log.raw_log.data.clone()), + address: Some(self.execution_address()), + topics: Some(log.raw_log.topics().to_vec()), + data: Some(log.raw_log.data.clone()), position: Some(log.position), }) .collect(); @@ -584,9 +584,9 @@ pub enum TraceMemberOrder { #[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct DecodedInternalCall { /// Name of the internal function. - pub func_name: String, + pub func_name: String, /// Input arguments of the internal function. - pub args: Option>, + pub args: Option>, /// Optional decoded return data. pub return_data: Option>, } @@ -609,45 +609,45 @@ pub enum DecodedTraceStep { pub struct CallTraceStep { // Fields filled in `step` /// Call depth - pub depth: u64, + pub depth: u64, /// Program counter before step execution - pub pc: usize, + pub pc: usize, /// Code section index before step execution - pub code_section_idx: usize, + pub code_section_idx: usize, /// Opcode to be executed - pub op: OpCode, + pub op: OpCode, /// Current contract address - pub contract: Address, + pub contract: Address, /// Stack before step execution - pub stack: Option>, + pub stack: Option>, /// The new stack items placed by this step if any - pub push_stack: Option>, + pub push_stack: Option>, /// Memory before step execution. /// /// This will be `None` only if memory capture is disabled. - pub memory: Option, + pub memory: Option, /// Returndata before step execution - pub returndata: Bytes, + pub returndata: Bytes, /// Remaining gas before step execution - pub gas_remaining: u64, + pub gas_remaining: u64, /// Gas refund counter before step execution pub gas_refund_counter: u64, /// Total gas used before step execution - pub gas_used: u64, + pub gas_used: u64, // Fields filled in `step_end` /// Gas cost of step execution - pub gas_cost: u64, + pub gas_cost: u64, /// Change of the contract state after step execution (effect of the /// SLOAD/SSTORE instructions) - pub storage_change: Option, + pub storage_change: Option, /// Final status of the step /// /// This is set after the step was executed. - pub status: InstructionResult, + pub status: InstructionResult, /// Immediate bytes of the step - pub immediate_bytes: Option, + pub immediate_bytes: Option, /// Optional complementary decoded step data. - pub decoded: Option, + pub decoded: Option, } /// Represents the source of a storage change - e.g., whether it came @@ -671,13 +671,13 @@ pub enum StorageChangeReason { #[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct StorageChange { /// key of the storage slot - pub key: U256, + pub key: U256, /// Current value of the storage slot - pub value: U256, + pub value: U256, /// The previous value of the storage slot, if any pub had_value: Option, /// How this storage was accessed - pub reason: StorageChangeReason, + pub reason: StorageChangeReason, } /// Represents the memory captured during execution diff --git a/rust-toolchain.toml b/rust-toolchain.toml index ed14199ee5..d6e88e4a05 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2025-02-26" +channel = "1.85.0" components = ["rustfmt"] targets = ["aarch64-apple-darwin", "x86_64-unknown-linux-gnu"] From 930b16c7a14c04f5152194ff1db6e324cf8f1028 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:38:59 -0500 Subject: [PATCH 06/93] updated ci --- .github/workflows/ci.yml | 46 +++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68c09a02ab..15c3faa9cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,7 @@ on: push: branches: - main + - reth-patch pull_request: branches: [main] @@ -14,14 +15,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly + + - uses: dtolnay/rust-toolchain@stable with: + toolchain: 1.85.0 components: clippy,rustfmt - toolchain: nightly + - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - key: "clippy-nightly" + key: "clippy-stable" - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" shell: bash @@ -40,22 +43,23 @@ jobs: timeout-minutes: 30 steps: - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@nightly + + - uses: dtolnay/rust-toolchain@stable with: + toolchain: 1.85.0 components: clippy,rustfmt - toolchain: nightly + - uses: Swatinem/rust-cache@v2 with: - key: "buildfmt-nightly" + key: "buildfmt-stable" cache-on-failure: true - # allow for downloads - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" shell: bash - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" shell: bash - - name: "build nightly" + - name: "build stable" run: cargo build --workspace --all-features env: RUSTFLAGS: -D warnings @@ -75,12 +79,13 @@ jobs: - name: Get branch names. id: branch-names uses: tj-actions/branch-names@v8 + - name: Init ssh config run: | - mkdir ~/.ssh/ - echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion - chmod 600 ~/.ssh/bastion - echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server + mkdir ~/.ssh/ + echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion + chmod 600 ~/.ssh/bastion + echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server chmod 600 ~/.ssh/brontes_server echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config @@ -123,12 +128,13 @@ jobs: - name: Get branch names. id: branch-names uses: tj-actions/branch-names@v8 + - name: Init ssh config run: | - mkdir ~/.ssh/ - echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion - chmod 600 ~/.ssh/bastion - echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server + mkdir ~/.ssh/ + echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion + chmod 600 ~/.ssh/bastion + echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server chmod 600 ~/.ssh/brontes_server echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config @@ -168,10 +174,10 @@ jobs: steps: - name: Init ssh config run: | - mkdir ~/.ssh/ - echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion - chmod 600 ~/.ssh/bastion - echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server + mkdir ~/.ssh/ + echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion + chmod 600 ~/.ssh/bastion + echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server chmod 600 ~/.ssh/brontes_server echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config From 02965264339fbecb534bf1802653afb59d3a7da5 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:53:17 -0500 Subject: [PATCH 07/93] clippy --- Cargo.lock | 6 +- Cargo.toml | 2 +- crates/bin/Cargo.toml | 7 +- .../brontes-db/src/clickhouse/db_client.rs | 99 +++++++++---------- .../brontes-db/src/libmdbx/mod.rs | 10 +- .../src/protocols/uniswap_v3/mod.rs | 54 +++++----- crates/reth-tracing-ext/src/lib.rs | 36 +++---- 7 files changed, 111 insertions(+), 103 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ded939ec4a..183573faa0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1465,7 +1465,7 @@ dependencies = [ [[package]] name = "async-rate-limiter" version = "0.1.0" -source = "git+https://github.com/jnoorchashm37/async-rate-limiter#08ae53b19cb9db2496c6fbcd0691a2361e6ed477" +source = "git+https://github.com/jnoorchashm37/async-rate-limiter#2167c9d2ddc010cd99251407b3db0acc3509d3e1" dependencies = [ "tokio", ] @@ -8004,7 +8004,7 @@ checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" [[package]] name = "redefined" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/redefined#031c3b67ba806baa396fc53652f18f5a8da8cbb6" +source = "git+https://github.com/jnoorchashm37/redefined#de906bb869bd588566b4078f9dc237448ecca9b8" dependencies = [ "redefined-derive", ] @@ -8012,7 +8012,7 @@ dependencies = [ [[package]] name = "redefined-derive" version = "0.1.0" -source = "git+https://github.com/SorellaLabs/redefined#031c3b67ba806baa396fc53652f18f5a8da8cbb6" +source = "git+https://github.com/jnoorchashm37/redefined#de906bb869bd588566b4078f9dc237448ecca9b8" dependencies = [ "futures", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index ab58f1e17b..252b281d7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -184,7 +184,7 @@ rkyv = { git = "https://github.com/rkyv/rkyv.git", branch = "0.7-hashbrown-0.14" "validation", ] } num_cpus = "1.16.0" -redefined = { git = "https://github.com/SorellaLabs/redefined" } +redefined = { git = "https://github.com/jnoorchashm37/redefined" } bytes = "1.5" bitflags = "2.5.0" diff --git a/crates/bin/Cargo.toml b/crates/bin/Cargo.toml index 3f7af1e259..8b0ad7209f 100644 --- a/crates/bin/Cargo.toml +++ b/crates/bin/Cargo.toml @@ -127,7 +127,12 @@ const_format = { version = "0.2.32", features = ["rust_1_64"] } vergen = { version = "8.0.0", features = ["build", "cargo", "git", "gitcl"] } [features] -default = ["brontes-core/default", "brontes-classifier/default", "jemalloc"] +default = [ + "brontes-core/default", + "brontes-classifier/default", + "jemalloc", + "sorella-server", +] jemalloc = ["brontes-metrics/jemalloc"] jemalloc-prof = ["jemalloc", "tikv-jemallocator/profiling"] diff --git a/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs b/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs index be9163619f..094c0833cf 100644 --- a/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs +++ b/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs @@ -1,7 +1,9 @@ -use std::{fmt::Debug, str::FromStr}; +use std::fmt::Debug; +use std::str::FromStr; use ::clickhouse::DbRow; use alloy_primitives::Address; +use alloy_primitives::{BlockHash, TxHash}; use async_rate_limiter::{RateLimiter, RateLimiterBuilder, TimeUnit}; use backon::{ExponentialBuilder, Retryable}; #[cfg(feature = "local-clickhouse")] @@ -40,7 +42,6 @@ use db_interfaces::{ }; use eyre::Result; use itertools::Itertools; -use reth_primitives::{BlockHash, TxHash}; use serde::{Deserialize, Serialize}; use tokio::{sync::mpsc::UnboundedSender, time::Duration}; use tracing::{debug, error, warn}; @@ -64,12 +65,12 @@ const MAX_MARKOUT_TIME: f64 = 300.0; #[derive(Clone)] pub struct Clickhouse { - pub tip: bool, - pub run_id: u64, - pub client: ClickhouseClient, - pub rate_limiter: RateLimiter, + pub tip: bool, + pub run_id: u64, + pub client: ClickhouseClient, + pub rate_limiter: RateLimiter, pub cex_download_config: CexDownloadConfig, - pub buffered_insert_tx: Option>>, + pub buffered_insert_tx: Option>>, } impl Clickhouse { @@ -389,7 +390,7 @@ impl Clickhouse { mut tx_hashes_in_block: Vec, ) -> eyre::Result> { if tx_hashes_in_block.is_empty() { - return Ok(Vec::new()) + return Ok(Vec::new()); } let public_txs = self @@ -471,7 +472,7 @@ impl ClickhouseHandle for Clickhouse { if cex_quotes_for_block.is_empty() { tracing::warn!("loaded zero cex quotes. check backend"); - return Err(eyre::eyre!("error loading cex quotes")) + return Err(eyre::eyre!("error loading cex quotes")); } let cex_quotes = cex_quotes_for_block.remove(0); @@ -827,7 +828,7 @@ impl Clickhouse { if block_times.is_empty() { return Err(DatabaseError::from(clickhouse::error::Error::Custom( "Nothing to query, block times are empty".to_string(), - ))) + ))); } Ok(match range_or_arbitrary { CexRangeOrArbitrary::Range(..) => { @@ -990,11 +991,11 @@ where #[derive(Debug, Serialize, Deserialize, clickhouse::Row)] pub struct ClickhouseCritTableCount { - pub pool_creation: u64, + pub pool_creation: u64, pub address_to_protocol: u64, - pub tokens: u64, - pub builder: u64, - pub address_meta: u64, + pub tokens: u64, + pub builder: u64, + pub address_meta: u64, } impl ClickhouseCritTableCount { @@ -1109,7 +1110,7 @@ mod tests { let test_db = Clickhouse::new_default(Some(0)).await; let cex_quotes_for_block = test_db .get_cex_prices(CexRangeOrArbitrary::Timestamp { - block_number: 19000000, + block_number: 19000000, block_timestamp: 1705173443, }) .await @@ -1124,7 +1125,7 @@ mod tests { let test_db = Clickhouse::new_default(Some(0)).await; let cex_trades_for_block = test_db .get_cex_trades(CexRangeOrArbitrary::Timestamp { - block_number: 19000000, + block_number: 19000000, block_timestamp: 1705173443, }) .await @@ -1153,8 +1154,8 @@ mod tests { let case0 = DexQuotesWithBlockNumber { block_number: Default::default(), - tx_idx: Default::default(), - quote: Some(case0_map), + tx_idx: Default::default(), + quote: Some(case0_map), }; db.insert_one::(&case0) @@ -1218,41 +1219,39 @@ mod tests { async fn cex_dex_quotes(db: &ClickhouseTestClient) { let swap = NormalizedSwap { - protocol: Protocol::UniswapV2, - from: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), - recipient: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), - pool: hex!("88e6a0c2ddd26feeb64f039a2c41296fcb3f5640").into(), - token_in: TokenInfoWithAddress::weth(), - token_out: TokenInfoWithAddress::usdc(), - amount_in: Rational::from_unsigneds( + protocol: Protocol::UniswapV2, + from: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), + recipient: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), + pool: hex!("88e6a0c2ddd26feeb64f039a2c41296fcb3f5640").into(), + token_in: TokenInfoWithAddress::weth(), + token_out: TokenInfoWithAddress::usdc(), + amount_in: Rational::from_unsigneds( 3122757495341445439573u128, 1000000000000000000u128, ), - amount_out: Rational::from_unsigneds(1254253571443u64, 250000u64), + amount_out: Rational::from_unsigneds(1254253571443u64, 250000u64), trace_index: 2, - msg_value: Uint::from(0), + msg_value: Uint::from(0), }; let case0 = CexDexQuote { - tx_hash: hex!( - "ba217d10561a1cd6c52830dcc673886901e69ddb4db5e50c83f39ff0cfd14377" - ) - .into(), - block_timestamp: 1694364587, - block_number: 18107273, - swaps: vec![swap], + tx_hash: hex!("ba217d10561a1cd6c52830dcc673886901e69ddb4db5e50c83f39ff0cfd14377") + .into(), + block_timestamp: 1694364587, + block_number: 18107273, + swaps: vec![swap], instant_mid_price: vec![0.0006263290093187073], - t2_mid_price: vec![0.0006263290093187073], - t12_mid_price: vec![0.0006263290093187073], - t30_mid_price: vec![0.0006263290093187073], - t60_mid_price: vec![0.0006263290093187073], - t300_mid_price: vec![0.0006263290093187073], - exchange: CexExchange::Binance, - pnl: 12951.829205242997, - gas_details: GasDetails { - coinbase_transfer: Some(11419369165096275986), - priority_fee: 0, - gas_used: 271686, + t2_mid_price: vec![0.0006263290093187073], + t12_mid_price: vec![0.0006263290093187073], + t30_mid_price: vec![0.0006263290093187073], + t60_mid_price: vec![0.0006263290093187073], + t300_mid_price: vec![0.0006263290093187073], + exchange: CexExchange::Binance, + pnl: 12951.829205242997, + gas_details: GasDetails { + coinbase_transfer: Some(11419369165096275986), + priority_fee: 0, + gas_used: 271686, effective_gas_price: 8875282233, }, }; @@ -1352,20 +1351,20 @@ mod tests { async fn pools(db: &ClickhouseTestClient) { let case0 = ProtocolInfoClickhouse { - protocol: "NONE".to_string(), + protocol: "NONE".to_string(), protocol_subtype: "NONE".to_string(), - address: "0x229b8325bb9Ac04602898B7e8989998710235d5f" + address: "0x229b8325bb9Ac04602898B7e8989998710235d5f" .to_string() .into(), - tokens: vec!["0x229b8325bb9Ac04602898B7e8989998710235d5f" + tokens: vec!["0x229b8325bb9Ac04602898B7e8989998710235d5f" .to_string() .into()], - curve_lp_token: Some( + curve_lp_token: Some( "0x229b8325bb9Ac04602898B7e8989998710235d5f" .to_string() .into(), ), - init_block: 0, + init_block: 0, }; db.insert_one::(&case0).await.unwrap(); diff --git a/crates/brontes-database/brontes-db/src/libmdbx/mod.rs b/crates/brontes-database/brontes-db/src/libmdbx/mod.rs index 9dc529d89e..7a613e3918 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/mod.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/mod.rs @@ -187,16 +187,16 @@ impl Libmdbx { let tx = self.ro_tx()?; let mut cur = i(start.clone(), &tx)?; while time.elapsed() < Duration::from_secs(30) { - let call_res = f(&mut cur)?; - match call_res { - Some(val) => res.push(val), - None => return Ok(res), + if let Some(call_res) = f(&mut cur)? { + res.push(call_res) + } else { + return Ok(res); } } if let Some(key) = cur.prev()? { start = Some(key.0); } else { - return Ok(res) + return Ok(res); } tracing::info!("recycling tx on long lived read"); tx.commit()?; diff --git a/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs index 2a6a4427ff..dffe5883c4 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs @@ -125,18 +125,18 @@ pub const MINT_EVENT_SIGNATURE: B256 = FixedBytes([ #[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)] pub struct UniswapV3Pool { - pub address: Address, - pub token_a: Address, + pub address: Address, + pub token_a: Address, pub token_a_decimals: u8, - pub token_b: Address, + pub token_b: Address, pub token_b_decimals: u8, - pub liquidity: u128, - pub sqrt_price: U256, - pub fee: u32, - pub tick: i32, - pub tick_spacing: i32, - pub tick_bitmap: FastHashMap, - pub ticks: FastHashMap, + pub liquidity: u128, + pub sqrt_price: U256, + pub fee: u32, + pub tick: i32, + pub tick_spacing: i32, + pub tick_bitmap: FastHashMap, + pub ticks: FastHashMap, // non v3 native state pub reserve_0: U256, @@ -146,8 +146,8 @@ pub struct UniswapV3Pool { #[derive(Debug, Clone, Default, Serialize, Deserialize, Hash, PartialEq, Eq)] pub struct Info { pub liquidity_gross: u128, - pub liquidity_net: i128, - pub initialized: bool, + pub liquidity_net: i128, + pub initialized: bool, } impl Info { @@ -190,7 +190,7 @@ impl UpdatableProtocol for UniswapV3Pool { if self.liquidity <= 10_000 { return Err(ArithmeticError::UniswapV3MathError( uniswap_v3_math::error::UniswapV3MathError::LiquidityTooLow(self.liquidity), - )) + )); } let tick = uniswap_v3_math::tick_math::get_tick_at_sqrt_ratio(self.sqrt_price)?; @@ -249,7 +249,7 @@ impl UniswapV3Pool { pool.populate_data(Some(block_number), middleware).await?; if !pool.data_is_populated() { - return Err(AmmError::NoStateError(pair_address)) + return Err(AmmError::NoStateError(pair_address)); } Ok(pool) @@ -263,7 +263,7 @@ impl UniswapV3Pool { provider: Arc, ) { if tick_amount.is_negative() { - return + return; } if self.tick == 0 { @@ -294,7 +294,7 @@ impl UniswapV3Pool { .0; for tick in ticks { - self.update_tick(tick.tick, tick.liquidityNet, tick.initialized); + self.update_tick(tick.tick.as_i32(), tick.liquidityNet, tick.initialized); } } @@ -345,8 +345,8 @@ impl UniswapV3Pool { #[cfg(feature = "uni-v3-ticks")] self.modify_position( - burn_event.tickLower, - burn_event.tickUpper, + burn_event.tickLower.as_i32(), + burn_event.tickUpper.as_i32(), -(burn_event.amount as i128), ); @@ -360,7 +360,11 @@ impl UniswapV3Pool { self.reserve_1 += mint_event.amount1; #[cfg(feature = "uni-v3-ticks")] - self.modify_position(mint_event.tickLower, mint_event.tickUpper, mint_event.amount as i128); + self.modify_position( + mint_event.tickLower.as_i32(), + mint_event.tickUpper.as_i32(), + mint_event.amount as i128, + ); Ok(()) } @@ -496,12 +500,12 @@ impl UniswapV3Pool { #[derive(Default)] pub struct StepComputations { pub sqrt_price_start_x_96: U256, - pub tick_next: i32, - pub initialized: bool, - pub sqrt_price_next_x96: U256, - pub amount_in: U256, - pub amount_out: U256, - pub fee_amount: U256, + pub tick_next: i32, + pub initialized: bool, + pub sqrt_price_next_x96: U256, + pub amount_in: U256, + pub amount_out: U256, + pub fee_amount: U256, } pub struct Tick { diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index 5d048a15d4..39fb82bd27 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -58,8 +58,8 @@ pub type RethTxPool = Pool< #[derive(Debug, Clone)] pub struct TracingClient { - pub api: RethApi, - pub trace: RethTrace, + pub api: RethApi, + pub trace: RethTrace, pub provider_factory: RethProviderFactory, } impl TracingClient { @@ -134,23 +134,23 @@ impl TracingClient { block_id: BlockId, ) -> EthResult>> { let insp_setup = || BrontesTracingInspector { - config: TracingInspectorConfig { - record_logs: true, - record_steps: false, - record_state_diff: false, - record_stack_snapshots: StackSnapshotType::None, - record_memory_snapshots: false, - exclude_precompile_calls: true, + config: TracingInspectorConfig { + record_logs: true, + record_steps: false, + record_state_diff: false, + record_stack_snapshots: StackSnapshotType::None, + record_memory_snapshots: false, + exclude_precompile_calls: true, record_returndata_snapshots: false, - record_opcodes_filter: None, - record_immediate_bytes: false, + record_opcodes_filter: None, + record_immediate_bytes: false, }, - traces: CallTraceArena::default(), - trace_stack: Vec::new(), - step_stack: Vec::new(), + traces: CallTraceArena::default(), + trace_stack: Vec::new(), + step_stack: Vec::new(), last_call_return_data: None, - gas_inspector: GasInspector::default(), - spec_id: None, + gas_inspector: GasInspector::default(), + spec_id: None, }; let t = @@ -172,7 +172,7 @@ impl TracingClient { #[derive(Debug, Clone, Copy)] pub struct StackStep { _trace_idx: usize, - _step_idx: usize, + _step_idx: usize, } /// Opens up an existing database at the specified path. @@ -182,9 +182,9 @@ pub fn init_db + Debug>(path: P) -> eyre::Result { #[cfg(all(test, feature = "local-reth"))] pub mod test { + use alloy_rpc_types::{BlockId, BlockNumberOrTag}; use brontes_core::test_utils::TraceLoader; use futures::future::join_all; - use reth_primitives::{BlockId, BlockNumberOrTag}; #[brontes_macros::test] async fn ensure_traces_eq() { From 1370e9d1c94a1f8f1ee54e72b4b09f90ec223334 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:53:28 -0500 Subject: [PATCH 08/93] clippy --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15c3faa9cd..b6004b2257 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,6 @@ on: push: branches: - main - - reth-patch pull_request: branches: [main] From 69c38f4172a3146e6ca86cbd924f4d63f80810e3 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:54:20 -0500 Subject: [PATCH 09/93] clippy --- Cargo.lock | 2 +- Cargo.toml | 2 +- crates/brontes-database/brontes-db/Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 183573faa0..967d6490d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2038,7 +2038,7 @@ dependencies = [ "criterion", "dashmap 5.5.3", "db-interfaces", - "derive_more 0.99.19", + "derive_more 2.0.1", "dotenv", "eyre", "filesize", diff --git a/Cargo.toml b/Cargo.toml index 252b281d7a..6e0caef383 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -179,7 +179,7 @@ toml = "0.8.2" auto_impl = "1.1.0" strum = "0.25.0" serial_test = "2.0.0" -derive_more = { version = "2.0", default-features = false } +derive_more = { version = "2.0", features = ["full"] } rkyv = { git = "https://github.com/rkyv/rkyv.git", branch = "0.7-hashbrown-0.14", features = [ "validation", ] } diff --git a/crates/brontes-database/brontes-db/Cargo.toml b/crates/brontes-database/brontes-db/Cargo.toml index 2f0f6bc606..e42971aa3f 100644 --- a/crates/brontes-database/brontes-db/Cargo.toml +++ b/crates/brontes-database/brontes-db/Cargo.toml @@ -105,7 +105,7 @@ parking_lot.workspace = true dotenv.workspace = true bincode = "2.0.0-rc.3" redefined.workspace = true -derive_more = "0.99.17" +derive_more.workspace = true paste = "1.0.14" petgraph = "0.6.4" itertools = "0.12.0" From 3a39bfc0bd56d2ef0fd8690d3597835f35a3a2a2 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:55:49 -0500 Subject: [PATCH 10/93] clippy --- crates/brontes-pricing/src/graphs/subgraph.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/crates/brontes-pricing/src/graphs/subgraph.rs b/crates/brontes-pricing/src/graphs/subgraph.rs index ee9806d938..ef3bf511f4 100644 --- a/crates/brontes-pricing/src/graphs/subgraph.rs +++ b/crates/brontes-pricing/src/graphs/subgraph.rs @@ -218,10 +218,10 @@ impl PairSubGraph { pub fn has_stale_liquidity(&self, state: &FastHashMap) -> bool { self.graph .edge_weights() - .map(|weight| { + .any(|weight| { weight .iter() - .map(|edge| { + .any(|edge| { let (r0, r1) = state.get(&edge.pool_addr).unwrap().tvl(edge.token_0); let tvl_added = r0 + r1; let start_tvl = self.start_nodes_liq.get(&edge.pool_addr).unwrap(); @@ -232,9 +232,7 @@ impl PairSubGraph { false } }) - .any(|n| n) }) - .any(|n| n) } // returns list of pools we already have so we can derement there state tracker. From f480560b4a2c7f97a57afd0977aa19a1b0eabdaa Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:57:00 -0500 Subject: [PATCH 11/93] clippy --- .../brontes-core/src/decoding/dyn_decode.rs | 28 +++++++++---------- crates/reth-tracing-ext/src/provider.rs | 5 ++-- .../src/reth_tracer/inspector.rs | 2 +- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/crates/brontes-core/src/decoding/dyn_decode.rs b/crates/brontes-core/src/decoding/dyn_decode.rs index 75c9addff9..c6a213d97f 100644 --- a/crates/brontes-core/src/decoding/dyn_decode.rs +++ b/crates/brontes-core/src/decoding/dyn_decode.rs @@ -69,8 +69,8 @@ pub fn decode_input_with_abi( return Ok(Some(DecodedCallData { function_name: function.name.clone(), - call_data: input_results, - return_data: output, + call_data: input_results, + return_data: output, })); } } @@ -87,42 +87,42 @@ fn decode_params( DynSolValue::Bool(bool) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Bool.sol_type_name().to_string(), - value: bool.to_string(), + value: bool.to_string(), }), DynSolValue::Int(i, size) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Int(size).to_string(), - value: i.to_string(), + value: i.to_string(), }), DynSolValue::Uint(i, size) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Uint(size).to_string(), - value: i.to_string(), + value: i.to_string(), }), DynSolValue::FixedBytes(word, size) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::FixedBytes(size).to_string(), - value: word.to_string(), + value: word.to_string(), }), DynSolValue::Address(address) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Address.to_string(), - value: format!("{:?}", address), + value: format!("{:?}", address), }), DynSolValue::Function(function) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Function.to_string(), - value: function.to_string(), + value: function.to_string(), }), DynSolValue::Bytes(bytes) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Bytes.to_string(), - value: alloy_primitives::Bytes::from(bytes).to_string(), + value: alloy_primitives::Bytes::from(bytes).to_string(), }), DynSolValue::String(string) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::String.to_string(), - value: string, + value: string, }), DynSolValue::Array(ref array) => { let string_val = value_parse(array, false); @@ -130,7 +130,7 @@ fn decode_params( output.push(DecodedParams { field_name: field_name.remove(0), field_type: type_name, - value: string_val, + value: string_val, }) } DynSolValue::FixedArray(ref fixed_array) => { @@ -139,7 +139,7 @@ fn decode_params( output.push(DecodedParams { field_name: field_name.remove(0), field_type: type_name, - value: string_val, + value: string_val, }) } DynSolValue::Tuple(ref tuple) => { @@ -148,10 +148,9 @@ fn decode_params( output.push(DecodedParams { field_name: field_name.remove(0), field_type: type_name, - value: string_val, + value: string_val, }) } - DynSolValue::CustomStruct { .. } => unreachable!("only eip-712"), } } @@ -172,7 +171,6 @@ fn value_parse(sol_value: &[DynSolValue], tuple: bool) -> String { DynSolValue::Tuple(t) => value_parse(t, true), DynSolValue::Array(a) => value_parse(a, false), DynSolValue::FixedArray(a) => value_parse(a, false), - DynSolValue::CustomStruct { .. } => unreachable!("only eip-712"), }) .fold(ty, |a, b| a + "," + b.as_str()); diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index c487f3b0e9..ccf439c4a1 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -208,8 +208,7 @@ pub(crate) fn create_txn_env( // Ensure that if versioned hashes are set, they're not empty if request .blob_versioned_hashes - .as_ref() - .map_or(false, |hashes| hashes.is_empty()) + .as_ref().is_some_and(|hashes| hashes.is_empty()) { return Err(RpcInvalidTransactionError::BlobTransactionMissingBlobHashes.into()) } @@ -244,7 +243,7 @@ pub(crate) fn create_txn_env( block_env.blob_gasprice().map(U256::from), )?; - let gas_limit = gas.unwrap_or_else(|| block_env.gas_limit.min(u64::MAX)); + let gas_limit = gas.unwrap_or_else(|| block_env.gas_limit); let env = TxEnv { gas_limit: gas_limit .try_into() diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index ea05dbf517..bf4de92f56 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -216,7 +216,7 @@ impl BrontesTracingInspector { 0, push_kind, CallTrace { - depth: context.journaled_state.depth() as usize, + depth: context.journaled_state.depth(), address, kind, data: input_data, From 5587d3aa68bc12c507ff542780cf7c4fabda9d93 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:58:01 -0500 Subject: [PATCH 12/93] clippy --- crates/brontes-database/libmdbx-rs/src/codec.rs | 2 +- crates/brontes-database/libmdbx-rs/src/cursor.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/brontes-database/libmdbx-rs/src/codec.rs b/crates/brontes-database/libmdbx-rs/src/codec.rs index 1b6c7d78ad..14eb3a9e93 100644 --- a/crates/brontes-database/libmdbx-rs/src/codec.rs +++ b/crates/brontes-database/libmdbx-rs/src/codec.rs @@ -24,7 +24,7 @@ pub trait TableObject: Sized { } } -impl<'tx> TableObject for Cow<'tx, [u8]> { +impl TableObject for Cow<'_, [u8]> { fn decode(_: &[u8]) -> Result { unreachable!() } diff --git a/crates/brontes-database/libmdbx-rs/src/cursor.rs b/crates/brontes-database/libmdbx-rs/src/cursor.rs index 5a5c1a2825..7411cc1e32 100644 --- a/crates/brontes-database/libmdbx-rs/src/cursor.rs +++ b/crates/brontes-database/libmdbx-rs/src/cursor.rs @@ -556,7 +556,7 @@ where }, } -impl<'cur, K, Key, Value> IntoIter<'cur, K, Key, Value> +impl IntoIter<'_, K, Key, Value> where K: TransactionKind, Key: TableObject, @@ -572,7 +572,7 @@ where } } -impl<'cur, K, Key, Value> Iterator for IntoIter<'cur, K, Key, Value> +impl Iterator for IntoIter<'_, K, Key, Value> where K: TransactionKind, Key: TableObject, @@ -673,7 +673,7 @@ where } } -impl<'cur, K, Key, Value> Iterator for Iter<'cur, K, Key, Value> +impl Iterator for Iter<'_, K, Key, Value> where K: TransactionKind, Key: TableObject, @@ -768,7 +768,7 @@ where } } -impl<'cur, K, Key, Value> fmt::Debug for IterDup<'cur, K, Key, Value> +impl fmt::Debug for IterDup<'_, K, Key, Value> where K: TransactionKind, Key: TableObject, From 9f372fdaa69bbe2a95ad4330317c26421a04f94f Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 14:59:17 -0500 Subject: [PATCH 13/93] clippy --- crates/brontes-types/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/brontes-types/Cargo.toml b/crates/brontes-types/Cargo.toml index d0885374bb..21631aaf0e 100644 --- a/crates/brontes-types/Cargo.toml +++ b/crates/brontes-types/Cargo.toml @@ -100,7 +100,7 @@ humansize = "2.1.3" # hashing ahash = "0.8.11" once_cell = "1.19.0" -reqwest.workspace = true +reqwest = { workspace = true, features = ["json"] } [dev-dependencies] dotenv.workspace = true From 871f66d4e35010c411002a2742e28bf9fd815d48 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:00:03 -0500 Subject: [PATCH 14/93] clippy --- .../brontes-types/src/db/address_metadata.rs | 9 +++------ .../brontes-types/src/db/cex/trades/utils.rs | 6 +++--- crates/brontes-types/src/tree/root.rs | 3 +-- crates/brontes-types/src/tree/tx_info.rs | 18 ++++++------------ 4 files changed, 13 insertions(+), 23 deletions(-) diff --git a/crates/brontes-types/src/db/address_metadata.rs b/crates/brontes-types/src/db/address_metadata.rs index e29ad7625d..877175254d 100644 --- a/crates/brontes-types/src/db/address_metadata.rs +++ b/crates/brontes-types/src/db/address_metadata.rs @@ -30,8 +30,7 @@ pub struct AddressMetadata { impl AddressMetadata { pub fn is_verified(&self) -> bool { self.contract_info - .as_ref() - .map_or(false, |c| c.verified_contract.unwrap_or(false)) + .as_ref().is_some_and(|c| c.verified_contract.unwrap_or(false)) } pub fn describe(&self) -> Option { @@ -95,14 +94,12 @@ impl AddressMetadata { fn is_cex(&self) -> bool { self.address_type - .as_deref() - .map_or(false, |t| t.eq_ignore_ascii_case("cex")) + .as_deref().is_some_and(|t| t.eq_ignore_ascii_case("cex")) } fn is_aggregator(&self) -> bool { self.address_type - .as_deref() - .map_or(false, |t| t.eq_ignore_ascii_case("aggregator")) + .as_deref().is_some_and(|t| t.eq_ignore_ascii_case("aggregator")) } fn is_cex_exchange(&self) -> bool { diff --git a/crates/brontes-types/src/db/cex/trades/utils.rs b/crates/brontes-types/src/db/cex/trades/utils.rs index fff3c620b1..fae30df597 100644 --- a/crates/brontes-types/src/db/cex/trades/utils.rs +++ b/crates/brontes-types/src/db/cex/trades/utils.rs @@ -262,7 +262,7 @@ pub struct TimeBasketQueue<'a> { trades: Vec, } -impl<'a> TimeBasketQueue<'a> { +impl TimeBasketQueue<'_> { pub(crate) fn new( trade_data: OptimisticTradeData, block_timestamp: u64, @@ -394,8 +394,8 @@ impl<'a> TimeBasketQueue<'a> { } } -unsafe impl<'a> Send for CexTradePtr<'a> {} -unsafe impl<'a> Sync for CexTradePtr<'a> {} +unsafe impl Send for CexTradePtr<'_> {} +unsafe impl Sync for CexTradePtr<'_> {} impl<'ptr> CexTradePtr<'ptr> { pub(crate) fn new(raw: &CexTrades) -> Self { diff --git a/crates/brontes-types/src/tree/root.rs b/crates/brontes-types/src/tree/root.rs index a327420069..ef2a5419cc 100644 --- a/crates/brontes-types/src/tree/root.rs +++ b/crates/brontes-types/src/tree/root.rs @@ -165,8 +165,7 @@ impl Root { || is_classified || emits_logs && searcher_contract_info.is_none() || contract_type - .as_ref() - .map_or(false, |ct| !ct.could_be_mev_contract()) + .as_ref().is_some_and(|ct| !ct.could_be_mev_contract()) { return Ok(TxInfo::new( block_number, diff --git a/crates/brontes-types/src/tree/tx_info.rs b/crates/brontes-types/src/tree/tx_info.rs index bbb628ceb8..445c51a8c5 100644 --- a/crates/brontes-types/src/tree/tx_info.rs +++ b/crates/brontes-types/src/tree/tx_info.rs @@ -106,12 +106,10 @@ impl TxInfo { pub fn is_searcher_of_type(&self, mev_type: MevType) -> bool { self.searcher_eoa_info - .as_ref() - .map_or(false, |info| info.is_searcher_of_type(mev_type)) + .as_ref().is_some_and(|info| info.is_searcher_of_type(mev_type)) || self .searcher_contract_info - .as_ref() - .map_or(false, |info| info.is_searcher_of_type(mev_type)) + .as_ref().is_some_and(|info| info.is_searcher_of_type(mev_type)) } pub fn is_searcher_of_type_with_count_threshold( @@ -120,22 +118,18 @@ impl TxInfo { threshold: u64, ) -> bool { self.searcher_eoa_info - .as_ref() - .map_or(false, |info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) + .as_ref().is_some_and(|info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) || self .searcher_contract_info - .as_ref() - .map_or(false, |info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) + .as_ref().is_some_and(|info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) } pub fn is_labelled_searcher_of_type(&self, mev_type: MevType) -> bool { self.searcher_eoa_info - .as_ref() - .map_or(false, |info| info.is_labelled_searcher_of_type(mev_type)) + .as_ref().is_some_and(|info| info.is_labelled_searcher_of_type(mev_type)) || self .searcher_contract_info - .as_ref() - .map_or(false, |info| info.is_labelled_searcher_of_type(mev_type)) + .as_ref().is_some_and(|info| info.is_labelled_searcher_of_type(mev_type)) } pub fn is_private(&self) -> bool { From 5d8d35d6638525bf14eeddfe5ce902cd0e8752e9 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:00:59 -0500 Subject: [PATCH 15/93] clippy --- crates/brontes-core/src/decoding/dyn_decode.rs | 2 +- .../implementation/compressed_wrappers/cursor.rs | 16 ++++++++-------- .../brontes-db/src/libmdbx/libmdbx_read_write.rs | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/crates/brontes-core/src/decoding/dyn_decode.rs b/crates/brontes-core/src/decoding/dyn_decode.rs index c6a213d97f..8548b46629 100644 --- a/crates/brontes-core/src/decoding/dyn_decode.rs +++ b/crates/brontes-core/src/decoding/dyn_decode.rs @@ -1,7 +1,7 @@ use alloy_dyn_abi::*; use alloy_json_abi::JsonAbi; +use alloy_rpc_types::trace::parity::{Action, TraceOutput, TransactionTrace}; use brontes_types::structured_trace::{DecodedCallData, DecodedParams}; -use reth_rpc_types::trace::parity::{Action, TraceOutput, TransactionTrace}; use crate::errors::TraceParseError; diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs index e51b7ad02a..ee67c4da66 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/compressed_wrappers/cursor.rs @@ -210,7 +210,7 @@ where } } -impl<'cursor, T, CURSOR> Iterator for CompressedWalker<'cursor, T, CURSOR> +impl Iterator for CompressedWalker<'_, T, CURSOR> where T: CompressedTable, T::Value: From + Into, @@ -238,7 +238,7 @@ where } } -impl<'cursor, T, CURSOR> CompressedWalker<'cursor, T, CURSOR> +impl CompressedWalker<'_, T, CURSOR> where T: CompressedTable, T::Value: From + Into, @@ -281,7 +281,7 @@ where } } -impl<'cursor, T, CURSOR> CompressedReverseWalker<'cursor, T, CURSOR> +impl CompressedReverseWalker<'_, T, CURSOR> where T: CompressedTable, T::Value: From + Into, @@ -292,7 +292,7 @@ where } } -impl<'cursor, T, CURSOR> Iterator for CompressedReverseWalker<'cursor, T, CURSOR> +impl Iterator for CompressedReverseWalker<'_, T, CURSOR> where T: CompressedTable, T::Value: From + Into, @@ -322,7 +322,7 @@ where } } -impl<'cursor, T, CURSOR> Iterator for CompressedRangeWalker<'cursor, T, CURSOR> +impl Iterator for CompressedRangeWalker<'_, T, CURSOR> where T: CompressedTable, T::Value: From + Into, @@ -354,7 +354,7 @@ where } } -impl<'cursor, T, CURSOR> CompressedRangeWalker<'cursor, T, CURSOR> +impl CompressedRangeWalker<'_, T, CURSOR> where T: CompressedTable, T::Value: From + Into, @@ -382,7 +382,7 @@ where } } -impl<'cursor, T, CURSOR> CompressedDupWalker<'cursor, T, CURSOR> +impl CompressedDupWalker<'_, T, CURSOR> where T: DupSort + CompressedTable, T::Value: From + Into, @@ -393,7 +393,7 @@ where } } -impl<'cursor, T, CURSOR> Iterator for CompressedDupWalker<'cursor, T, CURSOR> +impl Iterator for CompressedDupWalker<'_, T, CURSOR> where T: DupSort + CompressedTable, T::Value: From + Into, diff --git a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs index 2d962761ba..e216f53c9b 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs @@ -263,7 +263,7 @@ impl LibmdbxInit for LibmdbxReadWriter { let mut sft_cnt = 0; // if the range starts with a zero. set the start_block if it isn't - if range & 1 << 127 == 0 && range_start_block.is_none() { + if range & (1 << 127) == 0 && range_start_block.is_none() { range_start_block = Some(start_block + (i * 128)); sft_cnt += 1; // move to left once From ea4ed0a300efdcd6f98973bb0f45e30b22758964 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:02:18 -0500 Subject: [PATCH 16/93] clippy --- crates/brontes-core/src/decoding/parser.rs | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index 6a670ad0c8..8049d4a287 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -6,9 +6,9 @@ use alloy_json_abi::JsonAbi; #[cfg(feature = "dyn-decode")] use alloy_primitives::Address; use alloy_primitives::BlockHash; -#[cfg(feature = "dyn-decode")] -use alloy_rpc_types::trace::parity::Action; use alloy_rpc_types::{BlockNumberOrTag, Log}; +#[cfg(feature = "dyn-decode")] +use alloy_rpc_types_trace::parity::Action; use brontes_metrics::trace::types::{BlockStats, TraceParseErrorKind, TransactionStats}; #[cfg(feature = "dyn-decode")] use brontes_types::FastHashMap; @@ -25,16 +25,16 @@ use crate::errors::TraceParseError; /// A [`TraceParser`] will iterate through a block's Parity traces and attempt /// to decode each call for later analysis. pub struct TraceParser { - libmdbx: &'static DB, - pub tracer: Arc, + libmdbx: &'static DB, + pub tracer: Arc, pub(crate) metrics_tx: Arc>, } impl Clone for TraceParser { fn clone(&self) -> Self { Self { - libmdbx: self.libmdbx, - tracer: self.tracer.clone(), + libmdbx: self.libmdbx, + tracer: self.tracer.clone(), metrics_tx: self.metrics_tx.clone(), } } @@ -66,7 +66,7 @@ impl TraceParser { let receipts = self.get_receipts(block_num).await; if parity_trace.0.is_none() && receipts.0.is_none() { - return + return; } #[cfg(feature = "dyn-decode")] @@ -89,7 +89,7 @@ impl TraceParser { cnt += 1; if cnt > 20 { error!(%block_num, "attempted 20 inserts for db but all failed"); - break + break; } tokio::time::sleep(Duration::from_secs(3)).await; @@ -108,12 +108,12 @@ impl TraceParser { error!(%block_num, "failed to get block hash for block"); } - return block_hash.map(|b| (b, res.0, res.1)) + return block_hash.map(|b| (b, res.0, res.1)); } #[cfg(not(feature = "local-reth"))] { tracing::error!("no block found in db"); - return None + return None; } let parity_trace = self.trace_block(block_num).await; @@ -128,7 +128,7 @@ impl TraceParser { let _ = self .metrics_tx .send(TraceMetricEvent::BlockMetricRecieved(parity_trace.1).into()); - return None + return None; } #[cfg(feature = "dyn-decode")] let traces = self @@ -175,12 +175,12 @@ impl TraceParser { error!(%block_num, "failed to get block hash for block"); } - return block_hash.map(|b| (b, res.0, res.1)) + return block_hash.map(|b| (b, res.0, res.1)); } #[cfg(not(feature = "local-reth"))] { tracing::error!("no block found in db"); - return None + return None; } let parity_trace = self.trace_block(block_num).await; @@ -195,7 +195,7 @@ impl TraceParser { let _ = self .metrics_tx .send(TraceMetricEvent::BlockMetricRecieved(parity_trace.1).into()); - return None + return None; } #[cfg(feature = "dyn-decode")] let traces = self From a0d22f515d0c021f96067ebdadb54c7020437d52 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:03:54 -0500 Subject: [PATCH 17/93] clippy --- Cargo.lock | 1 + crates/brontes-core/Cargo.toml | 3 ++- crates/brontes-core/src/decoding/dyn_decode.rs | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 967d6490d7..56b2ca1059 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1964,6 +1964,7 @@ dependencies = [ "alloy-primitives 0.8.23", "alloy-provider", "alloy-rpc-types", + "alloy-rpc-types-trace", "alloy-sol-macro 0.8.23", "alloy-sol-types 0.8.23", "alloy-transport-http", diff --git a/crates/brontes-core/Cargo.toml b/crates/brontes-core/Cargo.toml index 696e221d9a..bb124a5b06 100644 --- a/crates/brontes-core/Cargo.toml +++ b/crates/brontes-core/Cargo.toml @@ -44,6 +44,7 @@ alloy-dyn-abi = { workspace = true, features = ["default"] } alloy-provider.workspace = true alloy-transport-http.workspace = true alloy-rpc-types.workspace = true +alloy-rpc-types-trace = { workspace = true, optional = true } # Serde serde.workspace = true @@ -80,7 +81,7 @@ criterion = { version = "0.5", features = ["async", "async_tokio"] } [features] default = [] -dyn-decode = [] +dyn-decode = ["dep:alloy-rpc-types-trace"] tests = [] local-reth = [ "brontes-types/local-reth", diff --git a/crates/brontes-core/src/decoding/dyn_decode.rs b/crates/brontes-core/src/decoding/dyn_decode.rs index 8548b46629..b1392dfd19 100644 --- a/crates/brontes-core/src/decoding/dyn_decode.rs +++ b/crates/brontes-core/src/decoding/dyn_decode.rs @@ -1,6 +1,6 @@ use alloy_dyn_abi::*; use alloy_json_abi::JsonAbi; -use alloy_rpc_types::trace::parity::{Action, TraceOutput, TransactionTrace}; +use alloy_rpc_types_trace::parity::{Action, TraceOutput, TransactionTrace}; use brontes_types::structured_trace::{DecodedCallData, DecodedParams}; use crate::errors::TraceParseError; From 38f793e12f63cea95ab3667460467538e71cfcd5 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:05:00 -0500 Subject: [PATCH 18/93] clippy --- .../cex_dex/markout/cex_dex_markout.rs | 6 ++---- .../src/mev_inspectors/cex_dex/markout/types.rs | 3 +-- .../mev_inspectors/cex_dex/quotes/cex_dex.rs | 3 +-- .../src/mev_inspectors/sandwich/mod.rs | 3 +-- crates/brontes-types/src/tree/mod.rs | 17 +++++++---------- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs index 1e87d42566..66d7b5a04e 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs @@ -668,8 +668,7 @@ impl CexDexMarkoutInspector<'_, DB> { .is_searcher_of_type_with_count_threshold(MevType::CexDexTrades, FILTER_THRESHOLD) || info .contract_type - .as_ref() - .map_or(false, |contract_type| contract_type.could_be_mev_contract())); + .as_ref().is_some_and(|contract_type| contract_type.could_be_mev_contract())); let is_cex_dex_based_on_historical_activity = is_cex_dex_bot_with_significant_activity || is_labelled_cex_dex_bot; @@ -720,8 +719,7 @@ pub fn max_arb_delta(tx_info: &TxInfo, pnl: &Rational) -> Rational { } } else if tx_info .contract_type - .as_ref() - .map_or(false, |c| c.is_mev_contract()) + .as_ref().is_some_and(|c| c.is_mev_contract()) { base_diff += 2; } diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs index e8b885fc63..1ce654a6be 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs @@ -170,8 +170,7 @@ impl CexDexProcessing { self.per_exchange_pnl.retain(|possible_cex_dex| { possible_cex_dex - .as_ref() - .map_or(false, |cex_dex| cex_dex.arb_legs.iter().all(Option::is_some)) + .as_ref().is_some_and(|cex_dex| cex_dex.arb_legs.iter().all(Option::is_some)) }); Some(()) diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs index 4811a9928d..643d7c8e12 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs @@ -541,8 +541,7 @@ pub fn max_arb_delta(tx_info: &TxInfo, pnl: &Rational) -> Rational { } } else if tx_info .contract_type - .as_ref() - .map_or(false, |c| c.is_mev_contract()) + .as_ref().is_some_and(|c| c.is_mev_contract()) { base_diff += 1; } diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 1fca208e9d..87770d1ac9 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -987,13 +987,12 @@ impl SandwichInspector<'_, DB> { if !hashes .iter() - .map(|v| { + .any(|v| { let tree = &(*tree.clone()); let d = tree.get_root(*v).unwrap().get_root_action(); d.is_revert() || mev_executor_contract == d.get_to_address() }) - .any(|d| d) { Some(swap) } else { diff --git a/crates/brontes-types/src/tree/mod.rs b/crates/brontes-types/src/tree/mod.rs index 9033cd8fcc..fa64b3eeed 100644 --- a/crates/brontes-types/src/tree/mod.rs +++ b/crates/brontes-types/src/tree/mod.rs @@ -32,10 +32,10 @@ type ClassifyData = Option<(usize, Vec>)>; #[derive(Debug, Clone)] pub struct BlockTree { - pub tx_roots: Vec>, - pub header: Header, + pub tx_roots: Vec>, + pub header: Header, pub priority_fee_std_dev: f64, - pub avg_priority_fee: f64, + pub avg_priority_fee: f64, } impl BlockTree { @@ -76,11 +76,11 @@ impl BlockTree { let Ok(contract) = database.try_fetch_searcher_contract_infos(contract_info_addr.clone()) else { - return vec![] + return vec![]; }; let Ok(address_meta) = database.try_fetch_address_metadatas(contract_info_addr) else { - return vec![] + return vec![]; }; let Ok(eoa) = database.try_fetch_searcher_eoa_infos(eoa_info_addr) else { return vec![] }; @@ -140,7 +140,7 @@ impl BlockTree { if this.tx_roots.is_empty() { info!(block = this.header.number, "The block tree is empty"); this.tx_roots.iter_mut().for_each(|root| root.finalize()); - return + return; } // Initialize accumulator for total priority fee and vector of priority fees @@ -434,10 +434,7 @@ pub mod test { }; assert!( - b.user_swaps - .iter() - .map(|swap| swap.trace_index != 0) - .all(|t| t), + b.user_swaps.iter().all(|swap| swap.trace_index != 0), "batch user swaps wasn't set" ); } From a9c2784ca7da67d75c4f7f0b5fd472dfd1723e24 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:07:12 -0500 Subject: [PATCH 19/93] clippy --- crates/bin/src/cli/db/cex_data.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bin/src/cli/db/cex_data.rs b/crates/bin/src/cli/db/cex_data.rs index 6298d4f592..615014b4c4 100644 --- a/crates/bin/src/cli/db/cex_data.rs +++ b/crates/bin/src/cli/db/cex_data.rs @@ -70,7 +70,7 @@ impl CexDB { let exchanges_to_use = &cex_config.exchanges_to_use; let pair_exists = exchanges_to_use.iter().any(|exchange| { - cex_trades.get(exchange).map_or(false, |pairs| { + cex_trades.get(exchange).is_some_and(|pairs| { pairs.contains_key(&pair) || pairs.contains_key(&pair.flip()) }) }); From 334c7b5c5e2fb32beb3644303ec365282a03664d Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:08:05 -0500 Subject: [PATCH 20/93] clippy --- .../brontes-types/src/block_metadata/relays-openapi/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/brontes-types/src/block_metadata/relays-openapi/src/lib.rs b/crates/brontes-types/src/block_metadata/relays-openapi/src/lib.rs index 0bf19b2a91..c1741188c6 100644 --- a/crates/brontes-types/src/block_metadata/relays-openapi/src/lib.rs +++ b/crates/brontes-types/src/block_metadata/relays-openapi/src/lib.rs @@ -1,5 +1,6 @@ #![allow(clippy::too_many_arguments)] #![allow(clippy::doc_lazy_continuation)] +#![allow(clippy::empty_line_after_doc_comments)] #[macro_use] extern crate serde_derive; From 38c04b6973874b9c51dff9bb7f4b9c13e691551c Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:10:34 -0500 Subject: [PATCH 21/93] clippy --- crates/brontes-types/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/brontes-types/src/lib.rs b/crates/brontes-types/src/lib.rs index 57a6181991..eadb28648f 100644 --- a/crates/brontes-types/src/lib.rs +++ b/crates/brontes-types/src/lib.rs @@ -1,6 +1,7 @@ #![allow(internal_features)] #![allow(clippy::type_complexity)] #![allow(unexpected_cfgs)] +#![allow(clippy::empty_line_after_doc_comments)] pub mod multi_block; pub use multi_block::*; From dc6606504cffa1425ff451f4aa45c23a9128bcbc Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:11:42 -0500 Subject: [PATCH 22/93] clippy --- crates/brontes-macros/src/libmdbx_test.rs | 2 +- crates/brontes-types/src/db/traces.rs | 66 +++++++++++------------ 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/crates/brontes-macros/src/libmdbx_test.rs b/crates/brontes-macros/src/libmdbx_test.rs index 7873af4515..368469d774 100644 --- a/crates/brontes-macros/src/libmdbx_test.rs +++ b/crates/brontes-macros/src/libmdbx_test.rs @@ -15,7 +15,7 @@ pub fn parse(item: ItemFn, attr: TokenStream) -> syn::Result { if name_val.path.segments.last()?.ident == "threads" { let Expr::Lit(ref a) = name_val.value else { return None }; match &a.lit { - syn::Lit::Int(i) => return Some(usize::from_str(i.base10_digits()).unwrap()), + syn::Lit::Int(i) => Some(usize::from_str(i.base10_digits()).unwrap()), _ => None, } } else { diff --git a/crates/brontes-types/src/db/traces.rs b/crates/brontes-types/src/db/traces.rs index 31fb9374f0..f895b672a9 100644 --- a/crates/brontes-types/src/db/traces.rs +++ b/crates/brontes-types/src/db/traces.rs @@ -41,14 +41,14 @@ implement_table_value_codecs_with_zc!(TxTracesInnerRedefined); )] #[redefined(TxTrace)] pub struct TxTraceRedefined { - pub block_number: u64, - pub trace: Vec, - pub tx_hash: FixedBytesRedefined<32>, - pub gas_used: u128, + pub block_number: u64, + pub trace: Vec, + pub tx_hash: FixedBytesRedefined<32>, + pub gas_used: u128, pub effective_price: u128, - pub tx_index: u64, + pub tx_index: u64, // False if the transaction reverted - pub is_success: bool, + pub is_success: bool, } #[derive( @@ -56,10 +56,10 @@ pub struct TxTraceRedefined { )] #[redefined(TransactionTraceWithLogs)] pub struct TransactionTraceWithLogsRedefined { - pub trace: TransactionTraceRedefined, - pub logs: Vec, - pub msg_sender: AddressRedefined, - pub trace_idx: u64, + pub trace: TransactionTraceRedefined, + pub logs: Vec, + pub msg_sender: AddressRedefined, + pub trace_idx: u64, pub decoded_data: Option, } @@ -69,7 +69,7 @@ pub struct TransactionTraceWithLogsRedefined { #[redefined(Log)] pub struct LogRedefined { pub address: AddressRedefined, - pub data: LogDataRedefined, + pub data: LogDataRedefined, } #[derive( @@ -79,9 +79,9 @@ pub struct LogRedefined { #[redefined_attr(to_source = "LogData::new_unchecked(self.topics.iter().copied().map(Into::into).\ collect(), self.data.into())")] pub struct LogDataRedefined { - #[redefined(func = "src.topics().iter().copied().map(Into::into).collect()")] + // #[redefined(func = "src.topics().iter().copied().map(Into::into).collect()")] pub topics: Vec>, - pub data: BytesRedefined, + pub data: BytesRedefined, } #[derive( @@ -97,10 +97,10 @@ pub struct LogDataRedefined { )] #[redefined(TransactionTrace)] pub struct TransactionTraceRedefined { - pub action: ActionRedefined, - pub error: Option, - pub result: Option, - pub subtraces: usize, + pub action: ActionRedefined, + pub error: Option, + pub result: Option, + pub subtraces: usize, pub trace_address: Vec, } @@ -136,12 +136,12 @@ pub enum ActionRedefined { )] #[redefined(CallAction)] pub struct CallActionRedefined { - pub from: AddressRedefined, + pub from: AddressRedefined, pub call_type: CallTypeRedefined, - pub gas: u64, - pub input: BytesRedefined, - pub to: AddressRedefined, - pub value: U256Redefined, + pub gas: u64, + pub input: BytesRedefined, + pub to: AddressRedefined, + pub value: U256Redefined, } #[derive( @@ -157,10 +157,10 @@ pub struct CallActionRedefined { )] #[redefined(CreateAction)] pub struct CreateActionRedefined { - pub from: AddressRedefined, - pub gas: u64, - pub init: BytesRedefined, - pub value: U256Redefined, + pub from: AddressRedefined, + pub gas: u64, + pub init: BytesRedefined, + pub value: U256Redefined, pub creation_method: CreationMethodRedefined, } @@ -196,8 +196,8 @@ pub enum CreationMethodRedefined { )] #[redefined(SelfdestructAction)] pub struct SelfdestructActionRedefined { - pub address: AddressRedefined, - pub balance: U256Redefined, + pub address: AddressRedefined, + pub balance: U256Redefined, pub refund_address: AddressRedefined, } @@ -214,9 +214,9 @@ pub struct SelfdestructActionRedefined { )] #[redefined(RewardAction)] pub struct RewardActionRedefined { - pub author: AddressRedefined, + pub author: AddressRedefined, pub reward_type: RewardTypeRedefined, - pub value: U256Redefined, + pub value: U256Redefined, } #[derive( @@ -288,7 +288,7 @@ pub enum TraceOutputRedefined { #[redefined(CallOutput)] pub struct CallOutputRedefined { pub gas_used: u64, - pub output: BytesRedefined, + pub output: BytesRedefined, } #[derive( @@ -304,7 +304,7 @@ pub struct CallOutputRedefined { )] #[redefined(CreateOutput)] pub struct CreateOutputRedefined { - pub address: AddressRedefined, - pub code: BytesRedefined, + pub address: AddressRedefined, + pub code: BytesRedefined, pub gas_used: u64, } From bf12498ca52a4945f8246775b46cbdfd80a0d134 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:12:43 -0500 Subject: [PATCH 23/93] clippy --- crates/brontes-types/src/db/traces.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/brontes-types/src/db/traces.rs b/crates/brontes-types/src/db/traces.rs index f895b672a9..4d459f25d4 100644 --- a/crates/brontes-types/src/db/traces.rs +++ b/crates/brontes-types/src/db/traces.rs @@ -79,7 +79,7 @@ pub struct LogRedefined { #[redefined_attr(to_source = "LogData::new_unchecked(self.topics.iter().copied().map(Into::into).\ collect(), self.data.into())")] pub struct LogDataRedefined { - // #[redefined(func = "src.topics().iter().copied().map(Into::into).collect()")] + #[redefined(func = "src.topics().to_vec()")] pub topics: Vec>, pub data: BytesRedefined, } From 9e39fe04a0a17da34fb259085d0d68658f93d50d Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:14:31 -0500 Subject: [PATCH 24/93] clippy --- crates/brontes-inspect/src/composer/utils.rs | 38 ++++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/crates/brontes-inspect/src/composer/utils.rs b/crates/brontes-inspect/src/composer/utils.rs index 2a95ada5a3..85f664a36c 100644 --- a/crates/brontes-inspect/src/composer/utils.rs +++ b/crates/brontes-inspect/src/composer/utils.rs @@ -198,18 +198,18 @@ fn update_mev_count(mev_count: &mut MevCount, mev_type: MevType, count: u64) { #[derive(Debug)] pub struct BlockPnL { // ETH profit made by the block builder (in wei) - pub builder_eth_profit: i128, + pub builder_eth_profit: i128, // Amount of ETH paid by the builder to sponsor transactions in the block - pub builder_sponsorship: i128, + pub builder_sponsorship: i128, // USD profit of the builders searchers - pub builder_mev_profit_usd: f64, + pub builder_mev_profit_usd: f64, // ETH reward paid to the proposer (in wei) - pub mev_reward: Option, + pub mev_reward: Option, // Address of the proposer fee recipient - pub proposer_fee_recipient: Option
, + pub proposer_fee_recipient: Option
, // Gas & Tips paid to the builder by it's own vertically integrated // searchers - pub builder_searcher_tip: u128, + pub builder_searcher_tip: u128, // If the block was bid adjusted using ultrasound's bid adjustment pub ultrasound_bid_adjusted: bool, } @@ -314,16 +314,16 @@ fn proposer_payment( let from_address = root.get_from_address(); let to_address = root.get_to_address(); - let from_match = from_address == builder_address - || collateral_address.map_or(false, |addr| from_address == addr); + let from_match = + from_address == builder_address || (collateral_address == Some(from_address)); - let to_match = proposer_fee_recipient.map_or(false, |addr| to_address == addr); - - let is_from_collateral = collateral_address.map_or(false, |addr| from_address == addr); - - if from_match || to_match { + if from_match || proposer_fee_recipient == Some(to_address) { if let Action::EthTransfer(transfer) = root.get_root_action() { - return Some((transfer.value.to(), Some(transfer.to), is_from_collateral)) + return Some(( + transfer.value.to(), + Some(transfer.to), + collateral_address == Some(from_address), + )); } } None @@ -333,7 +333,7 @@ fn proposer_payment( /// Accounts for the profit made by the builders vertically integrated searchers fn calculate_mev_searching_profit(bundles: &[Bundle], builder_info: &BuilderInfo) -> (f64, u128) { if builder_info.searchers_eoas.is_empty() && builder_info.searchers_contracts.is_empty() { - return (0.0, 0) + return (0.0, 0); } bundles .iter() @@ -403,10 +403,10 @@ fn calculate_builder_sponsorship_amount( } pub struct BlockPreprocessing { - total_gas_used: u128, - total_priority_fee: u128, - total_bribe: u128, - builder_address: Address, + total_gas_used: u128, + total_priority_fee: u128, + total_bribe: u128, + builder_address: Address, gas_details_by_address: FastHashMap, } From 42aa749cd25ba39b8533a9201d8dcff8a83b718d Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:15:16 -0500 Subject: [PATCH 25/93] clippy --- .../cex_dex/markout/cex_dex_markout.rs | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs index 66d7b5a04e..86cd2fae5a 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs @@ -48,8 +48,8 @@ pub const FILTER_THRESHOLD: u64 = 20; use crate::{shared_utils::SharedInspectorUtils, Inspector, Metadata}; pub struct CexDexMarkoutInspector<'db, DB: LibmdbxReader> { - pub utils: SharedInspectorUtils<'db, DB>, - trade_config: CexDexTradeConfig, + pub utils: SharedInspectorUtils<'db, DB>, + trade_config: CexDexTradeConfig, cex_exchanges: Vec, } @@ -86,7 +86,7 @@ impl Inspector for CexDexMarkoutInspector<'_, DB> { if metadata.cex_trades.is_none() { tracing::warn!("no cex trades for block: {}", block.metadata.block_num); - return vec![] + return vec![]; } self.utils @@ -123,7 +123,7 @@ impl CexDexMarkoutInspector<'_, DB> { .filter_map(|(actions, tx_info)| { let tx_info = tx_info?; if self.should_filter_tx(&tx_info) { - return None + return None; } if actions.iter().any(Action::is_batch) { @@ -147,7 +147,7 @@ impl CexDexMarkoutInspector<'_, DB> { self.utils.get_metrics().inspect(|m| { m.branch_filtering_trigger(MevType::CexDexTrades, "is_defi_automation") }); - return true + return true; } } false @@ -197,7 +197,7 @@ impl CexDexMarkoutInspector<'_, DB> { self.utils.get_metrics().inspect(|m| { m.branch_filtering_trigger(MevType::CexDexTrades, "is_triangular_arb") }); - return None + return None; } self.process_swaps(dex_swaps, tx_info, metadata, deltas, false) @@ -247,7 +247,7 @@ impl CexDexMarkoutInspector<'_, DB> { "no dex swaps found\n Tx: {}", format_etherscan_url(&tx_info.tx_hash) ); - return None + return None; } let mut possible_cex_dex: CexDexProcessing = self.detect_cex_dex( @@ -402,7 +402,7 @@ impl CexDexMarkoutInspector<'_, DB> { .collect(); if arb_legs_and_trades.is_empty() { - return None + return None; } let (arb_legs, trade_details): (Vec<_>, Vec<_>) = arb_legs_and_trades.into_iter().unzip(); @@ -459,13 +459,13 @@ impl CexDexMarkoutInspector<'_, DB> { // Amount * base_to_quote = USDT amount let base_to_quote = if token_price == Rational::ZERO { trace!("Token price is zero"); - return None + return None; } else { token_price.clone().reciprocal() }; if cex_quote.price_maker == Rational::ZERO || swap.amount_out == Rational::ZERO { - return None + return None; } let pairs_price = ExchangeLegCexPrice { @@ -497,7 +497,7 @@ impl CexDexMarkoutInspector<'_, DB> { &output_of_cex_trade_maker, cex_quote.was_intermediary, ); - return None + return None; } Some(ArbLeg { @@ -605,7 +605,6 @@ impl CexDexMarkoutInspector<'_, DB> { /// # Returns /// A `PossibleCexDex` instance representing the finalized arbitrage /// opportunity after accounting for gas costs. - pub fn gas_accounting( &self, cex_dex: &mut CexDexProcessing, @@ -668,7 +667,8 @@ impl CexDexMarkoutInspector<'_, DB> { .is_searcher_of_type_with_count_threshold(MevType::CexDexTrades, FILTER_THRESHOLD) || info .contract_type - .as_ref().is_some_and(|contract_type| contract_type.could_be_mev_contract())); + .as_ref() + .is_some_and(|contract_type| contract_type.could_be_mev_contract())); let is_cex_dex_based_on_historical_activity = is_cex_dex_bot_with_significant_activity || is_labelled_cex_dex_bot; @@ -694,7 +694,7 @@ impl CexDexMarkoutInspector<'_, DB> { pub fn is_triangular_arb(&self, dex_swaps: &[NormalizedSwap]) -> bool { // Not enough swaps to form a cycle, thus cannot be arbitrage. if dex_swaps.len() < 2 { - return false + return false; } let original_token = dex_swaps[0].token_in.address; @@ -719,7 +719,8 @@ pub fn max_arb_delta(tx_info: &TxInfo, pnl: &Rational) -> Rational { } } else if tx_info .contract_type - .as_ref().is_some_and(|c| c.is_mev_contract()) + .as_ref() + .is_some_and(|c| c.is_mev_contract()) { base_diff += 2; } From 8eaa90bbbfb98c4e515afcd7c0218593f9dd2626 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:17:01 -0500 Subject: [PATCH 26/93] clippy --- crates/brontes-core/src/executor.rs | 1 - .../brontes-db/src/libmdbx/env.rs | 16 +++++++--------- .../src/libmdbx/implementation/native/cursor.rs | 3 +-- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/crates/brontes-core/src/executor.rs b/crates/brontes-core/src/executor.rs index 1dad7b9253..5c288e6ec7 100644 --- a/crates/brontes-core/src/executor.rs +++ b/crates/brontes-core/src/executor.rs @@ -5,7 +5,6 @@ use tokio::task::JoinHandle; /// executes tasks on the runtime /// used for a thread pool for the simulator - pub struct Executor; impl Executor { diff --git a/crates/brontes-database/brontes-db/src/libmdbx/env.rs b/crates/brontes-database/brontes-db/src/libmdbx/env.rs index aca748117b..c12a681ff5 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/env.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/env.rs @@ -44,9 +44,9 @@ impl DatabaseEnvKind { #[derive(Clone, Debug, Default)] pub struct DatabaseArguments { /// Client version that accesses the database. - client_version: ClientVersion, + client_version: ClientVersion, /// Database log level. If [None], the default value is used. - log_level: Option, + log_level: Option, /// Maximum duration of a read transaction. If [None], the default value is /// used. max_read_transaction_duration: Option, @@ -77,7 +77,7 @@ pub struct DatabaseArguments { /// /// This flag affects only at environment opening but can't be changed /// after. - exclusive: Option, + exclusive: Option, } impl DatabaseArguments { @@ -130,10 +130,8 @@ pub struct DatabaseEnv { // DatabaseMetadataValue::new(self.freelist().ok()) // } // } - impl DatabaseEnv { /// Opens the database at the specified path with the given `EnvKind`. - pub fn open( path: &Path, kind: DatabaseEnvKind, @@ -155,11 +153,11 @@ impl DatabaseEnv { inner_env.set_max_dbs(256); inner_env.set_geometry(Geometry { // Maximum database size of 4 TB - size: Some(0..(4000 * GIGABYTE)), + size: Some(0..(4000 * GIGABYTE)), // We grow the database in increments of a gigabyte - growth_step: Some(GIGABYTE as isize), + growth_step: Some(GIGABYTE as isize), shrink_threshold: Some(GIGABYTE as isize), - page_size: Some(PageSize::Set(default_page_size())), + page_size: Some(PageSize::Set(default_page_size())), }); #[cfg(not(windows))] { @@ -241,7 +239,7 @@ impl DatabaseEnv { LogLevel::Extra => 7, }); } else { - return Err(DatabaseError::LogLevelUnavailable(log_level)) + return Err(DatabaseError::LogLevelUnavailable(log_level)); } } diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs index b69ab34448..fd635ed4a6 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs @@ -33,7 +33,7 @@ pub struct LibmdbxCursor { /// Inner `libmdbx` cursor. pub(crate) inner: brontes_libmdbx::Cursor, /// Phantom data to enforce encoding/decoding. - _dbi: PhantomData, + _dbi: PhantomData, } impl LibmdbxCursor { @@ -47,7 +47,6 @@ impl LibmdbxCursor { } /// Takes `(key, value)` from the database and decodes it appropriately. - impl DbCursorRO for LibmdbxCursor { fn first(&mut self) -> PairResult { decode!(self.inner.first()) From 7a4feff070a49d4ad3f8e804c969b639abcf4a2c Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:18:03 -0500 Subject: [PATCH 27/93] clippy --- .../brontes-classifier/src/discovery_only.rs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/crates/brontes-classifier/src/discovery_only.rs b/crates/brontes-classifier/src/discovery_only.rs index c3d5d2c5a2..ed85509c79 100644 --- a/crates/brontes-classifier/src/discovery_only.rs +++ b/crates/brontes-classifier/src/discovery_only.rs @@ -23,12 +23,12 @@ use crate::{ #[derive(Debug)] pub struct DiscoveryOnlyClassifier<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> { - libmdbx: &'db DB, + libmdbx: &'db DB, provider: Arc, } -impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Clone - for DiscoveryOnlyClassifier<'db, T, DB> +impl Clone + for DiscoveryOnlyClassifier<'_, T, DB> { fn clone(&self) -> Self { Self { libmdbx: self.libmdbx, provider: self.provider.clone() } @@ -56,7 +56,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif empty = trace.trace.is_empty(), is_success = trace.is_success ); - return + return; } let root_trace = trace.trace.remove(0); @@ -84,10 +84,10 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif private: false, total_msg_value_transfers: vec![], gas_details: GasDetails { - coinbase_transfer: None, - gas_used: trace.gas_used, + coinbase_transfer: None, + gas_used: trace.gas_used, effective_gas_price: trace.effective_price, - priority_fee: trace.effective_price + priority_fee: trace.effective_price - (header.base_fee_per_gas.unwrap_or_default() as u128), }, data_store: NodeData(vec![Some(action)]), @@ -159,7 +159,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif trace_index: u64, ) { if trace.trace.error.is_some() { - return + return; } match trace.action_type() { TraceAction::Call(_) => { @@ -190,7 +190,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif trace_index: u64, ) { if trace.is_static_call() { - return + return; } let mut call_info = trace.get_callframe_info(); @@ -241,7 +241,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif block: u64, ) { if trace.is_delegate_call() { - return + return; }; // Attempt to decode the transfer @@ -303,7 +303,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif .collect::>(); if search_data.is_empty() { - return + return; } join_all( From dc76aa90fb3e09ee82348384ac9b45bc96d3f196 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:19:15 -0500 Subject: [PATCH 28/93] clippy --- .../brontes-pricing/src/graphs/dijkstras.rs | 29 +++++++++---------- crates/brontes-pricing/src/graphs/yens.rs | 15 +++++----- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/crates/brontes-pricing/src/graphs/dijkstras.rs b/crates/brontes-pricing/src/graphs/dijkstras.rs index 0d9f68e245..a708ef428a 100644 --- a/crates/brontes-pricing/src/graphs/dijkstras.rs +++ b/crates/brontes-pricing/src/graphs/dijkstras.rs @@ -115,7 +115,6 @@ const MAX_OTHER_PATHS: usize = 3; // { // dijkstra_internal(start, &mut successors, path_value, &mut success) // } - pub(crate) fn dijkstra_internal( start: &N, second: Option<&N>, @@ -186,22 +185,22 @@ where 'outer: while let Some(SmallestHolder { cost, index, hops }) = to_see.pop() { if hops >= MAX_LEN { - continue + continue; } if i == max_iter { tracing::debug!("max iter on dijkstra hit"); - break + break; } let (node, _) = parents.get_index(index).unwrap(); if visited.contains(node) { - continue + continue; } if stop(node) { target_reached = Some(index); - break + break; } let successors = successors(node); @@ -213,7 +212,7 @@ where checked_second = successor == second; if !checked_second { - continue + continue; } true } else { @@ -223,7 +222,7 @@ where i += 1; if visited.contains(successor) { - continue + continue; } let new_cost = cost + *move_cost; @@ -241,7 +240,7 @@ where n = e.index(); e.insert((index, new_cost, value)); } else { - continue + continue; } } } @@ -250,13 +249,13 @@ where // we don't want to prove we have the shortest path if q_break { target_reached = Some(n); - break 'outer + break 'outer; } to_see.push(SmallestHolder { cost: new_cost, index: n, hops: hops + 1 }); if break_after { - break + break; } } @@ -266,7 +265,7 @@ where i += 1; if visited.contains(&successor) { - continue + continue; } let new_cost = cost + move_cost; @@ -284,14 +283,14 @@ where n = e.index(); e.insert((index, new_cost, value)); } else { - continue + continue; } } } if q_break { target_reached = Some(n); - break 'outer + break 'outer; } to_see.push(SmallestHolder { cost: new_cost, index: n, hops: hops + 1 }); @@ -351,9 +350,9 @@ where } struct SmallestHolder { - cost: K, + cost: K, index: usize, - hops: usize, + hops: usize, } impl PartialEq for SmallestHolder { diff --git a/crates/brontes-pricing/src/graphs/yens.rs b/crates/brontes-pricing/src/graphs/yens.rs index 47f5e0c365..2c677b1aee 100644 --- a/crates/brontes-pricing/src/graphs/yens.rs +++ b/crates/brontes-pricing/src/graphs/yens.rs @@ -16,11 +16,11 @@ pub use crate::graphs::dijkstras::*; #[derive(Eq, PartialEq, Debug)] struct Path { /// The nodes along the path - nodes: Vec, + nodes: Vec, /// wieghts, weights: Vec, /// The total cost of the path - cost: C, + cost: C, } impl PartialOrd for Path @@ -105,7 +105,6 @@ where /// ); /// assert!(empty.is_empty()); /// ``` - pub fn yen( start: &N, second: Option<&N>, @@ -137,7 +136,7 @@ where // if we are extending another pair, we don't need any other routes as // the extension route has done most of the heavy lifting if is_extension || n.last().filter(|node| ends.contains_key(node)).is_some() { - return vec![(e, c)] + return vec![(e, c)]; } // A vector containing our paths. @@ -152,14 +151,14 @@ where for ki in 0..(iter_k - 1) { if routes.len() <= ki || routes.len() == iter_k { // We have no more routes to explore, or we have found enough. - break + break; } if SystemTime::now().duration_since(start).unwrap() > extra_path_timeout && k.map(|k| k >= routes.len()).unwrap_or(true) { tracing::debug!("timeout for extra routes hit"); - break + break; } // Take the most recent route to explore new spurs. let previous = &routes[ki].nodes; @@ -212,7 +211,7 @@ where // Mark as visited visited.insert(path.nodes.clone()); // Build a min-heap - return Some(Reverse(path)) + return Some(Reverse(path)); } } None @@ -237,7 +236,7 @@ where }; routes.push(k_route.0); } else { - break // Other routes have higher cost + break; // Other routes have higher cost } } } From 57db12bcbcdb7dd50705bd282996099b43ca700c Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:19:33 -0500 Subject: [PATCH 29/93] clippy --- crates/reth-tracing-ext/src/provider.rs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index ccf439c4a1..ba8d1127dd 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -208,9 +208,10 @@ pub(crate) fn create_txn_env( // Ensure that if versioned hashes are set, they're not empty if request .blob_versioned_hashes - .as_ref().is_some_and(|hashes| hashes.is_empty()) + .as_ref() + .is_some_and(|hashes| hashes.is_empty()) { - return Err(RpcInvalidTransactionError::BlobTransactionMissingBlobHashes.into()) + return Err(RpcInvalidTransactionError::BlobTransactionMissingBlobHashes.into()); } let TransactionRequest { @@ -243,7 +244,7 @@ pub(crate) fn create_txn_env( block_env.blob_gasprice().map(U256::from), )?; - let gas_limit = gas.unwrap_or_else(|| block_env.gas_limit); + let gas_limit = gas.unwrap_or(block_env.gas_limit); let env = TxEnv { gas_limit: gas_limit .try_into() @@ -299,7 +300,7 @@ where .checked_sub(env.value) // Return error if the caller has insufficient funds. .ok_or_else(|| RpcInvalidTransactionError::InsufficientFunds { - cost: env.value, + cost: env.value, balance: account_balance, })? // Calculate the amount of gas the caller can afford with the specified gas price. @@ -319,9 +320,9 @@ pub(crate) struct CallFees { /// /// `gasPrice` for legacy, /// `maxFeePerGas` for EIP-1559 - gas_price: U256, + gas_price: U256, /// Max Fee per Blob gas for EIP-4844 transactions - max_fee_per_blob_gas: Option, + max_fee_per_blob_gas: Option, } // === impl CallFees === @@ -357,13 +358,13 @@ impl CallFees { Some(max_fee) => { if max_fee < block_base_fee { // `base_fee_per_gas` is greater than the `max_fee_per_gas` - return Err(RpcInvalidTransactionError::FeeCapTooLow.into()) + return Err(RpcInvalidTransactionError::FeeCapTooLow.into()); } if max_fee < max_priority_fee_per_gas.unwrap_or(U256::ZERO) { return Err( // `max_priority_fee_per_gas` is greater than the `max_fee_per_gas` RpcInvalidTransactionError::TipAboveFeeCap.into(), - ) + ); } Ok(min( max_fee, @@ -421,7 +422,7 @@ impl CallFees { // Ensure blob_hashes are present if !has_blob_hashes { // Blob transaction but no blob hashes - return Err(RpcInvalidTransactionError::BlobTransactionMissingBlobHashes.into()) + return Err(RpcInvalidTransactionError::BlobTransactionMissingBlobHashes.into()); } Ok(CallFees { From fdd7cb3c8410419fd20b3d9b5aae72ca708c741b Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:20:30 -0500 Subject: [PATCH 30/93] clippy --- crates/reth-tracing-ext/src/provider.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index ba8d1127dd..a9258243eb 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -246,9 +246,7 @@ pub(crate) fn create_txn_env( let gas_limit = gas.unwrap_or(block_env.gas_limit); let env = TxEnv { - gas_limit: gas_limit - .try_into() - .map_err(|_| RpcInvalidTransactionError::GasUintOverflow)?, + gas_limit, nonce: nonce.unwrap_or_default(), caller: from.unwrap_or_default(), gas_price: gas_price.to(), @@ -257,9 +255,6 @@ pub(crate) fn create_txn_env( data: input.try_into_unique_input()?.unwrap_or_default(), chain_id, access_list: access_list.unwrap_or_default(), - // .map(AccessList::into_flattened) - // .unwrap_or_default(), - // EIP-4844 fields blob_hashes: blob_versioned_hashes.unwrap_or_default(), max_fee_per_blob_gas: max_fee_per_blob_gas.unwrap_or_default().to(), tx_type: transaction_type.unwrap_or_default(), From b1fa350726c0040284e431e22a51eaf705d80be3 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:21:16 -0500 Subject: [PATCH 31/93] clippy --- crates/brontes-types/src/mev/sandwich.rs | 27 ++++++++++++------------ 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/crates/brontes-types/src/mev/sandwich.rs b/crates/brontes-types/src/mev/sandwich.rs index ef3884efa0..d5ee520d7c 100644 --- a/crates/brontes-types/src/mev/sandwich.rs +++ b/crates/brontes-types/src/mev/sandwich.rs @@ -47,7 +47,6 @@ use crate::{ /// Sequence: /// Represents various MEV sandwich attack strategies, including standard /// sandwiches and more complex variations like the "Big Mac Sandwich." - /// /// Example of a Complex Sandwich Attack ("Big Mac Sandwich") Transaction /// Sequence: @@ -60,45 +59,45 @@ use crate::{ #[derive(Debug, Deserialize, PartialEq, Clone, Default, Redefined)] #[redefined_attr(derive(Debug, PartialEq, Clone, Serialize, rSerialize, rDeserialize, Archive))] pub struct Sandwich { - pub block_number: u64, + pub block_number: u64, /// Transaction hashes of the frontrunning transactions. /// Supports multiple transactions for complex sandwich scenarios. - pub frontrun_tx_hash: Vec, + pub frontrun_tx_hash: Vec, /// Swaps executed in each frontrunning transaction. /// Nested vectors represent multiple swaps within each transaction. - pub frontrun_swaps: Vec>, + pub frontrun_swaps: Vec>, /// Gas details for each frontrunning transaction. #[redefined(same_fields)] - pub frontrun_gas_details: Vec, + pub frontrun_gas_details: Vec, /// Transaction hashes of the victim transactions, logically grouped by /// their corresponding frontrunning transaction. Each outer vector /// index corresponds to a frontrun transaction, grouping victims targeted /// by that specific frontrun. - pub victim_swaps_tx_hashes: Vec>, + pub victim_swaps_tx_hashes: Vec>, /// Swaps executed by victims, each outer vector corresponds to a victim /// transaction. - pub victim_swaps: Vec>, + pub victim_swaps: Vec>, /// Gas details for each victim transaction. #[redefined(same_fields)] pub victim_swaps_gas_details: Vec, /// Transaction hashes of the backrunning transactions. - pub backrun_tx_hash: B256, + pub backrun_tx_hash: B256, /// Swaps executed in each backrunning transaction. - pub backrun_swaps: Vec, + pub backrun_swaps: Vec, /// Gas details for each backrunning transaction. #[redefined(same_fields)] - pub backrun_gas_details: GasDetails, + pub backrun_gas_details: GasDetails, } /// calcuation for the loss per user #[derive(Debug, Deserialize, PartialEq, Clone, Default)] pub struct VictimLossAmount { - pub tx_hash: B256, - pub vicitim_eoa: Address, - pub token: TokenInfoWithAddress, + pub tx_hash: B256, + pub vicitim_eoa: Address, + pub token: TokenInfoWithAddress, pub token_amount_lost: Rational, /// is zero if we don't have a price for the given token - pub amount_lost_usd: Rational, + pub amount_lost_usd: Rational, } impl Mev for Sandwich { From f5f4fd7d50206db4868a8d7270bf3d21b84f3ecf Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:23:33 -0500 Subject: [PATCH 32/93] cli --- .github/workflows/ci.yml | 26 +++- crates/bin/src/cli/db/cex_data.rs | 8 +- crates/bin/src/cli/db/export.rs | 4 +- crates/bin/src/cli/db/r2_uploader.rs | 6 +- crates/bin/src/cli/db/snapshot.rs | 2 +- crates/bin/src/cli/run.rs | 4 +- crates/bin/src/executors/mod.rs | 4 +- crates/bin/src/executors/processors/mev.rs | 2 +- crates/bin/src/executors/range.rs | 2 +- .../bin/src/executors/shared/dex_pricing.rs | 12 +- .../src/executors/shared/metadata_loader.rs | 10 +- .../src/executors/shared/state_collector.rs | 6 +- crates/bin/src/executors/tip.rs | 4 +- .../src/classifiers/balancer/balancer_v2.rs | 2 +- .../src/classifiers/erc20.rs | 2 +- .../oneinch/one_inch_aggregation_router_v5.rs | 2 +- .../classifiers/oneinch/one_inch_fusion.rs | 2 +- .../brontes-classifier/src/discovery_only.rs | 8 +- .../multi_frame_classification/batch/uni_x.rs | 16 +-- .../flash_loan/balancer.rs | 4 +- .../flash_loan/dodo.rs | 4 +- .../flash_loan/maker_dss.rs | 4 +- .../src/test_utils/tests.rs | 4 +- .../src/tree_builder/mod.rs | 26 ++-- .../src/tree_builder/tree_pruning.rs | 8 +- .../src/tree_builder/utils.rs | 6 +- .../brontes-core/src/decoding/dyn_decode.rs | 26 ++-- crates/brontes-core/src/decoding/parser.rs | 8 +- crates/brontes-core/src/local_provider.rs | 2 +- crates/brontes-core/src/test_utils/mod.rs | 6 +- .../brontes-db/src/clickhouse/db_client.rs | 94 +++++++------- .../brontes-db/src/clickhouse/split_db.rs | 8 +- .../libmdbx/db_utils/libmdbx_partitioning.rs | 2 +- .../src/libmdbx/db_utils/rclone_wrapper.rs | 2 +- .../brontes-db/src/libmdbx/env.rs | 12 +- .../libmdbx/implementation/native/cursor.rs | 2 +- .../brontes-db/src/libmdbx/initialize.rs | 8 +- .../src/libmdbx/libmdbx_read_write.rs | 12 +- .../brontes-db/src/libmdbx/libmdbx_writer.rs | 2 +- .../brontes-db/src/parquet/mod.rs | 8 +- .../brontes-database/libmdbx-rs/src/codec.rs | 2 +- .../brontes-database/libmdbx-rs/src/cursor.rs | 6 +- .../libmdbx-rs/src/environment.rs | 8 +- .../libmdbx-rs/src/transaction.rs | 4 +- .../src/composer/mev_filters.rs | 4 +- crates/brontes-inspect/src/composer/mod.rs | 2 +- crates/brontes-inspect/src/composer/utils.rs | 20 +-- .../src/mev_inspectors/atomic_arb.rs | 18 +-- .../cex_dex/markout/cex_dex_markout.rs | 4 +- .../mev_inspectors/cex_dex/markout/types.rs | 7 +- .../mev_inspectors/cex_dex/quotes/cex_dex.rs | 19 +-- .../src/mev_inspectors/jit/jit_cex_dex.rs | 6 +- .../src/mev_inspectors/jit/jit_liquidity.rs | 26 ++-- .../src/mev_inspectors/liquidations.rs | 2 +- .../src/mev_inspectors/sandwich/mod.rs | 49 ++++--- .../src/mev_inspectors/searcher_activity.rs | 2 +- .../src/mev_inspectors/shared_utils.rs | 28 ++-- .../brontes-inspect/src/test_utils/benches.rs | 6 +- .../brontes-inspect/src/test_utils/tests.rs | 10 +- .../src/action_classifier/action_dispatch.rs | 4 +- .../src/action_classifier/action_impl.rs | 14 +- .../src/bench_struct_methods.rs | 4 +- .../src/discovery_classifier/mod.rs | 8 +- crates/brontes-macros/src/function_metrics.rs | 2 +- crates/brontes-macros/src/libmdbx_test.rs | 2 +- crates/brontes-macros/src/transpose.rs | 2 +- .../src/prometheus_exporter.rs | 6 +- .../src/function_call_bench.rs | 2 +- .../src/graphs/all_pair_graph.rs | 10 +- .../brontes-pricing/src/graphs/dijkstras.rs | 4 +- crates/brontes-pricing/src/graphs/registry.rs | 8 +- .../src/graphs/state_tracker.rs | 10 +- crates/brontes-pricing/src/graphs/subgraph.rs | 64 +++++---- .../src/graphs/subgraph_verifier.rs | 8 +- crates/brontes-pricing/src/graphs/yens.rs | 4 +- crates/brontes-pricing/src/lib.rs | 58 ++++----- crates/brontes-pricing/src/protocols/lazy.rs | 12 +- .../src/protocols/uniswap_v2/mod.rs | 6 +- .../protocols/uniswap_v3/batch_request/mod.rs | 2 +- .../src/protocols/uniswap_v3/mod.rs | 36 +++--- crates/brontes-pricing/src/subgraph_query.rs | 4 +- crates/brontes-pricing/src/types.rs | 8 +- .../relays-openapi/src/apis/mod.rs | 2 +- crates/brontes-types/src/buf_writer.rs | 6 +- .../brontes-types/src/db/address_metadata.rs | 9 +- .../src/db/cex/quotes/cex_quotes.rs | 15 ++- .../src/db/cex/quotes/download.rs | 6 +- .../src/db/cex/trades/download.rs | 2 +- .../src/db/cex/trades/optimistic.rs | 8 +- .../src/db/cex/trades/time_window_vwam.rs | 16 +-- .../brontes-types/src/db/cex/trades/utils.rs | 26 ++-- .../src/db/clickhouse_serde/dex.rs | 2 +- crates/brontes-types/src/db/dex.rs | 20 +-- crates/brontes-types/src/db/metadata.rs | 6 +- crates/brontes-types/src/db/searcher.rs | 2 +- crates/brontes-types/src/db/traces.rs | 64 ++++----- crates/brontes-types/src/db_write_trigger.rs | 4 +- crates/brontes-types/src/executor.rs | 2 +- crates/brontes-types/src/mev/sandwich.rs | 26 ++-- .../src/normalized_actions/accounting.rs | 2 +- .../src/normalized_actions/comparison.rs | 6 +- .../src/normalized_actions/mod.rs | 4 +- .../src/normalized_actions/swaps.rs | 2 +- crates/brontes-types/src/test_limiter.rs | 4 +- .../brontes-types/src/tree/frontend_prunes.rs | 8 +- crates/brontes-types/src/tree/mod.rs | 6 +- crates/brontes-types/src/tree/node.rs | 74 +++++------ crates/brontes-types/src/tree/root.rs | 5 +- crates/brontes-types/src/tree/search_args.rs | 4 +- crates/brontes-types/src/tree/tx_info.rs | 18 ++- crates/brontes-types/src/tree/util/flatten.rs | 6 +- crates/reth-tracing-ext/src/lib.rs | 34 ++--- crates/reth-tracing-ext/src/provider.rs | 6 +- .../src/reth_tracer/inspector.rs | 8 +- .../reth-tracing-ext/src/reth_tracer/types.rs | 122 +++++++++--------- 115 files changed, 711 insertions(+), 685 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6004b2257..4f456b7fcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,7 @@ on: push: branches: - main + - rust-patch pull_request: branches: [main] @@ -36,7 +37,7 @@ jobs: RUSTFLAGS: -D warnings build: - name: "build and fmt" + name: "build" if: github.event.pull_request.draft == false runs-on: ubuntu-latest timeout-minutes: 30 @@ -46,7 +47,7 @@ jobs: - uses: dtolnay/rust-toolchain@stable with: toolchain: 1.85.0 - components: clippy,rustfmt + components: clippy - uses: Swatinem/rust-cache@v2 with: @@ -63,8 +64,25 @@ jobs: env: RUSTFLAGS: -D warnings - - name: "cargo fmt" - run: cargo fmt --all --check + cargo-fmt: + name: cargo fmt + runs-on: ubuntu-latest + steps: + - name: Check-Out + uses: actions/checkout@v4 + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + - name: Install Nightly + run: | + rustup toolchain install nightly + rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + + - name: cargo +nightly fmt + run: cargo +nightly fmt --all -- --check test: runs-on: ubuntu-latest diff --git a/crates/bin/src/cli/db/cex_data.rs b/crates/bin/src/cli/db/cex_data.rs index 615014b4c4..ec5fae761c 100644 --- a/crates/bin/src/cli/db/cex_data.rs +++ b/crates/bin/src/cli/db/cex_data.rs @@ -70,9 +70,9 @@ impl CexDB { let exchanges_to_use = &cex_config.exchanges_to_use; let pair_exists = exchanges_to_use.iter().any(|exchange| { - cex_trades.get(exchange).is_some_and(|pairs| { - pairs.contains_key(&pair) || pairs.contains_key(&pair.flip()) - }) + cex_trades + .get(exchange) + .is_some_and(|pairs| pairs.contains_key(&pair) || pairs.contains_key(&pair.flip())) }); if !pair_exists { @@ -224,7 +224,7 @@ struct TradeStats { } fn print_trade_stats(stats: &[TradeStats]) { if stats.is_empty() { - return + return; } let symbol = &stats[0].symbol; diff --git a/crates/bin/src/cli/db/export.rs b/crates/bin/src/cli/db/export.rs index 4fb9327aef..b2bf069b13 100644 --- a/crates/bin/src/cli/db/export.rs +++ b/crates/bin/src/cli/db/export.rs @@ -45,11 +45,11 @@ impl Export { Ok(Ok(_)) => (), Ok(Err(e)) => { error!("Failed to export table: {}", e); - return Err(e) + return Err(e); } Err(e) => { error!("Task failed: {}", e); - return Err(eyre::eyre!("Task failed: {}", e)) + return Err(eyre::eyre!("Task failed: {}", e)); } } } diff --git a/crates/bin/src/cli/db/r2_uploader.rs b/crates/bin/src/cli/db/r2_uploader.rs index 284347a9cc..c0977bb01d 100644 --- a/crates/bin/src/cli/db/r2_uploader.rs +++ b/crates/bin/src/cli/db/r2_uploader.rs @@ -53,7 +53,7 @@ impl R2Uploader { .await { tracing::error!(error=%e); - return Ok(()) + return Ok(()); } tracing::info!("uploading files completed"); } @@ -69,7 +69,7 @@ impl R2Uploader { .execute(self.rayon_tasks) { tracing::error!(error=%e); - return Ok(()) + return Ok(()); } tracing::info!( @@ -81,7 +81,7 @@ impl R2Uploader { .await { tracing::error!(error=%e); - return Ok(()) + return Ok(()); } Ok(()) diff --git a/crates/bin/src/cli/db/snapshot.rs b/crates/bin/src/cli/db/snapshot.rs index be9be9da19..016848281b 100644 --- a/crates/bin/src/cli/db/snapshot.rs +++ b/crates/bin/src/cli/db/snapshot.rs @@ -151,7 +151,7 @@ impl Snapshot { // NOTE: assumes r2 data is continuous fn ranges_to_download(&self, ranges_avail: Vec) -> eyre::Result { if self.start_block.is_none() && self.end_block.is_none() { - return Ok(RangeOrFull::Full) + return Ok(RangeOrFull::Full); } if ranges_avail.is_empty() { diff --git a/crates/bin/src/cli/run.rs b/crates/bin/src/cli/run.rs index e6df7c0239..8eeefcc940 100644 --- a/crates/bin/src/cli/run.rs +++ b/crates/bin/src/cli/run.rs @@ -264,7 +264,7 @@ impl RunArgs { fn check_proper_range(&self) -> eyre::Result<()> { if let (Some(start), Some(end)) = (&self.start_block, &self.end_block) { if start > end { - return Err(eyre::eyre!("start block must be less than end block")) + return Err(eyre::eyre!("start block must be less than end block")); } } Ok(()) @@ -288,7 +288,7 @@ fn parse_ranges(ranges: &[String]) -> Result, String> { return Err(format!( "start block {} must be less than or equal to end block {}", start, end - )) + )); } Ok((start, end)) }) diff --git a/crates/bin/src/executors/mod.rs b/crates/bin/src/executors/mod.rs index 1938d88064..2912fb4c65 100644 --- a/crates/bin/src/executors/mod.rs +++ b/crates/bin/src/executors/mod.rs @@ -633,7 +633,7 @@ impl #[cfg(feature = "sorella-server")] fn calculate_buffer_size(state_to_init: &StateToInitialize, max_tasks: usize) -> usize { if state_to_init.ranges_to_init.is_empty() { - return (max_tasks / 4).clamp(4, 30) + return (max_tasks / 4).clamp(4, 30); } let initializing_cex = state_to_init.ranges_to_init.contains_key(&Tables::CexPrice) @@ -686,7 +686,7 @@ impl RangeType { match self { RangeType::SingleRange { start_block, from_db_tip, .. } => { if !from_db_tip { - return *start_block + return *start_block; } db.get_most_recent_block().ok() } diff --git a/crates/bin/src/executors/processors/mev.rs b/crates/bin/src/executors/processors/mev.rs index 90fbc2ddc0..d988a0dd25 100644 --- a/crates/bin/src/executors/processors/mev.rs +++ b/crates/bin/src/executors/processors/mev.rs @@ -120,7 +120,7 @@ async fn output_mev_and_update_searcher_info( ); if mev.header.mev_type == MevType::Unknown || mev.header.mev_type == MevType::SearcherTx { - continue + continue; } let (eoa_info, contract_info) = database diff --git a/crates/bin/src/executors/range.rs b/crates/bin/src/executors/range.rs index 02a2cf3a5f..c53e195823 100644 --- a/crates/bin/src/executors/range.rs +++ b/crates/bin/src/executors/range.rs @@ -147,7 +147,7 @@ impl { cx.waker().wake_by_ref(); - break + break; } } } diff --git a/crates/bin/src/executors/shared/dex_pricing.rs b/crates/bin/src/executors/shared/dex_pricing.rs index 4bf8ccc6cf..bc31e94d35 100644 --- a/crates/bin/src/executors/shared/dex_pricing.rs +++ b/crates/bin/src/executors/shared/dex_pricing.rs @@ -113,7 +113,7 @@ impl WaitingForPricerFuture { self.pending_trees.retain(|pending_block, _| { if &block > pending_block { tracing::error!(block=%pending_block, "pending tree never had dex pricing"); - return false + return false; } true @@ -137,7 +137,7 @@ impl Stream for WaitingForPricerFuture { if !self.pricing_resolved_cache.is_empty() { let (resolved_block, pricing) = self.pricing_resolved_cache.pop_front().unwrap(); if resolved_block <= self.max_tree_block { - return self.process_resolved_pricing(resolved_block, pricing) + return self.process_resolved_pricing(resolved_block, pricing); } // not ready yet so push to front @@ -148,7 +148,7 @@ impl Stream for WaitingForPricerFuture { if let Poll::Ready(handle) = self.receiver.poll_recv(cx) { let Some((pricer, inner)) = handle else { tracing::warn!("tokio task exited"); - return Poll::Ready(None) + return Poll::Ready(None); }; self.reschedule(pricer); @@ -165,14 +165,14 @@ impl Stream for WaitingForPricerFuture { ); self.pricing_resolved_cache.push_back((block, prices)); - return Poll::Pending + return Poll::Pending; } - return self.process_resolved_pricing(block, prices) + return self.process_resolved_pricing(block, prices); } tracing::info!("pricing returned completed"); // means we have completed chunks - return Poll::Ready(None) + return Poll::Ready(None); } Poll::Pending diff --git a/crates/bin/src/executors/shared/metadata_loader.rs b/crates/bin/src/executors/shared/metadata_loader.rs index d3140e154a..10e447484d 100644 --- a/crates/bin/src/executors/shared/metadata_loader.rs +++ b/crates/bin/src/executors/shared/metadata_loader.rs @@ -141,7 +141,7 @@ impl MetadataLoader { let last_block = block + offsets; self.cex_window_data.init(last_block, trades); - return Some(self.cex_window_data.cex_trade_map()) + return Some(self.cex_window_data.cex_trade_map()); } let last_block = self.cex_window_data.get_last_end_block_loaded() + 1; @@ -276,7 +276,7 @@ impl MetadataLoader { error!(err=?e); }) { - break res + break res; } else { tracing::warn!( ?block, @@ -306,7 +306,7 @@ impl MetadataLoader { trades.merge_in_map(range.value); } - break trades + break trades; } else { tracing::warn!( ?block, @@ -335,10 +335,10 @@ impl Stream for MetadataLoader ) -> std::task::Poll> { if self.force_no_dex_pricing { if let Some(res) = self.result_buf.pop_front() { - return Poll::Ready(Some(res)) + return Poll::Ready(Some(res)); } cx.waker().wake_by_ref(); - return Poll::Pending + return Poll::Pending; } while let Poll::Ready(Some((block, tree, meta))) = diff --git a/crates/bin/src/executors/shared/state_collector.rs b/crates/bin/src/executors/shared/state_collector.rs index 28693a15eb..766ca66cf2 100644 --- a/crates/bin/src/executors/shared/state_collector.rs +++ b/crates/bin/src/executors/shared/state_collector.rs @@ -89,7 +89,7 @@ impl ) -> eyre::Result<(BlockHash, BlockTree)> { let Some((block_hash, traces, header)) = fut.await else { classifier.block_load_failure(block); - return Err(eyre!("no traces found {block}")) + return Err(eyre!("no traces found {block}")); }; trace!("Got {} traces + header", traces.len()); @@ -153,7 +153,7 @@ impl Str } Poll::Ready(Err(e)) => { tracing::error!(error = %e, "state collector"); - return Poll::Ready(None) + return Poll::Ready(None); } Poll::Pending => { self.collection_future = Some(collection_future); @@ -165,7 +165,7 @@ impl Str && self.metadata_fetcher.is_finished() && self.collection_future.is_none() { - return Poll::Ready(None) + return Poll::Ready(None); } self.metadata_fetcher diff --git a/crates/bin/src/executors/tip.rs b/crates/bin/src/executors/tip.rs index d4f9b00066..047a104a8d 100644 --- a/crates/bin/src/executors/tip.rs +++ b/crates/bin/src/executors/tip.rs @@ -82,7 +82,7 @@ impl bool { if self.state_collector.is_collecting_state() { - return false + return false; } match self.parser.get_latest_block_number() { @@ -97,7 +97,7 @@ impl bool { if self.state_collector.is_collecting_state() { - return false + return false; } let cur_block = tokio::task::block_in_place(|| { diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index d4d6e09d6b..07c84e4719 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -115,7 +115,7 @@ fn process_pool_balance_changes( for (i, &token_address) in logs.tokens.iter().enumerate() { if logs.deltas[i].is_zero() { - continue + continue; } let token = db.try_fetch_token_info(token_address)?; diff --git a/crates/brontes-classifier/src/classifiers/erc20.rs b/crates/brontes-classifier/src/classifiers/erc20.rs index a8cd31fe75..5d6b696a7f 100644 --- a/crates/brontes-classifier/src/classifiers/erc20.rs +++ b/crates/brontes-classifier/src/classifiers/erc20.rs @@ -42,7 +42,7 @@ pub async fn try_decode_transfer { - libmdbx: &'db DB, + libmdbx: &'db DB, provider: Arc, } @@ -84,10 +84,10 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> DiscoveryOnlyClassif private: false, total_msg_value_transfers: vec![], gas_details: GasDetails { - coinbase_transfer: None, - gas_used: trace.gas_used, + coinbase_transfer: None, + gas_used: trace.gas_used, effective_gas_price: trace.effective_price, - priority_fee: trace.effective_price + priority_fee: trace.effective_price - (header.base_fee_per_gas.unwrap_or_default() as u128), }, data_store: NodeData(vec![Some(action)]), diff --git a/crates/brontes-classifier/src/multi_frame_classification/batch/uni_x.rs b/crates/brontes-classifier/src/multi_frame_classification/batch/uni_x.rs index 72470dc644..ee5cfa388b 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/batch/uni_x.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/batch/uni_x.rs @@ -36,11 +36,11 @@ impl MultiCallFrameClassifier for UniswapX { user_swap.trace_index = trace_index.trace_index; user_swap.token_in = t.token.clone(); user_swap.amount_in = t.amount.clone(); - break + break; } else if t.from == this.solver && t.to == user_swap.from { user_swap.token_out = t.token.clone(); user_swap.amount_out = t.amount.clone(); - break + break; } } } @@ -50,13 +50,13 @@ impl MultiCallFrameClassifier for UniswapX { user_swap.trace_index = trace_index.trace_index; user_swap.token_in = TokenInfoWithAddress::native_eth(); user_swap.amount_in = et.clone().value.to_scaled_rational(18); - break + break; } else if et.from == this.settlement_contract && et.to == user_swap.from { user_swap.token_out = TokenInfoWithAddress::native_eth(); user_swap.amount_out = et.clone().value.to_scaled_rational(18); - break + break; } } } @@ -64,22 +64,22 @@ impl MultiCallFrameClassifier for UniswapX { if let Some(swaps) = &mut this.solver_swaps { swaps.push(s.clone()); nodes_to_prune.push(trace_index); - break + break; } else { this.solver_swaps = Some(vec![s.clone()]); nodes_to_prune.push(trace_index); - break + break; } } Action::SwapWithFee(s) => { if let Some(swaps) = &mut this.solver_swaps { swaps.push(s.swap.clone()); nodes_to_prune.push(trace_index); - break + break; } else { this.solver_swaps = Some(vec![s.swap.clone()]); nodes_to_prune.push(trace_index); - break + break; } } _ => { diff --git a/crates/brontes-classifier/src/multi_frame_classification/flash_loan/balancer.rs b/crates/brontes-classifier/src/multi_frame_classification/flash_loan/balancer.rs index b034b7d3c1..97f5d9d960 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/flash_loan/balancer.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/flash_loan/balancer.rs @@ -40,7 +40,7 @@ impl MultiCallFrameClassifier for BalancerV2 { if t.amount >= this.amounts[i] { repay_transfers.push(t.clone()); nodes_to_prune.push(index); - continue + continue; } } } @@ -49,7 +49,7 @@ impl MultiCallFrameClassifier for BalancerV2 { } _ => { warn!("Balancer V2 flashloan, unknown call"); - continue + continue; } } } diff --git a/crates/brontes-classifier/src/multi_frame_classification/flash_loan/dodo.rs b/crates/brontes-classifier/src/multi_frame_classification/flash_loan/dodo.rs index a7f1377164..c74c8747b3 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/flash_loan/dodo.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/flash_loan/dodo.rs @@ -40,7 +40,7 @@ impl MultiCallFrameClassifier for Dodo { if t.amount >= this.amounts[i] { repay_transfers.push(t.clone()); nodes_to_prune.push(index); - continue + continue; } } } @@ -49,7 +49,7 @@ impl MultiCallFrameClassifier for Dodo { } _ => { warn!("Dodo flashloan, unknown call"); - continue + continue; } } } diff --git a/crates/brontes-classifier/src/multi_frame_classification/flash_loan/maker_dss.rs b/crates/brontes-classifier/src/multi_frame_classification/flash_loan/maker_dss.rs index b8be9c8cb0..cb9b7c324c 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/flash_loan/maker_dss.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/flash_loan/maker_dss.rs @@ -40,7 +40,7 @@ impl MultiCallFrameClassifier for MakerDss { if t.amount >= this.amounts[i] { repay_transfers.push(t.clone()); nodes_to_prune.push(index); - continue + continue; } } } @@ -49,7 +49,7 @@ impl MultiCallFrameClassifier for MakerDss { } _ => { warn!("Maker DSS flashloan, unknown call"); - continue + continue; } } } diff --git a/crates/brontes-classifier/src/test_utils/tests.rs b/crates/brontes-classifier/src/test_utils/tests.rs index ba47a3908d..790cb4bf68 100644 --- a/crates/brontes-classifier/src/test_utils/tests.rs +++ b/crates/brontes-classifier/src/test_utils/tests.rs @@ -303,7 +303,7 @@ impl ClassifierTestUtils { let price = if let Some((_p_block, pricing)) = pricer.next().await { Some(pricing) } else { - return Err(ClassifierTestUtilsError::DexPricingError) + return Err(ClassifierTestUtilsError::DexPricingError); }; Ok((tree, price)) @@ -441,7 +441,7 @@ impl ClassifierTestUtils { let price = if let Some((_p_block, pricing)) = pricer.next().await { Some(pricing) } else { - return Err(ClassifierTestUtilsError::DexPricingError) + return Err(ClassifierTestUtilsError::DexPricingError); }; Ok((tree, price)) diff --git a/crates/brontes-classifier/src/tree_builder/mod.rs b/crates/brontes-classifier/src/tree_builder/mod.rs index c328e9e7f9..3711678688 100644 --- a/crates/brontes-classifier/src/tree_builder/mod.rs +++ b/crates/brontes-classifier/src/tree_builder/mod.rs @@ -143,7 +143,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D empty = trace.trace.is_empty(), is_success = trace.is_success ); - return None + return None; } // post classification processing collectors let mut further_classification_requests = Vec::new(); @@ -220,7 +220,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D }); tx_root.insert(node, vec![classification]); - continue + continue; } } @@ -329,7 +329,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D trace_index: u64, ) -> (Vec, Vec) { if trace.trace.error.is_some() { - return (vec![], vec![Action::Revert]) + return (vec![], vec![Action::Revert]); } let (pricing, base_action) = match trace.action_type() { TraceAction::Call(_) => { @@ -365,7 +365,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D trace_index: u64, ) -> (Vec, Vec) { if trace.is_static_call() { - return (vec![], vec![Action::Unclassified(trace)]) + return (vec![], vec![Action::Unclassified(trace)]); } let mut call_info = trace.get_callframe_info(); @@ -410,14 +410,14 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D .classify_transfer(tx_idx, trace_index, &trace, block) .await { - return transfer + return transfer; } else { return ( vec![], vec![self .classify_eth_transfer(&trace, trace_index) .unwrap_or(Action::Unclassified(trace))], - ) + ); } } @@ -429,7 +429,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D block: u64, ) -> Option<(Vec, Vec)> { if trace.is_delegate_call() { - return None + return None; }; // Attempt to decode the transfer @@ -453,7 +453,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D || transfer.from != from || transfer.to != to { - continue + continue; } let decimals = transfer.token.decimals; @@ -465,7 +465,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D transfer.amount = transferred_amount; transfer.fee = fee; } - break + break; } } @@ -518,7 +518,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D action: Action::Transfer(transfer.clone()), })], vec![Action::Transfer(transfer)], - )) + )); } } None @@ -555,7 +555,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D if created_addr == Address::ZERO { tracing::error!(target: "brontes_classifier::discovery", "created address is zero address"); - return (vec![], vec![Action::Unclassified(trace)]) + return (vec![], vec![Action::Unclassified(trace)]); } // get the immediate parent node of this create action so that we can decode the @@ -589,7 +589,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D "No root head found for trace index: {}", trace_index ); - return (vec![], vec![Action::Unclassified(trace)]) + return (vec![], vec![Action::Unclassified(trace)]); } }; @@ -606,7 +606,7 @@ impl<'db, T: TracingProvider, DB: LibmdbxReader + DBWriter> Classifier<'db, T, D "No parent calldata found for created address: {}", created_addr ); - return (vec![], vec![Action::Unclassified(trace)]) + return (vec![], vec![Action::Unclassified(trace)]); } join_all( diff --git a/crates/brontes-classifier/src/tree_builder/tree_pruning.rs b/crates/brontes-classifier/src/tree_builder/tree_pruning.rs index 5a8b263189..2feff03397 100644 --- a/crates/brontes-classifier/src/tree_builder/tree_pruning.rs +++ b/crates/brontes-classifier/src/tree_builder/tree_pruning.rs @@ -34,12 +34,12 @@ pub(crate) fn account_for_tax_tokens(tree: &mut BlockTree) { return Some(( Some(((swaps.pop().unwrap(), eth_transfers.pop()), idx)), None, - )) + )); } else if !transfers.is_empty() { return Some(( None, Some(((transfers.pop().unwrap(), eth_transfers.pop()), idx)), - )) + )); } None }) @@ -48,7 +48,7 @@ pub(crate) fn account_for_tax_tokens(tree: &mut BlockTree) { for ((mut swap, eth_transfer), swap_idx) in swaps { transfers.iter_mut().for_each(|((transfer, _), _)| { if transfer.fee == Rational::ZERO { - return + return; } // adjust the amount out case @@ -91,7 +91,7 @@ pub(crate) fn account_for_tax_tokens(tree: &mut BlockTree) { swap.push(Action::EthTransfer(eth_t)); } data.replace(swap_idx, swap); - return + return; } }); } diff --git a/crates/brontes-classifier/src/tree_builder/utils.rs b/crates/brontes-classifier/src/tree_builder/utils.rs index c5dac0dac6..d9f845ed95 100644 --- a/crates/brontes-classifier/src/tree_builder/utils.rs +++ b/crates/brontes-classifier/src/tree_builder/utils.rs @@ -6,7 +6,7 @@ pub(crate) fn get_coinbase_transfer(builder: Address, action: &Action) -> Option match action { Action::Call(action) => { if action.to == builder && !action.value.is_zero() { - return Some(action.value.to()) + return Some(action.value.to()); } None } @@ -19,14 +19,14 @@ const TRANSFER_TOPIC: B256 = pub(crate) fn decode_transfer(log: &Log) -> Option<(Address, Address, Address, U256)> { if log.topics().len() != 3 { - return None + return None; } if log.topics().first() == Some(&TRANSFER_TOPIC) { let from = Address::from_slice(&log.topics()[1][12..]); let to = Address::from_slice(&log.topics()[2][12..]); let data = U256::try_from_be_slice(&log.data.data[..])?; - return Some((log.address, from, to, data)) + return Some((log.address, from, to, data)); } None diff --git a/crates/brontes-core/src/decoding/dyn_decode.rs b/crates/brontes-core/src/decoding/dyn_decode.rs index b1392dfd19..90aa5bb65f 100644 --- a/crates/brontes-core/src/decoding/dyn_decode.rs +++ b/crates/brontes-core/src/decoding/dyn_decode.rs @@ -69,8 +69,8 @@ pub fn decode_input_with_abi( return Ok(Some(DecodedCallData { function_name: function.name.clone(), - call_data: input_results, - return_data: output, + call_data: input_results, + return_data: output, })); } } @@ -87,42 +87,42 @@ fn decode_params( DynSolValue::Bool(bool) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Bool.sol_type_name().to_string(), - value: bool.to_string(), + value: bool.to_string(), }), DynSolValue::Int(i, size) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Int(size).to_string(), - value: i.to_string(), + value: i.to_string(), }), DynSolValue::Uint(i, size) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Uint(size).to_string(), - value: i.to_string(), + value: i.to_string(), }), DynSolValue::FixedBytes(word, size) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::FixedBytes(size).to_string(), - value: word.to_string(), + value: word.to_string(), }), DynSolValue::Address(address) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Address.to_string(), - value: format!("{:?}", address), + value: format!("{:?}", address), }), DynSolValue::Function(function) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Function.to_string(), - value: function.to_string(), + value: function.to_string(), }), DynSolValue::Bytes(bytes) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::Bytes.to_string(), - value: alloy_primitives::Bytes::from(bytes).to_string(), + value: alloy_primitives::Bytes::from(bytes).to_string(), }), DynSolValue::String(string) => output.push(DecodedParams { field_name: field_name.remove(0), field_type: DynSolType::String.to_string(), - value: string, + value: string, }), DynSolValue::Array(ref array) => { let string_val = value_parse(array, false); @@ -130,7 +130,7 @@ fn decode_params( output.push(DecodedParams { field_name: field_name.remove(0), field_type: type_name, - value: string_val, + value: string_val, }) } DynSolValue::FixedArray(ref fixed_array) => { @@ -139,7 +139,7 @@ fn decode_params( output.push(DecodedParams { field_name: field_name.remove(0), field_type: type_name, - value: string_val, + value: string_val, }) } DynSolValue::Tuple(ref tuple) => { @@ -148,7 +148,7 @@ fn decode_params( output.push(DecodedParams { field_name: field_name.remove(0), field_type: type_name, - value: string_val, + value: string_val, }) } } diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index 8049d4a287..757237fea9 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -25,16 +25,16 @@ use crate::errors::TraceParseError; /// A [`TraceParser`] will iterate through a block's Parity traces and attempt /// to decode each call for later analysis. pub struct TraceParser { - libmdbx: &'static DB, - pub tracer: Arc, + libmdbx: &'static DB, + pub tracer: Arc, pub(crate) metrics_tx: Arc>, } impl Clone for TraceParser { fn clone(&self) -> Self { Self { - libmdbx: self.libmdbx, - tracer: self.tracer.clone(), + libmdbx: self.libmdbx, + tracer: self.tracer.clone(), metrics_tx: self.metrics_tx.clone(), } } diff --git a/crates/brontes-core/src/local_provider.rs b/crates/brontes-core/src/local_provider.rs index 22313ed6e2..26757c3478 100644 --- a/crates/brontes-core/src/local_provider.rs +++ b/crates/brontes-core/src/local_provider.rs @@ -43,7 +43,7 @@ impl TracingProvider for LocalProvider { .block(block_number.unwrap_or(BlockId::latest())) .await; if res.is_ok() || attempts > self.retries { - return res.map_err(Into::into) + return res.map_err(Into::into); } attempts += 1 } diff --git a/crates/brontes-core/src/test_utils/mod.rs b/crates/brontes-core/src/test_utils/mod.rs index 9039fa7d27..fa2142928e 100644 --- a/crates/brontes-core/src/test_utils/mod.rs +++ b/crates/brontes-core/src/test_utils/mod.rs @@ -112,7 +112,7 @@ impl TraceLoader { tracing::info!("fetched missing data"); return self .test_metadata(block, USDT_ADDRESS) - .map_err(|_| TraceLoaderError::NoMetadataFound(block)) + .map_err(|_| TraceLoaderError::NoMetadataFound(block)); } } @@ -521,13 +521,13 @@ fn init_crit_tables(db: &LibmdbxReadWriter) -> bool { tracing::info!("no highest block found"); write_fn(0); - return true + return true; }; // try load file. let Ok(cache_data) = std::fs::read_to_string(".test_cache.json") else { tracing::info!("no .test_cache.json found"); write_fn(max_block); - return true + return true; }; let stats: CritTablesCache = serde_json::from_str(&cache_data).unwrap(); diff --git a/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs b/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs index 094c0833cf..1f1f20ae1e 100644 --- a/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs +++ b/crates/brontes-database/brontes-db/src/clickhouse/db_client.rs @@ -1,9 +1,7 @@ -use std::fmt::Debug; -use std::str::FromStr; +use std::{fmt::Debug, str::FromStr}; use ::clickhouse::DbRow; -use alloy_primitives::Address; -use alloy_primitives::{BlockHash, TxHash}; +use alloy_primitives::{Address, BlockHash, TxHash}; use async_rate_limiter::{RateLimiter, RateLimiterBuilder, TimeUnit}; use backon::{ExponentialBuilder, Retryable}; #[cfg(feature = "local-clickhouse")] @@ -65,12 +63,12 @@ const MAX_MARKOUT_TIME: f64 = 300.0; #[derive(Clone)] pub struct Clickhouse { - pub tip: bool, - pub run_id: u64, - pub client: ClickhouseClient, - pub rate_limiter: RateLimiter, + pub tip: bool, + pub run_id: u64, + pub client: ClickhouseClient, + pub rate_limiter: RateLimiter, pub cex_download_config: CexDownloadConfig, - pub buffered_insert_tx: Option>>, + pub buffered_insert_tx: Option>>, } impl Clickhouse { @@ -991,11 +989,11 @@ where #[derive(Debug, Serialize, Deserialize, clickhouse::Row)] pub struct ClickhouseCritTableCount { - pub pool_creation: u64, + pub pool_creation: u64, pub address_to_protocol: u64, - pub tokens: u64, - pub builder: u64, - pub address_meta: u64, + pub tokens: u64, + pub builder: u64, + pub address_meta: u64, } impl ClickhouseCritTableCount { @@ -1110,7 +1108,7 @@ mod tests { let test_db = Clickhouse::new_default(Some(0)).await; let cex_quotes_for_block = test_db .get_cex_prices(CexRangeOrArbitrary::Timestamp { - block_number: 19000000, + block_number: 19000000, block_timestamp: 1705173443, }) .await @@ -1125,7 +1123,7 @@ mod tests { let test_db = Clickhouse::new_default(Some(0)).await; let cex_trades_for_block = test_db .get_cex_trades(CexRangeOrArbitrary::Timestamp { - block_number: 19000000, + block_number: 19000000, block_timestamp: 1705173443, }) .await @@ -1154,8 +1152,8 @@ mod tests { let case0 = DexQuotesWithBlockNumber { block_number: Default::default(), - tx_idx: Default::default(), - quote: Some(case0_map), + tx_idx: Default::default(), + quote: Some(case0_map), }; db.insert_one::(&case0) @@ -1219,39 +1217,41 @@ mod tests { async fn cex_dex_quotes(db: &ClickhouseTestClient) { let swap = NormalizedSwap { - protocol: Protocol::UniswapV2, - from: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), - recipient: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), - pool: hex!("88e6a0c2ddd26feeb64f039a2c41296fcb3f5640").into(), - token_in: TokenInfoWithAddress::weth(), - token_out: TokenInfoWithAddress::usdc(), - amount_in: Rational::from_unsigneds( + protocol: Protocol::UniswapV2, + from: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), + recipient: hex!("a69babef1ca67a37ffaf7a485dfff3382056e78c").into(), + pool: hex!("88e6a0c2ddd26feeb64f039a2c41296fcb3f5640").into(), + token_in: TokenInfoWithAddress::weth(), + token_out: TokenInfoWithAddress::usdc(), + amount_in: Rational::from_unsigneds( 3122757495341445439573u128, 1000000000000000000u128, ), - amount_out: Rational::from_unsigneds(1254253571443u64, 250000u64), + amount_out: Rational::from_unsigneds(1254253571443u64, 250000u64), trace_index: 2, - msg_value: Uint::from(0), + msg_value: Uint::from(0), }; let case0 = CexDexQuote { - tx_hash: hex!("ba217d10561a1cd6c52830dcc673886901e69ddb4db5e50c83f39ff0cfd14377") - .into(), - block_timestamp: 1694364587, - block_number: 18107273, - swaps: vec![swap], + tx_hash: hex!( + "ba217d10561a1cd6c52830dcc673886901e69ddb4db5e50c83f39ff0cfd14377" + ) + .into(), + block_timestamp: 1694364587, + block_number: 18107273, + swaps: vec![swap], instant_mid_price: vec![0.0006263290093187073], - t2_mid_price: vec![0.0006263290093187073], - t12_mid_price: vec![0.0006263290093187073], - t30_mid_price: vec![0.0006263290093187073], - t60_mid_price: vec![0.0006263290093187073], - t300_mid_price: vec![0.0006263290093187073], - exchange: CexExchange::Binance, - pnl: 12951.829205242997, - gas_details: GasDetails { - coinbase_transfer: Some(11419369165096275986), - priority_fee: 0, - gas_used: 271686, + t2_mid_price: vec![0.0006263290093187073], + t12_mid_price: vec![0.0006263290093187073], + t30_mid_price: vec![0.0006263290093187073], + t60_mid_price: vec![0.0006263290093187073], + t300_mid_price: vec![0.0006263290093187073], + exchange: CexExchange::Binance, + pnl: 12951.829205242997, + gas_details: GasDetails { + coinbase_transfer: Some(11419369165096275986), + priority_fee: 0, + gas_used: 271686, effective_gas_price: 8875282233, }, }; @@ -1351,20 +1351,20 @@ mod tests { async fn pools(db: &ClickhouseTestClient) { let case0 = ProtocolInfoClickhouse { - protocol: "NONE".to_string(), + protocol: "NONE".to_string(), protocol_subtype: "NONE".to_string(), - address: "0x229b8325bb9Ac04602898B7e8989998710235d5f" + address: "0x229b8325bb9Ac04602898B7e8989998710235d5f" .to_string() .into(), - tokens: vec!["0x229b8325bb9Ac04602898B7e8989998710235d5f" + tokens: vec!["0x229b8325bb9Ac04602898B7e8989998710235d5f" .to_string() .into()], - curve_lp_token: Some( + curve_lp_token: Some( "0x229b8325bb9Ac04602898B7e8989998710235d5f" .to_string() .into(), ), - init_block: 0, + init_block: 0, }; db.insert_one::(&case0).await.unwrap(); diff --git a/crates/brontes-database/brontes-db/src/clickhouse/split_db.rs b/crates/brontes-database/brontes-db/src/clickhouse/split_db.rs index 4329d414c4..ce2584e705 100644 --- a/crates/brontes-database/brontes-db/src/clickhouse/split_db.rs +++ b/crates/brontes-database/brontes-db/src/clickhouse/split_db.rs @@ -177,7 +177,7 @@ impl ClickhouseBuffered { let mut message = false; while let Ok(value) = self.rx.try_recv() { if value.is_empty() { - continue + continue; } message = true; @@ -189,7 +189,7 @@ impl ClickhouseBuffered { for (enum_kind, entry) in &mut self.value_map { if entry.is_empty() { - continue + continue; } self.futs.push(Box::pin(tokio::spawn(Self::insert( @@ -240,7 +240,7 @@ impl Future for ClickhouseBuffered { cnt -= 1; if cnt == 0 { - break + break; } } @@ -253,7 +253,7 @@ impl Future for ClickhouseBuffered { work -= 1; if work == 0 { cx.waker().wake_by_ref(); - return Poll::Pending + return Poll::Pending; } } } diff --git a/crates/brontes-database/brontes-db/src/libmdbx/db_utils/libmdbx_partitioning.rs b/crates/brontes-database/brontes-db/src/libmdbx/db_utils/libmdbx_partitioning.rs index b6cba2539b..30d3217df3 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/db_utils/libmdbx_partitioning.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/db_utils/libmdbx_partitioning.rs @@ -259,7 +259,7 @@ impl LibmdbxReadWriter { let mut pinned = std::pin::pin!(no); loop { if pinned.poll_unpin(&mut cx).is_ready() { - break + break; } std::thread::sleep(Duration::from_micros(250)); diff --git a/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs b/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs index a7a81d5053..821cc58171 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs @@ -48,7 +48,7 @@ impl RCloneWrapper { if file_names.ends_with("brontes-db-partition-full-range-tables.tar.gz") || file_names.ends_with("brontes-complete-range.tar.gz") { - return None + return None; } tracing::info!(?file_names); diff --git a/crates/brontes-database/brontes-db/src/libmdbx/env.rs b/crates/brontes-database/brontes-db/src/libmdbx/env.rs index c12a681ff5..35c11f89a0 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/env.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/env.rs @@ -44,9 +44,9 @@ impl DatabaseEnvKind { #[derive(Clone, Debug, Default)] pub struct DatabaseArguments { /// Client version that accesses the database. - client_version: ClientVersion, + client_version: ClientVersion, /// Database log level. If [None], the default value is used. - log_level: Option, + log_level: Option, /// Maximum duration of a read transaction. If [None], the default value is /// used. max_read_transaction_duration: Option, @@ -77,7 +77,7 @@ pub struct DatabaseArguments { /// /// This flag affects only at environment opening but can't be changed /// after. - exclusive: Option, + exclusive: Option, } impl DatabaseArguments { @@ -153,11 +153,11 @@ impl DatabaseEnv { inner_env.set_max_dbs(256); inner_env.set_geometry(Geometry { // Maximum database size of 4 TB - size: Some(0..(4000 * GIGABYTE)), + size: Some(0..(4000 * GIGABYTE)), // We grow the database in increments of a gigabyte - growth_step: Some(GIGABYTE as isize), + growth_step: Some(GIGABYTE as isize), shrink_threshold: Some(GIGABYTE as isize), - page_size: Some(PageSize::Set(default_page_size())), + page_size: Some(PageSize::Set(default_page_size())), }); #[cfg(not(windows))] { diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs index fd635ed4a6..cf2bc4c3ce 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/cursor.rs @@ -33,7 +33,7 @@ pub struct LibmdbxCursor { /// Inner `libmdbx` cursor. pub(crate) inner: brontes_libmdbx::Cursor, /// Phantom data to enforce encoding/decoding. - _dbi: PhantomData, + _dbi: PhantomData, } impl LibmdbxCursor { diff --git a/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs b/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs index 33a37ed146..ae244cc8fc 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs @@ -95,7 +95,7 @@ impl LibmdbxInitializer { // if all libmdbx tables have more entries, we don't init if libmdbx_cnt.all_greater(clickhouse_cnt) { - return Ok(()) + return Ok(()); } } @@ -230,7 +230,7 @@ impl LibmdbxInitializer { Err(e) => { info!(target: "brontes::init", "{} -- Error Writing -- {:?}", T::NAME, e); metrics.increment_query_errors(T::NAME, &e); - return Ok::<(), eyre::Report>(()) + return Ok::<(), eyre::Report>(()); } } @@ -293,7 +293,7 @@ impl LibmdbxInitializer { } Err(e) => { info!(target: "brontes::init", "{} -- Error Writing -- {:?}", T::NAME, e); - return Ok::<(), eyre::Report>(()) + return Ok::<(), eyre::Report>(()); } } @@ -320,7 +320,7 @@ impl LibmdbxInitializer { fn build_critical_state_progress_bar(table_count: u64) -> Option { if table_count == 0 { - return None + return None; } let progress_bar = diff --git a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs index e216f53c9b..efffdf11ee 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_read_write.rs @@ -220,7 +220,7 @@ impl LibmdbxInit for LibmdbxReadWriter { for table in tables_to_init { result.insert(table, vec![start_block as usize..=end_block as usize]); } - return Ok(StateToInitialize { ranges_to_init: result }) + return Ok(StateToInitialize { ranges_to_init: result }); } let start_block = start_block as usize; @@ -258,7 +258,7 @@ impl LibmdbxInit for LibmdbxReadWriter { for (i, mut range) in table_res.into_iter().enumerate() { // if there are no zeros, then this chuck is fully init if range.count_zeros() == 0 { - continue + continue; } let mut sft_cnt = 0; @@ -274,7 +274,7 @@ impl LibmdbxInit for LibmdbxReadWriter { while range.count_ones() != 0 && sft_cnt <= 127 { let leading_zeros = range.leading_zeros(); if leading_zeros == 127 { - break + break; } // if we have leading 1's, skip to the end of the leading ones else if leading_zeros == 0 { @@ -287,11 +287,11 @@ impl LibmdbxInit for LibmdbxReadWriter { // mark the start_block now that we have shifted these out let block = start_block + (i * 128) + sft_cnt as usize; if range_start_block.is_some() || sft_cnt >= 128 { - continue + continue; } range_start_block = Some(block); - continue + continue; } else { // take range, range <<= leading_zeros; @@ -373,7 +373,7 @@ impl StateToInitialize { let end = *f.end(); // if start or end out of range if end < start_block || start > end_block { - return None + return None; } let new_start = std::cmp::max(start_block, start) as u64; diff --git a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_writer.rs b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_writer.rs index e66ac11b3c..8981348790 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_writer.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/libmdbx_writer.rs @@ -630,7 +630,7 @@ impl LibmdbxWriter { .into_iter() .for_each(|(table, values)| { if values.is_empty() { - return + return; } match table { Tables::DexPrice => { diff --git a/crates/brontes-database/brontes-db/src/parquet/mod.rs b/crates/brontes-database/brontes-db/src/parquet/mod.rs index bc705e08e5..e6037ef232 100644 --- a/crates/brontes-database/brontes-db/src/parquet/mod.rs +++ b/crates/brontes-database/brontes-db/src/parquet/mod.rs @@ -70,7 +70,7 @@ where if mev_blocks.is_empty() { error!("No MEV blocks fetched for the given range."); - return Err(Error::msg("No MEV blocks fetched for the given range.")) + return Err(Error::msg("No MEV blocks fetched for the given range.")); } let mev_blocks_iter = mev_blocks.into_iter(); @@ -271,7 +271,7 @@ where if address_metadata.is_empty() { error!("No MEV blocks fetched for the given range."); - return Err(Error::msg("No MEV blocks fetched for the given range.")) + return Err(Error::msg("No MEV blocks fetched for the given range.")); } let address_meta_batch = address_metadata_to_record_batch(address_metadata) @@ -295,7 +295,7 @@ where if eoa_info.is_empty() && contract_info.is_empty() { error!("Searcher EOA & Contracts tables are empty."); - return Err(Error::msg("No indexed searcher")) + return Err(Error::msg("No indexed searcher")); } let searcher_info_batch = searcher_info_to_record_batch(eoa_info, contract_info) @@ -319,7 +319,7 @@ where if builder_info.is_empty() { error!("Builder table is empty."); - return Err(Error::msg("No builder info")) + return Err(Error::msg("No builder info")); } let builder_info_batch = builder_info_to_record_batch(builder_info) diff --git a/crates/brontes-database/libmdbx-rs/src/codec.rs b/crates/brontes-database/libmdbx-rs/src/codec.rs index 14eb3a9e93..87218e7450 100644 --- a/crates/brontes-database/libmdbx-rs/src/codec.rs +++ b/crates/brontes-database/libmdbx-rs/src/codec.rs @@ -86,7 +86,7 @@ impl TableObject for ObjectLength { impl TableObject for [u8; LEN] { fn decode(data_val: &[u8]) -> Result { if data_val.len() != LEN { - return Err(Error::DecodeErrorLenDiff) + return Err(Error::DecodeErrorLenDiff); } let mut a = [0; LEN]; a[..].copy_from_slice(data_val); diff --git a/crates/brontes-database/libmdbx-rs/src/cursor.rs b/crates/brontes-database/libmdbx-rs/src/cursor.rs index 7411cc1e32..3321732c3e 100644 --- a/crates/brontes-database/libmdbx-rs/src/cursor.rs +++ b/crates/brontes-database/libmdbx-rs/src/cursor.rs @@ -383,7 +383,7 @@ where { let res: Result> = self.set_range(key); if let Err(error) = res { - return Iter::Err(Some(error)) + return Iter::Err(Some(error)); }; Iter::new(self, reth_mdbx_sys::MDBX_GET_CURRENT, reth_mdbx_sys::MDBX_NEXT) } @@ -418,7 +418,7 @@ where { let res: Result> = self.set_range(key); if let Err(error) = res { - return IterDup::Err(Some(error)) + return IterDup::Err(Some(error)); }; IterDup::new(self, reth_mdbx_sys::MDBX_GET_CURRENT) } @@ -435,7 +435,7 @@ where Ok(Some(_)) => (), Ok(None) => { let _: Result> = self.last(); - return Iter::new(self, reth_mdbx_sys::MDBX_NEXT, reth_mdbx_sys::MDBX_NEXT) + return Iter::new(self, reth_mdbx_sys::MDBX_NEXT, reth_mdbx_sys::MDBX_NEXT); } Err(error) => return Iter::Err(Some(error)), }; diff --git a/crates/brontes-database/libmdbx-rs/src/environment.rs b/crates/brontes-database/libmdbx-rs/src/environment.rs index 08180c8fc3..47281d5d4e 100644 --- a/crates/brontes-database/libmdbx-rs/src/environment.rs +++ b/crates/brontes-database/libmdbx-rs/src/environment.rs @@ -130,10 +130,10 @@ impl Environment { warn!(target: "brontes-libmdbx", "Process stalled, awaiting read-write transaction lock."); } sleep(Duration::from_millis(15)); - continue + continue; } - break res + break res; }?; Ok(Transaction::new_from_ptr(self.clone(), txn.0)) } @@ -231,7 +231,7 @@ impl Environment { for result in cursor.iter_slices() { let (_key, value) = result?; if value.len() < size_of::() { - return Err(Error::Corrupted) + return Err(Error::Corrupted); } let s = &value[..size_of::()]; @@ -749,7 +749,7 @@ impl EnvironmentBuilder { })() { reth_mdbx_sys::mdbx_env_close_ex(env, false); - return Err(e) + return Err(e); } } diff --git a/crates/brontes-database/libmdbx-rs/src/transaction.rs b/crates/brontes-database/libmdbx-rs/src/transaction.rs index e89cc08c13..e3e0a3af52 100644 --- a/crates/brontes-database/libmdbx-rs/src/transaction.rs +++ b/crates/brontes-database/libmdbx-rs/src/transaction.rs @@ -532,7 +532,7 @@ impl Transaction { /// Begins a new nested transaction inside of this transaction. pub fn begin_nested_txn(&mut self) -> Result> { if self.inner.env.is_write_map() { - return Err(Error::NestedTransactionsUnsupportedWithWriteMap) + return Err(Error::NestedTransactionsUnsupportedWithWriteMap); } self.txn_execute(|txn| { let (tx, rx) = sync_channel(0); @@ -611,7 +611,7 @@ impl TransactionPtr { // possible here, because we're taking a lock for any actions on the // transaction pointer, including a call to the `mdbx_txn_reset`. if self.is_timed_out() { - return Err(Error::ReadTransactionTimeout) + return Err(Error::ReadTransactionTimeout); } Ok((f)(self.txn)) diff --git a/crates/brontes-inspect/src/composer/mev_filters.rs b/crates/brontes-inspect/src/composer/mev_filters.rs index 56e1319e7c..e47f987559 100644 --- a/crates/brontes-inspect/src/composer/mev_filters.rs +++ b/crates/brontes-inspect/src/composer/mev_filters.rs @@ -89,11 +89,11 @@ pub fn atomic_dedup_fn( } // if the cex dex has a higher value. then use that. if other.header.profit_usd >= atomic.header.profit_usd { - return false + return false; } // if the cex dex isn't a known fund ignore if !other.header.fund.is_none() { - return false + return false; } } diff --git a/crates/brontes-inspect/src/composer/mod.rs b/crates/brontes-inspect/src/composer/mod.rs index 448f7557af..919a32d9b7 100644 --- a/crates/brontes-inspect/src/composer/mod.rs +++ b/crates/brontes-inspect/src/composer/mod.rs @@ -274,7 +274,7 @@ fn try_compose_mev( temp_removal_indices.push((other_mev_type, index)); } } else { - break + break; } } diff --git a/crates/brontes-inspect/src/composer/utils.rs b/crates/brontes-inspect/src/composer/utils.rs index 85f664a36c..451f27f451 100644 --- a/crates/brontes-inspect/src/composer/utils.rs +++ b/crates/brontes-inspect/src/composer/utils.rs @@ -198,18 +198,18 @@ fn update_mev_count(mev_count: &mut MevCount, mev_type: MevType, count: u64) { #[derive(Debug)] pub struct BlockPnL { // ETH profit made by the block builder (in wei) - pub builder_eth_profit: i128, + pub builder_eth_profit: i128, // Amount of ETH paid by the builder to sponsor transactions in the block - pub builder_sponsorship: i128, + pub builder_sponsorship: i128, // USD profit of the builders searchers - pub builder_mev_profit_usd: f64, + pub builder_mev_profit_usd: f64, // ETH reward paid to the proposer (in wei) - pub mev_reward: Option, + pub mev_reward: Option, // Address of the proposer fee recipient - pub proposer_fee_recipient: Option
, + pub proposer_fee_recipient: Option
, // Gas & Tips paid to the builder by it's own vertically integrated // searchers - pub builder_searcher_tip: u128, + pub builder_searcher_tip: u128, // If the block was bid adjusted using ultrasound's bid adjustment pub ultrasound_bid_adjusted: bool, } @@ -403,10 +403,10 @@ fn calculate_builder_sponsorship_amount( } pub struct BlockPreprocessing { - total_gas_used: u128, - total_priority_fee: u128, - total_bribe: u128, - builder_address: Address, + total_gas_used: u128, + total_priority_fee: u128, + total_bribe: u128, + builder_address: Address, gas_details_by_address: FastHashMap, } diff --git a/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs b/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs index 68cbd1fec8..f5ad55526d 100644 --- a/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs +++ b/crates/brontes-inspect/src/mev_inspectors/atomic_arb.rs @@ -266,7 +266,7 @@ impl AtomicArbInspector<'_, DB> { ); if actions.is_empty() { - return false + return false; } // collect actions and transform into raw swaps @@ -275,7 +275,7 @@ impl AtomicArbInspector<'_, DB> { .split_actions((Action::try_swaps_merged, Action::try_transfer)); let Ok(vic_info) = root.get_tx_info(arb_info.block_number, self.utils.db) else { - return false + return false; }; let accounting_addr: FastHashSet
= vic_info.collect_address_set_for_accounting(); @@ -322,15 +322,15 @@ impl AtomicArbInspector<'_, DB> { let is_continuous = swaps[0].token_out.address == swaps[1].token_in.address; if is_triangle && is_continuous { - return Some(AtomicArbType::Triangle) + return Some(AtomicArbType::Triangle); } else if is_triangle && is_stable_pair(&swaps[0].token_out.symbol, &swaps[1].token_in.symbol) { - return Some(AtomicArbType::StablecoinArb) + return Some(AtomicArbType::StablecoinArb); } else if is_triangle { - return Some(AtomicArbType::CrossPair(1)) + return Some(AtomicArbType::CrossPair(1)); } else if is_stable_pair(&swaps[0].token_in.symbol, &swaps[1].token_out.symbol) { - return Some(AtomicArbType::StablecoinArb) + return Some(AtomicArbType::StablecoinArb); } Some(AtomicArbType::LongTail) } @@ -404,9 +404,9 @@ fn identify_arb_sequence(swaps: &[NormalizedSwap]) -> Option { if start_address != end_address { if is_stable_pair(start_token, end_token) { - return Some(AtomicArbType::StablecoinArb) + return Some(AtomicArbType::StablecoinArb); } else { - return Some(AtomicArbType::LongTail) + return Some(AtomicArbType::LongTail); } } @@ -414,7 +414,7 @@ fn identify_arb_sequence(swaps: &[NormalizedSwap]) -> Option { for (index, swap) in swaps.iter().skip(1).enumerate() { if swap.token_in.address != last_out { - return Some(AtomicArbType::CrossPair(index + 1)) + return Some(AtomicArbType::CrossPair(index + 1)); } last_out = swap.token_out.address; } diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs index 86cd2fae5a..d317dd6c59 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/cex_dex_markout.rs @@ -48,8 +48,8 @@ pub const FILTER_THRESHOLD: u64 = 20; use crate::{shared_utils::SharedInspectorUtils, Inspector, Metadata}; pub struct CexDexMarkoutInspector<'db, DB: LibmdbxReader> { - pub utils: SharedInspectorUtils<'db, DB>, - trade_config: CexDexTradeConfig, + pub utils: SharedInspectorUtils<'db, DB>, + trade_config: CexDexTradeConfig, cex_exchanges: Vec, } diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs index 1ce654a6be..3a9fd7b481 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/markout/types.rs @@ -139,7 +139,7 @@ impl CexDexProcessing { pub fn construct_max_profit_route(&mut self) -> Option<()> { if self.per_exchange_pnl.iter().all(Option::is_none) { - return None + return None; } let num_legs = self.dex_swaps.len(); @@ -170,7 +170,8 @@ impl CexDexProcessing { self.per_exchange_pnl.retain(|possible_cex_dex| { possible_cex_dex - .as_ref().is_some_and(|cex_dex| cex_dex.arb_legs.iter().all(Option::is_some)) + .as_ref() + .is_some_and(|cex_dex| cex_dex.arb_legs.iter().all(Option::is_some)) }); Some(()) @@ -447,7 +448,7 @@ pub struct PossibleCexDex { impl PossibleCexDex { pub fn from_arb_legs(arb_legs: Vec>) -> Option { if arb_legs.iter().all(Option::is_none) { - return None + return None; } let mut aggregate_pnl_maker = Rational::ZERO; diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs index 643d7c8e12..d6dc755b36 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs @@ -121,7 +121,7 @@ impl Inspector for CexDexQuotesInspector<'_, DB> { if metadata.cex_quotes.quotes.is_empty() { tracing::warn!("no cex quotes for this block"); - return vec![] + return vec![]; } self.utils @@ -171,7 +171,7 @@ impl CexDexQuotesInspector<'_, DB> { // Return early if this is an defi automation contract if let Some(contract_type) = tx_info.contract_type.as_ref() { if contract_type.is_defi_automation() { - return None + return None; } } @@ -208,7 +208,7 @@ impl CexDexQuotesInspector<'_, DB> { if dex_swaps.is_empty() { trace!( target: "brontes::cex-dex-quotes", "no dex swaps found\n Tx: {}", format_etherscan_url(&tx_info.tx_hash)); - return None + return None; } if self.is_triangular_arb(&dex_swaps) { @@ -221,7 +221,7 @@ impl CexDexQuotesInspector<'_, DB> { m.branch_filtering_trigger(MevType::CexDexQuotes, "is_triangular_arb") }); - return None + return None; } let mut possible_cex_dex: CexDexProcessing = @@ -342,13 +342,13 @@ impl CexDexQuotesInspector<'_, DB> { // Amount * base_to_quote = USDT amount let base_to_quote = if token_price == Rational::ZERO { trace!("Token price is zero"); - return None + return None; } else { token_price.clone().reciprocal() }; if maker_taker_mid.0 == Rational::ZERO || swap.amount_out == Rational::ZERO { - return None + return None; } let pairs_price = ExchangeLegCexPrice { @@ -376,7 +376,7 @@ impl CexDexQuotesInspector<'_, DB> { &swap.amount_out, &output_of_cex_trade_maker, ); - return None + return None; } Some(( @@ -516,7 +516,7 @@ impl CexDexQuotesInspector<'_, DB> { // Not enough swaps to form a cycle, thus cannot be an atomic triangular // arbitrage. if dex_swaps.len() < 2 { - return false + return false; } let original_token = dex_swaps[0].token_in.address; @@ -541,7 +541,8 @@ pub fn max_arb_delta(tx_info: &TxInfo, pnl: &Rational) -> Rational { } } else if tx_info .contract_type - .as_ref().is_some_and(|c| c.is_mev_contract()) + .as_ref() + .is_some_and(|c| c.is_mev_contract()) { base_diff += 1; } diff --git a/crates/brontes-inspect/src/mev_inspectors/jit/jit_cex_dex.rs b/crates/brontes-inspect/src/mev_inspectors/jit/jit_cex_dex.rs index 85099bfcb2..8b7e328a4a 100644 --- a/crates/brontes-inspect/src/mev_inspectors/jit/jit_cex_dex.rs +++ b/crates/brontes-inspect/src/mev_inspectors/jit/jit_cex_dex.rs @@ -66,7 +66,7 @@ impl JitCexDex<'_, DB> { ) -> Vec { if metadata.cex_trades.is_none() { tracing::warn!("no cex trades for block"); - return vec![] + return vec![]; } // call inner to avoid metrics let jit_bundles = self.jit.inspect_block_inner(tree.clone(), metadata.clone()); @@ -82,7 +82,7 @@ impl JitCexDex<'_, DB> { let tx_info = tree.get_tx_info(jits.header.tx_hash, self.jit.utils.db)?; if !tx_info.is_searcher_of_type_with_count_threshold(MevType::JitCexDex, 10) { - return None + return None; } let mut mint_burn_deltas: FastHashMap< @@ -156,7 +156,7 @@ impl JitCexDex<'_, DB> { m.branch_filtering_trigger(MevType::JitCexDex, "is_triangular_arb") }); - return None + return None; } let mut possible_cex_dex: CexDexProcessing = self.cex_dex.detect_cex_dex( diff --git a/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs b/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs index 6360778742..8f029619cc 100644 --- a/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs +++ b/crates/brontes-inspect/src/mev_inspectors/jit/jit_liquidity.rs @@ -82,7 +82,7 @@ impl JitInspector<'_, DB> { if searcher_actions.is_empty() { tracing::trace!("no searcher actions found"); - return None + return None; } let victim_actions = @@ -177,7 +177,7 @@ impl JitInspector<'_, DB> { victim_actions, victim_info, recursive, - ) + ); } tracing::trace!("formulating"); @@ -190,7 +190,7 @@ impl JitInspector<'_, DB> { if mints.is_empty() || (burns.is_empty() && collect.is_empty()) { tracing::trace!("missing mints & burns"); - return None + return None; } self.ensure_valid_structure(&mints, &burns, &victim_actions)?; @@ -354,7 +354,7 @@ impl JitInspector<'_, DB> { if !burns.iter().any(|b| pools.contains(&b.pool)) { tracing::trace!("no burn overlaps"); - return None + return None; } // ensure we have overlap @@ -387,13 +387,13 @@ impl JitInspector<'_, DB> { let mut res = vec![]; if recursive >= 10 { - return None + return None; } if frontrun_info.len() > 1 { recursive += 1; // remove dropped sandwiches if victim_info.is_empty() || victim_actions.is_empty() { - return None + return None; } let back_shrink = { @@ -408,7 +408,7 @@ impl JitInspector<'_, DB> { let backrun_info = front_run_info.pop()?; if victim_actions.iter().flatten().count() == 0 { - return None + return None; } self.calculate_jit( @@ -435,7 +435,7 @@ impl JitInspector<'_, DB> { searcher_actions.remove(0); if victim_actions.iter().flatten().count() == 0 { - return None + return None; } self.calculate_jit( @@ -454,7 +454,7 @@ impl JitInspector<'_, DB> { if let Some(back) = back_shrink { res.extend(back); } - return Some(res) + return Some(res); } None @@ -464,7 +464,7 @@ impl JitInspector<'_, DB> { let iter = tree.tx_roots.iter(); if iter.len() < 3 { - return vec![] + return vec![]; } let mut set: FastHashMap = FastHashMap::default(); @@ -476,7 +476,7 @@ impl JitInspector<'_, DB> { for root in iter { if root.get_root_action().is_revert() { - continue + continue; } match duplicate_mev_contracts.entry(root.get_to_address()) { @@ -565,7 +565,7 @@ impl JitInspector<'_, DB> { .iter() .filter_map(|jit| { if jit.victims.len() > 10 { - return None + return None; } let mut set = vec![jit.backrun_tx]; @@ -578,7 +578,7 @@ impl JitInspector<'_, DB> { .iter() .any(|tx| tree.tx_must_contain_action(*tx, |a| a.is_burn()).unwrap())) { - return None + return None; } Some(set) }) diff --git a/crates/brontes-inspect/src/mev_inspectors/liquidations.rs b/crates/brontes-inspect/src/mev_inspectors/liquidations.rs index d15500974d..40c59eca4a 100644 --- a/crates/brontes-inspect/src/mev_inspectors/liquidations.rs +++ b/crates/brontes-inspect/src/mev_inspectors/liquidations.rs @@ -86,7 +86,7 @@ impl LiquidationInspector<'_, DB> { if liqs.is_empty() { tracing::debug!("no liquidation events"); - return None + return None; } let mev_addresses: FastHashSet
= info.collect_address_set_for_accounting(); diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 87770d1ac9..e4876ee7ce 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -121,7 +121,7 @@ impl SandwichInspector<'_, DB> { } = ps; if victims.iter().flatten().count() == 0 { - return None + return None; }; let victim_swaps_transfers: Vec<_> = self.get_victim_swap_transfer( @@ -192,7 +192,7 @@ impl SandwichInspector<'_, DB> { == 1) { tracing::debug!(target: "brontes_inspect::sandwich", "all sandwiches don't have same eoa and aren't all verified contracts"); - return None + return None; } // assert that all frontruns and backruns can be generated from a swap @@ -222,7 +222,7 @@ impl SandwichInspector<'_, DB> { .iter() .all(|searcher_tx_swaps| !searcher_tx_swaps.is_empty()) { - return None + return None; } let back_run_actions = searcher_actions.pop()?; @@ -249,7 +249,7 @@ impl SandwichInspector<'_, DB> { &victim_actions, black_list, recusive, - ) + ); } // if we reach this part of the code, we have found a sandwich and @@ -460,14 +460,14 @@ impl SandwichInspector<'_, DB> { let mut res = vec![]; if recursive >= 6 { - return None + return None; } if possible_front_runs_info.len() > 1 { recursive += 1; // remove dropped sandwiches if victim_info.is_empty() || victim_actions.is_empty() { - return None + return None; } let back_shrink = { @@ -487,7 +487,7 @@ impl SandwichInspector<'_, DB> { .count() == 0 { - return None + return None; } self.calculate_sandwich( @@ -525,7 +525,7 @@ impl SandwichInspector<'_, DB> { .count() == 0 { - return None + return None; } self.calculate_sandwich( @@ -546,7 +546,7 @@ impl SandwichInspector<'_, DB> { if let Some(back) = back_shrink { res.extend(back); } - return Some(res) + return Some(res); } None @@ -604,7 +604,7 @@ impl SandwichInspector<'_, DB> { back_run_tokens, black_list, ) { - return false + return false; } } @@ -638,7 +638,7 @@ impl SandwichInspector<'_, DB> { let amount = grouped_victims.len(); if amount == 0 { trace!(target: "brontes_inspect::sandwich", "no grouped victims"); - return false + return false; } let mut has_sandwich = false; @@ -722,12 +722,12 @@ impl SandwichInspector<'_, DB> { // victim has a transfer from the pool that was a token in for // the sandwich if tokens.contains(&(t.token.address, t.to, is_frontrun)) { - return Some((t.token.address, t.to)) + return Some((t.token.address, t.to)); } // victim has a transfer to the pool that was a token out for the // sandwich if tokens.contains(&(t.token.address, t.from, !is_frontrun)) { - return Some((t.token.address, t.from)) + return Some((t.token.address, t.from)); } None })) @@ -826,7 +826,7 @@ impl SandwichInspector<'_, DB> { .into_iter() .filter(|(address, v)| { if v.len() != 2 || black_list.contains(address) { - return false + return false; } let first = v.first().unwrap(); let second = v.get(1).unwrap(); @@ -853,7 +853,7 @@ impl SandwichInspector<'_, DB> { tree: Arc>, ) -> Vec { if tree.tx_roots.len() < 3 { - return vec![] + return vec![]; } let tree_clone_for_senders = tree.clone(); @@ -874,7 +874,7 @@ impl SandwichInspector<'_, DB> { set.push(ps.possible_backrun); // max multihop of 10 or max total victim of 50 if ps.victims.len() > 10 { - return None + return None; } set.extend(ps.victims.iter().flatten().copied()); @@ -985,15 +985,12 @@ impl SandwichInspector<'_, DB> { .t_full_filter_map(|(tree, rest)| { let (swap, hashes): (Vec<_>, Vec<_>) = UnzipPadded::unzip_padded(rest); - if !hashes - .iter() - .any(|v| { - let tree = &(*tree.clone()); - let d = tree.get_root(*v).unwrap().get_root_action(); + if !hashes.iter().any(|v| { + let tree = &(*tree.clone()); + let d = tree.get_root(*v).unwrap().get_root_action(); - d.is_revert() || mev_executor_contract == d.get_to_address() - }) - { + d.is_revert() || mev_executor_contract == d.get_to_address() + }) { Some(swap) } else { None @@ -1017,7 +1014,7 @@ fn get_possible_sandwich_duplicate_senders(tree: Arc>) -> Vec< for root in tree.tx_roots.iter() { if root.get_root_action().is_revert() { - continue + continue; } match duplicate_senders.entry(root.head.address) { // If we have not seen this sender before, we insert the tx hash into the map @@ -1081,7 +1078,7 @@ fn get_possible_sandwich_duplicate_contracts( for root in tree.tx_roots.iter() { if root.get_root_action().is_revert() { - continue + continue; } match duplicate_mev_contracts.entry(root.get_to_address()) { diff --git a/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs b/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs index 990aad864e..ffc3219335 100644 --- a/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs +++ b/crates/brontes-inspect/src/mev_inspectors/searcher_activity.rs @@ -65,7 +65,7 @@ impl SearcherActivity<'_, DB> { multizip((hashes, transfers, tx_info)) .filter_map(|(tx_hash, transfers, info)| { if transfers.is_empty() { - return None + return None; } let info = info?; diff --git a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs index 1b717efab6..bd22367898 100644 --- a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs +++ b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs @@ -70,7 +70,7 @@ impl SharedInspectorUtils<'_, DB> { for (address, token_deltas) in deltas { for (token_addr, amount) in token_deltas { if amount == &Rational::ZERO { - continue + continue; } let pair = Pair(*token_addr, self.quote); @@ -167,7 +167,7 @@ impl SharedInspectorUtils<'_, DB> { // we do this so if the transfer is from a mev contract or a searcher, it gets // ignored if invalid_addresses.contains(&t.from) { - continue + continue; } pools.entry(t.to).or_default().push(( @@ -191,14 +191,14 @@ impl SharedInspectorUtils<'_, DB> { .into_iter() .filter_map(|(pool, mut possible_swaps)| { if possible_swaps.len() != 2 { - return None + return None; } let (f_token, f_direction, f_am, f_addr, f_trace) = possible_swaps.pop()?; let (s_token, s_direction, s_am, s_addr, s_trace) = possible_swaps.pop()?; if s_token == f_token || s_direction == f_direction { - return None + return None; } let trace_index = std::cmp::min(f_trace, s_trace); @@ -232,7 +232,7 @@ impl SharedInspectorUtils<'_, DB> { metadata: &Arc, ) -> Option { if token_address == self.quote { - return Some(amount.clone()) + return Some(amount.clone()); } let price = self.get_token_price_on_dex(tx_index, at, token_address, metadata)?; Some(price * amount) @@ -246,7 +246,7 @@ impl SharedInspectorUtils<'_, DB> { metadata: &Arc, ) -> Option { if token_address == self.quote { - return Some(amount.clone()) + return Some(amount.clone()); } let price = self.get_token_price_on_dex_block(block_price, token_address, metadata)?; Some(price * amount) @@ -260,7 +260,7 @@ impl SharedInspectorUtils<'_, DB> { metadata: &Arc, ) -> Option { if token_address == self.quote { - return Some(Rational::ONE) + return Some(Rational::ONE); } let pair = Pair(token_address, self.quote); @@ -281,7 +281,7 @@ impl SharedInspectorUtils<'_, DB> { metadata: &Arc, ) -> Option { if token_address == self.quote { - return Some(Rational::ONE) + return Some(Rational::ONE); } let pair = Pair(token_address, self.quote); @@ -552,7 +552,7 @@ impl SharedInspectorUtils<'_, DB> { mev_type: MevType, ) -> bool { if swaps.is_empty() { - return true + return true; } let pcts = tokens @@ -635,7 +635,7 @@ impl SharedInspectorUtils<'_, DB> { .collect_vec(); if pcts.is_empty() { - return true + return true; } pcts.into_iter() @@ -662,12 +662,12 @@ impl SharedInspectorUtils<'_, DB> { for i in 0..len { if removals.contains(&i) { - continue + continue; } for j in 0..len { if i == j || removals.contains(&j) { - continue + continue; } let i_hash = &bundles[i].0; @@ -714,7 +714,7 @@ impl SharedInspectorUtils<'_, DB> { mev_type: MevType, ) -> Option { if !(transfers.len() == 2 && (info.is_labelled_searcher_of_type(mev_type) || cfg!(test))) { - return None + return None; } let ingore_addresses = info.collect_address_set_for_accounting(); @@ -745,7 +745,7 @@ impl SharedInspectorUtils<'_, DB> { let s1 = swaps.remove(0); if voided.contains(s0) || voided.contains(s1) { - return None + return None; } // if s0 is first hop if s0.token_out == intermediary diff --git a/crates/brontes-inspect/src/test_utils/benches.rs b/crates/brontes-inspect/src/test_utils/benches.rs index a2103cd081..b198571282 100644 --- a/crates/brontes-inspect/src/test_utils/benches.rs +++ b/crates/brontes-inspect/src/test_utils/benches.rs @@ -113,7 +113,7 @@ impl InspectorBenchUtils { if trees.len() != 1 { return Err(InspectorTestUtilsError::MultipleBlockError( trees.into_iter().map(|(t, _)| t.header.number).collect(), - )) + )); } let (tree, prices) = trees.remove(0); @@ -226,7 +226,7 @@ impl InspectorBenchUtils { if trees.len() != 1 { return Err(InspectorTestUtilsError::MultipleBlockError( trees.into_iter().map(|t| t.header.number).collect(), - )) + )); } let tree = trees.remove(0); @@ -279,7 +279,7 @@ impl InspectorBenchUtils { if trees.len() != 1 { return Err(InspectorTestUtilsError::MultipleBlockError( trees.into_iter().map(|(t, _)| t.header.number).collect(), - )) + )); } let (tree, prices) = trees.remove(0); diff --git a/crates/brontes-inspect/src/test_utils/tests.rs b/crates/brontes-inspect/src/test_utils/tests.rs index 22e22e2465..05be6e9bd8 100644 --- a/crates/brontes-inspect/src/test_utils/tests.rs +++ b/crates/brontes-inspect/src/test_utils/tests.rs @@ -64,7 +64,7 @@ impl InspectorTestUtils { if trees.len() != 1 { return Err(InspectorTestUtilsError::MultipleBlockError( trees.into_iter().map(|t| t.header.number).collect(), - )) + )); } Ok(trees.remove(0)) } @@ -82,7 +82,7 @@ impl InspectorTestUtils { if trees.len() != 1 { return Err(InspectorTestUtilsError::MultipleBlockError( trees.into_iter().map(|(t, _)| t.header.number).collect(), - )) + )); } Ok(trees.remove(0)) } @@ -137,7 +137,7 @@ impl InspectorTestUtils { self.get_block_tree(block).await? } } else { - return Err(err()) + return Err(err()); }; let block = tree.header.number; @@ -212,7 +212,7 @@ impl InspectorTestUtils { self.get_block_tree(block).await? } } else { - return Err(err()) + return Err(err()); }; let mut metadata = if let Some(meta) = config.metadata_override { @@ -331,7 +331,7 @@ impl InspectorTestUtils { self.get_block_tree(block).await? } } else { - return Err(err()) + return Err(err()); }; let block = tree.header.number; diff --git a/crates/brontes-macros/src/action_classifier/action_dispatch.rs b/crates/brontes-macros/src/action_classifier/action_dispatch.rs index ec7bf8f4e9..dd4218d78b 100644 --- a/crates/brontes-macros/src/action_classifier/action_dispatch.rs +++ b/crates/brontes-macros/src/action_classifier/action_dispatch.rs @@ -16,7 +16,7 @@ impl ActionDispatch { if rest.is_empty() { // Generate a compile_error! invocation as part of the output TokenStream - return Err(syn::Error::new(Span::call_site(), "need classifiers to dispatch to")) + return Err(syn::Error::new(Span::call_site(), "need classifiers to dispatch to")); } let (var_name, const_fns): (Vec<_>, Vec<_>) = rest .iter() @@ -95,7 +95,7 @@ impl Parse for ActionDispatch { } if !input.is_empty() { - return Err(syn::Error::new(input.span(), "Unwanted input at end of macro")) + return Err(syn::Error::new(input.span(), "Unwanted input at end of macro")); } Ok(Self { rest, struct_name }) diff --git a/crates/brontes-macros/src/action_classifier/action_impl.rs b/crates/brontes-macros/src/action_classifier/action_impl.rs index b4c6cf06fa..0718443f3b 100644 --- a/crates/brontes-macros/src/action_classifier/action_impl.rs +++ b/crates/brontes-macros/src/action_classifier/action_impl.rs @@ -175,25 +175,25 @@ impl Parse for ActionMacro { fn parse_closure(input: &mut syn::parse::ParseStream) -> syn::Result { let call_function: ExprClosure = input.parse()?; if call_function.asyncness.is_some() { - return Err(syn::Error::new(input.span(), "closure cannot be async")) + return Err(syn::Error::new(input.span(), "closure cannot be async")); } if !input.is_empty() { return Err(syn::Error::new( input.span(), "There should be no values after the call function", - )) + )); } if call_function.asyncness.is_some() { - return Err(syn::Error::new(input.span(), "closure cannot be async")) + return Err(syn::Error::new(input.span(), "closure cannot be async")); } if !input.is_empty() { return Err(syn::Error::new( input.span(), "There should be no values after the call function", - )) + )); } Ok(call_function) @@ -241,7 +241,7 @@ fn parse_protocol_path(input: &mut syn::parse::ParseStream) -> syn::Result return Err(syn::Error::new( protocol_path.span(), "incorrect path, Should be Protocol::", - )) + )); } let should_protocol = &protocol_path.segments[protocol_path.segments.len() - 2].ident; @@ -249,7 +249,7 @@ fn parse_protocol_path(input: &mut syn::parse::ParseStream) -> syn::Result return Err(syn::Error::new( should_protocol.span(), "incorrect path, Should be Protocol::", - )) + )); } Ok(protocol_path) } @@ -266,7 +266,7 @@ fn parse_decode_fn_path(input: &mut syn::parse::ParseStream) -> syn::Result::::ProtocolModName::FnCall", - )) + )); } Ok(fn_path) diff --git a/crates/brontes-macros/src/bench_struct_methods.rs b/crates/brontes-macros/src/bench_struct_methods.rs index 5f87968ed6..b9f91f9203 100644 --- a/crates/brontes-macros/src/bench_struct_methods.rs +++ b/crates/brontes-macros/src/bench_struct_methods.rs @@ -22,14 +22,14 @@ pub fn parse(item: ItemFn, attr: TokenStream) -> syn::Result { .ok() .flatten() else { - return Err(syn::Error::new(attr.span(), "invalid ptr to function call struct")) + return Err(syn::Error::new(attr.span(), "invalid ptr to function call struct")); }; let attrs = item.attrs; let vis = item.vis; let mut sig = item.sig; if sig.asyncness.is_some() { - return Err(syn::Error::new(sig.asyncness.span(), "function must not be async")) + return Err(syn::Error::new(sig.asyncness.span(), "function must not be async")); } sig.asyncness = None; let block = item.block; diff --git a/crates/brontes-macros/src/discovery_classifier/mod.rs b/crates/brontes-macros/src/discovery_classifier/mod.rs index 54abe0e658..c69c5c916d 100644 --- a/crates/brontes-macros/src/discovery_classifier/mod.rs +++ b/crates/brontes-macros/src/discovery_classifier/mod.rs @@ -71,13 +71,13 @@ fn is_proper_address(possible_address: &Literal) -> syn::Result<()> { return Err(syn::Error::new( possible_address.span(), "Supplied factory address is invalid. Needs to start with 0x", - )) + )); } if stred.len() != 42 { return Err(syn::Error::new( possible_address.span(), format!("Supplied factory address length is incorrect got: {} wanted: 40", stred.len()), - )) + )); } Ok(()) @@ -110,7 +110,7 @@ impl Parse for MacroParse { return Err(syn::Error::new( input.span(), "There should be no values after the call function", - )) + )); } Ok(Self { discovery_name, factory_address, function_call_path, address_call_function }) @@ -216,7 +216,7 @@ impl Parse for DiscoveryDispatch { return Err(syn::Error::new( Span::call_site(), "no discovery implementations to dispatch to", - )) + )); } Ok(Self { rest, struct_name }) diff --git a/crates/brontes-macros/src/function_metrics.rs b/crates/brontes-macros/src/function_metrics.rs index f8726ecf32..2f61aaad85 100644 --- a/crates/brontes-macros/src/function_metrics.rs +++ b/crates/brontes-macros/src/function_metrics.rs @@ -51,7 +51,7 @@ impl Parse for MetricList { fn parse(input: syn::parse::ParseStream) -> syn::Result { let ptr: Ident = input.parse()?; if ptr != "ptr" { - return Err(syn::Error::new(ptr.span(), "first field must be ptr=location")) + return Err(syn::Error::new(ptr.span(), "first field must be ptr=location")); } input.parse::()?; let ptr_value: Ident = input.parse()?; diff --git a/crates/brontes-macros/src/libmdbx_test.rs b/crates/brontes-macros/src/libmdbx_test.rs index 368469d774..615d6a45cf 100644 --- a/crates/brontes-macros/src/libmdbx_test.rs +++ b/crates/brontes-macros/src/libmdbx_test.rs @@ -30,7 +30,7 @@ pub fn parse(item: ItemFn, attr: TokenStream) -> syn::Result { let vis = item.vis; let mut sig = item.sig; if sig.asyncness.is_none() { - return Err(syn::Error::new(sig.asyncness.span(), "function must be async")) + return Err(syn::Error::new(sig.asyncness.span(), "function must be async")); } sig.asyncness = None; let block = item.block; diff --git a/crates/brontes-macros/src/transpose.rs b/crates/brontes-macros/src/transpose.rs index 05b30469d3..dc981967ae 100644 --- a/crates/brontes-macros/src/transpose.rs +++ b/crates/brontes-macros/src/transpose.rs @@ -6,7 +6,7 @@ pub fn parse(item: DeriveInput) -> syn::Result { let data = if let Data::Struct(ref i) = item.data { i } else { - return Err(syn::Error::new(item.span(), "only supports structs")) + return Err(syn::Error::new(item.span(), "only supports structs")); }; let d_name = &item.ident; diff --git a/crates/brontes-metrics/src/prometheus_exporter.rs b/crates/brontes-metrics/src/prometheus_exporter.rs index 15cbc7be89..7c720c7bf2 100644 --- a/crates/brontes-metrics/src/prometheus_exporter.rs +++ b/crates/brontes-metrics/src/prometheus_exporter.rs @@ -114,7 +114,7 @@ fn collect_memory_stats() { .map_err(|error| error!(%error, "Failed to advance jemalloc epoch")) .is_err() { - return + return; } if let Ok(value) = stats::active::read() @@ -209,13 +209,13 @@ fn collect_io_stats() { let Ok(process) = procfs::process::Process::myself() .map_err(|error| error!(%error, "Failed to get currently running process")) else { - return + return; }; let Ok(io) = process.io().map_err( |error| error!(%error, "Failed to get IO stats for the currently running process"), ) else { - return + return; }; absolute_counter!("io.rchar", io.rchar); diff --git a/crates/brontes-pricing/src/function_call_bench.rs b/crates/brontes-pricing/src/function_call_bench.rs index 7c10f5ca9b..2103736d59 100644 --- a/crates/brontes-pricing/src/function_call_bench.rs +++ b/crates/brontes-pricing/src/function_call_bench.rs @@ -20,7 +20,7 @@ impl Drop for FunctionCallBench { let total_time_ms: u128 = calls.iter().map(|call| call.as_millis()).sum(); if call_amount == 0 { - continue + continue; } let average_duration_ms = total_time_ms / call_amount as u128; diff --git a/crates/brontes-pricing/src/graphs/all_pair_graph.rs b/crates/brontes-pricing/src/graphs/all_pair_graph.rs index 07eeb7676a..994ea204ee 100644 --- a/crates/brontes-pricing/src/graphs/all_pair_graph.rs +++ b/crates/brontes-pricing/src/graphs/all_pair_graph.rs @@ -86,7 +86,7 @@ impl AllPairGraph { .sorted() .for_each(|((pool_addr, dex), pair)| { if !dex.has_state_updater() { - return + return; } // because this is undirected, doesn't matter what order the nodes are connected // so we sort so we can just have a collection of edges for just one @@ -206,7 +206,7 @@ impl AllPairGraph { ) -> (Vec>>, Option) { if pair.0 == pair.1 { error!("Invalid pair, both tokens have the same address"); - return (vec![], None) + return (vec![], None); } let Some(start_idx) = first_hop @@ -215,7 +215,7 @@ impl AllPairGraph { else { let addr = pair.0; debug!(?addr, "no start node for address"); - return (vec![], None) + return (vec![], None); }; let second_idx = first_hop.and_then(|fh| self.token_to_index.get(&fh.1)); @@ -223,7 +223,7 @@ impl AllPairGraph { let Some(end_idx) = self.token_to_index.get(&pair.1) else { let addr = pair.1; debug!(?addr, "no end node for address"); - return (vec![], None) + return (vec![], None); }; let mut indexes = possible_extensions @@ -244,7 +244,7 @@ impl AllPairGraph { .into_iter() .filter(|f| { if f.weight().iter().all(|e| e.insert_block > block) { - return false + return false; } let edge = f.weight().first().unwrap(); diff --git a/crates/brontes-pricing/src/graphs/dijkstras.rs b/crates/brontes-pricing/src/graphs/dijkstras.rs index a708ef428a..68aa43c158 100644 --- a/crates/brontes-pricing/src/graphs/dijkstras.rs +++ b/crates/brontes-pricing/src/graphs/dijkstras.rs @@ -350,9 +350,9 @@ where } struct SmallestHolder { - cost: K, + cost: K, index: usize, - hops: usize, + hops: usize, } impl PartialEq for SmallestHolder { diff --git a/crates/brontes-pricing/src/graphs/registry.rs b/crates/brontes-pricing/src/graphs/registry.rs index 80ba46fe9d..1ac148f44a 100644 --- a/crates/brontes-pricing/src/graphs/registry.rs +++ b/crates/brontes-pricing/src/graphs/registry.rs @@ -80,7 +80,7 @@ impl SubGraphRegistry { self.metrics .as_ref() .inspect(|m| m.active_subgraphs.decrement(1.0)); - return false + return false; } true }); @@ -200,7 +200,7 @@ impl SubGraphRegistry { let mut removals = FastHashMap::default(); self.sub_graphs.retain(|k, v| { if k != &pair.ordered() { - return true + return true; } v.retain(|gt, s| { let res = gt != &goes_through.ordered(); @@ -254,7 +254,7 @@ impl SubGraphRegistry { self.sub_graphs.iter_mut().for_each(|(g_pair, sub)| { // wrong pair, then retain if *g_pair != pair.ordered() { - return + return; } sub.iter_mut().for_each(|(goes_through, graph)| { @@ -338,7 +338,7 @@ impl SubGraphRegistry { let mut acc = Rational::ZERO; for graph in f.values() { if graph.extends_to().is_some() { - continue + continue; }; let Some(next) = graph.fetch_price(edge_state) else { diff --git a/crates/brontes-pricing/src/graphs/state_tracker.rs b/crates/brontes-pricing/src/graphs/state_tracker.rs index e8cfd6654e..b74dd17389 100644 --- a/crates/brontes-pricing/src/graphs/state_tracker.rs +++ b/crates/brontes-pricing/src/graphs/state_tracker.rs @@ -70,7 +70,7 @@ impl StateTracker { pub fn remove_finalized_state_dep(&mut self, pool: Address, amount: u64) { self.finalized_edge_state.retain(|i_pool, state| { if pool != *i_pool { - return true + return true; } state.dec(amount); let keep = state.dependents != 0; @@ -148,7 +148,7 @@ impl StateTracker { .filter(|pool_state| pool_state.contains_block_state(block)) .is_some() { - return None + return None; } Some(edge.info) @@ -165,7 +165,7 @@ impl StateTracker { .into_iter() .for_each(|(should_finalize, mut state)| { if should_finalize == 0 { - return + return; } match self.finalized_edge_state.entry(*pool) { std::collections::hash_map::Entry::Vacant(v) => { @@ -264,7 +264,7 @@ impl PoolStateWithBlock { self.0.retain(|(keep, state)| { if state.last_update <= block { res.push((*keep, state.clone())); - return false + return false; } true }); @@ -279,7 +279,7 @@ impl PoolStateWithBlock { pub fn contains_block_state(&self, block: u64) -> bool { for (_, state) in &self.0 { if block == state.last_update { - return true + return true; } } diff --git a/crates/brontes-pricing/src/graphs/subgraph.rs b/crates/brontes-pricing/src/graphs/subgraph.rs index ef3bf511f4..ecac16fb8e 100644 --- a/crates/brontes-pricing/src/graphs/subgraph.rs +++ b/crates/brontes-pricing/src/graphs/subgraph.rs @@ -216,23 +216,19 @@ impl PairSubGraph { /// checks to see if the liquidity of any pool has dropped by over 50%. /// if this has happened, will send the pair for reverification pub fn has_stale_liquidity(&self, state: &FastHashMap) -> bool { - self.graph - .edge_weights() - .any(|weight| { - weight - .iter() - .any(|edge| { - let (r0, r1) = state.get(&edge.pool_addr).unwrap().tvl(edge.token_0); - let tvl_added = r0 + r1; - let start_tvl = self.start_nodes_liq.get(&edge.pool_addr).unwrap(); - - if tvl_added < *start_tvl && start_tvl != &Rational::ZERO { - tvl_added / start_tvl <= Rational::ONE_HALF - } else { - false - } - }) + self.graph.edge_weights().any(|weight| { + weight.iter().any(|edge| { + let (r0, r1) = state.get(&edge.pool_addr).unwrap().tvl(edge.token_0); + let tvl_added = r0 + r1; + let start_tvl = self.start_nodes_liq.get(&edge.pool_addr).unwrap(); + + if tvl_added < *start_tvl && start_tvl != &Rational::ZERO { + tvl_added / start_tvl <= Rational::ONE_HALF + } else { + false + } }) + }) } // returns list of pools we already have so we can derement there state tracker. @@ -266,7 +262,7 @@ impl PairSubGraph { edge_weight.push(edge); } has.push(edge.pool_addr); - continue + continue; } connections.entry((addr0, addr1)).or_default().push(edge); @@ -338,9 +334,9 @@ impl PairSubGraph { let node1 = (*n1).into(); if let Some(edge) = self.graph.find_edge(node0, node1) { - return add_edge(&mut self.graph, edge, edge_info, true) + return add_edge(&mut self.graph, edge, edge_info, true); } else if let Some(edge) = self.graph.find_edge(node1, node0) { - return add_edge(&mut self.graph, edge, edge_info, false) + return add_edge(&mut self.graph, edge, edge_info, false); } else { let d0 = PoolPairInfoDirection { info: edge_info, token_0_in: true }; let d1 = PoolPairInfoDirection { info: edge_info, token_0_in: false }; @@ -358,7 +354,7 @@ impl PairSubGraph { pub fn is_expired_subgraph(&self, block: u64) -> bool { let last = self.last_block_for_pricing.load(SeqCst); if last > block { - return false + return false; } (block - last) > INACTIVE_REMOVAL_PERIOD } @@ -375,7 +371,7 @@ impl PairSubGraph { block: u64, ) { if self.remove_at.is_some() { - return + return; } let result = self.run_bfs_with_liquidity_params(start, start_price, state, true); @@ -485,7 +481,7 @@ impl PairSubGraph { let node_weights = edge.weight(); if node_weights.is_empty() { - return None + return None; } for info in node_weights { @@ -524,7 +520,7 @@ impl PairSubGraph { } if weight == Rational::ZERO { - return None + return None; } let local_weighted_price = pxw / weight; @@ -749,7 +745,7 @@ impl PairSubGraph { while let Some((next_edge, prev_price)) = visit_next.pop_front() { let id = next_edge.id(); if visited.contains(&id) { - continue + continue; } visited.insert(id); @@ -784,7 +780,7 @@ impl PairSubGraph { while let Some(next_edge) = visit_next.pop_front() { let id = next_edge.id(); if visited.contains(&id) { - continue + continue; } visited.insert(id); @@ -803,7 +799,7 @@ impl PairSubGraph { .unwrap() .0, ); - continue + continue; } visit_next.extend(next_edges); } @@ -829,17 +825,17 @@ impl PairSubGraph { while let Some(MinScored(node_score, node)) = visit_next.pop() { if visited.is_visited(&node) { - continue + continue; } if goal == node { - break + break; } for edge in graph.edges(node) { let next = edge.target(); if visited.is_visited(&next) { - continue + continue; } let next_score = &node_score + Rational::ONE; @@ -925,11 +921,11 @@ impl PairSubGraph { while let Some(MinScored(node_score, (node, price))) = visit_next.pop() { if visited.is_visited(&node) { - continue + continue; } if goal == node { - break + break; } for edge in graph.edges(node) { @@ -937,7 +933,7 @@ impl PairSubGraph { let next = edge.target(); if visited.is_visited(&next) { - continue + continue; } let mut pxw = Rational::ZERO; @@ -968,7 +964,7 @@ impl PairSubGraph { } if weight == Rational::ZERO { - continue + continue; } let local_weighted_price = pxw / weight; @@ -1013,7 +1009,7 @@ fn add_edge( .iter() .any(|w| w.pool_addr == { edge_info }.pool_addr) { - return false + return false; } let new_edge = diff --git a/crates/brontes-pricing/src/graphs/subgraph_verifier.rs b/crates/brontes-pricing/src/graphs/subgraph_verifier.rs index 42abcf32ad..9c6aca0941 100644 --- a/crates/brontes-pricing/src/graphs/subgraph_verifier.rs +++ b/crates/brontes-pricing/src/graphs/subgraph_verifier.rs @@ -125,7 +125,7 @@ impl SubgraphVerifier { if graph.subgraph.is_disjoint() { self.subgraph_verification_state.remove(pair); self.pending_subgraphs.remove(pair); - return true + return true; } false } @@ -141,7 +141,7 @@ impl SubgraphVerifier { ) -> Vec { // if we find a subgraph that is the same, we return. if self.pending_subgraphs.contains_key(&pair) { - return vec![] + return vec![]; }; let query_state = state_tracker.missing_state(block, &path); @@ -274,7 +274,7 @@ impl SubgraphVerifier { if result.should_abandon { self.subgraph_verification_state.remove(&pair); tracing::trace!(?pair, "aborting"); - return VerificationResults::Abort(pair, block) + return VerificationResults::Abort(pair, block); } if result.should_requery { @@ -290,7 +290,7 @@ impl SubgraphVerifier { prune_state: removals, ignore_state: ignores, frayed_ends: result.frayed_ends, - }) + }); } self.passed_verification(pair, block, subgraph, removals, state_tracker) diff --git a/crates/brontes-pricing/src/graphs/yens.rs b/crates/brontes-pricing/src/graphs/yens.rs index 2c677b1aee..e0e025deb2 100644 --- a/crates/brontes-pricing/src/graphs/yens.rs +++ b/crates/brontes-pricing/src/graphs/yens.rs @@ -16,11 +16,11 @@ pub use crate::graphs::dijkstras::*; #[derive(Eq, PartialEq, Debug)] struct Path { /// The nodes along the path - nodes: Vec, + nodes: Vec, /// wieghts, weights: Vec, /// The total cost of the path - cost: C, + cost: C, } impl PartialOrd for Path diff --git a/crates/brontes-pricing/src/lib.rs b/crates/brontes-pricing/src/lib.rs index 47c217abe0..bddcb4d11d 100644 --- a/crates/brontes-pricing/src/lib.rs +++ b/crates/brontes-pricing/src/lib.rs @@ -186,7 +186,7 @@ impl BrontesBatchPricer { #[brontes_macros::metrics_call(ptr=metrics,function_call_count, self.range_id, "on_pool_updates")] fn on_pool_updates(&mut self, updates: Vec) { if updates.is_empty() { - return + return; }; if let Some(msg) = updates.first() { @@ -256,12 +256,12 @@ impl BrontesBatchPricer { |NewGraphDetails { pair, extends_pair, block, edges }| { if edges.is_empty() { tracing::debug!(?pair, ?extends_pair, "new pool has no graph edges"); - return + return; } if self.graph_manager.has_subgraph_goes_through(pair) { tracing::debug!(?pair, ?extends_pair, "already have pairs"); - return + return; } self.add_subgraph(pair, extends_pair, block, edges, false); @@ -300,7 +300,7 @@ impl BrontesBatchPricer { goes_through: Pair, ) -> Option<(Rational, Rational, usize)> { if pool_pair.0 == pool_pair.1 { - return Some((Rational::ONE, Rational::from(1_000_000), usize::MAX)) + return Some((Rational::ONE, Rational::from(1_000_000), usize::MAX)); } self.graph_manager.get_price(pool_pair, goes_through) } @@ -376,7 +376,7 @@ impl BrontesBatchPricer { let mut bad = false; self.failed_pairs.retain(|r_block, s| { if block != *r_block { - return true + return true; } s.retain(|key| { let p = key.get_pair(); @@ -410,7 +410,7 @@ impl BrontesBatchPricer { let mut bad = false; self.failed_pairs.retain(|r_block, s| { if block != *r_block { - return true + return true; } s.retain(|key| { let p = key.get_pair(); @@ -469,7 +469,7 @@ impl BrontesBatchPricer { let mut bad = false; self.failed_pairs.retain(|r_block, s| { if block != *r_block { - return true + return true; } s.retain(|key| { let p = key.get_pair(); @@ -518,7 +518,7 @@ impl BrontesBatchPricer { let mut bad = false; self.failed_pairs.retain(|r_block, s| { if block != *r_block { - return true + return true; } s.retain(|key| { let p = key.get_pair(); @@ -593,7 +593,7 @@ impl BrontesBatchPricer { self.buffer.overrides.entry(block).or_default().insert(addr); } - return None + return None; } else if let LoadResult::Err { block, pool_address, @@ -627,7 +627,7 @@ impl BrontesBatchPricer { }) .collect_vec(); - return Some(failed_queries) + return Some(failed_queries); } None }) @@ -725,7 +725,7 @@ impl BrontesBatchPricer { #[brontes_macros::metrics_call(ptr=metrics,function_call_count, self.range_id, "bad_state_requery")] fn requery_bad_state_par(&mut self, pairs: Vec, frayed_ext: bool) { if pairs.is_empty() { - return + return; } tracing::debug!("requerying bad state"); @@ -746,7 +746,7 @@ impl BrontesBatchPricer { if edges.is_empty() { tracing::debug!(?pair, ?extends_pair, "no edges found"); - return Some((pair, block)) + return Some((pair, block)); } let Some((id, need_state, force_rundown)) = @@ -758,7 +758,7 @@ impl BrontesBatchPricer { if force_rundown && !need_state { tracing::debug!("force rundown requery bad state par"); - return Some((pair, block)) + return Some((pair, block)); } else if !need_state { recusing.push((block, id, pair)) } @@ -785,7 +785,7 @@ impl BrontesBatchPricer { #[brontes_macros::metrics_call(ptr=metrics,function_call_count, self.range_id, "rundown")] fn par_rundown(&mut self, pairs: Vec<(PairWithFirstPoolHop, u64)>) { if pairs.is_empty() { - return + return; } let new_subgraphs = execute_on!(target = pricing, { @@ -866,14 +866,14 @@ impl BrontesBatchPricer { self.add_subgraph(pair, extend, block, edges, frayed_ext)?; if !need_state { - return Some((block, id, pair)) + return Some((block, id, pair)); } None }) .collect_vec(); if verify.is_empty() { - return + return; } execute_on!(target = pricing, self.try_verify_subgraph(verify)); @@ -956,7 +956,7 @@ impl BrontesBatchPricer { #[brontes_macros::metrics_call(ptr=metrics,function_call_count, self.range_id, "try_flush_out_pending_verification")] fn try_flush_out_pending_verification(&mut self) { if !self.lazy_loader.can_progress(&self.completed_block) { - return + return; } let rem_block = self @@ -965,7 +965,7 @@ impl BrontesBatchPricer { .get_rem_for_block(self.completed_block); if rem_block.is_empty() { - return + return; } self.par_rundown( @@ -1007,7 +1007,7 @@ impl BrontesBatchPricer { // if there are still requests for the given block or the current block isn't // complete yet, then we wait if !self.can_progress() { - return None + return None; } self.graph_manager.finalize_block(self.completed_block); @@ -1103,12 +1103,12 @@ impl BrontesBatchPricer { .filter_map(|(key, first_price, last_price)| { let block_movement = if last_price > first_price { if last_price == Rational::ZERO { - return None + return None; } (&last_price - &first_price) / last_price } else { if first_price == Rational::ZERO { - return None + return None; } (&first_price - &last_price) / first_price }; @@ -1141,7 +1141,7 @@ impl BrontesBatchPricer { .graph_manager .verification_done_for_block(self.completed_block) { - return None + return None; } self.graph_manager.finalize_block(self.completed_block); @@ -1222,7 +1222,7 @@ impl Stream for BrontesBatchPricer { cx: &mut std::task::Context<'_>, ) -> std::task::Poll> { if let Some(new_prices) = self.poll_state_processing(cx) { - return new_prices + return new_prices; } // ensure clearing when finished @@ -1270,13 +1270,13 @@ impl Stream for BrontesBatchPricer { } else { self.overlap_update = Some(update); cx.waker().wake_by_ref(); - break + break; } } } Poll::Ready(None) => { cx.waker().wake_by_ref(); - break + break; } Poll::Pending => { if self.lazy_loader.is_empty() @@ -1287,15 +1287,15 @@ impl Stream for BrontesBatchPricer { && block_updates.is_empty() && self.finished.load(SeqCst) { - return Poll::Ready(self.on_close()) + return Poll::Ready(self.on_close()); } - break + break; } } } if block_updates.is_empty() { - break 'outer + break 'outer; } #[allow(clippy::blocks_in_conditions)] @@ -1312,7 +1312,7 @@ impl Stream for BrontesBatchPricer { budget -= 1; if budget == 0 { - break 'outer + break 'outer; } } diff --git a/crates/brontes-pricing/src/protocols/lazy.rs b/crates/brontes-pricing/src/protocols/lazy.rs index 61ade1d98a..49e53b62c5 100644 --- a/crates/brontes-pricing/src/protocols/lazy.rs +++ b/crates/brontes-pricing/src/protocols/lazy.rs @@ -267,7 +267,7 @@ impl Stream for MultiBlockPoolFutures { cx: &mut std::task::Context<'_>, ) -> Poll> { if self.0.is_empty() { - return Poll::Ready(None) + return Poll::Ready(None); } let (mut results, empty): (Vec<_>, Vec<_>) = self @@ -282,7 +282,7 @@ impl Stream for MultiBlockPoolFutures { }; if futures.is_empty() { - return (res, Some(*block)) + return (res, Some(*block)); } (res, None) @@ -297,7 +297,7 @@ impl Stream for MultiBlockPoolFutures { if let Some(result) = results.pop() { // no lossless assert!(results.is_empty()); - return Poll::Ready(Some(result.unwrap())) + return Poll::Ready(Some(result.unwrap())); } Poll::Pending @@ -328,11 +328,11 @@ impl LoadingStateTracker { let mut removed = vec![]; self.protocol_address_to_dependent_pairs.retain(|p, b| { if p != &pool { - return true + return true; } b.retain(|(bn, key)| { if &block != bn { - return true + return true; } removed.push(*key); false @@ -376,7 +376,7 @@ impl LoadingStateTracker { let PairStateLoadingProgress { block, id, pending_pools } = entries; if pending_pools.is_empty() { res.push((*block, id.take(), *pair)); - return false + return false; } true }); diff --git a/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs index 1055cb0223..216283b8ba 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v2/mod.rs @@ -149,7 +149,7 @@ impl UniswapV2Pool { pool.populate_data(Some(block), middleware).await?; if !pool.data_is_populated() { - return Err(AmmError::NoStateError(pair_addr)) + return Err(AmmError::NoStateError(pair_addr)); } Ok(pool) @@ -176,7 +176,7 @@ impl UniswapV2Pool { pool.populate_data(None, middleware.clone()).await?; if !pool.data_is_populated() { - return Err(AmmError::PoolDataError) + return Err(AmmError::PoolDataError); } Ok(pool) @@ -209,7 +209,7 @@ impl UniswapV2Pool { ); if r_0 == Rational::ZERO || r_1 == Rational::ZERO { - return Err(ArithmeticError::UniV2DivZero) + return Err(ArithmeticError::UniV2DivZero); } if base_token == self.token_a { diff --git a/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs index 38bf8e6c25..5134dfb7a5 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v3/batch_request/mod.rs @@ -134,7 +134,7 @@ pub async fn get_v3_pool_data_batch_request( return Err(AmmError::CallError(eyre::eyre!( "pool bytecode was empty {:?}", pool.address - ))) + ))); } let pool_bytecode = Bytes::from(hex::encode_prefixed(pool_bytecode.bytecode().as_ref())); let (token0, token1, fee, tick_spacing) = extract_uni_v3_immutables(pool_bytecode)?; diff --git a/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs b/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs index dffe5883c4..9b2352036c 100644 --- a/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs +++ b/crates/brontes-pricing/src/protocols/uniswap_v3/mod.rs @@ -125,18 +125,18 @@ pub const MINT_EVENT_SIGNATURE: B256 = FixedBytes([ #[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)] pub struct UniswapV3Pool { - pub address: Address, - pub token_a: Address, + pub address: Address, + pub token_a: Address, pub token_a_decimals: u8, - pub token_b: Address, + pub token_b: Address, pub token_b_decimals: u8, - pub liquidity: u128, - pub sqrt_price: U256, - pub fee: u32, - pub tick: i32, - pub tick_spacing: i32, - pub tick_bitmap: FastHashMap, - pub ticks: FastHashMap, + pub liquidity: u128, + pub sqrt_price: U256, + pub fee: u32, + pub tick: i32, + pub tick_spacing: i32, + pub tick_bitmap: FastHashMap, + pub ticks: FastHashMap, // non v3 native state pub reserve_0: U256, @@ -146,8 +146,8 @@ pub struct UniswapV3Pool { #[derive(Debug, Clone, Default, Serialize, Deserialize, Hash, PartialEq, Eq)] pub struct Info { pub liquidity_gross: u128, - pub liquidity_net: i128, - pub initialized: bool, + pub liquidity_net: i128, + pub initialized: bool, } impl Info { @@ -500,12 +500,12 @@ impl UniswapV3Pool { #[derive(Default)] pub struct StepComputations { pub sqrt_price_start_x_96: U256, - pub tick_next: i32, - pub initialized: bool, - pub sqrt_price_next_x96: U256, - pub amount_in: U256, - pub amount_out: U256, - pub fee_amount: U256, + pub tick_next: i32, + pub initialized: bool, + pub sqrt_price_next_x96: U256, + pub amount_in: U256, + pub amount_out: U256, + pub fee_amount: U256, } pub struct Tick { diff --git a/crates/brontes-pricing/src/subgraph_query.rs b/crates/brontes-pricing/src/subgraph_query.rs index b97ded21c7..b0b51ecba0 100644 --- a/crates/brontes-pricing/src/subgraph_query.rs +++ b/crates/brontes-pricing/src/subgraph_query.rs @@ -96,7 +96,7 @@ pub fn par_state_query(graph: &GraphManager, pairs: Vec) -> ParSta None, ); - return StateQueryRes { pair, extends_pair, edges: vec![edges], block } + return StateQueryRes { pair, extends_pair, edges: vec![edges], block }; } StateQueryRes { @@ -172,7 +172,7 @@ fn queue_loading_returns( pair: Pair, ) -> Option { if pair.0 == pair.1 { - return None + return None; } // if we can extend another graph and we don't have a direct pair with a quote diff --git a/crates/brontes-pricing/src/types.rs b/crates/brontes-pricing/src/types.rs index 88eefcc32b..37beb97e8d 100644 --- a/crates/brontes-pricing/src/types.rs +++ b/crates/brontes-pricing/src/types.rs @@ -105,7 +105,7 @@ impl PoolState { pub fn increment_state(&mut self, state: PoolUpdate) { if !state.is_supported_protocol() { tracing::error!(state_transition=?state, "tried to apply a invalid state transition"); - return + return; } self.last_update = state.block; self.variant.increment_state(state.logs); @@ -203,7 +203,7 @@ impl PoolUpdate { || self.action.is_aggregator() || self.action.is_eth_transfer() { - return None + return None; } Some(self.get_pool_address()) } @@ -214,9 +214,9 @@ impl PoolUpdate { pub fn is_supported_protocol(&self) -> bool { if let Action::Swap(s) = &self.action { - return s.protocol.has_state_updater() + return s.protocol.has_state_updater(); } else if let Action::SwapWithFee(s) = &self.action { - return s.protocol.has_state_updater() + return s.protocol.has_state_updater(); } true diff --git a/crates/brontes-types/src/block_metadata/relays-openapi/src/apis/mod.rs b/crates/brontes-types/src/block_metadata/relays-openapi/src/apis/mod.rs index 0532d260f3..338a9e2365 100644 --- a/crates/brontes-types/src/block_metadata/relays-openapi/src/apis/mod.rs +++ b/crates/brontes-types/src/block_metadata/relays-openapi/src/apis/mod.rs @@ -84,7 +84,7 @@ pub fn parse_deep_object(prefix: &str, value: &serde_json::Value) -> Vec<(String } } - return params + return params; } unimplemented!("Only objects are supported with style=deepObject") diff --git a/crates/brontes-types/src/buf_writer.rs b/crates/brontes-types/src/buf_writer.rs index 8be816d787..ccb50f0065 100644 --- a/crates/brontes-types/src/buf_writer.rs +++ b/crates/brontes-types/src/buf_writer.rs @@ -57,7 +57,7 @@ impl>> DownloadBufWriterWithProgr if has >= rem && self.file.can_write() { let bytes_to_write = self.buffer.drain(..).chain(bytes).collect::>(); self.file.write(bytes_to_write); - return + return; } self.buffer.extend(bytes); @@ -121,7 +121,7 @@ impl> + Unpin> Future this.file.write(bytes_to_write); // reschedule to start polling write cx.waker().wake_by_ref(); - return Poll::Pending + return Poll::Pending; } // waiting for a prev batch to finish writing Poll::Ready(None) if !this.buffer.is_empty() && !this.file.can_write() => { @@ -133,7 +133,7 @@ impl> + Unpin> Future work -= 1; if work == 0 || this.is_over_buffer() { cx.waker().wake_by_ref(); - return Poll::Pending + return Poll::Pending; } } } diff --git a/crates/brontes-types/src/db/address_metadata.rs b/crates/brontes-types/src/db/address_metadata.rs index 877175254d..6e35926aac 100644 --- a/crates/brontes-types/src/db/address_metadata.rs +++ b/crates/brontes-types/src/db/address_metadata.rs @@ -30,7 +30,8 @@ pub struct AddressMetadata { impl AddressMetadata { pub fn is_verified(&self) -> bool { self.contract_info - .as_ref().is_some_and(|c| c.verified_contract.unwrap_or(false)) + .as_ref() + .is_some_and(|c| c.verified_contract.unwrap_or(false)) } pub fn describe(&self) -> Option { @@ -94,12 +95,14 @@ impl AddressMetadata { fn is_cex(&self) -> bool { self.address_type - .as_deref().is_some_and(|t| t.eq_ignore_ascii_case("cex")) + .as_deref() + .is_some_and(|t| t.eq_ignore_ascii_case("cex")) } fn is_aggregator(&self) -> bool { self.address_type - .as_deref().is_some_and(|t| t.eq_ignore_ascii_case("aggregator")) + .as_deref() + .is_some_and(|t| t.eq_ignore_ascii_case("aggregator")) } fn is_cex_exchange(&self) -> bool { diff --git a/crates/brontes-types/src/db/cex/quotes/cex_quotes.rs b/crates/brontes-types/src/db/cex/quotes/cex_quotes.rs index fcdc2ae7df..cd7dfb45bd 100644 --- a/crates/brontes-types/src/db/cex/quotes/cex_quotes.rs +++ b/crates/brontes-types/src/db/cex/quotes/cex_quotes.rs @@ -114,7 +114,7 @@ impl CexPriceMap { tracing::debug!(?exchange, ?pair); let res = self.get_quote_at(pair, exchange, timestamp, max_time_diff); if res.is_some() { - return res + return res; } } None @@ -147,7 +147,7 @@ impl CexPriceMap { _max_time_diff: Option, ) -> Option { if pair.0 == pair.1 { - return Some(FeeAdjustedQuote::default_one_to_one()) + return Some(FeeAdjustedQuote::default_one_to_one()); } self.quotes @@ -165,7 +165,7 @@ impl CexPriceMap { .and_then(|(adjusted_quotes, direction)| { if adjusted_quotes.is_empty() { tracing::debug!(?pair, ?exchange, "no quotes"); - return None + return None; } let index = adjusted_quotes.partition_point(|q| q.timestamp <= timestamp); @@ -226,7 +226,7 @@ impl CexPriceMap { ); if quote2.price_maker.0 == Rational::ZERO { - return None + return None; } let normalized_bbo_amount: (Rational, Rational) = ( @@ -272,7 +272,7 @@ impl CexPriceMap { /// price is reciprocated to match the requested pair ordering. pub fn get_vm_quote(&self, pair: &Pair, exchange: &CexExchange) -> Option { if pair.0 == pair.1 { - return Some(FeeAdjustedQuote::default_one_to_one()) + return Some(FeeAdjustedQuote::default_one_to_one()); } self.quotes @@ -554,7 +554,10 @@ fn log_significant_price_difference( dex_swap.token_out.address, intermediary, dex_swap.token_in.address, - tx_hash.map_or(String::new(), |hash| format!("- Transaction Hash: https://etherscan.io/tx/{}", hash)) + tx_hash.map_or(String::new(), |hash| format!( + "- Transaction Hash: https://etherscan.io/tx/{}", + hash + )) ); } diff --git a/crates/brontes-types/src/db/cex/quotes/download.rs b/crates/brontes-types/src/db/cex/quotes/download.rs index 507f80ea97..5eed40f146 100644 --- a/crates/brontes-types/src/db/cex/quotes/download.rs +++ b/crates/brontes-types/src/db/cex/quotes/download.rs @@ -213,7 +213,7 @@ impl CexQuotesConverter { if block.contains_time(timestamp) { matching_blocks.push((block.block_number, block.precise_timestamp)); } else { - break + break; } } @@ -230,7 +230,7 @@ impl CexQuotesConverter { .into_par_iter() .filter_map(|(pair, quotes_indices)| { if quotes_indices.is_empty() { - return None + return None; } let mut result = Vec::with_capacity(QUOTE_TIME_BOUNDARY.len()); @@ -245,7 +245,7 @@ impl CexQuotesConverter { for time in QUOTE_TIME_BOUNDARY { while let Some(peeked) = quote_iter.peek() { if peeked.timestamp > block_time + time * 1_000_000 { - break + break; } last_quote = quote_iter.next(); } diff --git a/crates/brontes-types/src/db/cex/trades/download.rs b/crates/brontes-types/src/db/cex/trades/download.rs index af10571628..abc0244641 100644 --- a/crates/brontes-types/src/db/cex/trades/download.rs +++ b/crates/brontes-types/src/db/cex/trades/download.rs @@ -126,7 +126,7 @@ impl CexTradesConverter { let mut seen = vec![]; for mut symbol in symbols { if seen.contains(&symbol.address_pair) { - continue + continue; } else { seen.push(symbol.address_pair) } diff --git a/crates/brontes-types/src/db/cex/trades/optimistic.rs b/crates/brontes-types/src/db/cex/trades/optimistic.rs index e7ccf9e5ed..c35c219830 100644 --- a/crates/brontes-types/src/db/cex/trades/optimistic.rs +++ b/crates/brontes-types/src/db/cex/trades/optimistic.rs @@ -121,7 +121,7 @@ impl<'a> SortedTrades<'a> { final_end_time: 0, was_intermediary: false, }, - }) + }); } let res = self @@ -261,7 +261,7 @@ impl<'a> SortedTrades<'a> { || baskets_queue.get_max_time_delta(block_timestamp) >= config.max_optimistic_post_block_us { - break + break; } let min_expand = (baskets_queue.get_max_time_delta(block_timestamp) @@ -333,9 +333,9 @@ impl<'a> SortedTrades<'a> { if &trade_volume < volume && !bypass_vol { log_insufficient_trade_volume(pair, dex_swap, &tx_hash, trade_volume, volume.clone()); - return None + return None; } else if trade_volume == Rational::ZERO { - return None + return None; } let global = ExchangePath { diff --git a/crates/brontes-types/src/db/cex/trades/time_window_vwam.rs b/crates/brontes-types/src/db/cex/trades/time_window_vwam.rs index 9e5a18749f..296700d7bc 100644 --- a/crates/brontes-types/src/db/cex/trades/time_window_vwam.rs +++ b/crates/brontes-types/src/db/cex/trades/time_window_vwam.rs @@ -103,7 +103,7 @@ impl<'a> TimeWindowTrades<'a> { .iter() .filter_map(|(ex, pairs)| { if !exchanges.contains(ex) || pair.0 == pair.1 { - return None + return None; } Some(( @@ -144,7 +144,7 @@ impl<'a> TimeWindowTrades<'a> { tx_hash: FixedBytes<32>, ) -> Option { if pair.0 == pair.1 { - return Some(WindowExchangePrice::default()) + return Some(WindowExchangePrice::default()); } let res = self @@ -325,7 +325,7 @@ impl<'a> TimeWindowTrades<'a> { if walker.get_min_time_delta(block_timestamp) >= config.max_vwap_pre_block_us || walker.get_max_time_delta(block_timestamp) >= config.max_vwap_post_block_us { - break + break; } let min_expand = (walker.get_max_time_delta(block_timestamp) @@ -344,7 +344,7 @@ impl<'a> TimeWindowTrades<'a> { trade_volume_global, vol.clone(), ); - return None + return None; } let mut per_exchange_price = FastHashMap::default(); @@ -359,7 +359,7 @@ impl<'a> TimeWindowTrades<'a> { exchange_vxp { if trade_vol == Rational::ZERO { - continue + continue; } let maker_price = vxp_maker / &trade_vol_weight; let taker_price = vxp_taker / &trade_vol_weight; @@ -394,7 +394,7 @@ impl<'a> TimeWindowTrades<'a> { trade_volume_global, vol.clone(), ); - return None + return None; } let global_maker = global_maker / &trade_volume_global; @@ -444,10 +444,10 @@ impl<'a> TimeWindowTrades<'a> { "have trades inner(flipped)" ); } - return Some(TradeData { indices, trades, direction: Direction::Buy }) + return Some(TradeData { indices, trades, direction: Direction::Buy }); } else { log_missing_trade_data(dex_swap, &tx_hash); - return None + return None; } } diff --git a/crates/brontes-types/src/db/cex/trades/utils.rs b/crates/brontes-types/src/db/cex/trades/utils.rs index fae30df597..b58ddf113d 100644 --- a/crates/brontes-types/src/db/cex/trades/utils.rs +++ b/crates/brontes-types/src/db/cex/trades/utils.rs @@ -78,7 +78,7 @@ impl<'a> PairTradeWalker<'a> { for (exchange, trades) in &self.trades { let Some((lower_idx, upper_idx)) = self.exchange_ptrs.get_mut(exchange) else { - continue + continue; }; // Gets trades before the block timestamp that are within the current pre block @@ -90,11 +90,11 @@ impl<'a> PairTradeWalker<'a> { trade_res.push(CexTradePtr::new(next_trade)); *lower_idx -= 1; } else { - break + break; } if *lower_idx == 0 { - break + break; } } } @@ -109,11 +109,11 @@ impl<'a> PairTradeWalker<'a> { trade_res.push(CexTradePtr::new(next_trade)); *upper_idx += 1; } else { - break + break; } if *upper_idx == max { - break + break; } } } @@ -160,14 +160,14 @@ impl<'a> TradeBasket<'a> { final_trade.amount = remaining_volume; trades_used.push(final_trade); remaining_volume = Rational::ZERO; - break + break; } else { trades_used.push(trade_data.clone()); remaining_volume -= &trade_data.amount; } if remaining_volume == Rational::ZERO { - break + break; } } @@ -189,7 +189,7 @@ impl<'a> SortedTrades<'a> { for (ex, pairs) in trade_map.iter() { if !exchanges.contains(ex) || pair.0 == pair.1 { - continue + continue; } for (ex_pair, trades) in pairs.iter() { @@ -199,7 +199,7 @@ impl<'a> SortedTrades<'a> { || pair.1 == ex_pair.0 || pair.1 == ex_pair.1) { - continue + continue; } consolidated_trades @@ -318,7 +318,7 @@ impl TimeBasketQueue<'_> { while self.indexes.1 < self.trades.len() { let trade = &self.trades[self.indexes.1]; if trade.timestamp > self.current_post_time { - break + break; } basket_trades.push(CexTradePtr::new(trade)); basket_volume += &trade.amount; @@ -343,7 +343,7 @@ impl TimeBasketQueue<'_> { // Break if we've reached the max timestamp if self.current_post_time >= self.max_timestamp { - break + break; } } } @@ -363,7 +363,7 @@ impl TimeBasketQueue<'_> { while self.indexes.0 > 0 { let trade = &self.trades[self.indexes.0]; if trade.timestamp < self.current_pre_time { - break + break; } basket_trades.push(CexTradePtr::new(trade)); basket_volume += &trade.amount; @@ -388,7 +388,7 @@ impl TimeBasketQueue<'_> { // Break if we've reached the min timestamp if self.current_pre_time <= self.min_timestamp { - break + break; } } } diff --git a/crates/brontes-types/src/db/clickhouse_serde/dex.rs b/crates/brontes-types/src/db/clickhouse_serde/dex.rs index 7d8978835e..14c2e960b8 100644 --- a/crates/brontes-types/src/db/clickhouse_serde/dex.rs +++ b/crates/brontes-types/src/db/clickhouse_serde/dex.rs @@ -77,7 +77,7 @@ pub mod dex_quote { let des: DexPriceQuotesVec = Deserialize::deserialize(deserializer)?; if des.is_empty() { - return Ok(None) + return Ok(None); } let val = des diff --git a/crates/brontes-types/src/db/dex.rs b/crates/brontes-types/src/db/dex.rs index e12dba1e13..e54740b54e 100644 --- a/crates/brontes-types/src/db/dex.rs +++ b/crates/brontes-types/src/db/dex.rs @@ -129,15 +129,15 @@ impl DexQuotes { first_hop_connections: usize::MAX, goes_through: Pair::default(), is_transfer: false, - }) + }); } loop { if let Some(price) = self.get_price(pair, tx) { - return Some(price.clone()) + return Some(price.clone()); } if tx == 0 { - break + break; } tx -= 1; @@ -168,11 +168,11 @@ impl DexQuotes { pool_liquidity: Rational::from(1_000_000), goes_through: Pair::default(), is_transfer: false, - }) + }); } if let Some(price) = self.get_price(pair, tx) { - return Some(price.clone()) + return Some(price.clone()); } debug!(target: "brontes::missing_pricing",?pair, at=?s_idx, "no price for pair"); @@ -197,15 +197,15 @@ impl DexQuotes { pool_liquidity: Rational::from(1_000_000), goes_through: Pair::default(), is_transfer: false, - }) + }); } loop { if let Some(price) = self.get_price(pair, tx) { - return Some(price.clone()) + return Some(price.clone()); } if tx == 0 { - break + break; } tx -= 1; @@ -255,7 +255,7 @@ impl DexQuotes { .collect_vec(); if entires.is_empty() { - return None + return None; } let len = entires.len(); @@ -343,7 +343,7 @@ impl<'de> Deserialize<'de> for DexQuoteWithIndex { let des: DexPriceQuotesVec = Deserialize::deserialize(deserializer)?; if des.1.is_empty() { - return Ok(DexQuoteWithIndex { tx_idx: des.0 as u16, quote: vec![] }) + return Ok(DexQuoteWithIndex { tx_idx: des.0 as u16, quote: vec![] }); } let val = des diff --git a/crates/brontes-types/src/db/metadata.rs b/crates/brontes-types/src/db/metadata.rs index 10fc0c59cb..fad3d35af0 100644 --- a/crates/brontes-types/src/db/metadata.rs +++ b/crates/brontes-types/src/db/metadata.rs @@ -91,10 +91,10 @@ impl Metadata { self.cex_quotes.quotes.iter().for_each(|(exchange, pairs)| { pairs.keys().for_each(|key| { let Ok(token0) = db.try_fetch_token_info(key.0).map(|s| s.symbol.clone()) else { - return + return; }; let Ok(token1) = db.try_fetch_token_info(key.1).map(|s| s.symbol.clone()) else { - return + return; }; if &token0 == "WETH" && &token1 == "USDT" { tracing::info!(?exchange, "{}-{} in quotes", token0, token1); @@ -116,7 +116,7 @@ impl Metadata { /// falls back to DEX quotes using the average block price. pub fn get_eth_price(&self, quote_token: Address) -> Rational { if self.block_metadata.eth_prices != Rational::ZERO { - return self.block_metadata.eth_prices.clone() + return self.block_metadata.eth_prices.clone(); } self.dex_quotes diff --git a/crates/brontes-types/src/db/searcher.rs b/crates/brontes-types/src/db/searcher.rs index 9f4154ec62..69330b768d 100644 --- a/crates/brontes-types/src/db/searcher.rs +++ b/crates/brontes-types/src/db/searcher.rs @@ -103,7 +103,7 @@ impl SearcherInfo { pub fn describe(&self) -> String { if self.name.is_some() { - return self.name.clone().unwrap() + return self.name.clone().unwrap(); } let mut parts: Vec = Vec::new(); diff --git a/crates/brontes-types/src/db/traces.rs b/crates/brontes-types/src/db/traces.rs index 4d459f25d4..d262ab892b 100644 --- a/crates/brontes-types/src/db/traces.rs +++ b/crates/brontes-types/src/db/traces.rs @@ -41,14 +41,14 @@ implement_table_value_codecs_with_zc!(TxTracesInnerRedefined); )] #[redefined(TxTrace)] pub struct TxTraceRedefined { - pub block_number: u64, - pub trace: Vec, - pub tx_hash: FixedBytesRedefined<32>, - pub gas_used: u128, + pub block_number: u64, + pub trace: Vec, + pub tx_hash: FixedBytesRedefined<32>, + pub gas_used: u128, pub effective_price: u128, - pub tx_index: u64, + pub tx_index: u64, // False if the transaction reverted - pub is_success: bool, + pub is_success: bool, } #[derive( @@ -56,10 +56,10 @@ pub struct TxTraceRedefined { )] #[redefined(TransactionTraceWithLogs)] pub struct TransactionTraceWithLogsRedefined { - pub trace: TransactionTraceRedefined, - pub logs: Vec, - pub msg_sender: AddressRedefined, - pub trace_idx: u64, + pub trace: TransactionTraceRedefined, + pub logs: Vec, + pub msg_sender: AddressRedefined, + pub trace_idx: u64, pub decoded_data: Option, } @@ -69,7 +69,7 @@ pub struct TransactionTraceWithLogsRedefined { #[redefined(Log)] pub struct LogRedefined { pub address: AddressRedefined, - pub data: LogDataRedefined, + pub data: LogDataRedefined, } #[derive( @@ -81,7 +81,7 @@ pub struct LogRedefined { pub struct LogDataRedefined { #[redefined(func = "src.topics().to_vec()")] pub topics: Vec>, - pub data: BytesRedefined, + pub data: BytesRedefined, } #[derive( @@ -97,10 +97,10 @@ pub struct LogDataRedefined { )] #[redefined(TransactionTrace)] pub struct TransactionTraceRedefined { - pub action: ActionRedefined, - pub error: Option, - pub result: Option, - pub subtraces: usize, + pub action: ActionRedefined, + pub error: Option, + pub result: Option, + pub subtraces: usize, pub trace_address: Vec, } @@ -136,12 +136,12 @@ pub enum ActionRedefined { )] #[redefined(CallAction)] pub struct CallActionRedefined { - pub from: AddressRedefined, + pub from: AddressRedefined, pub call_type: CallTypeRedefined, - pub gas: u64, - pub input: BytesRedefined, - pub to: AddressRedefined, - pub value: U256Redefined, + pub gas: u64, + pub input: BytesRedefined, + pub to: AddressRedefined, + pub value: U256Redefined, } #[derive( @@ -157,10 +157,10 @@ pub struct CallActionRedefined { )] #[redefined(CreateAction)] pub struct CreateActionRedefined { - pub from: AddressRedefined, - pub gas: u64, - pub init: BytesRedefined, - pub value: U256Redefined, + pub from: AddressRedefined, + pub gas: u64, + pub init: BytesRedefined, + pub value: U256Redefined, pub creation_method: CreationMethodRedefined, } @@ -196,8 +196,8 @@ pub enum CreationMethodRedefined { )] #[redefined(SelfdestructAction)] pub struct SelfdestructActionRedefined { - pub address: AddressRedefined, - pub balance: U256Redefined, + pub address: AddressRedefined, + pub balance: U256Redefined, pub refund_address: AddressRedefined, } @@ -214,9 +214,9 @@ pub struct SelfdestructActionRedefined { )] #[redefined(RewardAction)] pub struct RewardActionRedefined { - pub author: AddressRedefined, + pub author: AddressRedefined, pub reward_type: RewardTypeRedefined, - pub value: U256Redefined, + pub value: U256Redefined, } #[derive( @@ -288,7 +288,7 @@ pub enum TraceOutputRedefined { #[redefined(CallOutput)] pub struct CallOutputRedefined { pub gas_used: u64, - pub output: BytesRedefined, + pub output: BytesRedefined, } #[derive( @@ -304,7 +304,7 @@ pub struct CallOutputRedefined { )] #[redefined(CreateOutput)] pub struct CreateOutputRedefined { - pub address: AddressRedefined, - pub code: BytesRedefined, + pub address: AddressRedefined, + pub code: BytesRedefined, pub gas_used: u64, } diff --git a/crates/brontes-types/src/db_write_trigger.rs b/crates/brontes-types/src/db_write_trigger.rs index 1da8093621..5d49580a00 100644 --- a/crates/brontes-types/src/db_write_trigger.rs +++ b/crates/brontes-types/src/db_write_trigger.rs @@ -84,7 +84,7 @@ impl Stream for HeartRateMonitor { self.timeout.reset(); cx.waker().wake_by_ref(); tracing::debug!("got heartbeat"); - return Poll::Ready(Some(true)) + return Poll::Ready(Some(true)); } Poll::Ready(None) => return Poll::Ready(None), Poll::Pending => {} @@ -92,7 +92,7 @@ impl Stream for HeartRateMonitor { if self.timeout.poll_tick(cx).is_ready() { tracing::debug!("disconnect detected, starting backup"); - return Poll::Ready(Some(false)) + return Poll::Ready(Some(false)); } Poll::Pending diff --git a/crates/brontes-types/src/executor.rs b/crates/brontes-types/src/executor.rs index 1bf60f3f91..a202299124 100644 --- a/crates/brontes-types/src/executor.rs +++ b/crates/brontes-types/src/executor.rs @@ -131,7 +131,7 @@ impl BrontesTaskManager { .unwrap_or(false) { debug!("graceful shutdown timed out"); - return false + return false; } std::hint::spin_loop(); } diff --git a/crates/brontes-types/src/mev/sandwich.rs b/crates/brontes-types/src/mev/sandwich.rs index d5ee520d7c..adc5f07ddf 100644 --- a/crates/brontes-types/src/mev/sandwich.rs +++ b/crates/brontes-types/src/mev/sandwich.rs @@ -59,45 +59,45 @@ use crate::{ #[derive(Debug, Deserialize, PartialEq, Clone, Default, Redefined)] #[redefined_attr(derive(Debug, PartialEq, Clone, Serialize, rSerialize, rDeserialize, Archive))] pub struct Sandwich { - pub block_number: u64, + pub block_number: u64, /// Transaction hashes of the frontrunning transactions. /// Supports multiple transactions for complex sandwich scenarios. - pub frontrun_tx_hash: Vec, + pub frontrun_tx_hash: Vec, /// Swaps executed in each frontrunning transaction. /// Nested vectors represent multiple swaps within each transaction. - pub frontrun_swaps: Vec>, + pub frontrun_swaps: Vec>, /// Gas details for each frontrunning transaction. #[redefined(same_fields)] - pub frontrun_gas_details: Vec, + pub frontrun_gas_details: Vec, /// Transaction hashes of the victim transactions, logically grouped by /// their corresponding frontrunning transaction. Each outer vector /// index corresponds to a frontrun transaction, grouping victims targeted /// by that specific frontrun. - pub victim_swaps_tx_hashes: Vec>, + pub victim_swaps_tx_hashes: Vec>, /// Swaps executed by victims, each outer vector corresponds to a victim /// transaction. - pub victim_swaps: Vec>, + pub victim_swaps: Vec>, /// Gas details for each victim transaction. #[redefined(same_fields)] pub victim_swaps_gas_details: Vec, /// Transaction hashes of the backrunning transactions. - pub backrun_tx_hash: B256, + pub backrun_tx_hash: B256, /// Swaps executed in each backrunning transaction. - pub backrun_swaps: Vec, + pub backrun_swaps: Vec, /// Gas details for each backrunning transaction. #[redefined(same_fields)] - pub backrun_gas_details: GasDetails, + pub backrun_gas_details: GasDetails, } /// calcuation for the loss per user #[derive(Debug, Deserialize, PartialEq, Clone, Default)] pub struct VictimLossAmount { - pub tx_hash: B256, - pub vicitim_eoa: Address, - pub token: TokenInfoWithAddress, + pub tx_hash: B256, + pub vicitim_eoa: Address, + pub token: TokenInfoWithAddress, pub token_amount_lost: Rational, /// is zero if we don't have a price for the given token - pub amount_lost_usd: Rational, + pub amount_lost_usd: Rational, } impl Mev for Sandwich { diff --git a/crates/brontes-types/src/normalized_actions/accounting.rs b/crates/brontes-types/src/normalized_actions/accounting.rs index febd18ae0c..def1166b69 100644 --- a/crates/brontes-types/src/normalized_actions/accounting.rs +++ b/crates/brontes-types/src/normalized_actions/accounting.rs @@ -43,7 +43,7 @@ impl> ActionAccounting for IT { for next in self { if next.is_transfer() { rem.push(next); - continue + continue; } accounting_calc(&mut accounting, next); } diff --git a/crates/brontes-types/src/normalized_actions/comparison.rs b/crates/brontes-types/src/normalized_actions/comparison.rs index 8f0df73934..78298a0446 100644 --- a/crates/brontes-types/src/normalized_actions/comparison.rs +++ b/crates/brontes-types/src/normalized_actions/comparison.rs @@ -25,7 +25,7 @@ impl ActionCmp for Action { Action::Batch(b) => { let user = b.user_swaps.iter().any(|b| b.is_superior_action(other)); if let Some(swaps) = &b.solver_swaps { - return user || swaps.iter().any(|b| b.is_superior_action(other)) + return user || swaps.iter().any(|b| b.is_superior_action(other)); } user } @@ -79,7 +79,7 @@ impl ActionCmp for NormalizedMint { fn is_superior_action(&self, transfer: &NormalizedTransfer) -> bool { for (amount, token) in self.amount.iter().zip(&self.token) { if transfer.amount.eq(amount) && transfer.token.eq(token) { - return true + return true; } } @@ -100,7 +100,7 @@ impl ActionCmp for NormalizedCollect { fn is_superior_action(&self, transfer: &NormalizedTransfer) -> bool { for (amount, token) in self.amount.iter().zip(&self.token) { if transfer.amount.eq(amount) && transfer.token.eq(token) { - return true + return true; } } diff --git a/crates/brontes-types/src/normalized_actions/mod.rs b/crates/brontes-types/src/normalized_actions/mod.rs index dfd3c05eba..1d31a7b1a4 100644 --- a/crates/brontes-types/src/normalized_actions/mod.rs +++ b/crates/brontes-types/src/normalized_actions/mod.rs @@ -306,7 +306,7 @@ impl Action { pub fn get_calldata(&self) -> Option { if let Action::Unclassified(u) = &self { if let TraceAction::Call(call) = &u.trace.action { - return Some(call.input.clone()) + return Some(call.input.clone()); } } @@ -458,7 +458,7 @@ impl Action { pub fn is_static_call(&self) -> bool { if let Self::Unclassified(u) = &self { - return u.is_static_call() + return u.is_static_call(); } false } diff --git a/crates/brontes-types/src/normalized_actions/swaps.rs b/crates/brontes-types/src/normalized_actions/swaps.rs index 0bc183669f..79315d0851 100644 --- a/crates/brontes-types/src/normalized_actions/swaps.rs +++ b/crates/brontes-types/src/normalized_actions/swaps.rs @@ -68,7 +68,7 @@ impl NormalizedSwap { /// Calculates the exchange rate for a given DEX swap pub fn swap_rate(&self) -> Rational { if self.amount_out == Rational::ZERO { - return Rational::ZERO + return Rational::ZERO; } &self.amount_in / &self.amount_out diff --git a/crates/brontes-types/src/test_limiter.rs b/crates/brontes-types/src/test_limiter.rs index a17ec8f170..7b49a4fa07 100644 --- a/crates/brontes-types/src/test_limiter.rs +++ b/crates/brontes-types/src/test_limiter.rs @@ -30,7 +30,7 @@ pub fn wait_for_tests) { || (&transfer.amount + &transfer.fee) == swap_data.amount_out) && (transfer.to == swap_data.pool || transfer.from == swap_data.pool) { - return Some(*index) + return Some(*index); } None }) @@ -49,7 +49,7 @@ pub fn remove_mint_transfers(tree: &mut BlockTree) { }; for (amount, token) in mint_data.amount.iter().zip(&mint_data.token) { if transfer.amount.eq(amount) && transfer.token.eq(token) { - return Some(*index) + return Some(*index); } } None @@ -78,7 +78,7 @@ pub fn remove_burn_transfers(tree: &mut BlockTree) { }; for (amount, token) in burn_data.amount.iter().zip(&burn_data.token) { if transfer.amount.eq(amount) && transfer.token.eq(token) { - return Some(*index) + return Some(*index); } } None @@ -107,7 +107,7 @@ pub fn remove_collect_transfers(tree: &mut BlockTree) { }; for (amount, token) in collect_data.amount.iter().zip(&collect_data.token) { if transfer.amount.eq(amount) && transfer.token.eq(token) { - return Some(*index) + return Some(*index); } } None diff --git a/crates/brontes-types/src/tree/mod.rs b/crates/brontes-types/src/tree/mod.rs index fa64b3eeed..56ddc75222 100644 --- a/crates/brontes-types/src/tree/mod.rs +++ b/crates/brontes-types/src/tree/mod.rs @@ -32,10 +32,10 @@ type ClassifyData = Option<(usize, Vec>)>; #[derive(Debug, Clone)] pub struct BlockTree { - pub tx_roots: Vec>, - pub header: Header, + pub tx_roots: Vec>, + pub header: Header, pub priority_fee_std_dev: f64, - pub avg_priority_fee: f64, + pub avg_priority_fee: f64, } impl BlockTree { diff --git a/crates/brontes-types/src/tree/node.rs b/crates/brontes-types/src/tree/node.rs index b62aa3b6fd..97e1ef6106 100644 --- a/crates/brontes-types/src/tree/node.rs +++ b/crates/brontes-types/src/tree/node.rs @@ -98,15 +98,15 @@ impl Node { self.clear_node_data(index, nodes); }); - return + return; } if self.inner.len() <= 1 { if let Some(inner) = self.inner.first_mut() { - return inner.get_all_children_for_complex_classification(head, nodes) + return inner.get_all_children_for_complex_classification(head, nodes); } warn!("was not able to find node in tree for complex classification"); - return + return; } let mut iter = self.inner.iter_mut(); @@ -118,9 +118,9 @@ impl Node { for next_node in iter { // check if past nodes are the head if cur_inner_node.index == head.trace_index { - return cur_inner_node.get_all_children_for_complex_classification(head, nodes) + return cur_inner_node.get_all_children_for_complex_classification(head, nodes); } else if next_inner_node.index == head.trace_index { - return next_inner_node.get_all_children_for_complex_classification(head, nodes) + return next_inner_node.get_all_children_for_complex_classification(head, nodes); } // if the next node is smaller than the head, we continue @@ -129,21 +129,21 @@ impl Node { next_inner_node = next_node; } else { // next node is bigger than head. thus current node is proper path - return cur_inner_node.get_all_children_for_complex_classification(head, nodes) + return cur_inner_node.get_all_children_for_complex_classification(head, nodes); } } // handle case where there are only two inner nodes to look at if cur_inner_node.index == head.trace_index { - return cur_inner_node.get_all_children_for_complex_classification(head, nodes) + return cur_inner_node.get_all_children_for_complex_classification(head, nodes); } else if next_inner_node.index == head.trace_index { - return next_inner_node.get_all_children_for_complex_classification(head, nodes) + return next_inner_node.get_all_children_for_complex_classification(head, nodes); } else if next_inner_node.index > head.trace_index { - return cur_inner_node.get_all_children_for_complex_classification(head, nodes) + return cur_inner_node.get_all_children_for_complex_classification(head, nodes); } // handle inf case that is shown in the function docs else if let Some(last) = self.inner.last_mut() { - return last.get_all_children_for_complex_classification(head, nodes) + return last.get_all_children_for_complex_classification(head, nodes); } warn!("was not able to find node in tree, should be unreachable"); @@ -162,7 +162,7 @@ impl Node { find.generate_search_args(self, &*data); if !child_node_to_collect { - return false + return false; } let lower_classification_results = self @@ -176,9 +176,9 @@ impl Node { // we return false if collect_current_node { modify(self, data); - return true + return true; } else { - return false + return false; } } false @@ -197,7 +197,7 @@ impl Node { .generate_search_args(self, &*data) .child_node_to_collect { - return false + return false; } let lower_has_better_collect = self @@ -260,7 +260,7 @@ impl Node { .any(|n| n.get_action().is_revert()); if revert { - return + return; } let log = trace_addr.clone(); @@ -383,7 +383,7 @@ impl Node { if self.index >= lower && self.index <= upper { res.push(info_fn(self)); } else { - return + return; } self.inner @@ -403,15 +403,15 @@ impl Node { data.get_mut(index.data_idx as usize) .unwrap() .remove(index.multi_data_idx); - return + return; } if self.inner.len() <= 1 { if let Some(inner) = self.inner.first_mut() { - return inner.clear_node_data(index, data) + return inner.clear_node_data(index, data); } warn!("was not able to find node in tree for clearing node data"); - return + return; } let mut iter = self.inner.iter_mut(); @@ -423,9 +423,9 @@ impl Node { for next_node in iter { // check if past nodes are the head if cur_inner_node.index == index.trace_index { - return cur_inner_node.clear_node_data(index, data) + return cur_inner_node.clear_node_data(index, data); } else if next_inner_node.index == index.trace_index { - return next_inner_node.clear_node_data(index, data) + return next_inner_node.clear_node_data(index, data); } // if the next node is smaller than the head, we continue @@ -434,19 +434,19 @@ impl Node { next_inner_node = next_node; } else { // next node is bigger than head. thus current node is proper path - return cur_inner_node.clear_node_data(index, data) + return cur_inner_node.clear_node_data(index, data); } } // handle case where there are only two inner nodes to look at if cur_inner_node.index == index.trace_index { - return cur_inner_node.clear_node_data(index, data) + return cur_inner_node.clear_node_data(index, data); } else if next_inner_node.index == index.trace_index { - return next_inner_node.clear_node_data(index, data) + return next_inner_node.clear_node_data(index, data); } else if next_inner_node.index > index.trace_index { - return cur_inner_node.clear_node_data(index, data) + return cur_inner_node.clear_node_data(index, data); } else if let Some(last) = self.inner.last_mut() { - return last.clear_node_data(index, data) + return last.clear_node_data(index, data); } warn!("was not able to find node in tree, should be unreachable"); @@ -462,15 +462,15 @@ impl Node { self.get_all_sub_actions().into_iter().for_each(|f| { data.remove(f); }); - return + return; } if self.inner.len() <= 1 { if let Some(inner) = self.inner.first_mut() { - return inner.remove_node_and_children(index, data) + return inner.remove_node_and_children(index, data); } warn!("was not able to find node in tree for removing node data"); - return + return; } let mut iter = self.inner.iter_mut(); @@ -482,9 +482,9 @@ impl Node { for next_node in iter { // check if past nodes are the head if cur_inner_node.index == index { - return cur_inner_node.remove_node_and_children(index, data) + return cur_inner_node.remove_node_and_children(index, data); } else if next_inner_node.index == index { - return next_inner_node.remove_node_and_children(index, data) + return next_inner_node.remove_node_and_children(index, data); } // if the next node is smaller than the head, we continue @@ -493,19 +493,19 @@ impl Node { next_inner_node = next_node; } else { // next node is bigger than head. thus current node is proper path - return cur_inner_node.remove_node_and_children(index, data) + return cur_inner_node.remove_node_and_children(index, data); } } // handle case where there are only two inner nodes to look at if cur_inner_node.index == index { - return cur_inner_node.remove_node_and_children(index, data) + return cur_inner_node.remove_node_and_children(index, data); } else if next_inner_node.index == index { - return next_inner_node.remove_node_and_children(index, data) + return next_inner_node.remove_node_and_children(index, data); } else if next_inner_node.index > index { - return cur_inner_node.remove_node_and_children(index, data) + return cur_inner_node.remove_node_and_children(index, data); } else if let Some(last) = self.inner.last_mut() { - return last.remove_node_and_children(index, data) + return last.remove_node_and_children(index, data); } warn!("was not able to find node in tree, should be unreachable"); @@ -520,7 +520,7 @@ impl Node { ) -> bool { // the previous sub-action was the last one to meet the criteria if !call.generate_search_args(self, data).child_node_to_collect { - return false + return false; } let lower_has_better_collect = self diff --git a/crates/brontes-types/src/tree/root.rs b/crates/brontes-types/src/tree/root.rs index ef2a5419cc..240fafc9a0 100644 --- a/crates/brontes-types/src/tree/root.rs +++ b/crates/brontes-types/src/tree/root.rs @@ -165,7 +165,8 @@ impl Root { || is_classified || emits_logs && searcher_contract_info.is_none() || contract_type - .as_ref().is_some_and(|ct| !ct.could_be_mev_contract()) + .as_ref() + .is_some_and(|ct| !ct.could_be_mev_contract()) { return Ok(TxInfo::new( block_number, @@ -182,7 +183,7 @@ impl Root { searcher_eoa_info, None, self.total_msg_value_transfers.clone(), - )) + )); } Ok(TxInfo::new( diff --git a/crates/brontes-types/src/tree/search_args.rs b/crates/brontes-types/src/tree/search_args.rs index 0ba157449d..bf84c1ade0 100644 --- a/crates/brontes-types/src/tree/search_args.rs +++ b/crates/brontes-types/src/tree/search_args.rs @@ -62,7 +62,7 @@ impl TreeSearchBuilder { tracing::error!( "child nodes contains already set, only one of contains, or have is allowed" ); - return self + return self; } self.child_node_have = action_fns.to_vec(); @@ -76,7 +76,7 @@ impl TreeSearchBuilder { tracing::error!( "child nodes contains already set, only one of contains, or have is allowed" ); - return self + return self; } self.child_nodes_contains = action_fns.to_vec(); self diff --git a/crates/brontes-types/src/tree/tx_info.rs b/crates/brontes-types/src/tree/tx_info.rs index 445c51a8c5..e1943d852c 100644 --- a/crates/brontes-types/src/tree/tx_info.rs +++ b/crates/brontes-types/src/tree/tx_info.rs @@ -106,10 +106,12 @@ impl TxInfo { pub fn is_searcher_of_type(&self, mev_type: MevType) -> bool { self.searcher_eoa_info - .as_ref().is_some_and(|info| info.is_searcher_of_type(mev_type)) + .as_ref() + .is_some_and(|info| info.is_searcher_of_type(mev_type)) || self .searcher_contract_info - .as_ref().is_some_and(|info| info.is_searcher_of_type(mev_type)) + .as_ref() + .is_some_and(|info| info.is_searcher_of_type(mev_type)) } pub fn is_searcher_of_type_with_count_threshold( @@ -118,18 +120,22 @@ impl TxInfo { threshold: u64, ) -> bool { self.searcher_eoa_info - .as_ref().is_some_and(|info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) + .as_ref() + .is_some_and(|info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) || self .searcher_contract_info - .as_ref().is_some_and(|info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) + .as_ref() + .is_some_and(|info| info.is_searcher_of_type_with_threshold(mev_type, threshold)) } pub fn is_labelled_searcher_of_type(&self, mev_type: MevType) -> bool { self.searcher_eoa_info - .as_ref().is_some_and(|info| info.is_labelled_searcher_of_type(mev_type)) + .as_ref() + .is_some_and(|info| info.is_labelled_searcher_of_type(mev_type)) || self .searcher_contract_info - .as_ref().is_some_and(|info| info.is_labelled_searcher_of_type(mev_type)) + .as_ref() + .is_some_and(|info| info.is_labelled_searcher_of_type(mev_type)) } pub fn is_private(&self) -> bool { diff --git a/crates/brontes-types/src/tree/util/flatten.rs b/crates/brontes-types/src/tree/util/flatten.rs index b5ca2c6958..b4996b8d27 100644 --- a/crates/brontes-types/src/tree/util/flatten.rs +++ b/crates/brontes-types/src/tree/util/flatten.rs @@ -33,11 +33,11 @@ impl< let now = ret.pop(); self.extra.extend(ret); if now.is_none() { - continue + continue; } - return now + return now; } else { - return Some(item) + return Some(item); } } diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index 39fb82bd27..b4c314c117 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -58,8 +58,8 @@ pub type RethTxPool = Pool< #[derive(Debug, Clone)] pub struct TracingClient { - pub api: RethApi, - pub trace: RethTrace, + pub api: RethApi, + pub trace: RethTrace, pub provider_factory: RethProviderFactory, } impl TracingClient { @@ -134,23 +134,23 @@ impl TracingClient { block_id: BlockId, ) -> EthResult>> { let insp_setup = || BrontesTracingInspector { - config: TracingInspectorConfig { - record_logs: true, - record_steps: false, - record_state_diff: false, - record_stack_snapshots: StackSnapshotType::None, - record_memory_snapshots: false, - exclude_precompile_calls: true, + config: TracingInspectorConfig { + record_logs: true, + record_steps: false, + record_state_diff: false, + record_stack_snapshots: StackSnapshotType::None, + record_memory_snapshots: false, + exclude_precompile_calls: true, record_returndata_snapshots: false, - record_opcodes_filter: None, - record_immediate_bytes: false, + record_opcodes_filter: None, + record_immediate_bytes: false, }, - traces: CallTraceArena::default(), - trace_stack: Vec::new(), - step_stack: Vec::new(), + traces: CallTraceArena::default(), + trace_stack: Vec::new(), + step_stack: Vec::new(), last_call_return_data: None, - gas_inspector: GasInspector::default(), - spec_id: None, + gas_inspector: GasInspector::default(), + spec_id: None, }; let t = @@ -172,7 +172,7 @@ impl TracingClient { #[derive(Debug, Clone, Copy)] pub struct StackStep { _trace_idx: usize, - _step_idx: usize, + _step_idx: usize, } /// Opens up an existing database at the specified path. diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index a9258243eb..1fb30dff29 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -295,7 +295,7 @@ where .checked_sub(env.value) // Return error if the caller has insufficient funds. .ok_or_else(|| RpcInvalidTransactionError::InsufficientFunds { - cost: env.value, + cost: env.value, balance: account_balance, })? // Calculate the amount of gas the caller can afford with the specified gas price. @@ -315,9 +315,9 @@ pub(crate) struct CallFees { /// /// `gasPrice` for legacy, /// `maxFeePerGas` for EIP-1559 - gas_price: U256, + gas_price: U256, /// Max Fee per Blob gas for EIP-4844 transactions - max_fee_per_blob_gas: Option, + max_fee_per_blob_gas: Option, } // === impl CallFees === diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index bf4de92f56..7642339a17 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -132,7 +132,7 @@ impl BrontesTracingInspector { ) -> bool { if context.journaled_state.precompiles.contains(to) { // only if this is _not_ the root call - return self.is_deep() && value.is_zero() + return self.is_deep() && value.is_zero(); } false } @@ -456,7 +456,7 @@ impl BrontesTracingInspector { block_number: u64, ) -> Option> { if self.traces.nodes().is_empty() { - return None + return None; } let mut traces: Vec = @@ -549,12 +549,12 @@ impl BrontesTracingInspector { fn trace_address(&self, nodes: &[CallTraceNode], idx: usize) -> Vec { if idx == 0 { // root call has empty traceAddress - return vec![] + return vec![]; } let mut graph = vec![]; let mut node = &nodes[idx]; if node.trace.maybe_precompile.unwrap_or(false) { - return graph + return graph; } while let Some(parent) = node.parent { // the index of the child call in the arena diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index 9b00dbc8a5..2657d32d31 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -25,18 +25,18 @@ pub struct DecodedCallData { /// The function signature. pub signature: String, /// The function arguments. - pub args: Vec, + pub args: Vec, } /// Additional decoded data enhancing the [CallTrace]. #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct DecodedCallTrace { /// Optional decoded label for the call. - pub label: Option, + pub label: Option, /// Optional decoded return data. pub return_data: Option, /// Optional decoded call data. - pub call_data: Option, + pub call_data: Option, } /// A trace of a call with optional decoded data. @@ -185,7 +185,7 @@ impl CallTrace { #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct DecodedCallLog { /// The decoded event name. - pub name: Option, + pub name: Option, /// The decoded log parameters, a vector of the parameter name (e.g. foo) /// and the parameter value (e.g. 0x9d3...45ca). pub params: Option>, @@ -195,9 +195,9 @@ pub struct DecodedCallLog { #[derive(Clone, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct CallLog { /// The raw log data. - pub raw_log: LogData, + pub raw_log: LogData, /// Optional complementary decoded log data. - pub decoded: DecodedCallLog, + pub decoded: DecodedCallLog, /// The position of the log relative to subcalls within the same trace. pub position: u64, } @@ -207,8 +207,8 @@ impl From for CallLog { fn from(log: Log) -> Self { Self { position: Default::default(), - raw_log: log.data, - decoded: DecodedCallLog { name: None, params: None }, + raw_log: log.data, + decoded: DecodedCallLog { name: None, params: None }, } } } @@ -226,15 +226,15 @@ impl CallLog { #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct CallTraceNode { /// Parent node index in the arena - pub parent: Option, + pub parent: Option, /// Children node indexes in the arena pub children: Vec, /// This node's index in the arena - pub idx: usize, + pub idx: usize, /// The call trace - pub trace: CallTrace, + pub trace: CallTrace, /// Recorded logs, if enabled - pub logs: Vec, + pub logs: Vec, /// Ordering of child calls and logs pub ordering: Vec, } @@ -306,13 +306,13 @@ impl CallTraceNode { | CallKind::DelegateCall | CallKind::AuthCall => TraceOutput::Call(CallOutput { gas_used: self.trace.gas_used, - output: self.trace.output.clone(), + output: self.trace.output.clone(), }), CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => { TraceOutput::Create(CreateOutput { gas_used: self.trace.gas_used, - code: self.trace.output.clone(), - address: self.trace.address, + code: self.trace.output.clone(), + address: self.trace.address, }) } } @@ -322,9 +322,9 @@ impl CallTraceNode { pub fn parity_selfdestruct_action(&self) -> Option { self.is_selfdestruct().then(|| { Action::Selfdestruct(SelfdestructAction { - address: self.trace.selfdestruct_address.unwrap_or_default(), + address: self.trace.selfdestruct_address.unwrap_or_default(), refund_address: self.trace.selfdestruct_refund_target.unwrap_or_default(), - balance: self + balance: self .trace .selfdestruct_transferred_value .unwrap_or_default(), @@ -369,19 +369,19 @@ impl CallTraceNode { | CallKind::CallCode | CallKind::DelegateCall | CallKind::AuthCall => Action::Call(CallAction { - from: self.trace.caller, - to: self.trace.address, - value: self.trace.value, - gas: self.trace.gas_limit, - input: self.trace.data.clone(), + from: self.trace.caller, + to: self.trace.address, + value: self.trace.value, + gas: self.trace.gas_limit, + input: self.trace.data.clone(), call_type: self.kind().into(), }), CallKind::Create | CallKind::Create2 | CallKind::EOFCreate => { Action::Create(CreateAction { - from: self.trace.caller, - value: self.trace.value, - gas: self.trace.gas_limit, - init: self.trace.data.clone(), + from: self.trace.caller, + value: self.trace.value, + gas: self.trace.gas_limit, + init: self.trace.data.clone(), creation_method: self.kind().into(), }) } @@ -391,18 +391,18 @@ impl CallTraceNode { /// Converts this call trace into an _empty_ geth [CallFrame] pub fn geth_empty_call_frame(&self, include_logs: bool) -> CallFrame { let mut call_frame = CallFrame { - typ: self.trace.kind.to_string(), - from: self.trace.caller, - to: Some(self.trace.address), - value: Some(self.trace.value), - gas: U256::from(self.trace.gas_limit), - gas_used: U256::from(self.trace.gas_used), - input: self.trace.data.clone(), - output: (!self.trace.output.is_empty()).then(|| self.trace.output.clone()), - error: None, + typ: self.trace.kind.to_string(), + from: self.trace.caller, + to: Some(self.trace.address), + value: Some(self.trace.value), + gas: U256::from(self.trace.gas_limit), + gas_used: U256::from(self.trace.gas_used), + input: self.trace.data.clone(), + output: (!self.trace.output.is_empty()).then(|| self.trace.output.clone()), + error: None, revert_reason: None, - calls: Default::default(), - logs: Default::default(), + calls: Default::default(), + logs: Default::default(), }; if self.trace.kind.is_static_call() { @@ -432,9 +432,9 @@ impl CallTraceNode { .logs .iter() .map(|log| CallLogFrame { - address: Some(self.execution_address()), - topics: Some(log.raw_log.topics().to_vec()), - data: Some(log.raw_log.data.clone()), + address: Some(self.execution_address()), + topics: Some(log.raw_log.topics().to_vec()), + data: Some(log.raw_log.data.clone()), position: Some(log.position), }) .collect(); @@ -584,9 +584,9 @@ pub enum TraceMemberOrder { #[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct DecodedInternalCall { /// Name of the internal function. - pub func_name: String, + pub func_name: String, /// Input arguments of the internal function. - pub args: Option>, + pub args: Option>, /// Optional decoded return data. pub return_data: Option>, } @@ -609,45 +609,45 @@ pub enum DecodedTraceStep { pub struct CallTraceStep { // Fields filled in `step` /// Call depth - pub depth: u64, + pub depth: u64, /// Program counter before step execution - pub pc: usize, + pub pc: usize, /// Code section index before step execution - pub code_section_idx: usize, + pub code_section_idx: usize, /// Opcode to be executed - pub op: OpCode, + pub op: OpCode, /// Current contract address - pub contract: Address, + pub contract: Address, /// Stack before step execution - pub stack: Option>, + pub stack: Option>, /// The new stack items placed by this step if any - pub push_stack: Option>, + pub push_stack: Option>, /// Memory before step execution. /// /// This will be `None` only if memory capture is disabled. - pub memory: Option, + pub memory: Option, /// Returndata before step execution - pub returndata: Bytes, + pub returndata: Bytes, /// Remaining gas before step execution - pub gas_remaining: u64, + pub gas_remaining: u64, /// Gas refund counter before step execution pub gas_refund_counter: u64, /// Total gas used before step execution - pub gas_used: u64, + pub gas_used: u64, // Fields filled in `step_end` /// Gas cost of step execution - pub gas_cost: u64, + pub gas_cost: u64, /// Change of the contract state after step execution (effect of the /// SLOAD/SSTORE instructions) - pub storage_change: Option, + pub storage_change: Option, /// Final status of the step /// /// This is set after the step was executed. - pub status: InstructionResult, + pub status: InstructionResult, /// Immediate bytes of the step - pub immediate_bytes: Option, + pub immediate_bytes: Option, /// Optional complementary decoded step data. - pub decoded: Option, + pub decoded: Option, } /// Represents the source of a storage change - e.g., whether it came @@ -671,13 +671,13 @@ pub enum StorageChangeReason { #[derive(Clone, Copy, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct StorageChange { /// key of the storage slot - pub key: U256, + pub key: U256, /// Current value of the storage slot - pub value: U256, + pub value: U256, /// The previous value of the storage slot, if any pub had_value: Option, /// How this storage was accessed - pub reason: StorageChangeReason, + pub reason: StorageChangeReason, } /// Represents the memory captured during execution From e08d43f441f73efe8ef9215a9f08c7cf145bd3a7 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:23:53 -0500 Subject: [PATCH 33/93] clippy --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f456b7fcf..311243b5bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ on: push: branches: - main - - rust-patch + - reth-patch pull_request: branches: [main] From f456bc340ab19c2677ce4dd7fc1d48645b10f489 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:24:54 -0500 Subject: [PATCH 34/93] cli --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 311243b5bb..ac627ef8ac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,6 +81,9 @@ jobs: rustup toolchain install nightly rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + - name: cargo build + run: cargo build --workspace --all-features + - name: cargo +nightly fmt run: cargo +nightly fmt --all -- --check From 1198c6ad92bbb849369592527ebb7e5c10174436 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 15:25:34 -0500 Subject: [PATCH 35/93] cli --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac627ef8ac..65055d5628 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,8 +64,8 @@ jobs: env: RUSTFLAGS: -D warnings - cargo-fmt: - name: cargo fmt + fmt: + name: fmt runs-on: ubuntu-latest steps: - name: Check-Out @@ -90,7 +90,7 @@ jobs: test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - needs: [clippy, build] + needs: [clippy, build, fmt] strategy: fail-fast: false matrix: @@ -139,7 +139,7 @@ jobs: it-test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - needs: [clippy, build] + needs: [clippy, build, fmt] strategy: fail-fast: false matrix: From 67ad1b35778909de4b139845dec130a369cc6bbe Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 16:40:29 -0500 Subject: [PATCH 36/93] updated build --- crates/brontes-metrics/src/prometheus_exporter.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/crates/brontes-metrics/src/prometheus_exporter.rs b/crates/brontes-metrics/src/prometheus_exporter.rs index 7c720c7bf2..adf10eabfa 100644 --- a/crates/brontes-metrics/src/prometheus_exporter.rs +++ b/crates/brontes-metrics/src/prometheus_exporter.rs @@ -203,7 +203,6 @@ fn describe_memory_stats() {} #[cfg(target_os = "linux")] fn collect_io_stats() { - use metrics::absolute_counter; use tracing::error; let Ok(process) = procfs::process::Process::myself() @@ -218,13 +217,13 @@ fn collect_io_stats() { return; }; - absolute_counter!("io.rchar", io.rchar); - absolute_counter!("io.wchar", io.wchar); - absolute_counter!("io.syscr", io.syscr); - absolute_counter!("io.syscw", io.syscw); - absolute_counter!("io.read_bytes", io.read_bytes); - absolute_counter!("io.write_bytes", io.write_bytes); - absolute_counter!("io.cancelled_write_bytes", io.cancelled_write_bytes); + metrics::counter!("io.rchar", io.rchar); + metrics::counter!("io.wchar", io.wchar); + metrics::counter!("io.syscr", io.syscr); + metrics::counter!("io.syscw", io.syscw); + metrics::counter!("io.read_bytes", io.read_bytes); + metrics::counter!("io.write_bytes", io.write_bytes); + metrics::counter!("io.cancelled_write_bytes", io.cancelled_write_bytes); } #[cfg(target_os = "linux")] From f0fc29f8867b05cf2790219069fc779ff17c8870 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Fri, 14 Mar 2025 16:48:15 -0500 Subject: [PATCH 37/93] updated build --- .../src/prometheus_exporter.rs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/crates/brontes-metrics/src/prometheus_exporter.rs b/crates/brontes-metrics/src/prometheus_exporter.rs index adf10eabfa..637b169acc 100644 --- a/crates/brontes-metrics/src/prometheus_exporter.rs +++ b/crates/brontes-metrics/src/prometheus_exporter.rs @@ -12,6 +12,13 @@ use metrics_util::layers::{PrefixLayer, Stack}; use prometheus::{Encoder, TextEncoder}; use reth_metrics::metrics::Unit; +macro_rules! my_counter { + ($name:literal, $value:expr) => { + let key = [("value", ($value as f64).to_string())]; + metrics::counter!($name, &key); + }; +} + pub(crate) trait Hook: Fn() + Send + Sync {} impl Hook for T {} @@ -217,13 +224,13 @@ fn collect_io_stats() { return; }; - metrics::counter!("io.rchar", io.rchar); - metrics::counter!("io.wchar", io.wchar); - metrics::counter!("io.syscr", io.syscr); - metrics::counter!("io.syscw", io.syscw); - metrics::counter!("io.read_bytes", io.read_bytes); - metrics::counter!("io.write_bytes", io.write_bytes); - metrics::counter!("io.cancelled_write_bytes", io.cancelled_write_bytes); + my_counter!("io.rchar", io.rchar); + my_counter!("io.wchar", io.wchar); + my_counter!("io.syscr", io.syscr); + my_counter!("io.syscw", io.syscw); + my_counter!("io.read_bytes", io.read_bytes); + my_counter!("io.write_bytes", io.write_bytes); + my_counter!("io.cancelled_write_bytes", io.cancelled_write_bytes); } #[cfg(target_os = "linux")] From 11984508b81206dff5a22ba18b6e214a99510ccc Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 14:32:01 -0400 Subject: [PATCH 38/93] updated wip --- .../src/action_classifier/action_dispatch.rs | 2 +- .../src/action_classifier/action_impl.rs | 18 +++++----- crates/reth-tracing-ext/src/lib.rs | 34 +++++++++---------- .../reth-tracing-ext/src/reth_tracer/arena.rs | 8 ++--- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/crates/brontes-macros/src/action_classifier/action_dispatch.rs b/crates/brontes-macros/src/action_classifier/action_dispatch.rs index dd4218d78b..d112bf183e 100644 --- a/crates/brontes-macros/src/action_classifier/action_dispatch.rs +++ b/crates/brontes-macros/src/action_classifier/action_dispatch.rs @@ -7,7 +7,7 @@ use super::ACTION_SIG_NAME; pub struct ActionDispatch { // required for all struct_name: Ident, - rest: Vec, + rest: Vec, } impl ActionDispatch { diff --git a/crates/brontes-macros/src/action_classifier/action_impl.rs b/crates/brontes-macros/src/action_classifier/action_impl.rs index 0718443f3b..bd31b97ee9 100644 --- a/crates/brontes-macros/src/action_classifier/action_impl.rs +++ b/crates/brontes-macros/src/action_classifier/action_impl.rs @@ -12,21 +12,21 @@ use super::{data_preparation::CallDataParsing, logs::LogConfig, ACTION_SIG_NAME} pub struct ActionMacro { // required for all - protocol_path: Path, - path_to_call: Path, - action_type: Ident, - exchange_name_w_call: Ident, - log_types: Vec, + protocol_path: Path, + path_to_call: Path, + action_type: Ident, + exchange_name_w_call: Ident, + log_types: Vec, /// whether we want logs or not - give_logs: bool, + give_logs: bool, /// whether we want return data or not - give_returns: bool, + give_returns: bool, /// whether we want call_data or not - give_call_data: bool, + give_call_data: bool, // whether we pass down logs from delegate call in the same call frame include_delegated_logs: bool, /// The closure that we use to construct the normalized type - call_function: ExprClosure, + call_function: ExprClosure, } impl ActionMacro { diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index b4c314c117..39fb82bd27 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -58,8 +58,8 @@ pub type RethTxPool = Pool< #[derive(Debug, Clone)] pub struct TracingClient { - pub api: RethApi, - pub trace: RethTrace, + pub api: RethApi, + pub trace: RethTrace, pub provider_factory: RethProviderFactory, } impl TracingClient { @@ -134,23 +134,23 @@ impl TracingClient { block_id: BlockId, ) -> EthResult>> { let insp_setup = || BrontesTracingInspector { - config: TracingInspectorConfig { - record_logs: true, - record_steps: false, - record_state_diff: false, - record_stack_snapshots: StackSnapshotType::None, - record_memory_snapshots: false, - exclude_precompile_calls: true, + config: TracingInspectorConfig { + record_logs: true, + record_steps: false, + record_state_diff: false, + record_stack_snapshots: StackSnapshotType::None, + record_memory_snapshots: false, + exclude_precompile_calls: true, record_returndata_snapshots: false, - record_opcodes_filter: None, - record_immediate_bytes: false, + record_opcodes_filter: None, + record_immediate_bytes: false, }, - traces: CallTraceArena::default(), - trace_stack: Vec::new(), - step_stack: Vec::new(), + traces: CallTraceArena::default(), + trace_stack: Vec::new(), + step_stack: Vec::new(), last_call_return_data: None, - gas_inspector: GasInspector::default(), - spec_id: None, + gas_inspector: GasInspector::default(), + spec_id: None, }; let t = @@ -172,7 +172,7 @@ impl TracingClient { #[derive(Debug, Clone, Copy)] pub struct StackStep { _trace_idx: usize, - _step_idx: usize, + _step_idx: usize, } /// Opens up an existing database at the specified path. diff --git a/crates/reth-tracing-ext/src/reth_tracer/arena.rs b/crates/reth-tracing-ext/src/reth_tracer/arena.rs index cec9820539..b50fb4ec5c 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/arena.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/arena.rs @@ -23,10 +23,10 @@ impl CallTraceArena { &self.arena } - /// Returns a mutable reference to the nodes in the arena. - pub fn nodes_mut(&mut self) -> &mut Vec { - &mut self.arena - } + // /// Returns a mutable reference to the nodes in the arena. + // pub fn nodes_mut(&mut self) -> &mut Vec { + // &mut self.arena + // } /// Consumes the arena and returns the nodes. pub fn into_nodes(self) -> Vec { From 3defe8956511cd807681de0f32f696507fa37ead Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 14:33:12 -0400 Subject: [PATCH 39/93] fmt all --- .../src/action_classifier/action_dispatch.rs | 2 +- .../src/action_classifier/action_impl.rs | 18 +++++----- crates/reth-tracing-ext/src/lib.rs | 34 +++++++++---------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/crates/brontes-macros/src/action_classifier/action_dispatch.rs b/crates/brontes-macros/src/action_classifier/action_dispatch.rs index d112bf183e..dd4218d78b 100644 --- a/crates/brontes-macros/src/action_classifier/action_dispatch.rs +++ b/crates/brontes-macros/src/action_classifier/action_dispatch.rs @@ -7,7 +7,7 @@ use super::ACTION_SIG_NAME; pub struct ActionDispatch { // required for all struct_name: Ident, - rest: Vec, + rest: Vec, } impl ActionDispatch { diff --git a/crates/brontes-macros/src/action_classifier/action_impl.rs b/crates/brontes-macros/src/action_classifier/action_impl.rs index bd31b97ee9..0718443f3b 100644 --- a/crates/brontes-macros/src/action_classifier/action_impl.rs +++ b/crates/brontes-macros/src/action_classifier/action_impl.rs @@ -12,21 +12,21 @@ use super::{data_preparation::CallDataParsing, logs::LogConfig, ACTION_SIG_NAME} pub struct ActionMacro { // required for all - protocol_path: Path, - path_to_call: Path, - action_type: Ident, - exchange_name_w_call: Ident, - log_types: Vec, + protocol_path: Path, + path_to_call: Path, + action_type: Ident, + exchange_name_w_call: Ident, + log_types: Vec, /// whether we want logs or not - give_logs: bool, + give_logs: bool, /// whether we want return data or not - give_returns: bool, + give_returns: bool, /// whether we want call_data or not - give_call_data: bool, + give_call_data: bool, // whether we pass down logs from delegate call in the same call frame include_delegated_logs: bool, /// The closure that we use to construct the normalized type - call_function: ExprClosure, + call_function: ExprClosure, } impl ActionMacro { diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index 39fb82bd27..b4c314c117 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -58,8 +58,8 @@ pub type RethTxPool = Pool< #[derive(Debug, Clone)] pub struct TracingClient { - pub api: RethApi, - pub trace: RethTrace, + pub api: RethApi, + pub trace: RethTrace, pub provider_factory: RethProviderFactory, } impl TracingClient { @@ -134,23 +134,23 @@ impl TracingClient { block_id: BlockId, ) -> EthResult>> { let insp_setup = || BrontesTracingInspector { - config: TracingInspectorConfig { - record_logs: true, - record_steps: false, - record_state_diff: false, - record_stack_snapshots: StackSnapshotType::None, - record_memory_snapshots: false, - exclude_precompile_calls: true, + config: TracingInspectorConfig { + record_logs: true, + record_steps: false, + record_state_diff: false, + record_stack_snapshots: StackSnapshotType::None, + record_memory_snapshots: false, + exclude_precompile_calls: true, record_returndata_snapshots: false, - record_opcodes_filter: None, - record_immediate_bytes: false, + record_opcodes_filter: None, + record_immediate_bytes: false, }, - traces: CallTraceArena::default(), - trace_stack: Vec::new(), - step_stack: Vec::new(), + traces: CallTraceArena::default(), + trace_stack: Vec::new(), + step_stack: Vec::new(), last_call_return_data: None, - gas_inspector: GasInspector::default(), - spec_id: None, + gas_inspector: GasInspector::default(), + spec_id: None, }; let t = @@ -172,7 +172,7 @@ impl TracingClient { #[derive(Debug, Clone, Copy)] pub struct StackStep { _trace_idx: usize, - _step_idx: usize, + _step_idx: usize, } /// Opens up an existing database at the specified path. From 403b101166407e83f3c213691c7374cfb7d196cb Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 14:48:40 -0400 Subject: [PATCH 40/93] updated brontes ci workflow --- .github/workflows/ci.yml | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65055d5628..4a0ac0a7a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,17 +103,15 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ - echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion - chmod 600 ~/.ssh/bastion - echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server - chmod 600 ~/.ssh/brontes_server + echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci + chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config - name: cargo test id: run_tests continue-on-error: true run: | - ssh brontes_server -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -126,7 +124,7 @@ jobs: - name: Cleanup if: always() run: | - ssh brontes_server -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -152,17 +150,15 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ - echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion - chmod 600 ~/.ssh/bastion - echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server - chmod 600 ~/.ssh/brontes_server + echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci + chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config - name: cargo it test id: run_it_tests continue-on-error: true run: | - ssh brontes_server -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -176,7 +172,7 @@ jobs: - name: Cleanup if: always() run: | - ssh brontes_server -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -195,15 +191,13 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ - echo "${{ secrets.BASTION_SSH }}" > ~/.ssh/bastion - chmod 600 ~/.ssh/bastion - echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes_server - chmod 600 ~/.ssh/brontes_server + echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci + chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config - name: Run cleanup run: | - ssh brontes_server -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' set -x rm -rf \$HOME/*/ echo \"Cleanup completed\" From d7dceaf17200e8986992d966a0e6606ccc1b00ee Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 14:50:58 -0400 Subject: [PATCH 41/93] skipping to matrix tests --- .github/workflows/ci.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4a0ac0a7a8..de59889a8e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,10 +31,10 @@ jobs: - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" shell: bash - - name: "clippy all" - run: cargo clippy --workspace --lib --examples --tests --benches --all-features - env: - RUSTFLAGS: -D warnings + # - name: "clippy all" + # run: cargo clippy --workspace --lib --examples --tests --benches --all-features + # env: + # RUSTFLAGS: -D warnings build: name: "build" @@ -59,10 +59,10 @@ jobs: - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" shell: bash - - name: "build stable" - run: cargo build --workspace --all-features - env: - RUSTFLAGS: -D warnings + # - name: "build stable" + # run: cargo build --workspace --all-features + # env: + # RUSTFLAGS: -D warnings fmt: name: fmt @@ -81,11 +81,11 @@ jobs: rustup toolchain install nightly rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt - - name: cargo build - run: cargo build --workspace --all-features + # - name: cargo build + # run: cargo build --workspace --all-features - - name: cargo +nightly fmt - run: cargo +nightly fmt --all -- --check + # - name: cargo +nightly fmt + # run: cargo +nightly fmt --all -- --check test: runs-on: ubuntu-latest From fa4d4147a2818fc9a144bb06bc2de2b2029dfc3c Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 14:51:39 -0400 Subject: [PATCH 42/93] skipping to matrix tests --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index de59889a8e..fee026f8d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,10 +76,10 @@ jobs: - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" shell: bash - - name: Install Nightly - run: | - rustup toolchain install nightly - rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + # - name: Install Nightly + # run: | + # rustup toolchain install nightly + # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt # - name: cargo build # run: cargo build --workspace --all-features From 068f1fc52ac7b51129a649285913d0cdf6712ebc Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:01:32 -0400 Subject: [PATCH 43/93] trying new --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fee026f8d3..303337de3f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,7 +111,7 @@ jobs: id: run_tests continue-on-error: true run: | - ssh brontes-reth -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -124,7 +124,7 @@ jobs: - name: Cleanup if: always() run: | - ssh brontes-reth -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -158,7 +158,7 @@ jobs: id: run_it_tests continue-on-error: true run: | - ssh brontes-reth -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -172,7 +172,7 @@ jobs: - name: Cleanup if: always() run: | - ssh brontes-reth -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -197,7 +197,7 @@ jobs: - name: Run cleanup run: | - ssh brontes-reth -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' set -x rm -rf \$HOME/*/ echo \"Cleanup completed\" From c4978470f79760f7654bc25bde33ce3431fbb6ab Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:11:56 -0400 Subject: [PATCH 44/93] trying new --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 303337de3f..788a987bf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,7 +111,7 @@ jobs: id: run_tests continue-on-error: true run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -124,7 +124,7 @@ jobs: - name: Cleanup if: always() run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -158,7 +158,7 @@ jobs: id: run_it_tests continue-on-error: true run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -172,7 +172,7 @@ jobs: - name: Cleanup if: always() run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -197,7 +197,7 @@ jobs: - name: Run cleanup run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.IP }} -tt "bash --login -c ' + ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' set -x rm -rf \$HOME/*/ echo \"Cleanup completed\" From 3135e8f26f7db3b1d273661323e709c0d1f8c4ca Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:14:43 -0400 Subject: [PATCH 45/93] updated --- .github/workflows/ci.yml | 166 +++++++++++++++++++-------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 788a987bf2..09d0852cf1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,88 +9,88 @@ on: name: CI jobs: - clippy: - name: "clippy" - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 + # clippy: + # name: "clippy" + # if: github.event.pull_request.draft == false + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - toolchain: 1.85.0 - components: clippy,rustfmt - - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - key: "clippy-stable" - - - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - shell: bash - - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - shell: bash - - # - name: "clippy all" - # run: cargo clippy --workspace --lib --examples --tests --benches --all-features - # env: - # RUSTFLAGS: -D warnings - - build: - name: "build" - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # with: + # toolchain: 1.85.0 + # components: clippy,rustfmt + + # - uses: Swatinem/rust-cache@v2 + # with: + # cache-on-failure: true + # key: "clippy-stable" + + # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + # shell: bash + # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + # shell: bash + + # - name: "clippy all" + # run: cargo clippy --workspace --lib --examples --tests --benches --all-features + # env: + # RUSTFLAGS: -D warnings + + # build: + # name: "build" + # if: github.event.pull_request.draft == false + # runs-on: ubuntu-latest + # timeout-minutes: 30 + # steps: + # - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - toolchain: 1.85.0 - components: clippy - - - uses: Swatinem/rust-cache@v2 - with: - key: "buildfmt-stable" - cache-on-failure: true - - - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - shell: bash - - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - shell: bash - - # - name: "build stable" - # run: cargo build --workspace --all-features - # env: - # RUSTFLAGS: -D warnings - - fmt: - name: fmt - runs-on: ubuntu-latest - steps: - - name: Check-Out - uses: actions/checkout@v4 - - - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - shell: bash - - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - shell: bash - - # - name: Install Nightly - # run: | - # rustup toolchain install nightly - # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt - - # - name: cargo build - # run: cargo build --workspace --all-features - - # - name: cargo +nightly fmt - # run: cargo +nightly fmt --all -- --check + # - uses: dtolnay/rust-toolchain@stable + # with: + # toolchain: 1.85.0 + # components: clippy + + # - uses: Swatinem/rust-cache@v2 + # with: + # key: "buildfmt-stable" + # cache-on-failure: true + + # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + # shell: bash + # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + # shell: bash + + # - name: "build stable" + # run: cargo build --workspace --all-features + # env: + # RUSTFLAGS: -D warnings + + # fmt: + # name: fmt + # runs-on: ubuntu-latest + # steps: + # - name: Check-Out + # uses: actions/checkout@v4 + + # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + # shell: bash + # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + # shell: bash + + # - name: Install Nightly + # run: | + # rustup toolchain install nightly + # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + + # - name: cargo build + # run: cargo build --workspace --all-features + + # - name: cargo +nightly fmt + # run: cargo +nightly fmt --all -- --check test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - needs: [clippy, build, fmt] + # needs: [clippy, build, fmt] strategy: fail-fast: false matrix: @@ -111,7 +111,7 @@ jobs: id: run_tests continue-on-error: true run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -124,7 +124,7 @@ jobs: - name: Cleanup if: always() run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-test-${{ matrix.features }} @@ -137,7 +137,7 @@ jobs: it-test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - needs: [clippy, build, fmt] + # needs: [clippy, build, fmt] strategy: fail-fast: false matrix: @@ -158,7 +158,7 @@ jobs: id: run_it_tests continue-on-error: true run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' source ~/.bashrc cd \$HOME mkdir -p ${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -172,7 +172,7 @@ jobs: - name: Cleanup if: always() run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' set -x rm -rf \$HOME/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} rm -rf /home/brontes-ci/data/${{ steps.branch-names.outputs.current_branch }}-it-${{ matrix.features }} @@ -184,7 +184,7 @@ jobs: cleanup: name: "Cleanup" - needs: [test, it-test] + # needs: [test, it-test] if: always() runs-on: ubuntu-latest steps: @@ -197,7 +197,7 @@ jobs: - name: Run cleanup run: | - ssh -i ~/.ssh/brontes-ci brontes-ci@${{ secrets.BRONTES_IP }} -tt "bash --login -c ' + ssh brontes-reth -tt "bash --login -c ' set -x rm -rf \$HOME/*/ echo \"Cleanup completed\" From ee244d2f98e7a51c3cbc71b8c331235a651b5d04 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:14:57 -0400 Subject: [PATCH 46/93] updated --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 09d0852cf1..c7280c12a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -184,7 +184,7 @@ jobs: cleanup: name: "Cleanup" - # needs: [test, it-test] + needs: [test, it-test] if: always() runs-on: ubuntu-latest steps: From 9db5ced1b8364a5d5927818be98917dc07d55fd1 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:18:56 -0400 Subject: [PATCH 47/93] added keyscan --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7280c12a8..a5f047fa34 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,6 +103,7 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ + ssh-keyscan -H 34.86.106.7 >> ~/.ssh/known_hosts echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config @@ -150,6 +151,7 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ + ssh-keyscan -H 34.86.106.7 >> ~/.ssh/known_hosts echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config @@ -191,6 +193,7 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ + ssh-keyscan -H 34.86.106.7 >> ~/.ssh/known_hosts echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config From 53011f74482e69f68a298848729c92be4e228b20 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:19:18 -0400 Subject: [PATCH 48/93] added keyscan --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5f047fa34..5c31cc310c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,7 +103,7 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ - ssh-keyscan -H 34.86.106.7 >> ~/.ssh/known_hosts + ssh-keyscan -H ${{ secrets.BRONTES_IP }} >> ~/.ssh/known_hosts echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config @@ -151,7 +151,7 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ - ssh-keyscan -H 34.86.106.7 >> ~/.ssh/known_hosts + ssh-keyscan -H ${{ secrets.BRONTES_IP }} >> ~/.ssh/known_hosts echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config @@ -193,7 +193,7 @@ jobs: - name: Init ssh config run: | mkdir ~/.ssh/ - ssh-keyscan -H 34.86.106.7 >> ~/.ssh/known_hosts + ssh-keyscan -H ${{ secrets.BRONTES_IP }} >> ~/.ssh/known_hosts echo "${{ secrets.BRONTES_SSH }}" > ~/.ssh/brontes-ci chmod 600 ~/.ssh/brontes-ci echo "${{ secrets.SSH_CONFIG }}" > ~/.ssh/config From 2364a3c7202dcadd1850a81872f47fae677ed54f Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:22:45 -0400 Subject: [PATCH 49/93] removed commented --- .github/workflows/ci.yml | 154 +++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c31cc310c..5bbf7873a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,88 +9,88 @@ on: name: CI jobs: - # clippy: - # name: "clippy" - # if: github.event.pull_request.draft == false - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 + clippy: + name: "clippy" + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - # - uses: dtolnay/rust-toolchain@stable - # with: - # toolchain: 1.85.0 - # components: clippy,rustfmt - - # - uses: Swatinem/rust-cache@v2 - # with: - # cache-on-failure: true - # key: "clippy-stable" - - # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - # shell: bash - # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - # shell: bash - - # - name: "clippy all" - # run: cargo clippy --workspace --lib --examples --tests --benches --all-features - # env: - # RUSTFLAGS: -D warnings - - # build: - # name: "build" - # if: github.event.pull_request.draft == false - # runs-on: ubuntu-latest - # timeout-minutes: 30 - # steps: - # - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: 1.85.0 + components: clippy,rustfmt + + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + key: "clippy-stable" + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + # - name: "clippy all" + # run: cargo clippy --workspace --lib --examples --tests --benches --all-features + # env: + # RUSTFLAGS: -D warnings + + build: + name: "build" + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 - # - uses: dtolnay/rust-toolchain@stable - # with: - # toolchain: 1.85.0 - # components: clippy - - # - uses: Swatinem/rust-cache@v2 - # with: - # key: "buildfmt-stable" - # cache-on-failure: true - - # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - # shell: bash - # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - # shell: bash - - # - name: "build stable" - # run: cargo build --workspace --all-features - # env: - # RUSTFLAGS: -D warnings - - # fmt: - # name: fmt - # runs-on: ubuntu-latest - # steps: - # - name: Check-Out - # uses: actions/checkout@v4 - - # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - # shell: bash - # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - # shell: bash - - # - name: Install Nightly - # run: | - # rustup toolchain install nightly - # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt - - # - name: cargo build - # run: cargo build --workspace --all-features - - # - name: cargo +nightly fmt - # run: cargo +nightly fmt --all -- --check + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: 1.85.0 + components: clippy + + - uses: Swatinem/rust-cache@v2 + with: + key: "buildfmt-stable" + cache-on-failure: true + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + # - name: "build stable" + # run: cargo build --workspace --all-features + # env: + # RUSTFLAGS: -D warnings + + fmt: + name: fmt + runs-on: ubuntu-latest + steps: + - name: Check-Out + uses: actions/checkout@v4 + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + # - name: Install Nightly + # run: | + # rustup toolchain install nightly + # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + + # - name: cargo build + # run: cargo build --workspace --all-features + + # - name: cargo +nightly fmt + # run: cargo +nightly fmt --all -- --check test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - # needs: [clippy, build, fmt] + needs: [clippy, build, fmt] strategy: fail-fast: false matrix: @@ -138,7 +138,7 @@ jobs: it-test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - # needs: [clippy, build, fmt] + needs: [clippy, build, fmt] strategy: fail-fast: false matrix: From 5cbdb6304430ae491daabec266745d56ec300394 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:24:59 -0400 Subject: [PATCH 50/93] comments --- .github/workflows/ci.yml | 154 +++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5bbf7873a7..5c31cc310c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,88 +9,88 @@ on: name: CI jobs: - clippy: - name: "clippy" - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 + # clippy: + # name: "clippy" + # if: github.event.pull_request.draft == false + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - toolchain: 1.85.0 - components: clippy,rustfmt - - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - key: "clippy-stable" - - - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - shell: bash - - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - shell: bash - - # - name: "clippy all" - # run: cargo clippy --workspace --lib --examples --tests --benches --all-features - # env: - # RUSTFLAGS: -D warnings - - build: - name: "build" - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 + # - uses: dtolnay/rust-toolchain@stable + # with: + # toolchain: 1.85.0 + # components: clippy,rustfmt + + # - uses: Swatinem/rust-cache@v2 + # with: + # cache-on-failure: true + # key: "clippy-stable" + + # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + # shell: bash + # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + # shell: bash + + # - name: "clippy all" + # run: cargo clippy --workspace --lib --examples --tests --benches --all-features + # env: + # RUSTFLAGS: -D warnings + + # build: + # name: "build" + # if: github.event.pull_request.draft == false + # runs-on: ubuntu-latest + # timeout-minutes: 30 + # steps: + # - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - toolchain: 1.85.0 - components: clippy - - - uses: Swatinem/rust-cache@v2 - with: - key: "buildfmt-stable" - cache-on-failure: true - - - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - shell: bash - - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - shell: bash - - # - name: "build stable" - # run: cargo build --workspace --all-features - # env: - # RUSTFLAGS: -D warnings - - fmt: - name: fmt - runs-on: ubuntu-latest - steps: - - name: Check-Out - uses: actions/checkout@v4 - - - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - shell: bash - - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - shell: bash - - # - name: Install Nightly - # run: | - # rustup toolchain install nightly - # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt - - # - name: cargo build - # run: cargo build --workspace --all-features - - # - name: cargo +nightly fmt - # run: cargo +nightly fmt --all -- --check + # - uses: dtolnay/rust-toolchain@stable + # with: + # toolchain: 1.85.0 + # components: clippy + + # - uses: Swatinem/rust-cache@v2 + # with: + # key: "buildfmt-stable" + # cache-on-failure: true + + # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + # shell: bash + # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + # shell: bash + + # - name: "build stable" + # run: cargo build --workspace --all-features + # env: + # RUSTFLAGS: -D warnings + + # fmt: + # name: fmt + # runs-on: ubuntu-latest + # steps: + # - name: Check-Out + # uses: actions/checkout@v4 + + # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + # shell: bash + # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + # shell: bash + + # - name: Install Nightly + # run: | + # rustup toolchain install nightly + # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + + # - name: cargo build + # run: cargo build --workspace --all-features + + # - name: cargo +nightly fmt + # run: cargo +nightly fmt --all -- --check test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - needs: [clippy, build, fmt] + # needs: [clippy, build, fmt] strategy: fail-fast: false matrix: @@ -138,7 +138,7 @@ jobs: it-test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - needs: [clippy, build, fmt] + # needs: [clippy, build, fmt] strategy: fail-fast: false matrix: From b3bb57e96b7a9e0ca8d71d7372e30f374425720f Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:29:11 -0400 Subject: [PATCH 51/93] stable tests --- scripts/run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 31751bcb53..f9df8c565c 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -1,7 +1,7 @@ #!/bin/sh setup() { - if rustup default nightly; then : ; else return 1; fi + if rustup default 1.85.0; then : ; else return 1; fi echo "setting up db at /home/brontes-ci/data/$2" mkdir -p "/home/brontes-ci/data/$2" From 37ea60fece5d33581018db4b129f7e45f5de1561 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 15:56:00 -0400 Subject: [PATCH 52/93] added verbosity --- scripts/run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index f9df8c565c..43ac62e435 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -40,7 +40,7 @@ BENCH="bench"; # we put these in different folders so that if you're on a branch and change these, they will run the branch version if [ "$3" = "$IT" ]; then - if cargo run -j 20 --features $4 -- run --start-block 18300000 --end-block 18300002 --skip-prometheus; then : ; else teardown $2; exit 1; fi + if cargo run -j 20 --features $4 -- run --start-block 18300000 --end-block 18300002 --skip-prometheus -vvvvv; then : ; else teardown $2; exit 1; fi fi if [ "$3" = "$TEST" ]; then From 32c3808c73d8b88b9d2bfa9d99c2607503ccd712 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 16:22:05 -0400 Subject: [PATCH 53/93] added db stuff --- crates/brontes-core/src/test_utils/mod.rs | 37 +++++++++++++---------- scripts/run-tests.sh | 2 +- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/crates/brontes-core/src/test_utils/mod.rs b/crates/brontes-core/src/test_utils/mod.rs index fa2142928e..d6afc0dc8e 100644 --- a/crates/brontes-core/src/test_utils/mod.rs +++ b/crates/brontes-core/src/test_utils/mod.rs @@ -52,10 +52,10 @@ use crate::local_provider::LocalProvider; const WINDOW_TIME_SEC: usize = 20; /// Functionality to load all state needed for any testing requirements pub struct TraceLoader { - pub libmdbx: &'static LibmdbxReadWriter, + pub libmdbx: &'static LibmdbxReadWriter, pub tracing_provider: TraceParser, LibmdbxReadWriter>, // store so when we trace we don't get a closed rx error - _metrics: UnboundedReceiver, + _metrics: UnboundedReceiver, } impl TraceLoader { @@ -349,8 +349,8 @@ impl TraceLoader { Entry::Vacant(v) => { let entry = BlockTracesWithHeaderAnd { traces: vec![res.trace], - block: res.block, - other: (), + block: res.block, + other: (), header: res.header, }; v.insert(entry); @@ -423,18 +423,18 @@ pub enum TraceLoaderError { } pub struct TxTracesWithHeaderAnd { - pub block: u64, + pub block: u64, pub tx_hash: B256, - pub trace: TxTrace, - pub header: Header, - pub other: T, + pub trace: TxTrace, + pub header: Header, + pub other: T, } pub struct BlockTracesWithHeaderAnd { - pub block: u64, + pub block: u64, pub traces: Vec, pub header: Header, - pub other: T, + pub other: T, } // done because we can only have 1 instance of libmdbx or we error @@ -478,7 +478,7 @@ pub async fn get_db_handle(handle: Handle) -> &'static LibmdbxReadWriter { #[derive(Debug, Clone, Serialize, Deserialize)] struct CritTablesCache { pub biggest_block: u64, - pub tables: FastHashMap, + pub tables: FastHashMap, } fn init_crit_tables(db: &LibmdbxReadWriter) -> bool { @@ -542,9 +542,13 @@ fn init_crit_tables(db: &LibmdbxReadWriter) -> bool { #[cfg(feature = "local-reth")] pub fn get_reth_db_handle() -> Arc { + use std::path::Path; + RETH_DB_HANDLE .get_or_init(|| { - let db_path = env::var("DB_PATH").expect("No DB_PATH in .env"); + let mut db_path = + Path::new(&env::var("DB_PATH").expect("No DB_PATH in .env")).to_path_buf(); + db_path.push("db"); Arc::new(init_db(db_path).unwrap()) }) .clone() @@ -573,10 +577,11 @@ pub async fn init_trace_parser( ) -> TraceParser, LibmdbxReadWriter> { let executor = brontes_types::BrontesTaskManager::new(handle.clone(), true); - let db_path = env::var("DB_PATH").expect("No DB_PATH in .env"); - let db_path = std::path::Path::new(&db_path); - let mut static_files = db_path.to_path_buf(); - static_files.pop(); + let mut db_path = + std::path::Path::new(&env::var("DB_PATH").expect("No DB_PATH in .env")).to_path_buf(); + let mut static_files = db_path.clone(); + + db_path.push("db"); static_files.push("static_files"); let client = TracingClient::new_with_db( diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 43ac62e435..f9df8c565c 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -40,7 +40,7 @@ BENCH="bench"; # we put these in different folders so that if you're on a branch and change these, they will run the branch version if [ "$3" = "$IT" ]; then - if cargo run -j 20 --features $4 -- run --start-block 18300000 --end-block 18300002 --skip-prometheus -vvvvv; then : ; else teardown $2; exit 1; fi + if cargo run -j 20 --features $4 -- run --start-block 18300000 --end-block 18300002 --skip-prometheus; then : ; else teardown $2; exit 1; fi fi if [ "$3" = "$TEST" ]; then From 5c1455c91096e61e41120c871195a50adad8d0b8 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 16:37:26 -0400 Subject: [PATCH 54/93] no default sorella-server --- crates/bin/Cargo.toml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/crates/bin/Cargo.toml b/crates/bin/Cargo.toml index 8b0ad7209f..3f7af1e259 100644 --- a/crates/bin/Cargo.toml +++ b/crates/bin/Cargo.toml @@ -127,12 +127,7 @@ const_format = { version = "0.2.32", features = ["rust_1_64"] } vergen = { version = "8.0.0", features = ["build", "cargo", "git", "gitcl"] } [features] -default = [ - "brontes-core/default", - "brontes-classifier/default", - "jemalloc", - "sorella-server", -] +default = ["brontes-core/default", "brontes-classifier/default", "jemalloc"] jemalloc = ["brontes-metrics/jemalloc"] jemalloc-prof = ["jemalloc", "tikv-jemallocator/profiling"] From 42468796968ff57c749f2e46dae8a26f44808c55 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 19:44:49 -0400 Subject: [PATCH 55/93] updated local reth match --- crates/bin/Cargo.toml | 1 + .../src/classifiers/dodo/discovery.rs | 18 +++++++++--------- scripts/run-tests.sh | 2 ++ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/crates/bin/Cargo.toml b/crates/bin/Cargo.toml index 3f7af1e259..05e5451bbb 100644 --- a/crates/bin/Cargo.toml +++ b/crates/bin/Cargo.toml @@ -146,6 +146,7 @@ tests = [ local-reth = [ "brontes-core/local-reth", "brontes-database/local-reth", + "brontes-classifier/local-reth", "brontes-types/local-reth", "brontes-pricing/local-reth", "brontes-inspect/local-reth", diff --git a/crates/brontes-classifier/src/classifiers/dodo/discovery.rs b/crates/brontes-classifier/src/classifiers/dodo/discovery.rs index 37ff540722..889ff62337 100644 --- a/crates/brontes-classifier/src/classifiers/dodo/discovery.rs +++ b/crates/brontes-classifier/src/classifiers/dodo/discovery.rs @@ -74,10 +74,10 @@ mod tests { B256::from(hex!("620f07fc5d7781598214e2524b8c226ae8e475ec422fdad1272ab2775a80bf0a")); let new_pool = Action::NewPool(NormalizedNewPool { - trace_index: 1, - protocol: Protocol::Dodo, + trace_index: 1, + protocol: Protocol::Dodo, pool_address: Address::new(hex!("0f5814de3581cb1d8ad2b608d6ef2e6409738c36")), - tokens: vec![ + tokens: vec![ Address::new(hex!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")), Address::new(hex!("9aFa9999e45484Adf5d8EED8D9Dfe0693BACd838")), ], @@ -101,10 +101,10 @@ mod tests { B256::from(hex!("feb3000cd801ad15204235813eab94004d697ccba75cc9e082dc96c5e63c1529")); let new_pool = Action::NewPool(NormalizedNewPool { - trace_index: 1, - protocol: Protocol::Dodo, + trace_index: 1, + protocol: Protocol::Dodo, pool_address: Address::new(hex!("ea2c9470aec6251ef10a28d783ab877d17706bc4")), - tokens: vec![ + tokens: vec![ Address::new(hex!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")), Address::new(hex!("99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d")), ], @@ -128,10 +128,10 @@ mod tests { B256::from(hex!("6268fa8c5bf169e319d9e16734adc34199c8b0d7256bd9cec6aa18b7c18f1bcc")); let new_pool = Action::NewPool(NormalizedNewPool { - trace_index: 10, - protocol: Protocol::Dodo, + trace_index: 10, + protocol: Protocol::Dodo, pool_address: Address::new(hex!("0b16EeAb0f35f07011886F3e72A8cd468a0009ed")), - tokens: vec![ + tokens: vec![ Address::new(hex!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")), Address::new(hex!("9d71CE49ab8A0E6D2a1e7BFB89374C9392FD6804")), ], diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index f9df8c565c..3e2af287f4 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -53,3 +53,5 @@ fi teardown $2 + + From ea7c8b947754167fb113adaa22379a70bb545008 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 19:45:51 -0400 Subject: [PATCH 56/93] updated local reth match --- scripts/run-tests.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 3e2af287f4..4d52f630fa 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -52,6 +52,3 @@ if [ "$3" = "$BENCH" ]; then fi teardown $2 - - - From 99687cbcdcd4b9d621edbca07ffe411673f14dde Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 19:54:04 -0400 Subject: [PATCH 57/93] updated local reth match --- scripts/run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index 4d52f630fa..89c401fde3 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -44,7 +44,7 @@ if [ "$3" = "$IT" ]; then fi if [ "$3" = "$TEST" ]; then - if cargo test -j 20 --features $4 --profile release -- --nocapture --show-output; then : ;else teardown $2; exit 1; fi + if cargo test -j 20 --features $4 -- --nocapture --show-output; then : ;else teardown $2; exit 1; fi fi if [ "$3" = "$BENCH" ]; then From 9efd57721d579ce4f982022d10209eaf84900627 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 19:59:23 -0400 Subject: [PATCH 58/93] no ci --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c31cc310c..e5a821ba52 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,9 @@ on: push: branches: - main - - reth-patch - pull_request: - branches: [main] + # - reth-patch + # pull_request: + # branches: [main] name: CI From 0dcf134b0983f4f55ae52507eadc0a2efa8f8b8f Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Mon, 7 Apr 2025 20:30:54 -0400 Subject: [PATCH 59/93] no ci --- crates/brontes-core/src/decoding/parser.rs | 8 ++++---- .../src/reth_tracer/inspector.rs | 20 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index 757237fea9..8049d4a287 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -25,16 +25,16 @@ use crate::errors::TraceParseError; /// A [`TraceParser`] will iterate through a block's Parity traces and attempt /// to decode each call for later analysis. pub struct TraceParser { - libmdbx: &'static DB, - pub tracer: Arc, + libmdbx: &'static DB, + pub tracer: Arc, pub(crate) metrics_tx: Arc>, } impl Clone for TraceParser { fn clone(&self) -> Self { Self { - libmdbx: self.libmdbx, - tracer: self.tracer.clone(), + libmdbx: self.libmdbx, + tracer: self.tracer.clone(), metrics_tx: self.metrics_tx.clone(), } } diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index 7642339a17..3bfc501e5f 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -45,21 +45,21 @@ pub type EvmContext = Context; #[derive(Clone, Debug)] pub struct BrontesTracingInspector { /// Configures what and how the inspector records traces. - pub config: TracingInspectorConfig, + pub config: TracingInspectorConfig, /// Records all call traces - pub traces: CallTraceArena, + pub traces: CallTraceArena, /// Tracks active calls - pub trace_stack: Vec, + pub trace_stack: Vec, /// Tracks active steps - pub step_stack: Vec, + pub step_stack: Vec, /// Tracks the return value of the last call pub last_call_return_data: Option, /// The gas inspector used to track remaining gas. - pub gas_inspector: GasInspector, + pub gas_inspector: GasInspector, /// The spec id of the EVM. /// /// This is filled during execution. - pub spec_id: Option, + pub spec_id: Option, } // === impl TracingInspector === @@ -590,9 +590,9 @@ impl BrontesTracingInspector { pub(crate) fn parity_selfdestruct_action(&self, node: &CallTraceNode) -> Option { if node.trace.selfdestruct_refund_target.is_some() { Some(Action::Selfdestruct(SelfdestructAction { - address: node.trace.address, + address: node.trace.address, refund_address: node.trace.selfdestruct_refund_target.unwrap_or_default(), - balance: node.trace.value, + balance: node.trace.value, })) } else { None @@ -785,12 +785,12 @@ pub struct StackStep { /// /// This is set to `false` if [OpcodeFilter] is configured and this step's /// opcode is not enabled for tracking - record: bool, + record: bool, /// Idx of the trace node this step belongs. trace_idx: usize, /// Idx of this step in the [CallTrace::steps]. /// /// Please note that if `record` is `false`, this will still contain a /// value, but the step will not appear in the steps list. - step_idx: usize, + step_idx: usize, } From 774a0fd928bef9a5ed954666136750f7d0c95e73 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Tue, 8 Apr 2025 16:19:27 -0400 Subject: [PATCH 60/93] fixes --- .../src/classifiers/dodo/discovery.rs | 18 +++++++-------- crates/brontes-core/src/decoding/parser.rs | 18 +++++++-------- crates/brontes-core/src/local_provider.rs | 11 ++++------ crates/brontes-core/src/test_utils/mod.rs | 22 +++++++++---------- crates/brontes-types/src/traits.rs | 4 ++-- crates/reth-tracing-ext/src/provider.rs | 10 +++------ .../src/reth_tracer/inspector.rs | 20 ++++++++--------- 7 files changed, 48 insertions(+), 55 deletions(-) diff --git a/crates/brontes-classifier/src/classifiers/dodo/discovery.rs b/crates/brontes-classifier/src/classifiers/dodo/discovery.rs index 889ff62337..37ff540722 100644 --- a/crates/brontes-classifier/src/classifiers/dodo/discovery.rs +++ b/crates/brontes-classifier/src/classifiers/dodo/discovery.rs @@ -74,10 +74,10 @@ mod tests { B256::from(hex!("620f07fc5d7781598214e2524b8c226ae8e475ec422fdad1272ab2775a80bf0a")); let new_pool = Action::NewPool(NormalizedNewPool { - trace_index: 1, - protocol: Protocol::Dodo, + trace_index: 1, + protocol: Protocol::Dodo, pool_address: Address::new(hex!("0f5814de3581cb1d8ad2b608d6ef2e6409738c36")), - tokens: vec![ + tokens: vec![ Address::new(hex!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")), Address::new(hex!("9aFa9999e45484Adf5d8EED8D9Dfe0693BACd838")), ], @@ -101,10 +101,10 @@ mod tests { B256::from(hex!("feb3000cd801ad15204235813eab94004d697ccba75cc9e082dc96c5e63c1529")); let new_pool = Action::NewPool(NormalizedNewPool { - trace_index: 1, - protocol: Protocol::Dodo, + trace_index: 1, + protocol: Protocol::Dodo, pool_address: Address::new(hex!("ea2c9470aec6251ef10a28d783ab877d17706bc4")), - tokens: vec![ + tokens: vec![ Address::new(hex!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")), Address::new(hex!("99ea4dB9EE77ACD40B119BD1dC4E33e1C070b80d")), ], @@ -128,10 +128,10 @@ mod tests { B256::from(hex!("6268fa8c5bf169e319d9e16734adc34199c8b0d7256bd9cec6aa18b7c18f1bcc")); let new_pool = Action::NewPool(NormalizedNewPool { - trace_index: 10, - protocol: Protocol::Dodo, + trace_index: 10, + protocol: Protocol::Dodo, pool_address: Address::new(hex!("0b16EeAb0f35f07011886F3e72A8cd468a0009ed")), - tokens: vec![ + tokens: vec![ Address::new(hex!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2")), Address::new(hex!("9d71CE49ab8A0E6D2a1e7BFB89374C9392FD6804")), ], diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index 8049d4a287..c8743b9b6b 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -6,7 +6,7 @@ use alloy_json_abi::JsonAbi; #[cfg(feature = "dyn-decode")] use alloy_primitives::Address; use alloy_primitives::BlockHash; -use alloy_rpc_types::{BlockNumberOrTag, Log}; +use alloy_rpc_types::{BlockNumberOrTag, Log, TransactionReceipt}; #[cfg(feature = "dyn-decode")] use alloy_rpc_types_trace::parity::Action; use brontes_metrics::trace::types::{BlockStats, TraceParseErrorKind, TransactionStats}; @@ -25,16 +25,16 @@ use crate::errors::TraceParseError; /// A [`TraceParser`] will iterate through a block's Parity traces and attempt /// to decode each call for later analysis. pub struct TraceParser { - libmdbx: &'static DB, - pub tracer: Arc, + libmdbx: &'static DB, + pub tracer: Arc, pub(crate) metrics_tx: Arc>, } impl Clone for TraceParser { fn clone(&self) -> Self { Self { - libmdbx: self.libmdbx, - tracer: self.tracer.clone(), + libmdbx: self.libmdbx, + tracer: self.tracer.clone(), metrics_tx: self.metrics_tx.clone(), } } @@ -291,7 +291,7 @@ impl TraceParser { pub(crate) async fn get_receipts( &self, block_num: u64, - ) -> (Option>>, BlockStats) { + ) -> (Option>, BlockStats) { let tx_receipts = self .tracer .block_receipts(BlockNumberOrTag::Number(block_num)) @@ -314,7 +314,7 @@ impl TraceParser { &self, block_trace: Vec, #[cfg(feature = "dyn-decode")] dyn_json: FastHashMap, - block_receipts: Vec>, + block_receipts: Vec, block_num: u64, ) -> (Vec, BlockStats, Header) { let mut stats = BlockStats::new(block_num, None); @@ -329,8 +329,8 @@ impl TraceParser { block_num, trace.tx_hash, trace.tx_index, - receipt.cumulative_gas_used() as u128, - trace.effective_price, + receipt.into_inner().cumulative_gas_used() as u128, + receipt.effective_gas_price, ) }, )) diff --git a/crates/brontes-core/src/local_provider.rs b/crates/brontes-core/src/local_provider.rs index 26757c3478..4d9bcbde5b 100644 --- a/crates/brontes-core/src/local_provider.rs +++ b/crates/brontes-core/src/local_provider.rs @@ -4,7 +4,8 @@ use alloy_consensus::{Header, ReceiptEnvelope}; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; use alloy_provider::{Provider, RootProvider}; use alloy_rpc_types::{ - state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, TransactionRequest, + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, TransactionReceipt, + TransactionRequest, }; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; use itertools::Itertools; @@ -78,12 +79,8 @@ impl TracingProvider for LocalProvider { async fn block_receipts( &self, number: BlockNumberOrTag, - ) -> eyre::Result>>> { - Ok(self - .provider - .get_block_receipts(number.into()) - .await? - .map(|t| t.into_iter().map(|tx| tx.inner).collect_vec())) + ) -> eyre::Result>> { + Ok(self.provider.get_block_receipts(number.into()).await?) } async fn block_and_tx_index(&self, hash: TxHash) -> eyre::Result<(u64, usize)> { diff --git a/crates/brontes-core/src/test_utils/mod.rs b/crates/brontes-core/src/test_utils/mod.rs index d6afc0dc8e..7f42e47485 100644 --- a/crates/brontes-core/src/test_utils/mod.rs +++ b/crates/brontes-core/src/test_utils/mod.rs @@ -52,10 +52,10 @@ use crate::local_provider::LocalProvider; const WINDOW_TIME_SEC: usize = 20; /// Functionality to load all state needed for any testing requirements pub struct TraceLoader { - pub libmdbx: &'static LibmdbxReadWriter, + pub libmdbx: &'static LibmdbxReadWriter, pub tracing_provider: TraceParser, LibmdbxReadWriter>, // store so when we trace we don't get a closed rx error - _metrics: UnboundedReceiver, + _metrics: UnboundedReceiver, } impl TraceLoader { @@ -349,8 +349,8 @@ impl TraceLoader { Entry::Vacant(v) => { let entry = BlockTracesWithHeaderAnd { traces: vec![res.trace], - block: res.block, - other: (), + block: res.block, + other: (), header: res.header, }; v.insert(entry); @@ -423,18 +423,18 @@ pub enum TraceLoaderError { } pub struct TxTracesWithHeaderAnd { - pub block: u64, + pub block: u64, pub tx_hash: B256, - pub trace: TxTrace, - pub header: Header, - pub other: T, + pub trace: TxTrace, + pub header: Header, + pub other: T, } pub struct BlockTracesWithHeaderAnd { - pub block: u64, + pub block: u64, pub traces: Vec, pub header: Header, - pub other: T, + pub other: T, } // done because we can only have 1 instance of libmdbx or we error @@ -478,7 +478,7 @@ pub async fn get_db_handle(handle: Handle) -> &'static LibmdbxReadWriter { #[derive(Debug, Clone, Serialize, Deserialize)] struct CritTablesCache { pub biggest_block: u64, - pub tables: FastHashMap, + pub tables: FastHashMap, } fn init_crit_tables(db: &LibmdbxReadWriter) -> bool { diff --git a/crates/brontes-types/src/traits.rs b/crates/brontes-types/src/traits.rs index aa44d2b6dc..16bf587f0b 100644 --- a/crates/brontes-types/src/traits.rs +++ b/crates/brontes-types/src/traits.rs @@ -2,7 +2,7 @@ use alloy_consensus::Header; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; use alloy_rpc_types::{ state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, ReceiptEnvelope, - TransactionRequest, + TransactionReceipt, TransactionRequest, }; use reth_primitives::Bytecode; @@ -45,7 +45,7 @@ pub trait TracingProvider: Send + Sync + 'static { async fn block_receipts( &self, number: BlockNumberOrTag, - ) -> eyre::Result>>>; + ) -> eyre::Result>>; async fn header_by_number(&self, number: BlockNumber) -> eyre::Result>; diff --git a/crates/reth-tracing-ext/src/provider.rs b/crates/reth-tracing-ext/src/provider.rs index 1fb30dff29..6eafe921a0 100644 --- a/crates/reth-tracing-ext/src/provider.rs +++ b/crates/reth-tracing-ext/src/provider.rs @@ -4,7 +4,7 @@ use alloy_consensus::Header; use alloy_evm::EvmEnv; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256, U256}; use alloy_rpc_types::{ - state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, ReceiptEnvelope, + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, TransactionReceipt, TransactionRequest, }; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; @@ -92,12 +92,8 @@ impl TracingProvider for TracingClient { async fn block_receipts( &self, number: BlockNumberOrTag, - ) -> eyre::Result>>> { - Ok(self - .api - .block_receipts(BlockId::Number(number)) - .await? - .map(|t| t.into_iter().map(|t| t.inner).collect::>())) + ) -> eyre::Result>> { + Ok(self.api.block_receipts(BlockId::Number(number)).await?) } async fn block_and_tx_index(&self, hash: TxHash) -> eyre::Result<(u64, usize)> { diff --git a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs index 3bfc501e5f..7642339a17 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/inspector.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/inspector.rs @@ -45,21 +45,21 @@ pub type EvmContext = Context; #[derive(Clone, Debug)] pub struct BrontesTracingInspector { /// Configures what and how the inspector records traces. - pub config: TracingInspectorConfig, + pub config: TracingInspectorConfig, /// Records all call traces - pub traces: CallTraceArena, + pub traces: CallTraceArena, /// Tracks active calls - pub trace_stack: Vec, + pub trace_stack: Vec, /// Tracks active steps - pub step_stack: Vec, + pub step_stack: Vec, /// Tracks the return value of the last call pub last_call_return_data: Option, /// The gas inspector used to track remaining gas. - pub gas_inspector: GasInspector, + pub gas_inspector: GasInspector, /// The spec id of the EVM. /// /// This is filled during execution. - pub spec_id: Option, + pub spec_id: Option, } // === impl TracingInspector === @@ -590,9 +590,9 @@ impl BrontesTracingInspector { pub(crate) fn parity_selfdestruct_action(&self, node: &CallTraceNode) -> Option { if node.trace.selfdestruct_refund_target.is_some() { Some(Action::Selfdestruct(SelfdestructAction { - address: node.trace.address, + address: node.trace.address, refund_address: node.trace.selfdestruct_refund_target.unwrap_or_default(), - balance: node.trace.value, + balance: node.trace.value, })) } else { None @@ -785,12 +785,12 @@ pub struct StackStep { /// /// This is set to `false` if [OpcodeFilter] is configured and this step's /// opcode is not enabled for tracking - record: bool, + record: bool, /// Idx of the trace node this step belongs. trace_idx: usize, /// Idx of this step in the [CallTrace::steps]. /// /// Please note that if `record` is `false`, this will still contain a /// value, but the step will not appear in the steps list. - step_idx: usize, + step_idx: usize, } From 8a970e6816d72e82313262a201768502b236fe0a Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Tue, 8 Apr 2025 16:54:23 -0400 Subject: [PATCH 61/93] updated types --- crates/brontes-core/src/decoding/parser.rs | 13 +++--- crates/brontes-core/src/local_provider.rs | 47 +++++++++++----------- crates/brontes-types/src/traits.rs | 4 +- 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index c8743b9b6b..05e349aa8e 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -1,12 +1,11 @@ use std::time::Duration; -use alloy_consensus::ReceiptEnvelope; #[cfg(feature = "dyn-decode")] use alloy_json_abi::JsonAbi; #[cfg(feature = "dyn-decode")] use alloy_primitives::Address; use alloy_primitives::BlockHash; -use alloy_rpc_types::{BlockNumberOrTag, Log, TransactionReceipt}; +use alloy_rpc_types::{BlockNumberOrTag, TransactionReceipt}; #[cfg(feature = "dyn-decode")] use alloy_rpc_types_trace::parity::Action; use brontes_metrics::trace::types::{BlockStats, TraceParseErrorKind, TransactionStats}; @@ -25,16 +24,16 @@ use crate::errors::TraceParseError; /// A [`TraceParser`] will iterate through a block's Parity traces and attempt /// to decode each call for later analysis. pub struct TraceParser { - libmdbx: &'static DB, - pub tracer: Arc, + libmdbx: &'static DB, + pub tracer: Arc, pub(crate) metrics_tx: Arc>, } impl Clone for TraceParser { fn clone(&self) -> Self { Self { - libmdbx: self.libmdbx, - tracer: self.tracer.clone(), + libmdbx: self.libmdbx, + tracer: self.tracer.clone(), metrics_tx: self.metrics_tx.clone(), } } @@ -329,7 +328,7 @@ impl TraceParser { block_num, trace.tx_hash, trace.tx_index, - receipt.into_inner().cumulative_gas_used() as u128, + receipt.inner.cumulative_gas_used() as u128, receipt.effective_gas_price, ) }, diff --git a/crates/brontes-core/src/local_provider.rs b/crates/brontes-core/src/local_provider.rs index 4d9bcbde5b..91a0d48f1c 100644 --- a/crates/brontes-core/src/local_provider.rs +++ b/crates/brontes-core/src/local_provider.rs @@ -1,20 +1,19 @@ use std::sync::Arc; -use alloy_consensus::{Header, ReceiptEnvelope}; +use alloy_consensus::Header; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; use alloy_provider::{Provider, RootProvider}; use alloy_rpc_types::{ - state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, TransactionReceipt, + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, TransactionReceipt, TransactionRequest, }; use brontes_types::{structured_trace::TxTrace, traits::TracingProvider}; -use itertools::Itertools; use reth_primitives::Bytecode; #[derive(Clone)] pub struct LocalProvider { provider: Arc, - retries: u8, + retries: u8, } impl LocalProvider { @@ -104,27 +103,27 @@ impl TracingProvider for LocalProvider { .ok_or_else(err)?; let header = Header { - requests_hash: block.header.requests_hash, - number: block.header.number, - base_fee_per_gas: block.header.base_fee_per_gas, - mix_hash: block.header.mix_hash, - withdrawals_root: block.header.withdrawals_root, + requests_hash: block.header.requests_hash, + number: block.header.number, + base_fee_per_gas: block.header.base_fee_per_gas, + mix_hash: block.header.mix_hash, + withdrawals_root: block.header.withdrawals_root, parent_beacon_block_root: block.header.parent_beacon_block_root, - nonce: block.header.nonce, - gas_used: block.header.gas_used as u64, - gas_limit: block.header.gas_limit as u64, - timestamp: block.header.timestamp, - difficulty: block.header.difficulty, - state_root: block.header.state_root, - parent_hash: block.header.parent_hash, - receipts_root: block.header.receipts_root, - transactions_root: block.header.transactions_root, - logs_bloom: block.header.logs_bloom, - extra_data: block.header.extra_data.clone(), - blob_gas_used: block.header.blob_gas_used, - excess_blob_gas: block.header.excess_blob_gas, - ommers_hash: block.header.ommers_hash, - beneficiary: block.header.beneficiary, + nonce: block.header.nonce, + gas_used: block.header.gas_used as u64, + gas_limit: block.header.gas_limit as u64, + timestamp: block.header.timestamp, + difficulty: block.header.difficulty, + state_root: block.header.state_root, + parent_hash: block.header.parent_hash, + receipts_root: block.header.receipts_root, + transactions_root: block.header.transactions_root, + logs_bloom: block.header.logs_bloom, + extra_data: block.header.extra_data.clone(), + blob_gas_used: block.header.blob_gas_used, + excess_blob_gas: block.header.excess_blob_gas, + ommers_hash: block.header.ommers_hash, + beneficiary: block.header.beneficiary, }; Ok(Some(header)) diff --git a/crates/brontes-types/src/traits.rs b/crates/brontes-types/src/traits.rs index 16bf587f0b..7df60783e5 100644 --- a/crates/brontes-types/src/traits.rs +++ b/crates/brontes-types/src/traits.rs @@ -1,8 +1,8 @@ use alloy_consensus::Header; use alloy_primitives::{Address, BlockNumber, Bytes, StorageValue, TxHash, B256}; use alloy_rpc_types::{ - state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, Log, ReceiptEnvelope, - TransactionReceipt, TransactionRequest, + state::StateOverride, BlockId, BlockNumberOrTag, BlockOverrides, TransactionReceipt, + TransactionRequest, }; use reth_primitives::Bytecode; From 708ec79dd3658eb7b5ba29e0c97521f250fffebd Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Tue, 8 Apr 2025 17:06:27 -0400 Subject: [PATCH 62/93] updated types --- .../src/classifiers/balancer/balancer_v2.rs | 100 +++++++++--------- .../brontes-classifier/src/classifiers/mod.rs | 16 +-- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index 07c84e4719..e543388877 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -1,4 +1,4 @@ -use alloy_primitives::{Address, FixedBytes, U256}; +use alloy_primitives::{Address, FixedBytes}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_macros::action_impl; use brontes_pricing::Protocol; @@ -6,7 +6,7 @@ use brontes_types::{ db::token_info::TokenInfoWithAddress, normalized_actions::{ NormalizedBurn, NormalizedFlashLoan, NormalizedMint, NormalizedNewPool, - NormalizedPoolConfigUpdate, NormalizedSwap, + NormalizedPoolConfigUpdate, }, structured_trace::CallInfo, ToScaledRational, @@ -16,6 +16,7 @@ use malachite::Rational; use crate::BalancerV2Vault::PoolBalanceChanged; +/* action_impl!( Protocol::BalancerV2, crate::IGeneralPool::onSwapCall, @@ -45,7 +46,7 @@ action_impl!( } ); -/* + action_impl!( Protocol::BalancerV2, crate::IGeneralPool::onSwap_0Call, @@ -261,13 +262,11 @@ mod tests { use alloy_primitives::{hex, B256}; use brontes_classifier::test_utils::ClassifierTestUtils; - use brontes_types::{ - constants::WETH_ADDRESS, db::token_info::TokenInfo, normalized_actions::Action, - Protocol::BalancerV2, TreeSearchBuilder, - }; + use brontes_types::{db::token_info::TokenInfo, normalized_actions::Action, TreeSearchBuilder}; use super::*; + /* #[brontes_macros::test] async fn test_balancer_v2_swap() { let classifier_utils = ClassifierTestUtils::new().await; @@ -276,7 +275,7 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("6C22910c6F75F828B305e57c6a54855D8adeAbf8")), - inner: TokenInfo { decimals: 9, symbol: "SATS".to_string() }, + inner: TokenInfo { decimals: 9, symbol: "SATS".to_string() }, }); classifier_utils.ensure_protocol( @@ -292,20 +291,20 @@ mod tests { // Minimal swap let eq_action = Action::Swap(NormalizedSwap { - protocol: BalancerV2, + protocol: BalancerV2, trace_index: 1, - from: Address::new(hex!("5d2146eAB0C6360B864124A99BD58808a3014b5d")), - recipient: Address::new(hex!("5d2146eAB0C6360B864124A99BD58808a3014b5d")), - pool: Address::new(hex!("358e056c50eea4ca707e891404e81d9b898d0b41")), - token_in: TokenInfoWithAddress::weth(), - amount_in: U256::from_str("10000000000000000") + from: Address::new(hex!("5d2146eAB0C6360B864124A99BD58808a3014b5d")), + recipient: Address::new(hex!("5d2146eAB0C6360B864124A99BD58808a3014b5d")), + pool: Address::new(hex!("358e056c50eea4ca707e891404e81d9b898d0b41")), + token_in: TokenInfoWithAddress::weth(), + amount_in: U256::from_str("10000000000000000") .unwrap() .to_scaled_rational(18), - token_out: TokenInfoWithAddress { + token_out: TokenInfoWithAddress { address: Address::new(hex!("6C22910c6F75F828B305e57c6a54855D8adeAbf8")), - inner: TokenInfo { decimals: 9, symbol: "SATS".to_string() }, + inner: TokenInfo { decimals: 9, symbol: "SATS".to_string() }, }, - amount_out: U256::from_str("7727102831493") + amount_out: U256::from_str("7727102831493") .unwrap() .to_scaled_rational(9), @@ -322,6 +321,7 @@ mod tests { .await .unwrap(); } + */ #[brontes_macros::test] async fn test_balancer_v2_flash_loan() { @@ -331,27 +331,27 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }); let eq_action = Action::FlashLoan(NormalizedFlashLoan { - protocol: Protocol::BalancerV2, - trace_index: 3, - from: Address::new(hex!("97c1a26482099363cb055f0f3ca1d6057fe55447")), - pool: Address::new(hex!("ba12222222228d8ba445958a75a0704d566bf2c8")), + protocol: Protocol::BalancerV2, + trace_index: 3, + from: Address::new(hex!("97c1a26482099363cb055f0f3ca1d6057fe55447")), + pool: Address::new(hex!("ba12222222228d8ba445958a75a0704d566bf2c8")), receiver_contract: Address::new(hex!("97c1a26482099363cb055f0f3ca1d6057fe55447")), - assets: vec![TokenInfoWithAddress { + assets: vec![TokenInfoWithAddress { address: Address::new(hex!("c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2")), - inner: TokenInfo { decimals: 18, symbol: "WETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "WETH".to_string() }, }], - amounts: vec![U256::from_str("653220647374307183") + amounts: vec![U256::from_str("653220647374307183") .unwrap() .to_scaled_rational(18)], - aave_mode: None, - child_actions: vec![], - repayments: vec![], - fees_paid: vec![], - msg_value: U256::ZERO, + aave_mode: None, + child_actions: vec![], + repayments: vec![], + fees_paid: vec![], + msg_value: U256::ZERO, }); classifier_utils @@ -374,20 +374,20 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }); let eq_action = Action::Mint(NormalizedMint { - protocol: Protocol::BalancerV2, + protocol: Protocol::BalancerV2, trace_index: 0, - from: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), - recipient: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), - pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), - token: vec![TokenInfoWithAddress { + from: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), + recipient: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), + pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), + token: vec![TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }], - amount: vec![U256::from_str("1935117712922949743") + amount: vec![U256::from_str("1935117712922949743") .unwrap() .to_scaled_rational(18)], }); @@ -411,40 +411,40 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("bf5495efe5db9ce00f80364c8b423567e58d2110")), - inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, }); classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }); classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("fae103dc9cf190ed75350761e95403b7b8afa6c0")), - inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, }); let eq_action = Action::Burn(NormalizedBurn { - protocol: Protocol::BalancerV2, + protocol: Protocol::BalancerV2, trace_index: 0, - from: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), - recipient: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), - pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), - token: vec![ + from: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), + recipient: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), + pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), + token: vec![ TokenInfoWithAddress { address: Address::new(hex!("bf5495efe5db9ce00f80364c8b423567e58d2110")), - inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, }, TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }, TokenInfoWithAddress { address: Address::new(hex!("fae103dc9cf190ed75350761e95403b7b8afa6c0")), - inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, }, ], - amount: vec![ + amount: vec![ U256::from_str("471937215318872937") .unwrap() .to_scaled_rational(18), diff --git a/crates/brontes-classifier/src/classifiers/mod.rs b/crates/brontes-classifier/src/classifiers/mod.rs index 5bef525402..36907c07c3 100644 --- a/crates/brontes-classifier/src/classifiers/mod.rs +++ b/crates/brontes-classifier/src/classifiers/mod.rs @@ -26,10 +26,10 @@ pub use compound::*; pub mod maker; pub use maker::*; +/* pub mod zerox; pub use zerox::*; -/* pub mod cowswap; pub use cowswap::*; */ @@ -180,19 +180,19 @@ action_dispatch!( ClipperExchangeTransmitAndSellTokenForEthCall, // CowswapSettleCall, // CowswapSwapCall, - ZeroXSellToUniswapCall, - ZeroXSellEthForTokenToUniswapV3Call, - ZeroXSellTokenForEthToUniswapV3Call, - ZeroXSellTokenForTokenToUniswapV3Call, - ZeroXTransformERC20Call, - ZeroXSellToPancakeSwapCall, + // ZeroXSellToUniswapCall, + // ZeroXSellEthForTokenToUniswapV3Call, + // ZeroXSellTokenForEthToUniswapV3Call, + // ZeroXSellTokenForTokenToUniswapV3Call, + // ZeroXTransformERC20Call, + // ZeroXSellToPancakeSwapCall, // ZeroXFillOtcOrderCall, // ZeroXFillOtcOrderForEthCall, // ZeroXFillOtcOrderWithEthCall, // ZeroXFillTakerSignedOtcOrderCall, // ZeroXFillTakerSignedOtcOrderForEthCall, // ZeroXBatchFillTakerSignedOtcOrdersCall, - ZeroXSellToLiquidityProviderCall, + // ZeroXSellToLiquidityProviderCall, // ZeroXMultiplexBatchSellEthForTokenCall, // ZeroXMultiplexBatchSellTokenForEthCall, // ZeroXMultiplexBatchSellTokenForTokenCall, From e1114ccb70b5e06fb422f8601af7591ac01ae45d Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Tue, 8 Apr 2025 17:48:17 -0400 Subject: [PATCH 63/93] updated --- .../brontes-classifier/src/classifiers/balancer/balancer_v2.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index e543388877..c0d4b5ac95 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -260,7 +260,7 @@ fn pool_id_to_address(pool_id: FixedBytes<32>) -> Address { mod tests { use std::str::FromStr; - use alloy_primitives::{hex, B256}; + use alloy_primitives::{hex, B256, U256}; use brontes_classifier::test_utils::ClassifierTestUtils; use brontes_types::{db::token_info::TokenInfo, normalized_actions::Action, TreeSearchBuilder}; From a96369ccf46b214827c1d7a8f4bca7f69bded575 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Tue, 8 Apr 2025 17:49:57 -0400 Subject: [PATCH 64/93] fmt --- .../src/classifiers/balancer/balancer_v2.rs | 66 +++++++++---------- crates/brontes-core/src/decoding/parser.rs | 8 +-- crates/brontes-core/src/local_provider.rs | 42 ++++++------ 3 files changed, 58 insertions(+), 58 deletions(-) diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index c0d4b5ac95..3ad2982889 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -331,27 +331,27 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }); let eq_action = Action::FlashLoan(NormalizedFlashLoan { - protocol: Protocol::BalancerV2, - trace_index: 3, - from: Address::new(hex!("97c1a26482099363cb055f0f3ca1d6057fe55447")), - pool: Address::new(hex!("ba12222222228d8ba445958a75a0704d566bf2c8")), + protocol: Protocol::BalancerV2, + trace_index: 3, + from: Address::new(hex!("97c1a26482099363cb055f0f3ca1d6057fe55447")), + pool: Address::new(hex!("ba12222222228d8ba445958a75a0704d566bf2c8")), receiver_contract: Address::new(hex!("97c1a26482099363cb055f0f3ca1d6057fe55447")), - assets: vec![TokenInfoWithAddress { + assets: vec![TokenInfoWithAddress { address: Address::new(hex!("c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2")), - inner: TokenInfo { decimals: 18, symbol: "WETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "WETH".to_string() }, }], - amounts: vec![U256::from_str("653220647374307183") + amounts: vec![U256::from_str("653220647374307183") .unwrap() .to_scaled_rational(18)], - aave_mode: None, - child_actions: vec![], - repayments: vec![], - fees_paid: vec![], - msg_value: U256::ZERO, + aave_mode: None, + child_actions: vec![], + repayments: vec![], + fees_paid: vec![], + msg_value: U256::ZERO, }); classifier_utils @@ -374,20 +374,20 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }); let eq_action = Action::Mint(NormalizedMint { - protocol: Protocol::BalancerV2, + protocol: Protocol::BalancerV2, trace_index: 0, - from: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), - recipient: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), - pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), - token: vec![TokenInfoWithAddress { + from: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), + recipient: Address::new(hex!("750c31d2290c456fcca1c659b6add80e7a88f881")), + pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), + token: vec![TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }], - amount: vec![U256::from_str("1935117712922949743") + amount: vec![U256::from_str("1935117712922949743") .unwrap() .to_scaled_rational(18)], }); @@ -411,40 +411,40 @@ mod tests { classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("bf5495efe5db9ce00f80364c8b423567e58d2110")), - inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, }); classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }); classifier_utils.ensure_token(TokenInfoWithAddress { address: Address::new(hex!("fae103dc9cf190ed75350761e95403b7b8afa6c0")), - inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, }); let eq_action = Action::Burn(NormalizedBurn { - protocol: Protocol::BalancerV2, + protocol: Protocol::BalancerV2, trace_index: 0, - from: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), - recipient: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), - pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), - token: vec![ + from: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), + recipient: Address::new(hex!("f4283d13ba1e17b33bb3310c3149136a2ef79ef7")), + pool: Address::new(hex!("848a5564158d84b8A8fb68ab5D004Fae11619A54")), + token: vec![ TokenInfoWithAddress { address: Address::new(hex!("bf5495efe5db9ce00f80364c8b423567e58d2110")), - inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "ezETH".to_string() }, }, TokenInfoWithAddress { address: Address::new(hex!("cd5fe23c85820f7b72d0926fc9b05b43e359b7ee")), - inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "weETH".to_string() }, }, TokenInfoWithAddress { address: Address::new(hex!("fae103dc9cf190ed75350761e95403b7b8afa6c0")), - inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, + inner: TokenInfo { decimals: 18, symbol: "rswETH".to_string() }, }, ], - amount: vec![ + amount: vec![ U256::from_str("471937215318872937") .unwrap() .to_scaled_rational(18), diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index 05e349aa8e..c4209d28f8 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -24,16 +24,16 @@ use crate::errors::TraceParseError; /// A [`TraceParser`] will iterate through a block's Parity traces and attempt /// to decode each call for later analysis. pub struct TraceParser { - libmdbx: &'static DB, - pub tracer: Arc, + libmdbx: &'static DB, + pub tracer: Arc, pub(crate) metrics_tx: Arc>, } impl Clone for TraceParser { fn clone(&self) -> Self { Self { - libmdbx: self.libmdbx, - tracer: self.tracer.clone(), + libmdbx: self.libmdbx, + tracer: self.tracer.clone(), metrics_tx: self.metrics_tx.clone(), } } diff --git a/crates/brontes-core/src/local_provider.rs b/crates/brontes-core/src/local_provider.rs index 91a0d48f1c..66976e7167 100644 --- a/crates/brontes-core/src/local_provider.rs +++ b/crates/brontes-core/src/local_provider.rs @@ -13,7 +13,7 @@ use reth_primitives::Bytecode; #[derive(Clone)] pub struct LocalProvider { provider: Arc, - retries: u8, + retries: u8, } impl LocalProvider { @@ -103,27 +103,27 @@ impl TracingProvider for LocalProvider { .ok_or_else(err)?; let header = Header { - requests_hash: block.header.requests_hash, - number: block.header.number, - base_fee_per_gas: block.header.base_fee_per_gas, - mix_hash: block.header.mix_hash, - withdrawals_root: block.header.withdrawals_root, + requests_hash: block.header.requests_hash, + number: block.header.number, + base_fee_per_gas: block.header.base_fee_per_gas, + mix_hash: block.header.mix_hash, + withdrawals_root: block.header.withdrawals_root, parent_beacon_block_root: block.header.parent_beacon_block_root, - nonce: block.header.nonce, - gas_used: block.header.gas_used as u64, - gas_limit: block.header.gas_limit as u64, - timestamp: block.header.timestamp, - difficulty: block.header.difficulty, - state_root: block.header.state_root, - parent_hash: block.header.parent_hash, - receipts_root: block.header.receipts_root, - transactions_root: block.header.transactions_root, - logs_bloom: block.header.logs_bloom, - extra_data: block.header.extra_data.clone(), - blob_gas_used: block.header.blob_gas_used, - excess_blob_gas: block.header.excess_blob_gas, - ommers_hash: block.header.ommers_hash, - beneficiary: block.header.beneficiary, + nonce: block.header.nonce, + gas_used: block.header.gas_used as u64, + gas_limit: block.header.gas_limit as u64, + timestamp: block.header.timestamp, + difficulty: block.header.difficulty, + state_root: block.header.state_root, + parent_hash: block.header.parent_hash, + receipts_root: block.header.receipts_root, + transactions_root: block.header.transactions_root, + logs_bloom: block.header.logs_bloom, + extra_data: block.header.extra_data.clone(), + blob_gas_used: block.header.blob_gas_used, + excess_blob_gas: block.header.excess_blob_gas, + ommers_hash: block.header.ommers_hash, + beneficiary: block.header.beneficiary, }; Ok(Some(header)) From 832ecec622e2308965b26467ccefe7fd83b1b024 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Tue, 8 Apr 2025 18:06:19 -0400 Subject: [PATCH 65/93] updated tracing --- crates/brontes-tracing/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/brontes-tracing/src/lib.rs b/crates/brontes-tracing/src/lib.rs index dbd103f879..f2f83b2a68 100644 --- a/crates/brontes-tracing/src/lib.rs +++ b/crates/brontes-tracing/src/lib.rs @@ -23,7 +23,8 @@ where let filter = EnvFilter::builder() .with_default_directive(default_directive.to_string().parse().unwrap()) .from_env_lossy() - .add_directive("hyper::proto::h1=off".parse().unwrap()); + .add_directive("hyper::proto::h1=off".parse().unwrap()) + .add_directive("providers::static_file=off".parse().unwrap()); tracing_subscriber::fmt::layer() .with_ansi(true) From 5cfd74b69d1f34de7c61ba62c2b8883143042a81 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:16:23 -0400 Subject: [PATCH 66/93] seeing gas calc err --- crates/brontes-inspect/src/mev_inspectors/shared_utils.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs index bd22367898..9ffb282159 100644 --- a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs +++ b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs @@ -319,6 +319,11 @@ impl SharedInspectorUtils<'_, DB> { }) .sum::(); + println!( + "bribe_usd: {bribe_usd} gas price: {}", + metadata.get_gas_price_usd(1, self.quote).to_float() + ); + let fund = info .get_searcher_contract_info() .map(|i| i.fund) From 223337e2403eec840d7f9669c10ec20538641a0f Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:25:29 -0400 Subject: [PATCH 67/93] tedst --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 6 ++++++ crates/brontes-inspect/src/mev_inspectors/shared_utils.rs | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index e4876ee7ce..b7cf53c020 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -294,6 +294,12 @@ impl SandwichInspector<'_, DB> { let gas_used = metadata.get_gas_price_usd(gas_used, self.utils.quote); + println!( + "bribe_usd: {} gas price: {}", + gas_used.clone().to_float(), + metadata.get_gas_price_usd(1, self.utils.quote).to_float() + ); + let searcher_deltas = searcher_actions .into_iter() .flatten() diff --git a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs index 9ffb282159..bd22367898 100644 --- a/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs +++ b/crates/brontes-inspect/src/mev_inspectors/shared_utils.rs @@ -319,11 +319,6 @@ impl SharedInspectorUtils<'_, DB> { }) .sum::(); - println!( - "bribe_usd: {bribe_usd} gas price: {}", - metadata.get_gas_price_usd(1, self.quote).to_float() - ); - let fund = info .get_searcher_contract_info() .map(|i| i.fund) From ee6a91bda4422bda4034163c891176a20f77fde6 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:29:45 -0400 Subject: [PATCH 68/93] testing --- .../brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index b7cf53c020..9cb3b24fef 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -292,14 +292,15 @@ impl SandwichInspector<'_, DB> { .map(|g| g.gas_paid()) .sum::(); - let gas_used = metadata.get_gas_price_usd(gas_used, self.utils.quote); - println!( - "bribe_usd: {} gas price: {}", + "bribe_usd: {} Eth price: {} Quote Token: {}", gas_used.clone().to_float(), - metadata.get_gas_price_usd(1, self.utils.quote).to_float() + metadata.get_eth_price(self.utils.quote).to_float(), + self.utils.quote.to_float() ); + let gas_used = metadata.get_gas_price_usd(gas_used, self.utils.quote); + let searcher_deltas = searcher_actions .into_iter() .flatten() From de489c4973efe18bf1bc0cae991be1a1661bc8e9 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:31:10 -0400 Subject: [PATCH 69/93] oups --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 9cb3b24fef..5ad51f16c9 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -294,9 +294,9 @@ impl SandwichInspector<'_, DB> { println!( "bribe_usd: {} Eth price: {} Quote Token: {}", - gas_used.clone().to_float(), + gas_used.clone(), metadata.get_eth_price(self.utils.quote).to_float(), - self.utils.quote.to_float() + self.utils.quote ); let gas_used = metadata.get_gas_price_usd(gas_used, self.utils.quote); From 8739ea11049c19a9bd53000bcbe1eabb193b14ac Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:35:52 -0400 Subject: [PATCH 70/93] testing --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 5ad51f16c9..1ec37f7f38 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -293,7 +293,9 @@ impl SandwichInspector<'_, DB> { .sum::(); println!( - "bribe_usd: {} Eth price: {} Quote Token: {}", + "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {}", + frontrun_tx_hash, + backrun_info.tx_hash, gas_used.clone(), metadata.get_eth_price(self.utils.quote).to_float(), self.utils.quote From f7d050f813432e442723711dd0214d578db2b668 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:37:18 -0400 Subject: [PATCH 71/93] fix --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 1ec37f7f38..0298f14e7a 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -294,7 +294,11 @@ impl SandwichInspector<'_, DB> { println!( "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {}", - frontrun_tx_hash, + frontrun_tx_hash + .iter() + .map(|tx| tx.to_string()) + .collect::>() + .join(" "), backrun_info.tx_hash, gas_used.clone(), metadata.get_eth_price(self.utils.quote).to_float(), From 8a0be9fc71597ccc5407fcdc9bfa1b89045528a0 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:40:34 -0400 Subject: [PATCH 72/93] debuggingh --- crates/brontes-types/src/tree/root.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crates/brontes-types/src/tree/root.rs b/crates/brontes-types/src/tree/root.rs index 240fafc9a0..3cc0ea79dd 100644 --- a/crates/brontes-types/src/tree/root.rs +++ b/crates/brontes-types/src/tree/root.rs @@ -361,6 +361,10 @@ impl GasDetails { pub fn gas_paid(&self) -> u128 { let mut gas = self.gas_used * self.effective_gas_price; + print!("Gas paid: {} ", gas); + + println!("Effective Gas Price: {}", self.effective_gas_price); + if let Some(coinbase) = self.coinbase_transfer { gas += coinbase } From 294d479907aa923fa11ef430e439624036dd0711 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:51:25 -0400 Subject: [PATCH 73/93] test --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 0298f14e7a..259bf2f3e2 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -293,7 +293,8 @@ impl SandwichInspector<'_, DB> { .sum::(); println!( - "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {}", + "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {} Number + of possible frontruns: {}", frontrun_tx_hash .iter() .map(|tx| tx.to_string()) @@ -302,7 +303,8 @@ impl SandwichInspector<'_, DB> { backrun_info.tx_hash, gas_used.clone(), metadata.get_eth_price(self.utils.quote).to_float(), - self.utils.quote + self.utils.quote, + frontrun_tx_hash.len(), ); let gas_used = metadata.get_gas_price_usd(gas_used, self.utils.quote); From cf80abad6f1316675ea58daf8742b080f9d82489 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:54:16 -0400 Subject: [PATCH 74/93] testing --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 259bf2f3e2..866667874d 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -292,6 +292,8 @@ impl SandwichInspector<'_, DB> { .map(|g| g.gas_paid()) .sum::(); + println!("Backrun gas details:", backrun_info.gas_details); + println!( "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {} Number of possible frontruns: {}", From 208b43c662d270ddcb1f38a8e58a3979a98f384c Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Wed, 9 Apr 2025 18:55:04 -0400 Subject: [PATCH 75/93] testing --- crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 866667874d..2b239f7222 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -292,7 +292,7 @@ impl SandwichInspector<'_, DB> { .map(|g| g.gas_paid()) .sum::(); - println!("Backrun gas details:", backrun_info.gas_details); + println!("Backrun gas details: {}", backrun_info.gas_details); println!( "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {} Number From 52dc5f08103de5952e4af3d8a0f50ab5b2db7ffe Mon Sep 17 00:00:00 2001 From: Will Smith Date: Thu, 10 Apr 2025 11:33:41 -0400 Subject: [PATCH 76/93] fix: use total gas, not gas at log --- crates/brontes-core/src/decoding/parser.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/brontes-core/src/decoding/parser.rs b/crates/brontes-core/src/decoding/parser.rs index c4209d28f8..cd06674b4d 100644 --- a/crates/brontes-core/src/decoding/parser.rs +++ b/crates/brontes-core/src/decoding/parser.rs @@ -328,7 +328,7 @@ impl TraceParser { block_num, trace.tx_hash, trace.tx_index, - receipt.inner.cumulative_gas_used() as u128, + receipt.gas_used as u128, receipt.effective_gas_price, ) }, From f0a79f9c35870cf607872f4d2bef2fe385a62de9 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 14:49:52 -0400 Subject: [PATCH 77/93] bumped to reth latestg --- Cargo.lock | 2208 +++++++++-------- Cargo.toml | 95 +- .../src/libmdbx/implementation/native/tx.rs | 1 + crates/brontes-database/libmdbx-rs/Cargo.toml | 6 +- crates/brontes-inspect/Cargo.toml | 6 +- .../src/mev_inspectors/sandwich/mod.rs | 17 - crates/brontes-types/src/tree/root.rs | 4 - crates/reth-tracing-ext/src/lib.rs | 6 +- 8 files changed, 1296 insertions(+), 1047 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 56b2ca1059..3f1d0451ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,6 +75,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" +dependencies = [ + "equator", +] + [[package]] name = "alloc-no-stdlib" version = "2.0.4" @@ -98,11 +107,11 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.1.64" +version = "0.1.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963fc7ac17f25d92c237448632330eb87b39ba8aa0209d4b517069a05b57db62" +checksum = "28e2652684758b0d9b389d248b209ed9fd9989ef489a550265fe4bb8454fe7eb" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "num_enum", "serde", @@ -111,12 +120,12 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84efb7b8ddb9223346bfad9d8094e1a100c254037a3b5913243bfa8e04be266" +checksum = "27d301f5bcfd37e3aac727c360d8b50c33ddff9169ce0370198dedda36a9927d" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-serde", "alloy-trie", @@ -134,13 +143,13 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fafded0c1ff8f0275c4a484239058e1c01c0c2589f8a16e03669ef7094a06f9b" +checksum = "9f4f97a85a45965e0e4f9f5b94bbafaa3e4ee6868bdbcf2e4a9acb4b358038fe" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-serde", "serde", @@ -148,37 +157,20 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" -dependencies = [ - "alloy-json-abi 0.7.7", - "alloy-primitives 0.7.7", - "alloy-sol-type-parser 0.7.7", - "alloy-sol-types 0.7.7", - "const-hex", - "itoa", - "serde", - "serde_json", - "winnow 0.6.26", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7078bef2bc353c1d1a97b44981d0186198be320038fbfbb0b37d1dd822a555d3" +checksum = "eb8e762aefd39a397ff485bc86df673465c4ad3ec8819cc60833a8a3ba5cdc87" dependencies = [ - "alloy-json-abi 0.8.23", - "alloy-primitives 0.8.23", - "alloy-sol-type-parser 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-json-abi 0.8.25", + "alloy-primitives 0.8.25", + "alloy-sol-type-parser 0.8.25", + "alloy-sol-types", "const-hex", "derive_more 2.0.1", "itoa", "serde", "serde_json", - "winnow 0.7.4", + "winnow 0.7.6", ] [[package]] @@ -187,7 +179,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "crc", "serde", @@ -200,7 +192,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "serde", ] @@ -211,7 +203,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "k256", "serde", @@ -221,14 +213,14 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4bffedaddc627520eabdcbfe27a2d2c2f716e15295e2ed1010df3feae67040" +checksum = "10b11c382ca8075128d1ae6822b60921cf484c911d9a5831797a01218f98125f" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-serde", "auto_impl", @@ -237,24 +229,24 @@ dependencies = [ "either", "ethereum_ssz", "ethereum_ssz_derive", - "once_cell", "serde", "sha2 0.10.8", ] [[package]] name = "alloy-evm" -version = "0.1.0-alpha.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68af08d4a6c5b66b45e80e9811b9fa3dccd3cc08465246107b98fcf87afbf020" +checksum = "b71b0b181c956dca015b4c08b36668736013787c9dc9e743fd39a23b8b130c14" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-primitives 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-primitives 0.8.25", + "alloy-sol-types", "auto_impl", - "derive_more 1.0.0", + "derive_more 2.0.1", + "op-alloy-consensus", "op-revm", "revm", "thiserror 2.0.12", @@ -262,12 +254,12 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b11774716152a5204aff0e86a8c841df499ea81464e2b1f82b3f72d6a2ef32" +checksum = "7bd9e75c5dd40319ebbe807ebe9dfb10c24e4a70d9c7d638e62921d8dd093c8b" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-serde", "alloy-trie", "serde", @@ -275,13 +267,13 @@ dependencies = [ [[package]] name = "alloy-hardforks" -version = "0.1.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac52fcdca02c101b5e651af856702dd35b1af31cb00a87350f562ada636b5033" +checksum = "473ee2ab7f5262b36e8fbc1b5327d5c9d488ab247e31ac739b929dbe2444ae79" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "auto_impl", "dyn-clone", "serde", @@ -301,24 +293,24 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec80745c33797e8baf547a8cfeb850e60d837fe9b9e67b3f579c1fcd26f527e9" +checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" dependencies = [ - "alloy-primitives 0.8.23", - "alloy-sol-type-parser 0.8.23", + "alloy-primitives 0.8.25", + "alloy-sol-type-parser 0.8.25", "serde", "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6929e607b0a56803c69c68adc6e8aae1644c94e37ea458aa2d0713fc77490e70" +checksum = "bbcf26d02a72e23d5bc245425ea403c93ba17d254f20f9c23556a249c6c7e143" dependencies = [ - "alloy-primitives 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-primitives 0.8.25", + "alloy-sol-types", "serde", "serde_json", "thiserror 2.0.12", @@ -327,21 +319,21 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2b14524c3605ed5ee173b966333089474415416a8cfd80ceb003c18fd6d1736" +checksum = "b44dd4429e190f727358571175ebf323db360a303bf4e1731213f510ced1c2e6" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 0.8.23", + "alloy-sol-types", "async-trait", "auto_impl", "derive_more 2.0.1", @@ -353,13 +345,13 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c06932646544ea341f0fda48d2c0fe4fda75bc132379cb84019cdfb6ddcb0fb" +checksum = "86f736e1d1eb1b770dbd32919bdf46d4dcd4617f2eed07947dfb32649962baba" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-serde", "serde", ] @@ -388,9 +380,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eacedba97e65cdc7ab592f2b22ef5d3ab8d60b2056bc3a6e6363577e8270ec6f" +checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" dependencies = [ "alloy-rlp", "arbitrary", @@ -402,7 +394,7 @@ dependencies = [ "foldhash", "getrandom 0.2.15", "hashbrown 0.15.2", - "indexmap 2.8.0", + "indexmap 2.9.0", "itoa", "k256", "keccak-asm", @@ -419,9 +411,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1ec2eabd9b3acc46e59247c35f75545960372431c68f7fdbfcfb970a486c30" +checksum = "a557f9e3ec89437b06db3bfc97d20782b1f7cc55b5b602b6a82bf3f64d7efb0e" dependencies = [ "alloy-chains", "alloy-consensus", @@ -429,11 +421,12 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-network-primitives", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-eth", - "alloy-sol-types 0.8.23", + "alloy-signer", + "alloy-sol-types", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -442,12 +435,13 @@ dependencies = [ "async-trait", "auto_impl", "dashmap 6.1.0", + "either", "futures", "futures-utils-wasm", "lru 0.13.0", "parking_lot", "pin-project", - "reqwest 0.12.14", + "reqwest 0.12.15", "serde", "serde_json", "thiserror 2.0.12", @@ -459,15 +453,16 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cf194abddb88b034d22ab41449ed8532e5113e58699cd055bf21d98a0991ab" +checksum = "f0a261caff6c2ec6fe1d6eb77ba41159024c8387d05e4138804a387d403def55" dependencies = [ "alloy-json-rpc", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-transport", "bimap", "futures", + "parking_lot", "serde", "serde_json", "tokio", @@ -500,37 +495,39 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6213829d8eabc239c2f9572452a5993ebdf78b04c020abc450ae48c54261d4ce" +checksum = "cec6dc89c4c3ef166f9fa436d1831f8142c16cf2e637647c936a6aaaabd8d898" dependencies = [ "alloy-json-rpc", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-pubsub", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", "alloy-transport-ws", + "async-stream", "futures", "pin-project", - "reqwest 0.12.14", + "reqwest 0.12.15", "serde", "serde_json", "tokio", "tokio-stream", "tower 0.5.2", "tracing", + "tracing-futures", "url", "wasmtimer", ] [[package]] name = "alloy-rpc-types" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a153db94cf231b03238fe4da48f59dc6f36e01b5e4d5a2e30de33b95395380fa" +checksum = "3849f8131a18cc5d7f95f301d68a6af5aa2db28ad8522fb9db1f27b3794e8b68" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -539,23 +536,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5275d2e24dbdd82032c3b305db359fb2681069cc75add7feb66863ce50b5cb5" +checksum = "1d13e905b0348666e10119d39b1ffb7ab4e000b4f4e5ffed920b57f8745b2440" dependencies = [ "alloy-genesis", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5462937f088889c337c236c2509226e87a26301d2b01f9fafee246bd84cb0407" +checksum = "19051fd5e8de7e1f95ec228c9303debd776dcc7caf8d1ece3191f711f5c06541" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -563,9 +560,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd4ceea38ea27eeb26f021df34ed5b7b793704ad7a2a009f16137a19461e7ca" +checksum = "ecd6d480e4e6e456f30eeeb3aef1512aaecb68df2a35d1f78865dbc4d20dc0fd" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -574,12 +571,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c14f3c5747750f7373ec9f633230923ff149c2e31960513e31593bcfcf916be" +checksum = "2b821fd7c93738d5ec972d4d329eb05c896721f467556fbae171294ddd9ac829" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "ethereum_ssz", "ethereum_ssz_derive", @@ -592,23 +589,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-debug" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fa8f6e27d47b4c56c627cb03dc91624c26bd814f6609bb1d1a836148b76fc9b" +checksum = "805eb9fa07f92f1225253e842b5454b4b3e258813445c1a1c9d8dd0fd90817c1" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "serde", ] [[package]] name = "alloy-rpc-types-engine" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a1a0710dbfbab2b33200ef45c650963d63edf6a81b2c7399ede762b3586dfd" +checksum = "689521777149dabe210ef122605fb00050e038f2e85b8c9897534739f1a904f8" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-serde", "derive_more 2.0.1", @@ -623,18 +620,18 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e18d94b1036302720b987564560e4a5b85035a17553c53a50afa2bd8762b487" +checksum = "9a8b6d55bdaa0c4a08650d4b32f174494cbade56adf6f2fcfa2a4f3490cb5511" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.8.23", + "alloy-sol-types", "itertools 0.14.0", "jsonrpsee-types", "serde", @@ -644,12 +641,12 @@ dependencies = [ [[package]] name = "alloy-rpc-types-mev" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec941a4b3eedf15daef2b7aeb7848dfc6e677f58b2a21eab0ac1efef1ffac62" +checksum = "93d1e3fbbf9b2eb2509546b4e47f67ee8a3b246ef3f7eb678bcb97d399c755b4" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -658,11 +655,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef4bba67ec601730ceb23e542980d73ae9f718819604dfdd8289b13a506e762" +checksum = "6019cd6a89230d765a621a7b1bc8af46a6a9cde2d2e540e6f9ce930e0fb7c6db" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -672,11 +669,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types-txpool" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8edc8512f919feb79dd30864ef7574d2877e71b73e30b5de4925ba9bc6bd4f96" +checksum = "ee36e5404642696af511f09991f9f54a11b90e86e55efad868f8f56350eff5b0" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -684,22 +681,22 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9824e1bf92cd7848ca6fabb01c9aca15c9c5fb0ab96da5514ef0543f021c69f6" +checksum = "1824791912f468a481dedc1db50feef3e85a078f6d743a62db2ee9c2ca674882" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81755ed6a6a33061302ac95e9bb7b40ebf7078e4568397168024242bc31a3e58" +checksum = "3d087fe5aea96a93fbe71be8aaed5c57c3caac303c09e674bc5b1647990d648b" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "async-trait", "auto_impl", "either", @@ -710,13 +707,13 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa857621a5c95c13e640e18bb9c4720f4338a666d6276f55446477a6bc3912ff" +checksum = "2940353d2425bb75965cd5101075334e6271051e35610f903bf8099a52b0b1a9" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-signer", "async-trait", "k256", @@ -726,26 +723,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" -dependencies = [ - "alloy-sol-macro-expander 0.7.7", - "alloy-sol-macro-input 0.7.7", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3637022e781bc73a9e300689cd91105a0e6be00391dd4e2110a71cc7e9f20a94" +checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" dependencies = [ - "alloy-sol-macro-expander 0.8.23", - "alloy-sol-macro-input 0.8.23", + "alloy-sol-macro-expander", + "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", @@ -754,63 +737,30 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" -dependencies = [ - "alloy-sol-macro-input 0.7.7", - "const-hex", - "heck 0.5.0", - "indexmap 2.8.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.100", - "syn-solidity 0.7.7", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9bd22d0bba90e40f40c625c33d39afb7d62b22192476a2ce1dcf8409dce880" +checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" dependencies = [ - "alloy-json-abi 0.8.23", - "alloy-sol-macro-input 0.8.23", + "alloy-json-abi 0.8.25", + "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.8.0", + "indexmap 2.9.0", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.100", - "syn-solidity 0.8.23", + "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" -dependencies = [ - "const-hex", - "dunce", - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.100", - "syn-solidity 0.7.7", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae4646e8123ec2fd10f9c22e361ffe4365c42811431829c2eabae528546bcc" +checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" dependencies = [ - "alloy-json-abi 0.8.23", + "alloy-json-abi 0.8.25", "const-hex", "dunce", "heck 0.5.0", @@ -819,7 +769,7 @@ dependencies = [ "quote", "serde_json", "syn 2.0.100", - "syn-solidity 0.8.23", + "syn-solidity", ] [[package]] @@ -834,48 +784,39 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488a747fdcefeec5c1ed5aa9e08becd775106777fdeae2a35730729fc8a95910" +checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" dependencies = [ "serde", - "winnow 0.7.4", -] - -[[package]] -name = "alloy-sol-types" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" -dependencies = [ - "alloy-primitives 0.7.7", - "alloy-sol-macro 0.7.7", - "const-hex", - "serde", + "winnow 0.7.6", ] [[package]] name = "alloy-sol-types" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767957235807b021126dca1598ac3ef477007eace07961607dc5f490550909c7" +checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" dependencies = [ - "alloy-json-abi 0.8.23", - "alloy-primitives 0.8.23", - "alloy-sol-macro 0.8.23", + "alloy-json-abi 0.8.25", + "alloy-primitives 0.8.25", + "alloy-sol-macro", "const-hex", "serde", ] [[package]] name = "alloy-transport" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c74598eb65cefa886be6ba624c14a6856d9d84339ec720520f3efcc03311716" +checksum = "6818b4c82a474cc01ac9e88ccfcd9f9b7bc893b2f8aea7e890a28dcd55c0a7aa" dependencies = [ "alloy-json-rpc", "base64 0.22.1", + "derive_more 2.0.1", + "futures", "futures-utils-wasm", + "parking_lot", "serde", "serde_json", "thiserror 2.0.12", @@ -888,13 +829,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcd2f8ab2f053cd848ead5d625cb1b63716562951101588c1fa49300e3c6418" +checksum = "4cc3079a33483afa1b1365a3add3ea3e21c75b10f704870198ba7846627d10f2" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.14", + "reqwest 0.12.15", "serde_json", "tower 0.5.2", "tracing", @@ -903,9 +844,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e61e2b5cbf16f7588e4420848b61824f6514944773732534f4129ba6a251e059" +checksum = "66c6f8e20aa6b748357bed157c14e561a176d0f6cffed7f99ee37758a7d16202" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -923,9 +864,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.12.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ddcf4b98b3448eb998e057dc5a27345997863d6544ee7f0f79957616768dd3" +checksum = "5ef7a4301e8967c1998f193755fd9429e0ca81730e2e134e30c288c43dbf96f0" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -945,7 +886,7 @@ version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "arrayvec", "derive_more 1.0.0", @@ -1079,6 +1020,9 @@ name = "arbitrary" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +dependencies = [ + "derive_arbitrary", +] [[package]] name = "argminmax" @@ -1089,6 +1033,51 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-r1cs-std", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-poly", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.2", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -1127,6 +1116,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "zeroize", +] + [[package]] name = "ark-ff-asm" version = "0.3.0" @@ -1147,6 +1156,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.100", +] + [[package]] name = "ark-ff-macros" version = "0.3.0" @@ -1172,6 +1191,63 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.2", +] + +[[package]] +name = "ark-r1cs-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-relations", + "ark-std 0.5.0", + "educe", + "num-bigint", + "num-integer", + "num-traits", + "tracing", +] + +[[package]] +name = "ark-relations" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" +dependencies = [ + "ark-ff 0.5.0", + "ark-std 0.5.0", + "tracing", + "tracing-subscriber 0.2.25", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -1193,6 +1269,30 @@ dependencies = [ "num-bigint", ] +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -1213,11 +1313,21 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + [[package]] name = "array-init-cursor" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76" +checksum = "ed51fe0f224d1d4ea768be38c51f9f831dee9d05c163c11fba0b8c44387b1fc3" [[package]] name = "arrayref" @@ -1236,9 +1346,9 @@ dependencies = [ [[package]] name = "arrow" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc208515aa0151028e464cc94a692156e945ce5126abd3537bb7fd6ba2143ed1" +checksum = "b5ec52ba94edeed950e4a41f75d35376df196e8cb04437f7280a5aa49f20f796" dependencies = [ "arrow-arith", "arrow-array", @@ -1257,9 +1367,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e07e726e2b3f7816a85c6a45b6ec118eeeabf0b2a8c208122ad949437181f49a" +checksum = "8fc766fdacaf804cb10c7c70580254fcdb5d55cdfda2bc57b02baf5223a3af9e" dependencies = [ "arrow-array", "arrow-buffer", @@ -1271,9 +1381,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2262eba4f16c78496adfd559a29fe4b24df6088efc9985a873d58e92be022d5" +checksum = "a12fcdb3f1d03f69d3ec26ac67645a8fe3f878d77b5ebb0b15d64a116c212985" dependencies = [ "ahash", "arrow-buffer", @@ -1287,9 +1397,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e899dade2c3b7f5642eb8366cfd898958bcca099cde6dfea543c7e8d3ad88d4" +checksum = "263f4801ff1839ef53ebd06f99a56cecd1dbaf314ec893d93168e2e860e0291c" dependencies = [ "bytes", "half", @@ -1298,9 +1408,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4103d88c5b441525ed4ac23153be7458494c2b0c9a11115848fdb9b81f6f886a" +checksum = "ede6175fbc039dfc946a61c1b6d42fd682fcecf5ab5d148fbe7667705798cac9" dependencies = [ "arrow-array", "arrow-buffer", @@ -1318,9 +1428,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d3cb0914486a3cae19a5cad2598e44e225d53157926d0ada03c20521191a65" +checksum = "1644877d8bc9a0ef022d9153dc29375c2bda244c39aec05a91d0e87ccf77995f" dependencies = [ "arrow-array", "arrow-cast", @@ -1334,9 +1444,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a329fb064477c9ec5f0870d2f5130966f91055c7c5bce2b3a084f116bc28c3b" +checksum = "61cfdd7d99b4ff618f167e548b2411e5dd2c98c0ddebedd7df433d34c20a4429" dependencies = [ "arrow-buffer", "arrow-schema", @@ -1346,9 +1456,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddecdeab02491b1ce88885986e25002a3da34dd349f682c7cfe67bab7cc17b86" +checksum = "62ff528658b521e33905334723b795ee56b393dbe9cf76c8b1f64b648c65a60c" dependencies = [ "arrow-array", "arrow-buffer", @@ -1359,9 +1469,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b9340013413eb84868682ace00a1098c81a5ebc96d279f7ebf9a4cac3c0fd" +checksum = "0ee5b4ca98a7fb2efb9ab3309a5d1c88b5116997ff93f3147efdc1062a6158e9" dependencies = [ "arrow-array", "arrow-buffer", @@ -1370,18 +1480,20 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap 2.8.0", + "indexmap 2.9.0", "lexical-core", + "memchr", "num", "serde", "serde_json", + "simdutf8", ] [[package]] name = "arrow-ord" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f841bfcc1997ef6ac48ee0305c4dfceb1f7c786fe31e67c1186edf775e1f1160" +checksum = "f0a3334a743bd2a1479dbc635540617a3923b4b2f6870f37357339e6b5363c21" dependencies = [ "arrow-array", "arrow-buffer", @@ -1392,9 +1504,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1eeb55b0a0a83851aa01f2ca5ee5648f607e8506ba6802577afdda9d75cdedcd" +checksum = "8d1d7a7291d2c5107e92140f75257a99343956871f3d3ab33a7b41532f79cb68" dependencies = [ "arrow-array", "arrow-buffer", @@ -1405,15 +1517,15 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85934a9d0261e0fa5d4e2a5295107d743b543a6e0484a835d4b8db2da15306f9" +checksum = "39cfaf5e440be44db5413b75b72c2a87c1f8f0627117d110264048f2969b99e9" [[package]] name = "arrow-select" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2932aece2d0c869dd2125feb9bd1709ef5c445daa3838ac4112dcfa0fda52c" +checksum = "69efcd706420e52cd44f5c4358d279801993846d1c2a8e52111853d61d55a619" dependencies = [ "ahash", "arrow-array", @@ -1425,9 +1537,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912e38bd6a7a7714c1d9b61df80315685553b7455e8a6045c27531d8ecd5b458" +checksum = "a21546b337ab304a32cfc0770f671db7411787586b45b78b4593ae78e64e2b03" dependencies = [ "arrow-array", "arrow-buffer", @@ -1448,9 +1560,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310c9bcae737a48ef5cdee3174184e6d548b292739ede61a1f955ef76a738861" +checksum = "59a194f9d963d8099596278594b3107448656ba73831c9d8c783e613ce86da64" dependencies = [ "brotli", "flate2", @@ -1493,6 +1605,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "async-scoped" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4042078ea593edffc452eef14e99fdb2b120caa4ad9618bcdeabc4a023b98740" +dependencies = [ + "futures", + "pin-project", + "tokio", +] + [[package]] name = "async-stream" version = "0.3.6" @@ -1517,9 +1640,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.87" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -1570,9 +1693,9 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", @@ -1624,12 +1747,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -1762,9 +1879,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675f87afced0413c9bb02843499dbbd3882a237645883f71a2b59644a6d2f753" +checksum = "389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3" dependencies = [ "arrayref", "arrayvec", @@ -1829,17 +1946,17 @@ dependencies = [ "alloy-consensus", "alloy-json-rpc", "alloy-network", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", "alloy-transport", "alloy-transport-http", "ansi-parser", "ansi_term", - "async-scoped", + "async-scoped 0.7.1", "boyer-moore-magiclen", "brontes-classifier", "brontes-core", @@ -1883,7 +2000,7 @@ dependencies = [ "rand 0.8.5", "rayon", "regex", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-chainspec", "reth-db", "reth-network-api", @@ -1907,7 +2024,7 @@ dependencies = [ "tokio", "toml", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", "vergen 8.3.2", ] @@ -1916,12 +2033,12 @@ name = "brontes-classifier" version = "0.1.0" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-trace", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", "brontes-classifier", "brontes-core", "brontes-database", @@ -1959,14 +2076,14 @@ name = "brontes-core" version = "0.1.0" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.7.7", + "alloy-dyn-abi", "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-provider", "alloy-rpc-types", "alloy-rpc-types-trace", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", "alloy-transport-http", "async-trait", "auto_impl", @@ -1987,7 +2104,7 @@ dependencies = [ "malachite", "once_cell", "phf", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-db", "reth-metrics", "reth-network-api", @@ -2006,7 +2123,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -2015,7 +2132,7 @@ version = "0.1.0" dependencies = [ "ahash", "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types", "arbitrary", @@ -2068,7 +2185,7 @@ dependencies = [ "rayon", "redefined", "regex", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-codecs", "reth-codecs-derive", "reth-db", @@ -2103,11 +2220,11 @@ name = "brontes-inspect" version = "0.1.0" dependencies = [ "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", - "async-scoped", + "alloy-sol-macro", + "alloy-sol-types", + "async-scoped 0.9.0", "async-trait", "auto_impl", "brontes-classifier", @@ -2129,9 +2246,9 @@ dependencies = [ "itertools 0.11.0", "lazy_static", "malachite", - "rand 0.8.5", + "rand 0.9.0", "rayon", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-db", "reth-primitives", "reth-tracing-ext", @@ -2139,12 +2256,12 @@ dependencies = [ "serde_json", "serde_with", "serial_test", - "statrs", + "statrs 0.18.0", "strum 0.25.0", "thiserror 1.0.69", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -2154,9 +2271,9 @@ dependencies = [ "bitflags 2.9.0", "byteorder", "criterion", - "dashmap 5.5.3", + "dashmap 6.1.0", "derive_more 2.0.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "libc", "libffi", "parking_lot", @@ -2181,7 +2298,7 @@ dependencies = [ name = "brontes-metrics" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "brontes-types", "clickhouse", "colored", @@ -2202,19 +2319,19 @@ dependencies = [ "tikv-jemalloc-ctl", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] name = "brontes-pricing" version = "0.1.0" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-primitives 0.8.23", + "alloy-dyn-abi", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", "arbitrary", "async-trait", "auto_impl", @@ -2233,7 +2350,7 @@ dependencies = [ "erased-serde", "eyre", "futures", - "indexmap 2.8.0", + "indexmap 2.9.0", "itertools 0.12.1", "malachite", "modular-bitfield", @@ -2271,7 +2388,7 @@ name = "brontes-tracing" version = "0.1.0" dependencies = [ "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -2280,15 +2397,15 @@ version = "0.1.0" dependencies = [ "ahash", "alloy-consensus", - "alloy-dyn-abi 0.7.7", + "alloy-dyn-abi", "alloy-json-abi 0.7.7", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-beacon", "alloy-rpc-types-trace", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", "async-trait", "auto_impl", "brontes-classifier", @@ -2322,7 +2439,7 @@ dependencies = [ "rayon", "redefined", "relays-openapi", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-codecs", "reth-db", "reth-primitives", @@ -2335,7 +2452,7 @@ dependencies = [ "serde_repr", "serde_with", "serial_test", - "statrs", + "statrs 0.16.1", "strum 0.25.0", "thiserror 1.0.69", "tokio", @@ -2375,9 +2492,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", ] @@ -2433,9 +2550,9 @@ dependencies = [ [[package]] name = "bytemuck_derive" -version = "1.8.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a" +checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" dependencies = [ "proc-macro2", "quote", @@ -2459,10 +2576,11 @@ dependencies = [ [[package]] name = "c-kzg" -version = "1.0.3" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" +checksum = "4e7e3c397401eb76228c89561cf22f85f41c95aa799ee9d860de3ea1cbc728fc" dependencies = [ + "arbitrary", "blst", "cc", "glob", @@ -2577,9 +2695,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", @@ -2587,7 +2705,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] @@ -2662,9 +2780,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.32" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -2672,9 +2790,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.32" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", @@ -2713,7 +2831,7 @@ dependencies = [ "hyper 0.14.32", "hyper-tls 0.5.0", "lz4", - "reqwest 0.12.14", + "reqwest 0.12.15", "sealed", "serde", "serde_json", @@ -2758,7 +2876,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -2876,15 +2994,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "convert_case" version = "0.7.1" @@ -3017,9 +3126,9 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -3194,9 +3303,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -3204,9 +3313,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", @@ -3218,9 +3327,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", @@ -3277,7 +3386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4fdb82bd54a12e42fb58a800dcae6b9e13982238ce2296dc3570b92148e1f" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -3297,7 +3406,7 @@ dependencies = [ "hyper-tls 0.5.0", "primitive-types", "rand 0.8.5", - "reqwest 0.12.14", + "reqwest 0.12.15", "serde", "serde_json", "strum 0.25.0", @@ -3337,9 +3446,9 @@ dependencies = [ [[package]] name = "delay_map" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df941644b671f05f59433e481ba0d31ac10e3667de725236a4c0d587c496fba1" +checksum = "88e365f083a5cb5972d50ce8b1b2c9f125dc5ec0f50c0248cfb568ae59efcf0b" dependencies = [ "futures", "tokio", @@ -3370,9 +3479,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -3479,11 +3588,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "convert_case 0.6.0", "proc-macro2", "quote", "syn 2.0.100", - "unicode-xid", ] [[package]] @@ -3701,6 +3808,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "either" version = "1.15.0" @@ -3777,6 +3896,26 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "enum-ordinalize" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "enum_dispatch" version = "0.3.13" @@ -3800,6 +3939,26 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "equator" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" +dependencies = [ + "equator-macro", +] + +[[package]] +name = "equator-macro" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -3817,9 +3976,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", "windows-sys 0.59.0", @@ -3851,7 +4010,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70cbccfccf81d67bff0ab36e591fa536c8a935b078a7b0e58c1d00d418332fc9" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "hex", "serde", "serde_derive", @@ -3864,7 +4023,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86da3096d1304f5f28476ce383005385459afeaf0eea08592b65ddbc9b258d16" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "ethereum_serde_utils", "itertools 0.13.0", "serde", @@ -4030,9 +4189,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "miniz_oxide", @@ -4046,9 +4205,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foreign-types" @@ -4256,14 +4415,16 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -4284,9 +4445,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "git2" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff" +checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" dependencies = [ "bitflags 2.9.0", "libc", @@ -4370,7 +4531,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.8.0", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -4389,7 +4550,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -4398,9 +4559,9 @@ dependencies = [ [[package]] name = "half" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ "cfg-if", "crunchy", @@ -4539,13 +4700,14 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hickory-proto" -version = "0.25.0-alpha.5" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d00147af6310f4392a31680db52a3ed45a2e0f68eb18e8c3fe5537ecc96d9e2" +checksum = "6d844af74f7b799e41c78221be863bade11c430d46042c3b49ca8ae0c6d27287" dependencies = [ "async-recursion", "async-trait", "cfg-if", + "critical-section", "data-encoding", "enum-as-inner", "futures-channel", @@ -4555,6 +4717,7 @@ dependencies = [ "ipnet", "once_cell", "rand 0.9.0", + "ring", "serde", "thiserror 2.0.12", "tinyvec", @@ -4565,9 +4728,9 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.25.0-alpha.5" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5762f69ebdbd4ddb2e975cd24690bf21fe6b2604039189c26acddbc427f12887" +checksum = "a128410b38d6f931fcc6ca5c107a3b02cabd6c05967841269a4ad65d23c44331" dependencies = [ "cfg-if", "futures-util", @@ -4635,13 +4798,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" +checksum = "a56f203cd1c76362b69e3863fd987520ac36cf70a8c92627449b2f64a8cf7d65" dependencies = [ "cfg-if", "libc", - "windows 0.52.0", + "windows-link", ] [[package]] @@ -4806,7 +4969,7 @@ dependencies = [ "hyper-util", "log", "rustls", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", @@ -4845,9 +5008,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ "bytes", "futures-channel", @@ -4855,6 +5018,7 @@ dependencies = [ "http 1.3.1", "http-body 1.0.1", "hyper 1.6.0", + "libc", "pin-project-lite", "socket2", "tokio", @@ -4864,16 +5028,17 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.61.0", ] [[package]] @@ -4926,9 +5091,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" @@ -4950,9 +5115,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" [[package]] name = "icu_properties" @@ -4971,9 +5136,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" [[package]] name = "icu_provider" @@ -5032,12 +5197,12 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" +checksum = "69b2eeee38fef3aa9b4cc5f1beea8a2444fc00e7377cafae396de3f5c2065e24" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5104,9 +5269,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "arbitrary", "equivalent", @@ -5213,9 +5378,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0f0a572e8ffe56e2ff4f769f32ffe919282c3916799f8b68688b6030063bea" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" dependencies = [ "memchr", "serde", @@ -5297,16 +5462,18 @@ checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror 1.0.69", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -5317,10 +5484,11 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] @@ -5336,9 +5504,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" +checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -5354,9 +5522,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def0fd41e2f53118bd1620478d12305b2c75feef57ea1f93ef70568c98081b7e" +checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" dependencies = [ "base64 0.22.1", "futures-channel", @@ -5379,9 +5547,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76637f6294b04e747d68e69336ef839a3493ca62b35bf488ead525f7da75c5bb" +checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" dependencies = [ "async-trait", "bytes", @@ -5406,9 +5574,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c24e981ad17798bbca852b0738bfb7b94816ed687bd0d5da60bfa35fa0fdc3" +checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" dependencies = [ "async-trait", "base64 0.22.1", @@ -5431,9 +5599,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcae0c6c159e11541080f1f829873d8f374f81eda0abc67695a13fc8dc1a580" +checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" dependencies = [ "heck 0.5.0", "proc-macro-crate", @@ -5444,9 +5612,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b7a3df90a1a60c3ed68e7ca63916b53e9afa928e33531e87f61a9c8e9ae87b" +checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" dependencies = [ "futures-util", "http 1.3.1", @@ -5471,9 +5639,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb81adb1a5ae9182df379e374a79e24e992334e7346af4d065ae5b2acb8d4c6" +checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" dependencies = [ "http 1.3.1", "serde", @@ -5483,9 +5651,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e41af42ca39657313748174d02766e5287d3a57356f16756dbd8065b933977" +checksum = "e6558a9586cad43019dafd0b6311d0938f46efc116b34b28c74778bc11a2edf6" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -5494,9 +5662,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4f3642a292f5b76d8a16af5c88c16a0860f2ccc778104e5c848b28183d9538" +checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" dependencies = [ "http 1.3.1", "jsonrpsee-client-transport", @@ -5594,9 +5762,6 @@ name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin", -] [[package]] name = "lexical-core" @@ -5670,9 +5835,9 @@ checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libffi" -version = "3.2.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce826c243048e3d5cec441799724de52e2d42f820468431fc3fceee2341871e2" +checksum = "4a9434b6fc77375fb624698d5f8c49d7e80b10d59eb1219afda27d1f824d4074" dependencies = [ "libc", "libffi-sys", @@ -5680,18 +5845,18 @@ dependencies = [ [[package]] name = "libffi-sys" -version = "2.3.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36115160c57e8529781b4183c2bb51fdc1f6d6d1ed345591d84be7703befb3c" +checksum = "ead36a2496acfc8edd6cc32352110e9478ac5b9b5f5b9856ebd3d28019addb84" dependencies = [ "cc", ] [[package]] name = "libgit2-sys" -version = "0.18.0+1.9.0" +version = "0.18.1+1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec" +checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" dependencies = [ "cc", "libc", @@ -5706,7 +5871,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -5758,12 +5923,12 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64 0.22.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -5806,9 +5971,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.21" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9b68e50e6e0b26f672573834882eb57759f6db9b3be2ea3c35c91188bb4eaa" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -5840,9 +6005,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -5863,9 +6028,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "log-report-layer" @@ -5873,10 +6038,10 @@ version = "0.1.0" source = "git+https://github.com/SorellaLabs/log-report-layer#7f7be4d600ee46662eb521f1667e2a0f627f65c0" dependencies = [ "eyre", - "reqwest 0.12.14", + "reqwest 0.12.15", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -5889,7 +6054,7 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -6091,7 +6256,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" dependencies = [ "base64 0.22.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "metrics", "metrics-util", "quanta", @@ -6169,9 +6334,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] @@ -6328,7 +6493,24 @@ dependencies = [ "num-traits", "rand 0.8.5", "rand_distr", - "simba", + "simba 0.6.0", + "typenum", +] + +[[package]] +name = "nalgebra" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" +dependencies = [ + "approx", + "matrixmultiply", + "num-complex", + "num-rational", + "num-traits", + "rand 0.8.5", + "rand_distr", + "simba 0.9.0", "typenum", ] @@ -6594,9 +6776,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" dependencies = [ "critical-section", "portable-atomic", @@ -6610,16 +6792,16 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "op-alloy-consensus" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5099f9c3a41a313dd5f7fe7657545d972781e53d70c62976858aba8dac9eef" +checksum = "917f7a65b83e8f9cf06d5209161babf39f5e5768e226a08ad42c033386248a66" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-serde", - "derive_more 1.0.0", + "derive_more 2.0.1", "serde", "serde_with", "thiserror 2.0.12", @@ -6627,15 +6809,15 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.11.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e829ee4a0f373132258ccdce71ed1984cdbf7df83ab928522997ee79943879c2" +checksum = "a6c57a07a8f7da6169a247c4af7cf6bb69fec3789dd41b7dcb6742fce01a232e" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", - "derive_more 1.0.0", + "derive_more 2.0.1", "ethereum_ssz", "op-alloy-consensus", "snap", @@ -6644,9 +6826,9 @@ dependencies = [ [[package]] name = "op-revm" -version = "1.0.0-alpha.4" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bace6de3cbeca7d98d49354b3812c6d72fc609c54e162ce9db0dae1c82d2eb57" +checksum = "e981d234dcfd3a3de7480e5a5cf7439071af39d15b7d258188cc4c69b9d1f26e" dependencies = [ "auto_impl", "once_cell", @@ -6662,9 +6844,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -6694,9 +6876,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -6801,9 +6983,9 @@ dependencies = [ [[package]] name = "parquet" -version = "54.2.1" +version = "54.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88838dca3b84d41444a0341b19f347e8098a3898b0f21536654b8b799e11abd" +checksum = "bfb15796ac6f56b429fd99e33ba133783ad75b27c36b4b5ce06f1f82cc97754e" dependencies = [ "ahash", "arrow-array", @@ -6832,7 +7014,6 @@ dependencies = [ "tokio", "twox-hash", "zstd", - "zstd-sys", ] [[package]] @@ -6863,7 +7044,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59ac35caa284c08f3721fb33c2741b5f763decaf42d080c8a6a722154347017e" dependencies = [ "deprecate-until", - "indexmap 2.8.0", + "indexmap 2.9.0", "integer-sqrt", "num-traits", "rustc-hash 2.1.1", @@ -6888,9 +7069,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.15" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" dependencies = [ "memchr", "thiserror 2.0.12", @@ -6904,7 +7085,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.8.0", + "indexmap 2.9.0", ] [[package]] @@ -7150,7 +7331,7 @@ dependencies = [ "comfy-table", "either", "hashbrown 0.14.5", - "indexmap 2.8.0", + "indexmap 2.9.0", "num-traits", "once_cell", "polars-arrow", @@ -7248,7 +7429,7 @@ dependencies = [ "either", "hashbrown 0.14.5", "hex", - "indexmap 2.8.0", + "indexmap 2.9.0", "memchr", "num-traits", "polars-arrow", @@ -7390,7 +7571,7 @@ dependencies = [ "ahash", "bytemuck", "hashbrown 0.14.5", - "indexmap 2.8.0", + "indexmap 2.9.0", "num-traits", "once_cell", "polars-error", @@ -7427,10 +7608,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "pprof" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5c97c51bd34c7e742402e216abdeb44d415fbe6ae41d56b114723e953711cb" +checksum = "ebbe2f8898beba44815fdc9e5a4ae9c929e21c5dc29b0c774a15555f7f58d6d0" dependencies = [ + "aligned-vec", "backtrace", "cfg-if", "findshlibs", @@ -7451,7 +7633,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.23", + "zerocopy 0.8.24", ] [[package]] @@ -7466,9 +7648,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", "syn 2.0.100", @@ -7492,12 +7674,12 @@ dependencies = [ name = "pricing-test-utils" version = "0.1.0" dependencies = [ - "alloy-dyn-abi 0.7.7", - "alloy-primitives 0.8.23", + "alloy-dyn-abi", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types", - "alloy-sol-macro 0.8.23", - "alloy-sol-types 0.8.23", + "alloy-sol-macro", + "alloy-sol-types", "arbitrary", "async-trait", "auto_impl", @@ -7575,30 +7757,6 @@ dependencies = [ "toml_edit", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -7807,11 +7965,12 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" +checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" dependencies = [ "bytes", + "cfg_aliases", "pin-project-lite", "quinn-proto", "quinn-udp", @@ -7821,17 +7980,18 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" +checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" dependencies = [ "bytes", - "getrandom 0.2.15", - "rand 0.8.5", + "getrandom 0.3.2", + "rand 0.9.0", "ring", "rustc-hash 2.1.1", "rustls", @@ -7845,9 +8005,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46f3055866785f6b92bc6164b76be02ca8f2eb4b002c0354b28cf4c119e5944" +checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" dependencies = [ "cfg_aliases", "libc", @@ -7866,6 +8026,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "radium" version = "0.7.0" @@ -7892,7 +8058,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", - "zerocopy 0.8.23", + "zerocopy 0.8.24", ] [[package]] @@ -7930,7 +8096,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.2", ] [[package]] @@ -8018,7 +8184,7 @@ dependencies = [ "futures", "proc-macro2", "quote", - "reqwest 0.12.14", + "reqwest 0.12.15", "serde", "serde_json", "syn 2.0.100", @@ -8027,9 +8193,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ "bitflags 2.9.0", ] @@ -8152,9 +8318,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.14" +version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e327e510263980e231de548a33e63d34962d29ae61b467389a1a09627a254" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ "base64 0.22.1", "bytes", @@ -8180,7 +8346,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-native-certs 0.8.1", + "rustls-native-certs", "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", @@ -8214,23 +8380,23 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "futures-core", "futures-util", "metrics", + "reth-chain-state", "reth-metrics", "reth-payload-builder", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", - "reth-provider", "reth-revm", + "reth-storage-api", "reth-tasks", "tokio", "tracing", @@ -8238,12 +8404,12 @@ dependencies = [ [[package]] name = "reth-chain-state" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "derive_more 2.0.1", "metrics", "parking_lot", @@ -8264,15 +8430,15 @@ dependencies = [ [[package]] name = "reth-chainspec" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-genesis", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-trie", "auto_impl", "derive_more 2.0.1", @@ -8284,11 +8450,11 @@ dependencies = [ [[package]] name = "reth-cli-util" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "cfg-if", "eyre", "libc", @@ -8301,25 +8467,26 @@ dependencies = [ [[package]] name = "reth-codecs" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-trie", "bytes", "modular-bitfield", "op-alloy-consensus", "reth-codecs-derive", + "reth-zstd-compressors", "serde", ] [[package]] name = "reth-codecs-derive" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "convert_case 0.7.1", "proc-macro2", @@ -8329,8 +8496,8 @@ dependencies = [ [[package]] name = "reth-config" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "eyre", "humantime-serde", @@ -8343,11 +8510,11 @@ dependencies = [ [[package]] name = "reth-consensus" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "auto_impl", "reth-execution-types", "reth-primitives-traits", @@ -8356,8 +8523,8 @@ dependencies = [ [[package]] name = "reth-consensus-common" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", @@ -8368,19 +8535,19 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-provider", "alloy-rpc-types-engine", "auto_impl", "derive_more 2.0.1", "eyre", "futures", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-node-api", "reth-primitives-traits", "reth-tracing", @@ -8391,10 +8558,10 @@ dependencies = [ [[package]] name = "reth-db" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "derive_more 2.0.1", "eyre", "metrics", @@ -8415,12 +8582,12 @@ dependencies = [ [[package]] name = "reth-db-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "bytes", "derive_more 2.0.1", "metrics", @@ -8440,12 +8607,12 @@ dependencies = [ [[package]] name = "reth-db-common" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -8469,11 +8636,11 @@ dependencies = [ [[package]] name = "reth-db-models" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "bytes", "modular-bitfield", "reth-codecs", @@ -8483,10 +8650,10 @@ dependencies = [ [[package]] name = "reth-discv4" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "discv5", "enr", @@ -8509,10 +8676,10 @@ dependencies = [ [[package]] name = "reth-discv5" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "derive_more 2.0.1", "discv5", @@ -8533,10 +8700,10 @@ dependencies = [ [[package]] name = "reth-dns-discovery" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "data-encoding", "enr", "hickory-resolver", @@ -8557,12 +8724,12 @@ dependencies = [ [[package]] name = "reth-downloaders" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "futures", "futures-util", @@ -8575,7 +8742,6 @@ dependencies = [ "reth-metrics", "reth-network-p2p", "reth-network-peers", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", @@ -8588,11 +8754,11 @@ dependencies = [ [[package]] name = "reth-ecies" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "aes", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "block-padding", "byteorder", @@ -8619,11 +8785,11 @@ dependencies = [ [[package]] name = "reth-engine-local" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -8648,20 +8814,20 @@ dependencies = [ [[package]] name = "reth-engine-primitives" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "auto_impl", "futures", "reth-chain-state", "reth-errors", + "reth-ethereum-primitives", "reth-execution-types", "reth-payload-builder-primitives", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", "reth-trie", "reth-trie-common", @@ -8672,8 +8838,8 @@ dependencies = [ [[package]] name = "reth-engine-service" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "futures", "pin-project", @@ -8681,11 +8847,11 @@ dependencies = [ "reth-consensus", "reth-engine-primitives", "reth-engine-tree", + "reth-ethereum-primitives", "reth-evm", "reth-network-p2p", "reth-node-types", "reth-payload-builder", - "reth-primitives", "reth-provider", "reth-prune", "reth-stages-api", @@ -8695,17 +8861,18 @@ dependencies = [ [[package]] name = "reth-engine-tree" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types-engine", "derive_more 2.0.1", "futures", + "itertools 0.14.0", "metrics", "mini-moka", "parking_lot", @@ -8740,8 +8907,8 @@ dependencies = [ [[package]] name = "reth-engine-util" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -8755,10 +8922,9 @@ dependencies = [ "reth-evm", "reth-fs-util", "reth-payload-primitives", - "reth-primitives", "reth-primitives-traits", - "reth-provider", "reth-revm", + "reth-storage-api", "serde", "serde_json", "tokio", @@ -8768,8 +8934,8 @@ dependencies = [ [[package]] name = "reth-errors" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "reth-consensus", "reth-execution-errors", @@ -8780,11 +8946,11 @@ dependencies = [ [[package]] name = "reth-eth-wire" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "bytes", "derive_more 2.0.1", @@ -8808,19 +8974,19 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-hardforks", + "alloy-primitives 0.8.25", "alloy-rlp", "bytes", "derive_more 2.0.1", "reth-chainspec", "reth-codecs-derive", - "reth-ethereum-forks", "reth-ethereum-primitives", "reth-primitives-traits", "serde", @@ -8829,12 +8995,12 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -8845,11 +9011,11 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", @@ -8862,12 +9028,12 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eip2124", "alloy-hardforks", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "auto_impl", "once_cell", "rustc-hash 2.1.1", @@ -8875,12 +9041,12 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "reth-basic-payload-builder", "reth-chainspec", @@ -8902,31 +9068,32 @@ dependencies = [ [[package]] name = "reth-ethereum-primitives" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-network", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde", "derive_more 2.0.1", "modular-bitfield", + "rand 0.8.5", "reth-codecs", "reth-primitives-traits", "reth-zstd-compressors", "revm-context", "secp256k1", "serde", + "serde_with", ] [[package]] name = "reth-etl" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "rayon", "reth-db-api", @@ -8935,13 +9102,13 @@ dependencies = [ [[package]] name = "reth-evm" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "auto_impl", "derive_more 2.0.1", "futures-util", @@ -8956,18 +9123,17 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", - "revm-database", ] [[package]] name = "reth-evm-ethereum" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "reth-chainspec", "reth-ethereum-forks", "reth-ethereum-primitives", @@ -8979,11 +9145,11 @@ dependencies = [ [[package]] name = "reth-execution-errors" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-evm", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "nybbles", "reth-storage-errors", @@ -8992,31 +9158,30 @@ dependencies = [ [[package]] name = "reth-execution-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "derive_more 2.0.1", "reth-ethereum-primitives", "reth-primitives-traits", "reth-trie-common", "revm", - "revm-database", "serde", "serde_with", ] [[package]] name = "reth-exex" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "eyre", "futures", "itertools 0.14.0", @@ -9025,6 +9190,7 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-config", + "reth-ethereum-primitives", "reth-evm", "reth-exex-types", "reth-fs-util", @@ -9032,7 +9198,6 @@ dependencies = [ "reth-node-api", "reth-node-core", "reth-payload-builder", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-prune-types", @@ -9049,14 +9214,13 @@ dependencies = [ [[package]] name = "reth-exex-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "reth-chain-state", "reth-execution-types", - "reth-primitives", "reth-primitives-traits", "serde", "serde_with", @@ -9064,8 +9228,8 @@ dependencies = [ [[package]] name = "reth-fs-util" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "serde", "serde_json", @@ -9074,11 +9238,11 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types-debug", "eyre", @@ -9088,7 +9252,6 @@ dependencies = [ "reth-chainspec", "reth-engine-primitives", "reth-evm", - "reth-primitives", "reth-primitives-traits", "reth-provider", "reth-revm", @@ -9101,8 +9264,8 @@ dependencies = [ [[package]] name = "reth-ipc" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "async-trait", "bytes", @@ -9122,14 +9285,14 @@ dependencies = [ [[package]] name = "reth-libmdbx" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "bitflags 2.9.0", "byteorder", "dashmap 6.1.0", "derive_more 2.0.1", - "indexmap 2.8.0", + "indexmap 2.9.0", "parking_lot", "reth-mdbx-sys", "smallvec", @@ -9139,8 +9302,8 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "bindgen", "cc", @@ -9148,8 +9311,8 @@ dependencies = [ [[package]] name = "reth-metrics" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "futures", "metrics", @@ -9160,20 +9323,20 @@ dependencies = [ [[package]] name = "reth-net-banlist" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", ] [[package]] name = "reth-net-nat" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "futures-util", "if-addrs", - "reqwest 0.12.14", + "reqwest 0.12.15", "serde_with", "thiserror 2.0.12", "tokio", @@ -9182,12 +9345,12 @@ dependencies = [ [[package]] name = "reth-network" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "aquamarine", "auto_impl", @@ -9217,7 +9380,6 @@ dependencies = [ "reth-network-p2p", "reth-network-peers", "reth-network-types", - "reth-primitives", "reth-primitives-traits", "reth-storage-api", "reth-tasks", @@ -9237,10 +9399,10 @@ dependencies = [ [[package]] name = "reth-network-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-admin", "auto_impl", "derive_more 2.0.1", @@ -9260,12 +9422,12 @@ dependencies = [ [[package]] name = "reth-network-p2p" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "auto_impl", "derive_more 2.0.1", "futures", @@ -9282,10 +9444,10 @@ dependencies = [ [[package]] name = "reth-network-peers" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "enr", "secp256k1", @@ -9297,8 +9459,8 @@ dependencies = [ [[package]] name = "reth-network-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eip2124", "humantime-serde", @@ -9311,8 +9473,8 @@ dependencies = [ [[package]] name = "reth-nippy-jar" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "anyhow", "bincode 1.3.3", @@ -9328,8 +9490,8 @@ dependencies = [ [[package]] name = "reth-node-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -9352,12 +9514,12 @@ dependencies = [ [[package]] name = "reth-node-builder" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types", "alloy-rpc-types-engine", "aquamarine", @@ -9392,7 +9554,6 @@ dependencies = [ "reth-node-events", "reth-node-metrics", "reth-payload-builder", - "reth-primitives", "reth-provider", "reth-prune", "reth-rpc", @@ -9415,12 +9576,12 @@ dependencies = [ [[package]] name = "reth-node-core" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "clap", "derive_more 2.0.1", @@ -9442,7 +9603,6 @@ dependencies = [ "reth-network", "reth-network-p2p", "reth-network-peers", - "reth-primitives", "reth-primitives-traits", "reth-prune-types", "reth-rpc-eth-types", @@ -9460,15 +9620,16 @@ dependencies = [ "thiserror 2.0.12", "toml", "tracing", - "vergen 9.0.4", + "vergen 9.0.6", "vergen-git2", ] [[package]] name = "reth-node-ethereum" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ + "alloy-eips", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "eyre", @@ -9501,12 +9662,12 @@ dependencies = [ [[package]] name = "reth-node-events" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "derive_more 2.0.1", "futures", @@ -9525,8 +9686,8 @@ dependencies = [ [[package]] name = "reth-node-metrics" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "eyre", "http 1.3.1", @@ -9545,8 +9706,8 @@ dependencies = [ [[package]] name = "reth-node-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "reth-chainspec", "reth-db-api", @@ -9558,8 +9719,8 @@ dependencies = [ [[package]] name = "reth-payload-builder" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-rpc-types", @@ -9578,8 +9739,8 @@ dependencies = [ [[package]] name = "reth-payload-builder-primitives" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "pin-project", "reth-payload-primitives", @@ -9590,18 +9751,18 @@ dependencies = [ [[package]] name = "reth-payload-primitives" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "auto_impl", "op-alloy-rpc-types-engine", "reth-chain-state", "reth-chainspec", "reth-errors", - "reth-primitives", + "reth-primitives-traits", "serde", "thiserror 2.0.12", "tokio", @@ -9609,8 +9770,8 @@ dependencies = [ [[package]] name = "reth-payload-validator" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-rpc-types-engine", @@ -9619,8 +9780,8 @@ dependencies = [ [[package]] name = "reth-primitives" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "c-kzg", @@ -9633,13 +9794,13 @@ dependencies = [ [[package]] name = "reth-primitives-traits" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-trie", "auto_impl", @@ -9663,12 +9824,12 @@ dependencies = [ [[package]] name = "reth-provider" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "auto_impl", "dashmap 6.1.0", @@ -9684,6 +9845,7 @@ dependencies = [ "reth-db", "reth-db-api", "reth-errors", + "reth-ethereum-primitives", "reth-evm", "reth-execution-types", "reth-fs-util", @@ -9691,10 +9853,10 @@ dependencies = [ "reth-network-p2p", "reth-nippy-jar", "reth-node-types", - "reth-primitives", "reth-primitives-traits", "reth-prune-types", "reth-stages-types", + "reth-static-file-types", "reth-storage-api", "reth-storage-errors", "reth-trie", @@ -9707,12 +9869,12 @@ dependencies = [ [[package]] name = "reth-prune" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "itertools 0.14.0", "metrics", "rayon", @@ -9735,10 +9897,10 @@ dependencies = [ [[package]] name = "reth-prune-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "derive_more 2.0.1", "modular-bitfield", "reth-codecs", @@ -9748,31 +9910,29 @@ dependencies = [ [[package]] name = "reth-revm" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", "reth-trie", "revm", - "revm-database", - "revm-inspector", ] [[package]] name = "reth-rpc" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.8.23", + "alloy-dyn-abi", "alloy-eips", "alloy-evm", "alloy-genesis", "alloy-network", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", @@ -9797,19 +9957,20 @@ dependencies = [ "parking_lot", "pin-project", "rand 0.8.5", + "reth-chain-state", "reth-chainspec", "reth-consensus", "reth-engine-primitives", "reth-errors", "reth-ethereum-primitives", "reth-evm", + "reth-execution-types", "reth-metrics", "reth-network-api", "reth-network-peers", "reth-network-types", "reth-node-api", "reth-primitives-traits", - "reth-provider", "reth-revm", "reth-rpc-api", "reth-rpc-engine-api", @@ -9817,6 +9978,7 @@ dependencies = [ "reth-rpc-eth-types", "reth-rpc-server-types", "reth-rpc-types-compat", + "reth-storage-api", "reth-tasks", "reth-transaction-pool", "revm", @@ -9834,13 +9996,13 @@ dependencies = [ [[package]] name = "reth-rpc-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", "alloy-genesis", "alloy-json-rpc", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -9860,8 +10022,8 @@ dependencies = [ [[package]] name = "reth-rpc-builder" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-network", "alloy-provider", @@ -9897,11 +10059,11 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core", @@ -9916,6 +10078,7 @@ dependencies = [ "reth-payload-primitives", "reth-primitives-traits", "reth-rpc-api", + "reth-rpc-server-types", "reth-storage-api", "reth-tasks", "reth-transaction-pool", @@ -9927,15 +10090,15 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-dyn-abi 0.8.23", + "alloy-dyn-abi", "alloy-eips", "alloy-json-rpc", "alloy-network", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", @@ -9970,14 +10133,14 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", - "alloy-sol-types 0.8.23", + "alloy-sol-types", "derive_more 2.0.1", "futures", "itertools 0.14.0", @@ -9988,10 +10151,10 @@ dependencies = [ "reth-chain-state", "reth-chainspec", "reth-errors", + "reth-ethereum-primitives", "reth-evm", "reth-execution-types", "reth-metrics", - "reth-primitives", "reth-primitives-traits", "reth-revm", "reth-rpc-server-types", @@ -10001,9 +10164,7 @@ dependencies = [ "reth-transaction-pool", "reth-trie", "revm", - "revm-database", "revm-inspectors", - "revm-primitives", "schnellru", "serde", "thiserror 2.0.12", @@ -10014,8 +10175,8 @@ dependencies = [ [[package]] name = "reth-rpc-layer" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-rpc-types-engine", "http 1.3.1", @@ -10028,11 +10189,11 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "jsonrpsee-core", "jsonrpsee-types", @@ -10044,11 +10205,11 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", "jsonrpsee-types", "reth-primitives-traits", @@ -10057,19 +10218,19 @@ dependencies = [ [[package]] name = "reth-stages" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "bincode 1.3.3", "blake3", "futures-util", "itertools 0.14.0", "num-traits", "rayon", - "reqwest 0.12.14", + "reqwest 0.12.15", "reth-codecs", "reth-config", "reth-consensus", @@ -10099,11 +10260,11 @@ dependencies = [ [[package]] name = "reth-stages-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "aquamarine", "auto_impl", "futures-util", @@ -10126,10 +10287,10 @@ dependencies = [ [[package]] name = "reth-stages-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "bytes", "modular-bitfield", "reth-codecs", @@ -10139,14 +10300,13 @@ dependencies = [ [[package]] name = "reth-static-file" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "parking_lot", "rayon", "reth-codecs", - "reth-db", "reth-db-api", "reth-primitives-traits", "reth-provider", @@ -10160,10 +10320,10 @@ dependencies = [ [[package]] name = "reth-static-file-types" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "derive_more 2.0.1", "serde", "strum 0.27.1", @@ -10171,12 +10331,12 @@ dependencies = [ [[package]] name = "reth-storage-api" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -10195,11 +10355,11 @@ dependencies = [ [[package]] name = "reth-storage-errors" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "derive_more 2.0.1", "reth-primitives-traits", @@ -10211,8 +10371,8 @@ dependencies = [ [[package]] name = "reth-tasks" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "auto_impl", "dyn-clone", @@ -10229,8 +10389,8 @@ dependencies = [ [[package]] name = "reth-tokio-util" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "tokio", "tokio-stream", @@ -10239,8 +10399,8 @@ dependencies = [ [[package]] name = "reth-tracing" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "clap", "eyre", @@ -10249,7 +10409,7 @@ dependencies = [ "tracing-appender", "tracing-journald", "tracing-logfmt", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -10258,10 +10418,10 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-evm", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types", "alloy-rpc-types-trace", - "alloy-sol-types 0.8.23", + "alloy-sol-types", "async-trait", "bitflags 2.9.0", "brontes-core", @@ -10300,12 +10460,12 @@ dependencies = [ [[package]] name = "reth-transaction-pool" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "aquamarine", "auto_impl", @@ -10338,12 +10498,12 @@ dependencies = [ [[package]] name = "reth-trie" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-trie", "auto_impl", @@ -10362,11 +10522,11 @@ dependencies = [ [[package]] name = "reth-trie-common" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "alloy-consensus", - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -10385,41 +10545,37 @@ dependencies = [ [[package]] name = "reth-trie-db" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", - "alloy-rlp", - "derive_more 2.0.1", - "metrics", + "alloy-primitives 0.8.25", "reth-db-api", "reth-execution-errors", - "reth-metrics", "reth-primitives-traits", "reth-trie", - "revm", "tracing", ] [[package]] name = "reth-trie-parallel" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", "derive_more 2.0.1", "itertools 0.14.0", "metrics", "rayon", + "reth-db-api", "reth-execution-errors", "reth-metrics", - "reth-primitives", "reth-provider", "reth-storage-errors", "reth-trie", "reth-trie-common", "reth-trie-db", + "reth-trie-sparse", "thiserror 2.0.12", "tokio", "tracing", @@ -10427,32 +10583,34 @@ dependencies = [ [[package]] name = "reth-trie-sparse" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rlp", + "auto_impl", + "metrics", "reth-execution-errors", + "reth-metrics", "reth-primitives-traits", "reth-tracing", "reth-trie-common", "smallvec", - "thiserror 2.0.12", ] [[package]] name = "reth-zstd-compressors" -version = "1.3.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.0#a38c991c363d241894867a89324b8670be2f6a44" +version = "1.3.8" +source = "git+https://github.com/paradigmxyz/reth?tag=v1.3.8#44ab192899a898e2499ef20870629bb7a765f2a2" dependencies = [ "zstd", ] [[package]] name = "revm" -version = "20.0.0-alpha.5" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4eafd506f0f00559874b343901fb441771b8d3722724d08dab6859d3339289f" +checksum = "7db41167e2a1fddb734984cc26e4bf0a0cb298829d1c488b4de37bda764e1d47" dependencies = [ "revm-bytecode", "revm-context", @@ -10469,9 +10627,9 @@ dependencies = [ [[package]] name = "revm-bytecode" -version = "1.0.0-alpha.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad4e81fd3d5241ba201d2514a21835d8d06fa8bb7a2fb5b733a424a4776f0c4" +checksum = "fdc3ae92c0c071f4a5ac3ef398fed50bacf8ebd5495d2afded34c60874afa7a3" dependencies = [ "bitvec", "phf", @@ -10481,9 +10639,9 @@ dependencies = [ [[package]] name = "revm-context" -version = "1.0.0-alpha.4" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6aa6c3cd7ddd1aa68a0478f101fb5ebff83ee0566064b458cb3769725cde7fa" +checksum = "c5fd5d8a35cf33d2494e32a966ebee6bc23dea9b1fbc3477c5b58e42ddceaa5b" dependencies = [ "cfg-if", "derive-where", @@ -10497,9 +10655,9 @@ dependencies = [ [[package]] name = "revm-context-interface" -version = "1.0.0-alpha.4" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117c87d8d2fce323ea208a091a1b399fd0f74a208679952e0e88a8da061f016e" +checksum = "c8253163a7868c86b88dc76a193724b8c6252bf260dc1cf11d814a5f4fa7a804" dependencies = [ "alloy-eip2930", "alloy-eip7702", @@ -10512,9 +10670,9 @@ dependencies = [ [[package]] name = "revm-database" -version = "1.0.0-alpha.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8e7b21693b74dbd9ee824a00225aad6a4ec9db903625304ae1ce0f4c0940c4" +checksum = "fbb40baf1ec91bfda68a37a9be72c5d089e2b662532689209cb2e0febe1eb64c" dependencies = [ "alloy-eips", "auto_impl", @@ -10527,9 +10685,9 @@ dependencies = [ [[package]] name = "revm-database-interface" -version = "1.0.0-alpha.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd54a44b415d510cffea16955888544ce54f987958578b40a52d15963462b259" +checksum = "0c541612673da04df1ab3a6a56127851e93a5d05539eb915a6c541d24e7c5902" dependencies = [ "auto_impl", "revm-primitives", @@ -10539,9 +10697,9 @@ dependencies = [ [[package]] name = "revm-handler" -version = "1.0.0-alpha.5" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6048d06362493e8f0864d99ede5092ee2324db37e1e7d592fcb3c50e4af482" +checksum = "3f55164c03c05eace53cf7f64df5dff14c7769956e6f2b9e4acb88301dc7537c" dependencies = [ "auto_impl", "revm-bytecode", @@ -10557,16 +10715,15 @@ dependencies = [ [[package]] name = "revm-inspector" -version = "1.0.0-alpha.5" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b97116c773f9330b5d7f01796f57282f075389145d8e8932ac144d448356ad" +checksum = "62f67d36e1abebe20b891b7ef57de3af2addfbc2d9cd4ea3f49ade8a67d0e79d" dependencies = [ "auto_impl", "revm-context", "revm-database-interface", "revm-handler", "revm-interpreter", - "revm-precompile", "revm-primitives", "revm-state", "serde", @@ -10575,14 +10732,14 @@ dependencies = [ [[package]] name = "revm-inspectors" -version = "0.17.0-alpha.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1504e2851a11562fb350a9f408e5783351650aef11790aea0b0d0d9ab961c40" +checksum = "8a32ec21c38a85f83773e6b3cdb7060aae8ac9edb291118fbfd4da7f2a50e620" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types 0.8.23", + "alloy-sol-types", "anstyle", "colorchoice", "revm", @@ -10593,9 +10750,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "16.0.0-alpha.5" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7273ce9185b2a63cbd6bc6cfb3bc2a611923f9fb0bd432bd565c4d8c0d5f606f" +checksum = "3cd45ea4fdee2c3f430df4ddb4936dc85c49dc5a7ce9838a8b9ad6861ab153c6" dependencies = [ "revm-bytecode", "revm-context-interface", @@ -10605,10 +10762,15 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "17.0.0-alpha.5" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e812019b128ea7f33efa36e88f68ed5d9400e835055fe31e2b7162bd9ddc97ef" +checksum = "ac48995560dd5ea15e3788106bdf8893186d945bd40d674fb63aa351cf2e58fa" dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", "aurora-engine-modexp", "blst", "c-kzg", @@ -10617,30 +10779,28 @@ dependencies = [ "libsecp256k1", "once_cell", "p256", - "revm-context-interface", "revm-primitives", "ripemd", "secp256k1", "sha2 0.10.8", - "substrate-bn", ] [[package]] name = "revm-primitives" -version = "16.0.0-alpha.3" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa626cac49fb6bfdbfed2a1cd232eb5f54d36281703092eaeec859111b1a220e" +checksum = "bb9b235b3c03299a531717ae4f9ee6bdb4c1a1755c9f8ce751298d1c99d95fc3" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "enumn", "serde", ] [[package]] name = "revm-state" -version = "1.0.0-alpha.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3869d401da38fcf76021a6f5e4182fa027976f54763bc6ab2c477e440c6cd8f" +checksum = "dfdff0435bd0cb9e1f9dcc44eaea581973b0550cb897ce368d43259922b1c241" dependencies = [ "bitflags 2.9.0", "revm-bytecode", @@ -10757,9 +10917,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.10" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652edd001c53df0b3f96a36a8dc93fce6866988efc16808235653c6bcac8bf2" +checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" dependencies = [ "bytemuck", "byteorder", @@ -10782,9 +10942,9 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "ruint" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "825df406ec217a8116bd7b06897c6cc8f65ffefc15d030ae2c9540acc9ed50b6" +checksum = "78a46eb779843b2c4f21fac5773e25d6d5b7c8f0922876c91541790d2ca27eef" dependencies = [ "alloy-rlp", "arbitrary", @@ -10800,6 +10960,7 @@ dependencies = [ "primitive-types", "proptest", "rand 0.8.5", + "rand 0.9.0", "rlp", "ruint-macro", "serde", @@ -10873,22 +11034,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.2", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" dependencies = [ "log", "once_cell", @@ -10899,19 +11060,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "schannel", - "security-framework 2.11.1", -] - [[package]] name = "rustls-native-certs" version = "0.8.1" @@ -10953,23 +11101,23 @@ dependencies = [ [[package]] name = "rustls-platform-verifier" -version = "0.3.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" +checksum = "4a5467026f437b4cb2a533865eaa73eb840019a0916f4b9ec563c6e617e086c9" dependencies = [ - "core-foundation 0.9.4", + "core-foundation 0.10.0", "core-foundation-sys", "jni", "log", "once_cell", "rustls", - "rustls-native-certs 0.7.3", + "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 2.11.1", + "security-framework 3.2.0", "security-framework-sys", - "webpki-roots", - "winapi", + "webpki-root-certs", + "windows-sys 0.59.0", ] [[package]] @@ -10980,9 +11128,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ "ring", "rustls-pki-types", @@ -11127,7 +11275,6 @@ dependencies = [ "core-foundation 0.9.4", "core-foundation-sys", "libc", - "num-bigint", "security-framework-sys", ] @@ -11236,7 +11383,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "itoa", "memchr", "ryu", @@ -11285,7 +11432,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.8.0", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -11483,6 +11630,19 @@ dependencies = [ "wide", ] +[[package]] +name = "simba" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + [[package]] name = "simdutf8" version = "0.1.5" @@ -11539,9 +11699,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "serde", ] @@ -11565,9 +11725,9 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -11589,12 +11749,6 @@ dependencies = [ "sha1", ] -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - [[package]] name = "spki" version = "0.7.3" @@ -11634,7 +11788,19 @@ checksum = "b35a062dbadac17a42e0fc64c27f419b25d6fae98572eb43c8814c9e873d7721" dependencies = [ "approx", "lazy_static", - "nalgebra", + "nalgebra 0.29.0", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "statrs" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e" +dependencies = [ + "approx", + "nalgebra 0.33.2", "num-traits", "rand 0.8.5", ] @@ -11710,19 +11876,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - [[package]] name = "subtle" version = "2.6.1" @@ -11731,9 +11884,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "symbolic-common" -version = "12.14.1" +version = "12.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66135c8273581acaab470356f808a1c74a707fe7ec24728af019d7247e089e71" +checksum = "cb426702a1ee7c1d2ebf3b6fac2e67fde84f6d6396e581826e3f055d1bffb2a4" dependencies = [ "debugid", "memmap2 0.9.5", @@ -11743,9 +11896,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.14.1" +version = "12.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bcacd080282a72e795864660b148392af7babd75691d5ae9a3b77e29c98c77" +checksum = "d4671b7ae11875cb9c34348d2df6c5d1edd51f4c98ec45f591acb593ac8af8e0" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -11776,21 +11929,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "syn-solidity" -version = "0.8.23" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d975606bae72d8aad5b07d9342465e123a2cccf53a5a735aedf81ca92a709ecb" +checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" dependencies = [ "paste", "proc-macro2", @@ -11924,15 +12065,14 @@ checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5" [[package]] name = "tempfile" -version = "3.18.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.2", "once_cell", - "rustix 1.0.2", + "rustix 1.0.5", "windows-sys 0.59.0", ] @@ -12108,9 +12248,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.39" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -12125,15 +12265,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -12185,9 +12325,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.1" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ "backtrace", "bytes", @@ -12313,11 +12453,11 @@ version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.8.0", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.4", + "winnow 0.7.6", ] [[package]] @@ -12420,7 +12560,7 @@ dependencies = [ "crossbeam-channel", "thiserror 1.0.69", "time", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -12450,6 +12590,8 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ + "futures", + "futures-task", "pin-project", "tracing", ] @@ -12462,7 +12604,7 @@ checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" dependencies = [ "libc", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -12485,7 +12627,7 @@ dependencies = [ "time", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.3.19", ] [[package]] @@ -12498,6 +12640,15 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.19" @@ -12525,7 +12676,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c58eb0f518840670270d90d97ffee702d8662d9c5494870c9e1e9e0fa00f668" dependencies = [ - "alloy-primitives 0.8.23", + "alloy-primitives 0.8.25", "ethereum_hashing", "ethereum_ssz", "smallvec", @@ -12738,11 +12889,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.15.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f540e3240398cce6128b64ba83fdbdd86129c16a3aa1a3a252efd66eb3d587" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.2", ] [[package]] @@ -12773,9 +12924,9 @@ dependencies = [ [[package]] name = "vergen" -version = "9.0.4" +version = "9.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" +checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" dependencies = [ "anyhow", "cargo_metadata 0.19.2", @@ -12788,16 +12939,16 @@ dependencies = [ [[package]] name = "vergen-git2" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86bae87104cb2790cdee615c2bb54729804d307191732ab27b1c5357ea6ddc5" +checksum = "4f6ee511ec45098eabade8a0750e76eec671e7fb2d9360c563911336bea9cac1" dependencies = [ "anyhow", "derive_builder", "git2", "rustversion", "time", - "vergen 9.0.4", + "vergen 9.0.6", "vergen-lib", ] @@ -12860,9 +13011,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -12985,6 +13136,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09aed61f5e8d2c18344b3faa33a4c837855fe56642757754775548fee21386c4" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.26.8" @@ -13006,9 +13166,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -13032,7 +13192,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -13105,6 +13265,19 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-core" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +dependencies = [ + "windows-implement 0.60.0", + "windows-interface 0.59.1", + "windows-link", + "windows-result 0.3.2", + "windows-strings 0.4.0", +] + [[package]] name = "windows-implement" version = "0.57.0" @@ -13127,6 +13300,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-interface" version = "0.57.0" @@ -13149,11 +13333,22 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-link" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] name = "windows-registry" @@ -13161,7 +13356,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" dependencies = [ - "windows-result 0.3.1", + "windows-result 0.3.2", "windows-strings 0.3.1", "windows-targets 0.53.0", ] @@ -13186,9 +13381,9 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ "windows-link", ] @@ -13212,6 +13407,24 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -13239,6 +13452,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -13286,6 +13514,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -13304,6 +13538,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -13322,6 +13562,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -13352,6 +13598,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -13370,6 +13622,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -13388,6 +13646,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -13406,6 +13670,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -13435,9 +13705,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] @@ -13454,9 +13724,9 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ "bitflags 2.9.0", ] @@ -13508,7 +13778,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" dependencies = [ "libc", - "rustix 1.0.2", + "rustix 1.0.5", ] [[package]] @@ -13558,11 +13828,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" dependencies = [ - "zerocopy-derive 0.8.23", + "zerocopy-derive 0.8.24", ] [[package]] @@ -13578,9 +13848,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ "proc-macro2", "quote", @@ -13661,18 +13931,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.1" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 6e0caef383..545aa6eb9e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,79 +37,78 @@ brontes-analytics = { path = "./crates/brontes-analytics" } brontes-libmdbx = { path = "./crates/brontes-database/libmdbx-rs" } # Reth -reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-node-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-tasks = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-rpc = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-provider = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-network-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-primitives = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-db = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-node-core = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-revm = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-node-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-tasks = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-rpc = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-rpc-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-rpc-eth-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-rpc-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-provider = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-chainspec = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-network-api = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-primitives = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-db = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-node-core = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-revm = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } reth-stages = { git = "https://github.com/paradigmxyz/reth", features = [ "test-utils", -], version = "1.3.0", tag = "v1.3.0" } -reth-trie = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-metrics = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-codecs = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-storage-errors = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } -reth-mdbx-sys = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.0" } +], version = "1.3.0", tag = "v1.3.8" } +reth-trie = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-libmdbx = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-eth-wire = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-payload-builder = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-metrics = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-codecs = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-codecs-derive = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-rpc-eth-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-rpc-server-types = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-storage-errors = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } +reth-mdbx-sys = { git = "https://github.com/paradigmxyz/reth", version = "1.3.0", tag = "v1.3.8" } # ruint ruint = "1.9.0" # revm -revm = { version = "20.0.0-alpha.5", features = [ +revm = { version = "21.0.0", features = [ "std", "secp256k1", "optional_balance_check", "optional_block_gas_limit", ], default-features = false } -revm-primitives = { version = "16.0.0-alpha.3", features = [ +revm-primitives = { version = "17.0.0", features = [ "std", ], default-features = false } -revm-inspector = { version = "1.0.0-alpha.5", default-features = false } -revm-inspectors = "0.17.0-alpha.1" -alloy-evm = { version = "0.1.0-alpha.1", default-features = false } - +revm-inspector = { version = "2.0.0", default-features = false } +revm-inspectors = "0.18.0" # Alloy -alloy-sol-types = { version = "0.8.23", features = ["json"] } +alloy-sol-types = { version = "0.8.25", features = ["json"] } alloy-sol-macro = { version = "0.8.23", features = ["json"] } -alloy-rlp = { version = "0.3.4" } +alloy-rlp = { version = "0.3.10" } alloy-rlp-derive = { version = "0.3.4" } -alloy-primitives = { version = "0.8.20", features = ["rlp"] } +alloy-primitives = { version = "0.8.25", features = ["rlp"] } alloy-json-abi = "0.7.0" -alloy-dyn-abi = "0.7.0 " +alloy-dyn-abi = "0.8.25" +alloy-evm = { version = "0.3.2", default-features = false } # Alloy core -alloy-provider = { version = "0.12.5", default-features = false, features = [ +alloy-provider = { version = "0.13.0", default-features = false, features = [ "ipc", "ws", "pubsub", "reqwest", ] } -alloy-transport-http = { version = "0.12.5" } -alloy-transport = { version = "0.12.5" } -alloy-consensus = { version = "0.12.5" } -alloy-network = { version = "0.12.5" } -alloy-json-rpc = { version = "0.12.5" } -alloy-rpc-types = { version = "0.12.5", features = ["jsonrpsee-types", "eth"] } -alloy-rpc-types-trace = "0.12.5" -alloy-rpc-types-beacon = "0.12.5" -alloy-rpc-client = { version = "0.12.5" } +alloy-transport-http = { version = "0.13.0" } +alloy-transport = { version = "0.13.0" } +alloy-consensus = { version = "0.13.0" } +alloy-network = { version = "0.13.0" } +alloy-json-rpc = { version = "0.13.0" } +alloy-rpc-types = { version = "0.13.0", features = ["jsonrpsee-types", "eth"] } +alloy-rpc-types-trace = "0.13.0" +alloy-rpc-types-beacon = "0.13.0" +alloy-rpc-client = { version = "0.13.0" } # Async @@ -166,7 +165,7 @@ metrics = "0.24.0" # misc backon = "0.4.4" -c-kzg = "0.4.0" +c-kzg = "2.1.0" hex-literal = "0.4.1" rayon = "1.7.0" dotenv = "0.15.0" diff --git a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs index 5340a1180d..9874fe3a28 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/implementation/native/tx.rs @@ -16,6 +16,7 @@ use crate::libmdbx::{ tables::{Tables, NUM_TABLES}, }; +#[derive(Debug)] pub(crate) struct LibmdbxTx { /// Libmdbx-sys transaction. inner: Transaction, diff --git a/crates/brontes-database/libmdbx-rs/Cargo.toml b/crates/brontes-database/libmdbx-rs/Cargo.toml index df421cecd0..89afcbc37d 100644 --- a/crates/brontes-database/libmdbx-rs/Cargo.toml +++ b/crates/brontes-database/libmdbx-rs/Cargo.toml @@ -15,7 +15,7 @@ indexmap = "2" libc = "0.2" parking_lot.workspace = true thiserror.workspace = true -dashmap = { version = "5.5.3", features = ["inline"], optional = true } +dashmap = { version = "6.1.0", features = ["inline"], optional = true } tracing.workspace = true reth-mdbx-sys.workspace = true @@ -23,10 +23,10 @@ reth-mdbx-sys.workspace = true [dev-dependencies] tempfile = "3.8" criterion = "0.5" -pprof = "0.13" +pprof = "0.14.0" [target.'cfg(not(windows))'.dependencies] -libffi = "3.2.0" +libffi = "4.0.0" [features] default = [] diff --git a/crates/brontes-inspect/Cargo.toml b/crates/brontes-inspect/Cargo.toml index 89d3b61209..3d00ca501f 100644 --- a/crates/brontes-inspect/Cargo.toml +++ b/crates/brontes-inspect/Cargo.toml @@ -33,7 +33,7 @@ async-trait.workspace = true rayon.workspace = true futures.workspace = true tokio.workspace = true -async-scoped = { version = "0.7.1", features = ["use-tokio"] } +async-scoped = { version = "0.9.0", features = ["use-tokio"] } # reth reth-primitives.workspace = true @@ -84,8 +84,8 @@ brontes-database.workspace = true tokio.workspace = true reth-tracing-ext.workspace = true criterion = { version = "0.5" } -rand = "0.8.5" -statrs = "0.16" +rand = "0.9.0" +statrs = "0.18.0" [features] diff --git a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs index 2b239f7222..e4876ee7ce 100644 --- a/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs +++ b/crates/brontes-inspect/src/mev_inspectors/sandwich/mod.rs @@ -292,23 +292,6 @@ impl SandwichInspector<'_, DB> { .map(|g| g.gas_paid()) .sum::(); - println!("Backrun gas details: {}", backrun_info.gas_details); - - println!( - "Frontrun Txees: {} Backrun tx: {} bribe_usd: {} Eth price: {} Quote Token: {} Number - of possible frontruns: {}", - frontrun_tx_hash - .iter() - .map(|tx| tx.to_string()) - .collect::>() - .join(" "), - backrun_info.tx_hash, - gas_used.clone(), - metadata.get_eth_price(self.utils.quote).to_float(), - self.utils.quote, - frontrun_tx_hash.len(), - ); - let gas_used = metadata.get_gas_price_usd(gas_used, self.utils.quote); let searcher_deltas = searcher_actions diff --git a/crates/brontes-types/src/tree/root.rs b/crates/brontes-types/src/tree/root.rs index 3cc0ea79dd..240fafc9a0 100644 --- a/crates/brontes-types/src/tree/root.rs +++ b/crates/brontes-types/src/tree/root.rs @@ -361,10 +361,6 @@ impl GasDetails { pub fn gas_paid(&self) -> u128 { let mut gas = self.gas_used * self.effective_gas_price; - print!("Gas paid: {} ", gas); - - println!("Effective Gas Price: {}", self.effective_gas_price); - if let Some(coinbase) = self.coinbase_transfer { gas += coinbase } diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index b4c314c117..e5ebbee8b1 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -19,8 +19,8 @@ use reth_provider::{ use reth_rpc::{DebugApi, EthApi, EthFilter, TraceApi}; use reth_rpc_eth_api::helpers::Trace; use reth_rpc_eth_types::{ - EthResult, EthStateCache, EthStateCacheConfig, FeeHistoryCache, FeeHistoryCacheConfig, GasCap, - GasPriceOracle, GasPriceOracleConfig, + EthConfig, EthResult, EthStateCache, EthStateCacheConfig, FeeHistoryCache, + FeeHistoryCacheConfig, GasCap, GasPriceOracle, GasPriceOracleConfig, }; use reth_rpc_server_types::constants::{ DEFAULT_ETH_PROOF_WINDOW, DEFAULT_MAX_SIMULATE_BLOCKS, DEFAULT_PROOF_PERMITS, @@ -114,7 +114,7 @@ impl TracingClient { ); let tracing_call_guard = BlockingTaskGuard::new(max_tasks as usize); - let trace = TraceApi::new(api.clone(), tracing_call_guard); + let trace = TraceApi::new(api.clone(), tracing_call_guard, EthConfig::default()); Self { api, trace, provider_factory } } From 2b9985bc828e4424be32c1e8e77991dd46e9ecdb Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 16:59:05 -0400 Subject: [PATCH 78/93] fixed classifier build issues --- .../{AaveV3Pool.json => AaveV3.json} | 0 .../cowswap/GPv2Settlement.json | 989 ++++---- .../zero-x/ZeroXOtcOrdersFeature.json | 2032 ++++++++--------- .../src/classifiers/aave/mod.rs | 2 - .../src/classifiers/aave/v2.rs | 4 +- .../src/classifiers/aave/v3.rs | 27 +- .../src/classifiers/balancer/balancer_v2.rs | 9 +- .../src/classifiers/cowswap/mod.rs | 12 +- .../burns/base/{base2_lido.rs => lido2.rs} | 0 .../src/classifiers/curve/burns/base/mod.rs | 6 +- .../src/classifiers/dodo/dodo_v2.rs | 15 +- .../brontes-classifier/src/classifiers/mod.rs | 71 +- .../src/classifiers/zerox/mod.rs | 40 +- crates/brontes-classifier/src/lib.rs | 32 +- .../liquidations/aave.rs | 6 +- .../src/multi_frame_classification/mod.rs | 4 +- .../src/tree_builder/lib.rs | 2 +- crates/brontes-types/src/protocol.rs | 6 +- 18 files changed, 1534 insertions(+), 1723 deletions(-) rename crates/brontes-classifier/classifier-abis/{AaveV3Pool.json => AaveV3.json} (100%) rename crates/brontes-classifier/src/classifiers/curve/burns/base/{base2_lido.rs => lido2.rs} (100%) diff --git a/crates/brontes-classifier/classifier-abis/AaveV3Pool.json b/crates/brontes-classifier/classifier-abis/AaveV3.json similarity index 100% rename from crates/brontes-classifier/classifier-abis/AaveV3Pool.json rename to crates/brontes-classifier/classifier-abis/AaveV3.json diff --git a/crates/brontes-classifier/classifier-abis/cowswap/GPv2Settlement.json b/crates/brontes-classifier/classifier-abis/cowswap/GPv2Settlement.json index 9368e7dff7..18397cf230 100644 --- a/crates/brontes-classifier/classifier-abis/cowswap/GPv2Settlement.json +++ b/crates/brontes-classifier/classifier-abis/cowswap/GPv2Settlement.json @@ -1,581 +1,410 @@ [ - { - "inputs": [ - { - "internalType": "contract GPv2Authentication", - "name": "authenticator_", - "type": "address" - }, - { - "internalType": "contract IVault", - "name": "vault_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "selector", - "type": "bytes4" - } - ], - "name": "Interaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "name": "OrderInvalidated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bool", - "name": "signed", - "type": "bool" - } - ], - "name": "PreSignature", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "solver", - "type": "address" - } - ], - "name": "Settlement", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract IERC20", - "name": "sellToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract IERC20", - "name": "buyToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "name": "Trade", - "type": "event" - }, - { - "inputs": [], - "name": "authenticator", - "outputs": [ - { - "internalType": "contract GPv2Authentication", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "filledAmount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "orderUids", - "type": "bytes[]" - } - ], - "name": "freeFilledAmountStorage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "orderUids", - "type": "bytes[]" - } - ], - "name": "freePreSignatureStorage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "offset", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "getStorageAt", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - } - ], - "name": "invalidateOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "preSignature", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "orderUid", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "signed", - "type": "bool" - } - ], - "name": "setPreSignature", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "tokens", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "clearingPrices", - "type": "uint256[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "sellTokenIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyTokenIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flags", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executedAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct GPv2Trade.Data[]", - "name": "trades", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "callData", - "type": "bytes" - } - ], - "internalType": "tuple[][3]", - "name": "interactions", - "type": "tuple[][3]" - } - ], - "name": "settle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulateDelegatecall", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulateDelegatecallInternal", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "poolId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "assetInIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "assetOutIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "userData", - "type": "bytes" - } - ], - "internalType": "tuple[]", - "name": "swaps", - "type": "tuple[]" - }, - { - "internalType": "address[]", - "name": "tokens", - "type": "address[]" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "sellTokenIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyTokenIndex", - "type": "uint256" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "sellAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "buyAmount", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "validTo", - "type": "uint32" - }, - { - "internalType": "bytes32", - "name": "appData", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "flags", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executedAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct GPv2Trade.Data", - "name": "trade", - "type": "tuple" - } - ], - "name": "swap", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "vault", - "outputs": [ - { - "internalType": "contract IVault", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "vaultRelayer", - "outputs": [ - { - "internalType": "contract GPv2VaultRelayer", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] \ No newline at end of file + { + "inputs": [ + { + "internalType": "contract GPv2Authentication", + "name": "authenticator_", + "type": "address" + }, + { "internalType": "contract IVault", "name": "vault_", "type": "address" } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes4", + "name": "selector", + "type": "bytes4" + } + ], + "name": "Interaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "orderUid", + "type": "bytes" + } + ], + "name": "OrderInvalidated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "orderUid", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bool", + "name": "signed", + "type": "bool" + } + ], + "name": "PreSignature", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "solver", + "type": "address" + } + ], + "name": "Settlement", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "contract IERC20", + "name": "sellToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "contract IERC20", + "name": "buyToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sellAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "buyAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "orderUid", + "type": "bytes" + } + ], + "name": "Trade", + "type": "event" + }, + { + "inputs": [], + "name": "authenticator", + "outputs": [ + { + "internalType": "contract GPv2Authentication", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "domainSeparator", + "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }], + "name": "filledAmount", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes[]", "name": "orderUids", "type": "bytes[]" } + ], + "name": "freeFilledAmountStorage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes[]", "name": "orderUids", "type": "bytes[]" } + ], + "name": "freePreSignatureStorage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "uint256", "name": "offset", "type": "uint256" }, + { "internalType": "uint256", "name": "length", "type": "uint256" } + ], + "name": "getStorageAt", + "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes", "name": "orderUid", "type": "bytes" } + ], + "name": "invalidateOrder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }], + "name": "preSignature", + "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { "internalType": "bytes", "name": "orderUid", "type": "bytes" }, + { "internalType": "bool", "name": "signed", "type": "bool" } + ], + "name": "setPreSignature", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IERC20[]", + "name": "tokens", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "clearingPrices", + "type": "uint256[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "sellTokenIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "buyTokenIndex", + "type": "uint256" + }, + { "internalType": "address", "name": "receiver", "type": "address" }, + { + "internalType": "uint256", + "name": "sellAmount", + "type": "uint256" + }, + { "internalType": "uint256", "name": "buyAmount", "type": "uint256" }, + { "internalType": "uint32", "name": "validTo", "type": "uint32" }, + { "internalType": "bytes32", "name": "appData", "type": "bytes32" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" }, + { "internalType": "uint256", "name": "flags", "type": "uint256" }, + { + "internalType": "uint256", + "name": "executedAmount", + "type": "uint256" + }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "internalType": "struct GPv2Trade.Data[]", + "name": "trades", + "type": "tuple[]" + }, + { + "components": [ + { "internalType": "address", "name": "target", "type": "address" }, + { "internalType": "uint256", "name": "value", "type": "uint256" }, + { "internalType": "bytes", "name": "callData", "type": "bytes" } + ], + "internalType": "struct GPv2Interaction.Data[][3]", + "name": "interactions", + "type": "tuple[][3]" + } + ], + "name": "settle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "targetContract", + "type": "address" + }, + { "internalType": "bytes", "name": "calldataPayload", "type": "bytes" } + ], + "name": "simulateDelegatecall", + "outputs": [ + { "internalType": "bytes", "name": "response", "type": "bytes" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "targetContract", + "type": "address" + }, + { "internalType": "bytes", "name": "calldataPayload", "type": "bytes" } + ], + "name": "simulateDelegatecallInternal", + "outputs": [ + { "internalType": "bytes", "name": "response", "type": "bytes" } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { "internalType": "bytes32", "name": "poolId", "type": "bytes32" }, + { + "internalType": "uint256", + "name": "assetInIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "assetOutIndex", + "type": "uint256" + }, + { "internalType": "uint256", "name": "amount", "type": "uint256" }, + { "internalType": "bytes", "name": "userData", "type": "bytes" } + ], + "internalType": "struct IVault.BatchSwapStep[]", + "name": "swaps", + "type": "tuple[]" + }, + { + "internalType": "contract IERC20[]", + "name": "tokens", + "type": "address[]" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "sellTokenIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "buyTokenIndex", + "type": "uint256" + }, + { "internalType": "address", "name": "receiver", "type": "address" }, + { + "internalType": "uint256", + "name": "sellAmount", + "type": "uint256" + }, + { "internalType": "uint256", "name": "buyAmount", "type": "uint256" }, + { "internalType": "uint32", "name": "validTo", "type": "uint32" }, + { "internalType": "bytes32", "name": "appData", "type": "bytes32" }, + { "internalType": "uint256", "name": "feeAmount", "type": "uint256" }, + { "internalType": "uint256", "name": "flags", "type": "uint256" }, + { + "internalType": "uint256", + "name": "executedAmount", + "type": "uint256" + }, + { "internalType": "bytes", "name": "signature", "type": "bytes" } + ], + "internalType": "struct GPv2Trade.Data", + "name": "trade", + "type": "tuple" + } + ], + "name": "swap", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "vault", + "outputs": [ + { "internalType": "contract IVault", "name": "", "type": "address" } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "vaultRelayer", + "outputs": [ + { + "internalType": "contract GPv2VaultRelayer", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { "stateMutability": "payable", "type": "receive" } +] diff --git a/crates/brontes-classifier/classifier-abis/zero-x/ZeroXOtcOrdersFeature.json b/crates/brontes-classifier/classifier-abis/zero-x/ZeroXOtcOrdersFeature.json index c91445d0da..39124b1262 100644 --- a/crates/brontes-classifier/classifier-abis/zero-x/ZeroXOtcOrdersFeature.json +++ b/crates/brontes-classifier/classifier-abis/zero-x/ZeroXOtcOrdersFeature.json @@ -1,1017 +1,1017 @@ [ - { - "inputs": [ - { - "internalType": "address", - "name": "zeroExAddress", - "type": "address" - }, - { - "internalType": "contract IEtherToken", - "name": "weth", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "makerToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "takerToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "makerTokenFilledAmount", - "type": "uint128" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "takerTokenFilledAmount", - "type": "uint128" - } - ], - "name": "OtcOrderFilled", - "type": "event" - }, - { - "inputs": [], - "name": "EIP712_DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FEATURE_NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FEATURE_VERSION", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "makerSignature", - "type": "tuple" - }, - { - "internalType": "uint128", - "name": "takerTokenFillAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "bool", - "name": "useSelfBalance", - "type": "bool" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - } - ], - "name": "_fillOtcOrder", - "outputs": [ - { - "internalType": "uint128", - "name": "takerTokenFilledAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "makerTokenFilledAmount", - "type": "uint128" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "tuple[]", - "name": "orders", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "tuple[]", - "name": "makerSignatures", - "type": "tuple[]" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "tuple[]", - "name": "takerSignatures", - "type": "tuple[]" - }, - { - "internalType": "bool[]", - "name": "unwrapWeth", - "type": "bool[]" - } - ], - "name": "batchFillTakerSignedOtcOrders", - "outputs": [ - { - "internalType": "bool[]", - "name": "successes", - "type": "bool[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "makerSignature", - "type": "tuple" - }, - { - "internalType": "uint128", - "name": "takerTokenFillAmount", - "type": "uint128" - } - ], - "name": "fillOtcOrder", - "outputs": [ - { - "internalType": "uint128", - "name": "takerTokenFilledAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "makerTokenFilledAmount", - "type": "uint128" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "makerSignature", - "type": "tuple" - }, - { - "internalType": "uint128", - "name": "takerTokenFillAmount", - "type": "uint128" - } - ], - "name": "fillOtcOrderForEth", - "outputs": [ - { - "internalType": "uint128", - "name": "takerTokenFilledAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "makerTokenFilledAmount", - "type": "uint128" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "makerSignature", - "type": "tuple" - } - ], - "name": "fillOtcOrderWithEth", - "outputs": [ - { - "internalType": "uint128", - "name": "takerTokenFilledAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "makerTokenFilledAmount", - "type": "uint128" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "makerSignature", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "takerSignature", - "type": "tuple" - } - ], - "name": "fillTakerSignedOtcOrder", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "makerSignature", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum LibSignature.SignatureType", - "name": "signatureType", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "internalType": "struct LibSignature.Signature", - "name": "takerSignature", - "type": "tuple" - } - ], - "name": "fillTakerSignedOtcOrderForEth", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - } - ], - "name": "getOtcOrderHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "contract IERC20Token", - "name": "makerToken", - "type": "address" - }, - { - "internalType": "contract IERC20Token", - "name": "takerToken", - "type": "address" - }, - { - "internalType": "uint128", - "name": "makerAmount", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "takerAmount", - "type": "uint128" - }, - { - "internalType": "address", - "name": "maker", - "type": "address" - }, - { - "internalType": "address", - "name": "taker", - "type": "address" - }, - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint256", - "name": "expiryAndNonce", - "type": "uint256" - } - ], - "internalType": "struct LibNativeOrder.OtcOrder", - "name": "order", - "type": "tuple" - } - ], - "name": "getOtcOrderInfo", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32" - }, - { - "internalType": "enum LibNativeOrder.OrderStatus", - "name": "status", - "type": "uint8" - } - ], - "internalType": "struct LibNativeOrder.OtcOrderInfo", - "name": "orderInfo", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "txOrigin", - "type": "address" - }, - { - "internalType": "uint64", - "name": "nonceBucket", - "type": "uint64" - } - ], - "name": "lastOtcTxOriginNonce", - "outputs": [ - { - "internalType": "uint128", - "name": "lastNonce", - "type": "uint128" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "migrate", - "outputs": [ - { - "internalType": "bytes4", - "name": "success", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ] \ No newline at end of file + { + "inputs": [ + { + "internalType": "address", + "name": "zeroExAddress", + "type": "address" + }, + { + "internalType": "contract IEtherToken", + "name": "weth", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "makerToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "takerToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "makerTokenFilledAmount", + "type": "uint128" + }, + { + "indexed": false, + "internalType": "uint128", + "name": "takerTokenFilledAmount", + "type": "uint128" + } + ], + "name": "OtcOrderFilled", + "type": "event" + }, + { + "inputs": [], + "name": "EIP712_DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FEATURE_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FEATURE_VERSION", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "makerSignature", + "type": "tuple" + }, + { + "internalType": "uint128", + "name": "takerTokenFillAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "bool", + "name": "useSelfBalance", + "type": "bool" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + } + ], + "name": "_fillOtcOrder", + "outputs": [ + { + "internalType": "uint128", + "name": "takerTokenFilledAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "makerTokenFilledAmount", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "tuple[]", + "name": "orders", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "tuple[]", + "name": "makerSignatures", + "type": "tuple[]" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "tuple[]", + "name": "takerSignatures", + "type": "tuple[]" + }, + { + "internalType": "bool[]", + "name": "unwrapWeth", + "type": "bool[]" + } + ], + "name": "batchFillTakerSignedOtcOrders", + "outputs": [ + { + "internalType": "bool[]", + "name": "successes", + "type": "bool[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "makerSignature", + "type": "tuple" + }, + { + "internalType": "uint128", + "name": "takerTokenFillAmount", + "type": "uint128" + } + ], + "name": "fillOtcOrder", + "outputs": [ + { + "internalType": "uint128", + "name": "takerTokenFilledAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "makerTokenFilledAmount", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "makerSignature", + "type": "tuple" + }, + { + "internalType": "uint128", + "name": "takerTokenFillAmount", + "type": "uint128" + } + ], + "name": "fillOtcOrderForEth", + "outputs": [ + { + "internalType": "uint128", + "name": "takerTokenFilledAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "makerTokenFilledAmount", + "type": "uint128" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "makerSignature", + "type": "tuple" + } + ], + "name": "fillOtcOrderWithEth", + "outputs": [ + { + "internalType": "uint128", + "name": "takerTokenFilledAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "makerTokenFilledAmount", + "type": "uint128" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "makerSignature", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "takerSignature", + "type": "tuple" + } + ], + "name": "fillTakerSignedOtcOrder", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "makerSignature", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum LibSignature.SignatureType", + "name": "signatureType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "internalType": "struct LibSignature.Signature", + "name": "takerSignature", + "type": "tuple" + } + ], + "name": "fillTakerSignedOtcOrderForEth", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + } + ], + "name": "getOtcOrderHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "contract IERC20Token", + "name": "makerToken", + "type": "address" + }, + { + "internalType": "contract IERC20Token", + "name": "takerToken", + "type": "address" + }, + { + "internalType": "uint128", + "name": "makerAmount", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "takerAmount", + "type": "uint128" + }, + { + "internalType": "address", + "name": "maker", + "type": "address" + }, + { + "internalType": "address", + "name": "taker", + "type": "address" + }, + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint256", + "name": "expiryAndNonce", + "type": "uint256" + } + ], + "internalType": "struct LibNativeOrder.OtcOrder", + "name": "order", + "type": "tuple" + } + ], + "name": "getOtcOrderInfo", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + }, + { + "internalType": "enum LibNativeOrder.OrderStatus", + "name": "status", + "type": "uint8" + } + ], + "internalType": "struct LibNativeOrder.OtcOrderInfo", + "name": "orderInfo", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "txOrigin", + "type": "address" + }, + { + "internalType": "uint64", + "name": "nonceBucket", + "type": "uint64" + } + ], + "name": "lastOtcTxOriginNonce", + "outputs": [ + { + "internalType": "uint128", + "name": "lastNonce", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "migrate", + "outputs": [ + { + "internalType": "bytes4", + "name": "success", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/crates/brontes-classifier/src/classifiers/aave/mod.rs b/crates/brontes-classifier/src/classifiers/aave/mod.rs index 46fe66fc8f..af6a2a49e2 100644 --- a/crates/brontes-classifier/src/classifiers/aave/mod.rs +++ b/crates/brontes-classifier/src/classifiers/aave/mod.rs @@ -1,7 +1,5 @@ mod v2; pub use v2::*; -/* mod v3; pub use v3::*; -*/ diff --git a/crates/brontes-classifier/src/classifiers/aave/v2.rs b/crates/brontes-classifier/src/classifiers/aave/v2.rs index 1295f0bbe3..73f95c8a6b 100644 --- a/crates/brontes-classifier/src/classifiers/aave/v2.rs +++ b/crates/brontes-classifier/src/classifiers/aave/v2.rs @@ -9,7 +9,7 @@ use malachite::{num::basic::traits::Zero, Rational}; action_impl!( Protocol::AaveV2, - crate::AaveV2::liquidationCallCall, + crate::AaveV2Pool::liquidationCallCall, Liquidation, [], call_data: true, @@ -40,7 +40,7 @@ action_impl!( action_impl!( Protocol::AaveV2, - crate::AaveV2::flashLoanCall, + crate::AaveV2Pool::flashLoanCall, FlashLoan, [], call_data: true, diff --git a/crates/brontes-classifier/src/classifiers/aave/v3.rs b/crates/brontes-classifier/src/classifiers/aave/v3.rs index 5503de507a..f2b57f29b4 100644 --- a/crates/brontes-classifier/src/classifiers/aave/v3.rs +++ b/crates/brontes-classifier/src/classifiers/aave/v3.rs @@ -1,5 +1,3 @@ -/* - use brontes_macros::action_impl; use brontes_types::{ normalized_actions::{NormalizedFlashLoan, NormalizedLiquidation}, @@ -9,9 +7,11 @@ use brontes_types::{ }; use malachite::{num::basic::traits::Zero, Rational}; +use crate::aave_v3_bindings::AaveV3Pool; + action_impl!( - Protocol::AaveV3, - crate::AaveV3::liquidationCallCall, + Protocol::AaveV3Pool, + AaveV3Pool::liquidationCallCall, Liquidation, [LiquidationEvent], call_data: true, @@ -26,7 +26,7 @@ action_impl!( let covered_debt = call_data.debtToCover.to_scaled_rational(debt_info.decimals); return Ok(NormalizedLiquidation { - protocol: Protocol::AaveV3, + protocol: Protocol::AaveV3Pool, trace_index: info.trace_idx, pool: info.from_address, liquidator: info.msg_sender, @@ -42,8 +42,8 @@ action_impl!( ); action_impl!( - Protocol::AaveV3, - crate::AaveV3::flashLoanCall, + Protocol::AaveV3Pool, + AaveV3Pool::flashLoanCall, FlashLoan, [], call_data: true, @@ -60,7 +60,7 @@ action_impl!( }).unzip(); return Ok(NormalizedFlashLoan { - protocol: Protocol::AaveV3, + protocol: Protocol::AaveV3Pool, trace_index: info.trace_idx, from: info.from_address, pool: info.target_address, @@ -81,8 +81,8 @@ action_impl!( ); action_impl!( - Protocol::AaveV3, - crate::AaveV3::flashLoanSimpleCall, + Protocol::AaveV3Pool, + AaveV3Pool::flashLoanSimpleCall, FlashLoan, [], call_data: true, @@ -95,7 +95,7 @@ action_impl!( let amount = call_data.amount.to_scaled_rational(token_info.decimals); return Ok(NormalizedFlashLoan { - protocol: Protocol::AaveV3, + protocol: Protocol::AaveV3Pool, trace_index: info.trace_idx, from: info.from_address, pool: info.target_address, @@ -133,7 +133,7 @@ mod tests { B256::from(hex!("dd951e0fc5dc4c98b8daaccdb750ff3dc9ad24a7f689aad2a088757266ab1d55")); let eq_action = Action::Liquidation(NormalizedLiquidation { - protocol: Protocol::AaveV3, + protocol: Protocol::AaveV3Pool, liquidated_collateral: Rational::from_signeds(165516722, 100000000), covered_debt: Rational::from_signeds(63857746423_i64, 1000000), debtor: Address::from(hex!("e967954b9b48cb1a0079d76466e82c4d52a8f5d3")), @@ -158,6 +158,3 @@ mod tests { .unwrap(); } } - - -*/ diff --git a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs index 3ad2982889..494369c678 100644 --- a/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs +++ b/crates/brontes-classifier/src/classifiers/balancer/balancer_v2.rs @@ -1,4 +1,4 @@ -use alloy_primitives::{Address, FixedBytes}; +use alloy_primitives::{Address, FixedBytes, U256}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_macros::action_impl; use brontes_pricing::Protocol; @@ -6,7 +6,7 @@ use brontes_types::{ db::token_info::TokenInfoWithAddress, normalized_actions::{ NormalizedBurn, NormalizedFlashLoan, NormalizedMint, NormalizedNewPool, - NormalizedPoolConfigUpdate, + NormalizedPoolConfigUpdate, NormalizedSwap, }, structured_trace::CallInfo, ToScaledRational, @@ -16,7 +16,6 @@ use malachite::Rational; use crate::BalancerV2Vault::PoolBalanceChanged; -/* action_impl!( Protocol::BalancerV2, crate::IGeneralPool::onSwapCall, @@ -46,7 +45,7 @@ action_impl!( } ); - +/* action_impl!( Protocol::BalancerV2, crate::IGeneralPool::onSwap_0Call, @@ -104,9 +103,7 @@ action_impl!( }) } ); - */ - fn process_pool_balance_changes( logs: &PoolBalanceChanged, db: &DB, diff --git a/crates/brontes-classifier/src/classifiers/cowswap/mod.rs b/crates/brontes-classifier/src/classifiers/cowswap/mod.rs index 0181b74a85..d25f494736 100644 --- a/crates/brontes-classifier/src/classifiers/cowswap/mod.rs +++ b/crates/brontes-classifier/src/classifiers/cowswap/mod.rs @@ -1,5 +1,3 @@ -/* - use alloy_primitives::{Address, U256}; use brontes_database::libmdbx::{DBWriter, LibmdbxReader}; use brontes_macros::action_impl; @@ -12,8 +10,7 @@ use brontes_types::{ use eyre::Error; use Protocol::Cowswap; - - use crate::CowswapGPv2Settlement::Trade; +use crate::cow_swap_bindings::{CowswapGPv2Settlement, CowswapGPv2Settlement::Trade}; fn create_normalized_swap( trade: &Trade, @@ -44,7 +41,7 @@ fn create_normalized_swap( action_impl!( Protocol::Cowswap, - crate::CowswapGPv2Settlement::swapCall, + CowswapGPv2Settlement::swapCall, Batch, [..Trade], call_data: true, @@ -68,7 +65,7 @@ action_impl!( action_impl!( Protocol::Cowswap, - crate::CowswapGPv2Settlement::settleCall, + CowswapGPv2Settlement::settleCall, Batch, [..Trade*], call_data: true, @@ -162,6 +159,3 @@ mod tests { .unwrap(); } } - - -*/ diff --git a/crates/brontes-classifier/src/classifiers/curve/burns/base/base2_lido.rs b/crates/brontes-classifier/src/classifiers/curve/burns/base/lido2.rs similarity index 100% rename from crates/brontes-classifier/src/classifiers/curve/burns/base/base2_lido.rs rename to crates/brontes-classifier/src/classifiers/curve/burns/base/lido2.rs diff --git a/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs b/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs index 9d3129fb05..ce74f0d113 100644 --- a/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs +++ b/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs @@ -1,15 +1,15 @@ mod base2; pub use base2::*; -// pub(crate) mod base2_lido; -// pub use base2_lido::*; - mod base3; pub use base3::*; mod base4; pub use base4::*; +pub mod lido2; +pub use lido2::CurveBasePool2Remove_liquidity_one_coinCall as CurveBasePool2LidoRemove_liquidity_one_coinCall; + #[cfg(test)] mod tests { diff --git a/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs b/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs index 2bc0526c51..314f570ff4 100644 --- a/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs +++ b/crates/brontes-classifier/src/classifiers/dodo/dodo_v2.rs @@ -1,6 +1,7 @@ +use alloy_primitives::U256; use brontes_macros::action_impl; use brontes_types::{ - normalized_actions::{NormalizedFlashLoan, NormalizedSwap}, + normalized_actions::{NormalizedBurn, NormalizedFlashLoan, NormalizedMint, NormalizedSwap}, structured_trace::CallInfo, Protocol, ToScaledRational, }; @@ -105,10 +106,9 @@ action_impl!( } ); -/* action_impl!( Protocol::Dodo, - crate::DodoDSPPool::buySharesCall, + crate::dodo_dsp_pool_bindings::DodoDSPPool::buySharesCall, Mint, [], return_data: true, @@ -148,7 +148,7 @@ action_impl!( action_impl!( Protocol::Dodo, - crate::DodoDSPPool::sellSharesCall, + crate::dodo_dsp_pool_bindings::DodoDSPPool::sellSharesCall, Burn, [], call_data: true, @@ -186,9 +186,6 @@ action_impl!( } ); - - - #[cfg(test)] mod tests { @@ -260,7 +257,6 @@ mod tests { .unwrap(); } - #[brontes_macros::test] async fn test_dodo_sell_shares() { let classifier_utils = ClassifierTestUtils::new().await; @@ -316,7 +312,6 @@ mod tests { .unwrap(); } - // Tested but couldn't find a transaction that was less than 300 lines of // trace. #[brontes_macros::test] // async fn test_dodo_sell_base() { @@ -377,5 +372,3 @@ mod tests { // .unwrap(); // } } - -*/ diff --git a/crates/brontes-classifier/src/classifiers/mod.rs b/crates/brontes-classifier/src/classifiers/mod.rs index 36907c07c3..94fc7e6215 100644 --- a/crates/brontes-classifier/src/classifiers/mod.rs +++ b/crates/brontes-classifier/src/classifiers/mod.rs @@ -26,13 +26,11 @@ pub use compound::*; pub mod maker; pub use maker::*; -/* pub mod zerox; pub use zerox::*; pub mod cowswap; pub use cowswap::*; -*/ pub mod oneinch; pub use oneinch::*; @@ -103,8 +101,9 @@ action_dispatch!( CurveBasePool4Add_liquidityCall, CurveBasePool2Remove_liquidityCall, CurveBasePool2Remove_liquidity_imbalanceCall, - // CurveBasePool2remove_liquidity_one_coinCall, - //CurveBasePool2remove_liquidity_one_coinCallLido, + CurveBasePool2Remove_liquidity_one_coinCall, + // overloaded so would need to change macro to handle this edge case + //CurveBasePool2LidoRemove_liquidity_one_coinCall, CurveBasePool3Remove_liquidityCall, CurveBasePool3Remove_liquidity_imbalanceCall, CurveBasePool3Remove_liquidity_one_coinCall, @@ -148,15 +147,15 @@ action_dispatch!( MakerPSMSellGemCall, MakerDssFlashFlashLoanCall, AaveV2LiquidationCallCall, - // AaveV3LiquidationCallCall, + AaveV3PoolLiquidationCallCall, AaveV2FlashLoanCall, - // AaveV3FlashLoanCall, - // AaveV3FlashLoanSimpleCall, + AaveV3PoolFlashLoanCall, + AaveV3PoolFlashLoanSimpleCall, BalancerV1SwapExactAmountInCall, BalancerV1SwapExactAmountOutCall, BalancerV1BindCall, - // BalancerV2OnSwap_0Call, - // BalancerV2OnSwap_1Call, + //BalancerV2OnSwap_0Call, + //BalancerV2OnSwap_1Call, BalancerV2FlashLoanCall, BalancerV2JoinPoolCall, BalancerV2ExitPoolCall, @@ -178,36 +177,36 @@ action_dispatch!( ClipperExchangeSellTokenForEthCall, ClipperExchangeTransmitAndSwapCall, ClipperExchangeTransmitAndSellTokenForEthCall, - // CowswapSettleCall, - // CowswapSwapCall, - // ZeroXSellToUniswapCall, - // ZeroXSellEthForTokenToUniswapV3Call, - // ZeroXSellTokenForEthToUniswapV3Call, - // ZeroXSellTokenForTokenToUniswapV3Call, - // ZeroXTransformERC20Call, - // ZeroXSellToPancakeSwapCall, - // ZeroXFillOtcOrderCall, - // ZeroXFillOtcOrderForEthCall, - // ZeroXFillOtcOrderWithEthCall, - // ZeroXFillTakerSignedOtcOrderCall, - // ZeroXFillTakerSignedOtcOrderForEthCall, - // ZeroXBatchFillTakerSignedOtcOrdersCall, - // ZeroXSellToLiquidityProviderCall, - // ZeroXMultiplexBatchSellEthForTokenCall, - // ZeroXMultiplexBatchSellTokenForEthCall, - // ZeroXMultiplexBatchSellTokenForTokenCall, - // ZeroXMultiplexMultiHopSellEthForTokenCall, - // ZeroXMultiplexMultiHopSellTokenForEthCall, - // ZeroXMultiplexMultiHopSellTokenForTokenCall, - // ZeroXFillLimitOrderCall, - // ZeroXFillRfqOrderCall, - // ZeroXFillOrKillLimitOrderCall, - // ZeroXFillOrKillRfqOrderCall, + CowswapSettleCall, + CowswapSwapCall, + ZeroXSellToUniswapCall, + ZeroXSellEthForTokenToUniswapV3Call, + ZeroXSellTokenForEthToUniswapV3Call, + ZeroXSellTokenForTokenToUniswapV3Call, + ZeroXTransformERC20Call, + ZeroXSellToPancakeSwapCall, + ZeroXFillOtcOrderCall, + ZeroXFillOtcOrderForEthCall, + ZeroXFillOtcOrderWithEthCall, + ZeroXFillTakerSignedOtcOrderCall, + ZeroXFillTakerSignedOtcOrderForEthCall, + ZeroXBatchFillTakerSignedOtcOrdersCall, + ZeroXSellToLiquidityProviderCall, + ZeroXMultiplexBatchSellEthForTokenCall, + ZeroXMultiplexBatchSellTokenForEthCall, + ZeroXMultiplexBatchSellTokenForTokenCall, + ZeroXMultiplexMultiHopSellEthForTokenCall, + ZeroXMultiplexMultiHopSellTokenForEthCall, + ZeroXMultiplexMultiHopSellTokenForTokenCall, + ZeroXFillLimitOrderCall, + ZeroXFillRfqOrderCall, + ZeroXFillOrKillLimitOrderCall, + ZeroXFillOrKillRfqOrderCall, DodoCreateDODOVendingMachineCall, DodoCreateDODOStablePoolCall, DodoInitDODOPrivatePoolCall, - // DodoBuySharesCall, - // DodoSellSharesCall, + DodoBuySharesCall, + DodoSellSharesCall, DodoSellBaseCall, DodoSellQuoteCall, DodoFlashLoanCall diff --git a/crates/brontes-classifier/src/classifiers/zerox/mod.rs b/crates/brontes-classifier/src/classifiers/zerox/mod.rs index 941ac84c81..a85045b61e 100644 --- a/crates/brontes-classifier/src/classifiers/zerox/mod.rs +++ b/crates/brontes-classifier/src/classifiers/zerox/mod.rs @@ -1,11 +1,16 @@ +use alloy_primitives::U256; use brontes_macros::action_impl; use brontes_pricing::Protocol; -use brontes_types::{normalized_actions::NormalizedAggregator, structured_trace::CallInfo}; +use brontes_types::{ + normalized_actions::{NormalizedAggregator, NormalizedBatch, NormalizedSwap}, + structured_trace::CallInfo, + ToScaledRational, +}; // Uniswap action_impl!( Protocol::ZeroX, - crate::ZeroXUniswapFeaure::sellToUniswapCall, + crate::ZeroXInterface::sellToUniswapCall, Aggregator, [], |info: CallInfo, _| { @@ -24,7 +29,7 @@ action_impl!( // Uniswap V3 action_impl!( Protocol::ZeroX, - crate::ZeroXUniswapV3Feature::sellEthForTokenToUniswapV3Call, + crate::ZeroXInterface::sellEthForTokenToUniswapV3Call, Aggregator, [], call_data: true, @@ -43,7 +48,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXUniswapV3Feature::sellTokenForEthToUniswapV3Call, + crate::ZeroXInterface::sellTokenForEthToUniswapV3Call, Aggregator, [], call_data: true, @@ -62,7 +67,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXUniswapV3Feature::sellTokenForTokenToUniswapV3Call, + crate::ZeroXInterface::sellTokenForTokenToUniswapV3Call, Aggregator, [], call_data: true, @@ -82,7 +87,7 @@ action_impl!( // Transform action_impl!( Protocol::ZeroX, - crate::ZeroXTransformERC20Feature::transformERC20Call, + crate::ZeroXInterface::transformERC20Call, Aggregator, [], |info: CallInfo, _| { @@ -101,7 +106,7 @@ action_impl!( // PancakeSwap action_impl!( Protocol::ZeroX, - crate::ZeroXPancakeSwapFeature::sellToPancakeSwapCall, + crate::ZeroXInterface::sellToPancakeSwapCall, Aggregator, [], |info: CallInfo, _| { @@ -117,12 +122,10 @@ action_impl!( } ); -/* - // OTC Orders action_impl!( Protocol::ZeroX, - crate::ZeroXOtcOrdersFeature::fillOtcOrderCall, + crate::ZeroXInterface::fillOtcOrderCall, Swap, [OtcOrderFilled], logs: true, @@ -155,7 +158,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXOtcOrdersFeature::fillOtcOrderForEthCall, + crate::ZeroXInterface::fillOtcOrderForEthCall, Swap, [OtcOrderFilled], logs: true, @@ -188,7 +191,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXOtcOrdersFeature::fillOtcOrderWithEthCall, + crate::ZeroXInterface::fillOtcOrderWithEthCall, Swap, [OtcOrderFilled], logs: true, @@ -221,7 +224,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXOtcOrdersFeature::fillTakerSignedOtcOrderCall, + crate::ZeroXInterface::fillTakerSignedOtcOrderCall, Swap, [OtcOrderFilled], logs: true, @@ -254,7 +257,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXOtcOrdersFeature::fillTakerSignedOtcOrderForEthCall, + crate::ZeroXInterface::fillTakerSignedOtcOrderForEthCall, Swap, [OtcOrderFilled], logs: true, @@ -287,7 +290,7 @@ action_impl!( action_impl!( Protocol::ZeroX, - crate::ZeroXOtcOrdersFeature::batchFillTakerSignedOtcOrdersCall, + crate::ZeroXInterface::batchFillTakerSignedOtcOrdersCall, Batch, [..OtcOrderFilled*], logs: true, @@ -331,12 +334,10 @@ action_impl!( } ); -*/ - // Liquidity Provider action_impl!( Protocol::ZeroX, - crate::ZeroXLiquidityProviderFeature::sellToLiquidityProviderCall, + crate::ZeroXInterface::sellToLiquidityProviderCall, Aggregator, [LiquidityProviderSwap], logs: true, @@ -357,7 +358,6 @@ action_impl!( ); -/* // Multiplex action_impl!( Protocol::ZeroX, @@ -600,8 +600,6 @@ action_impl!( } ); -*/ - #[cfg(test)] mod tests { use std::str::FromStr; diff --git a/crates/brontes-classifier/src/lib.rs b/crates/brontes-classifier/src/lib.rs index 1896e27df3..12a080d21e 100644 --- a/crates/brontes-classifier/src/lib.rs +++ b/crates/brontes-classifier/src/lib.rs @@ -37,7 +37,7 @@ sol!(SushiSwapV3, "./classifier-abis/SushiSwapV3.json"); sol!(PancakeSwapV2, "./classifier-abis/PancakeSwapV2.json"); sol!(PancakeSwapV3, "./classifier-abis/PancakeSwapV3.json"); sol!(CurveBase2, "./classifier-abis/CurveBase2.json"); -//sol!(CurveLido2, "./classifier-abis/CurveBase2Lido.json"); +sol!(CurveLido2, "./classifier-abis/CurveBase2Lido.json"); sol!(CurveBase3, "./classifier-abis/CurveBase3.json"); sol!(CurveBase4, "./classifier-abis/CurveBase4.json"); sol!(CurveV1MetapoolImpl, "./classifier-abis/CurveV1MetapoolImpl.json"); @@ -47,8 +47,13 @@ sol!(CurvecrvUSDPlainImpl, "./classifier-abis/CurvecrvUSDPlainImpl.json"); sol!(CurveCryptoSwap, "./classifier-abis/CurveCryptoSwap.json"); sol!(BalancerV1, "./classifier-abis/balancer/BalancerV1Pool.json"); sol!(BalancerV2Vault, "./classifier-abis/balancer/BalancerV2Vault.json"); -sol!(AaveV2, "./classifier-abis/AaveV2Pool.json"); -// sol!(AaveV3, "./classifier-abis/AaveV3Pool.json"); +sol!(AaveV2Pool, "./classifier-abis/AaveV2Pool.json"); + +mod aave_v3_bindings { + use alloy_sol_types::sol; + sol!(AaveV3Pool, "./classifier-abis/AaveV3.json"); +} + sol!(UniswapX, "./classifier-abis/UniswapXExclusiveDutchOrderReactor.json"); sol!(MakerPSM, "./classifier-abis/maker/MakerPSM.json"); sol!(MakerDssFlash, "./classifier-abis/maker/MakerDssFlash.json"); @@ -56,17 +61,18 @@ sol!(CompoundV2CToken, "./classifier-abis/CompoundV2CToken.json"); sol!(OneInchAggregationRouterV5, "./classifier-abis/OneInchAggregationRouterV5.json"); sol!(OneInchFusionSettlement, "./classifier-abis/OneInchFusionSettlement.json"); sol!(ClipperExchange, "./classifier-abis/ClipperExchange.json"); -// sol!(CowswapGPv2Settlement, "./classifier-abis/cowswap/GPv2Settlement.json"); -sol!(ZeroXUniswapFeaure, "./classifier-abis/zero-x/ZeroXUniswapFeature.json"); -sol!(ZeroXUniswapV3Feature, "./classifier-abis/zero-x/ZeroXUniswapV3Feature.json"); -sol!(ZeroXTransformERC20Feature, "./classifier-abis/zero-x/ZeroXTransformERC20Feature.json"); -sol!(ZeroXPancakeSwapFeature, "./classifier-abis/zero-x/ZeroXPancakeSwapFeature.json"); -// sol!(ZeroXOtcOrdersFeature, -// "./classifier-abis/zero-x/ZeroXOtcOrdersFeature.json"); -sol!(ZeroXLiquidityProviderFeature, "./classifier-abis/zero-x/ZeroXLiquidityProviderFeature.json"); -// sol!(ZeroXInterface, "./classifier-abis/zero-x/ZeroXInterface.json"); + +mod cow_swap_bindings { + use alloy_sol_types::sol; + sol!(CowswapGPv2Settlement, "./classifier-abis/cowswap/GPv2Settlement.json"); +} +sol!(ZeroXInterface, "./classifier-abis/zero-x/ZeroXInterface.json"); + sol!(DodoDPPPool, "./classifier-abis/dodo/DPPPool.json"); -// sol!(DodoDSPPool, "./classifier-abis/dodo/DSPPool.json"); +mod dodo_dsp_pool_bindings { + use alloy_sol_types::sol; + sol!(DodoDSPPool, "./classifier-abis/dodo/DSPPool.json"); +} // Discovery sol!(UniswapV2Factory, "./classifier-abis/UniswapV2Factory.json"); diff --git a/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs b/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs index 6ca56101e9..e502fd0e43 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs @@ -8,7 +8,7 @@ use brontes_types::{ use crate::multi_frame_classification::MultiCallFrameClassifier; pub struct AaveV2; -pub struct AaveV3; +pub struct AaveV3Pool; impl MultiCallFrameClassifier for AaveV2 { const KEY: [u8; 2] = [Protocol::AaveV2 as u8, MultiFrameAction::Liquidation as u8]; @@ -24,8 +24,8 @@ impl MultiCallFrameClassifier for AaveV2 { } } -impl MultiCallFrameClassifier for AaveV3 { - const KEY: [u8; 2] = [Protocol::AaveV3 as u8, MultiFrameAction::Liquidation as u8]; +impl MultiCallFrameClassifier for AaveV3Pool { + const KEY: [u8; 2] = [Protocol::AaveV3Pool as u8, MultiFrameAction::Liquidation as u8]; fn create_classifier( request: MultiFrameRequest, diff --git a/crates/brontes-classifier/src/multi_frame_classification/mod.rs b/crates/brontes-classifier/src/multi_frame_classification/mod.rs index 763b8e9153..e53cb47e89 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/mod.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/mod.rs @@ -14,7 +14,7 @@ use batch::{Cowswap, UniswapX, ZeroXBatch}; use brontes_types::normalized_actions::{Action, MultiCallFrameClassification, MultiFrameRequest}; use flash_loan::{BalancerV2, MakerDss}; use itertools::Itertools; -use liquidations::{AaveV2, AaveV3}; +use liquidations::{AaveV2, AaveV3Pool}; use tracing::debug; use self::flash_loan::Dodo; @@ -43,7 +43,7 @@ pub fn parse_multi_frame_requests( Cowswap::KEY => Cowswap::create_classifier(request), BalancerV2::KEY => BalancerV2::create_classifier(request), AaveV2::KEY => AaveV2::create_classifier(request), - AaveV3::KEY => AaveV3::create_classifier(request), + AaveV3Pool::KEY => AaveV3Pool::create_classifier(request), ZeroXAgg::KEY => ZeroXAgg::create_classifier(request), ZeroXBatch::KEY => ZeroXBatch::create_classifier(request), MakerDss::KEY => MakerDss::create_classifier(request), diff --git a/crates/brontes-classifier/src/tree_builder/lib.rs b/crates/brontes-classifier/src/tree_builder/lib.rs index e6acc9884f..6f80ed56e9 100644 --- a/crates/brontes-classifier/src/tree_builder/lib.rs +++ b/crates/brontes-classifier/src/tree_builder/lib.rs @@ -43,7 +43,7 @@ sol!(CurveCryptoSwap, "./classifier-abis/CurveCryptoSwap.json"); sol!(BalancerV1, "./classifier-abis/balancer/BalancerV1Pool.json"); sol!(BalancerV2Vault, "./classifier-abis/balancer/BalancerV2Vault.json"); sol!(AaveV2, "./classifier-abis/AaveV2Pool.json"); -sol!(AaveV3, "./classifier-abis/AaveV3Pool.json"); +sol!(AaveV3Pool, "./classifier-abis/AaveV3PoolPool.json"); sol!(UniswapX, "./classifier-abis/UniswapXExclusiveDutchOrderReactor.json"); sol!(MakerPSM, "./classifier-abis/maker/MakerPSM.json"); sol!(MakerDssFlash, "./classifier-abis/maker/MakerDssFlash.json"); diff --git a/crates/brontes-types/src/protocol.rs b/crates/brontes-types/src/protocol.rs index da8bf0d472..e5d968fab5 100644 --- a/crates/brontes-types/src/protocol.rs +++ b/crates/brontes-types/src/protocol.rs @@ -71,7 +71,7 @@ utils!( SushiSwapV3, PancakeSwapV3, AaveV2, - AaveV3, + AaveV3Pool, BalancerV1, BalancerV2, BalancerV1CRP, @@ -116,7 +116,7 @@ impl Protocol { Protocol::SushiSwapV3 => ("SushiSwap", "V3"), Protocol::PancakeSwapV3 => ("PancakeSwap", "V3"), Protocol::AaveV2 => ("Aave", "V2"), - Protocol::AaveV3 => ("Aave", "V3"), + Protocol::AaveV3Pool => ("Aave", "V3"), Protocol::BalancerV1 => ("Balancer", "V1"), Protocol::BalancerV2 => ("Balancer", "V2"), Protocol::BalancerV1CRP => ("Balancer", "V1SmartPool"), @@ -200,7 +200,7 @@ impl fmt::Display for Protocol { Protocol::SushiSwapV3 => "SushiSwap V3", Protocol::PancakeSwapV3 => "PancakeSwap V3", Protocol::AaveV2 => "Aave V2", - Protocol::AaveV3 => "Aave V3", + Protocol::AaveV3Pool => "Aave V3", Protocol::BalancerV1 => "Balancer V1", Protocol::BalancerV2 => "Balancer V2", Protocol::BalancerV1CRP => "Balancer V1", From ffdd7e25bf61c340f5c2bec5418e4113e0776fc9 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 17:23:55 -0400 Subject: [PATCH 79/93] fix tests --- .../src/mev_inspectors/cex_dex/quotes/cex_dex.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs index d6dc755b36..763aa407c8 100644 --- a/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs +++ b/crates/brontes-inspect/src/mev_inspectors/cex_dex/quotes/cex_dex.rs @@ -571,7 +571,7 @@ mod tests { let config = InspectorTxRunConfig::new(Inspectors::CexDex) .with_mev_tx_hashes(vec![tx]) .with_expected_profit_usd(1931.53) - .with_gas_paid_usd(78754.85); + .with_gas_paid_usd(78939.82); inspector_util.run_inspector(config, None).await.unwrap(); } @@ -584,7 +584,7 @@ mod tests { let config = InspectorTxRunConfig::new(Inspectors::CexDex) .with_mev_tx_hashes(vec![tx]) - .with_expected_profit_usd(8941.5750) + .with_expected_profit_usd(6417.889754388477) .with_gas_paid_usd(6267.29); inspector_util.run_inspector(config, None).await.unwrap(); From f9ec9b0e6e9af0e0085befafb0fd48d0bc782df6 Mon Sep 17 00:00:00 2001 From: jnoorchashm37 Date: Thu, 10 Apr 2025 17:27:24 -0400 Subject: [PATCH 80/93] ready for ci --- .github/workflows/ci.yml | 159 +++++++++++++++++++-------------------- 1 file changed, 79 insertions(+), 80 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e5a821ba52..817a4f6c91 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,95 +2,94 @@ on: push: branches: - main - # - reth-patch - # pull_request: - # branches: [main] + pull_request: + branches: [main] name: CI jobs: - # clippy: - # name: "clippy" - # if: github.event.pull_request.draft == false - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v4 + clippy: + name: "clippy" + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - # - uses: dtolnay/rust-toolchain@stable - # with: - # toolchain: 1.85.0 - # components: clippy,rustfmt - - # - uses: Swatinem/rust-cache@v2 - # with: - # cache-on-failure: true - # key: "clippy-stable" - - # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - # shell: bash - # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - # shell: bash - - # - name: "clippy all" - # run: cargo clippy --workspace --lib --examples --tests --benches --all-features - # env: - # RUSTFLAGS: -D warnings - - # build: - # name: "build" - # if: github.event.pull_request.draft == false - # runs-on: ubuntu-latest - # timeout-minutes: 30 - # steps: - # - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: 1.85.0 + components: clippy,rustfmt + + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + key: "clippy-stable" + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + - name: "clippy all" + run: cargo clippy --workspace --lib --examples --tests --benches --all-features + env: + RUSTFLAGS: -D warnings + + build: + name: "build" + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 - # - uses: dtolnay/rust-toolchain@stable - # with: - # toolchain: 1.85.0 - # components: clippy - - # - uses: Swatinem/rust-cache@v2 - # with: - # key: "buildfmt-stable" - # cache-on-failure: true - - # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - # shell: bash - # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - # shell: bash - - # - name: "build stable" - # run: cargo build --workspace --all-features - # env: - # RUSTFLAGS: -D warnings - - # fmt: - # name: fmt - # runs-on: ubuntu-latest - # steps: - # - name: Check-Out - # uses: actions/checkout@v4 - - # - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" - # shell: bash - # - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" - # shell: bash - - # - name: Install Nightly - # run: | - # rustup toolchain install nightly - # rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt - - # - name: cargo build - # run: cargo build --workspace --all-features - - # - name: cargo +nightly fmt - # run: cargo +nightly fmt --all -- --check + - uses: dtolnay/rust-toolchain@stable + with: + toolchain: 1.85.0 + components: clippy + + - uses: Swatinem/rust-cache@v2 + with: + key: "buildfmt-stable" + cache-on-failure: true + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + - name: "build stable" + run: cargo build --workspace --all-features + env: + RUSTFLAGS: -D warnings + + fmt: + name: fmt + runs-on: ubuntu-latest + steps: + - name: Check-Out + uses: actions/checkout@v4 + + - run: git config --global url."https://x-access-token:${{ secrets.CI }}@github.com/".insteadOf "https://github.com/" + shell: bash + - run: git config --global url."https://${{ secrets.CI }}@github.com/".insteadOf "git@github.com:" + shell: bash + + - name: Install Nightly + run: | + rustup toolchain install nightly + rustup component add --toolchain nightly-x86_64-unknown-linux-gnu rustfmt + + - name: cargo build + run: cargo build --workspace --all-features + + - name: cargo +nightly fmt + run: cargo +nightly fmt --all -- --check test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - # needs: [clippy, build, fmt] + needs: [clippy, build, fmt] strategy: fail-fast: false matrix: @@ -138,7 +137,7 @@ jobs: it-test: runs-on: ubuntu-latest if: always() && !cancelled() && !contains(needs.*.result, 'failure') && github.event.pull_request.draft == false - # needs: [clippy, build, fmt] + needs: [clippy, build, fmt] strategy: fail-fast: false matrix: From 3eb277a5f35d645e94ec455ad03ab7b21bfa0b4c Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 17:31:05 -0400 Subject: [PATCH 81/93] fix docs ci + fmt --- .github/workflows/docs.yml | 2 +- .github/workflows/telegram_bot_new_issue.yaml | 20 +++++++++---------- .../src/classifiers/curve/burns/base/mod.rs | 1 - 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 11f661dac7..aef8139174 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -89,7 +89,7 @@ jobs: . - name: Upload artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: github-pages path: ${{ runner.temp }}/artifact.tar diff --git a/.github/workflows/telegram_bot_new_issue.yaml b/.github/workflows/telegram_bot_new_issue.yaml index fc273eaf7d..5d8dfddf1b 100644 --- a/.github/workflows/telegram_bot_new_issue.yaml +++ b/.github/workflows/telegram_bot_new_issue.yaml @@ -11,15 +11,15 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: Checkout code + uses: actions/checkout@v4 - - name: Download Rust Binary - run: | - gh release download -R SorellaLabs/github-utils -p Linux.tgz - tar -xzf Linux.tgz - env: - GH_TOKEN: ${{ secrets.CI }} + - name: Download Rust Binary + run: | + gh release download -R SorellaLabs/github-utils -p Linux.tgz + tar -xzf Linux.tgz + env: + GH_TOKEN: ${{ secrets.CI }} - - name: Run Rust Binary - run: ./Linux/github-actions telegram-bot -t ${{ secrets.TELEGRAM_BOT_TOKEN }} -g ${{ secrets.G_API_KEY }} --repo ${{ vars.REPO }} -s ${{ vars.PROJECT }} -n --number ${{ github.event.issue.number }} + - name: Run Rust Binary + run: ./Linux/github-actions telegram-bot -t ${{ secrets.TELEGRAM_BOT_TOKEN }} -g ${{ secrets.G_API_KEY }} --repo ${{ vars.REPO }} -s ${{ vars.PROJECT }} -n --number ${{ github.event.issue.number }} diff --git a/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs b/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs index ce74f0d113..b0b9f29f49 100644 --- a/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs +++ b/crates/brontes-classifier/src/classifiers/curve/burns/base/mod.rs @@ -8,7 +8,6 @@ mod base4; pub use base4::*; pub mod lido2; -pub use lido2::CurveBasePool2Remove_liquidity_one_coinCall as CurveBasePool2LidoRemove_liquidity_one_coinCall; #[cfg(test)] mod tests { From 1afc9c324e406a4aecbfe9c29435fb5b7a3a1828 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 17:32:10 -0400 Subject: [PATCH 82/93] updated lock : --- Cargo.lock | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 3f1d0451ec..5dd9e099e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12819,9 +12819,15 @@ checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" +<<<<<<< Updated upstream version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +======= +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +>>>>>>> Stashed changes [[package]] name = "universal-hash" From 47e68220cac005af4d70247c8976458b7c672813 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 17:36:46 -0400 Subject: [PATCH 83/93] lol --- Cargo.lock | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5dd9e099e8..3f1d0451ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12819,15 +12819,9 @@ checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" -<<<<<<< Updated upstream version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -======= -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" ->>>>>>> Stashed changes [[package]] name = "universal-hash" From 3520570ac539b14cbc952729df22dbb8012d42c5 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 17:52:48 -0400 Subject: [PATCH 84/93] clippy + all features build fix --- crates/brontes-core/src/decoding/dyn_decode.rs | 6 ++++-- .../brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs | 8 +++++--- crates/brontes-database/libmdbx-rs/src/cursor.rs | 2 +- crates/brontes-pricing/src/lib.rs | 1 + crates/brontes-pricing/src/types.rs | 1 + 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/crates/brontes-core/src/decoding/dyn_decode.rs b/crates/brontes-core/src/decoding/dyn_decode.rs index 90aa5bb65f..8419c3e4e8 100644 --- a/crates/brontes-core/src/decoding/dyn_decode.rs +++ b/crates/brontes-core/src/decoding/dyn_decode.rs @@ -20,7 +20,7 @@ pub fn decode_input_with_abi( let resolved_params: Vec = function .inputs .iter() - .filter_map(|param| param.resolve().ok()) + .filter_map(|param| DynSolType::parse(¶m.ty).ok()) .collect(); let mut input_names = function @@ -33,7 +33,7 @@ pub fn decode_input_with_abi( let resolved_output_params: Vec = function .outputs .iter() - .filter_map(|param| param.resolve().ok()) + .filter_map(|param| DynSolType::parse(¶m.ty).ok()) .collect(); let mut output_names = function @@ -151,6 +151,7 @@ fn decode_params( value: string_val, }) } + DynSolValue::CustomStruct { .. } => todo!("Handle CustomStruct decoding"), } } @@ -171,6 +172,7 @@ fn value_parse(sol_value: &[DynSolValue], tuple: bool) -> String { DynSolValue::Tuple(t) => value_parse(t, true), DynSolValue::Array(a) => value_parse(a, false), DynSolValue::FixedArray(a) => value_parse(a, false), + DynSolValue::CustomStruct { .. } => todo!("Handle CustomStruct decoding"), }) .fold(ty, |a, b| a + "," + b.as_str()); diff --git a/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs b/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs index 821cc58171..85b798f925 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/db_utils/rclone_wrapper.rs @@ -34,7 +34,9 @@ impl RCloneWrapper { self.get_all_tarballs() .await? .into_iter() - .filter_map(|files| u64::from_str(files.split('-').last()?.split('.').next()?).ok()) + .filter_map(|files| { + u64::from_str(files.split('-').next_back()?.split('.').next()?).ok() + }) .max() .ok_or_else(|| eyre!("no files found on r2")) } @@ -133,7 +135,7 @@ impl RCloneWrapper { ) -> eyre::Result<()> { let mut directory_name = directory .components() - .last() + .next_back() .unwrap() .as_os_str() .to_str() @@ -231,7 +233,7 @@ impl RCloneWrapper { let directory = pathed .components() - .last() + .next_back() .unwrap() .as_os_str() .to_str()? diff --git a/crates/brontes-database/libmdbx-rs/src/cursor.rs b/crates/brontes-database/libmdbx-rs/src/cursor.rs index 3321732c3e..97c535d3a5 100644 --- a/crates/brontes-database/libmdbx-rs/src/cursor.rs +++ b/crates/brontes-database/libmdbx-rs/src/cursor.rs @@ -104,7 +104,7 @@ where assert_ne!(data_ptr, data_val.iov_base); let key_out = { // MDBX wrote in new key - if key_ptr != key_val.iov_base { + if !std::ptr::eq(key_ptr, key_val.iov_base) { Some(Key::decode_val::(txn, key_val)?) } else { None diff --git a/crates/brontes-pricing/src/lib.rs b/crates/brontes-pricing/src/lib.rs index bddcb4d11d..ed681cfc04 100644 --- a/crates/brontes-pricing/src/lib.rs +++ b/crates/brontes-pricing/src/lib.rs @@ -1320,6 +1320,7 @@ impl Stream for BrontesBatchPricer { } } +#[allow(clippy::large_enum_variant)] enum PollResult { State(PoolUpdate), DiscoveredPool, diff --git a/crates/brontes-pricing/src/types.rs b/crates/brontes-pricing/src/types.rs index 37beb97e8d..9b2bf6fa1c 100644 --- a/crates/brontes-pricing/src/types.rs +++ b/crates/brontes-pricing/src/types.rs @@ -151,6 +151,7 @@ impl PoolVariants { } #[derive(Debug, Clone)] +#[allow(clippy::large_enum_variant)] pub enum DexPriceMsg { /// marker for only updating loaded state and not generating prices DisablePricingFor(u64), From 7c7ea1a9ce1345069cc77313f9d0e3d28de6842d Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 18:04:30 -0400 Subject: [PATCH 85/93] fix docs build --- crates/reth-tracing-ext/src/reth_tracer/arena.rs | 3 --- crates/reth-tracing-ext/src/reth_tracer/config.rs | 5 +---- crates/reth-tracing-ext/src/reth_tracer/types.rs | 4 +--- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/crates/reth-tracing-ext/src/reth_tracer/arena.rs b/crates/reth-tracing-ext/src/reth_tracer/arena.rs index b50fb4ec5c..1c6c9ab71d 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/arena.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/arena.rs @@ -1,9 +1,6 @@ use super::types::{CallTrace, CallTraceNode, TraceMemberOrder}; /// An arena of recorded traces. -/// -/// This type will be populated via the -/// [TracingInspector](super::TracingInspector). #[derive(Clone, Debug, PartialEq, Eq)] pub struct CallTraceArena { /// The arena of recorded trace nodes diff --git a/crates/reth-tracing-ext/src/reth_tracer/config.rs b/crates/reth-tracing-ext/src/reth_tracer/config.rs index fabc013782..478cd4e259 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/config.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/config.rs @@ -49,8 +49,6 @@ impl OpcodeFilter { } } -/// Gives guidance to the [TracingInspector](crate::tracing::TracingInspector). -/// /// Use [TracingInspectorConfig::default_parity] or /// [TracingInspectorConfig::default_geth] to get the default configs for /// specific styles of traces. @@ -213,8 +211,7 @@ impl TracingInspectorConfig { /// [PrestateTracer](alloy_rpc_types_trace::geth::PreStateFrame). /// /// Note: This currently returns [Self::none] because the prestate tracer - /// result currently relies on the execution result entirely, see - /// [GethTraceBuilder::geth_prestate_traces](crate::tracing::geth::GethTraceBuilder::geth_prestate_traces) + /// result currently relies on the execution result entirely #[inline] pub const fn from_geth_prestate_config(_config: &PreStateConfig) -> Self { Self::none() diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index 2657d32d31..c6b41aed6d 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -241,9 +241,7 @@ pub struct CallTraceNode { impl CallTraceNode { /// Returns the call context's execution address - /// - /// See `Inspector::call` impl of - /// [TracingInspector](crate::tracing::TracingInspector) + pub const fn execution_address(&self) -> Address { if self.trace.kind.is_delegate() { self.trace.caller From 4adb8d69f3b57651e3412b3a44b79ba0ba0fe7cf Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 18:29:20 -0400 Subject: [PATCH 86/93] fix clippy --- crates/reth-tracing-ext/src/reth_tracer/types.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/reth-tracing-ext/src/reth_tracer/types.rs b/crates/reth-tracing-ext/src/reth_tracer/types.rs index c6b41aed6d..d3b1a88820 100644 --- a/crates/reth-tracing-ext/src/reth_tracer/types.rs +++ b/crates/reth-tracing-ext/src/reth_tracer/types.rs @@ -241,7 +241,6 @@ pub struct CallTraceNode { impl CallTraceNode { /// Returns the call context's execution address - pub const fn execution_address(&self) -> Address { if self.trace.kind.is_delegate() { self.trace.caller From 7778ab284c70c53a155c8465fa895cb139600ec9 Mon Sep 17 00:00:00 2001 From: Will Smith Date: Thu, 10 Apr 2025 19:19:58 -0400 Subject: [PATCH 87/93] log pipeline shutdown --- crates/bin/src/executors/shared/state_collector.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/bin/src/executors/shared/state_collector.rs b/crates/bin/src/executors/shared/state_collector.rs index 766ca66cf2..31f32ef056 100644 --- a/crates/bin/src/executors/shared/state_collector.rs +++ b/crates/bin/src/executors/shared/state_collector.rs @@ -165,6 +165,7 @@ impl Str && self.metadata_fetcher.is_finished() && self.collection_future.is_none() { + tracing::info!("marked as finished and nothing else queued in pipeline"); return Poll::Ready(None); } From 5975310e7ff2736a72daba7c59b017e3b047dd87 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 19:52:24 -0400 Subject: [PATCH 88/93] added db unopened err --- .github/workflows/docs.yml | 2 +- crates/reth-tracing-ext/src/lib.rs | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index aef8139174..11be5cf021 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -63,7 +63,7 @@ jobs: mdbook build - name: Build docs - run: cargo doc --no-deps --all-features + run: cargo +nightly doc --no-deps --all-features env: RUSTDOCFLAGS: --cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index e5ebbee8b1..ad95835dfb 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -120,7 +120,16 @@ impl TracingClient { } pub fn new(db_path: &Path, max_tasks: u64, task_executor: BrontesTaskExecutor) -> Self { - let db = Arc::new(init_db(db_path).unwrap()); + let db = match init_db(db_path) { + Ok(db_env) => Arc::new(db_env), + Err(e) => { + tracing::error!(path = ?db_path, error = %e, "Failed to initialize Reth database"); + panic!( + "Critical error: Could not open Reth database at path {:?}. Error: {}", + db_path, e + ); + } + }; let mut static_files = db_path.to_path_buf(); static_files.pop(); static_files.push("static_files"); From c0bab2d646c960358151c7e41b1c38b3d384577a Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 19:55:32 -0400 Subject: [PATCH 89/93] added err --- crates/reth-tracing-ext/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index ad95835dfb..6b654fef00 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -123,6 +123,7 @@ impl TracingClient { let db = match init_db(db_path) { Ok(db_env) => Arc::new(db_env), Err(e) => { + // Log the specific error before panicking tracing::error!(path = ?db_path, error = %e, "Failed to initialize Reth database"); panic!( "Critical error: Could not open Reth database at path {:?}. Error: {}", From bad6cd9d6dbae1bd3b148f44f2985468345509d4 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Thu, 10 Apr 2025 19:57:25 -0400 Subject: [PATCH 90/93] added err --- crates/reth-tracing-ext/src/lib.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/crates/reth-tracing-ext/src/lib.rs b/crates/reth-tracing-ext/src/lib.rs index 6b654fef00..88f6079aca 100644 --- a/crates/reth-tracing-ext/src/lib.rs +++ b/crates/reth-tracing-ext/src/lib.rs @@ -70,8 +70,20 @@ impl TracingClient { static_files_path: PathBuf, ) -> Self { let chain = MAINNET.clone(); - let static_file_provider = - StaticFileProvider::read_only(static_files_path.clone(), true).unwrap(); + let static_file_provider = match StaticFileProvider::read_only( + static_files_path.clone(), + true, + ) { + Ok(provider) => provider, + Err(e) => { + tracing::error!(path = ?static_files_path, error = %e, "Failed to initialize Reth static file provider"); + panic!( + "Critical error: Could not open Reth static file provider at path {:?}. \ + Error: {}", + static_files_path, e + ); + } + }; let provider_factory: ProviderFactory< NodeTypesWithDBAdapter>, From c12f826f6084b1f534c7833a6511fd0456d97957 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Fri, 11 Apr 2025 15:49:31 -0400 Subject: [PATCH 91/93] fixed protocol parse error --- .../{AaveV2Pool.json => AaveV2.json} | 0 .../src/classifiers/aave/v2.rs | 4 +- .../src/classifiers/aave/v3.rs | 22 +++---- .../brontes-classifier/src/classifiers/mod.rs | 6 +- crates/brontes-classifier/src/lib.rs | 4 +- .../liquidations/aave.rs | 6 +- .../src/multi_frame_classification/mod.rs | 4 +- .../src/tree_builder/lib.rs | 4 +- .../brontes-db/src/libmdbx/initialize.rs | 66 +++++++++++-------- crates/brontes-types/src/protocol.rs | 6 +- 10 files changed, 67 insertions(+), 55 deletions(-) rename crates/brontes-classifier/classifier-abis/{AaveV2Pool.json => AaveV2.json} (100%) diff --git a/crates/brontes-classifier/classifier-abis/AaveV2Pool.json b/crates/brontes-classifier/classifier-abis/AaveV2.json similarity index 100% rename from crates/brontes-classifier/classifier-abis/AaveV2Pool.json rename to crates/brontes-classifier/classifier-abis/AaveV2.json diff --git a/crates/brontes-classifier/src/classifiers/aave/v2.rs b/crates/brontes-classifier/src/classifiers/aave/v2.rs index 73f95c8a6b..1295f0bbe3 100644 --- a/crates/brontes-classifier/src/classifiers/aave/v2.rs +++ b/crates/brontes-classifier/src/classifiers/aave/v2.rs @@ -9,7 +9,7 @@ use malachite::{num::basic::traits::Zero, Rational}; action_impl!( Protocol::AaveV2, - crate::AaveV2Pool::liquidationCallCall, + crate::AaveV2::liquidationCallCall, Liquidation, [], call_data: true, @@ -40,7 +40,7 @@ action_impl!( action_impl!( Protocol::AaveV2, - crate::AaveV2Pool::flashLoanCall, + crate::AaveV2::flashLoanCall, FlashLoan, [], call_data: true, diff --git a/crates/brontes-classifier/src/classifiers/aave/v3.rs b/crates/brontes-classifier/src/classifiers/aave/v3.rs index f2b57f29b4..7f2062bc71 100644 --- a/crates/brontes-classifier/src/classifiers/aave/v3.rs +++ b/crates/brontes-classifier/src/classifiers/aave/v3.rs @@ -7,11 +7,11 @@ use brontes_types::{ }; use malachite::{num::basic::traits::Zero, Rational}; -use crate::aave_v3_bindings::AaveV3Pool; +use crate::aave_v3_bindings::AaveV3; action_impl!( - Protocol::AaveV3Pool, - AaveV3Pool::liquidationCallCall, + Protocol::AaveV3, + AaveV3::liquidationCallCall, Liquidation, [LiquidationEvent], call_data: true, @@ -26,7 +26,7 @@ action_impl!( let covered_debt = call_data.debtToCover.to_scaled_rational(debt_info.decimals); return Ok(NormalizedLiquidation { - protocol: Protocol::AaveV3Pool, + protocol: Protocol::AaveV3, trace_index: info.trace_idx, pool: info.from_address, liquidator: info.msg_sender, @@ -42,8 +42,8 @@ action_impl!( ); action_impl!( - Protocol::AaveV3Pool, - AaveV3Pool::flashLoanCall, + Protocol::AaveV3, + AaveV3::flashLoanCall, FlashLoan, [], call_data: true, @@ -60,7 +60,7 @@ action_impl!( }).unzip(); return Ok(NormalizedFlashLoan { - protocol: Protocol::AaveV3Pool, + protocol: Protocol::AaveV3, trace_index: info.trace_idx, from: info.from_address, pool: info.target_address, @@ -81,8 +81,8 @@ action_impl!( ); action_impl!( - Protocol::AaveV3Pool, - AaveV3Pool::flashLoanSimpleCall, + Protocol::AaveV3, + AaveV3::flashLoanSimpleCall, FlashLoan, [], call_data: true, @@ -95,7 +95,7 @@ action_impl!( let amount = call_data.amount.to_scaled_rational(token_info.decimals); return Ok(NormalizedFlashLoan { - protocol: Protocol::AaveV3Pool, + protocol: Protocol::AaveV3, trace_index: info.trace_idx, from: info.from_address, pool: info.target_address, @@ -133,7 +133,7 @@ mod tests { B256::from(hex!("dd951e0fc5dc4c98b8daaccdb750ff3dc9ad24a7f689aad2a088757266ab1d55")); let eq_action = Action::Liquidation(NormalizedLiquidation { - protocol: Protocol::AaveV3Pool, + protocol: Protocol::AaveV3, liquidated_collateral: Rational::from_signeds(165516722, 100000000), covered_debt: Rational::from_signeds(63857746423_i64, 1000000), debtor: Address::from(hex!("e967954b9b48cb1a0079d76466e82c4d52a8f5d3")), diff --git a/crates/brontes-classifier/src/classifiers/mod.rs b/crates/brontes-classifier/src/classifiers/mod.rs index 94fc7e6215..8915494328 100644 --- a/crates/brontes-classifier/src/classifiers/mod.rs +++ b/crates/brontes-classifier/src/classifiers/mod.rs @@ -147,10 +147,10 @@ action_dispatch!( MakerPSMSellGemCall, MakerDssFlashFlashLoanCall, AaveV2LiquidationCallCall, - AaveV3PoolLiquidationCallCall, + AaveV3LiquidationCallCall, AaveV2FlashLoanCall, - AaveV3PoolFlashLoanCall, - AaveV3PoolFlashLoanSimpleCall, + AaveV3FlashLoanCall, + AaveV3FlashLoanSimpleCall, BalancerV1SwapExactAmountInCall, BalancerV1SwapExactAmountOutCall, BalancerV1BindCall, diff --git a/crates/brontes-classifier/src/lib.rs b/crates/brontes-classifier/src/lib.rs index 12a080d21e..f249cc64dc 100644 --- a/crates/brontes-classifier/src/lib.rs +++ b/crates/brontes-classifier/src/lib.rs @@ -47,11 +47,11 @@ sol!(CurvecrvUSDPlainImpl, "./classifier-abis/CurvecrvUSDPlainImpl.json"); sol!(CurveCryptoSwap, "./classifier-abis/CurveCryptoSwap.json"); sol!(BalancerV1, "./classifier-abis/balancer/BalancerV1Pool.json"); sol!(BalancerV2Vault, "./classifier-abis/balancer/BalancerV2Vault.json"); -sol!(AaveV2Pool, "./classifier-abis/AaveV2Pool.json"); +sol!(AaveV2, "./classifier-abis/AaveV2.json"); mod aave_v3_bindings { use alloy_sol_types::sol; - sol!(AaveV3Pool, "./classifier-abis/AaveV3.json"); + sol!(AaveV3, "./classifier-abis/AaveV3.json"); } sol!(UniswapX, "./classifier-abis/UniswapXExclusiveDutchOrderReactor.json"); diff --git a/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs b/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs index e502fd0e43..6ca56101e9 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/liquidations/aave.rs @@ -8,7 +8,7 @@ use brontes_types::{ use crate::multi_frame_classification::MultiCallFrameClassifier; pub struct AaveV2; -pub struct AaveV3Pool; +pub struct AaveV3; impl MultiCallFrameClassifier for AaveV2 { const KEY: [u8; 2] = [Protocol::AaveV2 as u8, MultiFrameAction::Liquidation as u8]; @@ -24,8 +24,8 @@ impl MultiCallFrameClassifier for AaveV2 { } } -impl MultiCallFrameClassifier for AaveV3Pool { - const KEY: [u8; 2] = [Protocol::AaveV3Pool as u8, MultiFrameAction::Liquidation as u8]; +impl MultiCallFrameClassifier for AaveV3 { + const KEY: [u8; 2] = [Protocol::AaveV3 as u8, MultiFrameAction::Liquidation as u8]; fn create_classifier( request: MultiFrameRequest, diff --git a/crates/brontes-classifier/src/multi_frame_classification/mod.rs b/crates/brontes-classifier/src/multi_frame_classification/mod.rs index e53cb47e89..763b8e9153 100644 --- a/crates/brontes-classifier/src/multi_frame_classification/mod.rs +++ b/crates/brontes-classifier/src/multi_frame_classification/mod.rs @@ -14,7 +14,7 @@ use batch::{Cowswap, UniswapX, ZeroXBatch}; use brontes_types::normalized_actions::{Action, MultiCallFrameClassification, MultiFrameRequest}; use flash_loan::{BalancerV2, MakerDss}; use itertools::Itertools; -use liquidations::{AaveV2, AaveV3Pool}; +use liquidations::{AaveV2, AaveV3}; use tracing::debug; use self::flash_loan::Dodo; @@ -43,7 +43,7 @@ pub fn parse_multi_frame_requests( Cowswap::KEY => Cowswap::create_classifier(request), BalancerV2::KEY => BalancerV2::create_classifier(request), AaveV2::KEY => AaveV2::create_classifier(request), - AaveV3Pool::KEY => AaveV3Pool::create_classifier(request), + AaveV3::KEY => AaveV3::create_classifier(request), ZeroXAgg::KEY => ZeroXAgg::create_classifier(request), ZeroXBatch::KEY => ZeroXBatch::create_classifier(request), MakerDss::KEY => MakerDss::create_classifier(request), diff --git a/crates/brontes-classifier/src/tree_builder/lib.rs b/crates/brontes-classifier/src/tree_builder/lib.rs index 6f80ed56e9..f06a8032b9 100644 --- a/crates/brontes-classifier/src/tree_builder/lib.rs +++ b/crates/brontes-classifier/src/tree_builder/lib.rs @@ -42,8 +42,8 @@ sol!(CurvecrvUSDPlainImpl, "./classifier-abis/CurvecrvUSDPlainImpl.json"); sol!(CurveCryptoSwap, "./classifier-abis/CurveCryptoSwap.json"); sol!(BalancerV1, "./classifier-abis/balancer/BalancerV1Pool.json"); sol!(BalancerV2Vault, "./classifier-abis/balancer/BalancerV2Vault.json"); -sol!(AaveV2, "./classifier-abis/AaveV2Pool.json"); -sol!(AaveV3Pool, "./classifier-abis/AaveV3PoolPool.json"); +sol!(AaveV2, "./classifier-abis/AaveV2.json"); +sol!(AaveV3, "./classifier-abis/AaveV3.json"); sol!(UniswapX, "./classifier-abis/UniswapXExclusiveDutchOrderReactor.json"); sol!(MakerPSM, "./classifier-abis/maker/MakerPSM.json"); sol!(MakerDssFlash, "./classifier-abis/maker/MakerDssFlash.json"); diff --git a/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs b/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs index ae244cc8fc..e0f131f7a3 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs @@ -361,34 +361,46 @@ impl LibmdbxInitializer { }; for (protocol, inner) in config { - let protocol: Protocol = protocol.parse().unwrap(); - for (address, table) in inner.as_table().unwrap() { - let token_addr: Address = address.parse().unwrap(); - let init_block = table.get("init_block").unwrap().as_integer().unwrap() as u64; - - let table: Vec = table - .get("token_info") - .map(|i| i.clone().try_into()) - .unwrap_or(Ok(vec![])) - .unwrap_or(vec![]); - - for t_info in &table { - self.libmdbx - .write_token_info(t_info.address, t_info.decimals, t_info.symbol.clone()) - .await - .unwrap(); + let protocol_str = protocol; + match protocol_str.parse::() { + Ok(protocol_enum) => { + for (address, table) in inner.as_table().unwrap() { + let token_addr: Address = address.parse().unwrap(); + let init_block = + table.get("init_block").unwrap().as_integer().unwrap() as u64; + + let table: Vec = table + .get("token_info") + .map(|i| i.clone().try_into()) + .unwrap_or(Ok(vec![])) + .unwrap_or(vec![]); + + for t_info in &table { + self.libmdbx + .write_token_info( + t_info.address, + t_info.decimals, + t_info.symbol.clone(), + ) + .await + .unwrap(); + } + + let token_addrs = if table.len() < 2 { + [Address::default(), Address::default()] + } else { + [table[0].address, table[1].address] + }; + + self.libmdbx + .insert_pool(init_block, token_addr, &token_addrs, None, protocol_enum) + .await + .unwrap(); + } + } + Err(e) => { + tracing::error!(target: "brontes::init", protocol = %protocol_str, "Invalid protocol name found in classifier_config.toml: {}", e); } - - let token_addrs = if table.len() < 2 { - [Address::default(), Address::default()] - } else { - [table[0].address, table[1].address] - }; - - self.libmdbx - .insert_pool(init_block, token_addr, &token_addrs, None, protocol) - .await - .unwrap(); } } } diff --git a/crates/brontes-types/src/protocol.rs b/crates/brontes-types/src/protocol.rs index e5d968fab5..da8bf0d472 100644 --- a/crates/brontes-types/src/protocol.rs +++ b/crates/brontes-types/src/protocol.rs @@ -71,7 +71,7 @@ utils!( SushiSwapV3, PancakeSwapV3, AaveV2, - AaveV3Pool, + AaveV3, BalancerV1, BalancerV2, BalancerV1CRP, @@ -116,7 +116,7 @@ impl Protocol { Protocol::SushiSwapV3 => ("SushiSwap", "V3"), Protocol::PancakeSwapV3 => ("PancakeSwap", "V3"), Protocol::AaveV2 => ("Aave", "V2"), - Protocol::AaveV3Pool => ("Aave", "V3"), + Protocol::AaveV3 => ("Aave", "V3"), Protocol::BalancerV1 => ("Balancer", "V1"), Protocol::BalancerV2 => ("Balancer", "V2"), Protocol::BalancerV1CRP => ("Balancer", "V1SmartPool"), @@ -200,7 +200,7 @@ impl fmt::Display for Protocol { Protocol::SushiSwapV3 => "SushiSwap V3", Protocol::PancakeSwapV3 => "PancakeSwap V3", Protocol::AaveV2 => "Aave V2", - Protocol::AaveV3Pool => "Aave V3", + Protocol::AaveV3 => "Aave V3", Protocol::BalancerV1 => "Balancer V1", Protocol::BalancerV2 => "Balancer V2", Protocol::BalancerV1CRP => "Balancer V1", From 0fec643d4f1f18c0750889f9bbfcd753c7157da3 Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Fri, 11 Apr 2025 16:25:39 -0400 Subject: [PATCH 92/93] fixing seg fault --- .../brontes-db/src/libmdbx/initialize.rs | 66 ++++++++----------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs b/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs index e0f131f7a3..ae244cc8fc 100644 --- a/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs +++ b/crates/brontes-database/brontes-db/src/libmdbx/initialize.rs @@ -361,46 +361,34 @@ impl LibmdbxInitializer { }; for (protocol, inner) in config { - let protocol_str = protocol; - match protocol_str.parse::() { - Ok(protocol_enum) => { - for (address, table) in inner.as_table().unwrap() { - let token_addr: Address = address.parse().unwrap(); - let init_block = - table.get("init_block").unwrap().as_integer().unwrap() as u64; - - let table: Vec = table - .get("token_info") - .map(|i| i.clone().try_into()) - .unwrap_or(Ok(vec![])) - .unwrap_or(vec![]); - - for t_info in &table { - self.libmdbx - .write_token_info( - t_info.address, - t_info.decimals, - t_info.symbol.clone(), - ) - .await - .unwrap(); - } - - let token_addrs = if table.len() < 2 { - [Address::default(), Address::default()] - } else { - [table[0].address, table[1].address] - }; - - self.libmdbx - .insert_pool(init_block, token_addr, &token_addrs, None, protocol_enum) - .await - .unwrap(); - } - } - Err(e) => { - tracing::error!(target: "brontes::init", protocol = %protocol_str, "Invalid protocol name found in classifier_config.toml: {}", e); + let protocol: Protocol = protocol.parse().unwrap(); + for (address, table) in inner.as_table().unwrap() { + let token_addr: Address = address.parse().unwrap(); + let init_block = table.get("init_block").unwrap().as_integer().unwrap() as u64; + + let table: Vec = table + .get("token_info") + .map(|i| i.clone().try_into()) + .unwrap_or(Ok(vec![])) + .unwrap_or(vec![]); + + for t_info in &table { + self.libmdbx + .write_token_info(t_info.address, t_info.decimals, t_info.symbol.clone()) + .await + .unwrap(); } + + let token_addrs = if table.len() < 2 { + [Address::default(), Address::default()] + } else { + [table[0].address, table[1].address] + }; + + self.libmdbx + .insert_pool(init_block, token_addr, &token_addrs, None, protocol) + .await + .unwrap(); } } } From a799b39952d4d2cd1a233eea38edf791adf41f9b Mon Sep 17 00:00:00 2001 From: 0xvanbeethoven Date: Fri, 11 Apr 2025 18:37:59 -0400 Subject: [PATCH 93/93] testing --- config/classifier_config.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/classifier_config.toml b/config/classifier_config.toml index 3fecc8093c..2ffef23f6f 100644 --- a/config/classifier_config.toml +++ b/config/classifier_config.toml @@ -13,10 +13,10 @@ # symbol = "WBTC" # However, if token info is not relevant for this pool, you don't have to specify it. -[AaveV3."0x5faab9e1adbddad0a08734be8a52185fd6558e14"] -init_block = 18979624 -[AaveV2."0xb9184a4480830bf89b55b73631e287df9079f466"] -init_block = 18129018 +#[AaveV3."0x5faab9e1adbddad0a08734be8a52185fd6558e14"] +#init_block = 18979624 +#[AaveV2."0xb9184a4480830bf89b55b73631e287df9079f466"] +#init_block = 18129018 [MakerPSM."0x89B78CfA322F6C5dE0aBcEecab66Aee45393cC5A"]