diff --git a/Cargo.lock b/Cargo.lock index d193694..6c6a4a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,60 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "ahash" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" -dependencies = [ - "cfg-if", - "getrandom 0.3.4", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.4" @@ -65,30 +11,6 @@ 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - [[package]] name = "allocator-api2" version = "0.2.21" @@ -102,10 +24,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6068f356948cd84b5ad9ac30c50478e433847f14a50714d2b68f15d052724049" dependencies = [ "alloy-primitives", - "alloy-rlp", "num_enum", - "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -120,7 +40,6 @@ dependencies = [ "alloy-serde", "alloy-trie", "alloy-tx-macros", - "arbitrary", "auto_impl", "c-kzg", "derive_more", @@ -128,7 +47,7 @@ dependencies = [ "k256", "once_cell", "rand 0.8.5", - "secp256k1 0.30.0", + "secp256k1", "serde", "serde_json", "serde_with", @@ -146,25 +65,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde", - "arbitrary", - "serde", -] - -[[package]] -name = "alloy-dyn-abi" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", - "derive_more", - "itoa", "serde", - "serde_json", - "winnow", ] [[package]] @@ -175,9 +76,7 @@ checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "crc", - "rand 0.8.5", "serde", "thiserror 2.0.17", ] @@ -190,9 +89,7 @@ checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "borsh", - "rand 0.8.5", "serde", ] @@ -204,12 +101,8 @@ checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "borsh", - "k256", - "rand 0.8.5", "serde", - "serde_with", "thiserror 2.0.17", ] @@ -225,89 +118,16 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "alloy-serde", - "arbitrary", "auto_impl", "c-kzg", "derive_more", "either", - "ethereum_ssz", - "ethereum_ssz_derive", "serde", "serde_with", - "sha2 0.10.9", - "thiserror 2.0.17", -] - -[[package]] -name = "alloy-evm" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28de0dd1bbb0634ef7c3715e8e60176b77b82f8b6b15b2e35fe64cf6640f6550" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-sol-types", - "auto_impl", - "derive_more", - "op-alloy-consensus 0.18.14", - "op-revm 8.1.0", - "revm 27.1.0", - "thiserror 2.0.17", -] - -[[package]] -name = "alloy-evm" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428b58c17ab5f9f71765dc5f116acb6580f599ce243b8ce391de3ba859670c61" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-hardforks 0.4.4", - "alloy-op-hardforks 0.4.4", - "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-sol-types", - "auto_impl", - "derive_more", - "op-alloy-consensus 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", - "op-revm 12.0.0", - "revm 31.0.0", + "sha2", "thiserror 2.0.17", ] -[[package]] -name = "alloy-genesis" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c25d5acb35706e683df1ea333c862bdb6b7c5548836607cd5bb56e501cca0b4f" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-serde", - "alloy-trie", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-hardforks" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3165210652f71dfc094b051602bafd691f506c54050a174b1cba18fb5ef706a3" -dependencies = [ - "alloy-chains", - "alloy-eip2124", - "alloy-primitives", - "auto_impl", - "dyn-clone", -] - [[package]] name = "alloy-hardforks" version = "0.4.4" @@ -319,7 +139,6 @@ dependencies = [ "alloy-primitives", "auto_impl", "dyn-clone", - "serde", ] [[package]] @@ -388,64 +207,6 @@ dependencies = [ "serde", ] -[[package]] -name = "alloy-op-evm" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0afe768962308a08b42fddef8a4296324f140b5a8dd0d4360038229885ce9434" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-op-hardforks 0.2.13", - "alloy-primitives", - "auto_impl", - "op-alloy-consensus 0.18.14", - "op-revm 8.1.0", - "revm 27.1.0", -] - -[[package]] -name = "alloy-op-evm" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa49899e2b0e59a5325e2042a6c5bd4c17e1255fce1e66a9312816f52e886f1" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-op-hardforks 0.4.4", - "alloy-primitives", - "auto_impl", - "op-alloy-consensus 0.22.0", - "op-revm 12.0.0", - "revm 31.0.0", - "thiserror 2.0.17", -] - -[[package]] -name = "alloy-op-hardforks" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3417f4187eaf7f7fb0d7556f0197bca26f0b23c4bb3aca0c9d566dc1c5d727a2" -dependencies = [ - "alloy-chains", - "alloy-hardforks 0.2.13", - "auto_impl", -] - -[[package]] -name = "alloy-op-hardforks" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ac97adaba4c26e17192d81f49186ac20c1e844e35a00e169c8d3d58bc84e6b" -dependencies = [ - "alloy-chains", - "alloy-hardforks 0.4.4", - "alloy-primitives", - "auto_impl", -] - [[package]] name = "alloy-primitives" version = "1.4.1" @@ -453,13 +214,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", - "arbitrary", "bytes", "cfg-if", "const-hex", "derive_more", "foldhash 0.2.0", - "getrandom 0.3.4", "hashbrown 0.16.0", "indexmap 2.12.0", "itoa", @@ -467,10 +226,9 @@ dependencies = [ "keccak-asm", "paste", "proptest", - "proptest-derive 0.6.0", "rand 0.9.2", "ruint", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "sha3", "tiny-keccak", @@ -489,7 +247,6 @@ dependencies = [ "alloy-network", "alloy-network-primitives", "alloy-primitives", - "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-rpc-types-txpool", @@ -497,16 +254,14 @@ dependencies = [ "alloy-sol-types", "alloy-transport", "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", "async-stream", "async-trait", "auto_impl", - "dashmap 6.1.0", + "dashmap", "either", "futures", "futures-utils-wasm", - "lru 0.13.0", + "lru", "parking_lot", "pin-project", "reqwest", @@ -519,28 +274,6 @@ dependencies = [ "wasmtimer", ] -[[package]] -name = "alloy-pubsub" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810766eeed6b10ffa11815682b3f37afc5019809e3b470b23555297d5770ce63" -dependencies = [ - "alloy-json-rpc", - "alloy-primitives", - "alloy-transport", - "auto_impl", - "bimap", - "futures", - "parking_lot", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "wasmtimer", -] - [[package]] name = "alloy-rlp" version = "0.3.12" @@ -571,11 +304,8 @@ checksum = "45f802228273056528dfd6cc8845cc91a7c7e0c6fc1a66d19e8673743dacdc7e" dependencies = [ "alloy-json-rpc", "alloy-primitives", - "alloy-pubsub", "alloy-transport", "alloy-transport-http", - "alloy-transport-ipc", - "alloy-transport-ws", "futures", "pin-project", "reqwest", @@ -583,7 +313,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tracing", "url", "wasmtimer", @@ -596,37 +326,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ff3df608dcabd6bdd197827ff2b8faaa6cefe0c462f7dc5e74108666a01f56" dependencies = [ "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", "alloy-rpc-types-txpool", "alloy-serde", "serde", ] -[[package]] -name = "alloy-rpc-types-admin" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e11a40c917c704888aa5aa6ffa563395123b732868d2e072ec7dd46c3d4672" -dependencies = [ - "alloy-genesis", - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-rpc-types-anvil" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac2bc988d7455e02dfb53460e1caa61f932b3f8452e12424e68ba8dcf60bba90" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", -] - [[package]] name = "alloy-rpc-types-any" version = "1.1.0" @@ -638,38 +342,6 @@ dependencies = [ "alloy-serde", ] -[[package]] -name = "alloy-rpc-types-beacon" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab94e446a003dcef86843eea60d05a6cec360eb8e1829e4cf388ef94d799b5cf" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "derive_more", - "ethereum_ssz", - "ethereum_ssz_derive", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.17", - "tree_hash", - "tree_hash_derive", -] - -[[package]] -name = "alloy-rpc-types-debug" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "977698b458738369ba5ca645d2cdb4d51ba07a81db37306ff85322853161ea3a" -dependencies = [ - "alloy-primitives", - "derive_more", - "serde", - "serde_with", -] - [[package]] name = "alloy-rpc-types-engine" version = "1.1.0" @@ -680,14 +352,8 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-serde", "derive_more", - "ethereum_ssz", - "ethereum_ssz_derive", - "jsonwebtoken", - "rand 0.8.5", - "serde", - "strum 0.27.2", + "strum", ] [[package]] @@ -704,7 +370,6 @@ dependencies = [ "alloy-rlp", "alloy-serde", "alloy-sol-types", - "arbitrary", "itertools 0.14.0", "serde", "serde_json", @@ -712,35 +377,6 @@ dependencies = [ "thiserror 2.0.17", ] -[[package]] -name = "alloy-rpc-types-mev" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c5d8f6f2c3b68af83a32d5c7fa1353d9b2e30441a3f0b8c3c5657c603b7238c" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-rpc-types-trace" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0c800e2ce80829fca1491b3f9063c29092850dc6cf19249d5f678f0ce71bb0" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "serde", - "serde_json", - "thiserror 2.0.17", -] - [[package]] name = "alloy-rpc-types-txpool" version = "1.1.0" @@ -760,7 +396,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "751d1887f7d202514a82c5b3caf28ee8bd4a2ad9549e4f498b6f0bff99b52add" dependencies = [ "alloy-primitives", - "arbitrary", "serde", "serde_json", ] @@ -886,7 +521,7 @@ dependencies = [ "serde_json", "thiserror 2.0.17", "tokio", - "tower 0.5.2", + "tower", "tracing", "url", "wasmtimer", @@ -902,64 +537,22 @@ dependencies = [ "alloy-transport", "reqwest", "serde_json", - "tower 0.5.2", + "tower", "tracing", "url", ] [[package]] -name = "alloy-transport-ipc" -version = "1.1.0" +name = "alloy-trie" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea89c214c7ddd2bcad100da929d6b642bbfed85788caf3b1be473abacd3111f9" -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 = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571aadf0afce0d515a28b2c6352662a39cb9f48b4eeff9a5c34557d6ea126730" -dependencies = [ - "alloy-pubsub", - "alloy-transport", - "futures", - "http", - "rustls", - "serde_json", - "tokio", - "tokio-tungstenite", - "tracing", - "ws_stream_wasm", -] - -[[package]] -name = "alloy-trie" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ "alloy-primitives", "alloy-rlp", - "arbitrary", "arrayvec", - "derive_arbitrary", "derive_more", "nybbles", - "proptest", - "proptest-derive 0.5.1", "serde", "smallvec", "tracing", @@ -971,7 +564,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd7ce8ed34106acd6e21942022b6a15be6454c2c3ead4d76811d3bdcd63cf771" dependencies = [ - "darling 0.21.3", + "darling", "proc-macro2", "quote", "syn 2.0.108", @@ -1042,74 +635,6 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" -[[package]] -name = "aquamarine" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f50776554130342de4836ba542aa85a4ddb361690d7e8df13774d7284c3d5c2" -dependencies = [ - "include_dir", - "itertools 0.10.5", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - -[[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.5", - "itertools 0.13.0", - "num-bigint", - "num-integer", - "num-traits", - "zeroize", -] - [[package]] name = "ark-ff" version = "0.3.0" @@ -1236,50 +761,6 @@ dependencies = [ "syn 2.0.108", ] -[[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.5", -] - -[[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" @@ -1307,24 +788,12 @@ 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.108", -] - [[package]] name = "ark-std" version = "0.3.0" @@ -1355,12 +824,6 @@ dependencies = [ "rand 0.8.5", ] -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - [[package]] name = "arrayvec" version = "0.7.6" @@ -1370,36 +833,6 @@ dependencies = [ "serde", ] -[[package]] -name = "asn1_der" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" - -[[package]] -name = "async-compression" -version = "0.4.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" -dependencies = [ - "compression-codecs", - "compression-core", - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "async-lock" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" -dependencies = [ - "event-listener", - "event-listener-strategy", - "pin-project-lite", -] - [[package]] name = "async-stream" version = "0.3.6" @@ -1433,42 +866,12 @@ dependencies = [ "syn 2.0.108", ] -[[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.1", -] - -[[package]] -name = "atoi" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" -dependencies = [ - "num-traits", -] - [[package]] name = "atomic-waker" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "aurora-engine-modexp" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" -dependencies = [ - "hex", - "num", -] - [[package]] name = "auto_impl" version = "1.3.0" @@ -1486,114 +889,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "aws-lc-rs" -version = "1.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" -dependencies = [ - "aws-lc-sys", - "zeroize", -] - -[[package]] -name = "aws-lc-sys" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" -dependencies = [ - "bindgen 0.69.5", - "cc", - "cmake", - "dunce", - "fs_extra", -] - -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower 0.5.2", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", -] - -[[package]] -name = "az" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" - -[[package]] -name = "backon" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cffb0e931875b666fc4fcb20fee52e9bbd1ef836fd9e9e04ec21555f9f85f7ef" -dependencies = [ - "fastrand", - "tokio", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - [[package]] name = "base16ct" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base256emoji" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" -dependencies = [ - "const-str", - "match-lookup", -] - [[package]] name = "base64" version = "0.21.7" @@ -1619,97 +920,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" [[package]] -name = "bimap" -version = "0.6.3" +name = "bit-set" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] [[package]] -name = "bincode" -version = "1.3.3" +name = "bit-vec" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] -name = "bindgen" -version = "0.69.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.108", - "which", -] - -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.108", -] - -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.108", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" - -[[package]] -name = "bitcoin-io" -version = "0.1.3" +name = "bitcoin-io" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" @@ -1723,20 +950,11 @@ dependencies = [ "hex-conservative", ] -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" -dependencies = [ - "serde_core", -] [[package]] name = "bitvec" @@ -1746,20 +964,10 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", - "serde", "tap", "wyz", ] -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -1769,15 +977,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - [[package]] name = "blst" version = "0.3.16" @@ -1790,197 +989,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "boa_ast" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc119a5ad34c3f459062a96907f53358989b173d104258891bb74f95d93747e8" -dependencies = [ - "bitflags 2.10.0", - "boa_interner", - "boa_macros", - "boa_string", - "indexmap 2.12.0", - "num-bigint", - "rustc-hash 2.1.1", -] - -[[package]] -name = "boa_engine" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e637ec52ea66d76b0ca86180c259d6c7bb6e6a6e14b2f36b85099306d8b00cc3" -dependencies = [ - "aligned-vec", - "arrayvec", - "bitflags 2.10.0", - "boa_ast", - "boa_gc", - "boa_interner", - "boa_macros", - "boa_parser", - "boa_string", - "bytemuck", - "cfg-if", - "cow-utils", - "dashmap 6.1.0", - "dynify", - "fast-float2", - "float16", - "futures-channel", - "futures-concurrency", - "futures-lite", - "hashbrown 0.16.0", - "icu_normalizer", - "indexmap 2.12.0", - "intrusive-collections", - "itertools 0.14.0", - "num-bigint", - "num-integer", - "num-traits", - "num_enum", - "paste", - "portable-atomic", - "rand 0.9.2", - "regress", - "rustc-hash 2.1.1", - "ryu-js", - "serde", - "serde_json", - "small_btree", - "static_assertions", - "tag_ptr", - "tap", - "thin-vec", - "thiserror 2.0.17", - "time", - "xsum", -] - -[[package]] -name = "boa_gc" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1179f690cbfcbe5364cceee5f1cb577265bb6f07b0be6f210aabe270adcf9da" -dependencies = [ - "boa_macros", - "boa_string", - "hashbrown 0.16.0", - "thin-vec", -] - -[[package]] -name = "boa_interner" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9626505d33dc63d349662437297df1d3afd9d5fc4a2b3ad34e5e1ce879a78848" -dependencies = [ - "boa_gc", - "boa_macros", - "hashbrown 0.16.0", - "indexmap 2.12.0", - "once_cell", - "phf 0.13.1", - "rustc-hash 2.1.1", - "static_assertions", -] - -[[package]] -name = "boa_macros" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f36418a46544b152632c141b0a0b7a453cd69ca150caeef83aee9e2f4b48b7d" -dependencies = [ - "cfg-if", - "cow-utils", - "proc-macro2", - "quote", - "syn 2.0.108", - "synstructure", -] - -[[package]] -name = "boa_parser" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f99bf5b684f0de946378fcfe5f38c3a0fbd51cbf83a0f39ff773a0e218541f" -dependencies = [ - "bitflags 2.10.0", - "boa_ast", - "boa_interner", - "boa_macros", - "fast-float2", - "icu_properties", - "num-bigint", - "num-traits", - "regress", - "rustc-hash 2.1.1", -] - -[[package]] -name = "boa_string" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ce9d7aa5563a2e14eab111e2ae1a06a69a812f6c0c3d843196c9d03fbef440" -dependencies = [ - "fast-float2", - "itoa", - "paste", - "rustc-hash 2.1.1", - "ryu-js", - "static_assertions", -] - -[[package]] -name = "bollard" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ccca1260af6a459d75994ad5acc1651bcabcbdbc41467cc9786519ab854c30" -dependencies = [ - "base64 0.22.1", - "bollard-stubs", - "bytes", - "futures-core", - "futures-util", - "hex", - "home", - "http", - "http-body-util", - "hyper", - "hyper-named-pipe", - "hyper-rustls", - "hyper-util", - "hyperlocal", - "log", - "pin-project-lite", - "rustls", - "rustls-native-certs", - "rustls-pemfile", - "rustls-pki-types", - "serde", - "serde_derive", - "serde_json", - "serde_repr", - "serde_urlencoded", - "thiserror 2.0.17", - "tokio", - "tokio-util", - "tower-service", - "url", - "winapi", -] - -[[package]] -name = "bollard-stubs" -version = "1.47.1-rc.27.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f179cfbddb6e77a5472703d4b30436bff32929c0aa8a9008ecf23d1d3cdd0da" -dependencies = [ - "serde", - "serde_repr", - "serde_with", -] - [[package]] name = "borsh" version = "1.5.7" @@ -2004,43 +1012,13 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "boyer-moore-magiclen" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95e6233f2d926b5b123caf9d58e3885885255567fbe7776a7fdcae2a4d7241c4" -dependencies = [ - "debug-helper", -] - -[[package]] -name = "brotli" -version = "8.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - [[package]] name = "bs58" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2 0.10.9", + "sha2", "tinyvec", ] @@ -2056,32 +1034,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" -[[package]] -name = "bytecount" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" - -[[package]] -name = "bytemuck" -version = "1.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - [[package]] name = "byteorder" version = "1.5.0" @@ -2103,7 +1055,6 @@ version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ - "arbitrary", "blst", "cc", "glob", @@ -2132,158 +1083,58 @@ dependencies = [ ] [[package]] -name = "camino" -version = "1.2.1" +name = "cc" +version = "1.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" dependencies = [ - "serde_core", + "shlex", ] [[package]] -name = "cargo-platform" -version = "0.1.9" +name = "cfg-if" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] -name = "cargo_metadata" -version = "0.14.2" +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.27", - "serde", - "serde_json", -] +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] -name = "cargo_metadata" -version = "0.19.2" +name = "chrono" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.27", + "iana-time-zone", + "num-traits", "serde", - "serde_json", - "thiserror 2.0.17", + "windows-link", ] [[package]] -name = "cassowary" -version = "0.3.0" +name = "clap" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" +checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" +dependencies = [ + "clap_builder", + "clap_derive", +] [[package]] -name = "castaway" -version = "0.2.4" +name = "clap_builder" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" +checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" dependencies = [ - "rustversion", -] - -[[package]] -name = "cc" -version = "1.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" - -[[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.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-link 0.2.1", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.51" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", + "anstream", + "anstyle", + "clap_lex", + "strsim", ] [[package]] @@ -2304,15 +1155,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" -[[package]] -name = "cmake" -version = "0.1.54" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" -dependencies = [ - "cc", -] - [[package]] name = "coins-bip32" version = "0.12.0" @@ -2325,7 +1167,7 @@ dependencies = [ "hmac", "k256", "serde", - "sha2 0.10.9", + "sha2", "thiserror 1.0.69", ] @@ -2341,7 +1183,7 @@ dependencies = [ "once_cell", "pbkdf2", "rand 0.8.5", - "sha2 0.10.9", + "sha2", "thiserror 1.0.69", ] @@ -2359,7 +1201,7 @@ dependencies = [ "generic-array", "ripemd", "serde", - "sha2 0.10.9", + "sha2", "sha3", "thiserror 1.0.69", ] @@ -2370,79 +1212,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" -[[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.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" -dependencies = [ - "crossterm 0.29.0", - "unicode-segmentation", - "unicode-width 0.2.0", -] - -[[package]] -name = "compact_str" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" -dependencies = [ - "castaway", - "cfg-if", - "itoa", - "rustversion", - "ryu", - "static_assertions", -] - -[[package]] -name = "compression-codecs" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8a506ec4b81c460798f572caead636d57d3d7e940f998160f52bd254bf2d23" -dependencies = [ - "brotli", - "compression-core", - "flate2", - "memchr", - "zstd", - "zstd-safe", -] - -[[package]] -name = "compression-core" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" - -[[package]] -name = "concat-kdf" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d72c1252426a83be2092dd5884a5f6e3b8e7180f6891b6263d2c21b92ec8816" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "const-hex" version = "1.17.0" @@ -2461,12 +1230,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "const-str" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" - [[package]] name = "const_format" version = "0.2.35" @@ -2487,25 +1250,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "convert_case" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "cordyceps" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" -dependencies = [ - "loom", - "tracing", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -2516,37 +1260,12 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cow-utils" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "417bef24afe1460300965a25ff4a24b8b45ad011948302ec221e8a0a81eb2c79" - [[package]] name = "cpufeatures" version = "0.2.17" @@ -2571,21 +1290,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" -[[package]] -name = "crc32fast" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" -dependencies = [ - "cfg-if", -] - -[[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.15" @@ -2595,79 +1299,12 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" -[[package]] -name = "crossterm" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" -dependencies = [ - "bitflags 2.10.0", - "crossterm_winapi", - "mio", - "parking_lot", - "rustix 0.38.44", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" -dependencies = [ - "bitflags 2.10.0", - "crossterm_winapi", - "document-features", - "parking_lot", - "rustix 1.1.2", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] - [[package]] name = "crunchy" version = "0.2.4" @@ -2693,130 +1330,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core 0.6.4", "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "rustc_version 0.4.1", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", -] - [[package]] name = "darling" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", + "darling_core", + "darling_macro", ] [[package]] name = "darling_core" -version = "0.20.11" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", + "serde", "strsim", "syn 2.0.108", ] [[package]] -name = "darling_core" +name = "darling_macro" version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "serde", - "strsim", - "syn 2.0.108", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core 0.20.11", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core 0.21.3", + "darling_core", "quote", "syn 2.0.108", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - [[package]] name = "dashmap" version = "6.1.0" @@ -2831,49 +1383,6 @@ dependencies = [ "parking_lot_core", ] -[[package]] -name = "data-encoding" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" - -[[package]] -name = "data-encoding-macro" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" -dependencies = [ - "data-encoding", - "syn 2.0.108", -] - -[[package]] -name = "debug-helper" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" - -[[package]] -name = "delay_map" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88e365f083a5cb5972d50ce8b1b2c9f125dc5ec0f50c0248cfb568ae59efcf0b" -dependencies = [ - "futures", - "tokio", - "tokio-util", -] - [[package]] name = "der" version = "0.7.10" @@ -2881,7 +1390,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", - "pem-rfc7468", "zeroize", ] @@ -2906,59 +1414,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive-where" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -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 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[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.108", -] - [[package]] name = "derive_more" version = "2.0.1" @@ -2974,25 +1429,12 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case", "proc-macro2", "quote", "syn 2.0.108", "unicode-xid", ] -[[package]] -name = "diatomic-waker" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" - -[[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" @@ -3008,87 +1450,12 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", ] -[[package]] -name = "dirs" -version = "6.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.5.2", - "windows-sys 0.61.2", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users 0.4.6", - "winapi", -] - -[[package]] -name = "discv5" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f170f4f6ed0e1df52bf43b403899f0081917ecf1500bfe312505cc3b515a8899" -dependencies = [ - "aes", - "aes-gcm", - "alloy-rlp", - "arrayvec", - "ctr", - "delay_map", - "enr", - "fnv", - "futures", - "hashlink 0.9.1", - "hex", - "hkdf", - "lazy_static", - "libp2p-identity", - "lru 0.12.5", - "more-asserts", - "multiaddr", - "parking_lot", - "rand 0.8.5", - "smallvec", - "socket2 0.5.10", - "tokio", - "tracing", - "uint 0.10.0", - "zeroize", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -3100,32 +1467,6 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "docker_credential" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d89dfcba45b4afad7450a99b39e751590463e45c04728cf555d36bb66940de8" -dependencies = [ - "base64 0.21.7", - "serde", - "serde_json", -] - -[[package]] -name = "doctest-file" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" - -[[package]] -name = "document-features" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" -dependencies = [ - "litrs", -] - [[package]] name = "dotenvy" version = "0.15.7" @@ -3144,26 +1485,6 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" -[[package]] -name = "dynify" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81acb15628a3e22358bf73de5e7e62360b8a777dbcb5fc9ac7dfa9ae73723747" -dependencies = [ - "dynify-macros", -] - -[[package]] -name = "dynify-macros" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec431cd708430d5029356535259c5d645d60edd3d39c54e5eea9782d46caa7d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - [[package]] name = "ecdsa" version = "0.16.9" @@ -3179,31 +1500,6 @@ dependencies = [ "spki", ] -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core 0.6.4", - "serde", - "sha2 0.10.9", - "subtle", - "zeroize", -] - [[package]] name = "educe" version = "0.6.0" @@ -3245,44 +1541,6 @@ dependencies = [ "zeroize", ] -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "851bd664a3d3a3c175cff92b2f0df02df3c541b4895d0ae307611827aae46152" -dependencies = [ - "alloy-rlp", - "base64 0.22.1", - "bytes", - "ed25519-dalek", - "hex", - "k256", - "log", - "rand 0.8.5", - "secp256k1 0.30.0", - "serde", - "sha3", - "zeroize", -] - -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn 2.0.108", -] - [[package]] name = "enum-ordinalize" version = "4.3.2" @@ -3303,26 +1561,6 @@ dependencies = [ "syn 2.0.108", ] -[[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.108", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -3340,128 +1578,20 @@ dependencies = [ ] [[package]] -name = "error-chain" -version = "0.12.4" +name = "fastrand" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" -dependencies = [ - "version_check", -] +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] -name = "etcetera" -version = "0.8.0" +name = "fastrlp" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ - "cfg-if", - "home", - "windows-sys 0.48.0", -] - -[[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.9", -] - -[[package]] -name = "ethereum_serde_utils" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" -dependencies = [ - "alloy-primitives", - "hex", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "ethereum_ssz" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" -dependencies = [ - "alloy-primitives", - "ethereum_serde_utils", - "itertools 0.13.0", - "serde", - "serde_derive", - "smallvec", - "typenum", -] - -[[package]] -name = "ethereum_ssz_derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "event-listener" -version = "5.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" -dependencies = [ - "event-listener", - "pin-project-lite", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fast-float2" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eb564c5c7423d25c886fb561d1e4ee69f72354d16918afa32c08811f6b6a55" - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", + "arrayvec", + "auto_impl", + "bytes", ] [[package]] @@ -3475,16 +1605,6 @@ dependencies = [ "bytes", ] -[[package]] -name = "fdlimit" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" -dependencies = [ - "libc", - "thiserror 1.0.69", -] - [[package]] name = "ff" version = "0.13.1" @@ -3495,24 +1615,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "filetime" -version = "0.2.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" -dependencies = [ - "cfg-if", - "libc", - "libredox", - "windows-sys 0.60.2", -] - [[package]] name = "fixed-hash" version = "0.8.0" @@ -3525,103 +1627,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - -[[package]] -name = "flashblocks-archiver" -version = "0.1.0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-hardforks 0.4.4", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-client", - "alloy-rpc-types", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-trie", - "anyhow", - "brotli", - "chrono", - "clap", - "futures-util", - "metrics", - "metrics-derive", - "op-alloy-consensus 0.22.0", - "op-alloy-network", - "op-alloy-rpc-jsonrpsee", - "op-alloy-rpc-types 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", - "reth", - "reth-cli-util", - "reth-e2e-test-utils", - "reth-evm 1.9.0", - "reth-optimism-chainspec 1.9.0", - "reth-optimism-cli", - "reth-optimism-evm 1.9.0", - "reth-optimism-node", - "reth-optimism-primitives 1.9.0", - "reth-optimism-rpc", - "reth-primitives", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-rpc-convert", - "reth-rpc-eth-api", - "reth-tracing", - "rollup-boost", - "rustls", - "serde", - "serde_json", - "sqlx", - "tempfile", - "testcontainers", - "testcontainers-modules", - "tokio", - "tokio-test", - "tokio-tungstenite", - "tracing", - "tracing-subscriber 0.3.20", - "url", - "uuid", -] - -[[package]] -name = "flate2" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "float16" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bffafbd079d520191c7c2779ae9cf757601266cf4167d3f659ff09617ff8483" -dependencies = [ - "cfg-if", - "rustc_version 0.2.3", -] - -[[package]] -name = "flume" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" -dependencies = [ - "futures-core", - "futures-sink", - "spin 0.9.8", -] - [[package]] name = "fnv" version = "1.0.7" @@ -3664,21 +1669,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs_extra" -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" @@ -3700,19 +1690,6 @@ dependencies = [ "futures-util", ] -[[package]] -name = "futures-buffered" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8e0e1f38ec07ba4abbde21eed377082f17ccb988be9d988a5adbf4bafc118fd" -dependencies = [ - "cordyceps", - "diatomic-waker", - "futures-core", - "pin-project-lite", - "spin 0.10.0", -] - [[package]] name = "futures-channel" version = "0.3.31" @@ -3723,21 +1700,6 @@ dependencies = [ "futures-sink", ] -[[package]] -name = "futures-concurrency" -version = "7.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eb68017df91f2e477ed4bea586c59eaecaa47ed885a770d0444e21e62572cd2" -dependencies = [ - "fixedbitset", - "futures-buffered", - "futures-core", - "futures-lite", - "pin-project", - "slab", - "smallvec", -] - [[package]] name = "futures-core" version = "0.3.31" @@ -3755,36 +1717,12 @@ dependencies = [ "futures-util", ] -[[package]] -name = "futures-intrusive" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" -dependencies = [ - "futures-core", - "lock_api", - "parking_lot", -] - [[package]] name = "futures-io" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-lite" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - [[package]] name = "futures-macro" version = "0.3.31" @@ -3808,16 +1746,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.31" @@ -3842,20 +1770,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "generator" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" -dependencies = [ - "cc", - "cfg-if", - "libc", - "log", - "rustversion", - "windows 0.61.3", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -3894,29 +1808,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "git2" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" -dependencies = [ - "bitflags 2.10.0", - "libc", - "libgit2-sys", - "log", - "url", -] - [[package]] name = "glob" version = "0.3.3" @@ -3924,59 +1815,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] -name = "gloo-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" +name = "gobrr" +version = "0.1.0" dependencies = [ - "futures-channel", - "futures-core", - "futures-sink", - "gloo-utils", - "http", - "js-sys", - "pin-project", + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-provider", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-signer", + "alloy-signer-local", + "alloy-transport-http", + "anyhow", + "clap", + "op-alloy-network", + "rand 0.8.5", + "reqwest", "serde", "serde_json", - "thiserror 1.0.69", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", + "tokio", + "tracing", + "url", ] [[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +name = "gobrr-bin" +version = "0.1.0" dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "gloo-utils" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" -dependencies = [ - "js-sys", - "serde", - "serde_json", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "gmp-mpfr-sys" -version = "1.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" -dependencies = [ - "libc", - "windows-sys 0.60.2", + "anyhow", + "clap", + "gobrr", + "tokio", + "tracing", + "tracing-subscriber", ] [[package]] @@ -3990,51 +1862,17 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap 2.12.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hash-db" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" - [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" - [[package]] name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] [[package]] name = "hashbrown" @@ -4053,40 +1891,10 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" dependencies = [ - "allocator-api2", - "equivalent", "foldhash 0.2.0", "serde", ] -[[package]] -name = "hashlink" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "hashlink" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" -dependencies = [ - "hashbrown 0.15.5", -] - -[[package]] -name = "hdrhistogram" -version = "7.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" -dependencies = [ - "byteorder", - "num-traits", -] - [[package]] name = "heck" version = "0.5.0" @@ -4114,63 +1922,6 @@ dependencies = [ "arrayvec", ] -[[package]] -name = "hickory-proto" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna", - "ipnet", - "once_cell", - "rand 0.9.2", - "ring", - "serde", - "thiserror 2.0.17", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "hickory-resolver" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" -dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto", - "ipconfig", - "moka", - "once_cell", - "parking_lot", - "rand 0.9.2", - "resolv-conf", - "serde", - "smallvec", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac", -] - [[package]] name = "hmac" version = "0.12.1" @@ -4180,15 +1931,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "home" -version = "0.5.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "http" version = "1.3.1" @@ -4223,46 +1965,12 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "http-range-header" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9171a2ea8a68358193d15dd5d70c1c10a2afc3e7e4c5bc92bc9f025cebd7359c" - [[package]] name = "httparse" version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "human_bytes" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" - -[[package]] -name = "humantime" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" - -[[package]] -name = "humantime-serde" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" -dependencies = [ - "humantime", - "serde", -] - [[package]] name = "hyper" version = "1.7.0" @@ -4273,11 +1981,9 @@ dependencies = [ "bytes", "futures-channel", "futures-core", - "h2", "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", "pin-utils", @@ -4286,21 +1992,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-named-pipe" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" -dependencies = [ - "hex", - "hyper", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", - "winapi", -] - [[package]] name = "hyper-rustls" version = "0.27.7" @@ -4310,27 +2001,12 @@ dependencies = [ "http", "hyper", "hyper-util", - "log", "rustls", - "rustls-native-certs", "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.4", -] - -[[package]] -name = "hyper-timeout" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" -dependencies = [ - "hyper", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", + "webpki-roots", ] [[package]] @@ -4367,27 +2043,10 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", - "system-configuration", + "socket2", "tokio", "tower-service", "tracing", - "windows-registry", -] - -[[package]] -name = "hyperlocal" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" -dependencies = [ - "hex", - "http-body-util", - "hyper", - "hyper-util", - "pin-project-lite", - "tokio", - "tower-service", ] [[package]] @@ -4402,7 +2061,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core", ] [[package]] @@ -4453,8 +2112,6 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "write16", "zerovec", ] @@ -4530,16 +2187,6 @@ dependencies = [ "icu_properties", ] -[[package]] -name = "if-addrs" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf39cc0423ee66021dc5eccface85580e4a001e0c5288bae8bea7ecb69225e90" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "impl-codec" version = "0.6.0" @@ -4560,31 +2207,6 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "include_dir" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "indenter" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" - [[package]] name = "indexmap" version = "1.9.3" @@ -4602,7 +2224,6 @@ version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ - "arbitrary", "equivalent", "hashbrown 0.16.0", "serde", @@ -4610,211 +2231,68 @@ dependencies = [ ] [[package]] -name = "indoc" -version = "2.0.7" +name = "ipnet" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -dependencies = [ - "rustversion", -] +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] -name = "inotify" -version = "0.11.0" +name = "iri-string" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ - "bitflags 2.10.0", - "inotify-sys", - "libc", + "memchr", + "serde", ] [[package]] -name = "inotify-sys" -version = "0.1.5" +name = "is_terminal_polyfill" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", -] +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] -name = "inout" -version = "0.1.4" +name = "itertools" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ - "block-padding", - "generic-array", + "either", ] [[package]] -name = "instability" -version = "0.3.9" +name = "itertools" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ - "darling 0.20.11", - "indoc", - "proc-macro2", - "quote", - "syn 2.0.108", + "either", ] [[package]] -name = "interprocess" -version = "2.2.3" +name = "itertools" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ - "doctest-file", - "futures-core", - "libc", - "recvmsg", - "tokio", - "widestring", - "windows-sys 0.52.0", + "either", ] [[package]] -name = "intrusive-collections" -version = "0.9.7" +name = "itoa" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "189d0897e4cbe8c75efedf3502c18c887b05046e59d28404d4d8e46cbc4d1e86" -dependencies = [ - "memoffset", -] +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] -name = "ipconfig" -version = "0.3.2" +name = "js-sys" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ - "socket2 0.5.10", - "widestring", - "windows-sys 0.48.0", - "winreg", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "iri-string" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -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.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - -[[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.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" -dependencies = [ - "getrandom 0.3.4", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "jsonrpsee" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "jsonrpsee-core 0.25.1", - "jsonrpsee-http-client 0.25.1", - "jsonrpsee-proc-macros 0.25.1", - "jsonrpsee-server 0.25.1", - "jsonrpsee-types 0.25.1", - "tokio", - "tracing", + "once_cell", + "wasm-bindgen", ] [[package]] @@ -4823,64 +2301,9 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f3f48dc3e6b8bd21e15436c1ddd0bc22a6a54e8ec46fedd6adf3425f396ec6a" dependencies = [ - "jsonrpsee-client-transport", - "jsonrpsee-core 0.26.0", - "jsonrpsee-http-client 0.26.0", - "jsonrpsee-proc-macros 0.26.0", - "jsonrpsee-server 0.26.0", - "jsonrpsee-types 0.26.0", - "jsonrpsee-wasm-client", - "jsonrpsee-ws-client", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf36eb27f8e13fa93dcb50ccb44c417e25b818cfa1a481b5470cd07b19c60b98" -dependencies = [ - "base64 0.22.1", - "futures-channel", - "futures-util", - "gloo-net", - "http", - "jsonrpsee-core 0.26.0", - "pin-project", - "rustls", - "rustls-pki-types", - "rustls-platform-verifier", - "soketto", - "thiserror 2.0.17", - "tokio", - "tokio-rustls", - "tokio-util", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "jsonrpsee-types 0.25.1", - "parking_lot", - "pin-project", - "rand 0.9.2", - "rustc-hash 2.1.1", - "serde", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tower 0.5.2", + "jsonrpsee-core", + "jsonrpsee-proc-macros", + "jsonrpsee-types", "tracing", ] @@ -4891,82 +2314,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "316c96719901f05d1137f19ba598b5fe9c9bc39f4335f67f6be8613921946480" dependencies = [ "async-trait", - "bytes", - "futures-timer", "futures-util", "http", - "http-body", - "http-body-util", - "jsonrpsee-types 0.26.0", + "jsonrpsee-types", "parking_lot", "pin-project", "rand 0.9.2", - "rustc-hash 2.1.1", + "rustc-hash", "serde", "serde_json", "thiserror 2.0.17", "tokio", - "tokio-stream", - "tower 0.5.2", + "tower", "tracing", - "wasm-bindgen-futures", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "base64 0.22.1", - "http-body", - "hyper", - "hyper-rustls", - "hyper-util", - "jsonrpsee-core 0.25.1", - "jsonrpsee-types 0.25.1", - "rustls", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tower 0.5.2", - "url", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790bedefcec85321e007ff3af84b4e417540d5c87b3c9779b9e247d1bcc3dab8" -dependencies = [ - "base64 0.22.1", - "http-body", - "hyper", - "hyper-rustls", - "hyper-util", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "rustls", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tower 0.5.2", - "url", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "heck", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.108", ] [[package]] @@ -4982,70 +2342,6 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "jsonrpsee-server" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "jsonrpsee-core 0.25.1", - "jsonrpsee-types 0.25.1", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c51b7c290bb68ce3af2d029648148403863b982f138484a73f02a9dd52dbd7f" -dependencies = [ - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.25.1" -source = "git+https://github.com/paritytech/jsonrpsee?rev=f04afa740e55db60dce20d9839758792f035ffff#f04afa740e55db60dce20d9839758792f035ffff" -dependencies = [ - "http", - "serde", - "serde_json", - "thiserror 2.0.17", -] - [[package]] name = "jsonrpsee-types" version = "0.26.0" @@ -5058,47 +2354,6 @@ dependencies = [ "thiserror 2.0.17", ] -[[package]] -name = "jsonrpsee-wasm-client" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7902885de4779f711a95d82c8da2d7e5f9f3a7c7cfa44d51c067fd1c29d72a3c" -dependencies = [ - "jsonrpsee-client-transport", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "tower 0.5.2", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6fceceeb05301cc4c065ab3bd2fa990d41ff4eb44e4ca1b30fa99c057c3e79" -dependencies = [ - "http", - "jsonrpsee-client-transport", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "tower 0.5.2", - "url", -] - -[[package]] -name = "jsonwebtoken" -version = "9.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" -dependencies = [ - "base64 0.22.1", - "js-sys", - "pem", - "ring", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "k256" version = "0.13.4" @@ -5110,7 +2365,7 @@ dependencies = [ "elliptic-curve", "once_cell", "serdect", - "sha2 0.10.9", + "sha2", "signature", ] @@ -5133,40 +2388,11 @@ dependencies = [ "sha3-asm", ] -[[package]] -name = "kqueue" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" -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", -] - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" @@ -5174,165 +2400,12 @@ version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" -[[package]] -name = "libgit2-sys" -version = "0.18.2+1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" -dependencies = [ - "cc", - "libc", - "libz-sys", - "pkg-config", -] - -[[package]] -name = "libloading" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" -dependencies = [ - "cfg-if", - "windows-link 0.2.1", -] - [[package]] name = "libm" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" -[[package]] -name = "libp2p-identity" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" -dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "hkdf", - "k256", - "multihash", - "quick-protobuf", - "sha2 0.10.9", - "thiserror 2.0.17", - "tracing", - "zeroize", -] - -[[package]] -name = "libproc" -version = "0.14.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" -dependencies = [ - "bindgen 0.72.1", - "errno", - "libc", -] - -[[package]] -name = "libredox" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" -dependencies = [ - "bitflags 2.10.0", - "libc", - "redox_syscall 0.5.18", -] - -[[package]] -name = "libsecp256k1" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" -dependencies = [ - "arrayref", - "base64 0.22.1", - "digest 0.9.0", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.5", - "serde", - "sha2 0.9.9", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsqlite3-sys" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" -dependencies = [ - "pkg-config", - "vcpkg", -] - -[[package]] -name = "libz-sys" -version = "1.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linked_hash_set" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" -dependencies = [ - "linked-hash-map", - "serde", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - [[package]] name = "linux-raw-sys" version = "0.11.0" @@ -5345,12 +2418,6 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" -[[package]] -name = "litrs" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" - [[package]] name = "lock_api" version = "0.4.14" @@ -5358,7 +2425,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ "scopeguard", - "serde", ] [[package]] @@ -5367,28 +2433,6 @@ version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" -[[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 0.3.20", -] - -[[package]] -name = "lru" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" -dependencies = [ - "hashbrown 0.15.5", -] - [[package]] name = "lru" version = "0.13.0" @@ -5404,40 +2448,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" -[[package]] -name = "lz4" -version = "1.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" -dependencies = [ - "lz4-sys", -] - -[[package]] -name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "lz4_flex" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" - -[[package]] -name = "mach2" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" -dependencies = [ - "libc", -] - [[package]] name = "macro-string" version = "0.1.4" @@ -5449,17 +2459,6 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "match-lookup" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "matchers" version = "0.2.0" @@ -5469,53 +2468,19 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - [[package]] name = "memchr" version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" -[[package]] -name = "memmap2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "mempool-rebroadcaster" version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-hardforks 0.4.4", + "alloy-hardforks", "alloy-primitives", "alloy-provider", "alloy-rpc-types", @@ -5524,6368 +2489,777 @@ dependencies = [ "alloy-trie", "clap", "dotenvy", - "op-alloy-consensus 0.22.0", + "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-jsonrpsee", - "op-alloy-rpc-types 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", + "op-alloy-rpc-types", + "op-alloy-rpc-types-engine", "serde", "serde_json", "tempfile", "tokio", "tracing", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "metrics" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dea7ac8057892855ec285c440160265225438c3c45072613c25a4b26e98ef5" -dependencies = [ - "ahash", - "portable-atomic", + "tracing-subscriber", ] [[package]] -name = "metrics-derive" -version = "0.1.0" +name = "mio" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3dbdd96ed57d565ec744cba02862d707acf373c5772d152abae6ec5c4e24f6c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ - "proc-macro2", - "quote", - "regex", - "syn 2.0.108", + "libc", + "wasi", + "windows-sys 0.61.2", ] [[package]] -name = "metrics-exporter-prometheus" -version = "0.16.2" +name = "native-tls" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7399781913e5393588a8d8c6a2867bf85fb38eaf2502fdce465aad2dc6f034" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ - "base64 0.22.1", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-util", - "indexmap 2.12.0", - "ipnet", - "metrics", - "metrics-util", - "quanta", - "thiserror 1.0.69", - "tokio", - "tracing", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", ] [[package]] -name = "metrics-process" -version = "2.4.2" +name = "nu-ansi-term" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f615e08e049bd14a44c4425415782efb9bcd479fc1e19ddeb971509074c060d0" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "libc", - "libproc", - "mach2", - "metrics", - "once_cell", - "procfs 0.18.0", - "rlimit", - "windows 0.62.2", + "windows-sys 0.61.2", ] [[package]] -name = "metrics-util" -version = "0.19.1" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8496cc523d1f94c1385dd8f0f0c2c480b2b8aeccb5b7e4485ad6365523ae376" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "aho-corasick", - "crossbeam-epoch", - "crossbeam-utils", - "hashbrown 0.15.5", - "indexmap 2.12.0", - "metrics", - "ordered-float", - "quanta", - "radix_trie", - "rand 0.9.2", - "rand_xoshiro", - "sketches-ddsketch", + "num-integer", + "num-traits", ] [[package]] -name = "mime" -version = "0.3.17" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] -name = "mime_guess" -version = "2.0.5" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "mime", - "unicase", + "num-traits", ] [[package]] -name = "mini-moka" -version = "0.10.3" +name = "num-traits" +version = "0.2.19" 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", - "simd-adler32", -] - -[[package]] -name = "mio" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" -dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.61.2", -] - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "moka" -version = "0.12.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" -dependencies = [ - "async-lock", - "crossbeam-channel", - "crossbeam-epoch", - "crossbeam-utils", - "equivalent", - "event-listener", - "futures-util", - "parking_lot", - "portable-atomic", - "rustc_version 0.4.1", - "smallvec", - "tagptr", - "uuid", -] - -[[package]] -name = "more-asserts" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" - -[[package]] -name = "multiaddr" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "libp2p-identity", - "multibase", - "multihash", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - -[[package]] -name = "multibase" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" -dependencies = [ - "base-x", - "base256emoji", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.19.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" -dependencies = [ - "core2", - "unsigned-varint", -] - -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "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 = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "notify" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" -dependencies = [ - "bitflags 2.10.0", - "fsevent-sys", - "inotify", - "kqueue", - "libc", - "log", - "mio", - "notify-types", - "walkdir", - "windows-sys 0.60.2", -] - -[[package]] -name = "notify-types" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "nu-ansi-term" -version = "0.50.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "serde", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c79c15c05d4bf82b6f5ef163104cc81a760d8e874d38ac50ab67c8877b647b" -dependencies = [ - "lazy_static", - "libm", - "num-integer", - "num-iter", - "num-traits", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" -dependencies = [ - "num_enum_derive", - "rustversion", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "num_threads" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" -dependencies = [ - "libc", -] - -[[package]] -name = "nybbles" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" -dependencies = [ - "alloy-rlp", - "arbitrary", - "cfg-if", - "proptest", - "ruint", - "serde", - "smallvec", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "once_cell_polyfill" -version = "1.70.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" - -[[package]] -name = "op-alloy-consensus" -version = "0.18.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c88d2940558fd69f8f07b3cbd7bb3c02fc7d31159c1a7ba9deede50e7881024" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde", - "derive_more", - "serde", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-consensus" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42e9de945efe3c2fbd207e69720c9c1af2b8caa6872aee0e216450c25a3ca70" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "derive_more", - "serde", - "serde_with", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-flz" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a79f352fc3893dcd670172e615afef993a41798a1d3fc0db88a3e60ef2e70ecc" - -[[package]] -name = "op-alloy-network" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9da49a2812a0189dd05e81e4418c3ae13fd607a92654107f02ebad8e91ed9e" -dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-eth", - "alloy-signer", - "op-alloy-consensus 0.22.0", - "op-alloy-rpc-types 0.22.0", -] - -[[package]] -name = "op-alloy-rpc-jsonrpsee" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ceb771ab9323647093ea2e58dc7f25289a1b95cbef2faa2620f6ca2dee4d9" -dependencies = [ - "alloy-primitives", - "jsonrpsee 0.26.0", -] - -[[package]] -name = "op-alloy-rpc-types" -version = "0.18.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f22201e53e8cbb67a053e88b534b4e7f02265c5406994bf35978482a9ad0ae26" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more", - "op-alloy-consensus 0.18.14", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-rpc-types" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd1eb7bddd2232856ba9d259320a094f9edf2b9061acfe5966e7960208393e6" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde", - "derive_more", - "op-alloy-consensus 0.22.0", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-rpc-types-engine" -version = "0.18.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b4f977b51e9e177e69a4d241ab7c4b439df9a3a5a998c000ae01be724de271" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more", - "ethereum_ssz", - "ethereum_ssz_derive", - "op-alloy-consensus 0.18.14", - "serde", - "snap", - "thiserror 2.0.17", -] - -[[package]] -name = "op-alloy-rpc-types-engine" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5429622150d18d8e6847a701135082622413e2451b64d03f979415d764566bef" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-serde", - "derive_more", - "ethereum_ssz", - "ethereum_ssz_derive", - "op-alloy-consensus 0.22.0", - "serde", - "snap", - "thiserror 2.0.17", -] - -[[package]] -name = "op-revm" -version = "8.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce1dc7533f4e5716c55cd3d62488c6200cb4dfda96e0c75a7e484652464343b" -dependencies = [ - "auto_impl", - "once_cell", - "revm 27.1.0", - "serde", -] - -[[package]] -name = "op-revm" -version = "12.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e599c71e91670fb922e3cdcb04783caed1226352da19d674bd001b3bf2bc433" -dependencies = [ - "auto_impl", - "revm 31.0.0", - "serde", -] - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openssl" -version = "0.10.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" -dependencies = [ - "bitflags 2.10.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - -[[package]] -name = "openssl-sys" -version = "0.9.110" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "opentelemetry" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "236e667b670a5cdf90c258f5a55794ec5ac5027e960c224bff8367a59e1e6426" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "pin-project-lite", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "opentelemetry" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84bcd6ae87133e903af7ef497404dda70c60d0ea14895fc8a5e6722754fc2a0" -dependencies = [ - "futures-core", - "futures-sink", - "js-sys", - "pin-project-lite", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "opentelemetry-http" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8863faf2910030d139fb48715ad5ff2f35029fc5f244f6d5f689ddcf4d26253" -dependencies = [ - "async-trait", - "bytes", - "http", - "opentelemetry 0.28.0", - "reqwest", - "tracing", -] - -[[package]] -name = "opentelemetry-http" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a6d09a73194e6b66df7c8f1b680f156d916a1a942abf2de06823dd02b7855d" -dependencies = [ - "async-trait", - "bytes", - "http", - "opentelemetry 0.31.0", - "reqwest", -] - -[[package]] -name = "opentelemetry-otlp" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bef114c6d41bea83d6dc60eb41720eedd0261a67af57b66dd2b84ac46c01d91" -dependencies = [ - "async-trait", - "futures-core", - "http", - "opentelemetry 0.28.0", - "opentelemetry-http 0.28.0", - "opentelemetry-proto 0.28.0", - "opentelemetry_sdk 0.28.0", - "prost 0.13.5", - "reqwest", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tonic 0.12.3", - "tracing", -] - -[[package]] -name = "opentelemetry-otlp" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2366db2dca4d2ad033cad11e6ee42844fd727007af5ad04a1730f4cb8163bf" -dependencies = [ - "http", - "opentelemetry 0.31.0", - "opentelemetry-http 0.31.0", - "opentelemetry-proto 0.31.0", - "opentelemetry_sdk 0.31.0", - "prost 0.14.1", - "reqwest", - "thiserror 2.0.17", - "tokio", - "tonic 0.14.2", - "tracing", -] - -[[package]] -name = "opentelemetry-proto" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f8870d3024727e99212eb3bb1762ec16e255e3e6f58eeb3dc8db1aa226746d" -dependencies = [ - "base64 0.22.1", - "hex", - "opentelemetry 0.28.0", - "opentelemetry_sdk 0.28.0", - "prost 0.13.5", - "serde", - "tonic 0.12.3", -] - -[[package]] -name = "opentelemetry-proto" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7175df06de5eaee9909d4805a3d07e28bb752c34cab57fa9cff549da596b30f" -dependencies = [ - "opentelemetry 0.31.0", - "opentelemetry_sdk 0.31.0", - "prost 0.14.1", - "tonic 0.14.2", - "tonic-prost", -] - -[[package]] -name = "opentelemetry-semantic-conventions" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e62e29dfe041afb8ed2a6c9737ab57db4907285d999ef8ad3a59092a36bdc846" - -[[package]] -name = "opentelemetry_sdk" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84dfad6042089c7fc1f6118b7040dc2eb4ab520abbf410b79dc481032af39570" -dependencies = [ - "async-trait", - "futures-channel", - "futures-executor", - "futures-util", - "glob", - "opentelemetry 0.28.0", - "percent-encoding", - "rand 0.8.5", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "opentelemetry_sdk" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ae4f5991976fd48df6d843de219ca6d31b01daaab2dad5af2badeded372bd" -dependencies = [ - "futures-channel", - "futures-executor", - "futures-util", - "opentelemetry 0.31.0", - "percent-encoding", - "rand 0.9.2", - "thiserror 2.0.17", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-float" -version = "4.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" -dependencies = [ - "num-traits", -] - -[[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.9", -] - -[[package]] -name = "page_size" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parity-scale-codec" -version = "3.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" -dependencies = [ - "arbitrary", - "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.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "parking" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.18", - "smallvec", - "windows-link 0.2.1", -] - -[[package]] -name = "parse-display" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914a1c2265c98e2446911282c6ac86d8524f495792c38c5bd884f80499c7538a" -dependencies = [ - "parse-display-derive", - "regex", - "regex-syntax", -] - -[[package]] -name = "parse-display-derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae7800a4c974efd12df917266338e79a7a74415173caf7e70aa0a0707345281" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "regex-syntax", - "structmeta", - "syn 2.0.108", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "pem" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" -dependencies = [ - "base64 0.22.1", - "serde_core", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" - -[[package]] -name = "pest" -version = "2.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" -dependencies = [ - "memchr", - "ucd-trie", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_macros 0.11.3", - "phf_shared 0.11.3", -] - -[[package]] -name = "phf" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" -dependencies = [ - "phf_macros 0.13.1", - "phf_shared 0.13.1", - "serde", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared 0.11.3", - "rand 0.8.5", -] - -[[package]] -name = "phf_generator" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" -dependencies = [ - "fastrand", - "phf_shared 0.13.1", -] - -[[package]] -name = "phf_macros" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" -dependencies = [ - "phf_generator 0.11.3", - "phf_shared 0.11.3", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "phf_macros" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" -dependencies = [ - "phf_generator 0.13.1", - "phf_shared 0.13.1", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" -dependencies = [ - "der", - "pkcs8", - "spki", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "plain_hasher" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e19e6491bdde87c2c43d70f4c194bc8a758f2eb732df00f61e43f7362e3b4cc" -dependencies = [ - "crunchy", -] - -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "pretty_assertions" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" -dependencies = [ - "diff", - "yansi", -] - -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn 2.0.108", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "uint 0.9.5", -] - -[[package]] -name = "proc-macro-crate" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" -dependencies = [ - "toml_edit 0.23.7", -] - -[[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.108", -] - -[[package]] -name = "proc-macro2" -version = "1.0.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "procfs" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" -dependencies = [ - "bitflags 2.10.0", - "chrono", - "flate2", - "hex", - "procfs-core 0.17.0", - "rustix 0.38.44", -] - -[[package]] -name = "procfs" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" -dependencies = [ - "bitflags 2.10.0", - "procfs-core 0.18.0", - "rustix 1.1.2", -] - -[[package]] -name = "procfs-core" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" -dependencies = [ - "bitflags 2.10.0", - "chrono", - "hex", -] - -[[package]] -name = "procfs-core" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" -dependencies = [ - "bitflags 2.10.0", - "hex", -] - -[[package]] -name = "proptest" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.10.0", - "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", - "rand_xorshift", - "regex-syntax", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "proptest-arbitrary-interop" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1981e49bd2432249da8b0e11e5557099a8e74690d6b94e721f7dc0bb7f3555f" -dependencies = [ - "arbitrary", - "proptest", -] - -[[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.108", -] - -[[package]] -name = "proptest-derive" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "095a99f75c69734802359b682be8daaf8980296731f6470434ea2c652af1dd30" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive 0.13.5", -] - -[[package]] -name = "prost" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" -dependencies = [ - "bytes", - "prost-derive 0.14.1", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "prost-derive" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "pulldown-cmark" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" -dependencies = [ - "bitflags 2.10.0", - "memchr", - "unicase", -] - -[[package]] -name = "quanta" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" -dependencies = [ - "crossbeam-utils", - "libc", - "once_cell", - "raw-cpuid", - "wasi", - "web-sys", - "winapi", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quick-protobuf" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" -dependencies = [ - "byteorder", -] - -[[package]] -name = "quinn" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash 2.1.1", - "rustls", - "socket2 0.6.1", - "thiserror 2.0.17", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" -dependencies = [ - "bytes", - "getrandom 0.3.4", - "lru-slab", - "rand 0.9.2", - "ring", - "rustc-hash 2.1.1", - "rustls", - "rustls-pki-types", - "slab", - "thiserror 2.0.17", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2 0.6.1", - "tracing", - "windows-sys 0.60.2", -] - -[[package]] -name = "quote" -version = "1.0.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - -[[package]] -name = "radium" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "serde", -] - -[[package]] -name = "rand" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "serde", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.16", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.4", - "serde", -] - -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "rand_xoshiro" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41" -dependencies = [ - "rand_core 0.9.3", -] - -[[package]] -name = "ratatui" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" -dependencies = [ - "bitflags 2.10.0", - "cassowary", - "compact_str", - "crossterm 0.28.1", - "indoc", - "instability", - "itertools 0.13.0", - "lru 0.12.5", - "paste", - "strum 0.26.3", - "unicode-segmentation", - "unicode-truncate", - "unicode-width 0.2.0", -] - -[[package]] -name = "raw-cpuid" -version = "11.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "rayon" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "recvmsg" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.10.0", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", -] - -[[package]] -name = "redox_users" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" -dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 2.0.17", -] - -[[package]] -name = "ref-cast" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "regex" -version = "1.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" - -[[package]] -name = "regress" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2057b2325e68a893284d1538021ab90279adac1139957ca2a74426c6f118fb48" -dependencies = [ - "hashbrown 0.16.0", - "memchr", -] - -[[package]] -name = "reqwest" -version = "0.12.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "native-tls", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls", - "rustls-native-certs", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tokio-rustls", - "tokio-util", - "tower 0.5.2", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots 1.0.4", -] - -[[package]] -name = "resolv-conf" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" - -[[package]] -name = "reth" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-rpc-types", - "aquamarine", - "clap", - "eyre", - "reth-chainspec 1.9.0", - "reth-cli-runner", - "reth-cli-util", - "reth-consensus 1.9.0", - "reth-consensus-common 1.9.0", - "reth-db", - "reth-ethereum-cli", - "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-network", - "reth-network-api", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-ethereum", - "reth-node-metrics", - "reth-payload-builder 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives", - "reth-provider", - "reth-ress-protocol", - "reth-ress-provider", - "reth-revm 1.9.0", - "reth-rpc", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-convert", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-tasks 1.9.0", - "reth-tokio-util", - "reth-transaction-pool 1.9.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-basic-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "futures-core", - "futures-util", - "metrics", - "reth-chain-state 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-basic-payload-builder" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "futures-core", - "futures-util", - "metrics", - "reth-chain-state 1.9.0", - "reth-metrics 1.9.0", - "reth-payload-builder 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-chain-state" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "derive_more", - "metrics", - "parking_lot", - "pin-project", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-trie 1.6.0", - "revm-database 7.0.5", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-chain-state" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-signer", - "alloy-signer-local", - "derive_more", - "metrics", - "parking_lot", - "pin-project", - "rand 0.9.2", - "reth-chainspec 1.9.0", - "reth-errors 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-execution-types 1.9.0", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-trie 1.9.0", - "revm-database 9.0.3", - "revm-state 8.1.0", - "serde", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-chainspec" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", - "reth-primitives-traits 1.6.0", - "serde_json", -] - -[[package]] -name = "reth-chainspec" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more", - "reth-ethereum-forks 1.9.0", - "reth-network-peers 1.9.0", - "reth-primitives-traits 1.9.0", - "serde_json", -] - -[[package]] -name = "reth-cli" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-genesis", - "clap", - "eyre", - "reth-cli-runner", - "reth-db", - "serde_json", - "shellexpand", -] - -[[package]] -name = "reth-cli-commands" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "backon", - "clap", - "comfy-table", - "crossterm 0.28.1", - "eyre", - "fdlimit", - "futures", - "human_bytes", - "humantime", - "itertools 0.14.0", - "lz4", - "ratatui", - "reqwest", - "reth-chainspec 1.9.0", - "reth-cli", - "reth-cli-runner", - "reth-cli-util", - "reth-codecs 1.9.0", - "reth-config", - "reth-consensus 1.9.0", - "reth-db", - "reth-db-api", - "reth-db-common", - "reth-discv4", - "reth-discv5", - "reth-downloaders", - "reth-ecies", - "reth-era", - "reth-era-downloader", - "reth-era-utils", - "reth-eth-wire", - "reth-etl", - "reth-evm 1.9.0", - "reth-exex", - "reth-fs-util 1.9.0", - "reth-net-nat", - "reth-network", - "reth-network-p2p", - "reth-network-peers 1.9.0", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-events", - "reth-node-metrics", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune", - "reth-revm 1.9.0", - "reth-stages", - "reth-static-file", - "reth-static-file-types 1.9.0", - "reth-trie 1.9.0", - "reth-trie-common 1.9.0", - "reth-trie-db", - "secp256k1 0.30.0", - "serde", - "serde_json", - "tar", - "tokio", - "tokio-stream", - "toml", - "tracing", - "zstd", -] - -[[package]] -name = "reth-cli-runner" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "reth-tasks 1.9.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-cli-util" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "cfg-if", - "eyre", - "libc", - "rand 0.8.5", - "reth-fs-util 1.9.0", - "secp256k1 0.30.0", - "serde", - "thiserror 2.0.17", - "tikv-jemallocator", -] - -[[package]] -name = "reth-codecs" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.18.14", - "reth-codecs-derive 1.6.0", - "reth-zstd-compressors 1.6.0", - "serde", -] - -[[package]] -name = "reth-codecs" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "arbitrary", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.22.0", - "reth-codecs-derive 1.9.0", - "reth-zstd-compressors 1.9.0", - "serde", - "visibility", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "reth-config" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "eyre", - "humantime-serde", - "reth-network-types", - "reth-prune-types 1.9.0", - "reth-stages-types 1.9.0", - "serde", - "toml", - "url", -] - -[[package]] -name = "reth-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-consensus" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "auto_impl", - "reth-execution-types 1.9.0", - "reth-primitives-traits 1.9.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-consensus-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-primitives-traits 1.6.0", -] - -[[package]] -name = "reth-consensus-common" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-primitives-traits 1.9.0", -] - -[[package]] -name = "reth-consensus-debug-client" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-engine", - "alloy-transport", - "auto_impl", - "derive_more", - "eyre", - "futures", - "reqwest", - "reth-node-api", - "reth-primitives-traits 1.9.0", - "reth-tracing", - "ringbuffer", - "serde", - "serde_json", - "tokio", -] - -[[package]] -name = "reth-db" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "derive_more", - "eyre", - "metrics", - "page_size", - "parking_lot", - "reth-db-api", - "reth-fs-util 1.9.0", - "reth-libmdbx", - "reth-metrics 1.9.0", - "reth-nippy-jar", - "reth-static-file-types 1.9.0", - "reth-storage-errors 1.9.0", - "reth-tracing", - "rustc-hash 2.1.1", - "strum 0.27.2", - "sysinfo", - "tempfile", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-db-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "arbitrary", - "bytes", - "derive_more", - "metrics", - "modular-bitfield", - "parity-scale-codec", - "proptest", - "reth-codecs 1.9.0", - "reth-db-models 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-prune-types 1.9.0", - "reth-stages-types 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie-common 1.9.0", - "roaring", - "serde", -] - -[[package]] -name = "reth-db-common" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "boyer-moore-magiclen", - "eyre", - "reth-chainspec 1.9.0", - "reth-codecs 1.9.0", - "reth-config", - "reth-db-api", - "reth-etl", - "reth-execution-errors 1.9.0", - "reth-fs-util 1.9.0", - "reth-node-types", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-stages-types 1.9.0", - "reth-static-file-types 1.9.0", - "reth-trie 1.9.0", - "reth-trie-db", - "serde", - "serde_json", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "reth-db-models" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-primitives-traits 1.6.0", -] - -[[package]] -name = "reth-db-models" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "arbitrary", - "bytes", - "modular-bitfield", - "reth-codecs 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", -] - -[[package]] -name = "reth-discv4" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "discv5", - "enr", - "itertools 0.14.0", - "parking_lot", - "rand 0.8.5", - "reth-ethereum-forks 1.9.0", - "reth-net-banlist", - "reth-net-nat", - "reth-network-peers 1.9.0", - "schnellru", - "secp256k1 0.30.0", - "serde", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-discv5" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "derive_more", - "discv5", - "enr", - "futures", - "itertools 0.14.0", - "metrics", - "rand 0.9.2", - "reth-chainspec 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-metrics 1.9.0", - "reth-network-peers 1.9.0", - "secp256k1 0.30.0", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-dns-discovery" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "data-encoding", - "enr", - "hickory-resolver", - "linked_hash_set", - "parking_lot", - "reth-ethereum-forks 1.9.0", - "reth-network-peers 1.9.0", - "reth-tokio-util", - "schnellru", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-downloaders" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "async-compression", - "futures", - "futures-util", - "itertools 0.14.0", - "metrics", - "pin-project", - "rayon", - "reth-config", - "reth-consensus 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-metrics 1.9.0", - "reth-network-p2p", - "reth-network-peers 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-testing-utils", - "tempfile", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-e2e-test-utils" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-signer", - "alloy-signer-local", - "derive_more", - "eyre", - "futures-util", - "jsonrpsee 0.26.0", - "reth-chainspec 1.9.0", - "reth-cli-commands", - "reth-config", - "reth-consensus 1.9.0", - "reth-db", - "reth-db-common", - "reth-engine-local", - "reth-engine-primitives 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-network-api", - "reth-network-p2p", - "reth-network-peers 1.9.0", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-ethereum", - "reth-payload-builder 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-eth-api", - "reth-rpc-server-types", - "reth-stages-types 1.9.0", - "reth-tasks 1.9.0", - "reth-tokio-util", - "reth-tracing", - "revm 31.0.0", - "serde_json", - "tempfile", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "reth-ecies" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "aes", - "alloy-primitives", - "alloy-rlp", - "block-padding", - "byteorder", - "cipher", - "concat-kdf", - "ctr", - "digest 0.10.7", - "futures", - "generic-array", - "hmac", - "pin-project", - "rand 0.8.5", - "reth-network-peers 1.9.0", - "secp256k1 0.30.0", - "sha2 0.10.9", - "sha3", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", - "typenum", -] - -[[package]] -name = "reth-engine-local" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rpc-types-engine", - "eyre", - "futures-util", - "op-alloy-rpc-types-engine 0.22.0", - "reth-chainspec 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-ethereum-engine-primitives 1.9.0", - "reth-optimism-chainspec 1.9.0", - "reth-payload-builder 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-storage-api 1.9.0", - "reth-transaction-pool 1.9.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "futures", - "reth-chain-state 1.6.0", - "reth-errors 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie 1.6.0", - "reth-trie-common 1.6.0", - "serde", - "thiserror 2.0.17", - "tokio", -] - -[[package]] -name = "reth-engine-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "futures", - "reth-chain-state 1.9.0", - "reth-errors 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-trie-common 1.9.0", - "serde", - "thiserror 2.0.17", - "tokio", -] - -[[package]] -name = "reth-engine-service" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "futures", - "pin-project", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-engine-tree", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-network-p2p", - "reth-node-types", - "reth-payload-builder 1.9.0", - "reth-provider", - "reth-prune", - "reth-stages-api", - "reth-tasks 1.9.0", -] - -[[package]] -name = "reth-engine-tree" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "crossbeam-channel", - "dashmap 6.1.0", - "derive_more", - "futures", - "metrics", - "mini-moka", - "parking_lot", - "rayon", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-db", - "reth-engine-primitives 1.9.0", - "reth-errors 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-metrics 1.9.0", - "reth-network-p2p", - "reth-payload-builder 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune", - "reth-prune-types 1.9.0", - "reth-revm 1.9.0", - "reth-stages", - "reth-stages-api", - "reth-static-file", - "reth-tasks 1.9.0", - "reth-tracing", - "reth-trie 1.9.0", - "reth-trie-parallel", - "reth-trie-sparse 1.9.0", - "reth-trie-sparse-parallel", - "revm 31.0.0", - "revm-primitives 21.0.1", - "schnellru", - "smallvec", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-engine-util" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "eyre", - "futures", - "itertools 0.14.0", - "pin-project", - "reth-chainspec 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-engine-tree", - "reth-errors 1.9.0", - "reth-evm 1.9.0", - "reth-fs-util 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-storage-api 1.9.0", - "serde", - "serde_json", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-era" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "ethereum_ssz", - "ethereum_ssz_derive", - "reth-ethereum-primitives 1.9.0", - "snap", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-era-downloader" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "bytes", - "eyre", - "futures-util", - "reqwest", - "reth-fs-util 1.9.0", - "sha2 0.10.9", - "tokio", -] - -[[package]] -name = "reth-era-utils" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "eyre", - "futures-util", - "reth-db-api", - "reth-era", - "reth-era-downloader", - "reth-etl", - "reth-fs-util 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-stages-types 1.9.0", - "reth-storage-api 1.9.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "reth-consensus 1.6.0", - "reth-execution-errors 1.6.0", - "reth-storage-errors 1.6.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-errors" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "reth-consensus 1.9.0", - "reth-execution-errors 1.9.0", - "reth-storage-errors 1.9.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-eth-wire" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-chains", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "futures", - "pin-project", - "reth-codecs 1.9.0", - "reth-ecies", - "reth-eth-wire-types 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-metrics 1.9.0", - "reth-network-peers 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", - "snap", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-eth-wire-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "reth-chainspec 1.6.0", - "reth-codecs-derive 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "serde", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-eth-wire-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-hardforks 0.4.4", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more", - "reth-chainspec 1.9.0", - "reth-codecs-derive 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-ethereum-cli" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "clap", - "eyre", - "reth-chainspec 1.9.0", - "reth-cli", - "reth-cli-commands", - "reth-cli-runner", - "reth-db", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-ethereum", - "reth-node-metrics", - "reth-rpc-server-types", - "reth-tracing", - "reth-tracing-otlp", - "tracing", - "url", -] - -[[package]] -name = "reth-ethereum-consensus" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-consensus-common 1.9.0", - "reth-execution-types 1.9.0", - "reth-primitives-traits 1.9.0", - "tracing", -] - -[[package]] -name = "reth-ethereum-engine-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "reth-engine-primitives 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-ethereum-engine-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "reth-engine-primitives 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "auto_impl", - "once_cell", - "rustc-hash 2.1.1", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eip2124", - "alloy-hardforks 0.4.4", - "alloy-primitives", - "auto_impl", - "once_cell", - "rustc-hash 2.1.1", -] - -[[package]] -name = "reth-ethereum-payload-builder" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-engine", - "reth-basic-payload-builder 1.9.0", - "reth-chainspec 1.9.0", - "reth-consensus-common 1.9.0", - "reth-errors 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-evm-ethereum", - "reth-payload-builder 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-payload-validator 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-storage-api 1.9.0", - "reth-transaction-pool 1.9.0", - "revm 31.0.0", - "tracing", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "reth-primitives-traits 1.6.0", - "reth-zstd-compressors 1.6.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "arbitrary", - "modular-bitfield", - "reth-codecs 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-zstd-compressors 1.9.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-etl" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "rayon", - "reth-db-api", - "tempfile", -] - -[[package]] -name = "reth-evm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-primitives", - "auto_impl", - "derive_more", - "futures-util", - "reth-execution-errors 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm 27.1.0", -] - -[[package]] -name = "reth-evm" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-primitives", - "auto_impl", - "derive_more", - "futures-util", - "metrics", - "reth-execution-errors 1.9.0", - "reth-execution-types 1.9.0", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie-common 1.9.0", - "revm 31.0.0", -] - -[[package]] -name = "reth-evm-ethereum" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-primitives", - "alloy-rpc-types-engine", - "reth-chainspec 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-errors 1.9.0", - "revm 31.0.0", -] - -[[package]] -name = "reth-execution-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-evm 0.15.0", - "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-storage-errors 1.6.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-execution-errors" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-evm 0.23.1", - "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-storage-errors 1.9.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-execution-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-primitives", - "derive_more", - "reth-ethereum-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", - "revm 27.1.0", -] - -[[package]] -name = "reth-execution-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-primitives", - "derive_more", - "reth-ethereum-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-trie-common 1.9.0", - "revm 31.0.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-exex" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "eyre", - "futures", - "itertools 0.14.0", - "metrics", - "parking_lot", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-config", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-exex-types", - "reth-fs-util 1.9.0", - "reth-metrics 1.9.0", - "reth-node-api", - "reth-node-core", - "reth-payload-builder 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune-types 1.9.0", - "reth-revm 1.9.0", - "reth-stages-api", - "reth-tasks 1.9.0", - "reth-tracing", - "rmp-serde", - "thiserror 2.0.17", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-exex-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-chain-state 1.9.0", - "reth-execution-types 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-fs-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-fs-util" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-invalid-block-hooks" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "eyre", - "futures", - "jsonrpsee 0.26.0", - "pretty_assertions", - "reth-engine-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-revm 1.9.0", - "reth-rpc-api", - "reth-tracing", - "reth-trie 1.9.0", - "revm 31.0.0", - "revm-bytecode 7.1.0", - "revm-database 9.0.3", - "serde", - "serde_json", -] - -[[package]] -name = "reth-ipc" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "bytes", - "futures", - "futures-util", - "interprocess", - "jsonrpsee 0.26.0", - "pin-project", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "reth-libmdbx" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "bitflags 2.10.0", - "byteorder", - "dashmap 6.1.0", - "derive_more", - "parking_lot", - "reth-mdbx-sys", - "smallvec", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "reth-mdbx-sys" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "bindgen 0.71.1", - "cc", -] - -[[package]] -name = "reth-metrics" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "metrics", - "metrics-derive", -] - -[[package]] -name = "reth-metrics" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "futures", - "metrics", - "metrics-derive", - "tokio", - "tokio-util", -] - -[[package]] -name = "reth-net-banlist" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", -] - -[[package]] -name = "reth-net-nat" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "futures-util", - "if-addrs", - "reqwest", - "serde_with", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-network" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "aquamarine", - "auto_impl", - "derive_more", - "discv5", - "enr", - "futures", - "itertools 0.14.0", - "metrics", - "parking_lot", - "pin-project", - "rand 0.8.5", - "rand 0.9.2", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-discv4", - "reth-discv5", - "reth-dns-discovery", - "reth-ecies", - "reth-eth-wire", - "reth-eth-wire-types 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-fs-util 1.9.0", - "reth-metrics 1.9.0", - "reth-net-banlist", - "reth-network-api", - "reth-network-p2p", - "reth-network-peers 1.9.0", - "reth-network-types", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-tokio-util", - "reth-transaction-pool 1.9.0", - "rustc-hash 2.1.1", - "schnellru", - "secp256k1 0.30.0", - "serde", - "smallvec", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", -] - -[[package]] -name = "reth-network-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rpc-types-admin", - "alloy-rpc-types-eth", - "auto_impl", - "derive_more", - "enr", - "futures", - "reth-eth-wire-types 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-network-p2p", - "reth-network-peers 1.9.0", - "reth-network-types", - "reth-tokio-util", - "serde", - "thiserror 2.0.17", - "tokio", - "tokio-stream", -] - -[[package]] -name = "reth-network-p2p" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "auto_impl", - "derive_more", - "futures", - "parking_lot", - "reth-consensus 1.9.0", - "reth-eth-wire-types 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-network-peers 1.9.0", - "reth-network-types", - "reth-primitives-traits 1.9.0", - "reth-storage-errors 1.9.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-network-peers" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "secp256k1 0.30.0", - "serde_with", - "thiserror 2.0.17", - "url", -] - -[[package]] -name = "reth-network-peers" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "enr", - "secp256k1 0.30.0", - "serde_with", - "thiserror 2.0.17", - "tokio", - "url", -] - -[[package]] -name = "reth-network-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eip2124", - "humantime-serde", - "reth-net-banlist", - "reth-network-peers 1.9.0", - "serde", - "serde_json", - "tracing", -] - -[[package]] -name = "reth-nippy-jar" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "anyhow", - "bincode", - "derive_more", - "lz4_flex", - "memmap2", - "reth-fs-util 1.9.0", - "serde", - "thiserror 2.0.17", - "tracing", - "zstd", -] - -[[package]] -name = "reth-node-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-rpc-types-engine", - "eyre", - "reth-basic-payload-builder 1.9.0", - "reth-consensus 1.9.0", - "reth-db-api", - "reth-engine-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-network-api", - "reth-node-core", - "reth-node-types", - "reth-payload-builder 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-provider", - "reth-tasks 1.9.0", - "reth-tokio-util", - "reth-transaction-pool 1.9.0", -] - -[[package]] -name = "reth-node-builder" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types", - "alloy-rpc-types-engine", - "aquamarine", - "eyre", - "fdlimit", - "futures", - "jsonrpsee 0.26.0", - "rayon", - "reth-basic-payload-builder 1.9.0", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-cli-util", - "reth-config", - "reth-consensus 1.9.0", - "reth-consensus-debug-client", - "reth-db", - "reth-db-api", - "reth-db-common", - "reth-downloaders", - "reth-engine-local", - "reth-engine-primitives 1.9.0", - "reth-engine-service", - "reth-engine-tree", - "reth-engine-util", - "reth-evm 1.9.0", - "reth-exex", - "reth-fs-util 1.9.0", - "reth-invalid-block-hooks", - "reth-network", - "reth-network-api", - "reth-network-p2p", - "reth-node-api", - "reth-node-core", - "reth-node-ethstats", - "reth-node-events", - "reth-node-metrics", - "reth-payload-builder 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune", - "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 1.9.0", - "reth-tokio-util", - "reth-tracing", - "reth-transaction-pool 1.9.0", - "secp256k1 0.30.0", - "serde_json", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-node-core" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "clap", - "derive_more", - "dirs-next", - "eyre", - "futures", - "humantime", - "rand 0.9.2", - "reth-chainspec 1.9.0", - "reth-cli-util", - "reth-config", - "reth-consensus 1.9.0", - "reth-db", - "reth-discv4", - "reth-discv5", - "reth-engine-local", - "reth-engine-primitives 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-net-nat", - "reth-network", - "reth-network-p2p", - "reth-network-peers 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-prune-types 1.9.0", - "reth-rpc-convert", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-stages-types 1.9.0", - "reth-storage-api 1.9.0", - "reth-storage-errors 1.9.0", - "reth-tracing", - "reth-tracing-otlp", - "reth-transaction-pool 1.9.0", - "secp256k1 0.30.0", - "serde", - "shellexpand", - "strum 0.27.2", - "toml", - "tracing", - "url", - "vergen", - "vergen-git2", -] - -[[package]] -name = "reth-node-ethereum" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-network", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "eyre", - "reth-chainspec 1.9.0", - "reth-engine-local", - "reth-engine-primitives 1.9.0", - "reth-ethereum-consensus", - "reth-ethereum-engine-primitives 1.9.0", - "reth-ethereum-payload-builder", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-evm-ethereum", - "reth-network", - "reth-node-api", - "reth-node-builder", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-revm 1.9.0", - "reth-rpc", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-eth-api", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-tracing", - "reth-transaction-pool 1.9.0", - "revm 31.0.0", - "tokio", -] - -[[package]] -name = "reth-node-ethstats" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "chrono", - "futures-util", - "reth-chain-state 1.9.0", - "reth-network-api", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-transaction-pool 1.9.0", - "serde", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tracing", - "url", -] - -[[package]] -name = "reth-node-events" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "derive_more", - "futures", - "humantime", - "pin-project", - "reth-engine-primitives 1.9.0", - "reth-network-api", - "reth-primitives-traits 1.9.0", - "reth-prune-types 1.9.0", - "reth-stages", - "reth-static-file-types 1.9.0", - "reth-storage-api 1.9.0", - "tokio", - "tracing", -] - -[[package]] -name = "reth-node-metrics" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "eyre", - "http", - "jsonrpsee-server 0.26.0", - "metrics", - "metrics-exporter-prometheus", - "metrics-process", - "metrics-util", - "procfs 0.17.0", - "reqwest", - "reth-metrics 1.9.0", - "reth-tasks 1.9.0", - "tikv-jemalloc-ctl", - "tokio", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "reth-node-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "reth-chainspec 1.9.0", - "reth-db-api", - "reth-engine-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", -] - -[[package]] -name = "reth-optimism-chainspec" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-hardforks 0.2.13", - "alloy-primitives", - "derive_more", - "op-alloy-consensus 0.18.14", - "op-alloy-rpc-types 0.18.14", - "reth-chainspec 1.6.0", - "reth-ethereum-forks 1.6.0", - "reth-network-peers 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "serde_json", -] - -[[package]] -name = "reth-optimism-chainspec" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-hardforks 0.4.4", - "alloy-primitives", - "derive_more", - "miniz_oxide", - "op-alloy-consensus 0.22.0", - "op-alloy-rpc-types 0.22.0", - "paste", - "reth-chainspec 1.9.0", - "reth-ethereum-forks 1.9.0", - "reth-network-peers 1.9.0", - "reth-optimism-forks 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", - "serde_json", - "tar-no-std", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-optimism-cli" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "clap", - "derive_more", - "eyre", - "futures-util", - "op-alloy-consensus 0.22.0", - "reth-chainspec 1.9.0", - "reth-cli", - "reth-cli-commands", - "reth-cli-runner", - "reth-consensus 1.9.0", - "reth-db", - "reth-db-api", - "reth-db-common", - "reth-downloaders", - "reth-execution-types 1.9.0", - "reth-fs-util 1.9.0", - "reth-node-builder", - "reth-node-core", - "reth-node-events", - "reth-node-metrics", - "reth-optimism-chainspec 1.9.0", - "reth-optimism-consensus 1.9.0", - "reth-optimism-evm 1.9.0", - "reth-optimism-node", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune", - "reth-rpc-server-types", - "reth-stages", - "reth-static-file", - "reth-static-file-types 1.9.0", - "reth-tracing", - "reth-tracing-otlp", - "serde", - "tokio", - "tokio-util", - "tracing", - "url", -] - -[[package]] -name = "reth-optimism-consensus" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-trie", - "reth-chainspec 1.6.0", - "reth-consensus 1.6.0", - "reth-consensus-common 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm 27.1.0", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "reth-optimism-consensus" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-trie", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-consensus-common 1.9.0", - "reth-execution-types 1.9.0", - "reth-optimism-chainspec 1.9.0", - "reth-optimism-forks 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie-common 1.9.0", - "revm 31.0.0", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "reth-optimism-evm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.15.0", - "alloy-op-evm 0.15.0", - "alloy-primitives", - "op-alloy-consensus 0.18.14", - "op-revm 8.1.0", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-execution-errors 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-chainspec 1.6.0", - "reth-optimism-consensus 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "revm 27.1.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-optimism-evm" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-op-evm 0.23.1", - "alloy-primitives", - "op-alloy-consensus 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", - "op-revm 12.0.0", - "reth-chainspec 1.9.0", - "reth-evm 1.9.0", - "reth-execution-errors 1.9.0", - "reth-execution-types 1.9.0", - "reth-optimism-chainspec 1.9.0", - "reth-optimism-consensus 1.9.0", - "reth-optimism-forks 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-rpc-eth-api", - "reth-storage-errors 1.9.0", - "revm 31.0.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-optimism-flashblocks" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-serde", - "brotli", - "derive_more", - "eyre", - "futures-util", - "metrics", - "reth-chain-state 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-errors 1.9.0", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-metrics 1.9.0", - "reth-optimism-evm 1.9.0", - "reth-optimism-payload-builder 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-rpc-eth-types", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "ringbuffer", - "serde", - "serde_json", - "tokio", - "tokio-tungstenite", - "tracing", - "url", -] - -[[package]] -name = "reth-optimism-forks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-op-hardforks 0.2.13", - "alloy-primitives", - "once_cell", - "reth-ethereum-forks 1.6.0", -] - -[[package]] -name = "reth-optimism-forks" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-op-hardforks 0.4.4", - "alloy-primitives", - "once_cell", - "reth-ethereum-forks 1.9.0", -] - -[[package]] -name = "reth-optimism-node" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "clap", - "eyre", - "op-alloy-consensus 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", - "op-revm 12.0.0", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-engine-local", - "reth-evm 1.9.0", - "reth-network", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-optimism-chainspec 1.9.0", - "reth-optimism-consensus 1.9.0", - "reth-optimism-evm 1.9.0", - "reth-optimism-forks 1.9.0", - "reth-optimism-payload-builder 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-optimism-rpc", - "reth-optimism-storage", - "reth-optimism-txpool 1.9.0", - "reth-payload-builder 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-rpc-api", - "reth-rpc-engine-api", - "reth-rpc-server-types", - "reth-tracing", - "reth-transaction-pool 1.9.0", - "reth-trie-common 1.9.0", - "revm 31.0.0", - "serde", - "tokio", - "url", -] - -[[package]] -name = "reth-optimism-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "derive_more", - "op-alloy-consensus 0.18.14", - "op-alloy-rpc-types-engine 0.18.14", - "reth-basic-payload-builder 1.6.0", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-evm 1.6.0", - "reth-execution-types 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-optimism-txpool 1.6.0", - "reth-payload-builder 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-payload-util 1.6.0", - "reth-payload-validator 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-revm 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", - "revm 27.1.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "reth-optimism-payload-builder" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "derive_more", - "op-alloy-consensus 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", - "reth-basic-payload-builder 1.9.0", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-optimism-evm 1.9.0", - "reth-optimism-forks 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-optimism-txpool 1.9.0", - "reth-payload-builder 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-payload-util 1.9.0", - "reth-payload-validator 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-storage-api 1.9.0", - "reth-transaction-pool 1.9.0", - "revm 31.0.0", - "serde", - "sha2 0.10.9", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "reth-optimism-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "op-alloy-consensus 0.18.14", - "reth-primitives-traits 1.6.0", -] - -[[package]] -name = "reth-optimism-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "arbitrary", - "bytes", - "modular-bitfield", - "op-alloy-consensus 0.22.0", - "reth-codecs 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-zstd-compressors 1.9.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-optimism-rpc" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-debug", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-transport", - "alloy-transport-http", - "async-trait", - "derive_more", - "eyre", - "futures", - "jsonrpsee 0.26.0", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "metrics", - "op-alloy-consensus 0.22.0", - "op-alloy-network", - "op-alloy-rpc-jsonrpsee", - "op-alloy-rpc-types 0.22.0", - "op-alloy-rpc-types-engine 0.22.0", - "op-revm 12.0.0", - "reqwest", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-evm 1.9.0", - "reth-metrics 1.9.0", - "reth-node-api", - "reth-node-builder", - "reth-optimism-evm 1.9.0", - "reth-optimism-flashblocks", - "reth-optimism-forks 1.9.0", - "reth-optimism-payload-builder 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-optimism-txpool 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-rpc", - "reth-rpc-api", - "reth-rpc-engine-api", - "reth-rpc-eth-api", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-transaction-pool 1.9.0", - "revm 31.0.0", - "serde_json", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", -] - -[[package]] -name = "reth-optimism-storage" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "reth-optimism-primitives 1.9.0", - "reth-storage-api 1.9.0", -] - -[[package]] -name = "reth-optimism-txpool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-serde", - "c-kzg", - "derive_more", - "futures-util", - "metrics", - "op-alloy-consensus 0.18.14", - "op-alloy-flz", - "op-alloy-rpc-types 0.18.14", - "op-revm 8.1.0", - "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-metrics 1.6.0", - "reth-optimism-evm 1.6.0", - "reth-optimism-forks 1.6.0", - "reth-optimism-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-transaction-pool 1.6.0", - "serde", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-optimism-txpool" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-serde", - "c-kzg", - "derive_more", - "futures-util", - "metrics", - "op-alloy-consensus 0.22.0", - "op-alloy-flz", - "op-alloy-rpc-types 0.22.0", - "op-revm 12.0.0", - "parking_lot", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-metrics 1.9.0", - "reth-optimism-evm 1.9.0", - "reth-optimism-forks 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-transaction-pool 1.9.0", - "serde", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-payload-builder" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types", - "futures-util", - "metrics", - "reth-chain-state 1.6.0", - "reth-ethereum-engine-primitives 1.6.0", - "reth-metrics 1.6.0", - "reth-payload-builder-primitives 1.6.0", - "reth-payload-primitives 1.6.0", - "reth-primitives-traits 1.6.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rpc-types", - "futures-util", - "metrics", - "reth-chain-state 1.9.0", - "reth-ethereum-engine-primitives 1.9.0", - "reth-metrics 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "pin-project", - "reth-payload-primitives 1.6.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-builder-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "pin-project", - "reth-payload-primitives 1.9.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-payload-primitives" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "op-alloy-rpc-types-engine 0.18.14", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-errors 1.6.0", - "reth-primitives-traits 1.6.0", - "serde", - "thiserror 2.0.17", - "tokio", -] - -[[package]] -name = "reth-payload-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "either", - "op-alloy-rpc-types-engine 0.22.0", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-errors 1.9.0", - "reth-primitives-traits 1.9.0", - "serde", - "thiserror 2.0.17", - "tokio", -] - -[[package]] -name = "reth-payload-util" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "reth-transaction-pool 1.6.0", -] - -[[package]] -name = "reth-payload-util" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "reth-transaction-pool 1.9.0", -] - -[[package]] -name = "reth-payload-validator" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "reth-primitives-traits 1.6.0", -] - -[[package]] -name = "reth-payload-validator" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-rpc-types-engine", - "reth-primitives-traits 1.9.0", -] - -[[package]] -name = "reth-primitives" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "c-kzg", - "once_cell", - "reth-ethereum-forks 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-static-file-types 1.9.0", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "auto_impl", - "bytes", - "derive_more", - "once_cell", - "op-alloy-consensus 0.18.14", - "reth-codecs 1.6.0", - "revm-bytecode 6.2.2", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-trie", - "arbitrary", - "auto_impl", - "byteorder", - "bytes", - "derive_more", - "modular-bitfield", - "once_cell", - "op-alloy-consensus 0.22.0", - "proptest", - "proptest-arbitrary-interop", - "rayon", - "reth-codecs 1.9.0", - "revm-bytecode 7.1.0", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "secp256k1 0.30.0", - "serde", - "serde_with", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-provider" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "dashmap 6.1.0", - "eyre", - "itertools 0.14.0", - "metrics", - "notify", - "parking_lot", - "rayon", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-codecs 1.9.0", - "reth-db", - "reth-db-api", - "reth-errors 1.9.0", - "reth-ethereum-engine-primitives 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-execution-types 1.9.0", - "reth-fs-util 1.9.0", - "reth-metrics 1.9.0", - "reth-nippy-jar", - "reth-node-types", - "reth-primitives-traits 1.9.0", - "reth-prune-types 1.9.0", - "reth-stages-types 1.9.0", - "reth-static-file-types 1.9.0", - "reth-storage-api 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie 1.9.0", - "reth-trie-db", - "revm-database 9.0.3", - "revm-state 8.1.0", - "strum 0.27.2", - "tokio", - "tracing", -] - -[[package]] -name = "reth-prune" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "itertools 0.14.0", - "metrics", - "rayon", - "reth-config", - "reth-db-api", - "reth-errors 1.9.0", - "reth-exex-types", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune-types 1.9.0", - "reth-static-file-types 1.9.0", - "reth-tokio-util", - "rustc-hash 2.1.1", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-prune-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "derive_more", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-prune-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "arbitrary", - "derive_more", - "modular-bitfield", - "reth-codecs 1.9.0", - "serde", - "strum 0.27.2", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-ress-protocol" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "futures", - "reth-eth-wire", - "reth-ethereum-primitives 1.9.0", - "reth-network", - "reth-network-api", - "reth-storage-errors 1.9.0", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-ress-provider" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "eyre", - "futures", - "parking_lot", - "reth-chain-state 1.9.0", - "reth-errors 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-node-api", - "reth-primitives-traits 1.9.0", - "reth-ress-protocol", - "reth-revm 1.9.0", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-tokio-util", - "reth-trie 1.9.0", - "schnellru", - "tokio", - "tracing", -] - -[[package]] -name = "reth-revm" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie 1.6.0", - "revm 27.1.0", -] - -[[package]] -name = "reth-revm" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie 1.9.0", - "revm 31.0.0", -] - -[[package]] -name = "reth-rpc" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-dyn-abi", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-genesis", - "alloy-network", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-client", - "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", - "futures", - "http", - "http-body", - "hyper", - "itertools 0.14.0", - "jsonrpsee 0.26.0", - "jsonrpsee-types 0.26.0", - "jsonwebtoken", - "parking_lot", - "pin-project", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-consensus-common 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-errors 1.9.0", - "reth-evm 1.9.0", - "reth-evm-ethereum", - "reth-execution-types 1.9.0", - "reth-metrics 1.9.0", - "reth-network-api", - "reth-network-peers 1.9.0", - "reth-network-types", - "reth-node-api", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-rpc-api", - "reth-rpc-convert", - "reth-rpc-engine-api", - "reth-rpc-eth-api", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-transaction-pool 1.9.0", - "reth-trie-common 1.9.0", - "revm 31.0.0", - "revm-inspectors", - "revm-primitives 21.0.1", - "serde", - "serde_json", - "sha2 0.10.9", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-rpc-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-genesis", - "alloy-json-rpc", - "alloy-primitives", - "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 0.26.0", - "reth-chain-state 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-network-peers 1.9.0", - "reth-rpc-eth-api", - "reth-trie-common 1.9.0", -] - -[[package]] -name = "reth-rpc-builder" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-network", - "alloy-provider", - "dyn-clone", - "http", - "jsonrpsee 0.26.0", - "metrics", - "pin-project", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-consensus 1.9.0", - "reth-evm 1.9.0", - "reth-ipc", - "reth-metrics 1.9.0", - "reth-network-api", - "reth-node-core", - "reth-primitives-traits 1.9.0", - "reth-rpc", - "reth-rpc-api", - "reth-rpc-eth-api", - "reth-rpc-eth-types", - "reth-rpc-layer", - "reth-rpc-server-types", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-transaction-pool 1.9.0", - "serde", - "thiserror 2.0.17", - "tokio", - "tokio-util", - "tower 0.5.2", - "tower-http", - "tracing", -] - -[[package]] -name = "reth-rpc-convert" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-json-rpc", - "alloy-network", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-signer", - "auto_impl", - "dyn-clone", - "jsonrpsee-types 0.26.0", - "op-alloy-consensus 0.22.0", - "op-alloy-network", - "op-alloy-rpc-types 0.22.0", - "op-revm 12.0.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-optimism-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "revm-context 11.0.0", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-rpc-engine-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "async-trait", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "metrics", - "parking_lot", - "reth-chainspec 1.9.0", - "reth-engine-primitives 1.9.0", - "reth-metrics 1.9.0", - "reth-payload-builder 1.9.0", - "reth-payload-builder-primitives 1.9.0", - "reth-payload-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-rpc-api", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-transaction-pool 1.9.0", - "serde", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-rpc-eth-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-dyn-abi", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-json-rpc", - "alloy-network", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-rpc-types-mev", - "alloy-serde", - "async-trait", - "auto_impl", - "dyn-clone", - "futures", - "jsonrpsee 0.26.0", - "jsonrpsee-types 0.26.0", - "parking_lot", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-errors 1.9.0", - "reth-evm 1.9.0", - "reth-network-api", - "reth-node-api", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-rpc-convert", - "reth-rpc-eth-types", - "reth-rpc-server-types", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-transaction-pool 1.9.0", - "reth-trie-common 1.9.0", - "revm 31.0.0", - "revm-inspectors", - "tokio", - "tracing", -] - -[[package]] -name = "reth-rpc-eth-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-evm 0.23.1", - "alloy-network", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "derive_more", - "futures", - "itertools 0.14.0", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "metrics", - "rand 0.9.2", - "reqwest", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-errors 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-revm 1.9.0", - "reth-rpc-convert", - "reth-rpc-server-types", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "reth-transaction-pool 1.9.0", - "reth-trie 1.9.0", - "revm 31.0.0", - "revm-inspectors", - "schnellru", - "serde", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "reth-rpc-layer" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-rpc-types-engine", - "http", - "jsonrpsee-http-client 0.26.0", - "pin-project", - "tower 0.5.2", - "tower-http", - "tracing", -] - -[[package]] -name = "reth-rpc-server-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "jsonrpsee-core 0.26.0", - "jsonrpsee-types 0.26.0", - "reth-errors 1.9.0", - "reth-network-api", - "serde", - "strum 0.27.2", -] - -[[package]] -name = "reth-stages" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "bincode", - "eyre", - "futures-util", - "itertools 0.14.0", - "num-traits", - "rayon", - "reqwest", - "reth-chainspec 1.9.0", - "reth-codecs 1.9.0", - "reth-config", - "reth-consensus 1.9.0", - "reth-db", - "reth-db-api", - "reth-era", - "reth-era-downloader", - "reth-era-utils", - "reth-ethereum-primitives 1.9.0", - "reth-etl", - "reth-evm 1.9.0", - "reth-execution-types 1.9.0", - "reth-exex", - "reth-fs-util 1.9.0", - "reth-network-p2p", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune", - "reth-prune-types 1.9.0", - "reth-revm 1.9.0", - "reth-stages-api", - "reth-static-file-types 1.9.0", - "reth-storage-errors 1.9.0", - "reth-testing-utils", - "reth-trie 1.9.0", - "reth-trie-db", - "tempfile", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-stages-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "aquamarine", - "auto_impl", - "futures-util", - "metrics", - "reth-consensus 1.9.0", - "reth-errors 1.9.0", - "reth-metrics 1.9.0", - "reth-network-p2p", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune", - "reth-stages-types 1.9.0", - "reth-static-file", - "reth-static-file-types 1.9.0", - "reth-tokio-util", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "reth-stages-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "reth-trie-common 1.6.0", -] - -[[package]] -name = "reth-stages-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "arbitrary", - "bytes", - "modular-bitfield", - "reth-codecs 1.9.0", - "reth-trie-common 1.9.0", - "serde", -] - -[[package]] -name = "reth-static-file" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "parking_lot", - "rayon", - "reth-codecs 1.9.0", - "reth-db-api", - "reth-primitives-traits 1.9.0", - "reth-provider", - "reth-prune-types 1.9.0", - "reth-stages-types 1.9.0", - "reth-static-file-types 1.9.0", - "reth-storage-errors 1.9.0", - "reth-tokio-util", - "tracing", -] - -[[package]] -name = "reth-static-file-types" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-primitives", - "derive_more", - "serde", - "strum 0.27.2", -] - -[[package]] -name = "reth-static-file-types" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-primitives", - "clap", - "derive_more", - "serde", - "strum 0.27.2", -] - -[[package]] -name = "reth-storage-api" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec 1.6.0", - "reth-db-models 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "revm-database 7.0.5", -] - -[[package]] -name = "reth-storage-api" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec 1.9.0", - "reth-db-api", - "reth-db-models 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-execution-types 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-prune-types 1.9.0", - "reth-stages-types 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie-common 1.9.0", - "revm-database 9.0.3", -] - -[[package]] -name = "reth-storage-errors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more", - "reth-primitives-traits 1.6.0", - "reth-prune-types 1.6.0", - "reth-static-file-types 1.6.0", - "revm-database-interface 7.0.5", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-storage-errors" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more", - "reth-primitives-traits 1.9.0", - "reth-prune-types 1.9.0", - "reth-static-file-types 1.9.0", - "revm-database-interface 8.0.4", - "thiserror 2.0.17", -] - -[[package]] -name = "reth-tasks" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" -dependencies = [ - "auto_impl", - "dyn-clone", - "futures-util", - "metrics", - "reth-metrics 1.6.0", - "thiserror 2.0.17", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-tasks" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" -dependencies = [ - "auto_impl", - "dyn-clone", - "futures-util", - "metrics", - "pin-project", - "rayon", - "reth-metrics 1.9.0", - "thiserror 2.0.17", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "reth-testing-utils" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "rand 0.8.5", - "rand 0.9.2", - "reth-ethereum-primitives 1.9.0", - "reth-primitives-traits 1.9.0", - "secp256k1 0.30.0", + "autocfg", + "libm", ] [[package]] -name = "reth-tokio-util" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "tokio", - "tokio-stream", - "tracing", + "hermit-abi", + "libc", ] [[package]] -name = "reth-tracing" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "num_enum" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ - "clap", - "eyre", - "reth-tracing-otlp", - "rolling-file", - "tracing", - "tracing-appender", - "tracing-journald", - "tracing-logfmt", - "tracing-subscriber 0.3.20", - "url", + "num_enum_derive", + "rustversion", ] [[package]] -name = "reth-tracing-otlp" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "num_enum_derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ - "clap", - "eyre", - "opentelemetry 0.31.0", - "opentelemetry-otlp 0.31.0", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk 0.31.0", - "tracing", - "tracing-opentelemetry 0.32.0", - "tracing-subscriber 0.3.20", - "url", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "reth-transaction-pool" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "nybbles" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", "alloy-rlp", - "aquamarine", - "auto_impl", - "bitflags 2.10.0", - "futures-util", - "metrics", - "parking_lot", - "reth-chain-state 1.6.0", - "reth-chainspec 1.6.0", - "reth-eth-wire-types 1.6.0", - "reth-ethereum-primitives 1.6.0", - "reth-execution-types 1.6.0", - "reth-fs-util 1.6.0", - "reth-metrics 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-storage-api 1.6.0", - "reth-tasks 1.6.0", - "revm-interpreter 23.0.2", - "revm-primitives 20.2.1", - "rustc-hash 2.1.1", - "schnellru", + "cfg-if", + "proptest", + "ruint", + "serde", "smallvec", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", ] [[package]] -name = "reth-transaction-pool" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "op-alloy-consensus" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42e9de945efe3c2fbd207e69720c9c1af2b8caa6872aee0e216450c25a3ca70" dependencies = [ "alloy-consensus", "alloy-eips", + "alloy-network", "alloy-primitives", "alloy-rlp", - "aquamarine", - "auto_impl", - "bitflags 2.10.0", - "futures-util", - "metrics", - "parking_lot", - "paste", - "pin-project", - "rand 0.9.2", - "reth-chain-state 1.9.0", - "reth-chainspec 1.9.0", - "reth-eth-wire-types 1.9.0", - "reth-ethereum-primitives 1.9.0", - "reth-execution-types 1.9.0", - "reth-fs-util 1.9.0", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-storage-api 1.9.0", - "reth-tasks 1.9.0", - "revm-interpreter 29.0.0", - "revm-primitives 21.0.1", - "rustc-hash 2.1.1", - "schnellru", + "alloy-rpc-types-eth", + "alloy-serde", + "derive_more", "serde", - "serde_json", - "smallvec", "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", ] [[package]] -name = "reth-trie" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "op-alloy-network" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9da49a2812a0189dd05e81e4418c3ae13fd607a92654107f02ebad8e91ed9e" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-network", "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "itertools 0.14.0", - "reth-execution-errors 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-stages-types 1.6.0", - "reth-storage-errors 1.6.0", - "reth-trie-common 1.6.0", - "reth-trie-sparse 1.6.0", - "revm-database 7.0.5", - "tracing", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-signer", + "op-alloy-consensus", + "op-alloy-rpc-types", ] [[package]] -name = "reth-trie" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "op-alloy-rpc-jsonrpsee" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ceb771ab9323647093ea2e58dc7f25289a1b95cbef2faa2620f6ca2dee4d9" dependencies = [ - "alloy-consensus", - "alloy-eips", "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "itertools 0.14.0", - "metrics", - "reth-execution-errors 1.9.0", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-stages-types 1.9.0", - "reth-storage-errors 1.9.0", - "reth-trie-common 1.9.0", - "reth-trie-sparse 1.9.0", - "revm-database 9.0.3", - "tracing", - "triehash", + "jsonrpsee", ] [[package]] -name = "reth-trie-common" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "op-alloy-rpc-types" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cd1eb7bddd2232856ba9d259320a094f9edf2b9061acfe5966e7960208393e6" dependencies = [ "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", "alloy-primitives", - "alloy-rlp", - "alloy-trie", + "alloy-rpc-types-eth", + "alloy-serde", "derive_more", - "itertools 0.14.0", - "nybbles", - "rayon", - "reth-primitives-traits 1.6.0", - "revm-database 7.0.5", + "op-alloy-consensus", + "serde", + "serde_json", + "thiserror 2.0.17", ] [[package]] -name = "reth-trie-common" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "op-alloy-rpc-types-engine" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5429622150d18d8e6847a701135082622413e2451b64d03f979415d764566bef" dependencies = [ "alloy-consensus", + "alloy-eips", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde", - "alloy-trie", - "arbitrary", - "arrayvec", - "bytes", + "alloy-rpc-types-engine", "derive_more", - "hash-db", - "itertools 0.14.0", - "nybbles", - "plain_hasher", - "rayon", - "reth-codecs 1.9.0", - "reth-primitives-traits 1.9.0", - "revm-database 9.0.3", - "serde", - "serde_with", + "op-alloy-consensus", + "thiserror 2.0.17", ] [[package]] -name = "reth-trie-db" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "openssl" +version = "0.10.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" dependencies = [ - "alloy-primitives", - "reth-db-api", - "reth-execution-errors 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-trie 1.9.0", - "tracing", + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", ] [[package]] -name = "reth-trie-parallel" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "alloy-primitives", - "alloy-rlp", - "crossbeam-channel", - "dashmap 6.1.0", - "derive_more", - "itertools 0.14.0", - "metrics", - "rayon", - "reth-execution-errors 1.9.0", - "reth-metrics 1.9.0", - "reth-provider", - "reth-storage-errors 1.9.0", - "reth-trie 1.9.0", - "reth-trie-common 1.9.0", - "reth-trie-sparse 1.9.0", - "thiserror 2.0.17", - "tokio", - "tracing", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "reth-trie-sparse" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.110" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "reth-execution-errors 1.6.0", - "reth-primitives-traits 1.6.0", - "reth-trie-common 1.6.0", - "smallvec", - "tracing", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] -name = "reth-trie-sparse" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "parity-scale-codec" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "metrics", - "rayon", - "reth-execution-errors 1.9.0", - "reth-metrics 1.9.0", - "reth-primitives-traits 1.9.0", - "reth-trie-common 1.9.0", - "smallvec", - "tracing", + "arrayvec", + "bitvec", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "rustversion", + "serde", ] [[package]] -name = "reth-trie-sparse-parallel" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "parity-scale-codec-derive" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "metrics", - "rayon", - "reth-execution-errors 1.9.0", - "reth-metrics 1.9.0", - "reth-trie-common 1.9.0", - "reth-trie-sparse 1.9.0", - "smallvec", - "tracing", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "reth-zstd-compressors" -version = "1.6.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.6.0#d8451e54e7267f9f1634118d6d279b2216f7e2bb" +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ - "zstd", + "lock_api", + "parking_lot_core", ] [[package]] -name = "reth-zstd-compressors" -version = "1.9.0" -source = "git+https://github.com/paradigmxyz/reth?tag=v1.9.0#84785f025eac5eed123997454998db77a299e1e5" +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ - "zstd", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-link", ] [[package]] -name = "revm" -version = "27.1.0" +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbkdf2" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6bf82101a1ad8a2b637363a37aef27f88b4efc8a6e24c72bf5f64923dc5532" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "revm-bytecode 6.2.2", - "revm-context 8.0.4", - "revm-context-interface 9.0.0", - "revm-database 7.0.5", - "revm-database-interface 7.0.5", - "revm-handler 8.1.0", - "revm-inspector 8.1.0", - "revm-interpreter 24.0.0", - "revm-precompile 25.0.0", - "revm-primitives 20.2.1", - "revm-state 7.0.5", + "digest 0.10.7", + "hmac", ] [[package]] -name = "revm" -version = "31.0.0" +name = "percent-encoding" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7bba993ce958f0b6eb23d2644ea8360982cb60baffedf961441e36faba6a2ca" -dependencies = [ - "revm-bytecode 7.1.0", - "revm-context 11.0.0", - "revm-context-interface 12.0.0", - "revm-database 9.0.3", - "revm-database-interface 8.0.4", - "revm-handler 12.0.0", - "revm-inspector 12.0.0", - "revm-interpreter 29.0.0", - "revm-precompile 29.0.0", - "revm-primitives 21.0.1", - "revm-state 8.1.0", -] +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] -name = "revm-bytecode" -version = "6.2.2" +name = "pest" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c52031b73cae95d84cd1b07725808b5fd1500da3e5e24574a3b2dc13d9f16d" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ - "bitvec", - "phf 0.11.3", - "revm-primitives 20.2.1", - "serde", + "memchr", + "ucd-trie", ] [[package]] -name = "revm-bytecode" -version = "7.1.0" +name = "pin-project" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2b51c414b7e79edd4a0569d06e2c4c029f8b60e5f3ee3e2fa21dc6c3717ee3" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ - "bitvec", - "phf 0.13.1", - "revm-primitives 21.0.1", - "serde", + "pin-project-internal", ] [[package]] -name = "revm-context" -version = "8.0.4" +name = "pin-project-internal" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd508416a35a4d8a9feaf5ccd06ac6d6661cd31ee2dc0252f9f7316455d71f9" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ - "cfg-if", - "derive-where", - "revm-bytecode 6.2.2", - "revm-context-interface 9.0.0", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "revm-context" -version = "11.0.0" +name = "pin-project-lite" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f69efee45130bd9e5b0a7af27552fddc70bc161dafed533c2f818a2d1eb654e6" -dependencies = [ - "bitvec", - "cfg-if", - "derive-where", - "revm-bytecode 7.1.0", - "revm-context-interface 12.0.0", - "revm-database-interface 8.0.4", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", -] +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] -name = "revm-context-interface" -version = "8.0.1" +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a303a93102fceccec628265efd550ce49f2817b38ac3a492c53f7d524f18a1ca" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", -] +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] -name = "revm-context-interface" -version = "9.0.0" +name = "pkcs8" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc90302642d21c8f93e0876e201f3c5f7913c4fcb66fb465b0fd7b707dfe1c79" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", + "der", + "spki", ] [[package]] -name = "revm-context-interface" -version = "12.0.0" +name = "pkg-config" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce2525e93db0ae2a3ec7dcde5443dfdb6fbf321c5090380d775730c67bc6cee" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "auto_impl", - "either", - "revm-database-interface 8.0.4", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", -] +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] -name = "revm-database" -version = "7.0.5" +name = "potential_utf" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a276ed142b4718dcf64bc9624f474373ed82ef20611025045c3fb23edbef9c" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ - "alloy-eips", - "revm-bytecode 6.2.2", - "revm-database-interface 7.0.5", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", + "zerovec", ] [[package]] -name = "revm-database" -version = "9.0.3" +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2602625aa11ab1eda8e208e96b652c0bfa989b86c104a36537a62b081228af9" -dependencies = [ - "alloy-eips", - "revm-bytecode 7.1.0", - "revm-database-interface 8.0.4", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", -] +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] -name = "revm-database-interface" -version = "7.0.5" +name = "ppv-lite86" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c523c77e74eeedbac5d6f7c092e3851dbe9c7fec6f418b85992bd79229db361" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "auto_impl", - "either", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", + "zerocopy", ] [[package]] -name = "revm-database-interface" -version = "8.0.4" +name = "primitive-types" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58a4621143d6515e32f969306d9c85797ae0d3fe0c74784f1fda02ba441e5a08" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ - "auto_impl", - "either", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", + "fixed-hash", + "impl-codec", + "uint", ] [[package]] -name = "revm-handler" -version = "8.1.0" +name = "proc-macro-crate" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1529c8050e663be64010e80ec92bf480315d21b1f2dbf65540028653a621b27d" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode 6.2.2", - "revm-context 8.0.4", - "revm-context-interface 9.0.0", - "revm-database-interface 7.0.5", - "revm-interpreter 24.0.0", - "revm-precompile 25.0.0", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", + "toml_edit", ] [[package]] -name = "revm-handler" -version = "12.0.0" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e756198d43b6c4c5886548ffbc4594412d1a82b81723525c6e85ed6da0e91c5f" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "auto_impl", - "derive-where", - "revm-bytecode 7.1.0", - "revm-context 11.0.0", - "revm-context-interface 12.0.0", - "revm-database-interface 8.0.4", - "revm-interpreter 29.0.0", - "revm-precompile 29.0.0", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", + "proc-macro2", + "quote", ] [[package]] -name = "revm-inspector" -version = "8.1.0" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78db140e332489094ef314eaeb0bd1849d6d01172c113ab0eb6ea8ab9372926" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ - "auto_impl", - "either", - "revm-context 8.0.4", - "revm-database-interface 7.0.5", - "revm-handler 8.1.0", - "revm-interpreter 24.0.0", - "revm-primitives 20.2.1", - "revm-state 7.0.5", - "serde", - "serde_json", + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "revm-inspector" -version = "12.0.0" +name = "proc-macro2" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fdd1e74cc99c6173c8692b6e480291e2ad0c21c716d9dc16e937ab2e0da219" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ - "auto_impl", - "either", - "revm-context 11.0.0", - "revm-database-interface 8.0.4", - "revm-handler 12.0.0", - "revm-interpreter 29.0.0", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", - "serde_json", + "unicode-ident", ] [[package]] -name = "revm-inspectors" -version = "0.32.0" +name = "proptest" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21caa99f22184a6818946362778cccd3ff02f743c1e085bee87700671570ecb7" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-rpc-types-trace", - "alloy-sol-types", - "anstyle", - "boa_engine", - "boa_gc", - "colorchoice", - "revm 31.0.0", - "serde", - "serde_json", - "thiserror 2.0.17", + "bit-set", + "bit-vec", + "bitflags", + "num-traits", + "rand 0.9.2", + "rand_chacha 0.9.0", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", ] [[package]] -name = "revm-interpreter" -version = "23.0.2" +name = "quick-error" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95c4a9a1662d10b689b66b536ddc2eb1e89f5debfcabc1a2d7b8417a2fa47cd" -dependencies = [ - "revm-bytecode 6.2.2", - "revm-context-interface 8.0.1", - "revm-primitives 20.2.1", -] +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] -name = "revm-interpreter" -version = "24.0.0" +name = "quinn" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff9d7d9d71e8a33740b277b602165b6e3d25fff091ba3d7b5a8d373bf55f28a7" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ - "revm-bytecode 6.2.2", - "revm-context-interface 9.0.0", - "revm-primitives 20.2.1", - "serde", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.17", + "tokio", + "tracing", + "web-time", ] [[package]] -name = "revm-interpreter" -version = "29.0.0" +name = "quinn-proto" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44efb7c2f4034a5bfd3d71ebfed076e48ac75e4972f1c117f2a20befac7716cd" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ - "revm-bytecode 7.1.0", - "revm-context-interface 12.0.0", - "revm-primitives 21.0.1", - "revm-state 8.1.0", - "serde", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.2", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.17", + "tinyvec", + "tracing", + "web-time", ] [[package]] -name = "revm-precompile" -version = "25.0.0" +name = "quinn-udp" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cee3f336b83621294b4cfe84d817e3eef6f3d0fce00951973364cc7f860424d" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "arrayref", - "aurora-engine-modexp", - "c-kzg", - "cfg-if", - "k256", - "libsecp256k1", + "cfg_aliases", + "libc", "once_cell", - "p256", - "revm-primitives 20.2.1", - "ripemd", - "rug", - "secp256k1 0.31.1", - "sha2 0.10.9", + "socket2", + "tracing", + "windows-sys 0.60.2", ] [[package]] -name = "revm-precompile" -version = "29.0.0" +name = "quote" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585098ede6d84d6fc6096ba804b8e221c44dc77679571d32664a55e665aa236b" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-ec", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "arrayref", - "aurora-engine-modexp", - "blst", - "c-kzg", - "cfg-if", - "k256", - "p256", - "revm-primitives 21.0.1", - "ripemd", - "rug", - "secp256k1 0.31.1", - "sha2 0.10.9", + "proc-macro2", ] [[package]] -name = "revm-primitives" -version = "20.2.1" +name = "r-efi" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" -dependencies = [ - "alloy-primitives", - "num_enum", - "once_cell", - "serde", -] +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] -name = "revm-primitives" -version = "21.0.1" +name = "radium" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "536f30e24c3c2bf0d3d7d20fa9cf99b93040ed0f021fd9301c78cddb0dacda13" -dependencies = [ - "alloy-primitives", - "num_enum", - "once_cell", - "serde", -] +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] -name = "revm-state" -version = "7.0.5" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "bitflags 2.10.0", - "revm-bytecode 6.2.2", - "revm-primitives 20.2.1", + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "serde", ] [[package]] -name = "revm-state" -version = "8.1.0" +name = "rand" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0b4873815e31cbc3e5b183b9128b86c09a487c027aaf8cc5cf4b9688878f9b" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "bitflags 2.10.0", - "revm-bytecode 7.1.0", - "revm-primitives 21.0.1", + "rand_chacha 0.9.0", + "rand_core 0.9.3", "serde", ] [[package]] -name = "rfc6979" -version = "0.4.0" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ - "hmac", - "subtle", + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] -name = "ring" -version = "0.17.14" +name = "rand_chacha" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.16", - "libc", - "untrusted", - "windows-sys 0.52.0", + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] -name = "ringbuffer" -version = "0.15.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] [[package]] -name = "ripemd" -version = "0.1.3" +name = "rand_core" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "digest 0.10.7", + "getrandom 0.3.4", + "serde", ] [[package]] -name = "rlimit" -version = "0.10.2" +name = "rand_xorshift" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "libc", + "rand_core 0.9.3", ] [[package]] -name = "rlp" -version = "0.5.2" +name = "redox_syscall" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bytes", - "rustc-hex", + "bitflags", ] [[package]] -name = "rmp" -version = "0.8.14" +name = "ref-cast" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ - "byteorder", - "num-traits", - "paste", + "ref-cast-impl", ] [[package]] -name = "rmp-serde" -version = "1.3.0" +name = "ref-cast-impl" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ - "byteorder", - "rmp", - "serde", + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] -name = "roaring" -version = "0.10.12" +name = "regex-automata" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ - "bytemuck", - "byteorder", + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] -name = "rolling-file" -version = "0.2.0" +name = "regex-syntax" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8395b4f860856b740f20a296ea2cd4d823e81a2658cf05ef61be22916026a906" -dependencies = [ - "chrono", -] +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] -name = "rollup-boost" -version = "0.1.0" -source = "git+http://github.com/flashbots/rollup-boost?rev=98fff8e059870d192739dd42d41f5244c49f4b9c#98fff8e059870d192739dd42d41f5244c49f4b9c" +name = "reqwest" +version = "0.12.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ - "alloy-primitives", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-serde", - "clap", - "dotenvy", - "eyre", - "futures", + "base64 0.22.1", + "bytes", + "futures-core", "http", + "http-body", "http-body-util", "hyper", "hyper-rustls", + "hyper-tls", "hyper-util", - "jsonrpsee 0.25.1", - "metrics", - "metrics-derive", - "metrics-exporter-prometheus", - "metrics-util", - "moka", - "op-alloy-rpc-types-engine 0.18.14", - "opentelemetry 0.28.0", - "opentelemetry-otlp 0.28.0", - "opentelemetry_sdk 0.28.0", - "parking_lot", - "paste", - "reth-optimism-payload-builder 1.6.0", + "js-sys", + "log", + "native-tls", + "percent-encoding", + "pin-project-lite", + "quinn", "rustls", + "rustls-pki-types", "serde", "serde_json", - "sha2 0.10.9", - "testcontainers", - "thiserror 2.0.17", + "serde_urlencoded", + "sync_wrapper", "tokio", - "tokio-tungstenite", - "tokio-util", - "tower 0.5.2", + "tokio-native-tls", + "tokio-rustls", + "tower", "tower-http", - "tracing", - "tracing-opentelemetry 0.29.0", - "tracing-subscriber 0.3.20", + "tower-service", "url", - "vergen", - "vergen-git2", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", ] [[package]] -name = "route-recognizer" -version = "0.3.1" +name = "rfc6979" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] [[package]] -name = "rsa" -version = "0.9.8" +name = "ring" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "const-oid", "digest 0.10.7", - "num-bigint-dig", - "num-integer", - "num-traits", - "pkcs1", - "pkcs8", - "rand_core 0.6.4", - "signature", - "spki", - "subtle", - "zeroize", ] [[package]] -name = "rug" -version = "1.28.0" +name = "rlp" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "az", - "gmp-mpfr-sys", - "libc", - "libm", + "bytes", + "rustc-hex", ] [[package]] @@ -11895,7 +3269,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", - "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", "ark-ff 0.5.0", @@ -11923,20 +3296,11 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - [[package]] name = "rustc-hash" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" -dependencies = [ - "rand 0.8.5", -] [[package]] name = "rustc-hex" @@ -11944,15 +3308,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustc_version" version = "0.3.3" @@ -11971,29 +3326,16 @@ dependencies = [ "semver 1.0.27", ] -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - [[package]] name = "rustix" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.10.0", + "bitflags", "errno", "libc", - "linux-raw-sys 0.11.0", + "linux-raw-sys", "windows-sys 0.61.2", ] @@ -12003,8 +3345,6 @@ version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ - "aws-lc-rs", - "log", "once_cell", "ring", "rustls-pki-types", @@ -12013,27 +3353,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9980d917ebb0c0536119ba501e90834767bffc3d60641457fd84a1f3fd337923" -dependencies = [ - "openssl-probe", - "rustls-pki-types", - "schannel", - "security-framework 3.5.1", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" version = "1.13.0" @@ -12044,40 +3363,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-platform-verifier" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" -dependencies = [ - "core-foundation 0.10.1", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework 3.5.1", - "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", -] - -[[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.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ - "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -12107,21 +3398,6 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" -[[package]] -name = "ryu-js" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd29631678d6fb0903b69223673e122c32e9ae559d0960a38d574695ebc0ea15" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "schannel" version = "0.1.28" @@ -12155,23 +3431,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "schnellru" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -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" @@ -12201,21 +3460,10 @@ checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", "rand 0.8.5", - "secp256k1-sys 0.10.1", + "secp256k1-sys", "serde", ] -[[package]] -name = "secp256k1" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" -dependencies = [ - "bitcoin_hashes", - "rand 0.9.2", - "secp256k1-sys 0.11.0", -] - [[package]] name = "secp256k1-sys" version = "0.10.1" @@ -12225,36 +3473,14 @@ dependencies = [ "cc", ] -[[package]] -name = "secp256k1-sys" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" -dependencies = [ - "cc", -] - [[package]] name = "security-framework" version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.10.1", + "bitflags", + "core-foundation", "core-foundation-sys", "libc", "security-framework-sys", @@ -12270,39 +3496,20 @@ dependencies = [ "libc", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser 0.7.0", -] - [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.3", -] - -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" -dependencies = [ - "serde", - "serde_core", + "semver-parser", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "semver" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "semver-parser" @@ -12313,18 +3520,6 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -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 = "serde" version = "1.0.228" @@ -12361,7 +3556,6 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.12.0", "itoa", "memchr", "ryu", @@ -12369,26 +3563,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "serde_repr" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -12426,7 +3600,7 @@ version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ - "darling 0.21.3", + "darling", "proc-macro2", "quote", "syn 2.0.108", @@ -12442,30 +3616,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha2" version = "0.10.9" @@ -12506,15 +3656,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shellexpand" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" -dependencies = [ - "dirs", -] - [[package]] name = "shlex" version = "1.3.0" @@ -12537,28 +3678,7 @@ dependencies = [ "clap", "tokio", "tracing", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "signal-hook" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" -dependencies = [ - "libc", - "mio", - "signal-hook", + "tracing-subscriber", ] [[package]] @@ -12580,92 +3700,21 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simd-adler32" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" - -[[package]] -name = "simple_asn1" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.17", - "time", -] - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[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.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e9a774a6c28142ac54bb25d25562e6bcf957493a184f15ad4eebccb23e410a" - [[package]] name = "slab" version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" -[[package]] -name = "small_btree" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ba60d2df92ba73864714808ca68c059734853e6ab722b40e1cf543ebb3a057a" -dependencies = [ - "arrayvec", -] - [[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" dependencies = [ - "arbitrary", "serde", ] -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.1" @@ -12677,241 +3726,13 @@ dependencies = [ ] [[package]] -name = "soketto" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha1", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spin" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sqlx" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" -dependencies = [ - "sqlx-core", - "sqlx-macros", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", -] - -[[package]] -name = "sqlx-core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" -dependencies = [ - "base64 0.22.1", - "bytes", - "chrono", - "crc", - "crossbeam-queue", - "either", - "event-listener", - "futures-core", - "futures-intrusive", - "futures-io", - "futures-util", - "hashbrown 0.15.5", - "hashlink 0.10.0", - "indexmap 2.12.0", - "log", - "memchr", - "native-tls", - "once_cell", - "percent-encoding", - "serde", - "serde_json", - "sha2 0.10.9", - "smallvec", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", - "url", - "uuid", -] - -[[package]] -name = "sqlx-macros" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" -dependencies = [ - "proc-macro2", - "quote", - "sqlx-core", - "sqlx-macros-core", - "syn 2.0.108", -] - -[[package]] -name = "sqlx-macros-core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" -dependencies = [ - "dotenvy", - "either", - "heck", - "hex", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "sha2 0.10.9", - "sqlx-core", - "sqlx-mysql", - "sqlx-postgres", - "sqlx-sqlite", - "syn 2.0.108", - "tokio", - "url", -] - -[[package]] -name = "sqlx-mysql" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" -dependencies = [ - "atoi", - "base64 0.22.1", - "bitflags 2.10.0", - "byteorder", - "bytes", - "chrono", - "crc", - "digest 0.10.7", - "dotenvy", - "either", - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "generic-array", - "hex", - "hkdf", - "hmac", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "percent-encoding", - "rand 0.8.5", - "rsa", - "serde", - "sha1", - "sha2 0.10.9", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.17", - "tracing", - "uuid", - "whoami", -] - -[[package]] -name = "sqlx-postgres" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" -dependencies = [ - "atoi", - "base64 0.22.1", - "bitflags 2.10.0", - "byteorder", - "chrono", - "crc", - "dotenvy", - "etcetera", - "futures-channel", - "futures-core", - "futures-util", - "hex", - "hkdf", - "hmac", - "home", - "itoa", - "log", - "md-5", - "memchr", - "once_cell", - "rand 0.8.5", - "serde", - "serde_json", - "sha2 0.10.9", - "smallvec", - "sqlx-core", - "stringprep", - "thiserror 2.0.17", - "tracing", - "uuid", - "whoami", -] - -[[package]] -name = "sqlx-sqlite" -version = "0.8.6" +name = "spki" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ - "atoi", - "chrono", - "flume", - "futures-channel", - "futures-core", - "futures-executor", - "futures-intrusive", - "futures-util", - "libsqlite3-sys", - "log", - "percent-encoding", - "serde", - "serde_urlencoded", - "sqlx-core", - "thiserror 2.0.17", - "tracing", - "url", - "uuid", + "base64ct", + "der", ] [[package]] @@ -12926,75 +3747,19 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "structmeta" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e1575d8d40908d70f6fd05537266b90ae71b15dbbe7a8b7dffa2b759306d329" -dependencies = [ - "proc-macro2", - "quote", - "structmeta-derive", - "syn 2.0.108", -] - -[[package]] -name = "structmeta-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[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.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros 0.27.2", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.108", + "strum_macros", ] [[package]] @@ -13069,80 +3834,12 @@ dependencies = [ "syn 2.0.108", ] -[[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]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[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 = "tag_ptr" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0e973b34477b7823833469eb0f5a3a60370fef7a453e02d751b59180d0a5a05" - -[[package]] -name = "tagptr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" - [[package]] name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" -[[package]] -name = "tar" -version = "0.4.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" -dependencies = [ - "filetime", - "libc", - "xattr", -] - -[[package]] -name = "tar-no-std" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac9ee8b664c9f1740cd813fea422116f8ba29997bb7c878d1940424889802897" -dependencies = [ - "bitflags 2.10.0", - "log", - "num-traits", -] - [[package]] name = "tempfile" version = "3.23.0" @@ -13152,54 +3849,10 @@ dependencies = [ "fastrand", "getrandom 0.3.4", "once_cell", - "rustix 1.1.2", + "rustix", "windows-sys 0.61.2", ] -[[package]] -name = "testcontainers" -version = "0.23.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a4f01f39bb10fc2a5ab23eb0d888b1e2bb168c157f61a1b98e6c501c639c74" -dependencies = [ - "async-trait", - "bollard", - "bollard-stubs", - "bytes", - "docker_credential", - "either", - "etcetera", - "futures", - "log", - "memchr", - "parse-display", - "pin-project-lite", - "serde", - "serde_json", - "serde_with", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tokio-tar", - "tokio-util", - "url", -] - -[[package]] -name = "testcontainers-modules" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d43ed4e8f58424c3a2c6c56dbea6643c3c23e8666a34df13c54f0a184e6c707" -dependencies = [ - "testcontainers", -] - -[[package]] -name = "thin-vec" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" - [[package]] name = "thiserror" version = "1.0.69" @@ -13258,37 +3911,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "tikv-jemalloc-ctl" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "661f1f6a57b3a36dc9174a2c10f19513b4866816e13425d3e418b11cc37bc24c" -dependencies = [ - "libc", - "paste", - "tikv-jemalloc-sys", -] - -[[package]] -name = "tikv-jemalloc-sys" -version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "tikv-jemallocator" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a" -dependencies = [ - "libc", - "tikv-jemalloc-sys", -] - [[package]] name = "time" version = "0.3.44" @@ -13297,10 +3919,7 @@ checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", - "js-sys", - "libc", "num-conv", - "num_threads", "powerfmt", "serde", "time-core", @@ -13370,7 +3989,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -13415,227 +4034,50 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tar" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5714c010ca3e5c27114c1cdeb9d14641ace49874aa5626d7149e47aedace75" -dependencies = [ - "filetime", - "futures-core", - "libc", - "redox_syscall 0.3.5", - "tokio", - "tokio-stream", - "xattr", -] - -[[package]] -name = "tokio-test" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" -dependencies = [ - "async-stream", - "bytes", - "futures-core", - "tokio", - "tokio-stream", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" -dependencies = [ - "futures-util", - "log", - "native-tls", - "rustls", - "rustls-native-certs", - "rustls-pki-types", - "tokio", - "tokio-native-tls", - "tokio-rustls", - "tungstenite", - "webpki-roots 0.26.11", -] - -[[package]] -name = "tokio-util" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite", - "slab", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_datetime" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" -dependencies = [ - "serde_core", -] - -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap 2.12.0", - "serde", - "serde_spanned", - "toml_datetime 0.6.11", - "toml_write", - "winnow", -] - -[[package]] -name = "toml_edit" -version = "0.23.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" -dependencies = [ - "indexmap 2.12.0", - "toml_datetime 0.7.3", - "toml_parser", - "winnow", -] - -[[package]] -name = "toml_parser" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" -dependencies = [ - "winnow", + "tokio-util", ] [[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "tonic" -version = "0.12.3" +name = "tokio-util" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.22.1", "bytes", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost 0.13.5", - "socket2 0.5.10", + "futures-core", + "futures-sink", + "pin-project-lite", "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", ] [[package]] -name = "tonic" -version = "0.14.2" +name = "toml_datetime" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ - "async-trait", - "base64 0.22.1", - "bytes", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "sync_wrapper", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tower-layer", - "tower-service", - "tracing", + "serde_core", ] [[package]] -name = "tonic-prost" -version = "0.14.2" +name = "toml_edit" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "bytes", - "prost 0.14.1", - "tonic 0.14.2", + "indexmap 2.12.0", + "toml_datetime", + "toml_parser", + "winnow", ] [[package]] -name = "tower" -version = "0.4.13" +name = "toml_parser" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", - "tower-layer", - "tower-service", - "tracing", + "winnow", ] [[package]] @@ -13646,16 +4088,11 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "hdrhistogram", - "indexmap 2.12.0", "pin-project-lite", - "slab", "sync_wrapper", "tokio", - "tokio-util", "tower-layer", "tower-service", - "tracing", ] [[package]] @@ -13664,29 +4101,16 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "async-compression", - "base64 0.22.1", - "bitflags 2.10.0", + "bitflags", "bytes", - "futures-core", "futures-util", "http", "http-body", - "http-body-util", - "http-range-header", - "httpdate", "iri-string", - "mime", - "mime_guess", - "percent-encoding", "pin-project-lite", - "tokio", - "tokio-util", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", - "tracing", - "uuid", ] [[package]] @@ -13707,24 +4131,11 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-appender" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror 1.0.69", - "time", - "tracing-subscriber 0.3.20", -] - [[package]] name = "tracing-attributes" version = "0.1.30" @@ -13746,87 +4157,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-journald" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" -dependencies = [ - "libc", - "tracing-core", - "tracing-subscriber 0.3.20", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -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 0.3.20", -] - -[[package]] -name = "tracing-opentelemetry" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721f2d2569dce9f3dfbbddee5906941e953bfcdf736a62da3377f5751650cc36" -dependencies = [ - "js-sys", - "once_cell", - "opentelemetry 0.28.0", - "opentelemetry_sdk 0.28.0", - "smallvec", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber 0.3.20", - "web-time", -] - -[[package]] -name = "tracing-opentelemetry" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6e5658463dd88089aba75c7791e1d3120633b1bfde22478b28f625a9bb1b8e" -dependencies = [ - "js-sys", - "opentelemetry 0.31.0", - "opentelemetry_sdk 0.31.0", - "rustversion", - "smallvec", - "thiserror 2.0.17", - "tracing", - "tracing-core", - "tracing-log", - "tracing-subscriber 0.3.20", - "web-time", -] - [[package]] name = "tracing-serde" version = "0.2.0" @@ -13837,15 +4167,6 @@ 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.20" @@ -13859,184 +4180,53 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec", "thread_local", "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "tree_hash" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" -dependencies = [ - "alloy-primitives", - "ethereum_hashing", - "ethereum_ssz", - "smallvec", - "typenum", -] - -[[package]] -name = "tree_hash_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bee2ea1551f90040ab0e34b6fb7f2fa3bad8acc925837ac654f2c78a13e3089" -dependencies = [ - "darling 0.20.11", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "triehash" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" -dependencies = [ - "hash-db", - "rlp", -] - -[[package]] -name = "triomphe" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" - -[[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", - "httparse", - "log", - "native-tls", - "rand 0.9.2", - "rustls", - "rustls-pki-types", - "sha1", - "thiserror 2.0.17", - "utf-8", -] - -[[package]] -name = "typenum" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "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", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicase" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" - -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - -[[package]] -name = "unicode-ident" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" + "tracing-core", + "tracing-serde", +] [[package]] -name = "unicode-normalization" -version = "0.1.25" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" -dependencies = [ - "tinyvec", -] +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] -name = "unicode-properties" -version = "0.1.4" +name = "typenum" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] -name = "unicode-segmentation" -version = "1.12.0" +name = "ucd-trie" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] -name = "unicode-truncate" -version = "1.1.0" +name = "uint" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" dependencies = [ - "itertools 0.13.0", - "unicode-segmentation", - "unicode-width 0.1.14", + "byteorder", + "crunchy", + "hex", + "static_assertions", ] [[package]] -name = "unicode-width" -version = "0.1.14" +name = "unarray" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] -name = "unicode-width" -version = "0.2.0" +name = "unicode-ident" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-xid" @@ -14044,22 +4234,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle", -] - -[[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.9.0" @@ -14078,18 +4252,6 @@ dependencies = [ "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -14102,18 +4264,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" -dependencies = [ - "getrandom 0.3.4", - "js-sys", - "serde", - "wasm-bindgen", -] - [[package]] name = "valuable" version = "0.1.1" @@ -14126,64 +4276,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "vergen" -version = "9.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" -dependencies = [ - "anyhow", - "cargo_metadata 0.19.2", - "derive_builder", - "regex", - "rustversion", - "time", - "vergen-lib", -] - -[[package]] -name = "vergen-git2" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6ee511ec45098eabade8a0750e76eec671e7fb2d9360c563911336bea9cac1" -dependencies = [ - "anyhow", - "derive_builder", - "git2", - "rustversion", - "time", - "vergen", - "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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "visibility" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - [[package]] name = "wait-timeout" version = "0.2.1" @@ -14193,16 +4291,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -14227,12 +4315,6 @@ dependencies = [ "wit-bindgen", ] -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - [[package]] name = "wasm-bindgen" version = "0.2.105" @@ -14271,290 +4353,80 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" -dependencies = [ - "bumpalo", - "proc-macro2", - "quote", - "syn 2.0.108", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.105" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wasm-streams" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmtimer" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" -dependencies = [ - "futures", - "js-sys", - "parking_lot", - "pin-utils", - "slab", - "wasm-bindgen", -] - -[[package]] -name = "web-sys" -version = "0.3.82" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki-root-certs" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" -dependencies = [ - "webpki-root-certs 1.0.4", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3e3b5f5e80bc89f30ce8d0343bf4e5f12341c51f3e26cbeecbc7c85443e85b" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "webpki-roots" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.4", -] - -[[package]] -name = "webpki-roots" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - -[[package]] -name = "whoami" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" -dependencies = [ - "libredox", - "wasite", -] - -[[package]] -name = "widestring" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" -dependencies = [ - "windows-sys 0.61.2", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[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.61.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" -dependencies = [ - "windows-collections 0.2.0", - "windows-core 0.61.2", - "windows-future 0.2.1", - "windows-link 0.1.3", - "windows-numerics 0.2.0", -] - -[[package]] -name = "windows" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" -dependencies = [ - "windows-collections 0.3.2", - "windows-core 0.62.2", - "windows-future 0.3.2", - "windows-numerics 0.3.1", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" -dependencies = [ - "windows-core 0.61.2", -] - -[[package]] -name = "windows-collections" -version = "0.3.2" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ - "windows-core 0.62.2", + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.108", + "wasm-bindgen-shared", ] [[package]] -name = "windows-core" -version = "0.57.0" +name = "wasm-bindgen-shared" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", - "windows-result 0.1.2", - "windows-targets 0.52.6", + "unicode-ident", ] [[package]] -name = "windows-core" -version = "0.61.2" +name = "wasmtimer" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", ] [[package]] -name = "windows-core" -version = "0.62.2" +name = "web-sys" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "windows-future" -version = "0.2.1" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", - "windows-threading 0.1.0", + "js-sys", + "wasm-bindgen", ] [[package]] -name = "windows-future" -version = "0.3.2" +name = "webpki-roots" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ - "windows-core 0.62.2", - "windows-link 0.2.1", - "windows-threading 0.2.1", + "rustls-pki-types", ] [[package]] -name = "windows-implement" -version = "0.57.0" +name = "windows-core" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", ] [[package]] @@ -14568,17 +4440,6 @@ dependencies = [ "syn 2.0.108", ] -[[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.108", -] - [[package]] name = "windows-interface" version = "0.59.3" @@ -14590,83 +4451,19 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-numerics" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", -] - -[[package]] -name = "windows-numerics" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" -dependencies = [ - "windows-core 0.62.2", - "windows-link 0.2.1", -] - -[[package]] -name = "windows-registry" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" -dependencies = [ - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", -] - -[[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.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - [[package]] name = "windows-result" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.2.1", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", + "windows-link", ] [[package]] @@ -14675,25 +4472,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.2.1", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", + "windows-link", ] [[package]] @@ -14705,15 +4484,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.60.2" @@ -14729,37 +4499,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-link", ] [[package]] @@ -14784,7 +4524,7 @@ version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.2.1", + "windows-link", "windows_aarch64_gnullvm 0.53.1", "windows_aarch64_msvc 0.53.1", "windows_i686_gnu 0.53.1", @@ -14795,36 +4535,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-threading" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" -dependencies = [ - "windows-link 0.2.1", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -14837,18 +4547,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -14861,18 +4559,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -14897,18 +4583,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -14921,18 +4595,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -14945,18 +4607,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -14969,18 +4619,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -15002,53 +4640,18 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "wit-bindgen" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" -[[package]] -name = "ws_stream_wasm" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror 2.0.17", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" @@ -15058,28 +4661,6 @@ dependencies = [ "tap", ] -[[package]] -name = "xattr" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" -dependencies = [ - "libc", - "rustix 1.1.2", -] - -[[package]] -name = "xsum" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0637d3a5566a82fa5214bae89087bc8c9fb94cd8e8a3c07feb691bb8d9c632db" - -[[package]] -name = "yansi" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" - [[package]] name = "yoke" version = "0.8.1" @@ -15197,31 +4778,3 @@ dependencies = [ "quote", "syn 2.0.108", ] - -[[package]] -name = "zstd" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/Cargo.toml b/Cargo.toml index 64f3ecd..13a06e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,19 @@ [workspace] resolver = "2" -members = ["crates/mempool-rebroadcaster", "crates/flashblocks-archiver", "crates/sidecrush"] +members = ["crates/mempool-rebroadcaster", "crates/sidecrush", "crates/gobrr", "bin/gobrr"] + +[workspace.package] +version = "0.1.0" +edition = "2021" +license = "MIT" + +[workspace.lints.rust] +missing-debug-implementations = "warn" +unreachable-pub = "warn" +unused-must-use = "deny" + +[workspace.lints.clippy] +all = { level = "warn", priority = -1 } [workspace.dependencies] clap = { version = "4.0", features = ["derive", "env"] } @@ -13,26 +26,41 @@ metrics = "0.24.1" metrics-derive = "0.1" cadence = "1.4" cadence-macros = "1.4" +axum = "0.8" +tower-http = { version = "0.6", features = ["trace"] } +anyhow = "1.0" +url = "2.5" +rand = "0.8" +reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } +dotenvy = "0.15.7" +async-trait = "0.1" # alloy -alloy-primitives = { version = "1.4.1", default-features = false, features = [ +alloy-primitives = { version = "1.0", default-features = false, features = [ "map-foldhash", + "serde", ] } -alloy-genesis = { version = "1.0.41", default-features = false } -alloy-eips = { version = "1.0.41", default-features = false } -alloy-rpc-types = { version = "1.0.41", default-features = false } -alloy-rpc-types-engine = { version = "1.0.41", default-features = false } -alloy-rpc-types-eth = { version = "1.0.41" } -alloy-consensus = { version = "1.0.41" } -alloy-trie = { version = "0.9.1", default-features = false } -alloy-provider = { version = "1.0.41" } -alloy-hardforks = { version = "0.4.4" } -alloy-rpc-client = { version = "1.0.41" } -alloy-transport-http = { version = "1.0.41" } +alloy-genesis = { version = "1.0", default-features = false } +alloy-eips = { version = "1.0", default-features = false } +alloy-rpc-types = { version = "1.0", default-features = false } +alloy-rpc-types-engine = { version = "1.0", default-features = false } +alloy-rpc-types-eth = { version = "1.0" } +alloy-consensus = { version = "1.0" } +alloy-trie = { version = "0.9", default-features = false } +alloy-provider = { version = "1.0" } +alloy-hardforks = { version = "0.4" } +alloy-rpc-client = { version = "1.0" } +alloy-transport-http = { version = "1.0" } +alloy-signer = { version = "1.0" } +alloy-signer-local = { version = "1.0", features = ["mnemonic"] } +alloy-network = { version = "1.0" } # op-alloy op-alloy-rpc-types = { version = "0.22.0", default-features = false } op-alloy-rpc-types-engine = { version = "0.22.0", default-features = false } op-alloy-rpc-jsonrpsee = { version = "0.22.0", default-features = false } -op-alloy-network = { version = "0.22.0", default-features = false } op-alloy-consensus = { version = "0.22.0", default-features = false } +op-alloy-network = { version = "0.22.0" } + +# internal +gobrr = { path = "crates/gobrr" } diff --git a/bin/gobrr/Cargo.toml b/bin/gobrr/Cargo.toml new file mode 100644 index 0000000..50e0d5f --- /dev/null +++ b/bin/gobrr/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "gobrr-bin" +version.workspace = true +edition.workspace = true +license.workspace = true + +[lints] +workspace = true + +[[bin]] +name = "gobrr" +path = "main.rs" + +[dependencies] +gobrr = { workspace = true } +clap = { workspace = true } +tokio = { workspace = true } +anyhow = { workspace = true } +tracing = { workspace = true } +tracing-subscriber = { workspace = true } diff --git a/bin/gobrr/main.rs b/bin/gobrr/main.rs new file mode 100644 index 0000000..a487e47 --- /dev/null +++ b/bin/gobrr/main.rs @@ -0,0 +1,15 @@ +use clap::Parser; +use gobrr::{Args, run_load_test}; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + tracing_subscriber::fmt() + .with_env_filter( + tracing_subscriber::EnvFilter::from_default_env() + .add_directive(tracing::Level::INFO.into()), + ) + .init(); + + let args = Args::parse(); + run_load_test(args).await +} diff --git a/crates/gobrr/Cargo.toml b/crates/gobrr/Cargo.toml new file mode 100644 index 0000000..b48fa87 --- /dev/null +++ b/crates/gobrr/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "gobrr" +version.workspace = true +edition.workspace = true +license.workspace = true + +[lints] +workspace = true + +[lib] +path = "src/lib.rs" + +[dependencies] +clap = { workspace = true } +tokio = { workspace = true } +anyhow = { workspace = true } +tracing = { workspace = true } +rand = { workspace = true } +url = { workspace = true } +reqwest = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +alloy-primitives = { workspace = true } +alloy-provider = { workspace = true } +alloy-network = { workspace = true } +alloy-signer = { workspace = true } +alloy-signer-local = { workspace = true } +alloy-consensus = { workspace = true } +alloy-rpc-types-eth = { workspace = true } +alloy-rpc-client = { workspace = true } +alloy-transport-http = { workspace = true } +op-alloy-network = { workspace = true } diff --git a/crates/gobrr/README.md b/crates/gobrr/README.md new file mode 100644 index 0000000..886c37f --- /dev/null +++ b/crates/gobrr/README.md @@ -0,0 +1,63 @@ +# gobrr + +Ethereum/OP Stack load tester that derives wallets from a mnemonic, funds them, and spams RPC endpoints with transactions. + +## Build + +```bash +cargo build --release -p gobrr-bin +``` + +## Usage + +```bash +./target/release/gobrr \ + --rpc "https://sepolia.base.org" \ + --mnemonic "your twelve word mnemonic phrase here" \ + --funder-key "0xYOUR_PRIVATE_KEY" \ + --funding-amount 10000000000000000 \ + --sender-count 10 \ + --duration 5m +``` + +## Key Options + +| Option | Default | Description | +|--------|---------|-------------| +| `--rpc` | - | Single RPC endpoint | +| `--rpc-endpoints` | - | Comma-separated endpoints for load distribution | +| `--endpoint-distribution` | `round-robin` | `round-robin`, `random`, or `weighted` | +| `--network` | `custom` | `sepolia` (base-sepolia.cbhq.net), `sepolia-alpha` (base-sepolia-alpha.cbhq.net), or `custom` | +| `--mnemonic` | - | HD wallet mnemonic for sender accounts | +| `--funder-key` | - | Private key with ETH to fund senders | +| `--funding-amount` | - | Wei to fund each sender | +| `--sender-count` | `10` | Number of concurrent senders | +| `--in-flight-per-sender` | `16` | Max concurrent requests per sender | +| `--rpc-methods` | `eth_sendRawTransaction` | Comma-separated RPC methods | +| `--tx-percentage` | `80` | Percentage of requests that are transactions | +| `--replay-mode` | `none` | `none`, `same-tx`, or `same-method` | +| `--replay-percentage` | `0` | Percentage of requests that are replays | +| `--duration` | - | Test duration (e.g., `60s`, `5m`). Omit to run until Ctrl+C | + +## Examples + +```bash +# Multi-endpoint load test +./target/release/gobrr \ + --rpc-endpoints "https://rpc1.com,https://rpc2.com" \ + --endpoint-distribution round-robin \ + --mnemonic "..." --funder-key "0x..." --funding-amount 10000000000000000 + +# Mixed read/write load +./target/release/gobrr \ + --rpc "https://sepolia.base.org" \ + --rpc-methods "eth_sendRawTransaction,eth_getBalance,eth_blockNumber" \ + --tx-percentage 50 \ + --mnemonic "..." --funder-key "0x..." --funding-amount 10000000000000000 + +# Replay mode (test caching/deduplication) +./target/release/gobrr \ + --rpc "https://sepolia.base.org" \ + --replay-mode same-tx --replay-percentage 20 \ + --mnemonic "..." --funder-key "0x..." --funding-amount 10000000000000000 +``` diff --git a/crates/gobrr/src/blocks.rs b/crates/gobrr/src/blocks.rs new file mode 100644 index 0000000..04c340a --- /dev/null +++ b/crates/gobrr/src/blocks.rs @@ -0,0 +1,127 @@ +use alloy_primitives::B256; +use alloy_provider::Provider; +use alloy_rpc_types_eth::BlockNumberOrTag; +use anyhow::{Context, Result}; +use tokio::sync::broadcast; +use tracing::{debug, info, warn}; + +use crate::client::{self, Provider as OpProvider}; + +/// Block event broadcast to consumers +#[derive(Debug, Clone)] +pub(crate) struct BlockEvent { + pub(crate) block_num: u64, + pub(crate) tx_hashes: Vec, + pub(crate) gas_used: u64, + pub(crate) gas_limit: u64, +} + +/// Watches for new blocks and broadcasts events to consumers +pub(crate) struct BlockWatcher { + provider: OpProvider, +} + +impl BlockWatcher { + /// Creates a new `BlockWatcher` + pub(crate) fn new(http_client: reqwest::Client, rpc_url: &str) -> Result { + let provider = client::create_provider(http_client, rpc_url)?; + Ok(Self { provider }) + } + + /// Runs the block watcher loop, broadcasting block events + pub(crate) async fn run( + self, + block_tx: broadcast::Sender, + mut shutdown: broadcast::Receiver<()>, + ) -> Result<()> { + // Get the starting block number + let mut last_block = + self.provider.get_block_number().await.context("Failed to get initial block number")?; + + debug!(block = last_block, "Block watcher started"); + + loop { + tokio::select! { + biased; + _ = shutdown.recv() => { + debug!("Block watcher shutting down"); + break; + } + _ = tokio::time::sleep(std::time::Duration::from_millis(500)) => { + // Poll for new blocks + match self.provider.get_block_number().await { + Ok(current_block) => { + // Process any new blocks we haven't seen + while last_block < current_block { + last_block += 1; + if let Err(e) = self.broadcast_block(last_block, &block_tx).await { + warn!(block = last_block, error = %e, "Failed to fetch block"); + } + } + } + Err(e) => { + warn!(error = %e, "Failed to get block number"); + } + } + } + } + } + + Ok(()) + } + + /// Fetches a block and broadcasts it to consumers + async fn broadcast_block( + &self, + block_num: u64, + block_tx: &broadcast::Sender, + ) -> Result<()> { + let block = self + .provider + .get_block_by_number(BlockNumberOrTag::Number(block_num)) + .await + .context("Failed to get block")? + .context("Block not found")?; + + let tx_hashes: Vec = block.transactions.hashes().collect(); + + let event = BlockEvent { + block_num, + tx_hashes, + gas_used: block.header.gas_used, + gas_limit: block.header.gas_limit, + }; + + // Broadcast to all subscribers + if let Err(e) = block_tx.send(event) { + warn!(block = block_num, error = %e, "Failed to broadcast block event"); + } + + Ok(()) + } +} + +/// Runs a block logger that subscribes to block events and logs them. +/// Exits when the block channel closes, which happens after the drain period. +pub(crate) async fn run_block_logger(mut block_rx: broadcast::Receiver) { + loop { + match block_rx.recv().await { + Ok(block) => { + info!( + blockNum = block.block_num, + gasUsed = block.gas_used, + gasLimit = block.gas_limit, + txnCount = block.tx_hashes.len(), + "New block" + ); + } + Err(broadcast::error::RecvError::Lagged(n)) => { + debug!(missed = n, "Block logger lagged behind"); + } + Err(broadcast::error::RecvError::Closed) => { + debug!("Block broadcast channel closed, logger shutting down"); + break; + } + } + } +} diff --git a/crates/gobrr/src/calldata.rs b/crates/gobrr/src/calldata.rs new file mode 100644 index 0000000..11504c7 --- /dev/null +++ b/crates/gobrr/src/calldata.rs @@ -0,0 +1,28 @@ +use alloy_primitives::Bytes; +use rand::Rng; + +const SMALL_CALLDATA_SIZE: usize = 20; + +/// Generates random calldata of the specified size. +/// Uses high-entropy random bytes that are uncompressible. +fn generate_calldata(size: usize) -> Bytes { + let mut rng = rand::thread_rng(); + let data: Vec = (0..size).map(|_| rng.r#gen()).collect(); + Bytes::from(data) +} + +/// Generates small calldata (20 bytes) +pub(crate) fn generate_small_calldata() -> Bytes { + generate_calldata(SMALL_CALLDATA_SIZE) +} + +/// Generates large calldata of the specified max size +pub(crate) fn generate_large_calldata(max_size: usize) -> Bytes { + generate_calldata(max_size) +} + +/// Decides whether to use large calldata based on the load percentage +pub(crate) fn should_use_large_calldata(load_percentage: u8) -> bool { + let mut rng = rand::thread_rng(); + rng.gen_range(0..100) < load_percentage +} diff --git a/crates/gobrr/src/cli.rs b/crates/gobrr/src/cli.rs new file mode 100644 index 0000000..4713c82 --- /dev/null +++ b/crates/gobrr/src/cli.rs @@ -0,0 +1,298 @@ +use alloy_primitives::U256; +use clap::Parser; + +use crate::endpoints::EndpointDistribution; + +/// Network preset for common configurations +#[derive(Debug, Clone, Copy, Default)] +pub enum NetworkPreset { + /// Base Sepolia testnet + Sepolia, + /// Base Sepolia Alpha testnet + SepoliaAlpha, + /// Custom network (use --rpc or --rpc-endpoints) + #[default] + Custom, +} + +impl std::str::FromStr for NetworkPreset { + type Err = String; + + fn from_str(s: &str) -> Result { + match s.to_lowercase().as_str() { + "sepolia" | "base-sepolia" => Ok(Self::Sepolia), + "sepolia-alpha" | "base-sepolia-alpha" | "alpha" => Ok(Self::SepoliaAlpha), + "custom" => Ok(Self::Custom), + _ => Err(format!("Unknown network preset: {s}. Use 'sepolia', 'sepolia-alpha', or 'custom'")), + } + } +} + +impl NetworkPreset { + /// Returns the default RPC endpoint for this network preset + pub fn default_rpc(&self) -> Option<&'static str> { + match self { + Self::Sepolia => Some("https://base-sepolia.cbhq.net"), + Self::SepoliaAlpha => Some("https://base-sepolia-alpha.cbhq.net"), + Self::Custom => None, + } + } + + /// Returns the chain ID for this network preset + pub fn chain_id(&self) -> Option { + match self { + Self::Sepolia => Some(84532), + Self::SepoliaAlpha => Some(84532), // Same chain, different endpoint + Self::Custom => None, + } + } +} + +/// Replay mode for testing caching/deduplication +#[derive(Debug, Clone, Copy, Default)] +pub enum ReplayMode { + /// No replay - all requests are unique + #[default] + None, + /// Replay same signed transaction (tests deduplication) + SameTx, + /// Replay same RPC method/params from different senders + SameMethod, +} + +impl std::str::FromStr for ReplayMode { + type Err = String; + + fn from_str(s: &str) -> Result { + match s.to_lowercase().as_str() { + "none" | "off" | "disabled" => Ok(Self::None), + "same-tx" | "sametx" | "tx" => Ok(Self::SameTx), + "same-method" | "samemethod" | "method" => Ok(Self::SameMethod), + _ => Err(format!("Unknown replay mode: {s}. Use 'none', 'same-tx', or 'same-method'")), + } + } +} + +#[derive(Debug, Parser)] +#[command(name = "gobrr")] +#[command( + about = "Ethereum/OP Stack load tester - derives addresses from mnemonic, funds them, and runs concurrent transactions against proxyd" +)] +pub struct Args { + // ========== Network Configuration ========== + + /// Network preset (sepolia, sepolia-alpha, custom) + #[arg(long, default_value = "custom")] + pub network: String, + + /// Single RPC endpoint URL (mutually exclusive with --rpc-endpoints) + #[arg(long)] + pub rpc: Option, + + /// Comma-separated list of RPC endpoints for load distribution + #[arg(long)] + pub rpc_endpoints: Option, + + /// Endpoint distribution strategy (round-robin, random, weighted) + #[arg(long, default_value = "round-robin")] + pub endpoint_distribution: String, + + // ========== Wallet Configuration ========== + + /// HD wallet mnemonic for deriving sender addresses + #[arg(long)] + pub mnemonic: String, + + /// Funder private key (hex, with or without 0x prefix) + #[arg(long)] + pub funder_key: String, + + /// Amount of ETH to fund each sender (in wei) + #[arg(long)] + pub funding_amount: U256, + + /// Number of sender accounts to derive and use + #[arg(long, default_value = "10")] + pub sender_count: u32, + + /// Offset for sender derivation (skip first N addresses from mnemonic) + #[arg(long, default_value = "0")] + pub sender_offset: u32, + + // ========== Load Configuration ========== + + /// Maximum concurrent in-flight transactions per sender + #[arg(long, default_value = "16")] + pub in_flight_per_sender: u32, + + /// Maximum calldata size in bytes for large transactions + #[arg(long, default_value = "65536")] + pub calldata_max_size: usize, + + /// Percentage of transactions that should have large calldata (0-100) + #[arg(long, default_value = "10")] + pub calldata_load: u8, + + /// Test duration (e.g., "60s", "5m"). If not specified, runs until Ctrl+C + #[arg(long)] + pub duration: Option, + + // ========== RPC Method Variation ========== + + /// Comma-separated list of RPC methods to call + /// Default: eth_sendRawTransaction only + /// Options: eth_sendRawTransaction, eth_getBalance, eth_call, eth_blockNumber, eth_getTransactionCount + #[arg(long, default_value = "eth_sendRawTransaction")] + pub rpc_methods: String, + + /// Percentage of requests that should be transactions (vs read calls) (0-100) + /// Only applies when multiple RPC methods are specified + #[arg(long, default_value = "80")] + pub tx_percentage: u8, + + // ========== Replay Mode ========== + + /// Replay mode for testing caching/deduplication (none, same-tx, same-method) + #[arg(long, default_value = "none")] + pub replay_mode: String, + + /// Percentage of requests that should be replays (0-100) + #[arg(long, default_value = "0")] + pub replay_percentage: u8, +} + +impl Args { + pub fn parse_duration(&self) -> Option { + self.duration.as_ref().map(|d| parse_duration_string(d)) + } + + /// Parses the network preset + pub fn parse_network(&self) -> Result { + self.network.parse() + } + + /// Parses the endpoint distribution strategy + pub fn parse_endpoint_distribution(&self) -> Result { + self.endpoint_distribution.parse() + } + + /// Parses the replay mode + pub fn parse_replay_mode(&self) -> Result { + self.replay_mode.parse() + } + + /// Returns the effective RPC endpoint(s) based on args + /// Priority: --rpc-endpoints > --rpc > network preset default + pub fn effective_rpc_endpoints(&self) -> Result { + if let Some(endpoints) = &self.rpc_endpoints { + return Ok(endpoints.clone()); + } + + if let Some(rpc) = &self.rpc { + return Ok(rpc.clone()); + } + + let network = self.parse_network()?; + network.default_rpc() + .map(String::from) + .ok_or_else(|| "No RPC endpoint specified. Use --rpc, --rpc-endpoints, or a network preset".to_string()) + } + + /// Parses the RPC methods list + pub fn parse_rpc_methods(&self) -> Vec { + self.rpc_methods + .split(',') + .map(str::trim) + .filter(|s| !s.is_empty()) + .filter_map(|s| s.parse().ok()) + .collect() + } + + /// Returns true if we should use multi-endpoint mode + pub fn is_multi_endpoint(&self) -> bool { + self.rpc_endpoints + .as_ref() + .map(|e| e.contains(',')) + .unwrap_or(false) + } +} + +/// Supported RPC methods for load testing +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub enum RpcMethod { + /// Send a raw transaction (write) + SendRawTransaction, + /// Get balance of an address (read) + GetBalance, + /// Call a contract (read) + Call, + /// Get current block number (read) + BlockNumber, + /// Get transaction count/nonce (read) + GetTransactionCount, + /// Get gas price (read) + GasPrice, + /// Get block by number (read) + GetBlockByNumber, + /// Get chain ID (read) + ChainId, +} + +impl RpcMethod { + /// Returns true if this is a write method (transaction) + pub fn is_write(&self) -> bool { + matches!(self, Self::SendRawTransaction) + } + + /// Returns the JSON-RPC method name + pub fn method_name(&self) -> &'static str { + match self { + Self::SendRawTransaction => "eth_sendRawTransaction", + Self::GetBalance => "eth_getBalance", + Self::Call => "eth_call", + Self::BlockNumber => "eth_blockNumber", + Self::GetTransactionCount => "eth_getTransactionCount", + Self::GasPrice => "eth_gasPrice", + Self::GetBlockByNumber => "eth_getBlockByNumber", + Self::ChainId => "eth_chainId", + } + } +} + +impl std::str::FromStr for RpcMethod { + type Err = String; + + fn from_str(s: &str) -> Result { + match s.to_lowercase().replace('_', "").as_str() { + "ethsendrawtransaction" | "sendrawtransaction" | "sendtx" => Ok(Self::SendRawTransaction), + "ethgetbalance" | "getbalance" | "balance" => Ok(Self::GetBalance), + "ethcall" | "call" => Ok(Self::Call), + "ethblocknumber" | "blocknumber" | "blocknum" => Ok(Self::BlockNumber), + "ethgettransactioncount" | "gettransactioncount" | "txcount" | "nonce" => Ok(Self::GetTransactionCount), + "ethgasprice" | "gasprice" | "gas" => Ok(Self::GasPrice), + "ethgetblockbynumber" | "getblockbynumber" | "getblock" => Ok(Self::GetBlockByNumber), + "ethchainid" | "chainid" => Ok(Self::ChainId), + _ => Err(format!("Unknown RPC method: {s}")), + } + } +} + +impl std::fmt::Display for RpcMethod { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.method_name()) + } +} + +#[allow(clippy::option_if_let_else)] +fn parse_duration_string(s: &str) -> std::time::Duration { + let s = s.trim(); + if let Some(secs) = s.strip_suffix('s') { + std::time::Duration::from_secs(secs.parse().unwrap_or(60)) + } else if let Some(mins) = s.strip_suffix('m') { + std::time::Duration::from_secs(mins.parse::().unwrap_or(1) * 60) + } else if let Some(hours) = s.strip_suffix('h') { + std::time::Duration::from_secs(hours.parse::().unwrap_or(1) * 3600) + } else { + std::time::Duration::from_secs(s.parse().unwrap_or(60)) + } +} diff --git a/crates/gobrr/src/client.rs b/crates/gobrr/src/client.rs new file mode 100644 index 0000000..dd7ed5d --- /dev/null +++ b/crates/gobrr/src/client.rs @@ -0,0 +1,52 @@ +use std::time::Duration; + +use alloy_network::EthereumWallet; +use alloy_provider::{ + Identity, ProviderBuilder, RootProvider, + fillers::{FillProvider, JoinFill, WalletFiller}, +}; +use alloy_rpc_client::RpcClient; +use alloy_transport_http::Http; +use anyhow::{Context, Result}; +use op_alloy_network::Optimism; + +/// Concrete provider type for read-only operations on Optimism +pub(crate) type Provider = RootProvider; + +/// Concrete provider type with wallet for signing transactions on Optimism +pub(crate) type WalletProvider = + FillProvider>, Provider, Optimism>; + +/// Creates a shared HTTP client with connection pooling configured to reduce DNS pressure. +pub fn create_shared_client() -> reqwest::Client { + reqwest::Client::builder() + .pool_max_idle_per_host(100) + .pool_idle_timeout(Duration::from_secs(90)) + .tcp_keepalive(Duration::from_secs(60)) + .connect_timeout(Duration::from_secs(30)) + .timeout(Duration::from_secs(60)) + .build() + .expect("Failed to build HTTP client") +} + +/// Creates a provider without a wallet for read-only operations +pub(crate) fn create_provider(http_client: reqwest::Client, rpc_url: &str) -> Result { + let url: url::Url = rpc_url.parse().context("Invalid RPC URL")?; + let http = Http::with_client(http_client, url); + let rpc_client = RpcClient::new(http, true); + Ok(RootProvider::new(rpc_client)) +} + +/// Creates a provider with an Ethereum wallet for signing transactions +pub(crate) fn create_wallet_provider( + http_client: reqwest::Client, + rpc_url: &str, + wallet: EthereumWallet, +) -> Result { + let url: url::Url = rpc_url.parse().context("Invalid RPC URL")?; + let http = Http::with_client(http_client, url); + let rpc_client = RpcClient::new(http, true); + let root: Provider = RootProvider::new(rpc_client); + // Use filler() to add only the wallet filler without default fillers + Ok(ProviderBuilder::default().filler(WalletFiller::new(wallet)).connect_provider(root)) +} diff --git a/crates/gobrr/src/confirmer.rs b/crates/gobrr/src/confirmer.rs new file mode 100644 index 0000000..5182d34 --- /dev/null +++ b/crates/gobrr/src/confirmer.rs @@ -0,0 +1,50 @@ +use std::collections::HashSet; + +use alloy_primitives::B256; +use tokio::sync::{broadcast, mpsc}; +use tracing::{debug, warn}; + +use crate::{blocks::BlockEvent, tracker::TrackerEvent}; + +/// Runs the confirmer task that matches pending transactions against block contents. +/// +/// The confirmer exits when the block channel closes, which happens after the drain period. +/// This ensures it keeps processing confirmations until shutdown is complete. +pub(crate) async fn run_confirmer( + mut pending_rx: mpsc::UnboundedReceiver, + mut block_rx: broadcast::Receiver, + tracker_tx: mpsc::UnboundedSender, +) { + let mut pending: HashSet = HashSet::new(); + + loop { + tokio::select! { + biased; + Some(tx_hash) = pending_rx.recv() => { + pending.insert(tx_hash); + } + result = block_rx.recv() => { + match result { + Ok(block) => { + for tx_hash in block.tx_hashes { + if pending.remove(&tx_hash) { + if let Err(e) = tracker_tx.send(TrackerEvent::ReceiptReceived { + tx_hash, + }) { + warn!(tx_hash = %tx_hash, error = %e, "Failed to send receipt confirmation to tracker"); + } + } + } + } + Err(broadcast::error::RecvError::Lagged(n)) => { + debug!(missed = n, "Confirmer lagged behind block events"); + } + Err(broadcast::error::RecvError::Closed) => { + debug!("Block broadcast channel closed, confirmer shutting down"); + break; + } + } + } + } + } +} diff --git a/crates/gobrr/src/endpoints.rs b/crates/gobrr/src/endpoints.rs new file mode 100644 index 0000000..50ddecc --- /dev/null +++ b/crates/gobrr/src/endpoints.rs @@ -0,0 +1,230 @@ +//! Multi-endpoint management for load distribution across multiple proxyd instances. + +use std::sync::atomic::{AtomicUsize, Ordering}; +use std::sync::Arc; + +use rand::Rng; + +/// Distribution strategy for selecting endpoints +#[derive(Debug, Clone, Copy, Default)] +pub enum EndpointDistribution { + /// Round-robin selection across endpoints + #[default] + RoundRobin, + /// Random selection + Random, + /// Weighted selection based on endpoint weights + Weighted, +} + +impl std::str::FromStr for EndpointDistribution { + type Err = String; + + fn from_str(s: &str) -> Result { + match s.to_lowercase().as_str() { + "round-robin" | "roundrobin" | "rr" => Ok(Self::RoundRobin), + "random" | "rand" => Ok(Self::Random), + "weighted" | "weight" => Ok(Self::Weighted), + _ => Err(format!("Unknown distribution strategy: {s}")), + } + } +} + +/// A single endpoint configuration +#[derive(Debug, Clone)] +pub struct Endpoint { + /// The RPC URL + pub url: String, + /// Weight for weighted distribution (higher = more traffic) + pub weight: u32, + /// Optional name/label for the endpoint + pub name: Option, +} + +impl Endpoint { + pub fn new(url: impl Into) -> Self { + Self { + url: url.into(), + weight: 1, + name: None, + } + } + + pub fn with_weight(mut self, weight: u32) -> Self { + self.weight = weight; + self + } + + pub fn with_name(mut self, name: impl Into) -> Self { + self.name = Some(name.into()); + self + } +} + +/// Pool of endpoints with load distribution +#[derive(Debug)] +pub struct EndpointPool { + endpoints: Vec, + distribution: EndpointDistribution, + /// Counter for round-robin distribution + counter: AtomicUsize, + /// Cumulative weights for weighted distribution + cumulative_weights: Vec, + /// Total weight sum + total_weight: u32, +} + +impl EndpointPool { + /// Creates a new endpoint pool from a list of endpoints + pub fn new(endpoints: Vec, distribution: EndpointDistribution) -> Self { + assert!(!endpoints.is_empty(), "EndpointPool requires at least one endpoint"); + + // Build cumulative weights for weighted selection + let mut cumulative_weights = Vec::with_capacity(endpoints.len()); + let mut sum = 0u32; + for ep in &endpoints { + sum += ep.weight; + cumulative_weights.push(sum); + } + + Self { + endpoints, + distribution, + counter: AtomicUsize::new(0), + cumulative_weights, + total_weight: sum, + } + } + + /// Creates a pool from a comma-separated list of URLs + pub fn from_urls(urls: &str, distribution: EndpointDistribution) -> Self { + let endpoints: Vec = urls + .split(',') + .map(str::trim) + .filter(|s| !s.is_empty()) + .enumerate() + .map(|(i, url)| Endpoint::new(url).with_name(format!("endpoint-{i}"))) + .collect(); + + Self::new(endpoints, distribution) + } + + /// Creates a pool with a single endpoint + pub fn single(url: impl Into) -> Self { + Self::new(vec![Endpoint::new(url)], EndpointDistribution::RoundRobin) + } + + /// Returns the number of endpoints + pub fn len(&self) -> usize { + self.endpoints.len() + } + + /// Returns true if there's only one endpoint + pub fn is_single(&self) -> bool { + self.endpoints.len() == 1 + } + + /// Returns true if pool is empty (should never happen after construction) + pub fn is_empty(&self) -> bool { + self.endpoints.is_empty() + } + + /// Selects the next endpoint based on the distribution strategy + pub fn select(&self) -> &Endpoint { + match self.distribution { + EndpointDistribution::RoundRobin => self.select_round_robin(), + EndpointDistribution::Random => self.select_random(), + EndpointDistribution::Weighted => self.select_weighted(), + } + } + + /// Returns the URL of the next selected endpoint + pub fn select_url(&self) -> &str { + &self.select().url + } + + /// Round-robin selection + fn select_round_robin(&self) -> &Endpoint { + let idx = self.counter.fetch_add(1, Ordering::Relaxed) % self.endpoints.len(); + &self.endpoints[idx] + } + + /// Random selection + fn select_random(&self) -> &Endpoint { + let idx = rand::thread_rng().gen_range(0..self.endpoints.len()); + &self.endpoints[idx] + } + + /// Weighted random selection + fn select_weighted(&self) -> &Endpoint { + let mut rng = rand::thread_rng(); + let target = rng.gen_range(1..=self.total_weight); + + // Binary search for the endpoint + let idx = self + .cumulative_weights + .binary_search_by(|&w| { + if w < target { + std::cmp::Ordering::Less + } else { + std::cmp::Ordering::Greater + } + }) + .unwrap_or_else(|i| i); + + &self.endpoints[idx] + } + + /// Returns all endpoint URLs + pub fn urls(&self) -> Vec<&str> { + self.endpoints.iter().map(|e| e.url.as_str()).collect() + } + + /// Returns iterator over all endpoints + pub fn iter(&self) -> impl Iterator { + self.endpoints.iter() + } +} + +/// Thread-safe wrapper for sharing endpoint pool across tasks +pub type SharedEndpointPool = Arc; + +/// Creates a shared endpoint pool +#[allow(dead_code)] +pub(crate) fn create_shared_pool(endpoints: Vec, distribution: EndpointDistribution) -> SharedEndpointPool { + Arc::new(EndpointPool::new(endpoints, distribution)) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_single_endpoint() { + let pool = EndpointPool::single("http://localhost:8545"); + assert_eq!(pool.len(), 1); + assert!(pool.is_single()); + assert_eq!(pool.select_url(), "http://localhost:8545"); + } + + #[test] + fn test_from_urls() { + let pool = EndpointPool::from_urls( + "http://a.com, http://b.com, http://c.com", + EndpointDistribution::RoundRobin, + ); + assert_eq!(pool.len(), 3); + } + + #[test] + fn test_round_robin() { + let pool = EndpointPool::from_urls( + "http://a.com,http://b.com", + EndpointDistribution::RoundRobin, + ); + + assert_eq!(pool.select_url(), "http://a.com"); + assert_eq!(pool.select_url(), "http://b.com"); + assert_eq!(pool.select_url(), "http://a.com"); + } +} diff --git a/crates/gobrr/src/funder.rs b/crates/gobrr/src/funder.rs new file mode 100644 index 0000000..8688a41 --- /dev/null +++ b/crates/gobrr/src/funder.rs @@ -0,0 +1,159 @@ +use alloy_network::{EthereumWallet, ReceiptResponse, TransactionBuilder}; +use alloy_primitives::{Address, U256}; +use alloy_provider::{PendingTransactionBuilder, Provider}; +use alloy_rpc_types_eth::BlockNumberOrTag; +use alloy_rpc_types_eth::TransactionRequest; +use alloy_signer_local::PrivateKeySigner; +use anyhow::{Context, Result}; +use op_alloy_network::Optimism; +use tracing::{info, warn}; + +use crate::client::{WalletProvider, create_wallet_provider}; + +const MAX_RETRIES: u32 = 10; +const FEE_BUMP_PERCENT: u128 = 100; +const MAX_FEE_MULTIPLIER: u128 = 1000; + +/// Handles funding sender accounts to a target balance +pub(crate) struct Funder { + provider: WalletProvider, + funder_address: Address, + chain_id: u64, +} + +impl Funder { + /// Creates a new Funder with the given HTTP client, RPC URL, signer, and chain ID + pub(crate) async fn new( + http_client: reqwest::Client, + rpc_url: &str, + signer: PrivateKeySigner, + chain_id: u64, + ) -> Result { + let funder_address = signer.address(); + let wallet = EthereumWallet::from(signer); + let provider = create_wallet_provider(http_client, rpc_url, wallet)?; + + let funder_balance = + provider.get_balance(funder_address).await.context("Failed to get funder balance")?; + + info!( + funder = %funder_address, + balance = %funder_balance, + "Funder account" + ); + + Ok(Self { provider, funder_address, chain_id }) + } + + /// Funds all sender addresses to the target balance + pub(crate) async fn fund(&self, addresses: &[Address], target_balance: U256) -> Result<()> { + let mut pending_txs = Vec::new(); + + for (i, &address) in addresses.iter().enumerate() { + let current_balance = + self.provider.get_balance(address).await.context("Failed to get sender balance")?; + + if current_balance >= target_balance { + info!( + sender = i, + address = %address, + balance = %current_balance, + "Already funded" + ); + continue; + } + + let amount_needed = target_balance - current_balance; + info!( + sender = i, + address = %address, + current = %current_balance, + needed = %amount_needed, + "Funding sender" + ); + + let pending = self.send_with_retry(address, amount_needed).await?; + pending_txs.push((i, address, pending)); + } + + // Wait for all funding transactions to confirm + for (i, address, pending) in pending_txs { + let receipt = pending.get_receipt().await.context("Failed to get funding receipt")?; + + if receipt.status() { + info!( + sender = i, + address = %address, + tx_hash = %receipt.transaction_hash(), + "Funding confirmed" + ); + } else { + anyhow::bail!("Funding transaction failed for sender {i}"); + } + } + + info!("All senders funded successfully"); + Ok(()) + } + + /// Sends a funding transaction with retry logic for underpriced transactions + async fn send_with_retry( + &self, + to: Address, + amount: U256, + ) -> Result> { + let mut last_error = None; + let mut fee_multiplier = 100u128; + + // Get nonce for the funder account + let nonce = self + .provider + .get_transaction_count(self.funder_address) + .block_id(BlockNumberOrTag::Pending.into()) + .await + .context("Failed to get nonce")?; + + for attempt in 0..MAX_RETRIES { + // Bump fees on retries (up to MAX_FEE_MULTIPLIER) + if attempt > 0 { + fee_multiplier = (fee_multiplier + FEE_BUMP_PERCENT).min(MAX_FEE_MULTIPLIER); + warn!(attempt, fee_multiplier, "Retrying with bumped fees"); + } + + let fees = self + .provider + .estimate_eip1559_fees() + .await + .context("Failed to estimate fees")?; + let max_fee = fees.max_fee_per_gas.saturating_mul(fee_multiplier) / 100; + let priority_fee = fees.max_priority_fee_per_gas.saturating_mul(fee_multiplier) / 100; + + let tx = TransactionRequest::default() + .with_to(to) + .with_value(amount) + .with_nonce(nonce) + .with_chain_id(self.chain_id) + .with_gas_limit(21_000) // Standard gas limit for simple ETH transfer + .with_max_fee_per_gas(max_fee) + .with_max_priority_fee_per_gas(priority_fee); + + match self.provider.send_transaction(tx.into()).await { + Ok(pending) => return Ok(pending), + Err(e) => { + let err_str = e.to_string(); + if err_str.contains("underpriced") || err_str.contains("replacement") { + warn!(attempt, error = %e, "Transaction underpriced, retrying with higher fee"); + last_error = Some(e); + continue; + } + return Err(e).context("Failed to send funding transaction"); + } + } + } + + Err(last_error + .map(|e| anyhow::anyhow!(e)) + .unwrap_or_else(|| anyhow::anyhow!("Max retries exceeded"))) + .context("Failed to send funding transaction after retries") + } +} diff --git a/crates/gobrr/src/lib.rs b/crates/gobrr/src/lib.rs new file mode 100644 index 0000000..f28c4fb --- /dev/null +++ b/crates/gobrr/src/lib.rs @@ -0,0 +1,17 @@ +mod blocks; +mod calldata; +mod cli; +mod client; +mod confirmer; +mod endpoints; +mod funder; +mod runner; +mod sender; +mod stats; +mod tracker; +mod wallet; + +pub use cli::{Args, NetworkPreset, ReplayMode, RpcMethod}; +pub use client::create_shared_client; +pub use endpoints::{Endpoint, EndpointDistribution, EndpointPool, SharedEndpointPool}; +pub use runner::run_load_test; diff --git a/crates/gobrr/src/runner.rs b/crates/gobrr/src/runner.rs new file mode 100644 index 0000000..e8b38f7 --- /dev/null +++ b/crates/gobrr/src/runner.rs @@ -0,0 +1,296 @@ +use std::sync::Arc; + +use alloy_provider::Provider; +use anyhow::{Context, Result}; +use tokio::sync::{broadcast, mpsc, oneshot}; +use tracing::info; + +use crate::{ + blocks::{BlockEvent, BlockWatcher, run_block_logger}, + cli::Args, + client::{create_provider, create_shared_client}, + confirmer::run_confirmer, + endpoints::{EndpointPool, SharedEndpointPool}, + funder::Funder, + sender::{BacklogItem, Preparer, PreparerConfig, Sender}, + stats::{print_final_report, run_stats_reporter}, + tracker::{Stats, TrackerEvent, create_tracker_channel, run_tracker}, + wallet::{derive_signers, get_addresses, parse_funder_key}, +}; + +/// Main entry point for the load test +pub async fn run_load_test(args: Args) -> Result<()> { + info!("Starting gobrr load tester"); + + // Parse and validate configuration + let network = args.parse_network().map_err(|e| anyhow::anyhow!(e))?; + let endpoint_distribution = args.parse_endpoint_distribution().map_err(|e| anyhow::anyhow!(e))?; + let replay_mode = args.parse_replay_mode().map_err(|e| anyhow::anyhow!(e))?; + let rpc_methods = args.parse_rpc_methods(); + + if rpc_methods.is_empty() { + anyhow::bail!("No valid RPC methods specified"); + } + + // Get effective RPC endpoint(s) + let rpc_endpoints = args.effective_rpc_endpoints().map_err(|e| anyhow::anyhow!(e))?; + + // Create endpoint pool + let endpoint_pool: SharedEndpointPool = Arc::new( + EndpointPool::from_urls(&rpc_endpoints, endpoint_distribution) + ); + + info!( + endpoints = endpoint_pool.len(), + distribution = ?endpoint_distribution, + network = ?network, + methods = ?rpc_methods.iter().map(|m| m.method_name()).collect::>(), + replay_mode = ?replay_mode, + "Configuration loaded" + ); + + // Parse duration if specified + let duration = args.parse_duration(); + if let Some(d) = duration { + info!(duration_secs = d.as_secs(), "Test duration configured"); + } else { + info!("Running until Ctrl+C"); + } + + // Step 1: Parse funder key + let funder_signer = parse_funder_key(&args.funder_key).context("Failed to parse funder key")?; + info!(funder = %funder_signer.address(), "Funder wallet loaded"); + + // Step 1b: Create shared HTTP client with connection pooling + let http_client = create_shared_client(); + info!("Created shared HTTP client with connection pooling"); + + // Step 1c: Fetch chain ID from RPC (use first endpoint) + let primary_rpc = endpoint_pool.urls()[0]; + let provider = create_provider(http_client.clone(), primary_rpc)?; + let chain_id = provider.get_chain_id().await.context("Failed to get chain ID")?; + info!(chain_id, rpc = primary_rpc, "Connected to chain"); + + // Step 2: Derive sender signers from mnemonic (skipping funder address if derived) + info!(count = args.sender_count, offset = args.sender_offset, "Deriving sender wallets"); + let sender_signers = derive_signers( + &args.mnemonic, + args.sender_count, + args.sender_offset, + Some(funder_signer.address()), + ) + .context("Failed to derive sender signers")?; + let sender_addresses = get_addresses(&sender_signers); + + // Step 3: Run funding phase using Funder struct + info!("Starting funding phase"); + let funder = Funder::new(http_client.clone(), primary_rpc, funder_signer, chain_id) + .await + .context("Failed to create funder")?; + funder.fund(&sender_addresses, args.funding_amount).await.context("Funding phase failed")?; + + // Step 4: Create tracker channel and spawn tracker task + let (tracker_tx, tracker_rx) = create_tracker_channel(); + let tracker_handle = tokio::spawn(run_tracker(tracker_rx)); + + // Step 5: Create shutdown broadcast channel + let (shutdown_tx, _) = broadcast::channel::<()>(1); + + // Step 5b: Create block event broadcast channel + let (block_tx, _) = broadcast::channel::(64); + + // Step 5c: Create confirmer pending tx channel + let (confirmer_pending_tx, confirmer_pending_rx) = mpsc::unbounded_channel(); + + // Step 6: Spawn preparer and sender tasks for each sender + let mut handles = Vec::new(); + let backlog_capacity = args.in_flight_per_sender as usize * 2; + + for (i, signer) in sender_signers.into_iter().enumerate() { + let (backlog_tx, backlog_rx) = mpsc::channel::(backlog_capacity); + + let config = PreparerConfig { + sender_index: i as u32, + signer, + calldata_max_size: args.calldata_max_size, + calldata_load: args.calldata_load, + rpc_methods: rpc_methods.clone(), + tx_percentage: args.tx_percentage, + replay_mode, + replay_percentage: args.replay_percentage, + }; + + // Create and spawn preparer task + let shutdown_rx = shutdown_tx.subscribe(); + let client = http_client.clone(); + let rpc = primary_rpc.to_string(); + let preparer_handle = tokio::spawn(async move { + match Preparer::new(client, &rpc, config).await { + Ok(preparer) => { + if let Err(e) = preparer.run(backlog_tx, shutdown_rx).await { + tracing::error!(sender = i, error = %e, "Preparer failed"); + } + } + Err(e) => { + tracing::error!(sender = i, error = %e, "Failed to create preparer"); + } + } + }); + handles.push(preparer_handle); + + // Create and spawn sender task + let shutdown_rx = shutdown_tx.subscribe(); + let tracker = tracker_tx.clone(); + let confirmer = confirmer_pending_tx.clone(); + let in_flight = args.in_flight_per_sender; + let sender_idx = i as u32; + let client = http_client.clone(); + let pool = Arc::clone(&endpoint_pool); + let sender_handle = tokio::spawn(async move { + let sender = Sender::new(client, sender_idx, pool, in_flight, tracker, confirmer); + if let Err(e) = sender.run(backlog_rx, shutdown_rx).await { + tracing::error!(sender = i, error = %e, "Sender failed"); + } + }); + handles.push(sender_handle); + } + + // Step 7: Create separate shutdown for tasks that run during drain period + let (drain_shutdown_tx, _) = broadcast::channel::<()>(1); + + // Spawn stats reporter (runs during drain to show progress) + let stats_shutdown = drain_shutdown_tx.subscribe(); + let stats_tracker = tracker_tx.clone(); + let stats_handle = tokio::spawn(run_stats_reporter(stats_tracker, stats_shutdown)); + + // Step 7b: Spawn block watcher using BlockWatcher struct + let block_watcher_shutdown = drain_shutdown_tx.subscribe(); + let block_tx_clone = block_tx.clone(); + let block_client = http_client.clone(); + let block_rpc = primary_rpc.to_string(); + let block_handle = tokio::spawn(async move { + match BlockWatcher::new(block_client, &block_rpc) { + Ok(watcher) => { + if let Err(e) = watcher.run(block_tx_clone, block_watcher_shutdown).await { + tracing::error!(error = %e, "Block watcher failed"); + } + } + Err(e) => { + tracing::error!(error = %e, "Failed to create block watcher"); + } + } + }); + + // Step 7c: Spawn block logger (exits when block channel closes) + let logger_block_rx = block_tx.subscribe(); + let logger_handle = tokio::spawn(run_block_logger(logger_block_rx)); + + // Step 7d: Spawn confirmer (exits when block channel closes) + let confirmer_block_rx = block_tx.subscribe(); + let confirmer_tracker = tracker_tx.clone(); + let confirmer_handle = + tokio::spawn(run_confirmer(confirmer_pending_rx, confirmer_block_rx, confirmer_tracker)); + + // Step 8: Wait for duration or Ctrl+C + info!("Load test running..."); + + if let Some(d) = duration { + tokio::select! { + _ = tokio::time::sleep(d) => { + info!("Duration elapsed"); + } + _ = tokio::signal::ctrl_c() => { + info!("Ctrl+C received"); + } + } + } else { + tokio::signal::ctrl_c().await.context("Failed to listen for Ctrl+C")?; + info!("Ctrl+C received"); + } + + // Step 9: Signal shutdown to preparers and senders (stop creating new txs) + info!("Shutting down..."); + if let Err(e) = shutdown_tx.send(()) { + tracing::warn!(error = %e, "Failed to send shutdown signal"); + } + + // Step 10: Wait for preparer and sender tasks to complete + // This ensures all in-flight send_and_track tasks finish before we close channels + for (i, handle) in handles.into_iter().enumerate() { + if let Err(e) = handle.await { + tracing::warn!(task = i, error = %e, "Task panicked during shutdown"); + } + } + + // Close the confirmer pending channel now that all senders have finished + drop(confirmer_pending_tx); + + // Wait for pending transactions to confirm + // Block watcher, logger, and confirmer continue running during this period + // Exit when: pending == 0, or pending count unchanged for 20 seconds + info!("Waiting for pending transactions to confirm..."); + let mut last_pending = u64::MAX; + let mut last_change = std::time::Instant::now(); + let stall_timeout = std::time::Duration::from_secs(20); + + loop { + let stats = get_final_stats(&tracker_tx).await; + let pending = stats.pending(); + + if pending == 0 { + info!("All transactions confirmed or timed out"); + break; + } + + if pending != last_pending { + last_pending = pending; + last_change = std::time::Instant::now(); + } else if last_change.elapsed() > stall_timeout { + tracing::warn!( + pending, + "No confirmation progress for 20s, proceeding with final report" + ); + break; + } + + info!(pending, "Waiting for confirmations..."); + tokio::time::sleep(std::time::Duration::from_secs(2)).await; + } + + // Step 11: Now shut down the remaining tasks gracefully + // Signal drain-phase tasks (stats reporter, block watcher) to stop + if let Err(e) = drain_shutdown_tx.send(()) { + tracing::warn!(error = %e, "Failed to send drain shutdown signal"); + } + let _ = stats_handle.await; + let _ = block_handle.await; + + // Close block channel to signal consumers (logger, confirmer) to exit + drop(block_tx); + + // Wait for remaining tasks to complete + let _ = logger_handle.await; + let _ = confirmer_handle.await; + + // Step 11: Get final stats and print report + let final_stats = get_final_stats(&tracker_tx).await; + if let Err(e) = tracker_tx.send(TrackerEvent::Shutdown) { + tracing::warn!(error = %e, "Failed to send shutdown to tracker"); + } + if let Err(e) = tracker_handle.await { + tracing::warn!(error = %e, "Tracker task panicked"); + } + + print_final_report(&final_stats); + + Ok(()) +} + +async fn get_final_stats(tracker_tx: &mpsc::UnboundedSender) -> Stats { + let (tx, rx) = oneshot::channel(); + if tracker_tx.send(TrackerEvent::GetStats(tx)).is_ok() { + rx.await.unwrap_or_default() + } else { + Stats::default() + } +} diff --git a/crates/gobrr/src/sender.rs b/crates/gobrr/src/sender.rs new file mode 100644 index 0000000..70d8ae9 --- /dev/null +++ b/crates/gobrr/src/sender.rs @@ -0,0 +1,673 @@ +use std::{ + collections::VecDeque, + sync::{ + Arc, + atomic::{AtomicU64, Ordering}, + }, + time::Duration, +}; + +use alloy_network::{EthereumWallet, NetworkWallet, TransactionBuilder, eip2718::Encodable2718}; +use alloy_primitives::{Address, B256, Bytes, U256}; +use alloy_provider::Provider; +use alloy_rpc_client::BatchRequest; +use alloy_rpc_types_eth::{BlockNumberOrTag, TransactionRequest}; +use alloy_signer_local::PrivateKeySigner; +use anyhow::{Context, Result}; +use rand::{Rng, SeedableRng}; +use tokio::{ + sync::{Semaphore, broadcast, mpsc}, + task::JoinSet, +}; +use tracing::{debug, error, warn}; + +use crate::{ + calldata::{generate_large_calldata, generate_small_calldata, should_use_large_calldata}, + cli::{ReplayMode, RpcMethod}, + client::{self, Provider as OpProvider, WalletProvider}, + endpoints::SharedEndpointPool, + tracker::TrackerEvent, +}; + +/// Pre-signed transaction ready to send +#[derive(Clone)] +pub(crate) struct PreparedTx { + pub(crate) raw_bytes: Bytes, + pub(crate) tx_hash: B256, + pub(crate) nonce: u64, + pub(crate) has_large_calldata: bool, + /// Whether this is a replay of a previous transaction + pub(crate) is_replay: bool, +} + +/// A prepared RPC read call +#[derive(Clone)] +pub(crate) struct PreparedReadCall { + pub(crate) method: RpcMethod, + pub(crate) address: Address, + /// Whether this is a replay of a previous call + pub(crate) is_replay: bool, +} + +/// Item in the request backlog - either a transaction or a read call +pub(crate) enum BacklogItem { + Transaction(PreparedTx), + ReadCall(PreparedReadCall), +} + +/// Configuration for creating a Preparer +pub(crate) struct PreparerConfig { + pub(crate) sender_index: u32, + pub(crate) signer: PrivateKeySigner, + pub(crate) calldata_max_size: usize, + pub(crate) calldata_load: u8, + pub(crate) rpc_methods: Vec, + pub(crate) tx_percentage: u8, + pub(crate) replay_mode: ReplayMode, + pub(crate) replay_percentage: u8, +} + +/// Maximum items to cache for replay +const REPLAY_CACHE_SIZE: usize = 100; + +/// Preparer pre-signs transactions and sends them to a backlog channel +pub(crate) struct Preparer { + sender_index: u32, + wallet: EthereumWallet, + nonce: Arc, + sender_address: Address, + chain_id: u64, + max_fee_per_gas: u128, + max_priority_fee_per_gas: u128, + calldata_load: u8, + calldata_max_size: usize, + rpc_methods: Vec, + tx_percentage: u8, + replay_mode: ReplayMode, + replay_percentage: u8, + /// Cache of signed transactions for replay (same-tx mode) + tx_replay_cache: VecDeque, + /// Cache of read calls for replay (same-method mode) + read_replay_cache: VecDeque, +} + +impl Preparer { + /// Creates a new Preparer by fetching chain state from the RPC + pub(crate) async fn new( + http_client: reqwest::Client, + rpc_url: &str, + config: PreparerConfig, + ) -> Result { + let sender_address = config.signer.address(); + let wallet = EthereumWallet::from(config.signer); + let provider: WalletProvider = + client::create_wallet_provider(http_client, rpc_url, wallet.clone())?; + + // Fetch initial nonce from latest confirmed state + let initial_nonce = provider + .get_transaction_count(sender_address) + .block_id(BlockNumberOrTag::Latest.into()) + .await + .context("Failed to get initial nonce")?; + + let nonce = Arc::new(AtomicU64::new(initial_nonce)); + + // Get chain ID and base fee + let chain_id = provider.get_chain_id().await.context("Failed to get chain ID")?; + let base_fee = provider.get_gas_price().await.context("Failed to get gas price")?; + let max_fee_per_gas = base_fee * 10; // 10x base fee + let max_priority_fee_per_gas: u128 = 0; + + tracing::info!( + sender = config.sender_index, + address = %sender_address, + initial_nonce = initial_nonce, + methods = ?config.rpc_methods.iter().map(|m| m.method_name()).collect::>(), + replay_mode = ?config.replay_mode, + replay_percentage = config.replay_percentage, + "Preparer started" + ); + + Ok(Self { + sender_index: config.sender_index, + wallet, + nonce, + sender_address, + chain_id, + max_fee_per_gas, + max_priority_fee_per_gas, + calldata_load: config.calldata_load, + calldata_max_size: config.calldata_max_size, + rpc_methods: config.rpc_methods, + tx_percentage: config.tx_percentage, + replay_mode: config.replay_mode, + replay_percentage: config.replay_percentage, + tx_replay_cache: VecDeque::with_capacity(REPLAY_CACHE_SIZE), + read_replay_cache: VecDeque::with_capacity(REPLAY_CACHE_SIZE), + }) + } + + /// Runs the preparer loop, sending prepared items to the backlog channel + pub(crate) async fn run( + mut self, + backlog_tx: mpsc::Sender, + mut shutdown: broadcast::Receiver<()>, + ) -> Result<()> { + let mut rng = rand::rngs::StdRng::from_entropy(); + + loop { + tokio::select! { + biased; + _ = shutdown.recv() => { + debug!(sender = self.sender_index, "Preparer shutting down"); + break; + } + result = self.prepare_and_send(&backlog_tx, &mut rng) => { + if let Err(e) = result { + warn!(sender = self.sender_index, error = %e, "Failed to prepare request"); + tokio::time::sleep(std::time::Duration::from_millis(100)).await; + } + } + } + } + + Ok(()) + } + + /// Prepares the next item and sends it to the backlog + async fn prepare_and_send( + &mut self, + backlog_tx: &mpsc::Sender, + rng: &mut rand::rngs::StdRng, + ) -> Result<()> { + let item = self.prepare_next_item(rng).await?; + backlog_tx.send(item).await.context("Backlog channel closed")?; + Ok(()) + } + + /// Check if we should replay instead of creating a new request + fn should_replay(&self, rng: &mut rand::rngs::StdRng) -> bool { + if matches!(self.replay_mode, ReplayMode::None) { + return false; + } + if self.replay_percentage == 0 { + return false; + } + rng.gen_range(0..100) < self.replay_percentage + } + + /// Decides what type of request to prepare based on configuration + async fn prepare_next_item(&mut self, rng: &mut rand::rngs::StdRng) -> Result { + // Check if we should replay + if self.should_replay(rng) { + if let Some(item) = self.get_replay_item(rng) { + return Ok(item); + } + // No cached item available, fall through to create new + } + + // Check if we should send a transaction or a read call + let should_send_tx = self.should_send_transaction(rng); + + if should_send_tx { + let tx = self.prepare_next_tx().await?; + + // Cache for potential replay (in same-tx mode) + if matches!(self.replay_mode, ReplayMode::SameTx) { + self.cache_tx(&tx); + } + + Ok(BacklogItem::Transaction(tx)) + } else { + let read_call = self.prepare_read_call(rng); + + // Cache for potential replay (in same-method mode) + if matches!(self.replay_mode, ReplayMode::SameMethod) { + self.cache_read_call(&read_call); + } + + Ok(BacklogItem::ReadCall(read_call)) + } + } + + /// Get a replay item from cache + fn get_replay_item(&self, rng: &mut rand::rngs::StdRng) -> Option { + match self.replay_mode { + ReplayMode::None => None, + ReplayMode::SameTx => { + if self.tx_replay_cache.is_empty() { + return None; + } + let idx = rng.gen_range(0..self.tx_replay_cache.len()); + let mut tx = self.tx_replay_cache[idx].clone(); + tx.is_replay = true; + Some(BacklogItem::Transaction(tx)) + } + ReplayMode::SameMethod => { + if self.read_replay_cache.is_empty() { + return None; + } + let idx = rng.gen_range(0..self.read_replay_cache.len()); + let mut call = self.read_replay_cache[idx].clone(); + call.is_replay = true; + Some(BacklogItem::ReadCall(call)) + } + } + } + + /// Cache a transaction for potential replay + fn cache_tx(&mut self, tx: &PreparedTx) { + if self.tx_replay_cache.len() >= REPLAY_CACHE_SIZE { + self.tx_replay_cache.pop_front(); + } + self.tx_replay_cache.push_back(tx.clone()); + } + + /// Cache a read call for potential replay + fn cache_read_call(&mut self, call: &PreparedReadCall) { + if self.read_replay_cache.len() >= REPLAY_CACHE_SIZE { + self.read_replay_cache.pop_front(); + } + self.read_replay_cache.push_back(call.clone()); + } + + /// Determines if we should send a transaction based on tx_percentage + fn should_send_transaction(&self, rng: &mut rand::rngs::StdRng) -> bool { + // If we only have SendRawTransaction, always send transactions + if self.rpc_methods.len() == 1 && self.rpc_methods[0] == RpcMethod::SendRawTransaction { + return true; + } + + // If SendRawTransaction is not in methods, never send transactions + if !self.rpc_methods.contains(&RpcMethod::SendRawTransaction) { + return false; + } + + // Otherwise, use tx_percentage + rng.gen_range(0..100) < self.tx_percentage + } + + /// Prepares a read call + fn prepare_read_call(&self, rng: &mut rand::rngs::StdRng) -> PreparedReadCall { + // Filter to only read methods + let read_methods: Vec<_> = self.rpc_methods.iter() + .filter(|m| !m.is_write()) + .collect(); + + let method = if read_methods.is_empty() { + // Fallback to GetBalance if no read methods configured + RpcMethod::GetBalance + } else { + **read_methods.get(rng.gen_range(0..read_methods.len())).unwrap() + }; + + PreparedReadCall { + method, + address: self.sender_address, + is_replay: false, + } + } + + /// Builds and signs the next transaction + async fn prepare_next_tx(&self) -> Result { + let current_nonce = self.nonce.fetch_add(1, Ordering::SeqCst); + let has_large_calldata = should_use_large_calldata(self.calldata_load); + + let calldata = if has_large_calldata { + generate_large_calldata(self.calldata_max_size) + } else { + generate_small_calldata() + }; + + // Build EIP-1559 transaction to address 0x0 + let gas_limit = if has_large_calldata { 5_000_000 } else { 100_000 }; + let tx = TransactionRequest::default() + .with_to(Address::ZERO) + .with_value(U256::ZERO) + .with_input(calldata) + .with_nonce(current_nonce) + .with_chain_id(self.chain_id) + .with_max_fee_per_gas(self.max_fee_per_gas) + .with_max_priority_fee_per_gas(self.max_priority_fee_per_gas) + .with_gas_limit(gas_limit) + .with_from(self.sender_address); + + // Sign the transaction using the wallet + let tx_envelope = >::sign_request( + &self.wallet, + tx, + ) + .await + .context("Failed to sign transaction")?; + + let tx_hash = *tx_envelope.tx_hash(); + let raw_bytes = Bytes::from(tx_envelope.encoded_2718()); + + Ok(PreparedTx { + raw_bytes, + tx_hash, + nonce: current_nonce, + has_large_calldata, + is_replay: false, + }) + } +} + +/// Minimum batch size for transaction batching +const MIN_BATCH_SIZE: usize = 1; +/// Maximum batch size for transaction batching +const MAX_BATCH_SIZE: usize = 5; +/// Timeout to flush partial batches +const BATCH_FLUSH_TIMEOUT: Duration = Duration::from_millis(50); + +/// Sender sends pre-signed transactions in batches with multi-endpoint support +pub(crate) struct Sender { + sender_index: u32, + http_client: reqwest::Client, + endpoint_pool: SharedEndpointPool, + semaphore: Arc, + tracker_tx: mpsc::UnboundedSender, + confirmer_tx: mpsc::UnboundedSender, +} + +impl Sender { + /// Creates a new Sender with multi-endpoint support + pub(crate) fn new( + http_client: reqwest::Client, + sender_index: u32, + endpoint_pool: SharedEndpointPool, + in_flight_limit: u32, + tracker_tx: mpsc::UnboundedSender, + confirmer_tx: mpsc::UnboundedSender, + ) -> Self { + let semaphore = Arc::new(Semaphore::new(in_flight_limit as usize)); + + Self { + sender_index, + http_client, + endpoint_pool, + semaphore, + tracker_tx, + confirmer_tx + } + } + + /// Creates a provider for the selected endpoint + fn create_provider_for_endpoint(&self, endpoint_url: &str) -> Result { + client::create_provider(self.http_client.clone(), endpoint_url) + } + + /// Spawns a task to send a batch of items + async fn spawn_batch(&self, tasks: &mut JoinSet<()>, batch: Vec) -> Result<()> { + let permits = acquire_batch_permits(&self.semaphore, batch.len()).await?; + + // Select endpoint for this batch + let endpoint = self.endpoint_pool.select(); + let endpoint_url = endpoint.url.clone(); + let endpoint_name = endpoint.name.clone(); + + let provider = self.create_provider_for_endpoint(&endpoint_url)?; + let tracker = self.tracker_tx.clone(); + let confirmer = self.confirmer_tx.clone(); + let idx = self.sender_index; + + tasks.spawn(async move { + send_batch(idx, batch, provider, tracker, confirmer, endpoint_name).await; + drop(permits); + }); + Ok(()) + } + + /// Runs the sender loop, receiving prepared items and sending them in batches + pub(crate) async fn run( + self, + mut backlog_rx: mpsc::Receiver, + mut shutdown: broadcast::Receiver<()>, + ) -> Result<()> { + let mut tasks: JoinSet<()> = JoinSet::new(); + let mut batch_buffer: Vec = Vec::with_capacity(MAX_BATCH_SIZE); + let mut rng = rand::rngs::StdRng::from_entropy(); + + debug!(sender = self.sender_index, endpoints = self.endpoint_pool.len(), "Sender started with batching enabled"); + + // Determine batch size for current batch + let mut current_batch_target: usize = rng.gen_range(MIN_BATCH_SIZE..=MAX_BATCH_SIZE); + + loop { + tokio::select! { + biased; + _ = shutdown.recv() => { + debug!(sender = self.sender_index, "Sender shutting down"); + // Flush any remaining items in the buffer + if !batch_buffer.is_empty() { + let batch = std::mem::take(&mut batch_buffer); + if let Err(e) = self.spawn_batch(&mut tasks, batch).await { + error!(sender = self.sender_index, error = %e, "Failed to spawn final batch"); + } + } + // Wait for all spawned tasks to complete + while tasks.join_next().await.is_some() {} + break; + } + Some(item) = backlog_rx.recv() => { + batch_buffer.push(item); + + if batch_buffer.len() >= current_batch_target { + let batch = std::mem::take(&mut batch_buffer); + if let Err(e) = self.spawn_batch(&mut tasks, batch).await { + error!(sender = self.sender_index, error = %e, "Failed to spawn batch"); + } + + // Pick a new random batch size for next batch + current_batch_target = rng.gen_range(MIN_BATCH_SIZE..=MAX_BATCH_SIZE); + } + } + _ = tokio::time::sleep(BATCH_FLUSH_TIMEOUT), if !batch_buffer.is_empty() => { + // Flush partial batch on timeout + let batch = std::mem::take(&mut batch_buffer); + if let Err(e) = self.spawn_batch(&mut tasks, batch).await { + error!(sender = self.sender_index, error = %e, "Failed to spawn timeout batch"); + } + + // Pick a new random batch size for next batch + current_batch_target = rng.gen_range(MIN_BATCH_SIZE..=MAX_BATCH_SIZE); + } + } + } + + Ok(()) + } +} + +/// Acquire multiple permits for a batch +async fn acquire_batch_permits( + semaphore: &Arc, + count: usize, +) -> Result> { + let mut permits = Vec::with_capacity(count); + for _ in 0..count { + permits.push(Arc::clone(semaphore).acquire_owned().await?); + } + Ok(permits) +} + +/// Send a batch of items using JSON-RPC batching +async fn send_batch( + sender_index: u32, + batch: Vec, + provider: OpProvider, + tracker_tx: mpsc::UnboundedSender, + confirmer_tx: mpsc::UnboundedSender, + endpoint_name: Option, +) { + let batch_size = batch.len(); + debug!(sender = sender_index, batch_size, endpoint = ?endpoint_name, "Sending request batch"); + + // Build batch request using BatchRequest directly + let mut batch_req = BatchRequest::new(provider.client()); + + // Track what we're sending + enum PendingRequest { + Tx { tx: PreparedTx, fut: alloy_rpc_client::Waiter }, + ReadCall { method: RpcMethod, is_replay: bool, fut: alloy_rpc_client::Waiter }, + } + + let mut pending = Vec::with_capacity(batch.len()); + + for item in batch { + match item { + BacklogItem::Transaction(tx) => { + match batch_req.add_call::<_, B256>("eth_sendRawTransaction", &(tx.raw_bytes.clone(),)) { + Ok(fut) => pending.push(PendingRequest::Tx { tx, fut }), + Err(e) => { + error!(sender = sender_index, tx_hash = %tx.tx_hash, error = ?e, "Failed to add tx to batch"); + } + } + } + BacklogItem::ReadCall(read_call) => { + let params = build_read_call_params(&read_call); + match batch_req.add_call::<_, serde_json::Value>(read_call.method.method_name(), ¶ms) { + Ok(fut) => pending.push(PendingRequest::ReadCall { + method: read_call.method, + is_replay: read_call.is_replay, + fut + }), + Err(e) => { + error!(sender = sender_index, method = %read_call.method, error = ?e, "Failed to add read call to batch"); + } + } + } + } + } + + // Send the batch request (single HTTP request for all items) + if let Err(e) = batch_req.send().await { + error!(sender = sender_index, batch_size, error = ?e, "Failed to send batch request"); + return; + } + + // Collect results + for pending_req in pending { + match pending_req { + PendingRequest::Tx { tx, fut } => { + match fut.await { + Ok(_) => { + // Track replays separately + if tx.is_replay { + if let Err(e) = tracker_tx.send(TrackerEvent::ReplaySent { + is_tx: true, + endpoint: endpoint_name.clone(), + }) { + warn!(tx_hash = %tx.tx_hash, error = %e, "Failed to send ReplaySent to tracker"); + } + } else { + // Notify tracker that tx was sent + if let Err(e) = tracker_tx.send(TrackerEvent::TxSent { + tx_hash: tx.tx_hash, + has_large_calldata: tx.has_large_calldata, + endpoint: endpoint_name.clone(), + }) { + warn!(tx_hash = %tx.tx_hash, error = %e, "Failed to send TxSent to tracker"); + } + + // Send tx hash to confirmer after successful send (only non-replays) + if let Err(e) = confirmer_tx.send(tx.tx_hash) { + warn!(tx_hash = %tx.tx_hash, error = %e, "Failed to send tx hash to confirmer"); + } + } + + debug!( + sender = sender_index, + tx_hash = %tx.tx_hash, + nonce = tx.nonce, + is_replay = tx.is_replay, + "Transaction sent via batch" + ); + } + Err(e) => { + // Replays are expected to fail (already known), so log at debug level + if tx.is_replay { + debug!( + sender = sender_index, + nonce = tx.nonce, + tx_hash = %tx.tx_hash, + error = ?e, + "Replay tx failed (expected)" + ); + } else { + error!( + sender = sender_index, + nonce = tx.nonce, + tx_hash = %tx.tx_hash, + error = ?e, + "Batch tx failed" + ); + } + } + } + } + PendingRequest::ReadCall { method, is_replay, fut } => { + match fut.await { + Ok(_) => { + if is_replay { + if let Err(e) = tracker_tx.send(TrackerEvent::ReplaySent { + is_tx: false, + endpoint: endpoint_name.clone(), + }) { + warn!(method = %method, error = %e, "Failed to send ReplaySent to tracker"); + } + } else { + // Notify tracker that read call completed + if let Err(e) = tracker_tx.send(TrackerEvent::RpcCallSent { + method, + endpoint: endpoint_name.clone(), + }) { + warn!(method = %method, error = %e, "Failed to send RpcCallSent to tracker"); + } + } + + debug!(sender = sender_index, method = %method, is_replay, "Read call completed"); + } + Err(e) => { + error!(sender = sender_index, method = %method, error = ?e, "Read call failed"); + } + } + } + } + } +} + +/// Builds parameters for a read call based on the method type +fn build_read_call_params(read_call: &PreparedReadCall) -> serde_json::Value { + match read_call.method { + RpcMethod::GetBalance => { + serde_json::json!([format!("{:?}", read_call.address), "latest"]) + } + RpcMethod::GetTransactionCount => { + serde_json::json!([format!("{:?}", read_call.address), "latest"]) + } + RpcMethod::BlockNumber => { + serde_json::json!([]) + } + RpcMethod::GasPrice => { + serde_json::json!([]) + } + RpcMethod::ChainId => { + serde_json::json!([]) + } + RpcMethod::GetBlockByNumber => { + serde_json::json!(["latest", false]) + } + RpcMethod::Call => { + // Simple eth_call to check balance (no data) + serde_json::json!([{ + "to": format!("{:?}", read_call.address), + "data": "0x" + }, "latest"]) + } + RpcMethod::SendRawTransaction => { + // This shouldn't happen for read calls + serde_json::json!([]) + } + } +} diff --git a/crates/gobrr/src/stats.rs b/crates/gobrr/src/stats.rs new file mode 100644 index 0000000..81cfb96 --- /dev/null +++ b/crates/gobrr/src/stats.rs @@ -0,0 +1,122 @@ +use std::time::Duration; + +use tokio::sync::{broadcast, mpsc, oneshot}; +use tracing::info; + +use crate::tracker::{Stats, TrackerEvent}; + +const REPORT_INTERVAL: Duration = Duration::from_secs(10); + +/// Runs the stats reporter task +pub(crate) async fn run_stats_reporter( + tracker_tx: mpsc::UnboundedSender, + mut shutdown: broadcast::Receiver<()>, +) { + let mut interval = tokio::time::interval(REPORT_INTERVAL); + + loop { + tokio::select! { + _ = interval.tick() => { + if let Some(stats) = get_stats(&tracker_tx).await { + log_stats(&stats); + } + } + _ = shutdown.recv() => { + break; + } + } + } +} + +async fn get_stats(tracker_tx: &mpsc::UnboundedSender) -> Option { + let (tx, rx) = oneshot::channel(); + tracker_tx.send(TrackerEvent::GetStats(tx)).ok()?; + rx.await.ok() +} + +fn log_stats(stats: &Stats) { + info!( + sent = stats.sent, + confirmed = stats.confirmed, + timed_out = stats.timed_out, + pending = stats.pending(), + read_calls = stats.read_calls, + replays = stats.replays, + total_requests = stats.total_requests(), + avg_inclusion_ms = format!("{:.2}", stats.avg_inclusion_ms()), + "Progress" + ); +} + +/// Prints the final report +pub(crate) fn print_final_report(stats: &Stats) { + println!(); + println!("╔═══════════════════════════════════════════════════════════╗"); + println!("║ GOBRR RESULTS ║"); + println!("╠═══════════════════════════════════════════════════════════╣"); + println!("║ TRANSACTIONS ║"); + println!("╟───────────────────────────────────────────────────────────╢"); + println!("║ Total sent: {:>10} ║", stats.sent); + println!("║ - Small calldata: {:>10} ║", stats.small_calldata_count); + println!("║ - Large calldata: {:>10} ║", stats.large_calldata_count); + println!("║ Confirmed: {:>10} ║", stats.confirmed); + println!("║ Timed out (>60s): {:>10} ║", stats.timed_out); + println!("║ Still pending: {:>10} ║", stats.pending()); + println!("╟───────────────────────────────────────────────────────────╢"); + println!("║ RPC CALLS ║"); + println!("╟───────────────────────────────────────────────────────────╢"); + println!("║ Read calls: {:>10} ║", stats.read_calls); + println!("║ Replay requests: {:>10} ║", stats.replays); + println!("║ Total requests: {:>10} ║", stats.total_requests()); + println!("╟───────────────────────────────────────────────────────────╢"); + println!("║ INCLUSION TIMES ║"); + println!("╟───────────────────────────────────────────────────────────╢"); + + if !stats.inclusion_times_ms.is_empty() { + println!("║ Average: {:>10.2}ms ║", stats.avg_inclusion_ms()); + println!("║ Min: {:>10}ms ║", stats.min_inclusion_ms()); + println!("║ Max: {:>10}ms ║", stats.max_inclusion_ms()); + println!("║ P50: {:>10}ms ║", stats.p50_inclusion_ms()); + println!("║ P95: {:>10}ms ║", stats.p95_inclusion_ms()); + println!("║ P99: {:>10}ms ║", stats.p99_inclusion_ms()); + } else { + println!("║ No transactions confirmed yet ║"); + } + + // Print per-endpoint stats if we have multiple endpoints + if stats.endpoint_stats.len() > 1 { + println!("╟───────────────────────────────────────────────────────────╢"); + println!("║ PER-ENDPOINT STATS ║"); + println!("╟───────────────────────────────────────────────────────────╢"); + + let mut endpoints: Vec<_> = stats.endpoint_stats.iter().collect(); + endpoints.sort_by(|a, b| a.0.cmp(b.0)); + + for (endpoint, ep_stats) in endpoints { + let truncated = if endpoint.len() > 35 { + format!("{}...", &endpoint[..32]) + } else { + endpoint.clone() + }; + println!("║ {:<35} ║", truncated); + println!("║ Requests: {:>8} Txns: {:>8} Reads: {:>8} ║", + ep_stats.requests, ep_stats.transactions, ep_stats.read_calls); + } + } + + // Print per-method stats if we have multiple methods + if stats.method_stats.len() > 1 { + println!("╟───────────────────────────────────────────────────────────╢"); + println!("║ PER-METHOD STATS ║"); + println!("╟───────────────────────────────────────────────────────────╢"); + + let mut methods: Vec<_> = stats.method_stats.iter().collect(); + methods.sort_by(|a, b| b.1.calls.cmp(&a.1.calls)); + + for (method, method_stats) in methods { + println!("║ {:<30} {:>10} calls ║", method.method_name(), method_stats.calls); + } + } + + println!("╚═══════════════════════════════════════════════════════════╝"); +} diff --git a/crates/gobrr/src/tracker.rs b/crates/gobrr/src/tracker.rs new file mode 100644 index 0000000..9b9c435 --- /dev/null +++ b/crates/gobrr/src/tracker.rs @@ -0,0 +1,215 @@ +use std::{collections::HashMap, time::Instant}; + +use alloy_primitives::B256; +use tokio::sync::mpsc; +use tracing::warn; + +use crate::cli::RpcMethod; + +/// Events sent to the tracker +#[derive(Debug)] +pub(crate) enum TrackerEvent { + /// A transaction was sent + TxSent { + tx_hash: B256, + has_large_calldata: bool, + endpoint: Option, + }, + /// An RPC read call was made + RpcCallSent { + method: RpcMethod, + endpoint: Option, + }, + /// A receipt was received for a transaction + ReceiptReceived { + tx_hash: B256, + }, + /// A replay request was sent + #[allow(dead_code)] + ReplaySent { + is_tx: bool, + endpoint: Option, + }, + /// Request current stats + GetStats(tokio::sync::oneshot::Sender), + /// Shutdown the tracker + Shutdown, +} + +/// Pending transaction info +struct PendingTx { + sent_at: Instant, +} + +/// Per-endpoint statistics +#[derive(Debug, Clone, Default)] +pub(crate) struct EndpointStats { + pub(crate) requests: u64, + pub(crate) transactions: u64, + pub(crate) read_calls: u64, + pub(crate) replays: u64, +} + +/// Per-method statistics +#[derive(Debug, Clone, Default)] +pub(crate) struct MethodStats { + pub(crate) calls: u64, + #[allow(dead_code)] + pub(crate) avg_latency_ms: f64, +} + +/// Statistics collected by the tracker +#[derive(Debug, Clone, Default)] +pub(crate) struct Stats { + // Transaction stats + pub(crate) sent: u64, + pub(crate) confirmed: u64, + pub(crate) timed_out: u64, + pub(crate) small_calldata_count: u64, + pub(crate) large_calldata_count: u64, + pub(crate) inclusion_times_ms: Vec, + + // RPC method stats + pub(crate) read_calls: u64, + pub(crate) replays: u64, + + // Per-endpoint stats + pub(crate) endpoint_stats: HashMap, + + // Per-method stats + pub(crate) method_stats: HashMap, +} + +impl Stats { + pub(crate) const fn pending(&self) -> u64 { + self.sent.saturating_sub(self.confirmed + self.timed_out) + } + + pub(crate) fn total_requests(&self) -> u64 { + self.sent + self.read_calls + } + + pub(crate) fn avg_inclusion_ms(&self) -> f64 { + if self.inclusion_times_ms.is_empty() { + 0.0 + } else { + let sum: u64 = self.inclusion_times_ms.iter().sum(); + sum as f64 / self.inclusion_times_ms.len() as f64 + } + } + + pub(crate) fn min_inclusion_ms(&self) -> u64 { + self.inclusion_times_ms.iter().copied().min().unwrap_or(0) + } + + pub(crate) fn max_inclusion_ms(&self) -> u64 { + self.inclusion_times_ms.iter().copied().max().unwrap_or(0) + } + + pub(crate) fn p50_inclusion_ms(&self) -> u64 { + percentile(&self.inclusion_times_ms, 50) + } + + pub(crate) fn p95_inclusion_ms(&self) -> u64 { + percentile(&self.inclusion_times_ms, 95) + } + + pub(crate) fn p99_inclusion_ms(&self) -> u64 { + percentile(&self.inclusion_times_ms, 99) + } +} + +fn percentile(values: &[u64], p: u8) -> u64 { + if values.is_empty() { + return 0; + } + let mut sorted = values.to_vec(); + sorted.sort_unstable(); + let idx = (sorted.len() as f64 * (p as f64 / 100.0)) as usize; + sorted.get(idx.min(sorted.len() - 1)).copied().unwrap_or(0) +} + +/// Runs the tracker task +pub(crate) async fn run_tracker(mut rx: mpsc::UnboundedReceiver) { + let mut pending: HashMap = HashMap::new(); + let mut stats = Stats::default(); + + loop { + tokio::select! { + Some(event) = rx.recv() => { + match event { + TrackerEvent::TxSent { tx_hash, has_large_calldata, endpoint } => { + stats.sent += 1; + if has_large_calldata { + stats.large_calldata_count += 1; + } else { + stats.small_calldata_count += 1; + } + pending.insert(tx_hash, PendingTx { + sent_at: Instant::now(), + }); + + // Update endpoint stats + if let Some(ep) = endpoint { + let ep_stats = stats.endpoint_stats.entry(ep).or_default(); + ep_stats.requests += 1; + ep_stats.transactions += 1; + } + + // Update method stats + let method_stats = stats.method_stats.entry(RpcMethod::SendRawTransaction).or_default(); + method_stats.calls += 1; + } + TrackerEvent::RpcCallSent { method, endpoint } => { + stats.read_calls += 1; + + // Update endpoint stats + if let Some(ep) = endpoint { + let ep_stats = stats.endpoint_stats.entry(ep).or_default(); + ep_stats.requests += 1; + ep_stats.read_calls += 1; + } + + // Update method stats + let method_stats = stats.method_stats.entry(method).or_default(); + method_stats.calls += 1; + } + TrackerEvent::ReplaySent { is_tx, endpoint } => { + stats.replays += 1; + + if let Some(ep) = endpoint { + let ep_stats = stats.endpoint_stats.entry(ep).or_default(); + ep_stats.replays += 1; + if is_tx { + ep_stats.transactions += 1; + } else { + ep_stats.read_calls += 1; + } + } + } + TrackerEvent::ReceiptReceived { tx_hash } => { + if let Some(tx) = pending.remove(&tx_hash) { + let inclusion_time = tx.sent_at.elapsed().as_millis() as u64; + stats.inclusion_times_ms.push(inclusion_time); + stats.confirmed += 1; + } + } + TrackerEvent::GetStats(reply) => { + if reply.send(stats.clone()).is_err() { + warn!("Failed to send stats response - receiver dropped"); + } + } + TrackerEvent::Shutdown => { + break; + } + } + } + } + } +} + +/// Creates a tracker channel pair (unbounded for high throughput) +pub(crate) fn create_tracker_channel() +-> (mpsc::UnboundedSender, mpsc::UnboundedReceiver) { + mpsc::unbounded_channel() +} diff --git a/crates/gobrr/src/wallet.rs b/crates/gobrr/src/wallet.rs new file mode 100644 index 0000000..05d8d7a --- /dev/null +++ b/crates/gobrr/src/wallet.rs @@ -0,0 +1,46 @@ +use alloy_primitives::Address; +use alloy_signer_local::{LocalSigner, MnemonicBuilder, PrivateKeySigner, coins_bip39::English}; +use anyhow::{Context, Result}; + +/// Derives `count` signers from the given mnemonic using BIP-44 path m/44'/60'/0'/0/i +/// Starting from index `offset` (i.e., derives indices offset..offset+count) +/// Skips any addresses that match `skip_address` (e.g., the funder address) +pub(crate) fn derive_signers( + mnemonic: &str, + count: u32, + offset: u32, + skip_address: Option
, +) -> Result> { + let mut signers = Vec::with_capacity(count as usize); + let mut index = offset; + + while signers.len() < count as usize { + let signer = MnemonicBuilder::::default() + .phrase(mnemonic) + .index(index)? + .build() + .with_context(|| format!("Failed to derive signer at index {index}"))?; + + if Some(signer.address()) == skip_address { + tracing::warn!(index, address = %signer.address(), "Skipping derived address that matches funder"); + index += 1; + continue; + } + + signers.push(signer); + index += 1; + } + + Ok(signers) +} + +/// Parses a private key from hex string (with or without 0x prefix) +pub(crate) fn parse_funder_key(hex_key: &str) -> Result { + let key = hex_key.strip_prefix("0x").unwrap_or(hex_key); + key.parse::().context("Failed to parse funder private key") +} + +/// Get addresses from signers +pub(crate) fn get_addresses(signers: &[PrivateKeySigner]) -> Vec
{ + signers.iter().map(LocalSigner::address).collect() +}