From 7914369c9419995c3d43cdfadff0dd5a75117082 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Thu, 18 Sep 2025 16:33:17 -0400 Subject: [PATCH 01/32] initial p2p node impl in p2p crate --- Cargo.lock | 1051 +++++++++++++++++++++++++++++++-- Cargo.toml | 5 +- crates/op-rbuilder/Cargo.toml | 6 +- crates/p2p/Cargo.toml | 26 + crates/p2p/src/behaviour.rs | 116 ++++ crates/p2p/src/lib.rs | 318 ++++++++++ crates/p2p/src/peers.rs | 67 +++ 7 files changed, 1545 insertions(+), 44 deletions(-) create mode 100644 crates/p2p/Cargo.toml create mode 100644 crates/p2p/src/behaviour.rs create mode 100644 crates/p2p/src/lib.rs create mode 100644 crates/p2p/src/peers.rs diff --git a/Cargo.lock b/Cargo.lock index 9f7a6369..499acbc4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1482,8 +1482,8 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", + "asn1-rs-derive 0.4.0", + "asn1-rs-impl 0.1.0", "displaydoc", "nom", "num-traits", @@ -1492,6 +1492,22 @@ dependencies = [ "time", ] +[[package]] +name = "asn1-rs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +dependencies = [ + "asn1-rs-derive 0.6.0", + "asn1-rs-impl 0.2.0", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror 2.0.16", + "time", +] + [[package]] name = "asn1-rs-derive" version = "0.4.0" @@ -1504,6 +1520,18 @@ dependencies = [ "synstructure 0.12.6", ] +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure 0.13.2", +] + [[package]] name = "asn1-rs-impl" version = "0.1.0" @@ -1515,6 +1543,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "asn1_der" version = "0.7.6" @@ -1537,6 +1576,24 @@ dependencies = [ "zstd-safe", ] +[[package]] +name = "async-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +dependencies = [ + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix 1.0.8", + "slab", + "windows-sys 0.61.0", +] + [[package]] name = "async-lock" version = "3.4.1" @@ -1592,12 +1649,37 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "asynchronous-codec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite", +] + [[package]] name = "atomic-waker" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "attohttpc" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" +dependencies = [ + "base64 0.22.1", + "http", + "log", + "url", +] + [[package]] name = "aurora-engine-modexp" version = "1.2.0" @@ -1960,6 +2042,15 @@ dependencies = [ "wyz", ] +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -2375,6 +2466,15 @@ dependencies = [ "toml", ] +[[package]] +name = "cbor4ii" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "472931dd4dfcc785075b09be910147f9c6258883fc4591d0dac6116392b2daa6" +dependencies = [ + "serde", +] + [[package]] name = "cc" version = "1.2.15" @@ -2413,6 +2513,30 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + [[package]] name = "chrono" version = "0.4.41" @@ -2425,7 +2549,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -2436,6 +2560,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", + "zeroize", ] [[package]] @@ -2976,7 +3101,7 @@ dependencies = [ "sha2 0.10.9", "sha3", "time", - "x509-parser", + "x509-parser 0.15.1", ] [[package]] @@ -3013,7 +3138,21 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs 0.7.1", "displaydoc", "nom", "num-bigint", @@ -3253,6 +3392,12 @@ version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" +[[package]] +name = "dtoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" + [[package]] name = "dtor" version = "0.0.6" @@ -3744,6 +3889,16 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-bounded" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91f328e7fb845fc832912fb6a34f40cf6d1888c92f974d1893a54e97b5ff542e" +dependencies = [ + "futures-timer", + "futures-util", +] + [[package]] name = "futures-channel" version = "0.3.31" @@ -3769,6 +3924,7 @@ dependencies = [ "futures-core", "futures-task", "futures-util", + "num_cpus", ] [[package]] @@ -3777,6 +3933,16 @@ 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 = [ + "futures-core", + "pin-project-lite", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -3788,6 +3954,17 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "futures-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" +dependencies = [ + "futures-io", + "rustls", + "rustls-pki-types", +] + [[package]] name = "futures-sink" version = "0.3.31" @@ -4115,6 +4292,7 @@ dependencies = [ "rand 0.9.2", "ring", "serde", + "socket2 0.5.10", "thiserror 2.0.16", "tinyvec", "tokio", @@ -4633,6 +4811,16 @@ dependencies = [ "icu_properties 2.0.1", ] +[[package]] +name = "if-addrs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "if-addrs" version = "0.13.4" @@ -4643,6 +4831,50 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "if-watch" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" +dependencies = [ + "async-io", + "core-foundation 0.9.4", + "fnv", + "futures", + "if-addrs 0.10.2", + "ipnet", + "log", + "netlink-packet-core", + "netlink-packet-route", + "netlink-proto", + "netlink-sys", + "rtnetlink", + "system-configuration", + "tokio", + "windows 0.53.0", +] + +[[package]] +name = "igd-next" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516893339c97f6011282d5825ac94fc1c7aad5cad26bdc2d0cee068c0bf97f97" +dependencies = [ + "async-trait", + "attohttpc", + "bytes", + "futures", + "http", + "http-body-util", + "hyper", + "hyper-util", + "log", + "rand 0.9.2", + "tokio", + "url", + "xmltree", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -5206,6 +5438,149 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libp2p" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce71348bf5838e46449ae240631117b487073d5f347c06d434caddcb91dceb5a" +dependencies = [ + "bytes", + "either", + "futures", + "futures-timer", + "getrandom 0.2.16", + "libp2p-allow-block-list", + "libp2p-autonat", + "libp2p-connection-limits", + "libp2p-core", + "libp2p-dns", + "libp2p-identify", + "libp2p-identity", + "libp2p-mdns", + "libp2p-metrics", + "libp2p-noise", + "libp2p-ping", + "libp2p-quic", + "libp2p-request-response", + "libp2p-swarm", + "libp2p-tcp", + "libp2p-upnp", + "libp2p-yamux", + "multiaddr", + "pin-project", + "rw-stream-sink", + "thiserror 2.0.16", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d16ccf824ee859ca83df301e1c0205270206223fd4b1f2e512a693e1912a8f4a" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", +] + +[[package]] +name = "libp2p-autonat" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fab5e25c49a7d48dac83d95d8f3bac0a290d8a5df717012f6e34ce9886396c0b" +dependencies = [ + "async-trait", + "asynchronous-codec", + "either", + "futures", + "futures-bounded", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-request-response", + "libp2p-swarm", + "quick-protobuf", + "quick-protobuf-codec", + "rand 0.8.5", + "rand_core 0.6.4", + "thiserror 2.0.16", + "tracing", + "web-time", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18b8b607cf3bfa2f8c57db9c7d8569a315d5cc0a282e6bfd5ebfc0a9840b2a0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", +] + +[[package]] +name = "libp2p-core" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d28e2d2def7c344170f5c6450c0dbe3dfef655610dbfde2f6ac28a527abbe36" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "libp2p-identity", + "multiaddr", + "multihash", + "multistream-select", + "parking_lot", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "thiserror 2.0.16", + "tracing", + "unsigned-varint 0.8.0", + "web-time", +] + +[[package]] +name = "libp2p-dns" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b770c1c8476736ca98c578cba4b505104ff8e842c2876b528925f9766379f9a" +dependencies = [ + "async-trait", + "futures", + "hickory-resolver", + "libp2p-core", + "libp2p-identity", + "parking_lot", + "smallvec", + "tracing", +] + +[[package]] +name = "libp2p-identify" +version = "0.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ab792a8b68fdef443a62155b01970c81c3aadab5e659621b063ef252a8e65e8" +dependencies = [ + "asynchronous-codec", + "either", + "futures", + "futures-bounded", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "quick-protobuf", + "quick-protobuf-codec", + "smallvec", + "thiserror 2.0.16", + "tracing", +] + [[package]] name = "libp2p-identity" version = "0.2.12" @@ -5219,12 +5594,241 @@ dependencies = [ "k256", "multihash", "quick-protobuf", + "rand 0.8.5", "sha2 0.10.9", "thiserror 2.0.16", "tracing", "zeroize", ] +[[package]] +name = "libp2p-mdns" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66872d0f1ffcded2788683f76931be1c52e27f343edb93bc6d0bcd8887be443" +dependencies = [ + "futures", + "hickory-proto", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand 0.8.5", + "smallvec", + "socket2 0.5.10", + "tokio", + "tracing", +] + +[[package]] +name = "libp2p-metrics" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805a555148522cb3414493a5153451910cb1a146c53ffbf4385708349baf62b7" +dependencies = [ + "futures", + "libp2p-core", + "libp2p-identify", + "libp2p-identity", + "libp2p-ping", + "libp2p-swarm", + "pin-project", + "prometheus-client", + "web-time", +] + +[[package]] +name = "libp2p-noise" +version = "0.46.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc73eacbe6462a0eb92a6527cac6e63f02026e5407f8831bde8293f19217bfbf" +dependencies = [ + "asynchronous-codec", + "bytes", + "futures", + "libp2p-core", + "libp2p-identity", + "multiaddr", + "multihash", + "quick-protobuf", + "rand 0.8.5", + "snow", + "static_assertions", + "thiserror 2.0.16", + "tracing", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "libp2p-ping" +version = "0.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74bb7fcdfd9fead4144a3859da0b49576f171a8c8c7c0bfc7c541921d25e60d3" +dependencies = [ + "futures", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand 0.8.5", + "tracing", + "web-time", +] + +[[package]] +name = "libp2p-quic" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc448b2de9f4745784e3751fe8bc6c473d01b8317edd5ababcb0dec803d843f" +dependencies = [ + "futures", + "futures-timer", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-tls", + "quinn", + "rand 0.8.5", + "ring", + "rustls", + "socket2 0.5.10", + "thiserror 2.0.16", + "tokio", + "tracing", +] + +[[package]] +name = "libp2p-request-response" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9f1cca83488b90102abac7b67d5c36fc65bc02ed47620228af7ed002e6a1478" +dependencies = [ + "async-trait", + "cbor4ii", + "futures", + "futures-bounded", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand 0.8.5", + "serde", + "smallvec", + "tracing", +] + +[[package]] +name = "libp2p-stream" +version = "0.4.0-alpha" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6bd8025c80205ec2810cfb28b02f362ab48a01bee32c50ab5f12761e033464" +dependencies = [ + "futures", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand 0.8.5", + "tracing", +] + +[[package]] +name = "libp2p-swarm" +version = "0.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aa762e5215919a34e31c35d4b18bf2e18566ecab7f8a3d39535f4a3068f8b62" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm-derive", + "lru 0.12.5", + "multistream-select", + "rand 0.8.5", + "smallvec", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "libp2p-swarm-derive" +version = "0.35.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd297cf53f0cb3dee4d2620bb319ae47ef27c702684309f682bdb7e55a18ae9c" +dependencies = [ + "heck", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "libp2p-tcp" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65b4e030c52c46c8d01559b2b8ca9b7c4185f10576016853129ca1fe5cd1a644" +dependencies = [ + "futures", + "futures-timer", + "if-watch", + "libc", + "libp2p-core", + "socket2 0.5.10", + "tokio", + "tracing", +] + +[[package]] +name = "libp2p-tls" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ff65a82e35375cbc31ebb99cacbbf28cb6c4fefe26bf13756ddcf708d40080" +dependencies = [ + "futures", + "futures-rustls", + "libp2p-core", + "libp2p-identity", + "rcgen", + "ring", + "rustls", + "rustls-webpki", + "thiserror 2.0.16", + "x509-parser 0.17.0", + "yasna", +] + +[[package]] +name = "libp2p-upnp" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4757e65fe69399c1a243bbb90ec1ae5a2114b907467bf09f3575e899815bb8d3" +dependencies = [ + "futures", + "futures-timer", + "igd-next", + "libp2p-core", + "libp2p-swarm", + "tokio", + "tracing", +] + +[[package]] +name = "libp2p-yamux" +version = "0.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f15df094914eb4af272acf9adaa9e287baa269943f32ea348ba29cfb9bfc60d8" +dependencies = [ + "either", + "futures", + "libp2p-core", + "thiserror 2.0.16", + "tracing", + "yamux 0.12.1", + "yamux 0.13.6", +] + [[package]] name = "libproc" version = "0.14.10" @@ -5747,7 +6351,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.8.0", "url", ] @@ -5763,39 +6367,117 @@ dependencies = [ ] [[package]] -name = "multihash" -version = "0.19.3" +name = "multihash" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +dependencies = [ + "core2", + "unsigned-varint 0.8.0", +] + +[[package]] +name = "multistream-select" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19" +dependencies = [ + "bytes", + "futures", + "log", + "pin-project", + "smallvec", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "nanoid" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +dependencies = [ + "rand 0.8.5", +] + +[[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 = "netlink-packet-core" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" +dependencies = [ + "anyhow", + "byteorder", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" +dependencies = [ + "anyhow", + "bitflags 1.3.2", + "byteorder", + "libc", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-utils" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ - "core2", - "unsigned-varint", + "anyhow", + "byteorder", + "paste", + "thiserror 1.0.69", ] [[package]] -name = "nanoid" -version = "0.4.0" +name = "netlink-proto" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" +checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" dependencies = [ - "rand 0.8.5", + "bytes", + "futures", + "log", + "netlink-packet-core", + "netlink-sys", + "thiserror 2.0.16", ] [[package]] -name = "native-tls" -version = "0.2.14" +name = "netlink-sys" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" dependencies = [ + "bytes", + "futures", "libc", "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", + "tokio", ] [[package]] @@ -5807,6 +6489,23 @@ dependencies = [ "smallvec", ] +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + [[package]] name = "nom" version = "7.1.3" @@ -6051,7 +6750,16 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", +] + +[[package]] +name = "oid-registry" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" +dependencies = [ + "asn1-rs 0.7.1", ] [[package]] @@ -6550,6 +7258,23 @@ dependencies = [ "sha2 0.10.9", ] +[[package]] +name = "p2p" +version = "0.2.2" +dependencies = [ + "eyre", + "futures", + "futures-util", + "hex", + "libp2p", + "libp2p-stream", + "multiaddr", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "page_size" version = "0.6.0" @@ -6831,12 +7556,37 @@ dependencies = [ "crunchy", ] +[[package]] +name = "polling" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite", + "rustix 1.0.8", + "windows-sys 0.61.0", +] + [[package]] name = "pollster" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + [[package]] name = "polyval" version = "0.6.2" @@ -6984,6 +7734,29 @@ dependencies = [ "hex", ] +[[package]] +name = "prometheus-client" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf41c1a7c32ed72abe5082fb19505b969095c12da9f5732a4bc9878757fd087c" +dependencies = [ + "dtoa", + "itoa", + "parking_lot", + "prometheus-client-derive-encode", +] + +[[package]] +name = "prometheus-client-derive-encode" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "proptest" version = "1.7.0" @@ -7089,6 +7862,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quick-protobuf-codec" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15a0580ab32b169745d7a39db2ba969226ca16738931be152a3209b409de2474" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror 1.0.69", + "unsigned-varint 0.8.0", +] + [[package]] name = "quinn" version = "0.11.8" @@ -7097,6 +7883,7 @@ checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", "cfg_aliases", + "futures-io", "pin-project-lite", "quinn-proto", "quinn-udp", @@ -7305,6 +8092,19 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rcgen" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +dependencies = [ + "pem", + "ring", + "rustls-pki-types", + "time", + "yasna", +] + [[package]] name = "recvmsg" version = "1.0.0" @@ -8680,7 +9480,7 @@ version = "1.7.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.7.0#9d56da53ec0ad60e229456a0c70b338501d923a5" dependencies = [ "futures-util", - "if-addrs", + "if-addrs 0.13.4", "reqwest", "serde_with", "thiserror 2.0.16", @@ -10854,6 +11654,24 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" +[[package]] +name = "rtnetlink" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +dependencies = [ + "futures", + "log", + "netlink-packet-core", + "netlink-packet-route", + "netlink-packet-utils", + "netlink-proto", + "netlink-sys", + "nix", + "thiserror 1.0.69", + "tokio", +] + [[package]] name = "rug" version = "1.27.0" @@ -11084,6 +11902,17 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "rw-stream-sink" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1" +dependencies = [ + "futures", + "pin-project", + "static_assertions", +] + [[package]] name = "ryu" version = "1.0.20" @@ -11626,6 +12455,23 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +[[package]] +name = "snow" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" +dependencies = [ + "aes-gcm", + "blake2", + "chacha20poly1305", + "curve25519-dalek", + "rand_core 0.6.4", + "ring", + "rustc_version 0.4.1", + "sha2 0.10.9", + "subtle", +] + [[package]] name = "socket2" version = "0.5.10" @@ -11952,7 +12798,7 @@ dependencies = [ "serde", "tokio", "ureq", - "x509-parser", + "x509-parser 0.15.1", ] [[package]] @@ -12857,6 +13703,12 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" + [[package]] name = "unsigned-varint" version = "0.8.0" @@ -13252,6 +14104,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +dependencies = [ + "windows-core 0.53.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows" version = "0.57.0" @@ -13281,7 +14143,7 @@ dependencies = [ "windows-collections", "windows-core 0.61.2", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -13294,6 +14156,16 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-core" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +dependencies = [ + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.57.0" @@ -13327,7 +14199,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement 0.60.0", "windows-interface 0.59.1", - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -13339,7 +14211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", "windows-threading", ] @@ -13415,6 +14287,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -13422,7 +14300,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core 0.61.2", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13431,7 +14309,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -13460,7 +14338,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13479,7 +14357,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13527,6 +14405,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -13579,7 +14466,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -13596,7 +14483,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -13853,23 +14740,52 @@ dependencies = [ "tap", ] +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek", + "rand_core 0.6.4", + "serde", + "zeroize", +] + [[package]] name = "x509-parser" version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", "data-encoding", - "der-parser", + "der-parser 8.2.0", "lazy_static", "nom", - "oid-registry", + "oid-registry 0.6.1", "rusticata-macros", "thiserror 1.0.69", "time", ] +[[package]] +name = "x509-parser" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" +dependencies = [ + "asn1-rs 0.7.1", + "data-encoding", + "der-parser 10.0.0", + "lazy_static", + "nom", + "oid-registry 0.8.1", + "rusticata-macros", + "thiserror 2.0.16", + "time", +] + [[package]] name = "xattr" version = "1.5.1" @@ -13880,12 +14796,67 @@ dependencies = [ "rustix 1.0.8", ] +[[package]] +name = "xml-rs" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" + +[[package]] +name = "xmltree" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" +dependencies = [ + "xml-rs", +] + +[[package]] +name = "yamux" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot", + "pin-project", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "yamux" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2dd50a6d6115feb3e5d7d0efd45e8ca364b6c83722c1e9c602f5764e0e9597" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot", + "pin-project", + "rand 0.9.2", + "static_assertions", + "web-time", +] + [[package]] name = "yansi" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + [[package]] name = "yoke" version = "0.7.5" diff --git a/Cargo.toml b/Cargo.toml index 38405842..cb197dd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/flashbots/op-rbuilder" exclude = [".github/"] [workspace] -members = [ "crates/op-rbuilder", "crates/tdx-quote-provider"] +members = [ "crates/op-rbuilder", "crates/p2p", "crates/tdx-quote-provider"] default-members = ["crates/op-rbuilder"] resolver = "2" @@ -179,6 +179,9 @@ flate2 = "1.0.35" prometheus = "0.13.4" ctor = "0.2" dashmap = "6.1" +hex = "0.4" +futures = "0.3" +futures-util = "0.3.31" lazy_static = "1.4.0" tikv-jemallocator = { version = "0.6" } diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index f91559de..ce5efcd8 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -109,10 +109,11 @@ url.workspace = true anyhow = "1" opentelemetry = { workspace = true, optional = true } dashmap.workspace = true +hex = { workspace = true } +futures = { workspace = true } +futures-util = { workspace = true } tower = "0.5" -futures = "0.3" -futures-util = "0.3.31" time = { version = "0.3.36", features = ["macros", "formatting", "parsing"] } chrono = "0.4" uuid = { version = "1.6.1", features = ["serde", "v5", "v4"] } @@ -124,7 +125,6 @@ serde_yaml = { version = "0.9" } moka = "0.12" http = "1.0" sha3 = "0.10" -hex = "0.4" ureq = "2.10" # TODO: change to rev from main once https://github.com/flashbots/rollup-boost/pull/401 is merged diff --git a/crates/p2p/Cargo.toml b/crates/p2p/Cargo.toml new file mode 100644 index 00000000..f8f23e12 --- /dev/null +++ b/crates/p2p/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "p2p" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true +exclude.workspace = true + +[dependencies] +libp2p = { version = "0.56", features = ["identify", "ping", "noise", "tcp", "autonat", "mdns", "tokio", "cbor", "macros", "yamux"] } +libp2p-stream = "0.4.0-alpha" +multiaddr = "0.18" + +eyre = { workspace = true } +futures = { workspace = true} +futures-util = { workspace = true } +hex = { workspace = true } +serde_json = { workspace = true } +tokio = { workspace = true, features = [ "macros" ] } +tokio-util = { workspace = true, features = [ "compat", "codec" ] } +tracing = { workspace = true } + +[lints] +workspace = true diff --git a/crates/p2p/src/behaviour.rs b/crates/p2p/src/behaviour.rs new file mode 100644 index 00000000..fa9cd61f --- /dev/null +++ b/crates/p2p/src/behaviour.rs @@ -0,0 +1,116 @@ +use eyre::WrapErr as _; +use libp2p::{ + autonat, connection_limits, connection_limits::ConnectionLimits, identify, identity, mdns, + ping, swarm::NetworkBehaviour, +}; +use std::{convert::Infallible, time::Duration}; + +const DEFAULT_MAX_PEER_COUNT: u32 = 200; +const PROTOCOL_VERSION: &str = "1.0.0"; + +#[derive(NetworkBehaviour)] +#[behaviour(to_swarm = "BehaviourEvent")] +pub(crate) struct Behaviour { + // connection gating + connection_limits: connection_limits::Behaviour, + + // discovery + mdns: mdns::tokio::Behaviour, + + // protocols + identify: identify::Behaviour, + ping: ping::Behaviour, + stream: libp2p_stream::Behaviour, + + // nat traversal + autonat: autonat::Behaviour, +} + +#[allow(clippy::large_enum_variant)] +#[derive(Debug)] +pub(crate) enum BehaviourEvent { + Autonat(autonat::Event), + Identify(identify::Event), + Mdns(mdns::Event), + Ping(ping::Event), +} + +impl From<()> for BehaviourEvent { + fn from(_: ()) -> Self { + unreachable!("() cannot be converted to BehaviourEvent") + } +} + +impl From for BehaviourEvent { + fn from(_: Infallible) -> Self { + unreachable!("Infallible cannot be converted to BehaviourEvent") + } +} + +impl From for BehaviourEvent { + fn from(event: autonat::Event) -> Self { + BehaviourEvent::Autonat(event) + } +} + +impl From for BehaviourEvent { + fn from(event: mdns::Event) -> Self { + BehaviourEvent::Mdns(event) + } +} + +impl From for BehaviourEvent { + fn from(event: ping::Event) -> Self { + BehaviourEvent::Ping(event) + } +} + +impl From for BehaviourEvent { + fn from(event: identify::Event) -> Self { + BehaviourEvent::Identify(event) + } +} + +impl Behaviour { + pub(crate) fn new(keypair: &identity::Keypair, agent_version: String) -> eyre::Result { + let peer_id = keypair.public().to_peer_id(); + + let autonat = autonat::Behaviour::new(peer_id, autonat::Config::default()); + let mdns = mdns::tokio::Behaviour::new(mdns::Config::default(), peer_id) + .wrap_err("failed to create mDNS behaviour")?; + let connection_limits = connection_limits::Behaviour::new( + ConnectionLimits::default().with_max_established(Some(DEFAULT_MAX_PEER_COUNT)), + ); + + let identify = identify::Behaviour::new( + identify::Config::new(PROTOCOL_VERSION.to_string(), keypair.public()) + .with_agent_version(agent_version), + ); + let ping = ping::Behaviour::new(ping::Config::new().with_interval(Duration::from_secs(10))); + let stream = libp2p_stream::Behaviour::new(); + + Ok(Self { + autonat, + connection_limits, + identify, + ping, + mdns, + stream, + }) + } + + pub(crate) fn new_control(&mut self) -> libp2p_stream::Control { + self.stream.new_control() + } +} + +impl BehaviourEvent { + pub(crate) async fn handle(self) { + match self { + BehaviourEvent::Autonat(_event) => {} + BehaviourEvent::Identify(_event) => {} + BehaviourEvent::Mdns(_event) => {} + BehaviourEvent::Ping(_event) => {} + } + } +} diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs new file mode 100644 index 00000000..7312eb1a --- /dev/null +++ b/crates/p2p/src/lib.rs @@ -0,0 +1,318 @@ +mod behaviour; +mod peers; + +use behaviour::Behaviour; +use libp2p_stream::Control; +use peers::Peers; + +use eyre::Context; +use libp2p::{ + Multiaddr, PeerId, StreamProtocol, Swarm, Transport as _, + identity::{self, ed25519}, + noise, + swarm::SwarmEvent, + tcp, yamux, +}; +use std::time::Duration; +use tokio::sync::mpsc; +use tracing::{debug, info, warn}; + +const FLASHBLOCKS_STREAM_PROTOCOL: StreamProtocol = StreamProtocol::new("/flashblocks/1.0.0"); +const DEFAULT_AGENT_VERSION: &str = "rollup-boost/1.0.0"; + +// TODO: change this to an actual message type +pub(crate) type Message = String; + +pub(crate) struct Node { + peer_id: PeerId, + listen_addrs: Vec, + swarm: Swarm, + known_peers: Vec, + payload_rx: mpsc::Receiver, + peers: Peers, + cancellation_token: tokio_util::sync::CancellationToken, +} + +impl Node { + /// Returns the multiaddresses that this node is listening on, with the peer ID included. + pub(crate) fn multiaddrs(&self) -> Vec { + self.listen_addrs + .iter() + .map(|addr| { + addr.clone() + .with_p2p(self.peer_id) + .expect("can add peer ID to multiaddr") + }) + .collect() + } + + pub(crate) async fn run(self) -> eyre::Result<()> { + use libp2p::futures::StreamExt as _; + + let Node { + peer_id: _, + listen_addrs, + mut swarm, + known_peers, + mut payload_rx, + mut peers, + cancellation_token, + } = self; + + for addr in listen_addrs { + swarm + .listen_on(addr) + .wrap_err("swarm failed to listen on multiaddr")?; + } + + for mut address in known_peers { + let peer_id = match address.pop() { + Some(multiaddr::Protocol::P2p(peer_id)) => peer_id, + _ => { + eyre::bail!("no peer ID for known peer"); + } + }; + swarm.add_peer_address(peer_id, address.clone()); + swarm + .dial(address) + .wrap_err("swarm failed to dial known peer")?; + } + + loop { + tokio::select! { + biased; + _ = cancellation_token.cancelled() => { + debug!("cancellation token triggered, shutting down node"); + break Ok(()); + } + event = swarm.select_next_some() => { + match event { + SwarmEvent::NewListenAddr { + address, + .. + } => { + debug!("new listen address: {address}"); + } + SwarmEvent::ExternalAddrConfirmed { address } => { + debug!("external address confirmed: {address}"); + } + SwarmEvent::ConnectionEstablished { + peer_id, + connection_id, + .. + } => { + info!("connection established with peer {peer_id}"); + if peers.has_peer(&peer_id) { + swarm.close_connection(connection_id); + debug!("already have connection with peer {peer_id}, closed connection {connection_id}"); + } else { + match swarm + .behaviour_mut() + .new_control() + .open_stream(peer_id, FLASHBLOCKS_STREAM_PROTOCOL) + .await + { + Ok(stream) => { peers.insert_peer_and_stream(peer_id, stream); + info!("opened stream with peer {peer_id} on connection {connection_id}"); + } + Err(e) => { + warn!("failed to open stream with peer {peer_id} on connection {connection_id}: {e:?}"); + } + } + } + } + SwarmEvent::ConnectionClosed { + peer_id, + cause, + .. + } => { + info!("connection closed with peer {peer_id}: {cause:?}"); + peers.remove_peer(&peer_id); + } + SwarmEvent::Behaviour(event) => event.handle().await, + _ => continue, + } + }, + Some(payload) = payload_rx.recv() => { + let peer_count = swarm.network_info().num_peers(); + info!(peer_count, "received new payload to broadcast to peers"); + peers.broadcast_payload(payload).await; + } + } + } + } +} + +pub(crate) struct NodeBuilder { + port: Option, + listen_addrs: Vec, + keypair_hex: Option, + known_peers: Vec, + cancellation_token: Option, +} + +impl Default for NodeBuilder { + fn default() -> Self { + Self::new() + } +} + +impl NodeBuilder { + pub(crate) fn new() -> Self { + Self { + port: None, + listen_addrs: Vec::new(), + keypair_hex: None, + known_peers: Vec::new(), + cancellation_token: None, + } + } + + pub(crate) fn with_port(mut self, port: u16) -> Self { + self.port = Some(port); + self + } + + #[cfg(test)] + pub(crate) fn with_listen_addr(mut self, addr: libp2p::Multiaddr) -> Self { + self.listen_addrs.push(addr); + self + } + + pub(crate) fn with_keypair_hex_string(mut self, keypair_hex: String) -> Self { + self.keypair_hex = Some(keypair_hex); + self + } + + #[cfg(test)] + pub(crate) fn with_known_peers(mut self, addresses: I) -> Self + where + I: IntoIterator, + T: Into, + { + for address in addresses { + self.known_peers.push(address.into()); + } + self + } + + pub(crate) fn try_build( + self, + ) -> eyre::Result<( + Node, + tokio::sync::mpsc::Sender, + Control, + )> { + let Self { + port, + mut listen_addrs, + keypair_hex, + known_peers, + cancellation_token, + } = self; + + let keypair = match keypair_hex { + Some(hex) => { + let mut bytes = hex::decode(hex).wrap_err("failed to decode hex string")?; + let keypair = ed25519::Keypair::try_from_bytes(&mut bytes) + .wrap_err("failed to create keypair from bytes: {e}")?; + Some(keypair.into()) + } + None => None, + }; + let keypair = keypair.unwrap_or(identity::Keypair::generate_ed25519()); + let peer_id = keypair.public().to_peer_id(); + + let transport = create_transport(&keypair)?; + let mut behaviour = Behaviour::new(&keypair, DEFAULT_AGENT_VERSION.to_string()) + .context("failed to create behaviour")?; + let control = behaviour.new_control(); + + let swarm = libp2p::SwarmBuilder::with_existing_identity(keypair) + .with_tokio() + .with_other_transport(|_| transport)? + .with_behaviour(|_| behaviour)? + .with_swarm_config(|cfg| { + cfg.with_idle_connection_timeout(Duration::from_secs(u64::MAX)) // don't disconnect from idle peers + }) + .build(); + if listen_addrs.is_empty() { + let port = port.unwrap_or(0); + let listen_addr = format!("/ip4/0.0.0.0/tcp/{port}") + .parse() + .expect("can parse valid multiaddr"); + listen_addrs.push(listen_addr); + } + + let (tx, rx) = tokio::sync::mpsc::channel(100); + + Ok(( + Node { + peer_id, + swarm, + listen_addrs, + known_peers, + payload_rx: rx, + peers: Peers::new(), + cancellation_token: cancellation_token.unwrap_or_default(), + }, + tx, + control, + )) + } +} + +fn create_transport( + keypair: &identity::Keypair, +) -> eyre::Result> { + let transport = tcp::tokio::Transport::new(tcp::Config::default()) + .upgrade(libp2p::core::upgrade::Version::V1) + .authenticate(noise::Config::new(keypair)?) + .multiplex(yamux::Config::default()) + .timeout(Duration::from_secs(20)) + .boxed(); + + Ok(transport) +} + +#[cfg(test)] +mod test { + use super::*; + + use futures::StreamExt as _; + use tokio_util::{ + codec::{FramedRead, LinesCodec}, + compat::FuturesAsyncReadCompatExt as _, + }; + + #[tokio::test] + async fn two_nodes_can_connect() { + let (node1, _, mut control1) = NodeBuilder::new() + .with_listen_addr("/ip4/127.0.0.1/tcp/9000".parse().unwrap()) + .try_build() + .unwrap(); + let (node2, tx2, _) = NodeBuilder::new() + .with_known_peers(node1.multiaddrs()) + .with_listen_addr("/ip4/127.0.0.1/tcp/9001".parse().unwrap()) + .try_build() + .unwrap(); + let mut incoming1 = control1.accept(FLASHBLOCKS_STREAM_PROTOCOL).unwrap(); + + tokio::spawn(async move { node1.run().await }); + tokio::spawn(async move { node2.run().await }); + // sleep to allow nodes to connect + tokio::time::sleep(Duration::from_secs(3)).await; + + tokio::spawn(async move { + tx2.send("message".to_string()).await.unwrap(); + }); + + let (_, stream) = incoming1.next().await.unwrap(); + let codec = LinesCodec::new(); + let mut reader = FramedRead::new(stream.compat(), codec); + let str = reader.next().await.unwrap().unwrap(); + assert_eq!(str, "message".to_string()); + // let payload: Message = serde_json::from_str(&str).unwrap(); + // assert_eq!(payload, Message::default()); + } +} diff --git a/crates/p2p/src/peers.rs b/crates/p2p/src/peers.rs new file mode 100644 index 00000000..ffda5a01 --- /dev/null +++ b/crates/p2p/src/peers.rs @@ -0,0 +1,67 @@ +use futures::stream::FuturesUnordered; +use libp2p::{PeerId, swarm::Stream}; +use std::collections::HashMap; +use tracing::warn; + +pub(crate) struct Peers { + peers_to_stream: HashMap, +} + +impl Peers { + pub(crate) fn new() -> Self { + Self { + peers_to_stream: HashMap::new(), + } + } + + pub(crate) fn has_peer(&self, peer: &PeerId) -> bool { + self.peers_to_stream.contains_key(peer) + } + + pub(crate) fn insert_peer_and_stream(&mut self, peer: PeerId, stream: Stream) { + self.peers_to_stream.insert(peer, stream); + } + + pub(crate) fn remove_peer(&mut self, peer: &PeerId) { + self.peers_to_stream.remove(peer); + } + + pub(crate) async fn broadcast_payload(&mut self, payload: crate::Message) { + use futures::{SinkExt as _, StreamExt as _}; + use tokio_util::{ + codec::{FramedWrite, LinesCodec}, + compat::FuturesAsyncReadCompatExt as _, + }; + + // let payload = serde_json::to_string(&payload).expect("can serialize payload"); + let peers = self.peers_to_stream.keys().cloned().collect::>(); + let mut futures = FuturesUnordered::new(); + for peer in peers { + let stream = self + .peers_to_stream + .remove(&peer) + .expect("stream must exist for peer"); + let stream = stream.compat(); + let payload = payload.clone(); + let fut = async move { + let mut writer = FramedWrite::new(stream, LinesCodec::new()); + writer.send(payload).await?; + Ok::<(PeerId, libp2p::swarm::Stream), eyre::ErrReport>(( + peer, + writer.into_inner().into_inner(), + )) + }; + futures.push(fut); + } + while let Some(result) = futures.next().await { + match result { + Ok((peer, stream)) => { + self.peers_to_stream.insert(peer, stream); + } + Err(e) => { + warn!("failed to send payload to peer: {e:?}"); + } + } + } + } +} From a082367193601986a84396d05e6fd1fda340656d Mon Sep 17 00:00:00 2001 From: elizabeth Date: Fri, 19 Sep 2025 15:24:43 -0400 Subject: [PATCH 02/32] update args and add p2p node to flashblocks service --- Cargo.lock | 1 + crates/op-rbuilder/Cargo.toml | 2 ++ crates/op-rbuilder/src/args/op.rs | 15 +++++++++++ .../src/builders/flashblocks/service.rs | 18 +++++++++++++ .../src/builders/flashblocks/wspub.rs | 25 +------------------ crates/op-rbuilder/src/builders/mod.rs | 10 ++++++++ crates/p2p/src/lib.rs | 23 +++++++---------- 7 files changed, 56 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 499acbc4..eb41fd2d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6919,6 +6919,7 @@ dependencies = [ "op-alloy-rpc-types-engine", "op-revm", "opentelemetry 0.29.1", + "p2p", "parking_lot", "rand 0.9.2", "reth", diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index ce5efcd8..888dd2e9 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -12,6 +12,8 @@ default-run = "op-rbuilder" workspace = true [dependencies] +p2p = { path = "../p2p" } + reth.workspace = true reth-optimism-node.workspace = true reth-optimism-cli.workspace = true diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 760249b5..3b7ed466 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -155,6 +155,21 @@ pub struct FlashblocksArgs { env = "FLASHBLOCKS_CALCULATE_STATE_ROOT" )] pub flashblocks_calculate_state_root: bool, + + #[arg( + long = "flasblocks.p2p_port", + env = "FLASHBLOCK_P2P_PORT", + default_value = "9001" + )] + pub flashblocks_p2p_port: u16, + + // TODO: this should be loaded from a file + #[arg( + long = "flashblocks.p2p_private_key_hex", + env = "FLASHBLOCK_P2P_PRIVATE_KEY_HEX", + default_value = "c71a3d30a484e67dcbd01c4c4ce0704989becc51b2e768d74cc0515276f542bc00dfb848648148c134fd75ea041b62391a6389a7fb1e0bf664aedf92668f68e5" + )] + pub flashblocks_p2p_private_key_hex: String, } impl Default for FlashblocksArgs { diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index a8b4d3ba..3de1fba0 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -9,6 +9,7 @@ use crate::{ flashtestations::service::bootstrap_flashtestations, traits::{NodeBounds, PoolBounds}, }; +use eyre::WrapErr as _; use reth_basic_payload_builder::BasicPayloadJobGeneratorConfig; use reth_node_api::NodeTypes; use reth_node_builder::{BuilderContext, components::PayloadServiceBuilder}; @@ -33,6 +34,23 @@ impl FlashblocksServiceBuilder { { let once_lock = Arc::new(std::sync::OnceLock::new()); + let mut builder = p2p::NodeBuilder::new().with_port(self.0.p2p_port); + + if let Some(ref private_key_hex) = self.0.p2p_private_key_hex { + builder = builder.with_keypair_hex_string(private_key_hex.clone()); + } + + let (node, payload_tx, _) = builder + .try_build() + .wrap_err("failed to build flashblocks p2p node")?; + let multiaddrs = node.multiaddrs(); + ctx.task_executor().spawn(async move { + if let Err(e) = node.run().await { + tracing::error!(error = %e, "p2p node exited"); + } + }); + tracing::info!(multiaddrs = ?multiaddrs, "flashblocks p2p node started"); + let payload_builder = OpPayloadBuilder::new( OpEvmConfig::optimism(ctx.chain_spec()), pool, diff --git a/crates/op-rbuilder/src/builders/flashblocks/wspub.rs b/crates/op-rbuilder/src/builders/flashblocks/wspub.rs index 944edb91..e2f003dc 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/wspub.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/wspub.rs @@ -1,11 +1,9 @@ use core::{ fmt::{Debug, Formatter}, net::SocketAddr, - pin::Pin, sync::atomic::{AtomicUsize, Ordering}, - task::{Context, Poll}, }; -use futures::{Sink, SinkExt}; +use futures::SinkExt; use futures_util::StreamExt; use rollup_boost::FlashblocksPayloadV1; use std::{io, net::TcpListener, sync::Arc}; @@ -238,24 +236,3 @@ impl Debug for WebSocketPublisher { .finish() } } - -impl Sink<&FlashblocksPayloadV1> for WebSocketPublisher { - type Error = eyre::Report; - - fn poll_ready(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { - Poll::Ready(Ok(())) - } - - fn start_send(self: Pin<&mut Self>, item: &FlashblocksPayloadV1) -> Result<(), Self::Error> { - self.publish(item)?; - Ok(()) - } - - fn poll_flush(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { - Poll::Ready(Ok(())) - } - - fn poll_close(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll> { - Poll::Ready(Ok(())) - } -} diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 8dcde8eb..8dd171a9 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -119,6 +119,12 @@ pub struct BuilderConfig { /// Address gas limiter stuff pub gas_limiter_config: GasLimiterArgs, + + /// Port for the p2p node + pub p2p_port: u16, + + /// Optional hex-encoded private key for the p2p node + pub p2p_private_key_hex: Option, } impl core::fmt::Debug for BuilderConfig { @@ -156,6 +162,8 @@ impl Default for BuilderConfig { sampling_ratio: 100, max_gas_per_txn: None, gas_limiter_config: GasLimiterArgs::default(), + p2p_port: 9001, + p2p_private_key_hex: None, } } } @@ -177,6 +185,8 @@ where sampling_ratio: args.telemetry.sampling_ratio, max_gas_per_txn: args.max_gas_per_txn, gas_limiter_config: args.gas_limiter.clone(), + p2p_port: args.flashblocks.flashblocks_p2p_port, + p2p_private_key_hex: Some(args.flashblocks.flashblocks_p2p_private_key_hex.clone()), specific: S::try_from(args)?, }) } diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 7312eb1a..1c6ac18a 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -17,13 +17,14 @@ use std::time::Duration; use tokio::sync::mpsc; use tracing::{debug, info, warn}; +// TODO: put this on NodeBuilder const FLASHBLOCKS_STREAM_PROTOCOL: StreamProtocol = StreamProtocol::new("/flashblocks/1.0.0"); const DEFAULT_AGENT_VERSION: &str = "rollup-boost/1.0.0"; // TODO: change this to an actual message type pub(crate) type Message = String; -pub(crate) struct Node { +pub struct Node { peer_id: PeerId, listen_addrs: Vec, swarm: Swarm, @@ -35,7 +36,7 @@ pub(crate) struct Node { impl Node { /// Returns the multiaddresses that this node is listening on, with the peer ID included. - pub(crate) fn multiaddrs(&self) -> Vec { + pub fn multiaddrs(&self) -> Vec { self.listen_addrs .iter() .map(|addr| { @@ -46,7 +47,7 @@ impl Node { .collect() } - pub(crate) async fn run(self) -> eyre::Result<()> { + pub async fn run(self) -> eyre::Result<()> { use libp2p::futures::StreamExt as _; let Node { @@ -143,7 +144,7 @@ impl Node { } } -pub(crate) struct NodeBuilder { +pub struct NodeBuilder { port: Option, listen_addrs: Vec, keypair_hex: Option, @@ -158,7 +159,7 @@ impl Default for NodeBuilder { } impl NodeBuilder { - pub(crate) fn new() -> Self { + pub fn new() -> Self { Self { port: None, listen_addrs: Vec::new(), @@ -168,7 +169,7 @@ impl NodeBuilder { } } - pub(crate) fn with_port(mut self, port: u16) -> Self { + pub fn with_port(mut self, port: u16) -> Self { self.port = Some(port); self } @@ -179,7 +180,7 @@ impl NodeBuilder { self } - pub(crate) fn with_keypair_hex_string(mut self, keypair_hex: String) -> Self { + pub fn with_keypair_hex_string(mut self, keypair_hex: String) -> Self { self.keypair_hex = Some(keypair_hex); self } @@ -196,13 +197,7 @@ impl NodeBuilder { self } - pub(crate) fn try_build( - self, - ) -> eyre::Result<( - Node, - tokio::sync::mpsc::Sender, - Control, - )> { + pub fn try_build(self) -> eyre::Result<(Node, tokio::sync::mpsc::Sender, Control)> { let Self { port, mut listen_addrs, From 960ecf77c77748f81bcaec4bcb95d3fd40ff2460 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 22 Sep 2025 16:40:37 -0400 Subject: [PATCH 03/32] send built flashblocks to p2p layer --- .../src/builders/flashblocks/payload.rs | 42 ++++++++++++++----- .../src/builders/flashblocks/service.rs | 1 + crates/op-rbuilder/src/tests/flashblocks.rs | 20 +++++++++ 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 05228f82..53c32c01 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -134,6 +134,8 @@ pub(super) struct OpPayloadBuilder { pub pool: Pool, /// Node client pub client: Client, + /// Sender for broadcasting outgoing payloads via p2p. + pub payload_tx: mpsc::Sender, /// WebSocket publisher for broadcasting flashblocks /// to all connected subscribers. pub ws_pub: Arc, @@ -161,6 +163,7 @@ impl OpPayloadBuilder { payload_builder_handle: Arc< OnceLock>>, >, + payload_tx: mpsc::Sender, ) -> eyre::Result { let metrics = Arc::new(OpRBuilderMetrics::default()); let ws_pub = WebSocketPublisher::new(config.specific.ws_addr, Arc::clone(&metrics))?.into(); @@ -169,6 +172,7 @@ impl OpPayloadBuilder { evm_config, pool, client, + payload_tx, ws_pub, config, metrics, @@ -345,6 +349,12 @@ where .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; + // TODO: optimize serialization + let message = serde_json::to_string(&fb_payload).map_err(PayloadBuilderError::other)?; + self.payload_tx + .send(message) + .await + .map_err(PayloadBuilderError::other)?; ctx.metrics .flashblock_byte_size_histogram .record(flashblock_byte_size as f64); @@ -483,16 +493,19 @@ where let _entered = fb_span.enter(); // build first flashblock immediately - match self.build_next_flashblock( - &mut ctx, - &mut info, - &mut state, - &state_provider, - &mut best_txs, - &block_cancel, - &best_payload, - &fb_span, - ) { + match self + .build_next_flashblock( + &mut ctx, + &mut info, + &mut state, + &state_provider, + &mut best_txs, + &block_cancel, + &best_payload, + &fb_span, + ) + .await + { Ok(()) => {} Err(err) => { error!( @@ -525,7 +538,7 @@ where } #[allow(clippy::too_many_arguments)] - fn build_next_flashblock< + async fn build_next_flashblock< DB: Database + std::fmt::Debug + AsRef

, P: StateRootProvider + HashedPostStateProvider + StorageRootProvider, >( @@ -683,6 +696,13 @@ where .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; + // TODO: optimize serialization + let message = + serde_json::to_string(&fb_payload).map_err(PayloadBuilderError::other)?; + self.payload_tx + .send(message) + .await + .map_err(PayloadBuilderError::other)?; // Record flashblock build duration ctx.metrics diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 3de1fba0..3e05273a 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -58,6 +58,7 @@ impl FlashblocksServiceBuilder { self.0.clone(), builder_tx, once_lock.clone(), + payload_tx, )?; let payload_job_config = BasicPayloadJobGeneratorConfig::default(); diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index d9789457..c66d5163 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -17,6 +17,8 @@ use crate::{ flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -55,6 +57,8 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -93,6 +97,8 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 50, flashblocks_fixed: true, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -131,6 +137,8 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 50, flashblocks_fixed: true, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -169,6 +177,8 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -214,6 +224,8 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_leeway_time: 0, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -252,6 +264,8 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -312,6 +326,8 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -368,6 +384,8 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: true, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] @@ -413,6 +431,8 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_leeway_time: 100, flashblocks_fixed: false, flashblocks_calculate_state_root: false, + flashblocks_p2p_port: 9002, + flashblocks_p2p_private_key_hex: String::new(), }, ..Default::default() })] From c03416db02d14e165ed7a02e1ee36855d923bda3 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 22 Sep 2025 16:55:00 -0400 Subject: [PATCH 04/32] implement generic message in p2p crate, concrete message in builder --- Cargo.lock | 1 + .../src/builders/flashblocks/mod.rs | 1 + .../src/builders/flashblocks/p2p.rs | 15 +++++ .../src/builders/flashblocks/payload.rs | 27 ++++---- .../src/builders/flashblocks/service.rs | 6 +- crates/p2p/Cargo.toml | 1 + crates/p2p/src/lib.rs | 62 +++++++++++++++---- crates/p2p/src/peers.rs | 5 +- 8 files changed, 85 insertions(+), 33 deletions(-) create mode 100644 crates/op-rbuilder/src/builders/flashblocks/p2p.rs diff --git a/Cargo.lock b/Cargo.lock index eb41fd2d..a164dba2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7270,6 +7270,7 @@ dependencies = [ "libp2p", "libp2p-stream", "multiaddr", + "serde", "serde_json", "tokio", "tokio-util", diff --git a/crates/op-rbuilder/src/builders/flashblocks/mod.rs b/crates/op-rbuilder/src/builders/flashblocks/mod.rs index 10503fa5..db166e91 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/mod.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/mod.rs @@ -6,6 +6,7 @@ use service::FlashblocksServiceBuilder; mod best_txs; mod builder_tx; mod config; +mod p2p; mod payload; mod service; mod wspub; diff --git a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs new file mode 100644 index 00000000..908473c1 --- /dev/null +++ b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs @@ -0,0 +1,15 @@ +use rollup_boost::FlashblocksPayloadV1; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +pub(super) enum Message { + FlashblocksPayloadV1(FlashblocksPayloadV1), +} + +impl p2p::Message for Message {} + +impl From for Message { + fn from(value: FlashblocksPayloadV1) -> Self { + Message::FlashblocksPayloadV1(value) + } +} diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 53c32c01..bc631770 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -4,7 +4,7 @@ use crate::{ BuilderConfig, builder_tx::BuilderTransactions, context::OpPayloadBuilderCtx, - flashblocks::{best_txs::BestFlashblocksTxs, config::FlashBlocksConfigExt}, + flashblocks::{best_txs::BestFlashblocksTxs, config::FlashBlocksConfigExt, p2p::Message}, generator::{BlockCell, BuildArguments, PayloadBuilder}, }, gas_limiter::AddressGasLimiter, @@ -135,7 +135,7 @@ pub(super) struct OpPayloadBuilder { /// Node client pub client: Client, /// Sender for broadcasting outgoing payloads via p2p. - pub payload_tx: mpsc::Sender, + pub payload_tx: mpsc::Sender, /// WebSocket publisher for broadcasting flashblocks /// to all connected subscribers. pub ws_pub: Arc, @@ -163,7 +163,7 @@ impl OpPayloadBuilder { payload_builder_handle: Arc< OnceLock>>, >, - payload_tx: mpsc::Sender, + payload_tx: mpsc::Sender, ) -> eyre::Result { let metrics = Arc::new(OpRBuilderMetrics::default()); let ws_pub = WebSocketPublisher::new(config.specific.ws_addr, Arc::clone(&metrics))?.into(); @@ -343,16 +343,20 @@ where best_payload.set(payload.clone()); self.send_payload_to_engine(payload); + info!( + target: "payload_builder", + message = "Fallback block built", + payload_id = fb_payload.payload_id.to_string(), + ); + // not emitting flashblock if no_tx_pool in FCU, it's just syncing if !ctx.attributes().no_tx_pool { let flashblock_byte_size = self .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; - // TODO: optimize serialization - let message = serde_json::to_string(&fb_payload).map_err(PayloadBuilderError::other)?; self.payload_tx - .send(message) + .send(fb_payload.into()) .await .map_err(PayloadBuilderError::other)?; ctx.metrics @@ -360,12 +364,6 @@ where .record(flashblock_byte_size as f64); } - info!( - target: "payload_builder", - message = "Fallback block built", - payload_id = fb_payload.payload_id.to_string(), - ); - if ctx.attributes().no_tx_pool { info!( target: "payload_builder", @@ -696,11 +694,8 @@ where .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; - // TODO: optimize serialization - let message = - serde_json::to_string(&fb_payload).map_err(PayloadBuilderError::other)?; self.payload_tx - .send(message) + .send(fb_payload.into()) .await .map_err(PayloadBuilderError::other)?; diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 3e05273a..0e5e986d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -3,7 +3,9 @@ use crate::{ builders::{ BuilderConfig, builder_tx::BuilderTransactions, - flashblocks::{builder_tx::FlashblocksBuilderTx, payload::FlashblocksExtraCtx}, + flashblocks::{ + builder_tx::FlashblocksBuilderTx, p2p::Message, payload::FlashblocksExtraCtx, + }, generator::BlockPayloadJobGenerator, }, flashtestations::service::bootstrap_flashtestations, @@ -41,7 +43,7 @@ impl FlashblocksServiceBuilder { } let (node, payload_tx, _) = builder - .try_build() + .try_build::() .wrap_err("failed to build flashblocks p2p node")?; let multiaddrs = node.multiaddrs(); ctx.task_executor().spawn(async move { diff --git a/crates/p2p/Cargo.toml b/crates/p2p/Cargo.toml index f8f23e12..2bf76848 100644 --- a/crates/p2p/Cargo.toml +++ b/crates/p2p/Cargo.toml @@ -17,6 +17,7 @@ eyre = { workspace = true } futures = { workspace = true} futures-util = { workspace = true } hex = { workspace = true } +serde = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true, features = [ "macros" ] } tokio-util = { workspace = true, features = [ "compat", "codec" ] } diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 1c6ac18a..9666a7ae 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -21,20 +21,23 @@ use tracing::{debug, info, warn}; const FLASHBLOCKS_STREAM_PROTOCOL: StreamProtocol = StreamProtocol::new("/flashblocks/1.0.0"); const DEFAULT_AGENT_VERSION: &str = "rollup-boost/1.0.0"; -// TODO: change this to an actual message type -pub(crate) type Message = String; +/// A message that can be sent between peers. +pub trait Message: + serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone +{ +} -pub struct Node { +pub struct Node { peer_id: PeerId, listen_addrs: Vec, swarm: Swarm, known_peers: Vec, - payload_rx: mpsc::Receiver, + payload_rx: mpsc::Receiver, peers: Peers, cancellation_token: tokio_util::sync::CancellationToken, } -impl Node { +impl Node { /// Returns the multiaddresses that this node is listening on, with the peer ID included. pub fn multiaddrs(&self) -> Vec { self.listen_addrs @@ -197,7 +200,9 @@ impl NodeBuilder { self } - pub fn try_build(self) -> eyre::Result<(Node, tokio::sync::mpsc::Sender, Control)> { + pub fn try_build( + self, + ) -> eyre::Result<(Node, tokio::sync::mpsc::Sender, Control)> { let Self { port, mut listen_addrs, @@ -280,16 +285,42 @@ mod test { compat::FuturesAsyncReadCompatExt as _, }; + #[derive(Debug, PartialEq, Eq, Clone)] + struct TestMessage { + content: String, + } + + impl Message for TestMessage {} + + impl serde::Serialize for TestMessage { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + serializer.serialize_str(&self.content) + } + } + + impl<'de> serde::Deserialize<'de> for TestMessage { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let s = String::deserialize(deserializer)?; + Ok(TestMessage { content: s }) + } + } + #[tokio::test] async fn two_nodes_can_connect() { let (node1, _, mut control1) = NodeBuilder::new() .with_listen_addr("/ip4/127.0.0.1/tcp/9000".parse().unwrap()) - .try_build() + .try_build::() .unwrap(); let (node2, tx2, _) = NodeBuilder::new() .with_known_peers(node1.multiaddrs()) .with_listen_addr("/ip4/127.0.0.1/tcp/9001".parse().unwrap()) - .try_build() + .try_build::() .unwrap(); let mut incoming1 = control1.accept(FLASHBLOCKS_STREAM_PROTOCOL).unwrap(); @@ -298,16 +329,21 @@ mod test { // sleep to allow nodes to connect tokio::time::sleep(Duration::from_secs(3)).await; - tokio::spawn(async move { - tx2.send("message".to_string()).await.unwrap(); + let message = TestMessage { + content: "message".to_string(), + }; + tokio::spawn({ + let message = message.clone(); + async move { + tx2.send(message).await.unwrap(); + } }); let (_, stream) = incoming1.next().await.unwrap(); let codec = LinesCodec::new(); let mut reader = FramedRead::new(stream.compat(), codec); let str = reader.next().await.unwrap().unwrap(); - assert_eq!(str, "message".to_string()); - // let payload: Message = serde_json::from_str(&str).unwrap(); - // assert_eq!(payload, Message::default()); + let payload: TestMessage = serde_json::from_str(&str).unwrap(); + assert_eq!(payload, message); } } diff --git a/crates/p2p/src/peers.rs b/crates/p2p/src/peers.rs index ffda5a01..10189852 100644 --- a/crates/p2p/src/peers.rs +++ b/crates/p2p/src/peers.rs @@ -1,3 +1,4 @@ +use crate::Message; use futures::stream::FuturesUnordered; use libp2p::{PeerId, swarm::Stream}; use std::collections::HashMap; @@ -26,14 +27,14 @@ impl Peers { self.peers_to_stream.remove(peer); } - pub(crate) async fn broadcast_payload(&mut self, payload: crate::Message) { + pub(crate) async fn broadcast_payload(&mut self, payload: M) { use futures::{SinkExt as _, StreamExt as _}; use tokio_util::{ codec::{FramedWrite, LinesCodec}, compat::FuturesAsyncReadCompatExt as _, }; - // let payload = serde_json::to_string(&payload).expect("can serialize payload"); + let payload = serde_json::to_string(&payload).expect("can serialize payload"); let peers = self.peers_to_stream.keys().cloned().collect::>(); let mut futures = FuturesUnordered::new(); for peer in peers { From 542812176fbd2a6ca1d6e0c6a4ee5ff611831967 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 23 Sep 2025 22:48:53 -0400 Subject: [PATCH 05/32] implement incoming streams handler --- .../src/builders/flashblocks/payload.rs | 2 +- crates/p2p/src/lib.rs | 157 +++++++++++++----- 2 files changed, 120 insertions(+), 39 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index bc631770..d8efad74 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -348,7 +348,7 @@ where message = "Fallback block built", payload_id = fb_payload.payload_id.to_string(), ); - + // not emitting flashblock if no_tx_pool in FCU, it's just syncing if !ctx.attributes().no_tx_pool { let flashblock_byte_size = self diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 9666a7ae..7789694c 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -2,7 +2,7 @@ mod behaviour; mod peers; use behaviour::Behaviour; -use libp2p_stream::Control; +use libp2p_stream::IncomingStreams; use peers::Peers; use eyre::Context; @@ -19,15 +19,15 @@ use tracing::{debug, info, warn}; // TODO: put this on NodeBuilder const FLASHBLOCKS_STREAM_PROTOCOL: StreamProtocol = StreamProtocol::new("/flashblocks/1.0.0"); -const DEFAULT_AGENT_VERSION: &str = "rollup-boost/1.0.0"; +const DEFAULT_AGENT_VERSION: &str = "op-rbuilder/1.0.0"; /// A message that can be sent between peers. pub trait Message: - serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone + serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone + std::fmt::Debug { } -pub struct Node { +pub struct Node { peer_id: PeerId, listen_addrs: Vec, swarm: Swarm, @@ -35,9 +35,10 @@ pub struct Node { payload_rx: mpsc::Receiver, peers: Peers, cancellation_token: tokio_util::sync::CancellationToken, + incoming_streams_handler: IncomingStreamsHandler, } -impl Node { +impl Node { /// Returns the multiaddresses that this node is listening on, with the peer ID included. pub fn multiaddrs(&self) -> Vec { self.listen_addrs @@ -61,6 +62,7 @@ impl Node { mut payload_rx, mut peers, cancellation_token, + incoming_streams_handler, } = self; for addr in listen_addrs { @@ -82,13 +84,22 @@ impl Node { .wrap_err("swarm failed to dial known peer")?; } + let handle = tokio::spawn(incoming_streams_handler.run()); + loop { tokio::select! { biased; _ = cancellation_token.cancelled() => { debug!("cancellation token triggered, shutting down node"); + handle.abort(); break Ok(()); } + Some(payload) = payload_rx.recv() => { + let peer_count = swarm.network_info().num_peers(); + info!(peer_count, "received new payload to broadcast to peers"); + println!("broadcasting payload to {peer_count} peers: {payload:?}"); + peers.broadcast_payload(payload).await; + } event = swarm.select_next_some() => { match event { SwarmEvent::NewListenAddr { @@ -117,7 +128,7 @@ impl Node { .await { Ok(stream) => { peers.insert_peer_and_stream(peer_id, stream); - info!("opened stream with peer {peer_id} on connection {connection_id}"); + info!("opened outbound stream with peer {peer_id} on connection {connection_id}"); } Err(e) => { warn!("failed to open stream with peer {peer_id} on connection {connection_id}: {e:?}"); @@ -137,11 +148,18 @@ impl Node { _ => continue, } }, - Some(payload) = payload_rx.recv() => { - let peer_count = swarm.network_info().num_peers(); - info!(peer_count, "received new payload to broadcast to peers"); - peers.broadcast_payload(payload).await; - } + // res = &mut handle => { + // match res { + // Ok(_) => { + // warn!("incoming streams handler exited unexpectedly, shutting down node"); + // break Ok(()); + // } + // Err(e) => { + // warn!("incoming streams handler task failed: {e:?}, shutting down node"); + // break Err(eyre::eyre!("incoming streams handler task failed: {e:?}")); + // } + // } + // } } } } @@ -200,9 +218,9 @@ impl NodeBuilder { self } - pub fn try_build( + pub fn try_build( self, - ) -> eyre::Result<(Node, tokio::sync::mpsc::Sender, Control)> { + ) -> eyre::Result<(Node, mpsc::Sender, mpsc::Receiver)> { let Self { port, mut listen_addrs, @@ -226,7 +244,11 @@ impl NodeBuilder { let transport = create_transport(&keypair)?; let mut behaviour = Behaviour::new(&keypair, DEFAULT_AGENT_VERSION.to_string()) .context("failed to create behaviour")?; - let control = behaviour.new_control(); + let mut control = behaviour.new_control(); + let incoming_streams = control + .accept(FLASHBLOCKS_STREAM_PROTOCOL) + .wrap_err("failed to subscribe to incoming streams for flashblocks protocol")?; + let (incoming_streams_handler, message_rx) = IncomingStreamsHandler::new(incoming_streams); let swarm = libp2p::SwarmBuilder::with_existing_identity(keypair) .with_tokio() @@ -255,13 +277,83 @@ impl NodeBuilder { payload_rx: rx, peers: Peers::new(), cancellation_token: cancellation_token.unwrap_or_default(), + incoming_streams_handler, }, tx, - control, + message_rx, )) } } +struct IncomingStreamsHandler { + incoming: IncomingStreams, + tx: mpsc::Sender, +} + +impl IncomingStreamsHandler { + fn new(incoming: IncomingStreams) -> (Self, mpsc::Receiver) { + // TODO: make channel size configurable + let (tx, rx) = mpsc::channel(100); + (Self { incoming, tx }, rx) + } + + async fn run(self) { + println!("incoming streams handler started"); + use futures::StreamExt as _; + + let Self { mut incoming, tx } = self; + let mut handle_stream_futures = futures::stream::FuturesUnordered::new(); + + tokio::select! { + Some((from, stream)) = incoming.next() => { + println!("new incoming stream from peer {from}"); + handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); + } + Some(res) = handle_stream_futures.next() => { + match res { + Ok(Ok(())) => {} + Ok(Err(e)) => { + println!("error handling incoming stream: {e:?}"); + } + Err(e) => { + println!("task handling incoming stream panicked: {e:?}"); + } + } + } + } + } +} + +async fn handle_incoming_stream( + peer_id: PeerId, + stream: libp2p::Stream, + payload_tx: mpsc::Sender, +) -> eyre::Result<()> { + use futures::StreamExt as _; + use tokio_util::{ + codec::{FramedRead, LinesCodec}, + compat::FuturesAsyncReadCompatExt as _, + }; + + let codec = LinesCodec::new(); + let mut reader = FramedRead::new(stream.compat(), codec); + + loop { + match reader.next().await { + Some(Ok(str)) => { + let payload: M = serde_json::from_str(&str) + .wrap_err("failed to decode stream message into FlashblocksPayloadV1")?; + println!("got message from peer {peer_id}: {payload:?}"); + let _ = payload_tx.send(payload).await; + } + Some(Err(e)) => { + return Err(e).wrap_err(format!("failed to read from stream of peer {peer_id}")); + } + None => {} + } + } +} + fn create_transport( keypair: &identity::Keypair, ) -> eyre::Result> { @@ -279,12 +371,6 @@ fn create_transport( mod test { use super::*; - use futures::StreamExt as _; - use tokio_util::{ - codec::{FramedRead, LinesCodec}, - compat::FuturesAsyncReadCompatExt as _, - }; - #[derive(Debug, PartialEq, Eq, Clone)] struct TestMessage { content: String, @@ -312,8 +398,8 @@ mod test { } #[tokio::test] - async fn two_nodes_can_connect() { - let (node1, _, mut control1) = NodeBuilder::new() + async fn two_nodes_can_connect_and_message() { + let (node1, _, mut rx1) = NodeBuilder::new() .with_listen_addr("/ip4/127.0.0.1/tcp/9000".parse().unwrap()) .try_build::() .unwrap(); @@ -322,28 +408,23 @@ mod test { .with_listen_addr("/ip4/127.0.0.1/tcp/9001".parse().unwrap()) .try_build::() .unwrap(); - let mut incoming1 = control1.accept(FLASHBLOCKS_STREAM_PROTOCOL).unwrap(); tokio::spawn(async move { node1.run().await }); tokio::spawn(async move { node2.run().await }); // sleep to allow nodes to connect - tokio::time::sleep(Duration::from_secs(3)).await; + tokio::time::sleep(Duration::from_secs(2)).await; let message = TestMessage { content: "message".to_string(), }; - tokio::spawn({ - let message = message.clone(); - async move { - tx2.send(message).await.unwrap(); - } - }); - - let (_, stream) = incoming1.next().await.unwrap(); - let codec = LinesCodec::new(); - let mut reader = FramedRead::new(stream.compat(), codec); - let str = reader.next().await.unwrap().unwrap(); - let payload: TestMessage = serde_json::from_str(&str).unwrap(); - assert_eq!(payload, message); + // tokio::spawn({ + // let message = message.clone(); + // async move { + tx2.send(message.clone()).await.unwrap(); + // } + // }); + + let recv_message: TestMessage = rx1.recv().await.unwrap(); + assert_eq!(recv_message, message); } } From 847180efd6af10d120576968ee261522ec63336a Mon Sep 17 00:00:00 2001 From: elizabeth Date: Wed, 24 Sep 2025 17:26:30 -0400 Subject: [PATCH 06/32] implement PayloadHandler for handling incoming p2p payloads --- .../src/builders/flashblocks/mod.rs | 1 + .../src/builders/flashblocks/p2p.rs | 48 +++++++++++++-- .../src/builders/flashblocks/payload.rs | 57 +++++------------- .../builders/flashblocks/payload_handler.rs | 59 +++++++++++++++++++ .../src/builders/flashblocks/service.rs | 31 ++++++---- 5 files changed, 136 insertions(+), 60 deletions(-) create mode 100644 crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs diff --git a/crates/op-rbuilder/src/builders/flashblocks/mod.rs b/crates/op-rbuilder/src/builders/flashblocks/mod.rs index db166e91..643bf39a 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/mod.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/mod.rs @@ -8,6 +8,7 @@ mod builder_tx; mod config; mod p2p; mod payload; +mod payload_handler; mod service; mod wspub; diff --git a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs index 908473c1..2a49218d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs @@ -1,15 +1,53 @@ -use rollup_boost::FlashblocksPayloadV1; +use alloy_primitives::U256; +use reth::{core::primitives::SealedBlock, payload::PayloadId}; +use reth_optimism_payload_builder::OpBuiltPayload as RethOpBuiltPayload; +use reth_optimism_primitives::OpBlock; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] pub(super) enum Message { - FlashblocksPayloadV1(FlashblocksPayloadV1), + // FlashblocksPayloadV1(FlashblocksPayloadV1), + OpBuiltPayload(OpBuiltPayload), } impl p2p::Message for Message {} -impl From for Message { - fn from(value: FlashblocksPayloadV1) -> Self { - Message::FlashblocksPayloadV1(value) +/// Internal type analogous to [`reth_optimism_payload_builder::OpBuiltPayload`] +/// which additionally implements `Serialize` and `Deserialize` for p2p transmission. +#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] +pub struct OpBuiltPayload { + /// Identifier of the payload + pub(crate) id: PayloadId, + /// Sealed block + pub(crate) block: SealedBlock, + /// The fees of the block + pub(crate) fees: U256, +} + +impl From for Message { + fn from(value: RethOpBuiltPayload) -> Self { + Message::OpBuiltPayload(value.into()) + } +} + +impl From for Message { + fn from(value: OpBuiltPayload) -> Self { + Message::OpBuiltPayload(value) + } +} + +impl From for RethOpBuiltPayload { + fn from(value: OpBuiltPayload) -> Self { + RethOpBuiltPayload::new(value.id, value.block.into(), value.fees, None) + } +} + +impl From for OpBuiltPayload { + fn from(value: RethOpBuiltPayload) -> Self { + OpBuiltPayload { + id: value.id(), + block: value.block().clone().into(), + fees: value.fees(), + } } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index d8efad74..0310c9eb 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -4,7 +4,7 @@ use crate::{ BuilderConfig, builder_tx::BuilderTransactions, context::OpPayloadBuilderCtx, - flashblocks::{best_txs::BestFlashblocksTxs, config::FlashBlocksConfigExt, p2p::Message}, + flashblocks::{best_txs::BestFlashblocksTxs, config::FlashBlocksConfigExt}, generator::{BlockCell, BuildArguments, PayloadBuilder}, }, gas_limiter::AddressGasLimiter, @@ -26,9 +26,8 @@ use reth_node_api::{Block, NodePrimitives, PayloadBuilderError}; use reth_optimism_consensus::{calculate_receipt_root_no_memo_optimism, isthmus}; use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; use reth_optimism_forks::OpHardforks; -use reth_optimism_node::{OpBuiltPayload, OpEngineTypes, OpPayloadBuilderAttributes}; +use reth_optimism_node::{OpBuiltPayload, OpPayloadBuilderAttributes}; use reth_optimism_primitives::{OpPrimitives, OpReceipt, OpTransactionSigned}; -use reth_payload_builder_primitives::Events; use reth_payload_util::BestPayloadTransactions; use reth_primitives_traits::RecoveredBlock; use reth_provider::{ @@ -47,7 +46,7 @@ use rollup_boost::{ use serde::{Deserialize, Serialize}; use std::{ ops::{Div, Rem}, - sync::{Arc, OnceLock}, + sync::Arc, time::Instant, }; use tokio::sync::mpsc; @@ -134,8 +133,9 @@ pub(super) struct OpPayloadBuilder { pub pool: Pool, /// Node client pub client: Client, - /// Sender for broadcasting outgoing payloads via p2p. - pub payload_tx: mpsc::Sender, + /// Sender for sending built payloads to [`PayloadHandler`], + /// which broadcasts outgoing payloads via p2p. + pub payload_tx: mpsc::Sender, /// WebSocket publisher for broadcasting flashblocks /// to all connected subscribers. pub ws_pub: Arc, @@ -145,9 +145,6 @@ pub(super) struct OpPayloadBuilder { pub metrics: Arc, /// The end of builder transaction type pub builder_tx: BuilderTx, - /// Builder events handle to send BuiltPayload events - pub payload_builder_handle: - Arc>>>, /// Rate limiting based on gas. This is an optional feature. pub address_gas_limiter: AddressGasLimiter, } @@ -160,10 +157,7 @@ impl OpPayloadBuilder { client: Client, config: BuilderConfig, builder_tx: BuilderTx, - payload_builder_handle: Arc< - OnceLock>>, - >, - payload_tx: mpsc::Sender, + payload_tx: mpsc::Sender, ) -> eyre::Result { let metrics = Arc::new(OpRBuilderMetrics::default()); let ws_pub = WebSocketPublisher::new(config.specific.ws_addr, Arc::clone(&metrics))?.into(); @@ -177,7 +171,6 @@ impl OpPayloadBuilder { config, metrics, builder_tx, - payload_builder_handle, address_gas_limiter, }) } @@ -341,8 +334,12 @@ where calculate_state_root || ctx.attributes().no_tx_pool, // need to calculate state root for CL sync )?; - best_payload.set(payload.clone()); - self.send_payload_to_engine(payload); + self.payload_tx + .send(payload.clone()) + .await + .map_err(PayloadBuilderError::other)?; + best_payload.set(payload); + info!( target: "payload_builder", message = "Fallback block built", @@ -355,10 +352,6 @@ where .ws_pub .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; - self.payload_tx - .send(fb_payload.into()) - .await - .map_err(PayloadBuilderError::other)?; ctx.metrics .flashblock_byte_size_histogram .record(flashblock_byte_size as f64); @@ -695,9 +688,10 @@ where .publish(&fb_payload) .map_err(PayloadBuilderError::other)?; self.payload_tx - .send(fb_payload.into()) + .send(new_payload.clone()) .await .map_err(PayloadBuilderError::other)?; + best_payload.set(new_payload); // Record flashblock build duration ctx.metrics @@ -710,8 +704,6 @@ where .flashblock_num_tx_histogram .record(info.executed_transactions.len() as f64); - best_payload.set(new_payload.clone()); - self.send_payload_to_engine(new_payload); // Update bundle_state for next iteration if let Some(da_limit) = ctx.extra_ctx.da_per_batch { if let Some(da) = total_da_per_batch.as_mut() { @@ -773,25 +765,6 @@ where span.record("flashblock_count", ctx.flashblock_index()); } - /// Sends built payload via payload builder handle broadcast channel to the engine - pub(super) fn send_payload_to_engine(&self, payload: OpBuiltPayload) { - // Send built payload as created one - match self.payload_builder_handle.get() { - Some(handle) => { - let res = handle.send(Events::BuiltPayload(payload.clone())); - if let Err(e) = res { - error!( - message = "Failed to send payload via payload builder handle", - error = ?e, - ); - } - } - None => { - error!(message = "Payload builder handle is not setup, skipping sending payload") - } - } - } - /// Calculate number of flashblocks. /// If dynamic is enabled this function will take time drift into the account. pub(super) fn calculate_flashblocks(&self, timestamp: u64) -> (u64, Duration) { diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs new file mode 100644 index 00000000..4fc913a1 --- /dev/null +++ b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs @@ -0,0 +1,59 @@ +use crate::builders::flashblocks::p2p::Message; +use reth_node_builder::Events; +use reth_optimism_node::OpEngineTypes; +use reth_optimism_payload_builder::OpBuiltPayload; +use tokio::sync::mpsc; + +pub(crate) struct PayloadHandler { + // receives new payloads built by us. + built_rx: mpsc::Receiver, + // receives incoming p2p messages from peers. + p2p_rx: mpsc::Receiver, + // outgoing p2p channel to broadcast new payloads to peers. + p2p_tx: mpsc::Sender, + // sends a `Events::BuiltPayload` to the reth payload builder when a new payload is received. + payload_events_handle: tokio::sync::broadcast::Sender>, +} + +impl PayloadHandler { + pub(crate) fn new( + built_rx: mpsc::Receiver, + p2p_rx: mpsc::Receiver, + p2p_tx: mpsc::Sender, + payload_events_handle: tokio::sync::broadcast::Sender>, + ) -> Self { + Self { + built_rx, + p2p_rx, + p2p_tx, + payload_events_handle, + } + } + + pub(crate) async fn run(self) { + let Self { + mut built_rx, + mut p2p_rx, + p2p_tx, + payload_events_handle, + } = self; + + tokio::select! { + Some(payload) = built_rx.recv() => { + let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); + // TODO: only broadcast if `!no_tx_pool`? + let _ = p2p_tx.send(payload.into()).await; + } + Some(message) = p2p_rx.recv() => { + match message { + Message::OpBuiltPayload(payload) => { + let payload: OpBuiltPayload = payload.into(); + let _ = payload_events_handle.send(Events::BuiltPayload(payload)); + // TODO: what other handling is needed here? + // clearing mempool of included txs? + } + } + } + } + } +} diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 0e5e986d..c1bdb2db 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -5,6 +5,7 @@ use crate::{ builder_tx::BuilderTransactions, flashblocks::{ builder_tx::FlashblocksBuilderTx, p2p::Message, payload::FlashblocksExtraCtx, + payload_handler::PayloadHandler, }, generator::BlockPayloadJobGenerator, }, @@ -18,7 +19,6 @@ use reth_node_builder::{BuilderContext, components::PayloadServiceBuilder}; use reth_optimism_evm::OpEvmConfig; use reth_payload_builder::{PayloadBuilderHandle, PayloadBuilderService}; use reth_provider::CanonStateSubscriptions; -use std::sync::Arc; pub struct FlashblocksServiceBuilder(pub BuilderConfig); @@ -34,15 +34,13 @@ impl FlashblocksServiceBuilder { Pool: PoolBounds, BuilderTx: BuilderTransactions + Unpin + Clone + Send + Sync + 'static, { - let once_lock = Arc::new(std::sync::OnceLock::new()); - let mut builder = p2p::NodeBuilder::new().with_port(self.0.p2p_port); if let Some(ref private_key_hex) = self.0.p2p_private_key_hex { builder = builder.with_keypair_hex_string(private_key_hex.clone()); } - let (node, payload_tx, _) = builder + let (node, p2p_payload_tx, p2p_payload_rx) = builder .try_build::() .wrap_err("failed to build flashblocks p2p node")?; let multiaddrs = node.multiaddrs(); @@ -53,15 +51,16 @@ impl FlashblocksServiceBuilder { }); tracing::info!(multiaddrs = ?multiaddrs, "flashblocks p2p node started"); + let (built_payload_tx, built_payload_rx) = tokio::sync::mpsc::channel(16); let payload_builder = OpPayloadBuilder::new( OpEvmConfig::optimism(ctx.chain_spec()), pool, ctx.provider().clone(), self.0.clone(), builder_tx, - once_lock.clone(), - payload_tx, - )?; + built_payload_tx, + ) + .wrap_err("failed to create flashblocks payload builder")?; let payload_job_config = BasicPayloadJobGeneratorConfig::default(); @@ -74,19 +73,25 @@ impl FlashblocksServiceBuilder { self.0.block_time_leeway, ); - let (payload_service, payload_builder) = + let (payload_service, payload_builder_handle) = PayloadBuilderService::new(payload_generator, ctx.provider().canonical_state_stream()); - once_lock - .set(payload_service.payload_events_handle()) - .map_err(|_| eyre::eyre!("Cannot initialize payload service handle"))?; + let payload_handler = PayloadHandler::new( + built_payload_rx, + p2p_payload_rx, + p2p_payload_tx, + payload_service.payload_events_handle(), + ); ctx.task_executor() .spawn_critical("custom payload builder service", Box::pin(payload_service)); + ctx.task_executor().spawn_critical( + "flashblocks payload handler", + Box::pin(payload_handler.run()), + ); tracing::info!("Flashblocks payload builder service started"); - - Ok(payload_builder) + Ok(payload_builder_handle) } } From fa98c77bfbb74218d69d7e24fa119501c4f93b67 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Wed, 24 Sep 2025 18:14:17 -0400 Subject: [PATCH 07/32] support multiple stream protocols --- .../src/builders/flashblocks/p2p.rs | 10 +- .../src/builders/flashblocks/service.rs | 11 +- crates/p2p/src/lib.rs | 161 +++++++++++------- crates/p2p/src/peers.rs | 51 ++++-- 4 files changed, 151 insertions(+), 82 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs index 2a49218d..125cff0e 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs @@ -4,13 +4,19 @@ use reth_optimism_payload_builder::OpBuiltPayload as RethOpBuiltPayload; use reth_optimism_primitives::OpBlock; use serde::{Deserialize, Serialize}; +pub(super) const FLASHBLOCKS_STREAM_PROTOCOL: p2p::StreamProtocol = + p2p::StreamProtocol::new("/flashblocks/1.0.0"); + #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] pub(super) enum Message { - // FlashblocksPayloadV1(FlashblocksPayloadV1), OpBuiltPayload(OpBuiltPayload), } -impl p2p::Message for Message {} +impl p2p::Message for Message { + fn protocol(&self) -> p2p::StreamProtocol { + FLASHBLOCKS_STREAM_PROTOCOL + } +} /// Internal type analogous to [`reth_optimism_payload_builder::OpBuiltPayload`] /// which additionally implements `Serialize` and `Deserialize` for p2p transmission. diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index c1bdb2db..97da6827 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -4,7 +4,9 @@ use crate::{ BuilderConfig, builder_tx::BuilderTransactions, flashblocks::{ - builder_tx::FlashblocksBuilderTx, p2p::Message, payload::FlashblocksExtraCtx, + builder_tx::FlashblocksBuilderTx, + p2p::{FLASHBLOCKS_STREAM_PROTOCOL, Message}, + payload::FlashblocksExtraCtx, payload_handler::PayloadHandler, }, generator::BlockPayloadJobGenerator, @@ -40,7 +42,8 @@ impl FlashblocksServiceBuilder { builder = builder.with_keypair_hex_string(private_key_hex.clone()); } - let (node, p2p_payload_tx, p2p_payload_rx) = builder + let (node, p2p_payload_tx, mut p2p_payload_rx_map) = builder + .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) .try_build::() .wrap_err("failed to build flashblocks p2p node")?; let multiaddrs = node.multiaddrs(); @@ -51,6 +54,10 @@ impl FlashblocksServiceBuilder { }); tracing::info!(multiaddrs = ?multiaddrs, "flashblocks p2p node started"); + let p2p_payload_rx = p2p_payload_rx_map + .remove(&FLASHBLOCKS_STREAM_PROTOCOL) + .expect("flashblocks p2p protocol must be found in receiver map"); + let (built_payload_tx, built_payload_rx) = tokio::sync::mpsc::channel(16); let payload_builder = OpPayloadBuilder::new( OpEvmConfig::optimism(ctx.chain_spec()), diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 7789694c..8e0eed1b 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -3,28 +3,29 @@ mod peers; use behaviour::Behaviour; use libp2p_stream::IncomingStreams; -use peers::Peers; +use peers::OutgoingStreamsHandler; use eyre::Context; use libp2p::{ - Multiaddr, PeerId, StreamProtocol, Swarm, Transport as _, + Multiaddr, PeerId, Swarm, Transport as _, identity::{self, ed25519}, noise, swarm::SwarmEvent, tcp, yamux, }; -use std::time::Duration; +use std::{collections::HashMap, time::Duration}; use tokio::sync::mpsc; -use tracing::{debug, info, warn}; +use tracing::{debug, warn}; + +pub use libp2p::StreamProtocol; -// TODO: put this on NodeBuilder -const FLASHBLOCKS_STREAM_PROTOCOL: StreamProtocol = StreamProtocol::new("/flashblocks/1.0.0"); const DEFAULT_AGENT_VERSION: &str = "op-rbuilder/1.0.0"; /// A message that can be sent between peers. pub trait Message: serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone + std::fmt::Debug { + fn protocol(&self) -> StreamProtocol; } pub struct Node { @@ -32,10 +33,11 @@ pub struct Node { listen_addrs: Vec, swarm: Swarm, known_peers: Vec, - payload_rx: mpsc::Receiver, - peers: Peers, + outgoing_message_rx: mpsc::Receiver, + outgoing_streams_handler: OutgoingStreamsHandler, cancellation_token: tokio_util::sync::CancellationToken, - incoming_streams_handler: IncomingStreamsHandler, + incoming_streams_handlers: Vec>, + protocols: Vec, } impl Node { @@ -59,10 +61,11 @@ impl Node { listen_addrs, mut swarm, known_peers, - mut payload_rx, - mut peers, + mut outgoing_message_rx, + mut outgoing_streams_handler, cancellation_token, - incoming_streams_handler, + incoming_streams_handlers, + protocols, } = self; for addr in listen_addrs { @@ -84,21 +87,24 @@ impl Node { .wrap_err("swarm failed to dial known peer")?; } - let handle = tokio::spawn(incoming_streams_handler.run()); + let handles = incoming_streams_handlers + .into_iter() + .map(|handler| tokio::spawn(handler.run())) + .collect::>(); loop { tokio::select! { biased; _ = cancellation_token.cancelled() => { debug!("cancellation token triggered, shutting down node"); - handle.abort(); + handles.into_iter().for_each(|h| h.abort()); break Ok(()); } - Some(payload) = payload_rx.recv() => { - let peer_count = swarm.network_info().num_peers(); - info!(peer_count, "received new payload to broadcast to peers"); - println!("broadcasting payload to {peer_count} peers: {payload:?}"); - peers.broadcast_payload(payload).await; + Some(message) = outgoing_message_rx.recv() => { + let protocol = message.protocol(); + if let Err(e) = outgoing_streams_handler.broadcast_message(message).await { + warn!("failed to broadcast message on protocol {protocol}: {e:?}"); + } } event = swarm.select_next_some() => { match event { @@ -116,24 +122,26 @@ impl Node { connection_id, .. } => { - info!("connection established with peer {peer_id}"); - if peers.has_peer(&peer_id) { + debug!("connection established with peer {peer_id}"); + if outgoing_streams_handler.has_peer(&peer_id) { swarm.close_connection(connection_id); debug!("already have connection with peer {peer_id}, closed connection {connection_id}"); } else { - match swarm + for protocol in &protocols { + match swarm .behaviour_mut() .new_control() - .open_stream(peer_id, FLASHBLOCKS_STREAM_PROTOCOL) + .open_stream(peer_id, protocol.clone()) .await { - Ok(stream) => { peers.insert_peer_and_stream(peer_id, stream); - info!("opened outbound stream with peer {peer_id} on connection {connection_id}"); + Ok(stream) => { outgoing_streams_handler.insert_peer_and_stream(peer_id, protocol.clone(), stream); + debug!("opened outbound stream with peer {peer_id} with protocol {protocol} on connection {connection_id}"); } Err(e) => { warn!("failed to open stream with peer {peer_id} on connection {connection_id}: {e:?}"); } } + } } } SwarmEvent::ConnectionClosed { @@ -141,25 +149,13 @@ impl Node { cause, .. } => { - info!("connection closed with peer {peer_id}: {cause:?}"); - peers.remove_peer(&peer_id); + debug!("connection closed with peer {peer_id}: {cause:?}"); + outgoing_streams_handler.remove_peer(&peer_id); } SwarmEvent::Behaviour(event) => event.handle().await, _ => continue, } }, - // res = &mut handle => { - // match res { - // Ok(_) => { - // warn!("incoming streams handler exited unexpectedly, shutting down node"); - // break Ok(()); - // } - // Err(e) => { - // warn!("incoming streams handler task failed: {e:?}, shutting down node"); - // break Err(eyre::eyre!("incoming streams handler task failed: {e:?}")); - // } - // } - // } } } } @@ -170,6 +166,7 @@ pub struct NodeBuilder { listen_addrs: Vec, keypair_hex: Option, known_peers: Vec, + protocols: Vec, cancellation_token: Option, } @@ -186,6 +183,7 @@ impl NodeBuilder { listen_addrs: Vec::new(), keypair_hex: None, known_peers: Vec::new(), + protocols: Vec::new(), cancellation_token: None, } } @@ -206,6 +204,11 @@ impl NodeBuilder { self } + pub fn with_protocol(mut self, protocol: StreamProtocol) -> Self { + self.protocols.push(protocol); + self + } + #[cfg(test)] pub(crate) fn with_known_peers(mut self, addresses: I) -> Self where @@ -220,12 +223,17 @@ impl NodeBuilder { pub fn try_build( self, - ) -> eyre::Result<(Node, mpsc::Sender, mpsc::Receiver)> { + ) -> eyre::Result<( + Node, + mpsc::Sender, + HashMap>, + )> { let Self { port, mut listen_addrs, keypair_hex, known_peers, + protocols, cancellation_token, } = self; @@ -245,10 +253,18 @@ impl NodeBuilder { let mut behaviour = Behaviour::new(&keypair, DEFAULT_AGENT_VERSION.to_string()) .context("failed to create behaviour")?; let mut control = behaviour.new_control(); - let incoming_streams = control - .accept(FLASHBLOCKS_STREAM_PROTOCOL) - .wrap_err("failed to subscribe to incoming streams for flashblocks protocol")?; - let (incoming_streams_handler, message_rx) = IncomingStreamsHandler::new(incoming_streams); + + let mut incoming_streams_handlers = Vec::new(); + let mut incoming_message_rxs = HashMap::new(); + for protocol in &protocols { + let incoming_streams = control + .accept(protocol.clone()) + .wrap_err("failed to subscribe to incoming streams for flashblocks protocol")?; + let (incoming_streams_handler, message_rx) = + IncomingStreamsHandler::new(protocol.clone(), incoming_streams); + incoming_streams_handlers.push(incoming_streams_handler); + incoming_message_rxs.insert(protocol.clone(), message_rx); + } let swarm = libp2p::SwarmBuilder::with_existing_identity(keypair) .with_tokio() @@ -266,7 +282,7 @@ impl NodeBuilder { listen_addrs.push(listen_addr); } - let (tx, rx) = tokio::sync::mpsc::channel(100); + let (outgoing_message_tx, outgoing_message_rx) = tokio::sync::mpsc::channel(100); Ok(( Node { @@ -274,49 +290,61 @@ impl NodeBuilder { swarm, listen_addrs, known_peers, - payload_rx: rx, - peers: Peers::new(), + outgoing_message_rx, + outgoing_streams_handler: OutgoingStreamsHandler::new(), cancellation_token: cancellation_token.unwrap_or_default(), - incoming_streams_handler, + incoming_streams_handlers, + protocols, }, - tx, - message_rx, + outgoing_message_tx, + incoming_message_rxs, )) } } struct IncomingStreamsHandler { + protocol: StreamProtocol, incoming: IncomingStreams, tx: mpsc::Sender, } impl IncomingStreamsHandler { - fn new(incoming: IncomingStreams) -> (Self, mpsc::Receiver) { + fn new(protocol: StreamProtocol, incoming: IncomingStreams) -> (Self, mpsc::Receiver) { // TODO: make channel size configurable let (tx, rx) = mpsc::channel(100); - (Self { incoming, tx }, rx) + ( + Self { + protocol, + incoming, + tx, + }, + rx, + ) } async fn run(self) { - println!("incoming streams handler started"); use futures::StreamExt as _; - let Self { mut incoming, tx } = self; + let Self { + protocol, + mut incoming, + tx, + } = self; let mut handle_stream_futures = futures::stream::FuturesUnordered::new(); tokio::select! { Some((from, stream)) = incoming.next() => { - println!("new incoming stream from peer {from}"); + debug!("new incoming stream on protocol {protocol} from peer {from}"); handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); } Some(res) = handle_stream_futures.next() => { match res { Ok(Ok(())) => {} Ok(Err(e)) => { - println!("error handling incoming stream: {e:?}"); + warn!("error handling incoming stream: {e:?}"); } Err(e) => { - println!("task handling incoming stream panicked: {e:?}"); + warn!("task handling incoming stream panicked: {e:?}"); } } } @@ -343,7 +371,7 @@ async fn handle_incoming_stream( Some(Ok(str)) => { let payload: M = serde_json::from_str(&str) .wrap_err("failed to decode stream message into FlashblocksPayloadV1")?; - println!("got message from peer {peer_id}: {payload:?}"); + debug!("got message from peer {peer_id}: {payload:?}"); let _ = payload_tx.send(payload).await; } Some(Err(e)) => { @@ -371,12 +399,18 @@ fn create_transport( mod test { use super::*; + const TEST_PROTOCOL: StreamProtocol = StreamProtocol::new("/test/1.0.0"); + #[derive(Debug, PartialEq, Eq, Clone)] struct TestMessage { content: String, } - impl Message for TestMessage {} + impl Message for TestMessage { + fn protocol(&self) -> StreamProtocol { + TEST_PROTOCOL + } + } impl serde::Serialize for TestMessage { fn serialize(&self, serializer: S) -> Result @@ -401,10 +435,12 @@ mod test { async fn two_nodes_can_connect_and_message() { let (node1, _, mut rx1) = NodeBuilder::new() .with_listen_addr("/ip4/127.0.0.1/tcp/9000".parse().unwrap()) + .with_protocol(TEST_PROTOCOL) .try_build::() .unwrap(); let (node2, tx2, _) = NodeBuilder::new() .with_known_peers(node1.multiaddrs()) + .with_protocol(TEST_PROTOCOL) .with_listen_addr("/ip4/127.0.0.1/tcp/9001".parse().unwrap()) .try_build::() .unwrap(); @@ -417,14 +453,9 @@ mod test { let message = TestMessage { content: "message".to_string(), }; - // tokio::spawn({ - // let message = message.clone(); - // async move { tx2.send(message.clone()).await.unwrap(); - // } - // }); - let recv_message: TestMessage = rx1.recv().await.unwrap(); + let recv_message: TestMessage = rx1.remove(&TEST_PROTOCOL).unwrap().recv().await.unwrap(); assert_eq!(recv_message, message); } } diff --git a/crates/p2p/src/peers.rs b/crates/p2p/src/peers.rs index 10189852..1e4ecbab 100644 --- a/crates/p2p/src/peers.rs +++ b/crates/p2p/src/peers.rs @@ -1,14 +1,15 @@ use crate::Message; +use eyre::Context; use futures::stream::FuturesUnordered; -use libp2p::{PeerId, swarm::Stream}; +use libp2p::{PeerId, StreamProtocol, swarm::Stream}; use std::collections::HashMap; -use tracing::warn; +use tracing::{debug, warn}; -pub(crate) struct Peers { - peers_to_stream: HashMap, +pub(crate) struct OutgoingStreamsHandler { + peers_to_stream: HashMap>, } -impl Peers { +impl OutgoingStreamsHandler { pub(crate) fn new() -> Self { Self { peers_to_stream: HashMap::new(), @@ -19,29 +20,43 @@ impl Peers { self.peers_to_stream.contains_key(peer) } - pub(crate) fn insert_peer_and_stream(&mut self, peer: PeerId, stream: Stream) { - self.peers_to_stream.insert(peer, stream); + pub(crate) fn insert_peer_and_stream( + &mut self, + peer: PeerId, + protocol: StreamProtocol, + stream: Stream, + ) { + self.peers_to_stream + .entry(peer) + .or_insert_with(HashMap::new) + .insert(protocol, stream); } pub(crate) fn remove_peer(&mut self, peer: &PeerId) { self.peers_to_stream.remove(peer); } - pub(crate) async fn broadcast_payload(&mut self, payload: M) { + pub(crate) async fn broadcast_message(&mut self, message: M) -> eyre::Result<()> { use futures::{SinkExt as _, StreamExt as _}; use tokio_util::{ codec::{FramedWrite, LinesCodec}, compat::FuturesAsyncReadCompatExt as _, }; - let payload = serde_json::to_string(&payload).expect("can serialize payload"); + let protocol = message.protocol(); + let payload = serde_json::to_string(&message).wrap_err("failed to serialize payload")?; + let peers = self.peers_to_stream.keys().cloned().collect::>(); let mut futures = FuturesUnordered::new(); for peer in peers { - let stream = self + let protocol_to_stream = self .peers_to_stream - .remove(&peer) - .expect("stream must exist for peer"); + .get_mut(&peer) + .expect("stream map must exist for peer"); + let Some(stream) = protocol_to_stream.remove(&protocol) else { + warn!("no stream for protocol {protocol:?} to peer {peer}"); + continue; + }; let stream = stream.compat(); let payload = payload.clone(); let fut = async move { @@ -57,12 +72,22 @@ impl Peers { while let Some(result) = futures.next().await { match result { Ok((peer, stream)) => { - self.peers_to_stream.insert(peer, stream); + let protocol_to_stream = self + .peers_to_stream + .get_mut(&peer) + .expect("stream map must exist for peer"); + protocol_to_stream.insert(protocol.clone(), stream); } Err(e) => { warn!("failed to send payload to peer: {e:?}"); } } } + debug!( + "broadcasted message to {} peers", + self.peers_to_stream.len() + ); + + Ok(()) } } From 590927cd133ccbc88bb45ccc9e0f70e7528faa41 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Wed, 24 Sep 2025 18:21:25 -0400 Subject: [PATCH 08/32] make agent version configurable --- .../src/builders/flashblocks/p2p.rs | 3 ++- .../src/builders/flashblocks/service.rs | 3 ++- crates/p2p/src/lib.rs | 20 ++++++++++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs index 125cff0e..f3526c5f 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs @@ -4,6 +4,7 @@ use reth_optimism_payload_builder::OpBuiltPayload as RethOpBuiltPayload; use reth_optimism_primitives::OpBlock; use serde::{Deserialize, Serialize}; +pub(super) const AGENT_VERSION: &str = "op-rbuilder/1.0.0"; pub(super) const FLASHBLOCKS_STREAM_PROTOCOL: p2p::StreamProtocol = p2p::StreamProtocol::new("/flashblocks/1.0.0"); @@ -21,7 +22,7 @@ impl p2p::Message for Message { /// Internal type analogous to [`reth_optimism_payload_builder::OpBuiltPayload`] /// which additionally implements `Serialize` and `Deserialize` for p2p transmission. #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)] -pub struct OpBuiltPayload { +pub(crate) struct OpBuiltPayload { /// Identifier of the payload pub(crate) id: PayloadId, /// Sealed block diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 97da6827..0352a7fd 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -5,7 +5,7 @@ use crate::{ builder_tx::BuilderTransactions, flashblocks::{ builder_tx::FlashblocksBuilderTx, - p2p::{FLASHBLOCKS_STREAM_PROTOCOL, Message}, + p2p::{AGENT_VERSION, FLASHBLOCKS_STREAM_PROTOCOL, Message}, payload::FlashblocksExtraCtx, payload_handler::PayloadHandler, }, @@ -43,6 +43,7 @@ impl FlashblocksServiceBuilder { } let (node, p2p_payload_tx, mut p2p_payload_rx_map) = builder + .with_agent_version(AGENT_VERSION.to_string()) .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) .try_build::() .wrap_err("failed to build flashblocks p2p node")?; diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 8e0eed1b..2082b357 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -19,8 +19,6 @@ use tracing::{debug, warn}; pub use libp2p::StreamProtocol; -const DEFAULT_AGENT_VERSION: &str = "op-rbuilder/1.0.0"; - /// A message that can be sent between peers. pub trait Message: serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone + std::fmt::Debug @@ -166,6 +164,7 @@ pub struct NodeBuilder { listen_addrs: Vec, keypair_hex: Option, known_peers: Vec, + agent_version: Option, protocols: Vec, cancellation_token: Option, } @@ -183,6 +182,7 @@ impl NodeBuilder { listen_addrs: Vec::new(), keypair_hex: None, known_peers: Vec::new(), + agent_version: None, protocols: Vec::new(), cancellation_token: None, } @@ -204,6 +204,11 @@ impl NodeBuilder { self } + pub fn with_agent_version(mut self, agent_version: String) -> Self { + self.agent_version = Some(agent_version); + self + } + pub fn with_protocol(mut self, protocol: StreamProtocol) -> Self { self.protocols.push(protocol); self @@ -233,10 +238,15 @@ impl NodeBuilder { mut listen_addrs, keypair_hex, known_peers, + agent_version, protocols, cancellation_token, } = self; + let Some(agent_version) = agent_version else { + eyre::bail!("agent version must be set"); + }; + let keypair = match keypair_hex { Some(hex) => { let mut bytes = hex::decode(hex).wrap_err("failed to decode hex string")?; @@ -250,8 +260,8 @@ impl NodeBuilder { let peer_id = keypair.public().to_peer_id(); let transport = create_transport(&keypair)?; - let mut behaviour = Behaviour::new(&keypair, DEFAULT_AGENT_VERSION.to_string()) - .context("failed to create behaviour")?; + let mut behaviour = + Behaviour::new(&keypair, agent_version).context("failed to create behaviour")?; let mut control = behaviour.new_control(); let mut incoming_streams_handlers = Vec::new(); @@ -292,7 +302,7 @@ impl NodeBuilder { known_peers, outgoing_message_rx, outgoing_streams_handler: OutgoingStreamsHandler::new(), - cancellation_token: cancellation_token.unwrap_or_default(), + cancellation_token: cancellation_token.unwrap_or_default(), // TODO: caller must provide this incoming_streams_handlers, protocols, }, From 7ae5778022228bfa3f6ab7b8478dd3de9723fe3e Mon Sep 17 00:00:00 2001 From: elizabeth Date: Wed, 24 Sep 2025 22:19:56 -0400 Subject: [PATCH 09/32] fmt --- crates/op-rbuilder/src/args/op.rs | 2 +- crates/op-rbuilder/src/builders/flashblocks/service.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 2d164cf0..3134015c 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -171,7 +171,7 @@ pub struct FlashblocksArgs { default_value = "c71a3d30a484e67dcbd01c4c4ce0704989becc51b2e768d74cc0515276f542bc00dfb848648148c134fd75ea041b62391a6389a7fb1e0bf664aedf92668f68e5" )] pub flashblocks_p2p_private_key_hex: String, - + /// Flashblocks number contract address /// /// This is the address of the contract that will be used to increment the flashblock number. diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index cabae62b..30a97e85 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -4,8 +4,8 @@ use crate::{ BuilderConfig, builder_tx::BuilderTransactions, flashblocks::{ -builder_tx::{FlashblocksBuilderTx, FlashblocksNumberBuilderTx}, -p2p::{AGENT_VERSION, FLASHBLOCKS_STREAM_PROTOCOL, Message}, + builder_tx::{FlashblocksBuilderTx, FlashblocksNumberBuilderTx}, + p2p::{AGENT_VERSION, FLASHBLOCKS_STREAM_PROTOCOL, Message}, payload::FlashblocksExtraCtx, payload_handler::PayloadHandler, }, From 5b77ff1c43720f183c157bb730fdb5ebd9f21623 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Wed, 24 Sep 2025 22:54:37 -0400 Subject: [PATCH 10/32] clippy --- .../src/builders/flashblocks/service.rs | 12 +++++++---- crates/p2p/src/lib.rs | 20 +++++++++---------- crates/p2p/src/peers.rs | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 30a97e85..421349cd 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -42,7 +42,11 @@ impl FlashblocksServiceBuilder { builder = builder.with_keypair_hex_string(private_key_hex.clone()); } - let (node, p2p_payload_tx, mut p2p_payload_rx_map) = builder + let p2p::NodeBuildResult { + node, + outgoing_message_tx, + mut incoming_message_rxs, + } = builder .with_agent_version(AGENT_VERSION.to_string()) .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) .try_build::() @@ -55,7 +59,7 @@ impl FlashblocksServiceBuilder { }); tracing::info!(multiaddrs = ?multiaddrs, "flashblocks p2p node started"); - let p2p_payload_rx = p2p_payload_rx_map + let incoming_message_rx = incoming_message_rxs .remove(&FLASHBLOCKS_STREAM_PROTOCOL) .expect("flashblocks p2p protocol must be found in receiver map"); @@ -86,8 +90,8 @@ impl FlashblocksServiceBuilder { let payload_handler = PayloadHandler::new( built_payload_rx, - p2p_payload_rx, - p2p_payload_tx, + incoming_message_rx, + outgoing_message_tx, payload_service.payload_events_handle(), ); diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 2082b357..d44df397 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -159,6 +159,12 @@ impl Node { } } +pub struct NodeBuildResult { + pub node: Node, + pub outgoing_message_tx: mpsc::Sender, + pub incoming_message_rxs: HashMap>, +} + pub struct NodeBuilder { port: Option, listen_addrs: Vec, @@ -226,13 +232,7 @@ impl NodeBuilder { self } - pub fn try_build( - self, - ) -> eyre::Result<( - Node, - mpsc::Sender, - HashMap>, - )> { + pub fn try_build(self) -> eyre::Result> { let Self { port, mut listen_addrs, @@ -294,8 +294,8 @@ impl NodeBuilder { let (outgoing_message_tx, outgoing_message_rx) = tokio::sync::mpsc::channel(100); - Ok(( - Node { + Ok(NodeBuildResult { + node: Node { peer_id, swarm, listen_addrs, @@ -308,7 +308,7 @@ impl NodeBuilder { }, outgoing_message_tx, incoming_message_rxs, - )) + }) } } diff --git a/crates/p2p/src/peers.rs b/crates/p2p/src/peers.rs index 1e4ecbab..188fb465 100644 --- a/crates/p2p/src/peers.rs +++ b/crates/p2p/src/peers.rs @@ -28,7 +28,7 @@ impl OutgoingStreamsHandler { ) { self.peers_to_stream .entry(peer) - .or_insert_with(HashMap::new) + .or_default() .insert(protocol, stream); } From 3b6651091a23cfadcfb241e421b68101ba971fc1 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Thu, 25 Sep 2025 15:06:42 -0400 Subject: [PATCH 11/32] add known peers flag --- crates/op-rbuilder/src/args/op.rs | 12 ++++++- .../src/builders/flashblocks/p2p.rs | 2 +- .../src/builders/flashblocks/service.rs | 20 ++++++++++-- crates/op-rbuilder/src/builders/mod.rs | 7 ++++- crates/op-rbuilder/src/tests/flashblocks.rs | 10 ++++++ crates/p2p/src/lib.rs | 31 ++++++++++++------- crates/p2p/src/peers.rs | 4 +-- 7 files changed, 68 insertions(+), 18 deletions(-) diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 3134015c..5fc6a739 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -160,11 +160,12 @@ pub struct FlashblocksArgs { #[arg( long = "flasblocks.p2p_port", env = "FLASHBLOCK_P2P_PORT", - default_value = "9001" + default_value = "9009" )] pub flashblocks_p2p_port: u16, // TODO: this should be loaded from a file + // corresponds to peer ID `12D3KooW9sn2ZidTANAmQB1paiKBPGkF5DVusZXxaZCapbW94G44` #[arg( long = "flashblocks.p2p_private_key_hex", env = "FLASHBLOCK_P2P_PRIVATE_KEY_HEX", @@ -172,6 +173,15 @@ pub struct FlashblocksArgs { )] pub flashblocks_p2p_private_key_hex: String, + /// Comma-separated list of multiaddrs of known Flashblocks peers + /// Example: "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ,/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ" + #[arg( + long = "flashblocks.p2p_known_peers", + env = "FLASHBLOCK_P2P_KNOWN_PEERS", + default_value = "/ip4/127.0.0.1/tcp/9009/p2p/12D3KooW9sn2ZidTANAmQB1paiKBPGkF5DVusZXxaZCapbW94G44" + )] + pub flashblocks_known_peers: String, + /// Flashblocks number contract address /// /// This is the address of the contract that will be used to increment the flashblock number. diff --git a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs index f3526c5f..9f947d95 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/p2p.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/p2p.rs @@ -53,7 +53,7 @@ impl From for OpBuiltPayload { fn from(value: RethOpBuiltPayload) -> Self { OpBuiltPayload { id: value.id(), - block: value.block().clone().into(), + block: value.block().clone(), fees: value.fees(), } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 421349cd..b9c98e1b 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -36,12 +36,22 @@ impl FlashblocksServiceBuilder { Pool: PoolBounds, BuilderTx: BuilderTransactions + Unpin + Clone + Send + Sync + 'static, { - let mut builder = p2p::NodeBuilder::new().with_port(self.0.p2p_port); + let mut builder = p2p::NodeBuilder::new(); - if let Some(ref private_key_hex) = self.0.p2p_private_key_hex { + if let Some(ref private_key_hex) = self.0.p2p_private_key_hex + && !private_key_hex.is_empty() + { builder = builder.with_keypair_hex_string(private_key_hex.clone()); } + let known_peers: Vec = self + .0 + .p2p_known_peers + .split(',') + .map(|s| s.to_string()) + .filter_map(|s| s.parse().ok()) + .collect(); + let p2p::NodeBuildResult { node, outgoing_message_tx, @@ -49,6 +59,12 @@ impl FlashblocksServiceBuilder { } = builder .with_agent_version(AGENT_VERSION.to_string()) .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) + .with_known_peers(known_peers) + .with_listen_addr( + format!("/ip4/127.0.0.1/tcp/{}", self.0.p2p_port) + .parse() + .unwrap(), + ) // TODO: make configurable .try_build::() .wrap_err("failed to build flashblocks p2p node")?; let multiaddrs = node.multiaddrs(); diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 8dd171a9..eb2d3047 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -125,6 +125,9 @@ pub struct BuilderConfig { /// Optional hex-encoded private key for the p2p node pub p2p_private_key_hex: Option, + + /// Comma-separated list of multiaddresses of known peers to connect to + pub p2p_known_peers: String, } impl core::fmt::Debug for BuilderConfig { @@ -162,8 +165,9 @@ impl Default for BuilderConfig { sampling_ratio: 100, max_gas_per_txn: None, gas_limiter_config: GasLimiterArgs::default(), - p2p_port: 9001, + p2p_port: 9009, p2p_private_key_hex: None, + p2p_known_peers: String::new(), } } } @@ -187,6 +191,7 @@ where gas_limiter_config: args.gas_limiter.clone(), p2p_port: args.flashblocks.flashblocks_p2p_port, p2p_private_key_hex: Some(args.flashblocks.flashblocks_p2p_private_key_hex.clone()), + p2p_known_peers: args.flashblocks.flashblocks_known_peers.clone(), specific: S::try_from(args)?, }) } diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index 1e38427d..10f542a4 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -19,6 +19,7 @@ use crate::{ flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -60,6 +61,7 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -101,6 +103,7 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -142,6 +145,7 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -183,6 +187,7 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -231,6 +236,7 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -272,6 +278,7 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -335,6 +342,7 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -394,6 +402,7 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() @@ -442,6 +451,7 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_calculate_state_root: false, flashblocks_p2p_port: 9002, flashblocks_p2p_private_key_hex: String::new(), + flashblocks_known_peers: String::new(), flashblocks_number_contract_address: None, }, ..Default::default() diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index d44df397..1b36f834 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -7,7 +7,7 @@ use peers::OutgoingStreamsHandler; use eyre::Context; use libp2p::{ - Multiaddr, PeerId, Swarm, Transport as _, + PeerId, Swarm, Transport as _, identity::{self, ed25519}, noise, swarm::SwarmEvent, @@ -15,9 +15,9 @@ use libp2p::{ }; use std::{collections::HashMap, time::Duration}; use tokio::sync::mpsc; -use tracing::{debug, warn}; +use tracing::{debug, info, warn}; -pub use libp2p::StreamProtocol; +pub use libp2p::{Multiaddr, StreamProtocol}; /// A message that can be sent between peers. pub trait Message: @@ -199,8 +199,7 @@ impl NodeBuilder { self } - #[cfg(test)] - pub(crate) fn with_listen_addr(mut self, addr: libp2p::Multiaddr) -> Self { + pub fn with_listen_addr(mut self, addr: libp2p::Multiaddr) -> Self { self.listen_addrs.push(addr); self } @@ -220,8 +219,7 @@ impl NodeBuilder { self } - #[cfg(test)] - pub(crate) fn with_known_peers(mut self, addresses: I) -> Self + pub fn with_known_peers(mut self, addresses: I) -> Self where I: IntoIterator, T: Into, @@ -344,7 +342,7 @@ impl IncomingStreamsHandler { tokio::select! { Some((from, stream)) = incoming.next() => { - debug!("new incoming stream on protocol {protocol} from peer {from}"); + info!("new incoming stream on protocol {protocol} from peer {from}"); handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); } Some(res) = handle_stream_futures.next() => { @@ -381,7 +379,7 @@ async fn handle_incoming_stream( Some(Ok(str)) => { let payload: M = serde_json::from_str(&str) .wrap_err("failed to decode stream message into FlashblocksPayloadV1")?; - debug!("got message from peer {peer_id}: {payload:?}"); + info!("got message from peer {peer_id}: {payload:?}"); let _ = payload_tx.send(payload).await; } Some(Err(e)) => { @@ -409,6 +407,7 @@ fn create_transport( mod test { use super::*; + const TEST_AGENT_VERSION: &str = "test/1.0.0"; const TEST_PROTOCOL: StreamProtocol = StreamProtocol::new("/test/1.0.0"); #[derive(Debug, PartialEq, Eq, Clone)] @@ -443,15 +442,25 @@ mod test { #[tokio::test] async fn two_nodes_can_connect_and_message() { - let (node1, _, mut rx1) = NodeBuilder::new() + let NodeBuildResult { + node: node1, + outgoing_message_tx: _, + incoming_message_rxs: mut rx1, + } = NodeBuilder::new() .with_listen_addr("/ip4/127.0.0.1/tcp/9000".parse().unwrap()) + .with_agent_version(TEST_AGENT_VERSION.to_string()) .with_protocol(TEST_PROTOCOL) .try_build::() .unwrap(); - let (node2, tx2, _) = NodeBuilder::new() + let NodeBuildResult { + node: node2, + outgoing_message_tx: tx2, + incoming_message_rxs: _, + } = NodeBuilder::new() .with_known_peers(node1.multiaddrs()) .with_protocol(TEST_PROTOCOL) .with_listen_addr("/ip4/127.0.0.1/tcp/9001".parse().unwrap()) + .with_agent_version(TEST_AGENT_VERSION.to_string()) .try_build::() .unwrap(); diff --git a/crates/p2p/src/peers.rs b/crates/p2p/src/peers.rs index 188fb465..e02f7b7c 100644 --- a/crates/p2p/src/peers.rs +++ b/crates/p2p/src/peers.rs @@ -3,7 +3,7 @@ use eyre::Context; use futures::stream::FuturesUnordered; use libp2p::{PeerId, StreamProtocol, swarm::Stream}; use std::collections::HashMap; -use tracing::{debug, warn}; +use tracing::{info, warn}; pub(crate) struct OutgoingStreamsHandler { peers_to_stream: HashMap>, @@ -83,7 +83,7 @@ impl OutgoingStreamsHandler { } } } - debug!( + info!( "broadcasted message to {} peers", self.peers_to_stream.len() ); From 380a5c1edc01cf1ebfa29587d633de0413d4dd9b Mon Sep 17 00:00:00 2001 From: elizabeth Date: Thu, 25 Sep 2025 16:57:04 -0400 Subject: [PATCH 12/32] update error handling for better logging in payload builder --- .../src/builders/flashblocks/payload.rs | 22 +++++++------- .../builders/flashblocks/payload_handler.rs | 30 +++++++++++-------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 784db52f..c05a141d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -18,6 +18,7 @@ use alloy_consensus::{ use alloy_eips::{Encodable2718, eip7685::EMPTY_REQUESTS_HASH, merge::BEACON_NONCE}; use alloy_primitives::{Address, B256, U256, map::foldhash::HashMap}; use core::time::Duration; +use eyre::WrapErr as _; use reth::payload::PayloadBuilderAttributes; use reth_basic_payload_builder::BuildOutcome; use reth_chain_state::{ExecutedBlock, ExecutedBlockWithTrieUpdates, ExecutedTrieUpdates}; @@ -512,12 +513,12 @@ where Err(err) => { error!( target: "payload_builder", - "Failed to build flashblock {}, flashblock {}: {}", - ctx.block_number(), + "Failed to build flashblock {} for block number {}: {}", ctx.flashblock_index(), + ctx.block_number(), err ); - return Err(err); + return Err(PayloadBuilderError::Other(err.into())); } } @@ -553,7 +554,7 @@ where block_cancel: &CancellationToken, best_payload: &BlockCell, span: &tracing::Span, - ) -> Result<(), PayloadBuilderError> { + ) -> eyre::Result<()> { // fallback block is index 0, so we need to increment here ctx.increment_flashblock_index(); @@ -629,7 +630,8 @@ where best_txs, target_gas_for_batch.min(ctx.block_gas_limit()), total_da_per_batch, - )?; + ) + .wrap_err("failed to execute best transactions")?; // Extract last transactions let new_transactions = info.executed_transactions[info.extra.last_flashblock_index..] .to_vec() @@ -685,14 +687,10 @@ where .total_block_built_gauge .set(total_block_built_duration); - // Handle build errors with match pattern match build_result { Err(err) => { - // Track invalid/bad block ctx.metrics.invalid_blocks_count.increment(1); - error!(target: "payload_builder", "Failed to build block {}, flashblock {}: {}", ctx.block_number(), ctx.flashblock_index(), err); - // Return the error - return Err(err); + return Err(err).wrap_err("failed to build payload"); } Ok((new_payload, mut fb_payload)) => { fb_payload.index = ctx.flashblock_index(); @@ -713,11 +711,11 @@ where let flashblock_byte_size = self .ws_pub .publish(&fb_payload) - .map_err(PayloadBuilderError::other)?; + .wrap_err("failed to publish flashblock via websocket")?; self.payload_tx .send(new_payload.clone()) .await - .map_err(PayloadBuilderError::other)?; + .wrap_err("failed to send built payload to handler")?; best_payload.set(new_payload); // Record flashblock build duration diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs index 4fc913a1..38ba6e66 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs @@ -38,19 +38,23 @@ impl PayloadHandler { payload_events_handle, } = self; - tokio::select! { - Some(payload) = built_rx.recv() => { - let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); - // TODO: only broadcast if `!no_tx_pool`? - let _ = p2p_tx.send(payload.into()).await; - } - Some(message) = p2p_rx.recv() => { - match message { - Message::OpBuiltPayload(payload) => { - let payload: OpBuiltPayload = payload.into(); - let _ = payload_events_handle.send(Events::BuiltPayload(payload)); - // TODO: what other handling is needed here? - // clearing mempool of included txs? + tracing::info!("flashblocks payload handler started"); + + loop { + tokio::select! { + Some(payload) = built_rx.recv() => { + let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); + // TODO: only broadcast if `!no_tx_pool`? + let _ = p2p_tx.send(payload.into()).await; + } + Some(message) = p2p_rx.recv() => { + match message { + Message::OpBuiltPayload(payload) => { + let payload: OpBuiltPayload = payload.into(); + let _ = payload_events_handle.send(Events::BuiltPayload(payload)); + // TODO: what other handling is needed here? + // clearing mempool of included txs? + } } } } From 2ee1855702a7dde24dc15b89f84f6e4fe09da1a5 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Sun, 5 Oct 2025 20:14:34 -0400 Subject: [PATCH 13/32] change p2p hex string to file path; add documentation for p2p crate --- Cargo.lock | 1 + crates/op-rbuilder/src/args/op.rs | 23 +++-- .../builders/flashblocks/payload_handler.rs | 3 +- .../src/builders/flashblocks/service.rs | 85 ++++++++++--------- crates/op-rbuilder/src/builders/mod.rs | 21 ++++- crates/op-rbuilder/src/tests/flashblocks.rs | 30 ------- crates/p2p/Cargo.toml | 1 + crates/p2p/src/behaviour.rs | 39 +++------ crates/p2p/src/lib.rs | 57 ++++++++++--- crates/p2p/src/{peers.rs => outgoing.rs} | 8 +- 10 files changed, 146 insertions(+), 122 deletions(-) rename crates/p2p/src/{peers.rs => outgoing.rs} (96%) diff --git a/Cargo.lock b/Cargo.lock index d5bb90ff..c40ffbe3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7373,6 +7373,7 @@ dependencies = [ name = "p2p" version = "0.2.4" dependencies = [ + "derive_more", "eyre", "futures", "futures-util", diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 5fc6a739..9bf830e5 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -157,6 +157,15 @@ pub struct FlashblocksArgs { )] pub flashblocks_calculate_state_root: bool, + /// Enable libp2p networking for flashblock propagation + #[arg( + long = "flashblocks.p2p_enabled", + env = "FLASHBLOCK_P2P_ENABLED", + default_value = "false" + )] + pub flashblocks_p2p_enabled: bool, + + /// Port for the flashblocks p2p node #[arg( long = "flasblocks.p2p_port", env = "FLASHBLOCK_P2P_PORT", @@ -164,21 +173,19 @@ pub struct FlashblocksArgs { )] pub flashblocks_p2p_port: u16, - // TODO: this should be loaded from a file - // corresponds to peer ID `12D3KooW9sn2ZidTANAmQB1paiKBPGkF5DVusZXxaZCapbW94G44` + /// Path to the file containing a hex-encoded libp2p private key. + /// If the file does not exist, a new key will be generated. #[arg( - long = "flashblocks.p2p_private_key_hex", - env = "FLASHBLOCK_P2P_PRIVATE_KEY_HEX", - default_value = "c71a3d30a484e67dcbd01c4c4ce0704989becc51b2e768d74cc0515276f542bc00dfb848648148c134fd75ea041b62391a6389a7fb1e0bf664aedf92668f68e5" + long = "flashblocks.p2p_private_key_file", + env = "FLASHBLOCK_P2P_PRIVATE_KEY_FILE" )] - pub flashblocks_p2p_private_key_hex: String, + pub flashblocks_p2p_private_key_file: String, /// Comma-separated list of multiaddrs of known Flashblocks peers /// Example: "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ,/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ" #[arg( long = "flashblocks.p2p_known_peers", - env = "FLASHBLOCK_P2P_KNOWN_PEERS", - default_value = "/ip4/127.0.0.1/tcp/9009/p2p/12D3KooW9sn2ZidTANAmQB1paiKBPGkF5DVusZXxaZCapbW94G44" + env = "FLASHBLOCK_P2P_KNOWN_PEERS" )] pub flashblocks_known_peers: String, diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs index 38ba6e66..d053866d 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs @@ -45,6 +45,7 @@ impl PayloadHandler { Some(payload) = built_rx.recv() => { let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); // TODO: only broadcast if `!no_tx_pool`? + // ignore error here; if p2p was disabled, the channel will be closed. let _ = p2p_tx.send(payload.into()).await; } Some(message) = p2p_rx.recv() => { @@ -52,8 +53,6 @@ impl PayloadHandler { Message::OpBuiltPayload(payload) => { let payload: OpBuiltPayload = payload.into(); let _ = payload_events_handle.send(Events::BuiltPayload(payload)); - // TODO: what other handling is needed here? - // clearing mempool of included txs? } } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index b9c98e1b..1f23f5b3 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -36,48 +36,57 @@ impl FlashblocksServiceBuilder { Pool: PoolBounds, BuilderTx: BuilderTransactions + Unpin + Clone + Send + Sync + 'static, { - let mut builder = p2p::NodeBuilder::new(); + let (incoming_message_rx, outgoing_message_tx) = if self.0.p2p_enabled { + let mut builder = p2p::NodeBuilder::new(); - if let Some(ref private_key_hex) = self.0.p2p_private_key_hex - && !private_key_hex.is_empty() - { - builder = builder.with_keypair_hex_string(private_key_hex.clone()); - } + if let Some(ref private_key_file) = self.0.p2p_private_key_file + && !private_key_file.is_empty() + { + let private_key_hex = std::fs::read_to_string(private_key_file) + .wrap_err_with(|| { + format!("failed to read p2p private key file: {private_key_file}") + })? + .trim() + .to_string(); + builder = builder.with_keypair_hex_string(private_key_hex); + } - let known_peers: Vec = self - .0 - .p2p_known_peers - .split(',') - .map(|s| s.to_string()) - .filter_map(|s| s.parse().ok()) - .collect(); + let known_peers: Vec = self + .0 + .p2p_known_peers + .split(',') + .map(|s| s.to_string()) + .filter_map(|s| s.parse().ok()) + .collect(); - let p2p::NodeBuildResult { - node, - outgoing_message_tx, - mut incoming_message_rxs, - } = builder - .with_agent_version(AGENT_VERSION.to_string()) - .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) - .with_known_peers(known_peers) - .with_listen_addr( - format!("/ip4/127.0.0.1/tcp/{}", self.0.p2p_port) - .parse() - .unwrap(), - ) // TODO: make configurable - .try_build::() - .wrap_err("failed to build flashblocks p2p node")?; - let multiaddrs = node.multiaddrs(); - ctx.task_executor().spawn(async move { - if let Err(e) = node.run().await { - tracing::error!(error = %e, "p2p node exited"); - } - }); - tracing::info!(multiaddrs = ?multiaddrs, "flashblocks p2p node started"); + let p2p::NodeBuildResult { + node, + outgoing_message_tx, + mut incoming_message_rxs, + } = builder + .with_agent_version(AGENT_VERSION.to_string()) + .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) + .with_known_peers(known_peers) + .with_port(self.0.p2p_port) + .try_build::() + .wrap_err("failed to build flashblocks p2p node")?; + let multiaddrs = node.multiaddrs(); + ctx.task_executor().spawn(async move { + if let Err(e) = node.run().await { + tracing::error!(error = %e, "p2p node exited"); + } + }); + tracing::info!(multiaddrs = ?multiaddrs, "flashblocks p2p node started"); - let incoming_message_rx = incoming_message_rxs - .remove(&FLASHBLOCKS_STREAM_PROTOCOL) - .expect("flashblocks p2p protocol must be found in receiver map"); + let incoming_message_rx = incoming_message_rxs + .remove(&FLASHBLOCKS_STREAM_PROTOCOL) + .expect("flashblocks p2p protocol must be found in receiver map"); + (incoming_message_rx, outgoing_message_tx) + } else { + let (_incoming_message_tx, incoming_message_rx) = tokio::sync::mpsc::channel(16); + let (outgoing_message_tx, _outgoing_message_rx) = tokio::sync::mpsc::channel(16); + (incoming_message_rx, outgoing_message_tx) + }; let (built_payload_tx, built_payload_rx) = tokio::sync::mpsc::channel(16); let payload_builder = OpPayloadBuilder::new( diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 9d9bb228..9efcc6bc 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -123,11 +123,14 @@ pub struct BuilderConfig { /// Address gas limiter stuff pub gas_limiter_config: GasLimiterArgs, + /// Whether to enable the p2p node for flashblocks + pub p2p_enabled: bool, + /// Port for the p2p node pub p2p_port: u16, - /// Optional hex-encoded private key for the p2p node - pub p2p_private_key_hex: Option, + /// Optional hex-encoded private key file path for the p2p node + pub p2p_private_key_file: Option, /// Comma-separated list of multiaddresses of known peers to connect to pub p2p_known_peers: String, @@ -148,9 +151,17 @@ impl core::fmt::Debug for BuilderConfig { .field("block_time", &self.block_time) .field("block_time_leeway", &self.block_time_leeway) .field("da_config", &self.da_config) + .field("sampling_ratio", &self.sampling_ratio) .field("specific", &self.specific) .field("max_gas_per_txn", &self.max_gas_per_txn) .field("gas_limiter_config", &self.gas_limiter_config) + .field("p2p_enabled", &self.p2p_enabled) + .field("p2p_port", &self.p2p_port) + .field( + "p2p_private_key_file", + &self.p2p_private_key_file.as_ref().map(|_| "Some(...)"), + ) + .field("p2p_known_peers", &self.p2p_known_peers) .finish() } } @@ -168,8 +179,9 @@ impl Default for BuilderConfig { sampling_ratio: 100, max_gas_per_txn: None, gas_limiter_config: GasLimiterArgs::default(), + p2p_enabled: false, p2p_port: 9009, - p2p_private_key_hex: None, + p2p_private_key_file: None, p2p_known_peers: String::new(), } } @@ -192,8 +204,9 @@ where sampling_ratio: args.telemetry.sampling_ratio, max_gas_per_txn: args.max_gas_per_txn, gas_limiter_config: args.gas_limiter.clone(), + p2p_enabled: args.flashblocks.flashblocks_p2p_enabled, p2p_port: args.flashblocks.flashblocks_p2p_port, - p2p_private_key_hex: Some(args.flashblocks.flashblocks_p2p_private_key_hex.clone()), + p2p_private_key_file: Some(args.flashblocks.flashblocks_p2p_private_key_file.clone()), p2p_known_peers: args.flashblocks.flashblocks_known_peers.clone(), specific: S::try_from(args)?, }) diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index 5d51b1e7..055d9650 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -28,9 +28,6 @@ const FLASHBLOCKS_NUMBER_ADDRESS: Address = address!("5fbdb2315678afecb367f032d9 flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -71,9 +68,6 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -114,9 +108,6 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_fixed: true, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -157,9 +148,6 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_fixed: true, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -200,9 +188,6 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -250,9 +235,6 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -293,9 +275,6 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -358,9 +337,6 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -419,9 +395,6 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_fixed: false, flashblocks_calculate_state_root: true, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() @@ -469,9 +442,6 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_fixed: false, flashblocks_calculate_state_root: false, flashblocks_p2p_port: 9002, - flashblocks_p2p_private_key_hex: String::new(), - flashblocks_known_peers: String::new(), - flashblocks_number_contract_address: None, ..Default::default() }, ..Default::default() diff --git a/crates/p2p/Cargo.toml b/crates/p2p/Cargo.toml index 2bf76848..77e32df2 100644 --- a/crates/p2p/Cargo.toml +++ b/crates/p2p/Cargo.toml @@ -13,6 +13,7 @@ libp2p = { version = "0.56", features = ["identify", "ping", "noise", "tcp", "au libp2p-stream = "0.4.0-alpha" multiaddr = "0.18" +derive_more = { workspace = true } eyre = { workspace = true } futures = { workspace = true} futures-util = { workspace = true } diff --git a/crates/p2p/src/behaviour.rs b/crates/p2p/src/behaviour.rs index fa9cd61f..a61ea735 100644 --- a/crates/p2p/src/behaviour.rs +++ b/crates/p2p/src/behaviour.rs @@ -27,7 +27,7 @@ pub(crate) struct Behaviour { } #[allow(clippy::large_enum_variant)] -#[derive(Debug)] +#[derive(Debug, derive_more::From)] pub(crate) enum BehaviourEvent { Autonat(autonat::Event), Identify(identify::Event), @@ -47,30 +47,6 @@ impl From for BehaviourEvent { } } -impl From for BehaviourEvent { - fn from(event: autonat::Event) -> Self { - BehaviourEvent::Autonat(event) - } -} - -impl From for BehaviourEvent { - fn from(event: mdns::Event) -> Self { - BehaviourEvent::Mdns(event) - } -} - -impl From for BehaviourEvent { - fn from(event: ping::Event) -> Self { - BehaviourEvent::Ping(event) - } -} - -impl From for BehaviourEvent { - fn from(event: identify::Event) -> Self { - BehaviourEvent::Identify(event) - } -} - impl Behaviour { pub(crate) fn new(keypair: &identity::Keypair, agent_version: String) -> eyre::Result { let peer_id = keypair.public().to_peer_id(); @@ -109,7 +85,18 @@ impl BehaviourEvent { match self { BehaviourEvent::Autonat(_event) => {} BehaviourEvent::Identify(_event) => {} - BehaviourEvent::Mdns(_event) => {} + BehaviourEvent::Mdns(event) => match event { + mdns::Event::Discovered(list) => { + for (peer_id, multiaddr) in list { + tracing::debug!("mDNS discovered peer {peer_id} at {multiaddr}"); + } + } + mdns::Event::Expired(list) => { + for (peer_id, multiaddr) in list { + tracing::debug!("mDNS expired peer {peer_id} at {multiaddr}"); + } + } + }, BehaviourEvent::Ping(_event) => {} } } diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 1b36f834..4506c6bb 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -1,9 +1,8 @@ mod behaviour; -mod peers; +mod outgoing; use behaviour::Behaviour; use libp2p_stream::IncomingStreams; -use peers::OutgoingStreamsHandler; use eyre::Context; use libp2p::{ @@ -15,7 +14,7 @@ use libp2p::{ }; use std::{collections::HashMap, time::Duration}; use tokio::sync::mpsc; -use tracing::{debug, info, warn}; +use tracing::{debug, warn}; pub use libp2p::{Multiaddr, StreamProtocol}; @@ -26,16 +25,45 @@ pub trait Message: fn protocol(&self) -> StreamProtocol; } +/// The libp2p node. +/// +/// The current behaviour of the node regarding messaging protocols is as follows: +/// - for each supported protocol, the node will accept incoming streams from remote peers on that protocol. +/// - when a new connection is established with a peer, the node will open outbound streams to that peer for each supported protocol. +/// - when a new outgoing message is received on `outgoing_message_rx`, the node will broadcast that message to all connected peers that have an outbound stream open for the message's protocol. +/// - incoming messages received on incoming streams are handled by `IncomingStreamsHandler`, which reads messages from the stream and sends them to a channel for processing by the consumer of this library. +/// +/// Currently, there is no gossip implemented; messages are simply broadcast to connected peers. pub struct Node { + /// The peer ID of this node. peer_id: PeerId, + + /// The multiaddresses this node is listening on. listen_addrs: Vec, + + /// The libp2p swarm, which contains the state of the network + /// and its behaviours. swarm: Swarm, + + /// The multiaddresses of known peers to connect to on startup. known_peers: Vec, + + /// Receiver for outgoing messages to be sent to peers. outgoing_message_rx: mpsc::Receiver, - outgoing_streams_handler: OutgoingStreamsHandler, - cancellation_token: tokio_util::sync::CancellationToken, + + /// Handler for managing outgoing streams to peers. + /// Used to determine what peers to broadcast to when a + /// new outgoing message is received on `outgoing_message_rx`. + outgoing_streams_handler: outgoing::StreamsHandler, + + /// Handlers for incoming streams (streams which remote peers have opened with us). incoming_streams_handlers: Vec>, + + /// The protocols this node supports. protocols: Vec, + + /// Cancellation token to shut down the node. + cancellation_token: tokio_util::sync::CancellationToken, } impl Node { @@ -51,6 +79,10 @@ impl Node { .collect() } + /// Runs the p2p node, dials known peers, and starts listening for incoming connections and messages. + /// + /// This function will run until the cancellation token is triggered. + /// If an error occurs, it will be logged, but the node will continue running. pub async fn run(self) -> eyre::Result<()> { use libp2p::futures::StreamExt as _; @@ -120,6 +152,11 @@ impl Node { connection_id, .. } => { + // when a new connection is established, open outbound streams for each protocol + // and add them to the outgoing streams handler. + // + // If we already have a connection with this peer, close the new connection, + // as we only want one connection per peer. debug!("connection established with peer {peer_id}"); if outgoing_streams_handler.has_peer(&peer_id) { swarm.close_connection(connection_id); @@ -299,7 +336,7 @@ impl NodeBuilder { listen_addrs, known_peers, outgoing_message_rx, - outgoing_streams_handler: OutgoingStreamsHandler::new(), + outgoing_streams_handler: outgoing::StreamsHandler::new(), cancellation_token: cancellation_token.unwrap_or_default(), // TODO: caller must provide this incoming_streams_handlers, protocols, @@ -318,8 +355,8 @@ struct IncomingStreamsHandler { impl IncomingStreamsHandler { fn new(protocol: StreamProtocol, incoming: IncomingStreams) -> (Self, mpsc::Receiver) { - // TODO: make channel size configurable - let (tx, rx) = mpsc::channel(100); + const CHANNEL_SIZE: usize = 100; + let (tx, rx) = mpsc::channel(CHANNEL_SIZE); ( Self { protocol, @@ -342,7 +379,7 @@ impl IncomingStreamsHandler { tokio::select! { Some((from, stream)) = incoming.next() => { - info!("new incoming stream on protocol {protocol} from peer {from}"); + debug!("new incoming stream on protocol {protocol} from peer {from}"); handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); } Some(res) = handle_stream_futures.next() => { @@ -379,7 +416,7 @@ async fn handle_incoming_stream( Some(Ok(str)) => { let payload: M = serde_json::from_str(&str) .wrap_err("failed to decode stream message into FlashblocksPayloadV1")?; - info!("got message from peer {peer_id}: {payload:?}"); + debug!("got message from peer {peer_id}: {payload:?}"); let _ = payload_tx.send(payload).await; } Some(Err(e)) => { diff --git a/crates/p2p/src/peers.rs b/crates/p2p/src/outgoing.rs similarity index 96% rename from crates/p2p/src/peers.rs rename to crates/p2p/src/outgoing.rs index e02f7b7c..5b86b7b3 100644 --- a/crates/p2p/src/peers.rs +++ b/crates/p2p/src/outgoing.rs @@ -3,13 +3,13 @@ use eyre::Context; use futures::stream::FuturesUnordered; use libp2p::{PeerId, StreamProtocol, swarm::Stream}; use std::collections::HashMap; -use tracing::{info, warn}; +use tracing::{debug, warn}; -pub(crate) struct OutgoingStreamsHandler { +pub(crate) struct StreamsHandler { peers_to_stream: HashMap>, } -impl OutgoingStreamsHandler { +impl StreamsHandler { pub(crate) fn new() -> Self { Self { peers_to_stream: HashMap::new(), @@ -83,7 +83,7 @@ impl OutgoingStreamsHandler { } } } - info!( + debug!( "broadcasted message to {} peers", self.peers_to_stream.len() ); From b20f773a6f6ca641f4534455d4b940e4eaf0ef2c Mon Sep 17 00:00:00 2001 From: elizabeth Date: Sun, 5 Oct 2025 20:49:36 -0400 Subject: [PATCH 14/32] fix optional flags --- crates/op-rbuilder/src/args/op.rs | 4 +-- .../src/builders/flashblocks/service.rs | 17 ++++++----- crates/op-rbuilder/src/builders/mod.rs | 6 ++-- crates/p2p/src/lib.rs | 29 +++++++++++++++---- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 9bf830e5..1a6b6976 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -179,7 +179,7 @@ pub struct FlashblocksArgs { long = "flashblocks.p2p_private_key_file", env = "FLASHBLOCK_P2P_PRIVATE_KEY_FILE" )] - pub flashblocks_p2p_private_key_file: String, + pub flashblocks_p2p_private_key_file: Option, /// Comma-separated list of multiaddrs of known Flashblocks peers /// Example: "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ,/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ" @@ -187,7 +187,7 @@ pub struct FlashblocksArgs { long = "flashblocks.p2p_known_peers", env = "FLASHBLOCK_P2P_KNOWN_PEERS" )] - pub flashblocks_known_peers: String, + pub flashblocks_known_peers: Option, /// Flashblocks number contract address /// diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 1f23f5b3..4c7f5e98 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -51,13 +51,16 @@ impl FlashblocksServiceBuilder { builder = builder.with_keypair_hex_string(private_key_hex); } - let known_peers: Vec = self - .0 - .p2p_known_peers - .split(',') - .map(|s| s.to_string()) - .filter_map(|s| s.parse().ok()) - .collect(); + let known_peers: Vec = + if let Some(ref p2p_known_peers) = self.0.p2p_known_peers { + p2p_known_peers + .split(',') + .map(|s| s.to_string()) + .filter_map(|s| s.parse().ok()) + .collect() + } else { + vec![] + }; let p2p::NodeBuildResult { node, diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 9efcc6bc..04101aad 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -133,7 +133,7 @@ pub struct BuilderConfig { pub p2p_private_key_file: Option, /// Comma-separated list of multiaddresses of known peers to connect to - pub p2p_known_peers: String, + pub p2p_known_peers: Option, } impl core::fmt::Debug for BuilderConfig { @@ -182,7 +182,7 @@ impl Default for BuilderConfig { p2p_enabled: false, p2p_port: 9009, p2p_private_key_file: None, - p2p_known_peers: String::new(), + p2p_known_peers: None, } } } @@ -206,7 +206,7 @@ where gas_limiter_config: args.gas_limiter.clone(), p2p_enabled: args.flashblocks.flashblocks_p2p_enabled, p2p_port: args.flashblocks.flashblocks_p2p_port, - p2p_private_key_file: Some(args.flashblocks.flashblocks_p2p_private_key_file.clone()), + p2p_private_key_file: args.flashblocks.flashblocks_p2p_private_key_file.clone(), p2p_known_peers: args.flashblocks.flashblocks_known_peers.clone(), specific: S::try_from(args)?, }) diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 4506c6bb..2fd4eb0e 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -14,6 +14,7 @@ use libp2p::{ }; use std::{collections::HashMap, time::Duration}; use tokio::sync::mpsc; +use tokio_util::sync::CancellationToken; use tracing::{debug, warn}; pub use libp2p::{Multiaddr, StreamProtocol}; @@ -63,7 +64,7 @@ pub struct Node { protocols: Vec, /// Cancellation token to shut down the node. - cancellation_token: tokio_util::sync::CancellationToken, + cancellation_token: CancellationToken, } impl Node { @@ -209,7 +210,7 @@ pub struct NodeBuilder { known_peers: Vec, agent_version: Option, protocols: Vec, - cancellation_token: Option, + cancellation_token: Option, } impl Default for NodeBuilder { @@ -278,6 +279,9 @@ impl NodeBuilder { cancellation_token, } = self; + // TODO: caller should be forced to provide this + let cancellation_token = cancellation_token.unwrap_or_default(); + let Some(agent_version) = agent_version else { eyre::bail!("agent version must be set"); }; @@ -305,8 +309,11 @@ impl NodeBuilder { let incoming_streams = control .accept(protocol.clone()) .wrap_err("failed to subscribe to incoming streams for flashblocks protocol")?; - let (incoming_streams_handler, message_rx) = - IncomingStreamsHandler::new(protocol.clone(), incoming_streams); + let (incoming_streams_handler, message_rx) = IncomingStreamsHandler::new( + protocol.clone(), + incoming_streams, + cancellation_token.clone(), + ); incoming_streams_handlers.push(incoming_streams_handler); incoming_message_rxs.insert(protocol.clone(), message_rx); } @@ -337,7 +344,7 @@ impl NodeBuilder { known_peers, outgoing_message_rx, outgoing_streams_handler: outgoing::StreamsHandler::new(), - cancellation_token: cancellation_token.unwrap_or_default(), // TODO: caller must provide this + cancellation_token, incoming_streams_handlers, protocols, }, @@ -351,10 +358,15 @@ struct IncomingStreamsHandler { protocol: StreamProtocol, incoming: IncomingStreams, tx: mpsc::Sender, + cancellation_token: CancellationToken, } impl IncomingStreamsHandler { - fn new(protocol: StreamProtocol, incoming: IncomingStreams) -> (Self, mpsc::Receiver) { + fn new( + protocol: StreamProtocol, + incoming: IncomingStreams, + cancellation_token: CancellationToken, + ) -> (Self, mpsc::Receiver) { const CHANNEL_SIZE: usize = 100; let (tx, rx) = mpsc::channel(CHANNEL_SIZE); ( @@ -362,6 +374,7 @@ impl IncomingStreamsHandler { protocol, incoming, tx, + cancellation_token, }, rx, ) @@ -374,10 +387,14 @@ impl IncomingStreamsHandler { protocol, mut incoming, tx, + cancellation_token, } = self; let mut handle_stream_futures = futures::stream::FuturesUnordered::new(); tokio::select! { + _ = cancellation_token.cancelled() => { + debug!("cancellation token triggered, shutting down incoming streams handler for protocol {protocol}"); + } Some((from, stream)) = incoming.next() => { debug!("new incoming stream on protocol {protocol} from peer {from}"); handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); From 35715c7de615b9b14c744ac7c08a0477888ca373 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:17:04 -0400 Subject: [PATCH 15/32] update Message trait to have custom to/from string --- crates/p2p/src/lib.rs | 13 ++++++++++++- crates/p2p/src/outgoing.rs | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 2fd4eb0e..61bcc948 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -24,6 +24,17 @@ pub trait Message: serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone + std::fmt::Debug { fn protocol(&self) -> StreamProtocol; + + fn to_string(&self) -> eyre::Result { + serde_json::to_string(self).wrap_err("failed to serialize message to string") + } + + fn from_str(s: &str) -> eyre::Result + where + Self: Sized, + { + serde_json::from_str(s).wrap_err("failed to deserialize message from string") + } } /// The libp2p node. @@ -431,7 +442,7 @@ async fn handle_incoming_stream( loop { match reader.next().await { Some(Ok(str)) => { - let payload: M = serde_json::from_str(&str) + let payload = M::from_str(&str) .wrap_err("failed to decode stream message into FlashblocksPayloadV1")?; debug!("got message from peer {peer_id}: {payload:?}"); let _ = payload_tx.send(payload).await; diff --git a/crates/p2p/src/outgoing.rs b/crates/p2p/src/outgoing.rs index 5b86b7b3..c948bde6 100644 --- a/crates/p2p/src/outgoing.rs +++ b/crates/p2p/src/outgoing.rs @@ -44,7 +44,9 @@ impl StreamsHandler { }; let protocol = message.protocol(); - let payload = serde_json::to_string(&message).wrap_err("failed to serialize payload")?; + let payload = message + .to_string() + .wrap_err("failed to serialize payload")?; let peers = self.peers_to_stream.keys().cloned().collect::>(); let mut futures = FuturesUnordered::new(); From 1b1f3453c50128fe03f2291e5c86876b6283cd89 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:19:14 -0400 Subject: [PATCH 16/32] cargo update --- Cargo.lock | 2088 +++++++++++++++++++++++++++------------------------- 1 file changed, 1091 insertions(+), 997 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c40ffbe3..59341539 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -59,7 +50,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -97,9 +88,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.25" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "992a9d0732a0e0e1a34d61a6553ad28f761c9049bb46572d3916f172348d2cb7" +checksum = "b17c19591d57add4f0c47922877a48aae1f47074e3433436545f8948353b3bbb" dependencies = [ "alloy-consensus", "alloy-contract", @@ -120,11 +111,11 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.7" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a379c0d821498c996ceb9e7519fc2dab8286c35a203c1fb95f80ecd66e07cf2f" +checksum = "bf01dd83a1ca5e4807d0ca0223c9615e211ce5db0a9fd1443c2778cacf89b546" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "num_enum", "serde", @@ -133,12 +124,12 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf3c28aa7a5765042739f964e335408e434819b96fdda97f12eb1beb46dead0" +checksum = "6a0dd3ed764953a6b20458b2b7abbfdc93d20d14b38babe1a70fe631a443a9f1" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "alloy-trie", @@ -155,18 +146,18 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-consensus-any" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfda7b14f1664b6c23d7f38bca2b73c460f2497cf93dd1589753890cb0da158" +checksum = "9556182afa73cddffa91e64a5aa9508d5e8c912b3a15f26998d2388a824d2c7b" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "arbitrary", @@ -175,49 +166,49 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb079f711129dd32d6c3a0581013c927eb30d32e929d606cd8c0fe1022ec041" +checksum = "b19d7092c96defc3d132ee0d8969ca1b79ef512b5eda5c66e3065266b253adf2" dependencies = [ "alloy-consensus", "alloy-dyn-abi", - "alloy-json-abi 1.3.1", + "alloy-json-abi 1.4.1", "alloy-network", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "futures", "futures-util", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-core" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" +checksum = "5ca96214615ec8cf3fa2a54b32f486eb49100ca7fe7eb0b8c1137cd316e7250a" dependencies = [ "alloy-dyn-abi", - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-primitives 1.4.1", "alloy-rlp", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", ] [[package]] name = "alloy-dyn-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" +checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-type-parser 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-primitives 1.4.1", + "alloy-sol-type-parser 1.4.1", + "alloy-sol-types 1.4.1", "derive_more", "itoa", "serde", @@ -231,13 +222,13 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "crc", "rand 0.8.5", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -246,7 +237,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "rand 0.8.5", @@ -259,26 +250,26 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "k256", "rand 0.8.5", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-eips" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e57928382e5c7890ef90ded9f814d85a1c3db79ceb4a3c5079f1be4cadeeb4" +checksum = "305fa99b538ca7006b0c03cfed24ec6d82beda67aac857ef4714be24231d15e6" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "arbitrary", @@ -291,37 +282,40 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-evm" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" +checksum = "06a5f67ee74999aa4fe576a83be1996bdf74a30fce3d248bf2007d6fc7dae8aa" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-op-hardforks", + "alloy-primitives 1.4.1", + "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "auto_impl", "derive_more", "op-alloy-consensus", + "op-alloy-rpc-types-engine", "op-revm", "revm", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-genesis" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3419410cdd67fb7d5d016d9d16cf3ea8cc365fcbcf15d086afdd02eaef17e4" +checksum = "a272533715aefc900f89d51db00c96e6fd4f517ea081a12fea482a352c8c815c" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-serde", "alloy-trie", "serde", @@ -336,7 +330,7 @@ checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "dyn-clone", "serde", @@ -344,93 +338,93 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" +checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" dependencies = [ - "alloy-primitives 0.8.25", - "alloy-sol-type-parser 0.8.25", + "alloy-primitives 0.8.26", + "alloy-sol-type-parser 0.8.26", "serde", "serde_json", ] [[package]] name = "alloy-json-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-type-parser 1.3.1", + "alloy-primitives 1.4.1", + "alloy-sol-type-parser 1.4.1", "serde", "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17248e392e79658b1faca7946bfe59825b891c3f6e382044499d99c57ba36a89" +checksum = "d91676d242c0ced99c0dd6d0096d7337babe9457cc43407d26aa6367fcf90553" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-primitives 1.4.1", + "alloy-sol-types 1.4.1", "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe43d21867dc0dcf71aacffc891ae75fd587154f0d907ceb7340fc5f0271276d" +checksum = "77f82150116b30ba92f588b87f08fa97a46a1bd5ffc0d0597efdf0843d36bfda" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "async-trait", "auto_impl", "derive_more", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-network-primitives" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67f3b37447082a47289f26e26c0686ac6407710fdd4e818043d9b6d37f2ab55c" +checksum = "223612259a080160ce839a4e5df0125ca403a1d5e7206cc911cea54af5d769aa" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-serde", "serde", ] [[package]] name = "alloy-op-evm" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f09c7785a3f2df462e4bb898e8b682b43de488d9d44bf2e5264e0bba44af21" +checksum = "17aaeb600740c181bf29c9f138f9b228d115ea74fa6d0f0343e1952f1a766968" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-op-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "op-alloy-consensus", "op-revm", @@ -445,24 +439,24 @@ checksum = "599c1d7dfbccb66603cb93fde00980d12848d32fe5e814f50562104a92df6487" dependencies = [ "alloy-chains", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", ] [[package]] name = "alloy-primitives" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" +checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more", - "foldhash", + "foldhash 0.1.5", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.4", "itoa", "k256", "keccak-asm", @@ -478,9 +472,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", "arbitrary", @@ -488,16 +482,16 @@ dependencies = [ "cfg-if", "const-hex", "derive_more", - "foldhash", - "getrandom 0.3.3", - "hashbrown 0.15.5", - "indexmap 2.10.0", + "foldhash 0.2.0", + "getrandom 0.3.4", + "hashbrown 0.16.0", + "indexmap 2.11.4", "itoa", "k256", "keccak-asm", "paste", "proptest", - "proptest-derive", + "proptest-derive 0.6.0", "rand 0.9.2", "ruint", "rustc-hash 2.1.1", @@ -508,9 +502,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6377212f3e659173b939e8d3ec3292e246cb532eafd5a4f91e57fdb104b43c" +checksum = "f7283b81b6f136100b152e699171bc7ed8184a58802accbc91a7df4ebb944445" dependencies = [ "alloy-chains", "alloy-consensus", @@ -518,14 +512,14 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-rpc-types-txpool", "alloy-signer", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -543,7 +537,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", "url", @@ -552,12 +546,12 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27b4f1ac3a0388065f933f957f80e03d06c47ce6a4389ac8cb9f72c30d8d823" +checksum = "eee7e3d343814ec0dfea69bd1820042a133a9d0b9ac5faf1e6eb133b43366315" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-transport", "auto_impl", "bimap", @@ -596,12 +590,12 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b80c8cafc1735ce6776bccc25f0c3b7583074897b8ec4f3a129e4d25e09d65c" +checksum = "1154b12d470bef59951c62676e106f4ce5de73b987d86b9faa935acebb138ded" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-pubsub", "alloy-transport", "alloy-transport-http", @@ -622,11 +616,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bc0818982bb868acc877f2623ad1fc8f2a4b244074919212bfe476fcadca6d3" +checksum = "47ab76bf97648a1c6ad8fb00f0d594618942b5a9e008afbfb5c8a8fca800d574" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -635,23 +629,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9359aabfc2ae906ea9f904c6cf6a63d12fc6510e655a64c38aa601a739602e84" +checksum = "af8ae38824376e855d73d4060462d86c32afe548af632597ccfd161bdd0fc628" dependencies = [ "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410403528db87ab4618e7f517b0f54e493c8a17bb61102cbccbb7a35e8719b5b" +checksum = "456cfc2c1677260edbd7ce3eddb7de419cb46de0e9826c43401f42b0286a779a" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -659,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8448a1eb2c81115fc8d9d50da24156c9ce8fca78a19a997184dcd81f99c229" +checksum = "23cc57ee0c1ac9fb14854195fc249494da7416591dc4a4d981ddfd5dd93b9bce" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -670,30 +664,31 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c20f653a4c1ab8289470e8eed55fe4f11354865b730685bb70b69a375524b27" +checksum = "cfa4edd92c3124ec19b9d572dc7923d070fe5c2efb677519214affd6156a4463" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", + "derive_more", "ethereum_ssz", "ethereum_ssz_derive", "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tree_hash", "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb22d465e02c015648138bc0d46951d267827551fc85922b60f58caa6a0e9c9" +checksum = "4a0ac29dd005c33e3f7e09087accc80843315303685c3f7a1b888002cd27785b" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "serde", "serde_with", @@ -701,13 +696,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b968beee2ada53ef150fd90fbd2b7a3e5bcb66650e4d01757ff769c8af3d5ee" +checksum = "1d9d173854879bcf26c7d71c1c3911972a3314df526f4349ffe488e676af577d" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "derive_more", @@ -721,35 +716,35 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7c1bc07b6c9222c4ad822da3cea0fbbfcbe2876cf5d4780e147a0da6fe2862" +checksum = "6d7d47bca1a2a1541e4404aa38b7e262bb4dffd9ac23b4f178729a4ddc5a5caa" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "arbitrary", "itertools 0.14.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad56da776d84940f075f6cdb27c95c17f5d8947ed89947d61b686247ec4e2200" +checksum = "d3820683ece7cdc31e44d87c88c0ff9b972a1a2fd1f2124cc72ce5c928e64f0d" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -758,25 +753,25 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e54b3f616d9f30e11bc73e685f71da6f1682da5a3c2ca5206ec47f1d3bc96c7" +checksum = "c331c8e48665607682e8a9549a2347c13674d4fbcbdc342e7032834eba2424f4" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15fc6b7b9465393a5b3fd38aba979f44438f172d9d0e6de732243c17d4246060" +checksum = "5e2f66afe1e76ca4485e593980056f061b2bdae2055486a062fca050ff111a52" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -784,11 +779,11 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8603b89af4ba0acb94465319e506b8c0b40a5daf563046bedd58d26c98dbd62c" +checksum = "6a8468f1a7f9ee3bae73c24eead0239abea720dbf7779384b9c7e20d51bfb6b0" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "serde", "serde_json", @@ -796,43 +791,43 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddbea0531837cc7784ae6669b4a66918e6fb34c2daa2a7a888549dd565151c" +checksum = "33387c90b0a5021f45a5a77c2ce6c49b8f6980e66a318181468fb24cea771670" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "async-trait", "auto_impl", "either", "elliptic-curve", "k256", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-signer-local" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3497f79c8a818f736d8de1c157a1ec66c0ce1da3fbb2f54c005097798282e59b" +checksum = "b55d9e795c85e36dcea08786d2e7ae9b73cb554b6bea6ac4c212def24e1b4d03" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-signer", "async-trait", "k256", "rand 0.8.5", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-sol-macro" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" +checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" dependencies = [ - "alloy-sol-macro-expander 0.8.25", - "alloy-sol-macro-input 0.8.25", + "alloy-sol-macro-expander 0.8.26", + "alloy-sol-macro-input 0.8.26", "proc-macro-error2", "proc-macro2", "quote", @@ -841,12 +836,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" dependencies = [ - "alloy-sol-macro-expander 1.3.1", - "alloy-sol-macro-input 1.3.1", + "alloy-sol-macro-expander 1.4.1", + "alloy-sol-macro-input 1.4.1", "proc-macro-error2", "proc-macro2", "quote", @@ -855,46 +850,46 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" +checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" dependencies = [ - "alloy-sol-macro-input 0.8.25", + "alloy-sol-macro-input 0.8.26", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.4", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 0.8.25", + "syn-solidity 0.8.26", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-sol-macro-input 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-sol-macro-input 1.4.1", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.4", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 1.3.1", + "syn-solidity 1.4.1", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" +checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" dependencies = [ "const-hex", "dunce", @@ -903,16 +898,16 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 0.8.25", + "syn-solidity 0.8.26", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ - "alloy-json-abi 1.3.1", + "alloy-json-abi 1.4.1", "const-hex", "dunce", "heck", @@ -921,14 +916,14 @@ dependencies = [ "quote", "serde_json", "syn 2.0.106", - "syn-solidity 1.3.1", + "syn-solidity 1.4.1", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" +checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" dependencies = [ "serde", "winnow", @@ -936,9 +931,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" dependencies = [ "serde", "winnow", @@ -946,37 +941,37 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" +checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" dependencies = [ - "alloy-json-abi 0.8.25", - "alloy-primitives 0.8.25", - "alloy-sol-macro 0.8.25", + "alloy-json-abi 0.8.26", + "alloy-primitives 0.8.26", + "alloy-sol-macro 0.8.26", "const-hex", "serde", ] [[package]] name = "alloy-sol-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-macro 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-primitives 1.4.1", + "alloy-sol-macro 1.4.1", "serde", ] [[package]] name = "alloy-transport" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d259738315db0a2460581e22a1ca73ff02ef44687b43c0dad0834999090b3e7e" +checksum = "702002659778d89a94cd4ff2044f6b505460df6c162e2f47d1857573845b0ace" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "base64 0.22.1", "derive_more", @@ -985,7 +980,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "tracing", @@ -995,9 +990,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6332f6d470e465bf00f9306743ff172f54b83e7e31edfe28f1444c085ccb0e4" +checksum = "0d6bdc0830e5e8f08a4c70a4c791d400a86679c694a3b4b986caf26fad680438" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1010,9 +1005,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865c13b9ce32b1a5227ac0f796faa9c08416aa4ea4e22b3a61a21ef110bda5ad" +checksum = "87ce41d99a32346f354725fe62eadd271cdbae45fe6b3cc40cb054e0bf763112" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1030,9 +1025,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da655a5099cc037cad636425cec389320a694b6ec0302472a74f71b3637d842d" +checksum = "686219dcef201655763bd3d4eabe42388d9368bfbf6f1c8016d14e739ec53aac" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1052,7 +1047,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "arrayvec", @@ -1060,7 +1055,7 @@ dependencies = [ "derive_more", "nybbles", "proptest", - "proptest-derive", + "proptest-derive 0.5.1", "serde", "smallvec", "tracing", @@ -1068,23 +1063,17 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2765badc6f621e1fc26aa70c520315866f0db6b8bd6bf3c560920d4fb33b08de" +checksum = "7bf39928a5e70c9755d6811a2928131b53ba785ad37c8bf85c90175b5d43b818" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -1096,9 +1085,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -1111,9 +1100,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -1146,9 +1135,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "aquamarine" @@ -1506,7 +1495,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] @@ -1564,18 +1553,15 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.27" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" +checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" dependencies = [ - "brotli", - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", - "zstd", - "zstd-safe", ] [[package]] @@ -1591,9 +1577,9 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.0.8", + "rustix 1.1.2", "slab", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -1761,11 +1747,11 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" dependencies = [ - "axum-core 0.5.2", + "axum-core 0.5.5", "bytes", "form_urlencoded", "futures-util", @@ -1780,8 +1766,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "serde_json", "serde_path_to_error", "serde_urlencoded", @@ -1815,9 +1800,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" dependencies = [ "bytes", "futures-core", @@ -1826,7 +1811,6 @@ dependencies = [ "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -1849,21 +1833,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base-x" version = "0.2.11" @@ -1876,6 +1845,16 @@ 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" @@ -1924,7 +1903,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1947,7 +1926,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1959,6 +1938,24 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.9.4", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.106", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1998,18 +1995,18 @@ checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" [[package]] name = "bitfield" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db1bcd90f88eabbf0cadbfb87a45bceeaebcd3b4bc9e43da379cd2ef0162590d" +checksum = "6bf79f42d21f18b5926a959280215903e659760da994835d27c3a0c5ff4f898f" dependencies = [ "bitfield-macros", ] [[package]] name = "bitfield-macros" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3787a07661997bfc05dd3431e379c0188573f78857080cf682e1393ab8e4d64c" +checksum = "6115af052c7914c0cbb97195e5c72cb61c511527250074f5c041d1048b0d8b16" dependencies = [ "proc-macro2", "quote", @@ -2024,9 +2021,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -2082,9 +2079,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -2098,11 +2095,11 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.10.0", + "indexmap 2.11.4", "num-bigint", "rustc-hash 2.1.1", ] @@ -2114,7 +2111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" dependencies = [ "arrayvec", - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_ast", "boa_gc", "boa_interner", @@ -2128,7 +2125,7 @@ dependencies = [ "fast-float2", "hashbrown 0.15.5", "icu_normalizer 1.5.0", - "indexmap 2.10.0", + "indexmap 2.11.4", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -2148,7 +2145,7 @@ dependencies = [ "static_assertions", "tap", "thin-vec", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] @@ -2174,7 +2171,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.4", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2199,7 +2196,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cc142dac798cdc6e2dbccfddeb50f36d2523bb977a976e19bdb3ae19b740804" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_ast", "boa_interner", "boa_macros", @@ -2262,7 +2259,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tower-service", @@ -2340,18 +2337,18 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", @@ -2375,9 +2372,9 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137a2a2878ed823ef1bd73e5441e245602aae5360022113b8ad259ca4b5b8727" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ "arbitrary", "blst", @@ -2391,11 +2388,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.11" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -2415,7 +2412,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", ] @@ -2428,10 +2425,10 @@ checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2457,7 +2454,7 @@ checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" dependencies = [ "clap", "heck", - "indexmap 2.10.0", + "indexmap 2.11.4", "log", "proc-macro2", "quote", @@ -2541,17 +2538,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] @@ -2578,9 +2574,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" dependencies = [ "clap_builder", "clap_derive", @@ -2588,9 +2584,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" dependencies = [ "anstream", "anstyle", @@ -2600,9 +2596,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", @@ -2612,9 +2608,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "cmake" @@ -2631,7 +2627,7 @@ version = "0.3.0" source = "git+https://github.com/automata-network/coco-provider-sdk#3a832b8cf5e88ef71649ab56e4efd67067b26b7c" dependencies = [ "bincode", - "bitfield 0.19.1", + "bitfield 0.19.3", "cbindgen", "iocuddle", "libc", @@ -2662,11 +2658,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.4" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" dependencies = [ - "crossterm", + "crossterm 0.29.0", "unicode-segmentation", "unicode-width 0.2.0", ] @@ -2685,6 +2681,26 @@ dependencies = [ "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" @@ -2705,15 +2721,14 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", - "hex", "proptest", - "serde", + "serde_core", ] [[package]] @@ -2722,11 +2737,17 @@ 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.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -2865,7 +2886,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "crossterm_winapi", "mio", "parking_lot", @@ -2875,6 +2896,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.4", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.1.2", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -3086,7 +3121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] @@ -3094,7 +3129,7 @@ name = "dcap-rs" version = "0.1.0" source = "git+https://github.com/automata-network/dcap-rs.git?rev=d847b8f75a493640c4881bdf67775250b6baefab#d847b8f75a493640c4881bdf67775250b6baefab" dependencies = [ - "alloy-sol-types 0.8.25", + "alloy-sol-types 0.8.26", "chrono", "hex", "p256", @@ -3164,12 +3199,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -3313,7 +3348,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3388,6 +3423,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -3604,12 +3648,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3660,7 +3704,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "hex", "serde", "serde_derive", @@ -3669,11 +3713,11 @@ dependencies = [ [[package]] name = "ethereum_ssz" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca8ba45b63c389c6e115b095ca16381534fdcc03cf58176a3f8554db2dbe19b" +checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "ethereum_serde_utils", "itertools 0.13.0", "serde", @@ -3684,9 +3728,9 @@ dependencies = [ [[package]] name = "ethereum_ssz_derive" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" +checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" dependencies = [ "darling 0.20.11", "proc-macro2", @@ -3787,14 +3831,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3811,9 +3855,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" dependencies = [ "crc32fast", "miniz_oxide", @@ -3831,6 +3875,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3848,9 +3898,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -4013,25 +4063,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "generator" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" -dependencies = [ - "cc", - "cfg-if", - "libc", - "log", - "rustversion", - "windows 0.61.3", -] - [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "serde", "typenum", @@ -4048,21 +4084,21 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] @@ -4076,19 +4112,13 @@ dependencies = [ "polyval", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "git2" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "libc", "libgit2-sys", "log", @@ -4149,12 +4179,12 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.5" +version = "1.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" +checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4180,7 +4210,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.10.0", + "indexmap 2.11.4", "slab", "tokio", "tokio-util", @@ -4222,7 +4252,17 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "foldhash 0.2.0", "serde", ] @@ -4262,9 +4302,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" @@ -4295,7 +4332,7 @@ dependencies = [ "ring", "serde", "socket2 0.5.10", - "thiserror 2.0.16", + "thiserror 2.0.17", "tinyvec", "tokio", "tracing", @@ -4319,7 +4356,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -4417,9 +4454,9 @@ checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "humantime-serde" @@ -4485,7 +4522,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.2", + "webpki-roots 1.0.3", ] [[package]] @@ -4519,9 +4556,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64 0.22.1", "bytes", @@ -4535,7 +4572,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.1", "system-configuration", "tokio", "tower-service", @@ -4560,9 +4597,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4570,7 +4607,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.62.2", ] [[package]] @@ -4794,9 +4831,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4935,14 +4972,15 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", "serde", + "serde_core", ] [[package]] @@ -4957,7 +4995,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -5018,17 +5056,6 @@ dependencies = [ "memoffset", ] -[[package]] -name = "io-uring" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" -dependencies = [ - "bitflags 2.9.2", - "cfg-if", - "libc", -] - [[package]] name = "iocuddle" version = "0.1.1" @@ -5135,19 +5162,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ "once_cell", "wasm-bindgen", @@ -5202,7 +5229,7 @@ dependencies = [ "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-rustls", "tokio-util", @@ -5228,7 +5255,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "tracing", @@ -5254,7 +5281,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tower 0.5.2", @@ -5278,7 +5305,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "url", @@ -5301,7 +5328,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "url", @@ -5350,7 +5377,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -5377,7 +5404,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -5393,7 +5420,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -5405,7 +5432,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -5517,9 +5544,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libgit2-sys" @@ -5535,12 +5562,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-link 0.2.1", ] [[package]] @@ -5580,7 +5607,7 @@ dependencies = [ "multiaddr", "pin-project", "rw-stream-sink", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -5614,7 +5641,7 @@ dependencies = [ "quick-protobuf-codec", "rand 0.8.5", "rand_core 0.6.4", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "web-time", ] @@ -5649,7 +5676,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "rw-stream-sink", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "unsigned-varint 0.8.0", "web-time", @@ -5688,7 +5715,7 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -5707,7 +5734,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "zeroize", ] @@ -5765,7 +5792,7 @@ dependencies = [ "rand 0.8.5", "snow", "static_assertions", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "x25519-dalek", "zeroize", @@ -5804,7 +5831,7 @@ dependencies = [ "ring", "rustls", "socket2 0.5.10", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -5905,7 +5932,7 @@ dependencies = [ "ring", "rustls", "rustls-webpki", - "thiserror 2.0.16", + "thiserror 2.0.17", "x509-parser 0.17.0", "yasna", ] @@ -5934,32 +5961,32 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "yamux 0.12.1", - "yamux 0.13.6", + "yamux 0.13.7", ] [[package]] name = "libproc" -version = "0.14.10" +version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" +checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" dependencies = [ - "bindgen 0.70.1", + "bindgen 0.72.1", "errno", "libc", ] [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", ] [[package]] @@ -6044,9 +6071,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -6060,35 +6087,27 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", "serde", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[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", -] +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "lru" @@ -6141,9 +6160,9 @@ checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" [[package]] name = "mach2" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" dependencies = [ "libc", ] @@ -6169,6 +6188,17 @@ dependencies = [ "syn 2.0.106", ] +[[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" @@ -6202,15 +6232,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memmap2" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -6257,7 +6287,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.4", "ipnet", "metrics", "metrics-util 0.19.1", @@ -6278,30 +6308,30 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.4", "ipnet", "metrics", "metrics-util 0.20.0", "quanta", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] [[package]] name = "metrics-process" -version = "2.4.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a82c8add4382f29a122fa64fff1891453ed0f6b2867d971e7d60cb8dfa322ff" +checksum = "f615e08e049bd14a44c4425415782efb9bcd479fc1e19ddeb971509074c060d0" dependencies = [ "libc", "libproc", "mach2", "metrics", "once_cell", - "procfs", + "procfs 0.18.0", "rlimit", - "windows 0.58.0", + "windows 0.62.2", ] [[package]] @@ -6314,7 +6344,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.4", "metrics", "ordered-float", "quanta", @@ -6384,6 +6414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -6394,7 +6425,7 @@ checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.59.0", ] @@ -6421,23 +6452,22 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.10" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" dependencies = [ "async-lock", "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", + "equivalent", "event-listener", "futures-util", - "loom", "parking_lot", "portable-atomic", "rustc_version 0.4.1", "smallvec", "tagptr", - "thiserror 1.0.69", "uuid", ] @@ -6468,11 +6498,12 @@ dependencies = [ [[package]] name = "multibase" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" dependencies = [ "base-x", + "base256emoji", "data-encoding", "data-encoding-macro", ] @@ -6575,7 +6606,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6633,7 +6664,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "fsevent-sys", "inotify", "kqueue", @@ -6662,11 +6693,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -6804,9 +6835,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", "arbitrary", @@ -6819,32 +6850,23 @@ dependencies = [ [[package]] name = "objc2-core-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] name = "objc2-io-kit" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ "libc", "objc2-core-foundation", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "oid" version = "0.2.1" @@ -6897,7 +6919,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -6905,7 +6927,7 @@ dependencies = [ "derive_more", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6922,7 +6944,7 @@ checksum = "f80108e3b36901200a4c5df1db1ee9ef6ce685b59ea79d7be1713c845e3765da" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", @@ -6936,7 +6958,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8eb878fc5ea95adb5abe55fb97475b3eb0dcc77dfcd6f61bd626a68ae0bdba1" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "jsonrpsee 0.26.0", ] @@ -6949,14 +6971,14 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "derive_more", "op-alloy-consensus", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6967,7 +6989,7 @@ checksum = "14e50c94013a1d036a529df259151991dbbd6cf8dc215e3b68b784f95eec60e6" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "alloy-serde", @@ -6977,7 +6999,7 @@ dependencies = [ "op-alloy-consensus", "serde", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6991,7 +7013,7 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-op-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types-beacon", @@ -6999,7 +7021,7 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "alloy-signer-local", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "alloy-transport-http", "anyhow", @@ -7115,9 +7137,9 @@ dependencies = [ [[package]] name = "op-revm" -version = "10.1.0" +version = "10.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ba4f4693811e73449193c8bd656d3978f265871916882e6a51a487e4f96217" +checksum = "826f43a5b1613c224f561847c152bfbaefcb593a9ae2c612ff4dc4661c6e625f" dependencies = [ "auto_impl", "revm", @@ -7136,7 +7158,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -7184,7 +7206,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7198,7 +7220,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7246,7 +7268,7 @@ dependencies = [ "prost", "reqwest", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tonic", "tracing", @@ -7266,7 +7288,7 @@ dependencies = [ "opentelemetry_sdk 0.29.0", "prost", "reqwest", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7318,7 +7340,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -7338,7 +7360,7 @@ dependencies = [ "percent-encoding", "rand 0.9.2", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7436,9 +7458,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -7446,15 +7468,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -7490,12 +7512,12 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pem" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ "base64 0.22.1", - "serde", + "serde_core", ] [[package]] @@ -7509,18 +7531,17 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror 2.0.16", "ucd-trie", ] @@ -7679,8 +7700,8 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.0.8", - "windows-sys 0.61.0", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -7720,9 +7741,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec 0.11.4", ] @@ -7784,11 +7805,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.7", ] [[package]] @@ -7828,25 +7849,46 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "chrono", "flate2", "hex", - "procfs-core", + "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.9.4", + "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.9.2", + "bitflags 2.9.4", "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.9.4", + "hex", +] + [[package]] name = "prometheus-client" version = "0.23.1" @@ -7872,13 +7914,13 @@ dependencies = [ [[package]] name = "proptest" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.2", + "bitflags 2.9.4", "lazy_static", "num-traits", "rand 0.9.2", @@ -7911,6 +7953,17 @@ dependencies = [ "syn 2.0.106", ] +[[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.106", +] + [[package]] name = "prost" version = "0.13.5" @@ -7940,7 +7993,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "memchr", "unicase", ] @@ -7955,7 +8008,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] @@ -7990,9 +8043,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -8002,8 +8055,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.5.10", - "thiserror 2.0.16", + "socket2 0.6.1", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -8011,12 +8064,12 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring", @@ -8024,7 +8077,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.16", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -8032,23 +8085,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -8133,7 +8186,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "serde", ] @@ -8161,10 +8214,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cassowary", "compact_str", - "crossterm", + "crossterm 0.28.1", "indoc", "instability", "itertools 0.13.0", @@ -8178,11 +8231,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.5.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -8235,11 +8288,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -8261,23 +8314,23 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", @@ -8286,9 +8339,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -8298,9 +8351,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -8309,9 +8362,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "regress" @@ -8325,9 +8378,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64 0.22.1", "bytes", @@ -8369,14 +8422,14 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.2", + "webpki-roots 1.0.3", ] [[package]] name = "resolv-conf" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" +checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" [[package]] name = "reth" @@ -8431,7 +8484,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "futures-core", "futures-util", "metrics", @@ -8455,7 +8508,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-signer", "alloy-signer-local", "derive_more", @@ -8489,7 +8542,7 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-trie", "auto_impl", "derive_more", @@ -8521,12 +8574,12 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "backon", "clap", "comfy-table", - "crossterm", + "crossterm 0.28.1", "eyre", "fdlimit", "futures", @@ -8604,7 +8657,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "cfg-if", "eyre", "libc", @@ -8612,7 +8665,7 @@ dependencies = [ "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tikv-jemallocator", ] @@ -8624,7 +8677,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-trie", "arbitrary", "bytes", @@ -8668,11 +8721,11 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -8695,7 +8748,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types-engine", "alloy-transport", @@ -8718,7 +8771,7 @@ name = "reth-db" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "eyre", "metrics", @@ -8736,7 +8789,7 @@ dependencies = [ "strum 0.27.2", "sysinfo 0.33.1", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -8746,7 +8799,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "bytes", "derive_more", @@ -8774,7 +8827,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -8793,7 +8846,7 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -8803,7 +8856,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "bytes", "modular-bitfield", @@ -8817,7 +8870,7 @@ name = "reth-discv4" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "discv5", "enr", @@ -8832,7 +8885,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -8843,7 +8896,7 @@ name = "reth-discv5" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "derive_more", "discv5", @@ -8857,7 +8910,7 @@ dependencies = [ "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -8867,7 +8920,7 @@ name = "reth-dns-discovery" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "data-encoding", "enr", "hickory-resolver", @@ -8880,7 +8933,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -8893,7 +8946,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "futures", "futures-util", @@ -8914,7 +8967,7 @@ dependencies = [ "reth-tasks", "reth-testing-utils", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -8927,7 +8980,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "aes", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "block-padding", "byteorder", @@ -8944,7 +8997,7 @@ dependencies = [ "secp256k1 0.30.0", "sha2 0.10.9", "sha3", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -8958,7 +9011,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -8983,7 +9036,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "auto_impl", "futures", @@ -8997,7 +9050,7 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", ] @@ -9021,7 +9074,7 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9032,7 +9085,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "derive_more", @@ -9073,7 +9126,7 @@ dependencies = [ "revm-primitives", "schnellru", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -9113,13 +9166,13 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", "reth-ethereum-primitives", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9127,7 +9180,7 @@ name = "reth-era-downloader" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "bytes", "eyre", "futures-util", @@ -9143,7 +9196,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "eyre", "futures-util", "reth-db-api", @@ -9167,7 +9220,7 @@ dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9176,7 +9229,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "bytes", "derive_more", @@ -9191,7 +9244,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -9207,7 +9260,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "bytes", "derive_more", @@ -9216,7 +9269,7 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9248,7 +9301,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -9263,7 +9316,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", @@ -9272,7 +9325,7 @@ dependencies = [ "reth-primitives-traits", "serde", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9282,7 +9335,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-eip2124", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "once_cell", "rustc-hash 2.1.1", @@ -9295,7 +9348,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "reth-basic-payload-builder", @@ -9324,7 +9377,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -9355,7 +9408,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "derive_more", "futures-util", @@ -9378,7 +9431,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "reth-chainspec", "reth-ethereum-forks", @@ -9396,11 +9449,11 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "nybbles", "reth-storage-errors", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9411,7 +9464,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "reth-ethereum-primitives", "reth-primitives-traits", @@ -9428,7 +9481,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "eyre", "futures", "itertools 0.14.0", @@ -9453,7 +9506,7 @@ dependencies = [ "reth-tasks", "reth-tracing", "rmp-serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tracing", @@ -9465,7 +9518,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-chain-state", "reth-execution-types", "reth-primitives-traits", @@ -9480,7 +9533,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9489,7 +9542,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-debug", "eyre", @@ -9522,7 +9575,7 @@ dependencies = [ "jsonrpsee 0.26.0", "pin-project", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -9535,14 +9588,14 @@ name = "reth-libmdbx" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "byteorder", "dashmap 6.1.0", "derive_more", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -9572,7 +9625,7 @@ name = "reth-net-banlist" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", ] [[package]] @@ -9584,7 +9637,7 @@ dependencies = [ "if-addrs 0.13.4", "reqwest", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -9596,7 +9649,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "aquamarine", "auto_impl", @@ -9637,7 +9690,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -9650,7 +9703,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-admin", "alloy-rpc-types-eth", "auto_impl", @@ -9664,7 +9717,7 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", ] @@ -9676,7 +9729,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "derive_more", "futures", @@ -9697,12 +9750,12 @@ name = "reth-network-peers" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "url", ] @@ -9733,7 +9786,7 @@ dependencies = [ "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "zstd", ] @@ -9769,7 +9822,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types", "alloy-rpc-types-engine", @@ -9837,7 +9890,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "clap", "derive_more", @@ -9874,7 +9927,7 @@ dependencies = [ "serde", "shellexpand", "strum 0.27.2", - "thiserror 2.0.16", + "thiserror 2.0.17", "toml", "tracing", "url", @@ -9926,7 +9979,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "chrono", "futures-util", "reth-chain-state", @@ -9936,7 +9989,7 @@ dependencies = [ "reth-transaction-pool", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tungstenite", @@ -9951,7 +10004,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "derive_more", "futures", @@ -9980,7 +10033,7 @@ dependencies = [ "metrics-exporter-prometheus 0.16.2", "metrics-process", "metrics-util 0.19.1", - "procfs", + "procfs 0.17.0", "reth-metrics", "reth-tasks", "tikv-jemalloc-ctl", @@ -10011,7 +10064,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "miniz_oxide", "op-alloy-consensus", @@ -10026,7 +10079,7 @@ dependencies = [ "serde", "serde_json", "tar-no-std", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10036,7 +10089,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "clap", "derive_more", @@ -10084,7 +10137,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-trie", "reth-chainspec", "reth-consensus", @@ -10098,7 +10151,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -10111,7 +10164,7 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-op-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm", @@ -10127,7 +10180,7 @@ dependencies = [ "reth-rpc-eth-api", "reth-storage-errors", "revm", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10137,7 +10190,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-serde", "brotli", @@ -10171,7 +10224,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-op-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "once_cell", "reth-ethereum-forks", ] @@ -10182,7 +10235,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "clap", @@ -10229,7 +10282,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-debug", "alloy-rpc-types-engine", @@ -10257,7 +10310,7 @@ dependencies = [ "revm", "serde", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -10268,7 +10321,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "bytes", @@ -10289,7 +10342,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-client", "alloy-rpc-types-debug", "alloy-rpc-types-engine", @@ -10336,7 +10389,7 @@ dependencies = [ "reth-transaction-pool", "revm", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tower 0.5.2", @@ -10361,7 +10414,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-serde", @@ -10384,7 +10437,7 @@ dependencies = [ "reth-storage-api", "reth-transaction-pool", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -10395,7 +10448,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types", "futures-util", "metrics", @@ -10428,7 +10481,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "auto_impl", "either", @@ -10438,7 +10491,7 @@ dependencies = [ "reth-errors", "reth-primitives-traits", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", ] @@ -10448,7 +10501,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-transaction-pool", ] @@ -10484,7 +10537,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-trie", @@ -10506,7 +10559,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10516,7 +10569,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "dashmap 6.1.0", "eyre", @@ -10561,7 +10614,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "itertools 0.14.0", "metrics", "rayon", @@ -10577,7 +10630,7 @@ dependencies = [ "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -10587,13 +10640,13 @@ name = "reth-prune-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "derive_more", "modular-bitfield", "reth-codecs", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10602,7 +10655,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "futures", "reth-eth-wire", @@ -10621,7 +10674,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "eyre", "futures", "parking_lot", @@ -10647,7 +10700,7 @@ name = "reth-revm" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -10666,7 +10719,7 @@ dependencies = [ "alloy-evm", "alloy-genesis", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-client", "alloy-rpc-types", @@ -10726,7 +10779,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tower 0.5.2", @@ -10742,7 +10795,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -10793,7 +10846,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tower 0.5.2", @@ -10809,7 +10862,7 @@ dependencies = [ "alloy-consensus", "alloy-json-rpc", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-signer", "auto_impl", @@ -10825,7 +10878,7 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "revm-context", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10834,7 +10887,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core 0.26.0", @@ -10853,7 +10906,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -10869,7 +10922,7 @@ dependencies = [ "alloy-evm", "alloy-json-rpc", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", @@ -10911,10 +10964,10 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-client", "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "derive_more", "futures", @@ -10943,7 +10996,7 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -10969,7 +11022,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", @@ -10986,7 +11039,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "bincode", "eyre", "futures-util", @@ -11022,7 +11075,7 @@ dependencies = [ "reth-trie", "reth-trie-db", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -11033,7 +11086,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "aquamarine", "auto_impl", "futures-util", @@ -11049,7 +11102,7 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "reth-tokio-util", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -11059,7 +11112,7 @@ name = "reth-stages-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "bytes", "modular-bitfield", @@ -11073,7 +11126,7 @@ name = "reth-static-file" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "parking_lot", "rayon", "reth-codecs", @@ -11093,7 +11146,7 @@ name = "reth-static-file-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "clap", "derive_more", "serde", @@ -11107,7 +11160,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -11129,14 +11182,14 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "derive_more", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -11151,7 +11204,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", "tracing-futures", @@ -11165,7 +11218,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "rand 0.8.5", "rand 0.9.2", "reth-ethereum-primitives", @@ -11219,11 +11272,11 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.2", + "bitflags 2.9.4", "futures-util", "metrics", "parking_lot", @@ -11247,7 +11300,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -11260,7 +11313,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-trie", "auto_impl", @@ -11284,7 +11337,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -11309,7 +11362,7 @@ name = "reth-trie-db" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-db-api", "reth-execution-errors", "reth-primitives-traits", @@ -11322,7 +11375,7 @@ name = "reth-trie-parallel" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "derive_more", "itertools 0.14.0", @@ -11337,7 +11390,7 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "reth-trie-sparse", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -11347,7 +11400,7 @@ name = "reth-trie-sparse" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-trie", "auto_impl", @@ -11366,7 +11419,7 @@ name = "reth-trie-sparse-parallel" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-trie", "metrics", @@ -11521,10 +11574,10 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9b329afcc0f9fd5adfa2c6349a7435a8558e82bcae203142103a9a95e2a63b6" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "anstyle", "boa_engine", "boa_gc", @@ -11532,7 +11585,7 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -11579,7 +11632,7 @@ version = "20.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "num_enum", "once_cell", "serde", @@ -11591,7 +11644,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "revm-bytecode", "revm-primitives", "serde", @@ -11701,7 +11754,7 @@ name = "rollup-boost" version = "0.1.0" source = "git+http://github.com/flashbots/rollup-boost?rev=b86af43969557bee18f17ec1d6bcd3e984f910b2#b86af43969557bee18f17ec1d6bcd3e984f910b2" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -11733,7 +11786,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "testcontainers 0.23.3", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-tungstenite", "tokio-util", @@ -11773,9 +11826,9 @@ dependencies = [ [[package]] name = "rug" -version = "1.27.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" +checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" dependencies = [ "az", "gmp-mpfr-sys", @@ -11785,14 +11838,15 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -11806,7 +11860,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -11817,12 +11871,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -11859,7 +11907,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver 1.0.27", ] [[package]] @@ -11877,7 +11925,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -11886,15 +11934,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.2", ] [[package]] @@ -11922,7 +11970,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.5.1", ] [[package]] @@ -11959,7 +12007,7 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.3.0", + "security-framework 3.5.1", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", @@ -11991,9 +12039,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" dependencies = [ "fnv", "quick-error", @@ -12035,11 +12083,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -12077,12 +12125,6 @@ dependencies = [ "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" @@ -12151,7 +12193,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -12160,11 +12202,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -12173,9 +12215,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -12192,11 +12234,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -12222,9 +12265,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -12241,27 +12284,28 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -12270,25 +12314,27 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.4", "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] @@ -12325,19 +12371,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.11.4", "schemars 0.9.0", "schemars 1.0.4", - "serde", - "serde_derive", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -12345,11 +12390,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", @@ -12361,7 +12406,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.4", "itoa", "ryu", "serde", @@ -12503,6 +12548,12 @@ 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" @@ -12511,7 +12562,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] @@ -12593,12 +12644,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -12635,9 +12686,9 @@ checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -12747,9 +12798,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" +checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" dependencies = [ "paste", "proc-macro2", @@ -12759,9 +12810,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", @@ -12834,7 +12885,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -12878,7 +12929,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac9ee8b664c9f1740cd813fea422116f8ba29997bb7c878d1940424889802897" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "log", "num-traits", ] @@ -12914,7 +12965,7 @@ dependencies = [ name = "tdx-quote-provider" version = "0.1.0" dependencies = [ - "axum 0.8.4", + "axum 0.8.6", "clap", "dotenvy", "eyre", @@ -12934,15 +12985,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -12966,7 +13017,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tar", @@ -12995,7 +13046,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tar", @@ -13020,11 +13071,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.17", ] [[package]] @@ -13040,9 +13091,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -13100,9 +13151,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -13118,15 +13169,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -13178,29 +13229,26 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", @@ -13219,9 +13267,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -13296,8 +13344,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] @@ -13309,20 +13357,50 @@ 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.10.0", + "indexmap 2.11.4", "serde", "serde_spanned", - "toml_datetime", + "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.11.4", + "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", +] + [[package]] name = "toml_write" version = "0.1.2" @@ -13388,7 +13466,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.10.0", + "indexmap 2.11.4", "pin-project-lite", "slab", "sync_wrapper", @@ -13407,7 +13485,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.2", + "bitflags 2.9.4", "bytes", "futures-core", "futures-util", @@ -13613,7 +13691,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "ethereum_hashing", "ethereum_ssz", "smallvec", @@ -13644,9 +13722,9 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" +checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" [[package]] name = "try-lock" @@ -13703,15 +13781,15 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.16", + "thiserror 2.0.17", "utf-8", ] [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -13757,9 +13835,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-segmentation" @@ -13850,9 +13928,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -13886,11 +13964,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "serde", "sha1_smol", @@ -14002,31 +14080,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" dependencies = [ "bumpalo", "log", @@ -14038,9 +14117,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" dependencies = [ "cfg-if", "js-sys", @@ -14051,9 +14130,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14061,9 +14140,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", @@ -14074,9 +14153,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" dependencies = [ "unicode-ident", ] @@ -14096,9 +14175,9 @@ dependencies = [ [[package]] name = "wasmtimer" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ "futures", "js-sys", @@ -14110,9 +14189,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" dependencies = [ "js-sys", "wasm-bindgen", @@ -14134,14 +14213,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.2", + "webpki-root-certs 1.0.3", ] [[package]] name = "webpki-root-certs" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" +checksum = "05d651ec480de84b762e7be71e6efa7461699c19d9e2c272c8d93455f567786e" dependencies = [ "rustls-pki-types", ] @@ -14152,14 +14231,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.2", + "webpki-roots 1.0.3", ] [[package]] name = "webpki-roots" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" dependencies = [ "rustls-pki-types", ] @@ -14178,9 +14257,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "winapi" @@ -14200,11 +14279,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -14235,25 +14314,27 @@ dependencies = [ [[package]] name = "windows" -version = "0.58.0" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "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.61.3" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-collections", - "windows-core 0.61.2", - "windows-future", - "windows-link 0.1.3", - "windows-numerics", + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", ] [[package]] @@ -14265,6 +14346,15 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.53.0" @@ -14289,28 +14379,28 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.58.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", + "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", ] [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "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", ] [[package]] @@ -14321,25 +14411,25 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading", + "windows-threading 0.1.0", ] [[package]] -name = "windows-implement" -version = "0.57.0" +name = "windows-future" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] name = "windows-implement" -version = "0.58.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", @@ -14348,9 +14438,9 @@ dependencies = [ [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", @@ -14370,20 +14460,9 @@ dependencies = [ [[package]] name = "windows-interface" -version = "0.58.0" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", @@ -14398,9 +14477,9 @@ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-numerics" @@ -14412,6 +14491,16 @@ dependencies = [ "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" @@ -14434,39 +14523,38 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.2.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] @@ -14511,16 +14599,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -14571,19 +14659,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -14595,6 +14683,15 @@ 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" @@ -14615,9 +14712,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -14639,9 +14736,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -14663,9 +14760,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -14675,9 +14772,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -14699,9 +14796,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -14723,9 +14820,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -14747,9 +14844,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -14771,15 +14868,15 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -14795,13 +14892,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.2", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "write16" @@ -14834,7 +14928,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 2.0.16", + "thiserror 2.0.17", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -14891,18 +14985,18 @@ dependencies = [ "nom", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] [[package]] name = "xattr" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.0.8", + "rustix 1.1.2", ] [[package]] @@ -14937,9 +15031,9 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.6" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dd50a6d6115feb3e5d7d0efd45e8ca364b6c83722c1e9c602f5764e0e9597" +checksum = "6927cfe0edfae4b26a369df6bad49cd0ef088c0ec48f4045b2084bcaedc10246" dependencies = [ "futures", "log", @@ -15016,18 +15110,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -15057,9 +15151,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -15150,9 +15244,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", From 2b0e5cd7a35b394e47acbd9b5ed673ce05d46e3d Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:24:40 -0400 Subject: [PATCH 17/32] fix copilot issues --- Cargo.lock | 2066 ++++++++++++++--------------- crates/op-rbuilder/src/args/op.rs | 2 +- crates/p2p/src/lib.rs | 57 +- 3 files changed, 1017 insertions(+), 1108 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 59341539..8cf1a99c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + [[package]] name = "adler2" version = "2.0.1" @@ -50,7 +59,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.4", + "getrandom 0.3.3", "once_cell", "version_check", "zerocopy", @@ -88,9 +97,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.38" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b17c19591d57add4f0c47922877a48aae1f47074e3433436545f8948353b3bbb" +checksum = "992a9d0732a0e0e1a34d61a6553ad28f761c9049bb46572d3916f172348d2cb7" dependencies = [ "alloy-consensus", "alloy-contract", @@ -111,11 +120,11 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.14" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf01dd83a1ca5e4807d0ca0223c9615e211ce5db0a9fd1443c2778cacf89b546" +checksum = "a379c0d821498c996ceb9e7519fc2dab8286c35a203c1fb95f80ecd66e07cf2f" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "num_enum", "serde", @@ -124,12 +133,12 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0dd3ed764953a6b20458b2b7abbfdc93d20d14b38babe1a70fe631a443a9f1" +checksum = "6bf3c28aa7a5765042739f964e335408e434819b96fdda97f12eb1beb46dead0" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-serde", "alloy-trie", @@ -146,18 +155,18 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-consensus-any" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9556182afa73cddffa91e64a5aa9508d5e8c912b3a15f26998d2388a824d2c7b" +checksum = "bbfda7b14f1664b6c23d7f38bca2b73c460f2497cf93dd1589753890cb0da158" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-serde", "arbitrary", @@ -166,49 +175,49 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19d7092c96defc3d132ee0d8969ca1b79ef512b5eda5c66e3065266b253adf2" +checksum = "6cb079f711129dd32d6c3a0581013c927eb30d32e929d606cd8c0fe1022ec041" dependencies = [ "alloy-consensus", "alloy-dyn-abi", - "alloy-json-abi 1.4.1", + "alloy-json-abi 1.3.1", "alloy-network", "alloy-network-primitives", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-types-eth", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "alloy-transport", "futures", "futures-util", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-core" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca96214615ec8cf3fa2a54b32f486eb49100ca7fe7eb0b8c1137cd316e7250a" +checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" dependencies = [ "alloy-dyn-abi", - "alloy-json-abi 1.4.1", - "alloy-primitives 1.4.1", + "alloy-json-abi 1.3.1", + "alloy-primitives 1.3.1", "alloy-rlp", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", ] [[package]] name = "alloy-dyn-abi" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" dependencies = [ - "alloy-json-abi 1.4.1", - "alloy-primitives 1.4.1", - "alloy-sol-type-parser 1.4.1", - "alloy-sol-types 1.4.1", + "alloy-json-abi 1.3.1", + "alloy-primitives 1.3.1", + "alloy-sol-type-parser 1.3.1", + "alloy-sol-types 1.3.1", "derive_more", "itoa", "serde", @@ -222,13 +231,13 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "arbitrary", "crc", "rand 0.8.5", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -237,7 +246,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "arbitrary", "rand 0.8.5", @@ -250,26 +259,26 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "arbitrary", "k256", "rand 0.8.5", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-eips" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fa99b538ca7006b0c03cfed24ec6d82beda67aac857ef4714be24231d15e6" +checksum = "72e57928382e5c7890ef90ded9f814d85a1c3db79ceb4a3c5079f1be4cadeeb4" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-serde", "arbitrary", @@ -282,40 +291,37 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-evm" -version = "0.21.2" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a5f67ee74999aa4fe576a83be1996bdf74a30fce3d248bf2007d6fc7dae8aa" +checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-op-hardforks", - "alloy-primitives 1.4.1", - "alloy-rpc-types-engine", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "auto_impl", "derive_more", "op-alloy-consensus", - "op-alloy-rpc-types-engine", "op-revm", "revm", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-genesis" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a272533715aefc900f89d51db00c96e6fd4f517ea081a12fea482a352c8c815c" +checksum = "ca3419410cdd67fb7d5d016d9d16cf3ea8cc365fcbcf15d086afdd02eaef17e4" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-serde", "alloy-trie", "serde", @@ -330,7 +336,7 @@ checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "dyn-clone", "serde", @@ -338,93 +344,93 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" +checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" dependencies = [ - "alloy-primitives 0.8.26", - "alloy-sol-type-parser 0.8.26", + "alloy-primitives 0.8.25", + "alloy-sol-type-parser 0.8.25", "serde", "serde_json", ] [[package]] name = "alloy-json-abi" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ - "alloy-primitives 1.4.1", - "alloy-sol-type-parser 1.4.1", + "alloy-primitives 1.3.1", + "alloy-sol-type-parser 1.3.1", "serde", "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91676d242c0ced99c0dd6d0096d7337babe9457cc43407d26aa6367fcf90553" +checksum = "17248e392e79658b1faca7946bfe59825b891c3f6e382044499d99c57ba36a89" dependencies = [ - "alloy-primitives 1.4.1", - "alloy-sol-types 1.4.1", + "alloy-primitives 1.3.1", + "alloy-sol-types 1.3.1", "http", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f82150116b30ba92f588b87f08fa97a46a1bd5ffc0d0597efdf0843d36bfda" +checksum = "fe43d21867dc0dcf71aacffc891ae75fd587154f0d907ceb7340fc5f0271276d" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "async-trait", "auto_impl", "derive_more", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-network-primitives" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223612259a080160ce839a4e5df0125ca403a1d5e7206cc911cea54af5d769aa" +checksum = "67f3b37447082a47289f26e26c0686ac6407710fdd4e818043d9b6d37f2ab55c" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-serde", "serde", ] [[package]] name = "alloy-op-evm" -version = "0.21.2" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17aaeb600740c181bf29c9f138f9b228d115ea74fa6d0f0343e1952f1a766968" +checksum = "19f09c7785a3f2df462e4bb898e8b682b43de488d9d44bf2e5264e0bba44af21" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-op-hardforks", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "op-alloy-consensus", "op-revm", @@ -439,24 +445,24 @@ checksum = "599c1d7dfbccb66603cb93fde00980d12848d32fe5e814f50562104a92df6487" dependencies = [ "alloy-chains", "alloy-hardforks", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", ] [[package]] name = "alloy-primitives" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" +checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more", - "foldhash 0.1.5", + "foldhash", "hashbrown 0.15.5", - "indexmap 2.11.4", + "indexmap 2.10.0", "itoa", "k256", "keccak-asm", @@ -472,9 +478,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", "arbitrary", @@ -482,16 +488,16 @@ dependencies = [ "cfg-if", "const-hex", "derive_more", - "foldhash 0.2.0", - "getrandom 0.3.4", - "hashbrown 0.16.0", - "indexmap 2.11.4", + "foldhash", + "getrandom 0.3.3", + "hashbrown 0.15.5", + "indexmap 2.10.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "proptest-derive 0.6.0", + "proptest-derive", "rand 0.9.2", "ruint", "rustc-hash 2.1.1", @@ -502,9 +508,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7283b81b6f136100b152e699171bc7ed8184a58802accbc91a7df4ebb944445" +checksum = "1b6377212f3e659173b939e8d3ec3292e246cb532eafd5a4f91e57fdb104b43c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -512,14 +518,14 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-network-primitives", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-rpc-types-txpool", "alloy-signer", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -537,7 +543,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", "url", @@ -546,12 +552,12 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee7e3d343814ec0dfea69bd1820042a133a9d0b9ac5faf1e6eb133b43366315" +checksum = "d27b4f1ac3a0388065f933f957f80e03d06c47ce6a4389ac8cb9f72c30d8d823" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-transport", "auto_impl", "bimap", @@ -590,12 +596,12 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1154b12d470bef59951c62676e106f4ce5de73b987d86b9faa935acebb138ded" +checksum = "3b80c8cafc1735ce6776bccc25f0c3b7583074897b8ec4f3a129e4d25e09d65c" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-pubsub", "alloy-transport", "alloy-transport-http", @@ -616,11 +622,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ab76bf97648a1c6ad8fb00f0d594618942b5a9e008afbfb5c8a8fca800d574" +checksum = "3bc0818982bb868acc877f2623ad1fc8f2a4b244074919212bfe476fcadca6d3" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -629,23 +635,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8ae38824376e855d73d4060462d86c32afe548af632597ccfd161bdd0fc628" +checksum = "9359aabfc2ae906ea9f904c6cf6a63d12fc6510e655a64c38aa601a739602e84" dependencies = [ "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456cfc2c1677260edbd7ce3eddb7de419cb46de0e9826c43401f42b0286a779a" +checksum = "410403528db87ab4618e7f517b0f54e493c8a17bb61102cbccbb7a35e8719b5b" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -653,9 +659,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cc57ee0c1ac9fb14854195fc249494da7416591dc4a4d981ddfd5dd93b9bce" +checksum = "af8448a1eb2c81115fc8d9d50da24156c9ce8fca78a19a997184dcd81f99c229" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -664,31 +670,30 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa4edd92c3124ec19b9d572dc7923d070fe5c2efb677519214affd6156a4463" +checksum = "9c20f653a4c1ab8289470e8eed55fe4f11354865b730685bb70b69a375524b27" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", - "derive_more", "ethereum_ssz", "ethereum_ssz_derive", "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", "tree_hash", "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ac29dd005c33e3f7e09087accc80843315303685c3f7a1b888002cd27785b" +checksum = "8fb22d465e02c015648138bc0d46951d267827551fc85922b60f58caa6a0e9c9" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "derive_more", "serde", "serde_with", @@ -696,13 +701,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9d173854879bcf26c7d71c1c3911972a3314df526f4349ffe488e676af577d" +checksum = "4b968beee2ada53ef150fd90fbd2b7a3e5bcb66650e4d01757ff769c8af3d5ee" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-serde", "derive_more", @@ -716,35 +721,35 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7d47bca1a2a1541e4404aa38b7e262bb4dffd9ac23b4f178729a4ddc5a5caa" +checksum = "cd7c1bc07b6c9222c4ad822da3cea0fbbfcbe2876cf5d4780e147a0da6fe2862" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-serde", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "arbitrary", "itertools 0.14.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3820683ece7cdc31e44d87c88c0ff9b972a1a2fd1f2124cc72ce5c928e64f0d" +checksum = "ad56da776d84940f075f6cdb27c95c17f5d8947ed89947d61b686247ec4e2200" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -753,25 +758,25 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c331c8e48665607682e8a9549a2347c13674d4fbcbdc342e7032834eba2424f4" +checksum = "7e54b3f616d9f30e11bc73e685f71da6f1682da5a3c2ca5206ec47f1d3bc96c7" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-serde", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2f66afe1e76ca4485e593980056f061b2bdae2055486a062fca050ff111a52" +checksum = "15fc6b7b9465393a5b3fd38aba979f44438f172d9d0e6de732243c17d4246060" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -779,11 +784,11 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8468f1a7f9ee3bae73c24eead0239abea720dbf7779384b9c7e20d51bfb6b0" +checksum = "8603b89af4ba0acb94465319e506b8c0b40a5daf563046bedd58d26c98dbd62c" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "arbitrary", "serde", "serde_json", @@ -791,43 +796,43 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33387c90b0a5021f45a5a77c2ce6c49b8f6980e66a318181468fb24cea771670" +checksum = "78ddbea0531837cc7784ae6669b4a66918e6fb34c2daa2a7a888549dd565151c" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "async-trait", "auto_impl", "either", "elliptic-curve", "k256", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-signer-local" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55d9e795c85e36dcea08786d2e7ae9b73cb554b6bea6ac4c212def24e1b4d03" +checksum = "3497f79c8a818f736d8de1c157a1ec66c0ce1da3fbb2f54c005097798282e59b" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-signer", "async-trait", "k256", "rand 0.8.5", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "alloy-sol-macro" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" +checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" dependencies = [ - "alloy-sol-macro-expander 0.8.26", - "alloy-sol-macro-input 0.8.26", + "alloy-sol-macro-expander 0.8.25", + "alloy-sol-macro-input 0.8.25", "proc-macro-error2", "proc-macro2", "quote", @@ -836,12 +841,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ - "alloy-sol-macro-expander 1.4.1", - "alloy-sol-macro-input 1.4.1", + "alloy-sol-macro-expander 1.3.1", + "alloy-sol-macro-input 1.3.1", "proc-macro-error2", "proc-macro2", "quote", @@ -850,46 +855,46 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" +checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" dependencies = [ - "alloy-sol-macro-input 0.8.26", + "alloy-sol-macro-input 0.8.25", "const-hex", "heck", - "indexmap 2.11.4", + "indexmap 2.10.0", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 0.8.26", + "syn-solidity 0.8.25", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ - "alloy-json-abi 1.4.1", - "alloy-sol-macro-input 1.4.1", + "alloy-json-abi 1.3.1", + "alloy-sol-macro-input 1.3.1", "const-hex", "heck", - "indexmap 2.11.4", + "indexmap 2.10.0", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 1.4.1", + "syn-solidity 1.3.1", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" +checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" dependencies = [ "const-hex", "dunce", @@ -898,16 +903,16 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 0.8.26", + "syn-solidity 0.8.25", ] [[package]] name = "alloy-sol-macro-input" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ - "alloy-json-abi 1.4.1", + "alloy-json-abi 1.3.1", "const-hex", "dunce", "heck", @@ -916,14 +921,14 @@ dependencies = [ "quote", "serde_json", "syn 2.0.106", - "syn-solidity 1.4.1", + "syn-solidity 1.3.1", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" +checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" dependencies = [ "serde", "winnow", @@ -931,9 +936,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", "winnow", @@ -941,37 +946,37 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" +checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" dependencies = [ - "alloy-json-abi 0.8.26", - "alloy-primitives 0.8.26", - "alloy-sol-macro 0.8.26", + "alloy-json-abi 0.8.25", + "alloy-primitives 0.8.25", + "alloy-sol-macro 0.8.25", "const-hex", "serde", ] [[package]] name = "alloy-sol-types" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ - "alloy-json-abi 1.4.1", - "alloy-primitives 1.4.1", - "alloy-sol-macro 1.4.1", + "alloy-json-abi 1.3.1", + "alloy-primitives 1.3.1", + "alloy-sol-macro 1.3.1", "serde", ] [[package]] name = "alloy-transport" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702002659778d89a94cd4ff2044f6b505460df6c162e2f47d1857573845b0ace" +checksum = "d259738315db0a2460581e22a1ca73ff02ef44687b43c0dad0834999090b3e7e" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "base64 0.22.1", "derive_more", @@ -980,7 +985,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "tracing", @@ -990,9 +995,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6bdc0830e5e8f08a4c70a4c791d400a86679c694a3b4b986caf26fad680438" +checksum = "c6332f6d470e465bf00f9306743ff172f54b83e7e31edfe28f1444c085ccb0e4" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1005,9 +1010,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ce41d99a32346f354725fe62eadd271cdbae45fe6b3cc40cb054e0bf763112" +checksum = "865c13b9ce32b1a5227ac0f796faa9c08416aa4ea4e22b3a61a21ef110bda5ad" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1025,9 +1030,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686219dcef201655763bd3d4eabe42388d9368bfbf6f1c8016d14e739ec53aac" +checksum = "da655a5099cc037cad636425cec389320a694b6ec0302472a74f71b3637d842d" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1047,7 +1052,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "arbitrary", "arrayvec", @@ -1055,7 +1060,7 @@ dependencies = [ "derive_more", "nybbles", "proptest", - "proptest-derive 0.5.1", + "proptest-derive", "serde", "smallvec", "tracing", @@ -1063,17 +1068,23 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.38" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bf39928a5e70c9755d6811a2928131b53ba785ad37c8bf85c90175b5d43b818" +checksum = "2765badc6f621e1fc26aa70c520315866f0db6b8bd6bf3c560920d4fb33b08de" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -1085,9 +1096,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.21" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -1100,9 +1111,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" @@ -1135,9 +1146,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "aquamarine" @@ -1495,7 +1506,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.16", "time", ] @@ -1553,15 +1564,18 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.32" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" +checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" dependencies = [ - "compression-codecs", - "compression-core", + "brotli", + "flate2", "futures-core", + "memchr", "pin-project-lite", "tokio", + "zstd", + "zstd-safe", ] [[package]] @@ -1577,7 +1591,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.1.2", + "rustix 1.0.8", "slab", "windows-sys 0.61.2", ] @@ -1747,11 +1761,11 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.6" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" dependencies = [ - "axum-core 0.5.5", + "axum-core 0.5.2", "bytes", "form_urlencoded", "futures-util", @@ -1766,7 +1780,8 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "serde_core", + "rustversion", + "serde", "serde_json", "serde_path_to_error", "serde_urlencoded", @@ -1800,9 +1815,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.5" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" dependencies = [ "bytes", "futures-core", @@ -1811,6 +1826,7 @@ dependencies = [ "http-body-util", "mime", "pin-project-lite", + "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -1833,6 +1849,21 @@ dependencies = [ "tokio", ] +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + [[package]] name = "base-x" version = "0.2.11" @@ -1845,16 +1876,6 @@ 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" @@ -1903,7 +1924,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1926,7 +1947,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1938,24 +1959,6 @@ dependencies = [ "syn 2.0.106", ] -[[package]] -name = "bindgen" -version = "0.72.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" -dependencies = [ - "bitflags 2.9.4", - "cexpr", - "clang-sys", - "itertools 0.13.0", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.106", -] - [[package]] name = "bit-set" version = "0.8.0" @@ -1995,18 +1998,18 @@ checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" [[package]] name = "bitfield" -version = "0.19.3" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf79f42d21f18b5926a959280215903e659760da994835d27c3a0c5ff4f898f" +checksum = "db1bcd90f88eabbf0cadbfb87a45bceeaebcd3b4bc9e43da379cd2ef0162590d" dependencies = [ "bitfield-macros", ] [[package]] name = "bitfield-macros" -version = "0.19.3" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6115af052c7914c0cbb97195e5c72cb61c511527250074f5c041d1048b0d8b16" +checksum = "3787a07661997bfc05dd3431e379c0188573f78857080cf682e1393ab8e4d64c" dependencies = [ "proc-macro2", "quote", @@ -2021,9 +2024,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" dependencies = [ "serde", ] @@ -2079,9 +2082,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.16" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" dependencies = [ "cc", "glob", @@ -2095,11 +2098,11 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.11.4", + "indexmap 2.10.0", "num-bigint", "rustc-hash 2.1.1", ] @@ -2111,7 +2114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" dependencies = [ "arrayvec", - "bitflags 2.9.4", + "bitflags 2.9.2", "boa_ast", "boa_gc", "boa_interner", @@ -2125,7 +2128,7 @@ dependencies = [ "fast-float2", "hashbrown 0.15.5", "icu_normalizer 1.5.0", - "indexmap 2.11.4", + "indexmap 2.10.0", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -2145,7 +2148,7 @@ dependencies = [ "static_assertions", "tap", "thin-vec", - "thiserror 2.0.17", + "thiserror 2.0.16", "time", ] @@ -2171,7 +2174,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.15.5", - "indexmap 2.11.4", + "indexmap 2.10.0", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2196,7 +2199,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cc142dac798cdc6e2dbccfddeb50f36d2523bb977a976e19bdb3ae19b740804" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "boa_ast", "boa_interner", "boa_macros", @@ -2259,7 +2262,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-util", "tower-service", @@ -2337,18 +2340,18 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.2" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" dependencies = [ "proc-macro2", "quote", @@ -2372,9 +2375,9 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.5" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" +checksum = "137a2a2878ed823ef1bd73e5441e245602aae5360022113b8ad259ca4b5b8727" dependencies = [ "arbitrary", "blst", @@ -2388,11 +2391,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.1" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" dependencies = [ - "serde_core", + "serde", ] [[package]] @@ -2412,7 +2415,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.27", + "semver 1.0.26", "serde", "serde_json", ] @@ -2425,10 +2428,10 @@ checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", - "semver 1.0.27", + "semver 1.0.26", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -2454,7 +2457,7 @@ checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" dependencies = [ "clap", "heck", - "indexmap 2.11.4", + "indexmap 2.10.0", "log", "proc-macro2", "quote", @@ -2538,16 +2541,17 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.1", + "windows-link 0.1.3", ] [[package]] @@ -2574,9 +2578,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.49" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" +checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" dependencies = [ "clap_builder", "clap_derive", @@ -2584,9 +2588,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.49" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" +checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" dependencies = [ "anstream", "anstyle", @@ -2596,9 +2600,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.49" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" +checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" dependencies = [ "heck", "proc-macro2", @@ -2608,9 +2612,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.6" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "cmake" @@ -2627,7 +2631,7 @@ version = "0.3.0" source = "git+https://github.com/automata-network/coco-provider-sdk#3a832b8cf5e88ef71649ab56e4efd67067b26b7c" dependencies = [ "bincode", - "bitfield 0.19.3", + "bitfield 0.19.1", "cbindgen", "iocuddle", "libc", @@ -2658,11 +2662,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.2.1" +version = "7.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ - "crossterm 0.29.0", + "crossterm", "unicode-segmentation", "unicode-width 0.2.0", ] @@ -2681,26 +2685,6 @@ dependencies = [ "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" @@ -2721,14 +2705,15 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.17.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" +checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" dependencies = [ "cfg-if", "cpufeatures", + "hex", "proptest", - "serde_core", + "serde", ] [[package]] @@ -2737,17 +2722,11 @@ 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" +version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" dependencies = [ "const_format_proc_macros", ] @@ -2886,7 +2865,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "crossterm_winapi", "mio", "parking_lot", @@ -2896,20 +2875,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "crossterm" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" -dependencies = [ - "bitflags 2.9.4", - "crossterm_winapi", - "document-features", - "parking_lot", - "rustix 1.1.2", - "winapi", -] - [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -3129,7 +3094,7 @@ name = "dcap-rs" version = "0.1.0" source = "git+https://github.com/automata-network/dcap-rs.git?rev=d847b8f75a493640c4881bdf67775250b6baefab#d847b8f75a493640c4881bdf67775250b6baefab" dependencies = [ - "alloy-sol-types 0.8.26", + "alloy-sol-types 0.8.25", "chrono", "hex", "p256", @@ -3199,12 +3164,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", - "serde_core", + "serde", ] [[package]] @@ -3348,7 +3313,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -3423,15 +3388,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" -[[package]] -name = "document-features" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" -dependencies = [ - "litrs", -] - [[package]] name = "dotenvy" version = "0.15.7" @@ -3648,12 +3604,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.14" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -3704,7 +3660,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "hex", "serde", "serde_derive", @@ -3713,11 +3669,11 @@ dependencies = [ [[package]] name = "ethereum_ssz" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" +checksum = "9ca8ba45b63c389c6e115b095ca16381534fdcc03cf58176a3f8554db2dbe19b" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "ethereum_serde_utils", "itertools 0.13.0", "serde", @@ -3728,9 +3684,9 @@ dependencies = [ [[package]] name = "ethereum_ssz_derive" -version = "0.9.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" +checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" dependencies = [ "darling 0.20.11", "proc-macro2", @@ -3831,14 +3787,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -3855,9 +3811,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.4" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -3875,12 +3831,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - [[package]] name = "foreign-types" version = "0.3.2" @@ -3898,9 +3848,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -4063,11 +4013,25 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "generator" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.61.3", +] + [[package]] name = "generic-array" -version = "0.14.9" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "serde", "typenum", @@ -4084,21 +4048,21 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.4" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasip2", + "wasi 0.14.2+wasi-0.2.4", "wasm-bindgen", ] @@ -4112,13 +4076,19 @@ dependencies = [ "polyval", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "git2" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "libc", "libgit2-sys", "log", @@ -4179,12 +4149,12 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.8" +version = "1.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" +checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -4210,7 +4180,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.11.4", + "indexmap 2.10.0", "slab", "tokio", "tokio-util", @@ -4252,17 +4222,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.1.5", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" -dependencies = [ - "foldhash 0.2.0", + "foldhash", "serde", ] @@ -4302,6 +4262,9 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] [[package]] name = "hex-conservative" @@ -4332,7 +4295,7 @@ dependencies = [ "ring", "serde", "socket2 0.5.10", - "thiserror 2.0.17", + "thiserror 2.0.16", "tinyvec", "tokio", "tracing", @@ -4356,7 +4319,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -4454,9 +4417,9 @@ checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" [[package]] name = "humantime" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "humantime-serde" @@ -4522,7 +4485,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.3", + "webpki-roots 1.0.2", ] [[package]] @@ -4556,9 +4519,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64 0.22.1", "bytes", @@ -4572,7 +4535,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", + "socket2 0.6.0", "system-configuration", "tokio", "tower-service", @@ -4597,9 +4560,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4607,7 +4570,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -4831,9 +4794,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.1.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -4972,15 +4935,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.15.5", "serde", - "serde_core", ] [[package]] @@ -4995,7 +4957,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "inotify-sys", "libc", ] @@ -5056,6 +5018,17 @@ dependencies = [ "memoffset", ] +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.9.2", + "cfg-if", + "libc", +] + [[package]] name = "iocuddle" version = "0.1.1" @@ -5162,19 +5135,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.3.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -5229,7 +5202,7 @@ dependencies = [ "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-rustls", "tokio-util", @@ -5255,7 +5228,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "tracing", @@ -5281,7 +5254,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower 0.5.2", @@ -5305,7 +5278,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "url", @@ -5328,7 +5301,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tower 0.5.2", "url", @@ -5377,7 +5350,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -5404,7 +5377,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -5420,7 +5393,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -5432,7 +5405,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -5544,9 +5517,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libgit2-sys" @@ -5562,12 +5535,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-link 0.2.1", + "windows-targets 0.53.3", ] [[package]] @@ -5607,7 +5580,7 @@ dependencies = [ "multiaddr", "pin-project", "rw-stream-sink", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -5641,7 +5614,7 @@ dependencies = [ "quick-protobuf-codec", "rand 0.8.5", "rand_core 0.6.4", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", "web-time", ] @@ -5676,7 +5649,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "rw-stream-sink", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", "unsigned-varint 0.8.0", "web-time", @@ -5715,7 +5688,7 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -5734,7 +5707,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", "zeroize", ] @@ -5792,7 +5765,7 @@ dependencies = [ "rand 0.8.5", "snow", "static_assertions", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", "x25519-dalek", "zeroize", @@ -5831,7 +5804,7 @@ dependencies = [ "ring", "rustls", "socket2 0.5.10", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -5932,7 +5905,7 @@ dependencies = [ "ring", "rustls", "rustls-webpki", - "thiserror 2.0.17", + "thiserror 2.0.16", "x509-parser 0.17.0", "yasna", ] @@ -5961,7 +5934,7 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", "yamux 0.12.1", "yamux 0.13.7", @@ -5969,24 +5942,24 @@ dependencies = [ [[package]] name = "libproc" -version = "0.14.11" +version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" +checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" dependencies = [ - "bindgen 0.72.1", + "bindgen 0.70.1", "errno", "libc", ] [[package]] name = "libredox" -version = "0.1.10" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "libc", - "redox_syscall 0.5.18", + "redox_syscall 0.5.17", ] [[package]] @@ -6071,9 +6044,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" @@ -6087,27 +6060,35 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" -[[package]] -name = "litrs" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" - [[package]] name = "lock_api" -version = "0.4.14" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ + "autocfg", "scopeguard", "serde", ] [[package]] name = "log" -version = "0.4.28" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "loom" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber 0.3.20", +] [[package]] name = "lru" @@ -6160,9 +6141,9 @@ checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" [[package]] name = "mach2" -version = "0.5.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -6188,17 +6169,6 @@ dependencies = [ "syn 2.0.106", ] -[[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" @@ -6232,15 +6202,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.8" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" dependencies = [ "libc", ] @@ -6287,7 +6257,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.11.4", + "indexmap 2.10.0", "ipnet", "metrics", "metrics-util 0.19.1", @@ -6308,30 +6278,30 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.11.4", + "indexmap 2.10.0", "ipnet", "metrics", "metrics-util 0.20.0", "quanta", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] [[package]] name = "metrics-process" -version = "2.4.2" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f615e08e049bd14a44c4425415782efb9bcd479fc1e19ddeb971509074c060d0" +checksum = "4a82c8add4382f29a122fa64fff1891453ed0f6b2867d971e7d60cb8dfa322ff" dependencies = [ "libc", "libproc", "mach2", "metrics", "once_cell", - "procfs 0.18.0", + "procfs", "rlimit", - "windows 0.62.2", + "windows 0.58.0", ] [[package]] @@ -6344,7 +6314,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.5", - "indexmap 2.11.4", + "indexmap 2.10.0", "metrics", "ordered-float", "quanta", @@ -6414,7 +6384,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", - "simd-adler32", ] [[package]] @@ -6425,7 +6394,7 @@ checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] @@ -6452,22 +6421,23 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.11" +version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" dependencies = [ "async-lock", "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "equivalent", "event-listener", "futures-util", + "loom", "parking_lot", "portable-atomic", "rustc_version 0.4.1", "smallvec", "tagptr", + "thiserror 1.0.69", "uuid", ] @@ -6498,12 +6468,11 @@ dependencies = [ [[package]] name = "multibase" -version = "0.9.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" dependencies = [ "base-x", - "base256emoji", "data-encoding", "data-encoding-macro", ] @@ -6606,7 +6575,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -6664,7 +6633,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "fsevent-sys", "inotify", "kqueue", @@ -6693,11 +6662,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.3" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6835,9 +6804,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.6" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" +checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" dependencies = [ "alloy-rlp", "arbitrary", @@ -6850,23 +6819,32 @@ dependencies = [ [[package]] name = "objc2-core-foundation" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" +checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", ] [[package]] name = "objc2-io-kit" -version = "0.3.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" +checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" dependencies = [ "libc", "objc2-core-foundation", ] +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + [[package]] name = "oid" version = "0.2.1" @@ -6919,7 +6897,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -6927,7 +6905,7 @@ dependencies = [ "derive_more", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -6944,7 +6922,7 @@ checksum = "f80108e3b36901200a4c5df1db1ee9ef6ce685b59ea79d7be1713c845e3765da" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", @@ -6958,7 +6936,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8eb878fc5ea95adb5abe55fb97475b3eb0dcc77dfcd6f61bd626a68ae0bdba1" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "jsonrpsee 0.26.0", ] @@ -6971,14 +6949,14 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-serde", "derive_more", "op-alloy-consensus", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -6989,7 +6967,7 @@ checksum = "14e50c94013a1d036a529df259151991dbbd6cf8dc215e3b68b784f95eec60e6" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", "alloy-serde", @@ -6999,7 +6977,7 @@ dependencies = [ "op-alloy-consensus", "serde", "snap", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -7013,7 +6991,7 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-op-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types-beacon", @@ -7021,7 +6999,7 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "alloy-signer-local", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "alloy-transport", "alloy-transport-http", "anyhow", @@ -7137,9 +7115,9 @@ dependencies = [ [[package]] name = "op-revm" -version = "10.1.1" +version = "10.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826f43a5b1613c224f561847c152bfbaefcb593a9ae2c612ff4dc4661c6e625f" +checksum = "f9ba4f4693811e73449193c8bd656d3978f265871916882e6a51a487e4f96217" dependencies = [ "auto_impl", "revm", @@ -7158,7 +7136,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "cfg-if", "foreign-types", "libc", @@ -7206,7 +7184,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -7220,7 +7198,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -7268,7 +7246,7 @@ dependencies = [ "prost", "reqwest", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tonic", "tracing", @@ -7288,7 +7266,7 @@ dependencies = [ "opentelemetry_sdk 0.29.0", "prost", "reqwest", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -7340,7 +7318,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -7360,7 +7338,7 @@ dependencies = [ "percent-encoding", "rand 0.9.2", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -7458,9 +7436,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.5" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -7468,15 +7446,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.12" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.18", + "redox_syscall 0.5.17", "smallvec", - "windows-link 0.2.1", + "windows-targets 0.52.6", ] [[package]] @@ -7512,12 +7490,12 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pem" -version = "3.0.6" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", - "serde_core", + "serde", ] [[package]] @@ -7531,17 +7509,18 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", + "thiserror 2.0.16", "ucd-trie", ] @@ -7700,7 +7679,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.1.2", + "rustix 1.0.8", "windows-sys 0.61.2", ] @@ -7741,9 +7720,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" dependencies = [ "zerovec 0.11.4", ] @@ -7805,11 +7784,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit 0.23.7", + "toml_edit", ] [[package]] @@ -7849,46 +7828,25 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "chrono", "flate2", "hex", - "procfs-core 0.17.0", + "procfs-core", "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.9.4", - "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.9.4", + "bitflags 2.9.2", "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.9.4", - "hex", -] - [[package]] name = "prometheus-client" version = "0.23.1" @@ -7914,13 +7872,13 @@ dependencies = [ [[package]] name = "proptest" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" +checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.4", + "bitflags 2.9.2", "lazy_static", "num-traits", "rand 0.9.2", @@ -7953,17 +7911,6 @@ dependencies = [ "syn 2.0.106", ] -[[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.106", -] - [[package]] name = "prost" version = "0.13.5" @@ -7993,7 +7940,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "memchr", "unicase", ] @@ -8008,7 +7955,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi", + "wasi 0.11.1+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -8043,9 +7990,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" dependencies = [ "bytes", "cfg_aliases", @@ -8055,8 +8002,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.6.1", - "thiserror 2.0.17", + "socket2 0.5.10", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -8064,12 +8011,12 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" dependencies = [ "bytes", - "getrandom 0.3.4", + "getrandom 0.3.3", "lru-slab", "rand 0.9.2", "ring", @@ -8077,7 +8024,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.17", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -8085,23 +8032,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.1", + "socket2 0.5.10", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.41" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -8186,7 +8133,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.3.3", "serde", ] @@ -8214,10 +8161,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "cassowary", "compact_str", - "crossterm 0.28.1", + "crossterm", "indoc", "instability", "itertools 0.13.0", @@ -8231,11 +8178,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.6.0" +version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", ] [[package]] @@ -8288,11 +8235,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.18" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", ] [[package]] @@ -8314,23 +8261,23 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] name = "ref-cast" -version = "1.0.25" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.25" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ "proc-macro2", "quote", @@ -8339,9 +8286,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.12.2" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -8351,9 +8298,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.13" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -8362,9 +8309,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.8" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "regress" @@ -8378,9 +8325,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.24" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", @@ -8422,14 +8369,14 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.3", + "webpki-roots 1.0.2", ] [[package]] name = "resolv-conf" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" +checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "reth" @@ -8484,7 +8431,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "futures-core", "futures-util", "metrics", @@ -8508,7 +8455,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-signer", "alloy-signer-local", "derive_more", @@ -8542,7 +8489,7 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-trie", "auto_impl", "derive_more", @@ -8574,12 +8521,12 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "backon", "clap", "comfy-table", - "crossterm 0.28.1", + "crossterm", "eyre", "fdlimit", "futures", @@ -8657,7 +8604,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "cfg-if", "eyre", "libc", @@ -8665,7 +8612,7 @@ dependencies = [ "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tikv-jemallocator", ] @@ -8677,7 +8624,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-trie", "arbitrary", "bytes", @@ -8721,11 +8668,11 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -8748,7 +8695,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-types-engine", "alloy-transport", @@ -8771,7 +8718,7 @@ name = "reth-db" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "derive_more", "eyre", "metrics", @@ -8789,7 +8736,7 @@ dependencies = [ "strum 0.27.2", "sysinfo 0.33.1", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -8799,7 +8746,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "arbitrary", "bytes", "derive_more", @@ -8827,7 +8774,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -8846,7 +8793,7 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -8856,7 +8803,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", @@ -8870,7 +8817,7 @@ name = "reth-discv4" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "discv5", "enr", @@ -8885,7 +8832,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -8896,7 +8843,7 @@ name = "reth-discv5" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "derive_more", "discv5", @@ -8910,7 +8857,7 @@ dependencies = [ "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -8920,7 +8867,7 @@ name = "reth-dns-discovery" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "data-encoding", "enr", "hickory-resolver", @@ -8933,7 +8880,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -8946,7 +8893,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "futures", "futures-util", @@ -8967,7 +8914,7 @@ dependencies = [ "reth-tasks", "reth-testing-utils", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -8980,7 +8927,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "aes", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "block-padding", "byteorder", @@ -8997,7 +8944,7 @@ dependencies = [ "secp256k1 0.30.0", "sha2 0.10.9", "sha3", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9011,7 +8958,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -9036,7 +8983,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", "futures", @@ -9050,7 +8997,7 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", ] @@ -9074,7 +9021,7 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9085,7 +9032,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", "derive_more", @@ -9126,7 +9073,7 @@ dependencies = [ "revm-primitives", "schnellru", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9166,13 +9113,13 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", "reth-ethereum-primitives", "snap", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9180,7 +9127,7 @@ name = "reth-era-downloader" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "bytes", "eyre", "futures-util", @@ -9196,7 +9143,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "eyre", "futures-util", "reth-db-api", @@ -9220,7 +9167,7 @@ dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9229,7 +9176,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "bytes", "derive_more", @@ -9244,7 +9191,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9260,7 +9207,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "bytes", "derive_more", @@ -9269,7 +9216,7 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9301,7 +9248,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -9316,7 +9263,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", @@ -9325,7 +9272,7 @@ dependencies = [ "reth-primitives-traits", "serde", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9335,7 +9282,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-eip2124", "alloy-hardforks", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "once_cell", "rustc-hash 2.1.1", @@ -9348,7 +9295,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-engine", "reth-basic-payload-builder", @@ -9377,7 +9324,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -9408,7 +9355,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "derive_more", "futures-util", @@ -9431,7 +9378,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "reth-chainspec", "reth-ethereum-forks", @@ -9449,11 +9396,11 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "nybbles", "reth-storage-errors", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9464,7 +9411,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "derive_more", "reth-ethereum-primitives", "reth-primitives-traits", @@ -9481,7 +9428,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "eyre", "futures", "itertools 0.14.0", @@ -9506,7 +9453,7 @@ dependencies = [ "reth-tasks", "reth-tracing", "rmp-serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -9518,7 +9465,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "reth-chain-state", "reth-execution-types", "reth-primitives-traits", @@ -9533,7 +9480,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -9542,7 +9489,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-debug", "eyre", @@ -9575,7 +9522,7 @@ dependencies = [ "jsonrpsee 0.26.0", "pin-project", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9588,14 +9535,14 @@ name = "reth-libmdbx" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "byteorder", "dashmap 6.1.0", "derive_more", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -9625,7 +9572,7 @@ name = "reth-net-banlist" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", ] [[package]] @@ -9637,7 +9584,7 @@ dependencies = [ "if-addrs 0.13.4", "reqwest", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -9649,7 +9596,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "aquamarine", "auto_impl", @@ -9690,7 +9637,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -9703,7 +9650,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-admin", "alloy-rpc-types-eth", "auto_impl", @@ -9717,7 +9664,7 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", ] @@ -9729,7 +9676,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "auto_impl", "derive_more", "futures", @@ -9750,12 +9697,12 @@ name = "reth-network-peers" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "url", ] @@ -9786,7 +9733,7 @@ dependencies = [ "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", "zstd", ] @@ -9822,7 +9769,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-provider", "alloy-rpc-types", "alloy-rpc-types-engine", @@ -9890,7 +9837,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "clap", "derive_more", @@ -9927,7 +9874,7 @@ dependencies = [ "serde", "shellexpand", "strum 0.27.2", - "thiserror 2.0.17", + "thiserror 2.0.16", "toml", "tracing", "url", @@ -9979,7 +9926,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "chrono", "futures-util", "reth-chain-state", @@ -9989,7 +9936,7 @@ dependencies = [ "reth-transaction-pool", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tungstenite", @@ -10004,7 +9951,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "derive_more", "futures", @@ -10033,7 +9980,7 @@ dependencies = [ "metrics-exporter-prometheus 0.16.2", "metrics-process", "metrics-util 0.19.1", - "procfs 0.17.0", + "procfs", "reth-metrics", "reth-tasks", "tikv-jemalloc-ctl", @@ -10064,7 +10011,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-hardforks", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "derive_more", "miniz_oxide", "op-alloy-consensus", @@ -10079,7 +10026,7 @@ dependencies = [ "serde", "serde_json", "tar-no-std", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -10089,7 +10036,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "clap", "derive_more", @@ -10137,7 +10084,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-trie", "reth-chainspec", "reth-consensus", @@ -10151,7 +10098,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -10164,7 +10111,7 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-op-evm", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm", @@ -10180,7 +10127,7 @@ dependencies = [ "reth-rpc-eth-api", "reth-storage-errors", "revm", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -10190,7 +10137,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "alloy-serde", "brotli", @@ -10224,7 +10171,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-op-hardforks", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "once_cell", "reth-ethereum-forks", ] @@ -10235,7 +10182,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "clap", @@ -10282,7 +10229,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-debug", "alloy-rpc-types-engine", @@ -10310,7 +10257,7 @@ dependencies = [ "revm", "serde", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.16", "tracing", ] @@ -10321,7 +10268,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "arbitrary", "bytes", @@ -10342,7 +10289,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-client", "alloy-rpc-types-debug", "alloy-rpc-types-engine", @@ -10389,7 +10336,7 @@ dependencies = [ "reth-transaction-pool", "revm", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower 0.5.2", @@ -10414,7 +10361,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-serde", @@ -10437,7 +10384,7 @@ dependencies = [ "reth-storage-api", "reth-transaction-pool", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -10448,7 +10395,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types", "futures-util", "metrics", @@ -10481,7 +10428,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", "either", @@ -10491,7 +10438,7 @@ dependencies = [ "reth-errors", "reth-primitives-traits", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", ] @@ -10501,7 +10448,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "reth-transaction-pool", ] @@ -10537,7 +10484,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-trie", @@ -10559,7 +10506,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -10569,7 +10516,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "dashmap 6.1.0", "eyre", @@ -10614,7 +10561,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "itertools 0.14.0", "metrics", "rayon", @@ -10630,7 +10577,7 @@ dependencies = [ "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -10640,13 +10587,13 @@ name = "reth-prune-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "arbitrary", "derive_more", "modular-bitfield", "reth-codecs", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -10655,7 +10602,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "futures", "reth-eth-wire", @@ -10674,7 +10621,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "eyre", "futures", "parking_lot", @@ -10700,7 +10647,7 @@ name = "reth-revm" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -10719,7 +10666,7 @@ dependencies = [ "alloy-evm", "alloy-genesis", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-client", "alloy-rpc-types", @@ -10779,7 +10726,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tower 0.5.2", @@ -10795,7 +10742,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-json-rpc", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -10846,7 +10793,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-util", "tower 0.5.2", @@ -10862,7 +10809,7 @@ dependencies = [ "alloy-consensus", "alloy-json-rpc", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-signer", "auto_impl", @@ -10878,7 +10825,7 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "revm-context", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -10887,7 +10834,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core 0.26.0", @@ -10906,7 +10853,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -10922,7 +10869,7 @@ dependencies = [ "alloy-evm", "alloy-json-rpc", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", @@ -10964,10 +10911,10 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-network", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-client", "alloy-rpc-types-eth", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "alloy-transport", "derive_more", "futures", @@ -10996,7 +10943,7 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -11022,7 +10969,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", @@ -11039,7 +10986,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "bincode", "eyre", "futures-util", @@ -11075,7 +11022,7 @@ dependencies = [ "reth-trie", "reth-trie-db", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11086,7 +11033,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "aquamarine", "auto_impl", "futures-util", @@ -11102,7 +11049,7 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "reth-tokio-util", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11112,7 +11059,7 @@ name = "reth-stages-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "arbitrary", "bytes", "modular-bitfield", @@ -11126,7 +11073,7 @@ name = "reth-static-file" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "parking_lot", "rayon", "reth-codecs", @@ -11146,7 +11093,7 @@ name = "reth-static-file-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "clap", "derive_more", "serde", @@ -11160,7 +11107,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -11182,14 +11129,14 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "derive_more", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -11204,7 +11151,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", "tracing-futures", @@ -11218,7 +11165,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "rand 0.8.5", "rand 0.9.2", "reth-ethereum-primitives", @@ -11272,11 +11219,11 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.4", + "bitflags 2.9.2", "futures-util", "metrics", "parking_lot", @@ -11300,7 +11247,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -11313,7 +11260,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-trie", "auto_impl", @@ -11337,7 +11284,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -11362,7 +11309,7 @@ name = "reth-trie-db" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "reth-db-api", "reth-execution-errors", "reth-primitives-traits", @@ -11375,7 +11322,7 @@ name = "reth-trie-parallel" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "derive_more", "itertools 0.14.0", @@ -11390,7 +11337,7 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "reth-trie-sparse", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -11400,7 +11347,7 @@ name = "reth-trie-sparse" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-trie", "auto_impl", @@ -11419,7 +11366,7 @@ name = "reth-trie-sparse-parallel" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rlp", "alloy-trie", "metrics", @@ -11574,10 +11521,10 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9b329afcc0f9fd5adfa2c6349a7435a8558e82bcae203142103a9a95e2a63b6" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types 1.4.1", + "alloy-sol-types 1.3.1", "anstyle", "boa_engine", "boa_gc", @@ -11585,7 +11532,7 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.16", ] [[package]] @@ -11632,7 +11579,7 @@ version = "20.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "num_enum", "once_cell", "serde", @@ -11644,7 +11591,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "revm-bytecode", "revm-primitives", "serde", @@ -11754,7 +11701,7 @@ name = "rollup-boost" version = "0.1.0" source = "git+http://github.com/flashbots/rollup-boost?rev=b86af43969557bee18f17ec1d6bcd3e984f910b2#b86af43969557bee18f17ec1d6bcd3e984f910b2" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -11786,7 +11733,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "testcontainers 0.23.3", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-tungstenite", "tokio-util", @@ -11826,9 +11773,9 @@ dependencies = [ [[package]] name = "rug" -version = "1.28.0" +version = "1.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" +checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" dependencies = [ "az", "gmp-mpfr-sys", @@ -11838,15 +11785,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.17.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" +checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", - "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -11860,7 +11806,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde_core", + "serde", "valuable", "zeroize", ] @@ -11871,6 +11817,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -11907,7 +11859,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.27", + "semver 1.0.26", ] [[package]] @@ -11925,7 +11877,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -11934,15 +11886,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "errno", "libc", - "linux-raw-sys 0.11.0", - "windows-sys 0.61.2", + "linux-raw-sys 0.9.4", + "windows-sys 0.60.2", ] [[package]] @@ -11970,7 +11922,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework 3.3.0", ] [[package]] @@ -12007,7 +11959,7 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.5.1", + "security-framework 3.3.0", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", @@ -12039,9 +11991,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" dependencies = [ "fnv", "quick-error", @@ -12083,11 +12035,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -12125,6 +12077,12 @@ dependencies = [ "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" @@ -12193,7 +12151,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -12202,11 +12160,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.5.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -12215,9 +12173,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -12234,12 +12192,11 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", - "serde_core", ] [[package]] @@ -12265,9 +12222,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" dependencies = [ "serde_core", "serde_derive", @@ -12284,28 +12241,27 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.19" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", - "serde_core", ] [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.226" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" dependencies = [ "proc-macro2", "quote", @@ -12314,27 +12270,25 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.10.0", "itoa", "memchr", "ryu", "serde", - "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.20" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" dependencies = [ "itoa", "serde", - "serde_core", ] [[package]] @@ -12371,18 +12325,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.15.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.4", + "indexmap 2.10.0", "schemars 0.9.0", "schemars 1.0.4", - "serde_core", + "serde", + "serde_derive", "serde_json", "serde_with_macros", "time", @@ -12390,11 +12345,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.15.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling 0.21.3", + "darling 0.20.11", "proc-macro2", "quote", "syn 2.0.106", @@ -12406,7 +12361,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.10.0", "itoa", "ryu", "serde", @@ -12548,12 +12503,6 @@ 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" @@ -12562,7 +12511,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.17", + "thiserror 2.0.16", "time", ] @@ -12644,12 +12593,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -12686,9 +12635,9 @@ checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "static_assertions" @@ -12798,9 +12747,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" +checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" dependencies = [ "paste", "proc-macro2", @@ -12810,9 +12759,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.4.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", "proc-macro2", @@ -12885,7 +12834,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -12929,7 +12878,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac9ee8b664c9f1740cd813fea422116f8ba29997bb7c878d1940424889802897" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.9.2", "log", "num-traits", ] @@ -12965,7 +12914,7 @@ dependencies = [ name = "tdx-quote-provider" version = "0.1.0" dependencies = [ - "axum 0.8.6", + "axum 0.8.4", "clap", "dotenvy", "eyre", @@ -12985,15 +12934,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.23.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.3.3", "once_cell", - "rustix 1.1.2", - "windows-sys 0.61.2", + "rustix 1.0.8", + "windows-sys 0.60.2", ] [[package]] @@ -13017,7 +12966,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tar", @@ -13046,7 +12995,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tar", @@ -13071,11 +13020,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.16", ] [[package]] @@ -13091,9 +13040,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", @@ -13151,9 +13100,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -13169,15 +13118,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -13229,26 +13178,29 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ + "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "slab", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", @@ -13267,9 +13219,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.4" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ "rustls", "tokio", @@ -13344,8 +13296,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", + "toml_datetime", + "toml_edit", ] [[package]] @@ -13357,50 +13309,20 @@ 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.11.4", + "indexmap 2.10.0", "serde", "serde_spanned", - "toml_datetime 0.6.11", + "toml_datetime", "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.11.4", - "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", -] - [[package]] name = "toml_write" version = "0.1.2" @@ -13466,7 +13388,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.11.4", + "indexmap 2.10.0", "pin-project-lite", "slab", "sync_wrapper", @@ -13485,7 +13407,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.4", + "bitflags 2.9.2", "bytes", "futures-core", "futures-util", @@ -13691,7 +13613,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" dependencies = [ - "alloy-primitives 1.4.1", + "alloy-primitives 1.3.1", "ethereum_hashing", "ethereum_ssz", "smallvec", @@ -13722,9 +13644,9 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.15" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" +checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" [[package]] name = "try-lock" @@ -13781,15 +13703,15 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.16", "utf-8", ] [[package]] name = "typenum" -version = "1.19.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" @@ -13835,9 +13757,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" @@ -13928,9 +13850,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.7" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -13964,11 +13886,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ - "getrandom 0.3.4", + "getrandom 0.3.3", "js-sys", "serde", "sha1_smol", @@ -14080,32 +14002,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" +name = "wasi" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ - "wit-bindgen", + "wit-bindgen-rt", ] [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", - "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.104" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", @@ -14117,9 +14038,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", @@ -14130,9 +14051,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14140,9 +14061,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -14153,9 +14074,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" dependencies = [ "unicode-ident", ] @@ -14175,9 +14096,9 @@ dependencies = [ [[package]] name = "wasmtimer" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" +checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446" dependencies = [ "futures", "js-sys", @@ -14189,9 +14110,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -14213,14 +14134,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.3", + "webpki-root-certs 1.0.2", ] [[package]] name = "webpki-root-certs" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d651ec480de84b762e7be71e6efa7461699c19d9e2c272c8d93455f567786e" +checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" dependencies = [ "rustls-pki-types", ] @@ -14231,14 +14152,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.3", + "webpki-roots 1.0.2", ] [[package]] name = "webpki-roots" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -14257,9 +14178,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -14279,11 +14200,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.11" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -14314,27 +14235,25 @@ dependencies = [ [[package]] name = "windows" -version = "0.61.3" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" 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", + "windows-core 0.58.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.62.2" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-collections 0.3.2", - "windows-core 0.62.2", - "windows-future 0.3.2", - "windows-numerics 0.3.1", + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", ] [[package]] @@ -14346,15 +14265,6 @@ dependencies = [ "windows-core 0.61.2", ] -[[package]] -name = "windows-collections" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" -dependencies = [ - "windows-core 0.62.2", -] - [[package]] name = "windows-core" version = "0.53.0" @@ -14379,28 +14289,28 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.61.2" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" 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", + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.62.2" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 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", + "windows-implement 0.60.0", + "windows-interface 0.59.1", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -14411,25 +14321,25 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading 0.1.0", + "windows-threading", ] [[package]] -name = "windows-future" -version = "0.3.2" +name = "windows-implement" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ - "windows-core 0.62.2", - "windows-link 0.2.1", - "windows-threading 0.2.1", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] name = "windows-implement" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", @@ -14438,9 +14348,9 @@ dependencies = [ [[package]] name = "windows-implement" -version = "0.60.2" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", @@ -14460,9 +14370,20 @@ dependencies = [ [[package]] name = "windows-interface" -version = "0.59.3" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", @@ -14491,16 +14412,6 @@ dependencies = [ "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" @@ -14523,38 +14434,39 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-link 0.1.3", + "windows-targets 0.52.6", ] [[package]] name = "windows-result" -version = "0.4.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link 0.2.1", + "windows-link 0.1.3", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-link 0.1.3", + "windows-result 0.2.0", + "windows-targets 0.52.6", ] [[package]] name = "windows-strings" -version = "0.5.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link 0.2.1", + "windows-link 0.1.3", ] [[package]] @@ -14599,7 +14511,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.5", + "windows-targets 0.53.3", ] [[package]] @@ -14659,19 +14571,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.5" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link 0.2.1", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", + "windows-link 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] [[package]] @@ -14683,15 +14595,6 @@ 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" @@ -14712,9 +14615,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" @@ -14736,9 +14639,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" @@ -14760,9 +14663,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" [[package]] name = "windows_i686_gnullvm" @@ -14772,9 +14675,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" @@ -14796,9 +14699,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" @@ -14820,9 +14723,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" @@ -14844,9 +14747,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" @@ -14868,15 +14771,15 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -14892,10 +14795,13 @@ dependencies = [ ] [[package]] -name = "wit-bindgen" -version = "0.46.0" +name = "wit-bindgen-rt" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.2", +] [[package]] name = "write16" @@ -14928,7 +14834,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 2.0.17", + "thiserror 2.0.16", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -14985,18 +14891,18 @@ dependencies = [ "nom", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.16", "time", ] [[package]] name = "xattr" -version = "1.6.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.1.2", + "rustix 1.0.8", ] [[package]] @@ -15110,18 +15016,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -15151,9 +15057,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.2" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -15244,9 +15150,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 1a6b6976..f35f48aa 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -167,7 +167,7 @@ pub struct FlashblocksArgs { /// Port for the flashblocks p2p node #[arg( - long = "flasblocks.p2p_port", + long = "flashblocks.p2p_port", env = "FLASHBLOCK_P2P_PORT", default_value = "9009" )] diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 61bcc948..98ad8a4c 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -28,7 +28,7 @@ pub trait Message: fn to_string(&self) -> eyre::Result { serde_json::to_string(self).wrap_err("failed to serialize message to string") } - + fn from_str(s: &str) -> eyre::Result where Self: Sized, @@ -402,22 +402,24 @@ impl IncomingStreamsHandler { } = self; let mut handle_stream_futures = futures::stream::FuturesUnordered::new(); - tokio::select! { - _ = cancellation_token.cancelled() => { - debug!("cancellation token triggered, shutting down incoming streams handler for protocol {protocol}"); - } - Some((from, stream)) = incoming.next() => { - debug!("new incoming stream on protocol {protocol} from peer {from}"); - handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); - } - Some(res) = handle_stream_futures.next() => { - match res { - Ok(Ok(())) => {} - Ok(Err(e)) => { - warn!("error handling incoming stream: {e:?}"); - } - Err(e) => { - warn!("task handling incoming stream panicked: {e:?}"); + loop { + tokio::select! { + _ = cancellation_token.cancelled() => { + debug!("cancellation token triggered, shutting down incoming streams handler for protocol {protocol}"); + } + Some((from, stream)) = incoming.next() => { + debug!("new incoming stream on protocol {protocol} from peer {from}"); + handle_stream_futures.push(tokio::spawn(handle_incoming_stream(from, stream, tx.clone()))); + } + Some(res) = handle_stream_futures.next() => { + match res { + Ok(Ok(())) => {} + Ok(Err(e)) => { + warn!("error handling incoming stream: {e:?}"); + } + Err(e) => { + warn!("task handling incoming stream panicked: {e:?}"); + } } } } @@ -440,17 +442,18 @@ async fn handle_incoming_stream( let mut reader = FramedRead::new(stream.compat(), codec); loop { - match reader.next().await { - Some(Ok(str)) => { - let payload = M::from_str(&str) - .wrap_err("failed to decode stream message into FlashblocksPayloadV1")?; - debug!("got message from peer {peer_id}: {payload:?}"); - let _ = payload_tx.send(payload).await; - } - Some(Err(e)) => { - return Err(e).wrap_err(format!("failed to read from stream of peer {peer_id}")); + while let Some(res) = reader.next().await { + match res { + Ok(str) => { + let payload = M::from_str(&str).wrap_err("failed to decode stream message")?; + debug!("got message from peer {peer_id}: {payload:?}"); + let _ = payload_tx.send(payload).await; + } + Err(e) => { + return Err(e) + .wrap_err(format!("failed to read from stream of peer {peer_id}")); + } } - None => {} } } } From 696030a4e80ea1d17b98390ec2b17eb5282be9fa Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:27:07 -0400 Subject: [PATCH 18/32] fix copilot issues --- crates/p2p/src/lib.rs | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 98ad8a4c..1e08fa84 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -301,7 +301,7 @@ impl NodeBuilder { Some(hex) => { let mut bytes = hex::decode(hex).wrap_err("failed to decode hex string")?; let keypair = ed25519::Keypair::try_from_bytes(&mut bytes) - .wrap_err("failed to create keypair from bytes: {e}")?; + .wrap_err("failed to create keypair from bytes")?; Some(keypair.into()) } None => None, @@ -441,21 +441,20 @@ async fn handle_incoming_stream( let codec = LinesCodec::new(); let mut reader = FramedRead::new(stream.compat(), codec); - loop { - while let Some(res) = reader.next().await { - match res { - Ok(str) => { - let payload = M::from_str(&str).wrap_err("failed to decode stream message")?; - debug!("got message from peer {peer_id}: {payload:?}"); - let _ = payload_tx.send(payload).await; - } - Err(e) => { - return Err(e) - .wrap_err(format!("failed to read from stream of peer {peer_id}")); - } + while let Some(res) = reader.next().await { + match res { + Ok(str) => { + let payload = M::from_str(&str).wrap_err("failed to decode stream message")?; + debug!("got message from peer {peer_id}: {payload:?}"); + let _ = payload_tx.send(payload).await; + } + Err(e) => { + return Err(e).wrap_err(format!("failed to read from stream of peer {peer_id}")); } } } + + Ok(()) } fn create_transport( From 9fd75486cdd5ca27dd387fab0ba1301841f4fcd7 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:29:42 -0400 Subject: [PATCH 19/32] fix derive_more --- crates/p2p/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/p2p/Cargo.toml b/crates/p2p/Cargo.toml index 77e32df2..5f512c4a 100644 --- a/crates/p2p/Cargo.toml +++ b/crates/p2p/Cargo.toml @@ -13,7 +13,7 @@ libp2p = { version = "0.56", features = ["identify", "ping", "noise", "tcp", "au libp2p-stream = "0.4.0-alpha" multiaddr = "0.18" -derive_more = { workspace = true } +derive_more = { workspace = true, features = ["from"] } eyre = { workspace = true } futures = { workspace = true} futures-util = { workspace = true } From 3237890cd517fed676040dfa0fd5ea4d8283aaba Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:42:17 -0400 Subject: [PATCH 20/32] fix copilot issues --- crates/p2p/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 1e08fa84..47f43232 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -406,6 +406,7 @@ impl IncomingStreamsHandler { tokio::select! { _ = cancellation_token.cancelled() => { debug!("cancellation token triggered, shutting down incoming streams handler for protocol {protocol}"); + return; } Some((from, stream)) = incoming.next() => { debug!("new incoming stream on protocol {protocol} from peer {from}"); From 1badb92a0e44d3e6f3a17a45ea32f2061f130b0d Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 14 Oct 2025 18:48:38 -0400 Subject: [PATCH 21/32] regenerate Cargo.lock --- Cargo.lock | 2066 +++++++++++++++++++++++++++------------------------- 1 file changed, 1080 insertions(+), 986 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8cf1a99c..59341539 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -59,7 +50,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -97,9 +88,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy" -version = "1.0.25" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "992a9d0732a0e0e1a34d61a6553ad28f761c9049bb46572d3916f172348d2cb7" +checksum = "b17c19591d57add4f0c47922877a48aae1f47074e3433436545f8948353b3bbb" dependencies = [ "alloy-consensus", "alloy-contract", @@ -120,11 +111,11 @@ dependencies = [ [[package]] name = "alloy-chains" -version = "0.2.7" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a379c0d821498c996ceb9e7519fc2dab8286c35a203c1fb95f80ecd66e07cf2f" +checksum = "bf01dd83a1ca5e4807d0ca0223c9615e211ce5db0a9fd1443c2778cacf89b546" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "num_enum", "serde", @@ -133,12 +124,12 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf3c28aa7a5765042739f964e335408e434819b96fdda97f12eb1beb46dead0" +checksum = "6a0dd3ed764953a6b20458b2b7abbfdc93d20d14b38babe1a70fe631a443a9f1" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "alloy-trie", @@ -155,18 +146,18 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-consensus-any" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfda7b14f1664b6c23d7f38bca2b73c460f2497cf93dd1589753890cb0da158" +checksum = "9556182afa73cddffa91e64a5aa9508d5e8c912b3a15f26998d2388a824d2c7b" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "arbitrary", @@ -175,49 +166,49 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb079f711129dd32d6c3a0581013c927eb30d32e929d606cd8c0fe1022ec041" +checksum = "b19d7092c96defc3d132ee0d8969ca1b79ef512b5eda5c66e3065266b253adf2" dependencies = [ "alloy-consensus", "alloy-dyn-abi", - "alloy-json-abi 1.3.1", + "alloy-json-abi 1.4.1", "alloy-network", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "futures", "futures-util", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-core" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" +checksum = "5ca96214615ec8cf3fa2a54b32f486eb49100ca7fe7eb0b8c1137cd316e7250a" dependencies = [ "alloy-dyn-abi", - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-primitives 1.4.1", "alloy-rlp", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", ] [[package]] name = "alloy-dyn-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" +checksum = "3fdff496dd4e98a81f4861e66f7eaf5f2488971848bb42d9c892f871730245c8" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-type-parser 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-primitives 1.4.1", + "alloy-sol-type-parser 1.4.1", + "alloy-sol-types 1.4.1", "derive_more", "itoa", "serde", @@ -231,13 +222,13 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "crc", "rand 0.8.5", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -246,7 +237,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "rand 0.8.5", @@ -259,26 +250,26 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "k256", "rand 0.8.5", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-eips" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e57928382e5c7890ef90ded9f814d85a1c3db79ceb4a3c5079f1be4cadeeb4" +checksum = "305fa99b538ca7006b0c03cfed24ec6d82beda67aac857ef4714be24231d15e6" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "arbitrary", @@ -291,37 +282,40 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-evm" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e536feefca2ba96c75798ac75a31046e8adfcefecdb6653803361045cc65b9" +checksum = "06a5f67ee74999aa4fe576a83be1996bdf74a30fce3d248bf2007d6fc7dae8aa" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-op-hardforks", + "alloy-primitives 1.4.1", + "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "auto_impl", "derive_more", "op-alloy-consensus", + "op-alloy-rpc-types-engine", "op-revm", "revm", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-genesis" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3419410cdd67fb7d5d016d9d16cf3ea8cc365fcbcf15d086afdd02eaef17e4" +checksum = "a272533715aefc900f89d51db00c96e6fd4f517ea081a12fea482a352c8c815c" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-serde", "alloy-trie", "serde", @@ -336,7 +330,7 @@ checksum = "889eb3949b58368a09d4f16931c660275ef5fb08e5fbd4a96573b19c7085c41f" dependencies = [ "alloy-chains", "alloy-eip2124", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "dyn-clone", "serde", @@ -344,93 +338,93 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6beff64ad0aa6ad1019a3db26fef565aefeb011736150ab73ed3366c3cfd1b" +checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" dependencies = [ - "alloy-primitives 0.8.25", - "alloy-sol-type-parser 0.8.25", + "alloy-primitives 0.8.26", + "alloy-sol-type-parser 0.8.26", "serde", "serde_json", ] [[package]] name = "alloy-json-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-type-parser 1.3.1", + "alloy-primitives 1.4.1", + "alloy-sol-type-parser 1.4.1", "serde", "serde_json", ] [[package]] name = "alloy-json-rpc" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17248e392e79658b1faca7946bfe59825b891c3f6e382044499d99c57ba36a89" +checksum = "d91676d242c0ced99c0dd6d0096d7337babe9457cc43407d26aa6367fcf90553" dependencies = [ - "alloy-primitives 1.3.1", - "alloy-sol-types 1.3.1", + "alloy-primitives 1.4.1", + "alloy-sol-types 1.4.1", "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe43d21867dc0dcf71aacffc891ae75fd587154f0d907ceb7340fc5f0271276d" +checksum = "77f82150116b30ba92f588b87f08fa97a46a1bd5ffc0d0597efdf0843d36bfda" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-any", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "async-trait", "auto_impl", "derive_more", "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-network-primitives" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67f3b37447082a47289f26e26c0686ac6407710fdd4e818043d9b6d37f2ab55c" +checksum = "223612259a080160ce839a4e5df0125ca403a1d5e7206cc911cea54af5d769aa" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-serde", "serde", ] [[package]] name = "alloy-op-evm" -version = "0.21.1" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f09c7785a3f2df462e4bb898e8b682b43de488d9d44bf2e5264e0bba44af21" +checksum = "17aaeb600740c181bf29c9f138f9b228d115ea74fa6d0f0343e1952f1a766968" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", "alloy-op-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "op-alloy-consensus", "op-revm", @@ -445,24 +439,24 @@ checksum = "599c1d7dfbccb66603cb93fde00980d12848d32fe5e814f50562104a92df6487" dependencies = [ "alloy-chains", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", ] [[package]] name = "alloy-primitives" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c77490fe91a0ce933a1f219029521f20fc28c2c0ca95d53fa4da9c00b8d9d4e" +checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more", - "foldhash", + "foldhash 0.1.5", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.4", "itoa", "k256", "keccak-asm", @@ -478,9 +472,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", "arbitrary", @@ -488,16 +482,16 @@ dependencies = [ "cfg-if", "const-hex", "derive_more", - "foldhash", - "getrandom 0.3.3", - "hashbrown 0.15.5", - "indexmap 2.10.0", + "foldhash 0.2.0", + "getrandom 0.3.4", + "hashbrown 0.16.0", + "indexmap 2.11.4", "itoa", "k256", "keccak-asm", "paste", "proptest", - "proptest-derive", + "proptest-derive 0.6.0", "rand 0.9.2", "ruint", "rustc-hash 2.1.1", @@ -508,9 +502,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6377212f3e659173b939e8d3ec3292e246cb532eafd5a4f91e57fdb104b43c" +checksum = "f7283b81b6f136100b152e699171bc7ed8184a58802accbc91a7df4ebb944445" dependencies = [ "alloy-chains", "alloy-consensus", @@ -518,14 +512,14 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-rpc-types-txpool", "alloy-signer", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "alloy-transport-http", "alloy-transport-ipc", @@ -543,7 +537,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", "url", @@ -552,12 +546,12 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27b4f1ac3a0388065f933f957f80e03d06c47ce6a4389ac8cb9f72c30d8d823" +checksum = "eee7e3d343814ec0dfea69bd1820042a133a9d0b9ac5faf1e6eb133b43366315" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-transport", "auto_impl", "bimap", @@ -596,12 +590,12 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b80c8cafc1735ce6776bccc25f0c3b7583074897b8ec4f3a129e4d25e09d65c" +checksum = "1154b12d470bef59951c62676e106f4ce5de73b987d86b9faa935acebb138ded" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-pubsub", "alloy-transport", "alloy-transport-http", @@ -622,11 +616,11 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bc0818982bb868acc877f2623ad1fc8f2a4b244074919212bfe476fcadca6d3" +checksum = "47ab76bf97648a1c6ad8fb00f0d594618942b5a9e008afbfb5c8a8fca800d574" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -635,23 +629,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-admin" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9359aabfc2ae906ea9f904c6cf6a63d12fc6510e655a64c38aa601a739602e84" +checksum = "af8ae38824376e855d73d4060462d86c32afe548af632597ccfd161bdd0fc628" dependencies = [ "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "serde", "serde_json", ] [[package]] name = "alloy-rpc-types-anvil" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410403528db87ab4618e7f517b0f54e493c8a17bb61102cbccbb7a35e8719b5b" +checksum = "456cfc2c1677260edbd7ce3eddb7de419cb46de0e9826c43401f42b0286a779a" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -659,9 +653,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8448a1eb2c81115fc8d9d50da24156c9ce8fca78a19a997184dcd81f99c229" +checksum = "23cc57ee0c1ac9fb14854195fc249494da7416591dc4a4d981ddfd5dd93b9bce" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", @@ -670,30 +664,31 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c20f653a4c1ab8289470e8eed55fe4f11354865b730685bb70b69a375524b27" +checksum = "cfa4edd92c3124ec19b9d572dc7923d070fe5c2efb677519214affd6156a4463" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", + "derive_more", "ethereum_ssz", "ethereum_ssz_derive", "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tree_hash", "tree_hash_derive", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb22d465e02c015648138bc0d46951d267827551fc85922b60f58caa6a0e9c9" +checksum = "4a0ac29dd005c33e3f7e09087accc80843315303685c3f7a1b888002cd27785b" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "serde", "serde_with", @@ -701,13 +696,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b968beee2ada53ef150fd90fbd2b7a3e5bcb66650e4d01757ff769c8af3d5ee" +checksum = "1d9d173854879bcf26c7d71c1c3911972a3314df526f4349ffe488e676af577d" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", "derive_more", @@ -721,35 +716,35 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7c1bc07b6c9222c4ad822da3cea0fbbfcbe2876cf5d4780e147a0da6fe2862" +checksum = "6d7d47bca1a2a1541e4404aa38b7e262bb4dffd9ac23b4f178729a4ddc5a5caa" dependencies = [ "alloy-consensus", "alloy-consensus-any", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-serde", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "arbitrary", "itertools 0.14.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-rpc-types-mev" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad56da776d84940f075f6cdb27c95c17f5d8947ed89947d61b686247ec4e2200" +checksum = "d3820683ece7cdc31e44d87c88c0ff9b972a1a2fd1f2124cc72ce5c928e64f0d" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -758,25 +753,25 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e54b3f616d9f30e11bc73e685f71da6f1682da5a3c2ca5206ec47f1d3bc96c7" +checksum = "c331c8e48665607682e8a9549a2347c13674d4fbcbdc342e7032834eba2424f4" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-rpc-types-txpool" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15fc6b7b9465393a5b3fd38aba979f44438f172d9d0e6de732243c17d4246060" +checksum = "5e2f66afe1e76ca4485e593980056f061b2bdae2055486a062fca050ff111a52" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -784,11 +779,11 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8603b89af4ba0acb94465319e506b8c0b40a5daf563046bedd58d26c98dbd62c" +checksum = "6a8468f1a7f9ee3bae73c24eead0239abea720dbf7779384b9c7e20d51bfb6b0" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "serde", "serde_json", @@ -796,43 +791,43 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddbea0531837cc7784ae6669b4a66918e6fb34c2daa2a7a888549dd565151c" +checksum = "33387c90b0a5021f45a5a77c2ce6c49b8f6980e66a318181468fb24cea771670" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "async-trait", "auto_impl", "either", "elliptic-curve", "k256", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-signer-local" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3497f79c8a818f736d8de1c157a1ec66c0ce1da3fbb2f54c005097798282e59b" +checksum = "b55d9e795c85e36dcea08786d2e7ae9b73cb554b6bea6ac4c212def24e1b4d03" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-signer", "async-trait", "k256", "rand 0.8.5", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-sol-macro" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" +checksum = "e68b32b6fa0d09bb74b4cefe35ccc8269d711c26629bc7cd98a47eeb12fe353f" dependencies = [ - "alloy-sol-macro-expander 0.8.25", - "alloy-sol-macro-input 0.8.25", + "alloy-sol-macro-expander 0.8.26", + "alloy-sol-macro-input 0.8.26", "proc-macro-error2", "proc-macro2", "quote", @@ -841,12 +836,12 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" dependencies = [ - "alloy-sol-macro-expander 1.3.1", - "alloy-sol-macro-input 1.3.1", + "alloy-sol-macro-expander 1.4.1", + "alloy-sol-macro-input 1.4.1", "proc-macro-error2", "proc-macro2", "quote", @@ -855,46 +850,46 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" +checksum = "2afe6879ac373e58fd53581636f2cce843998ae0b058ebe1e4f649195e2bd23c" dependencies = [ - "alloy-sol-macro-input 0.8.25", + "alloy-sol-macro-input 0.8.26", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.4", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 0.8.25", + "syn-solidity 0.8.26", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-sol-macro-input 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-sol-macro-input 1.4.1", "const-hex", "heck", - "indexmap 2.10.0", + "indexmap 2.11.4", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 1.3.1", + "syn-solidity 1.4.1", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" +checksum = "c3ba01aee235a8c699d07e5be97ba215607564e71be72f433665329bec307d28" dependencies = [ "const-hex", "dunce", @@ -903,16 +898,16 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.106", - "syn-solidity 0.8.25", + "syn-solidity 0.8.26", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ - "alloy-json-abi 1.3.1", + "alloy-json-abi 1.4.1", "const-hex", "dunce", "heck", @@ -921,14 +916,14 @@ dependencies = [ "quote", "serde_json", "syn 2.0.106", - "syn-solidity 1.3.1", + "syn-solidity 1.4.1", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" +checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" dependencies = [ "serde", "winnow", @@ -936,9 +931,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" dependencies = [ "serde", "winnow", @@ -946,37 +941,37 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43d5e60466a440230c07761aa67671d4719d46f43be8ea6e7ed334d8db4a9ab" +checksum = "6e960c4b52508ef2ae1e37cae5058e905e9ae099b107900067a503f8c454036f" dependencies = [ - "alloy-json-abi 0.8.25", - "alloy-primitives 0.8.25", - "alloy-sol-macro 0.8.25", + "alloy-json-abi 0.8.26", + "alloy-primitives 0.8.26", + "alloy-sol-macro 0.8.26", "const-hex", "serde", ] [[package]] name = "alloy-sol-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" dependencies = [ - "alloy-json-abi 1.3.1", - "alloy-primitives 1.3.1", - "alloy-sol-macro 1.3.1", + "alloy-json-abi 1.4.1", + "alloy-primitives 1.4.1", + "alloy-sol-macro 1.4.1", "serde", ] [[package]] name = "alloy-transport" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d259738315db0a2460581e22a1ca73ff02ef44687b43c0dad0834999090b3e7e" +checksum = "702002659778d89a94cd4ff2044f6b505460df6c162e2f47d1857573845b0ace" dependencies = [ "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "base64 0.22.1", "derive_more", @@ -985,7 +980,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "tracing", @@ -995,9 +990,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6332f6d470e465bf00f9306743ff172f54b83e7e31edfe28f1444c085ccb0e4" +checksum = "0d6bdc0830e5e8f08a4c70a4c791d400a86679c694a3b4b986caf26fad680438" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -1010,9 +1005,9 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865c13b9ce32b1a5227ac0f796faa9c08416aa4ea4e22b3a61a21ef110bda5ad" +checksum = "87ce41d99a32346f354725fe62eadd271cdbae45fe6b3cc40cb054e0bf763112" dependencies = [ "alloy-json-rpc", "alloy-pubsub", @@ -1030,9 +1025,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da655a5099cc037cad636425cec389320a694b6ec0302472a74f71b3637d842d" +checksum = "686219dcef201655763bd3d4eabe42388d9368bfbf6f1c8016d14e739ec53aac" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -1052,7 +1047,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "arrayvec", @@ -1060,7 +1055,7 @@ dependencies = [ "derive_more", "nybbles", "proptest", - "proptest-derive", + "proptest-derive 0.5.1", "serde", "smallvec", "tracing", @@ -1068,23 +1063,17 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.35" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2765badc6f621e1fc26aa70c520315866f0db6b8bd6bf3c560920d4fb33b08de" +checksum = "7bf39928a5e70c9755d6811a2928131b53ba785ad37c8bf85c90175b5d43b818" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -1096,9 +1085,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -1111,9 +1100,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -1146,9 +1135,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "aquamarine" @@ -1506,7 +1495,7 @@ dependencies = [ "nom", "num-traits", "rusticata-macros", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] @@ -1564,18 +1553,15 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.27" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" +checksum = "5a89bce6054c720275ac2432fbba080a66a2106a44a1b804553930ca6909f4e0" dependencies = [ - "brotli", - "flate2", + "compression-codecs", + "compression-core", "futures-core", - "memchr", "pin-project-lite", "tokio", - "zstd", - "zstd-safe", ] [[package]] @@ -1591,7 +1577,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.0.8", + "rustix 1.1.2", "slab", "windows-sys 0.61.2", ] @@ -1761,11 +1747,11 @@ dependencies = [ [[package]] name = "axum" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" dependencies = [ - "axum-core 0.5.2", + "axum-core 0.5.5", "bytes", "form_urlencoded", "futures-util", @@ -1780,8 +1766,7 @@ dependencies = [ "mime", "percent-encoding", "pin-project-lite", - "rustversion", - "serde", + "serde_core", "serde_json", "serde_path_to_error", "serde_urlencoded", @@ -1815,9 +1800,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" dependencies = [ "bytes", "futures-core", @@ -1826,7 +1811,6 @@ dependencies = [ "http-body-util", "mime", "pin-project-lite", - "rustversion", "sync_wrapper", "tower-layer", "tower-service", @@ -1849,21 +1833,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base-x" version = "0.2.11" @@ -1876,6 +1845,16 @@ 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" @@ -1924,7 +1903,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", @@ -1947,7 +1926,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1959,6 +1938,24 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.9.4", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.106", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -1998,18 +1995,18 @@ checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" [[package]] name = "bitfield" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db1bcd90f88eabbf0cadbfb87a45bceeaebcd3b4bc9e43da379cd2ef0162590d" +checksum = "6bf79f42d21f18b5926a959280215903e659760da994835d27c3a0c5ff4f898f" dependencies = [ "bitfield-macros", ] [[package]] name = "bitfield-macros" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3787a07661997bfc05dd3431e379c0188573f78857080cf682e1393ab8e4d64c" +checksum = "6115af052c7914c0cbb97195e5c72cb61c511527250074f5c041d1048b0d8b16" dependencies = [ "proc-macro2", "quote", @@ -2024,9 +2021,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" dependencies = [ "serde", ] @@ -2082,9 +2079,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -2098,11 +2095,11 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c340fe0f0b267787095cbe35240c6786ff19da63ec7b69367ba338eace8169b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_interner", "boa_macros", "boa_string", - "indexmap 2.10.0", + "indexmap 2.11.4", "num-bigint", "rustc-hash 2.1.1", ] @@ -2114,7 +2111,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f620c3f06f51e65c0504ddf04978be1b814ac6586f0b45f6019801ab5efd37f9" dependencies = [ "arrayvec", - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_ast", "boa_gc", "boa_interner", @@ -2128,7 +2125,7 @@ dependencies = [ "fast-float2", "hashbrown 0.15.5", "icu_normalizer 1.5.0", - "indexmap 2.10.0", + "indexmap 2.11.4", "intrusive-collections", "itertools 0.13.0", "num-bigint", @@ -2148,7 +2145,7 @@ dependencies = [ "static_assertions", "tap", "thin-vec", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] @@ -2174,7 +2171,7 @@ dependencies = [ "boa_gc", "boa_macros", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.4", "once_cell", "phf", "rustc-hash 2.1.1", @@ -2199,7 +2196,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cc142dac798cdc6e2dbccfddeb50f36d2523bb977a976e19bdb3ae19b740804" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "boa_ast", "boa_interner", "boa_macros", @@ -2262,7 +2259,7 @@ dependencies = [ "serde_json", "serde_repr", "serde_urlencoded", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tower-service", @@ -2340,18 +2337,18 @@ checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" dependencies = [ "proc-macro2", "quote", @@ -2375,9 +2372,9 @@ dependencies = [ [[package]] name = "c-kzg" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137a2a2878ed823ef1bd73e5441e245602aae5360022113b8ad259ca4b5b8727" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ "arbitrary", "blst", @@ -2391,11 +2388,11 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.11" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -2415,7 +2412,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", ] @@ -2428,10 +2425,10 @@ checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", - "semver 1.0.26", + "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2457,7 +2454,7 @@ checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" dependencies = [ "clap", "heck", - "indexmap 2.10.0", + "indexmap 2.11.4", "log", "proc-macro2", "quote", @@ -2541,17 +2538,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] @@ -2578,9 +2574,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "f4512b90fa68d3a9932cea5184017c5d200f5921df706d45e853537dea51508f" dependencies = [ "clap_builder", "clap_derive", @@ -2588,9 +2584,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "0025e98baa12e766c67ba13ff4695a887a1eba19569aad00a472546795bd6730" dependencies = [ "anstream", "anstyle", @@ -2600,9 +2596,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.45" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", @@ -2612,9 +2608,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "cmake" @@ -2631,7 +2627,7 @@ version = "0.3.0" source = "git+https://github.com/automata-network/coco-provider-sdk#3a832b8cf5e88ef71649ab56e4efd67067b26b7c" dependencies = [ "bincode", - "bitfield 0.19.1", + "bitfield 0.19.3", "cbindgen", "iocuddle", "libc", @@ -2662,11 +2658,11 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.4" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" dependencies = [ - "crossterm", + "crossterm 0.29.0", "unicode-segmentation", "unicode-width 0.2.0", ] @@ -2685,6 +2681,26 @@ dependencies = [ "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" @@ -2705,15 +2721,14 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", - "hex", "proptest", - "serde", + "serde_core", ] [[package]] @@ -2722,11 +2737,17 @@ 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.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -2865,7 +2886,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "crossterm_winapi", "mio", "parking_lot", @@ -2875,6 +2896,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.4", + "crossterm_winapi", + "document-features", + "parking_lot", + "rustix 1.1.2", + "winapi", +] + [[package]] name = "crossterm_winapi" version = "0.9.1" @@ -3094,7 +3129,7 @@ name = "dcap-rs" version = "0.1.0" source = "git+https://github.com/automata-network/dcap-rs.git?rev=d847b8f75a493640c4881bdf67775250b6baefab#d847b8f75a493640c4881bdf67775250b6baefab" dependencies = [ - "alloy-sol-types 0.8.25", + "alloy-sol-types 0.8.26", "chrono", "hex", "p256", @@ -3164,12 +3199,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -3313,7 +3348,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3388,6 +3423,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -3604,12 +3648,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3660,7 +3704,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dc1355dbb41fbbd34ec28d4fb2a57d9a70c67ac3c19f6a5ca4d4a176b9e997a" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "hex", "serde", "serde_derive", @@ -3669,11 +3713,11 @@ dependencies = [ [[package]] name = "ethereum_ssz" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca8ba45b63c389c6e115b095ca16381534fdcc03cf58176a3f8554db2dbe19b" +checksum = "0dcddb2554d19cde19b099fadddde576929d7a4d0c1cd3512d1fd95cf174375c" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "ethereum_serde_utils", "itertools 0.13.0", "serde", @@ -3684,9 +3728,9 @@ dependencies = [ [[package]] name = "ethereum_ssz_derive" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd55d08012b4e0dfcc92b8d6081234df65f2986ad34cc76eeed69c5e2ce7506" +checksum = "a657b6b3b7e153637dc6bdc6566ad9279d9ee11a15b12cfb24a2e04360637e9f" dependencies = [ "darling 0.20.11", "proc-macro2", @@ -3787,14 +3831,14 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3811,9 +3855,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" dependencies = [ "crc32fast", "miniz_oxide", @@ -3831,6 +3875,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.3.2" @@ -3848,9 +3898,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -4013,25 +4063,11 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "generator" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" -dependencies = [ - "cc", - "cfg-if", - "libc", - "log", - "rustversion", - "windows 0.61.3", -] - [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "serde", "typenum", @@ -4048,21 +4084,21 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] @@ -4076,19 +4112,13 @@ dependencies = [ "polyval", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "git2" version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "libc", "libgit2-sys", "log", @@ -4149,12 +4179,12 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.5" +version = "1.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66d61197a68f6323b9afa616cf83d55d69191e1bf364d4eb7d35ae18defe776" +checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4180,7 +4210,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.10.0", + "indexmap 2.11.4", "slab", "tokio", "tokio-util", @@ -4222,7 +4252,17 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "foldhash 0.2.0", "serde", ] @@ -4262,9 +4302,6 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" @@ -4295,7 +4332,7 @@ dependencies = [ "ring", "serde", "socket2 0.5.10", - "thiserror 2.0.16", + "thiserror 2.0.17", "tinyvec", "tokio", "tracing", @@ -4319,7 +4356,7 @@ dependencies = [ "resolv-conf", "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -4417,9 +4454,9 @@ checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e" [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "humantime-serde" @@ -4485,7 +4522,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.2", + "webpki-roots 1.0.3", ] [[package]] @@ -4519,9 +4556,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64 0.22.1", "bytes", @@ -4535,7 +4572,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.1", "system-configuration", "tokio", "tower-service", @@ -4560,9 +4597,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4570,7 +4607,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.62.2", ] [[package]] @@ -4794,9 +4831,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -4935,14 +4972,15 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", "serde", + "serde_core", ] [[package]] @@ -4957,7 +4995,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -5018,17 +5056,6 @@ dependencies = [ "memoffset", ] -[[package]] -name = "io-uring" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" -dependencies = [ - "bitflags 2.9.2", - "cfg-if", - "libc", -] - [[package]] name = "iocuddle" version = "0.1.1" @@ -5135,19 +5162,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" dependencies = [ "once_cell", "wasm-bindgen", @@ -5202,7 +5229,7 @@ dependencies = [ "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-rustls", "tokio-util", @@ -5228,7 +5255,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "tracing", @@ -5254,7 +5281,7 @@ dependencies = [ "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tower 0.5.2", @@ -5278,7 +5305,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "url", @@ -5301,7 +5328,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower 0.5.2", "url", @@ -5350,7 +5377,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -5377,7 +5404,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -5393,7 +5420,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -5405,7 +5432,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -5517,9 +5544,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libgit2-sys" @@ -5535,12 +5562,12 @@ dependencies = [ [[package]] name = "libloading" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" dependencies = [ "cfg-if", - "windows-targets 0.53.3", + "windows-link 0.2.1", ] [[package]] @@ -5580,7 +5607,7 @@ dependencies = [ "multiaddr", "pin-project", "rw-stream-sink", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -5614,7 +5641,7 @@ dependencies = [ "quick-protobuf-codec", "rand 0.8.5", "rand_core 0.6.4", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "web-time", ] @@ -5649,7 +5676,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "rw-stream-sink", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "unsigned-varint 0.8.0", "web-time", @@ -5688,7 +5715,7 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -5707,7 +5734,7 @@ dependencies = [ "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "zeroize", ] @@ -5765,7 +5792,7 @@ dependencies = [ "rand 0.8.5", "snow", "static_assertions", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "x25519-dalek", "zeroize", @@ -5804,7 +5831,7 @@ dependencies = [ "ring", "rustls", "socket2 0.5.10", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -5905,7 +5932,7 @@ dependencies = [ "ring", "rustls", "rustls-webpki", - "thiserror 2.0.16", + "thiserror 2.0.17", "x509-parser 0.17.0", "yasna", ] @@ -5934,7 +5961,7 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "yamux 0.12.1", "yamux 0.13.7", @@ -5942,24 +5969,24 @@ dependencies = [ [[package]] name = "libproc" -version = "0.14.10" +version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" +checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" dependencies = [ - "bindgen 0.70.1", + "bindgen 0.72.1", "errno", "libc", ] [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", ] [[package]] @@ -6044,9 +6071,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -6060,35 +6087,27 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "litrs" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" + [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", "serde", ] [[package]] name = "log" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[package]] -name = "loom" -version = "0.7.2" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber 0.3.20", -] +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "lru" @@ -6141,9 +6160,9 @@ checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a" [[package]] name = "mach2" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +checksum = "6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea" dependencies = [ "libc", ] @@ -6169,6 +6188,17 @@ dependencies = [ "syn 2.0.106", ] +[[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" @@ -6202,15 +6232,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memmap2" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -6257,7 +6287,7 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.4", "ipnet", "metrics", "metrics-util 0.19.1", @@ -6278,30 +6308,30 @@ dependencies = [ "hyper", "hyper-rustls", "hyper-util", - "indexmap 2.10.0", + "indexmap 2.11.4", "ipnet", "metrics", "metrics-util 0.20.0", "quanta", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] [[package]] name = "metrics-process" -version = "2.4.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a82c8add4382f29a122fa64fff1891453ed0f6b2867d971e7d60cb8dfa322ff" +checksum = "f615e08e049bd14a44c4425415782efb9bcd479fc1e19ddeb971509074c060d0" dependencies = [ "libc", "libproc", "mach2", "metrics", "once_cell", - "procfs", + "procfs 0.18.0", "rlimit", - "windows 0.58.0", + "windows 0.62.2", ] [[package]] @@ -6314,7 +6344,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.15.5", - "indexmap 2.10.0", + "indexmap 2.11.4", "metrics", "ordered-float", "quanta", @@ -6384,6 +6414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -6394,7 +6425,7 @@ checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.59.0", ] @@ -6421,23 +6452,22 @@ dependencies = [ [[package]] name = "moka" -version = "0.12.10" +version = "0.12.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" dependencies = [ "async-lock", "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", + "equivalent", "event-listener", "futures-util", - "loom", "parking_lot", "portable-atomic", "rustc_version 0.4.1", "smallvec", "tagptr", - "thiserror 1.0.69", "uuid", ] @@ -6468,11 +6498,12 @@ dependencies = [ [[package]] name = "multibase" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" dependencies = [ "base-x", + "base256emoji", "data-encoding", "data-encoding-macro", ] @@ -6575,7 +6606,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6633,7 +6664,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "fsevent-sys", "inotify", "kqueue", @@ -6662,11 +6693,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -6804,9 +6835,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", "arbitrary", @@ -6819,32 +6850,23 @@ dependencies = [ [[package]] name = "objc2-core-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] name = "objc2-io-kit" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ "libc", "objc2-core-foundation", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "oid" version = "0.2.1" @@ -6897,7 +6919,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -6905,7 +6927,7 @@ dependencies = [ "derive_more", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6922,7 +6944,7 @@ checksum = "f80108e3b36901200a4c5df1db1ee9ef6ce685b59ea79d7be1713c845e3765da" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types-eth", "alloy-signer", @@ -6936,7 +6958,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8eb878fc5ea95adb5abe55fb97475b3eb0dcc77dfcd6f61bd626a68ae0bdba1" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "jsonrpsee 0.26.0", ] @@ -6949,14 +6971,14 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-serde", "derive_more", "op-alloy-consensus", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6967,7 +6989,7 @@ checksum = "14e50c94013a1d036a529df259151991dbbd6cf8dc215e3b68b784f95eec60e6" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "alloy-serde", @@ -6977,7 +6999,7 @@ dependencies = [ "op-alloy-consensus", "serde", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6991,7 +7013,7 @@ dependencies = [ "alloy-json-rpc", "alloy-network", "alloy-op-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-client", "alloy-rpc-types-beacon", @@ -6999,7 +7021,7 @@ dependencies = [ "alloy-rpc-types-eth", "alloy-serde", "alloy-signer-local", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "alloy-transport-http", "anyhow", @@ -7115,9 +7137,9 @@ dependencies = [ [[package]] name = "op-revm" -version = "10.1.0" +version = "10.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ba4f4693811e73449193c8bd656d3978f265871916882e6a51a487e4f96217" +checksum = "826f43a5b1613c224f561847c152bfbaefcb593a9ae2c612ff4dc4661c6e625f" dependencies = [ "auto_impl", "revm", @@ -7136,7 +7158,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -7184,7 +7206,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7198,7 +7220,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7246,7 +7268,7 @@ dependencies = [ "prost", "reqwest", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tonic", "tracing", @@ -7266,7 +7288,7 @@ dependencies = [ "opentelemetry_sdk 0.29.0", "prost", "reqwest", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7318,7 +7340,7 @@ dependencies = [ "percent-encoding", "rand 0.8.5", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -7338,7 +7360,7 @@ dependencies = [ "percent-encoding", "rand 0.9.2", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -7436,9 +7458,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -7446,15 +7468,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -7490,12 +7512,12 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pem" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ "base64 0.22.1", - "serde", + "serde_core", ] [[package]] @@ -7509,18 +7531,17 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror 2.0.16", "ucd-trie", ] @@ -7679,7 +7700,7 @@ dependencies = [ "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.0.8", + "rustix 1.1.2", "windows-sys 0.61.2", ] @@ -7720,9 +7741,9 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec 0.11.4", ] @@ -7784,11 +7805,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit", + "toml_edit 0.23.7", ] [[package]] @@ -7828,25 +7849,46 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "chrono", "flate2", "hex", - "procfs-core", + "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.9.4", + "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.9.2", + "bitflags 2.9.4", "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.9.4", + "hex", +] + [[package]] name = "prometheus-client" version = "0.23.1" @@ -7872,13 +7914,13 @@ dependencies = [ [[package]] name = "proptest" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.2", + "bitflags 2.9.4", "lazy_static", "num-traits", "rand 0.9.2", @@ -7911,6 +7953,17 @@ dependencies = [ "syn 2.0.106", ] +[[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.106", +] + [[package]] name = "prost" version = "0.13.5" @@ -7940,7 +7993,7 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "memchr", "unicase", ] @@ -7955,7 +8008,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] @@ -7990,9 +8043,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -8002,8 +8055,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls", - "socket2 0.5.10", - "thiserror 2.0.16", + "socket2 0.6.1", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -8011,12 +8064,12 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "getrandom 0.3.3", + "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring", @@ -8024,7 +8077,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.16", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -8032,23 +8085,23 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.1", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] @@ -8133,7 +8186,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "serde", ] @@ -8161,10 +8214,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "cassowary", "compact_str", - "crossterm", + "crossterm 0.28.1", "indoc", "instability", "itertools 0.13.0", @@ -8178,11 +8231,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.5.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -8235,11 +8288,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", ] [[package]] @@ -8261,23 +8314,23 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", @@ -8286,9 +8339,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -8298,9 +8351,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -8309,9 +8362,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "regress" @@ -8325,9 +8378,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64 0.22.1", "bytes", @@ -8369,14 +8422,14 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 1.0.2", + "webpki-roots 1.0.3", ] [[package]] name = "resolv-conf" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" +checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" [[package]] name = "reth" @@ -8431,7 +8484,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "futures-core", "futures-util", "metrics", @@ -8455,7 +8508,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-signer", "alloy-signer-local", "derive_more", @@ -8489,7 +8542,7 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-trie", "auto_impl", "derive_more", @@ -8521,12 +8574,12 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "backon", "clap", "comfy-table", - "crossterm", + "crossterm 0.28.1", "eyre", "fdlimit", "futures", @@ -8604,7 +8657,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "cfg-if", "eyre", "libc", @@ -8612,7 +8665,7 @@ dependencies = [ "reth-fs-util", "secp256k1 0.30.0", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tikv-jemallocator", ] @@ -8624,7 +8677,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-trie", "arbitrary", "bytes", @@ -8668,11 +8721,11 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -8695,7 +8748,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types-engine", "alloy-transport", @@ -8718,7 +8771,7 @@ name = "reth-db" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "eyre", "metrics", @@ -8736,7 +8789,7 @@ dependencies = [ "strum 0.27.2", "sysinfo 0.33.1", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -8746,7 +8799,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "bytes", "derive_more", @@ -8774,7 +8827,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "boyer-moore-magiclen", "eyre", "reth-chainspec", @@ -8793,7 +8846,7 @@ dependencies = [ "reth-trie-db", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -8803,7 +8856,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "bytes", "modular-bitfield", @@ -8817,7 +8870,7 @@ name = "reth-discv4" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "discv5", "enr", @@ -8832,7 +8885,7 @@ dependencies = [ "schnellru", "secp256k1 0.30.0", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -8843,7 +8896,7 @@ name = "reth-discv5" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "derive_more", "discv5", @@ -8857,7 +8910,7 @@ dependencies = [ "reth-metrics", "reth-network-peers", "secp256k1 0.30.0", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -8867,7 +8920,7 @@ name = "reth-dns-discovery" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "data-encoding", "enr", "hickory-resolver", @@ -8880,7 +8933,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -8893,7 +8946,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "futures", "futures-util", @@ -8914,7 +8967,7 @@ dependencies = [ "reth-tasks", "reth-testing-utils", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -8927,7 +8980,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "aes", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "block-padding", "byteorder", @@ -8944,7 +8997,7 @@ dependencies = [ "secp256k1 0.30.0", "sha2 0.10.9", "sha3", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -8958,7 +9011,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "eyre", "futures-util", @@ -8983,7 +9036,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "auto_impl", "futures", @@ -8997,7 +9050,7 @@ dependencies = [ "reth-primitives-traits", "reth-trie-common", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", ] @@ -9021,7 +9074,7 @@ dependencies = [ "reth-prune", "reth-stages-api", "reth-tasks", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9032,7 +9085,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "derive_more", @@ -9073,7 +9126,7 @@ dependencies = [ "revm-primitives", "schnellru", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -9113,13 +9166,13 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "ethereum_ssz", "ethereum_ssz_derive", "reth-ethereum-primitives", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9127,7 +9180,7 @@ name = "reth-era-downloader" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "bytes", "eyre", "futures-util", @@ -9143,7 +9196,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "eyre", "futures-util", "reth-db-api", @@ -9167,7 +9220,7 @@ dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9176,7 +9229,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-chains", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "bytes", "derive_more", @@ -9191,7 +9244,7 @@ dependencies = [ "reth-primitives-traits", "serde", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -9207,7 +9260,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "bytes", "derive_more", @@ -9216,7 +9269,7 @@ dependencies = [ "reth-ethereum-primitives", "reth-primitives-traits", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9248,7 +9301,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-chainspec", "reth-consensus", "reth-consensus-common", @@ -9263,7 +9316,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "reth-engine-primitives", @@ -9272,7 +9325,7 @@ dependencies = [ "reth-primitives-traits", "serde", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9282,7 +9335,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-eip2124", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "once_cell", "rustc-hash 2.1.1", @@ -9295,7 +9348,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-engine", "reth-basic-payload-builder", @@ -9324,7 +9377,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -9355,7 +9408,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "derive_more", "futures-util", @@ -9378,7 +9431,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "reth-chainspec", "reth-ethereum-forks", @@ -9396,11 +9449,11 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "nybbles", "reth-storage-errors", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9411,7 +9464,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "reth-ethereum-primitives", "reth-primitives-traits", @@ -9428,7 +9481,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "eyre", "futures", "itertools 0.14.0", @@ -9453,7 +9506,7 @@ dependencies = [ "reth-tasks", "reth-tracing", "rmp-serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tracing", @@ -9465,7 +9518,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-chain-state", "reth-execution-types", "reth-primitives-traits", @@ -9480,7 +9533,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -9489,7 +9542,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-debug", "eyre", @@ -9522,7 +9575,7 @@ dependencies = [ "jsonrpsee 0.26.0", "pin-project", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -9535,14 +9588,14 @@ name = "reth-libmdbx" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "byteorder", "dashmap 6.1.0", "derive_more", "parking_lot", "reth-mdbx-sys", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -9572,7 +9625,7 @@ name = "reth-net-banlist" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", ] [[package]] @@ -9584,7 +9637,7 @@ dependencies = [ "if-addrs 0.13.4", "reqwest", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -9596,7 +9649,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "aquamarine", "auto_impl", @@ -9637,7 +9690,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-util", @@ -9650,7 +9703,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-admin", "alloy-rpc-types-eth", "auto_impl", @@ -9664,7 +9717,7 @@ dependencies = [ "reth-network-types", "reth-tokio-util", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", ] @@ -9676,7 +9729,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "auto_impl", "derive_more", "futures", @@ -9697,12 +9750,12 @@ name = "reth-network-peers" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "enr", "secp256k1 0.30.0", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "url", ] @@ -9733,7 +9786,7 @@ dependencies = [ "memmap2", "reth-fs-util", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", "zstd", ] @@ -9769,7 +9822,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-provider", "alloy-rpc-types", "alloy-rpc-types-engine", @@ -9837,7 +9890,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "clap", "derive_more", @@ -9874,7 +9927,7 @@ dependencies = [ "serde", "shellexpand", "strum 0.27.2", - "thiserror 2.0.16", + "thiserror 2.0.17", "toml", "tracing", "url", @@ -9926,7 +9979,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "chrono", "futures-util", "reth-chain-state", @@ -9936,7 +9989,7 @@ dependencies = [ "reth-transaction-pool", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tungstenite", @@ -9951,7 +10004,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "derive_more", "futures", @@ -9980,7 +10033,7 @@ dependencies = [ "metrics-exporter-prometheus 0.16.2", "metrics-process", "metrics-util 0.19.1", - "procfs", + "procfs 0.17.0", "reth-metrics", "reth-tasks", "tikv-jemalloc-ctl", @@ -10011,7 +10064,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "derive_more", "miniz_oxide", "op-alloy-consensus", @@ -10026,7 +10079,7 @@ dependencies = [ "serde", "serde_json", "tar-no-std", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10036,7 +10089,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "clap", "derive_more", @@ -10084,7 +10137,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-trie", "reth-chainspec", "reth-consensus", @@ -10098,7 +10151,7 @@ dependencies = [ "reth-storage-errors", "reth-trie-common", "revm", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -10111,7 +10164,7 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-op-evm", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "op-alloy-consensus", "op-alloy-rpc-types-engine", "op-revm", @@ -10127,7 +10180,7 @@ dependencies = [ "reth-rpc-eth-api", "reth-storage-errors", "revm", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10137,7 +10190,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-serde", "brotli", @@ -10171,7 +10224,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-op-hardforks", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "once_cell", "reth-ethereum-forks", ] @@ -10182,7 +10235,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "clap", @@ -10229,7 +10282,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-debug", "alloy-rpc-types-engine", @@ -10257,7 +10310,7 @@ dependencies = [ "revm", "serde", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -10268,7 +10321,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "arbitrary", "bytes", @@ -10289,7 +10342,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-client", "alloy-rpc-types-debug", "alloy-rpc-types-engine", @@ -10336,7 +10389,7 @@ dependencies = [ "reth-transaction-pool", "revm", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tower 0.5.2", @@ -10361,7 +10414,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-client", "alloy-rpc-types-eth", "alloy-serde", @@ -10384,7 +10437,7 @@ dependencies = [ "reth-storage-api", "reth-transaction-pool", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -10395,7 +10448,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types", "futures-util", "metrics", @@ -10428,7 +10481,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "auto_impl", "either", @@ -10438,7 +10491,7 @@ dependencies = [ "reth-errors", "reth-primitives-traits", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", ] @@ -10448,7 +10501,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-transaction-pool", ] @@ -10484,7 +10537,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-trie", @@ -10506,7 +10559,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10516,7 +10569,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "dashmap 6.1.0", "eyre", @@ -10561,7 +10614,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "itertools 0.14.0", "metrics", "rayon", @@ -10577,7 +10630,7 @@ dependencies = [ "reth-static-file-types", "reth-tokio-util", "rustc-hash 2.1.1", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -10587,13 +10640,13 @@ name = "reth-prune-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "derive_more", "modular-bitfield", "reth-codecs", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10602,7 +10655,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "futures", "reth-eth-wire", @@ -10621,7 +10674,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "eyre", "futures", "parking_lot", @@ -10647,7 +10700,7 @@ name = "reth-revm" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-primitives-traits", "reth-storage-api", "reth-storage-errors", @@ -10666,7 +10719,7 @@ dependencies = [ "alloy-evm", "alloy-genesis", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-client", "alloy-rpc-types", @@ -10726,7 +10779,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tower 0.5.2", @@ -10742,7 +10795,7 @@ dependencies = [ "alloy-eips", "alloy-genesis", "alloy-json-rpc", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types", "alloy-rpc-types-admin", "alloy-rpc-types-anvil", @@ -10793,7 +10846,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-util", "tower 0.5.2", @@ -10809,7 +10862,7 @@ dependencies = [ "alloy-consensus", "alloy-json-rpc", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-signer", "auto_impl", @@ -10825,7 +10878,7 @@ dependencies = [ "reth-primitives-traits", "reth-storage-api", "revm-context", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -10834,7 +10887,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "async-trait", "jsonrpsee-core 0.26.0", @@ -10853,7 +10906,7 @@ dependencies = [ "reth-tasks", "reth-transaction-pool", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -10869,7 +10922,7 @@ dependencies = [ "alloy-evm", "alloy-json-rpc", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-rpc-types-mev", @@ -10911,10 +10964,10 @@ dependencies = [ "alloy-eips", "alloy-evm", "alloy-network", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-client", "alloy-rpc-types-eth", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "alloy-transport", "derive_more", "futures", @@ -10943,7 +10996,7 @@ dependencies = [ "revm-inspectors", "schnellru", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -10969,7 +11022,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "jsonrpsee-core 0.26.0", "jsonrpsee-types 0.26.0", @@ -10986,7 +11039,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "bincode", "eyre", "futures-util", @@ -11022,7 +11075,7 @@ dependencies = [ "reth-trie", "reth-trie-db", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -11033,7 +11086,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "aquamarine", "auto_impl", "futures-util", @@ -11049,7 +11102,7 @@ dependencies = [ "reth-static-file", "reth-static-file-types", "reth-tokio-util", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -11059,7 +11112,7 @@ name = "reth-stages-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "arbitrary", "bytes", "modular-bitfield", @@ -11073,7 +11126,7 @@ name = "reth-static-file" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "parking_lot", "rayon", "reth-codecs", @@ -11093,7 +11146,7 @@ name = "reth-static-file-types" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "clap", "derive_more", "serde", @@ -11107,7 +11160,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "auto_impl", "reth-chainspec", @@ -11129,14 +11182,14 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "derive_more", "reth-primitives-traits", "reth-prune-types", "reth-static-file-types", "revm-database-interface", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -11151,7 +11204,7 @@ dependencies = [ "pin-project", "rayon", "reth-metrics", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", "tracing-futures", @@ -11165,7 +11218,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "rand 0.8.5", "rand 0.9.2", "reth-ethereum-primitives", @@ -11219,11 +11272,11 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "aquamarine", "auto_impl", - "bitflags 2.9.2", + "bitflags 2.9.4", "futures-util", "metrics", "parking_lot", @@ -11247,7 +11300,7 @@ dependencies = [ "serde", "serde_json", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tracing", @@ -11260,7 +11313,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-trie", "auto_impl", @@ -11284,7 +11337,7 @@ version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ "alloy-consensus", - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-rpc-types-eth", "alloy-serde", @@ -11309,7 +11362,7 @@ name = "reth-trie-db" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "reth-db-api", "reth-execution-errors", "reth-primitives-traits", @@ -11322,7 +11375,7 @@ name = "reth-trie-parallel" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "derive_more", "itertools 0.14.0", @@ -11337,7 +11390,7 @@ dependencies = [ "reth-trie-common", "reth-trie-db", "reth-trie-sparse", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", ] @@ -11347,7 +11400,7 @@ name = "reth-trie-sparse" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-trie", "auto_impl", @@ -11366,7 +11419,7 @@ name = "reth-trie-sparse-parallel" version = "1.8.1" source = "git+https://github.com/paradigmxyz/reth?tag=v1.8.1#e6608be51ea34424b8e3693cf1f946a3eb224736" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rlp", "alloy-trie", "metrics", @@ -11521,10 +11574,10 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9b329afcc0f9fd5adfa2c6349a7435a8558e82bcae203142103a9a95e2a63b6" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types 1.3.1", + "alloy-sol-types 1.4.1", "anstyle", "boa_engine", "boa_gc", @@ -11532,7 +11585,7 @@ dependencies = [ "revm", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -11579,7 +11632,7 @@ version = "20.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa29d9da06fe03b249b6419b33968ecdf92ad6428e2f012dc57bcd619b5d94e" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "num_enum", "once_cell", "serde", @@ -11591,7 +11644,7 @@ version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f64fbacb86008394aaebd3454f9643b7d5a782bd251135e17c5b33da592d84d" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "revm-bytecode", "revm-primitives", "serde", @@ -11701,7 +11754,7 @@ name = "rollup-boost" version = "0.1.0" source = "git+http://github.com/flashbots/rollup-boost?rev=b86af43969557bee18f17ec1d6bcd3e984f910b2#b86af43969557bee18f17ec1d6bcd3e984f910b2" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "alloy-rpc-types-engine", "alloy-rpc-types-eth", "alloy-serde", @@ -11733,7 +11786,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "testcontainers 0.23.3", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-tungstenite", "tokio-util", @@ -11773,9 +11826,9 @@ dependencies = [ [[package]] name = "rug" -version = "1.27.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4207e8d668e5b8eb574bda8322088ccd0d7782d3d03c7e8d562e82ed82bdcbc3" +checksum = "58ad2e973fe3c3214251a840a621812a4f40468da814b1a3d6947d433c2af11f" dependencies = [ "az", "gmp-mpfr-sys", @@ -11785,14 +11838,15 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -11806,7 +11860,7 @@ dependencies = [ "rand 0.9.2", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -11817,12 +11871,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -11859,7 +11907,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.26", + "semver 1.0.27", ] [[package]] @@ -11877,7 +11925,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -11886,15 +11934,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.2", ] [[package]] @@ -11922,7 +11970,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.5.1", ] [[package]] @@ -11959,7 +12007,7 @@ dependencies = [ "rustls-native-certs", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework 3.3.0", + "security-framework 3.5.1", "security-framework-sys", "webpki-root-certs 0.26.11", "windows-sys 0.59.0", @@ -11991,9 +12039,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" dependencies = [ "fnv", "quick-error", @@ -12035,11 +12083,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -12077,12 +12125,6 @@ dependencies = [ "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" @@ -12151,7 +12193,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -12160,11 +12202,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -12173,9 +12215,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -12192,11 +12234,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -12222,9 +12265,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -12241,27 +12284,28 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.17" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde_core" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.226" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -12270,25 +12314,27 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.4", "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] @@ -12325,19 +12371,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.10.0", + "indexmap 2.11.4", "schemars 0.9.0", "schemars 1.0.4", - "serde", - "serde_derive", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -12345,11 +12390,11 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", "syn 2.0.106", @@ -12361,7 +12406,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.10.0", + "indexmap 2.11.4", "itoa", "ryu", "serde", @@ -12503,6 +12548,12 @@ 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" @@ -12511,7 +12562,7 @@ checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] @@ -12593,12 +12644,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -12635,9 +12686,9 @@ checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -12747,9 +12798,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" +checksum = "ab4e6eed052a117409a1a744c8bda9c3ea6934597cf7419f791cb7d590871c4c" dependencies = [ "paste", "proc-macro2", @@ -12759,9 +12810,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", @@ -12834,7 +12885,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -12878,7 +12929,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac9ee8b664c9f1740cd813fea422116f8ba29997bb7c878d1940424889802897" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.4", "log", "num-traits", ] @@ -12914,7 +12965,7 @@ dependencies = [ name = "tdx-quote-provider" version = "0.1.0" dependencies = [ - "axum 0.8.4", + "axum 0.8.6", "clap", "dotenvy", "eyre", @@ -12934,15 +12985,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix 1.1.2", + "windows-sys 0.61.2", ] [[package]] @@ -12966,7 +13017,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tar", @@ -12995,7 +13046,7 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tokio-stream", "tokio-tar", @@ -13020,11 +13071,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.17", ] [[package]] @@ -13040,9 +13091,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -13100,9 +13151,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", "itoa", @@ -13118,15 +13169,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -13178,29 +13229,26 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.6.1", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", @@ -13219,9 +13267,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -13296,8 +13344,8 @@ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", - "toml_datetime", - "toml_edit", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", ] [[package]] @@ -13309,20 +13357,50 @@ 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.10.0", + "indexmap 2.11.4", "serde", "serde_spanned", - "toml_datetime", + "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.11.4", + "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", +] + [[package]] name = "toml_write" version = "0.1.2" @@ -13388,7 +13466,7 @@ dependencies = [ "futures-core", "futures-util", "hdrhistogram", - "indexmap 2.10.0", + "indexmap 2.11.4", "pin-project-lite", "slab", "sync_wrapper", @@ -13407,7 +13485,7 @@ checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ "async-compression", "base64 0.22.1", - "bitflags 2.9.2", + "bitflags 2.9.4", "bytes", "futures-core", "futures-util", @@ -13613,7 +13691,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee44f4cef85f88b4dea21c0b1f58320bdf35715cf56d840969487cff00613321" dependencies = [ - "alloy-primitives 1.3.1", + "alloy-primitives 1.4.1", "ethereum_hashing", "ethereum_ssz", "smallvec", @@ -13644,9 +13722,9 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" +checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" [[package]] name = "try-lock" @@ -13703,15 +13781,15 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1", - "thiserror 2.0.16", + "thiserror 2.0.17", "utf-8", ] [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -13757,9 +13835,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-segmentation" @@ -13850,9 +13928,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -13886,11 +13964,11 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "serde", "sha1_smol", @@ -14002,31 +14080,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" +name = "wasip2" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" dependencies = [ "bumpalo", "log", @@ -14038,9 +14117,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" dependencies = [ "cfg-if", "js-sys", @@ -14051,9 +14130,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -14061,9 +14140,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" dependencies = [ "proc-macro2", "quote", @@ -14074,9 +14153,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" dependencies = [ "unicode-ident", ] @@ -14096,9 +14175,9 @@ dependencies = [ [[package]] name = "wasmtimer" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8d49b5d6c64e8558d9b1b065014426f35c18de636895d24893dbbd329743446" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" dependencies = [ "futures", "js-sys", @@ -14110,9 +14189,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" dependencies = [ "js-sys", "wasm-bindgen", @@ -14134,14 +14213,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" dependencies = [ - "webpki-root-certs 1.0.2", + "webpki-root-certs 1.0.3", ] [[package]] name = "webpki-root-certs" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" +checksum = "05d651ec480de84b762e7be71e6efa7461699c19d9e2c272c8d93455f567786e" dependencies = [ "rustls-pki-types", ] @@ -14152,14 +14231,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.2", + "webpki-roots 1.0.3", ] [[package]] name = "webpki-roots" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "32b130c0d2d49f8b6889abc456e795e82525204f27c42cf767cf0d7734e089b8" dependencies = [ "rustls-pki-types", ] @@ -14178,9 +14257,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "winapi" @@ -14200,11 +14279,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -14235,25 +14314,27 @@ dependencies = [ [[package]] name = "windows" -version = "0.58.0" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "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.61.3" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ - "windows-collections", - "windows-core 0.61.2", - "windows-future", - "windows-link 0.1.3", - "windows-numerics", + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", ] [[package]] @@ -14265,6 +14346,15 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.53.0" @@ -14289,28 +14379,28 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.58.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", + "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", ] [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "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", ] [[package]] @@ -14321,25 +14411,25 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading", + "windows-threading 0.1.0", ] [[package]] -name = "windows-implement" -version = "0.57.0" +name = "windows-future" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] name = "windows-implement" -version = "0.58.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", @@ -14348,9 +14438,9 @@ dependencies = [ [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", @@ -14370,20 +14460,9 @@ dependencies = [ [[package]] name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", @@ -14412,6 +14491,16 @@ dependencies = [ "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" @@ -14434,39 +14523,38 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.2.0" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", + "windows-link 0.1.3", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-link 0.1.3", + "windows-link 0.2.1", ] [[package]] @@ -14511,7 +14599,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] @@ -14571,19 +14659,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -14595,6 +14683,15 @@ 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" @@ -14615,9 +14712,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -14639,9 +14736,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -14663,9 +14760,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -14675,9 +14772,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -14699,9 +14796,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -14723,9 +14820,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -14747,9 +14844,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -14771,15 +14868,15 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -14795,13 +14892,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.2", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "write16" @@ -14834,7 +14928,7 @@ dependencies = [ "pharos", "rustc_version 0.4.1", "send_wrapper 0.6.0", - "thiserror 2.0.16", + "thiserror 2.0.17", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -14891,18 +14985,18 @@ dependencies = [ "nom", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.16", + "thiserror 2.0.17", "time", ] [[package]] name = "xattr" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" dependencies = [ "libc", - "rustix 1.0.8", + "rustix 1.1.2", ] [[package]] @@ -15016,18 +15110,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -15057,9 +15151,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -15150,9 +15244,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", From 3e9ea539171d54805237a343061eeeb6cf62a99b Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 20 Oct 2025 16:51:57 -0400 Subject: [PATCH 22/32] merge --- Cargo.lock | 3 +-- crates/op-rbuilder/Cargo.toml | 1 - .../src/builders/flashblocks/payload_handler.rs | 1 - crates/op-rbuilder/src/flashtestations/builder_tx.rs | 9 ++++++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 326233b4..a48285d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7128,7 +7128,6 @@ dependencies = [ "tower 0.5.2", "tracing", "tracing-subscriber 0.3.20", - "ureq", "url", "uuid", "vergen", @@ -7393,7 +7392,7 @@ dependencies = [ [[package]] name = "p2p" -version = "0.2.6" +version = "0.2.7" dependencies = [ "derive_more", "eyre", diff --git a/crates/op-rbuilder/Cargo.toml b/crates/op-rbuilder/Cargo.toml index 7055b9a1..d49d4951 100644 --- a/crates/op-rbuilder/Cargo.toml +++ b/crates/op-rbuilder/Cargo.toml @@ -127,7 +127,6 @@ serde_yaml = { version = "0.9" } moka = "0.12" http = "1.0" sha3 = "0.10" -ureq = "2.10" reqwest = "0.12.23" k256 = "0.13.4" diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs index d053866d..9e838c1a 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs @@ -44,7 +44,6 @@ impl PayloadHandler { tokio::select! { Some(payload) = built_rx.recv() => { let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); - // TODO: only broadcast if `!no_tx_pool`? // ignore error here; if p2p was disabled, the channel will be closed. let _ = p2p_tx.send(payload.into()).await; } diff --git a/crates/op-rbuilder/src/flashtestations/builder_tx.rs b/crates/op-rbuilder/src/flashtestations/builder_tx.rs index 716d2520..e9c09572 100644 --- a/crates/op-rbuilder/src/flashtestations/builder_tx.rs +++ b/crates/op-rbuilder/src/flashtestations/builder_tx.rs @@ -2,7 +2,7 @@ use alloy_consensus::TxEip1559; use alloy_eips::Encodable2718; use alloy_evm::Database; use alloy_op_evm::OpEvm; -use alloy_primitives::{Address, B256, Bytes, TxKind, U256, keccak256, map::foldhash::HashMap}; +use alloy_primitives::{Address, B256, Bytes, TxKind, U256, keccak256, map::DefaultHashBuilder}; use alloy_sol_types::{Error, SolCall, SolEvent, SolInterface, SolValue}; use core::fmt::Debug; use op_alloy_consensus::OpTypedTransaction; @@ -17,7 +17,10 @@ use revm::{ inspector::NoOpInspector, state::Account, }; -use std::sync::{Arc, atomic::AtomicBool}; +use std::{ + collections::HashMap, + sync::{Arc, atomic::AtomicBool}, +}; use tracing::{debug, info}; use crate::{ @@ -75,7 +78,7 @@ pub struct FlashtestationsBuilderTx { pub struct TxSimulateResult { pub gas_used: u64, pub success: bool, - pub state_changes: HashMap, + pub state_changes: HashMap, pub revert_reason: Option, pub logs: Vec, } From 0d30052295106124385624a001b76d0d7e2a71bb Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 20 Oct 2025 17:30:14 -0400 Subject: [PATCH 23/32] update p2p args --- crates/op-rbuilder/src/args/op.rs | 55 +++++++++++-------- .../src/builders/flashblocks/config.rs | 20 +++++++ .../builders/flashblocks/payload_handler.rs | 2 +- .../src/builders/flashblocks/service.rs | 8 +-- crates/op-rbuilder/src/builders/mod.rs | 28 +--------- crates/op-rbuilder/src/tests/flashblocks.rs | 28 +--------- 6 files changed, 60 insertions(+), 81 deletions(-) diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index f35f48aa..795a5d87 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -157,13 +157,40 @@ pub struct FlashblocksArgs { )] pub flashblocks_calculate_state_root: bool, + /// Flashblocks number contract address + /// + /// This is the address of the contract that will be used to increment the flashblock number. + /// If set a builder tx will be added to the start of every flashblock instead of the regular builder tx. + #[arg( + long = "flashblocks.number-contract-address", + env = "FLASHBLOCK_NUMBER_CONTRACT_ADDRESS" + )] + pub flashblocks_number_contract_address: Option

, + + /// Flashblocks p2p configuration + #[command(flatten)] + pub p2p: FlashblocksP2pArgs, +} + +impl Default for FlashblocksArgs { + fn default() -> Self { + let args = crate::args::Cli::parse_from(["dummy", "node"]); + let Commands::Node(node_command) = args.command else { + unreachable!() + }; + node_command.ext.flashblocks + } +} + +#[derive(Debug, Clone, PartialEq, Eq, clap::Args)] +pub struct FlashblocksP2pArgs { /// Enable libp2p networking for flashblock propagation #[arg( long = "flashblocks.p2p_enabled", env = "FLASHBLOCK_P2P_ENABLED", default_value = "false" )] - pub flashblocks_p2p_enabled: bool, + pub p2p_enabled: bool, /// Port for the flashblocks p2p node #[arg( @@ -171,7 +198,7 @@ pub struct FlashblocksArgs { env = "FLASHBLOCK_P2P_PORT", default_value = "9009" )] - pub flashblocks_p2p_port: u16, + pub p2p_port: u16, /// Path to the file containing a hex-encoded libp2p private key. /// If the file does not exist, a new key will be generated. @@ -179,7 +206,7 @@ pub struct FlashblocksArgs { long = "flashblocks.p2p_private_key_file", env = "FLASHBLOCK_P2P_PRIVATE_KEY_FILE" )] - pub flashblocks_p2p_private_key_file: Option, + pub p2p_private_key_file: Option, /// Comma-separated list of multiaddrs of known Flashblocks peers /// Example: "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ,/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ" @@ -187,27 +214,7 @@ pub struct FlashblocksArgs { long = "flashblocks.p2p_known_peers", env = "FLASHBLOCK_P2P_KNOWN_PEERS" )] - pub flashblocks_known_peers: Option, - - /// Flashblocks number contract address - /// - /// This is the address of the contract that will be used to increment the flashblock number. - /// If set a builder tx will be added to the start of every flashblock instead of the regular builder tx. - #[arg( - long = "flashblocks.number-contract-address", - env = "FLASHBLOCK_NUMBER_CONTRACT_ADDRESS" - )] - pub flashblocks_number_contract_address: Option
, -} - -impl Default for FlashblocksArgs { - fn default() -> Self { - let args = crate::args::Cli::parse_from(["dummy", "node"]); - let Commands::Node(node_command) = args.command else { - unreachable!() - }; - node_command.ext.flashblocks - } + pub p2p_known_peers: Option, } /// Parameters for telemetry configuration diff --git a/crates/op-rbuilder/src/builders/flashblocks/config.rs b/crates/op-rbuilder/src/builders/flashblocks/config.rs index f2dca775..917b02cd 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/config.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/config.rs @@ -38,6 +38,18 @@ pub struct FlashblocksConfig { /// /// If set a builder tx will be added to the start of every flashblock instead of the regular builder tx. pub flashblocks_number_contract_address: Option
, + + /// Whether to enable the p2p node for flashblocks + pub p2p_enabled: bool, + + /// Port for the p2p node + pub p2p_port: u16, + + /// Optional hex-encoded private key file path for the p2p node + pub p2p_private_key_file: Option, + + /// Comma-separated list of multiaddresses of known peers to connect to + pub p2p_known_peers: Option, } impl Default for FlashblocksConfig { @@ -49,6 +61,10 @@ impl Default for FlashblocksConfig { fixed: false, calculate_state_root: true, flashblocks_number_contract_address: None, + p2p_enabled: false, + p2p_port: 9009, + p2p_private_key_file: None, + p2p_known_peers: None, } } } @@ -80,6 +96,10 @@ impl TryFrom for FlashblocksConfig { fixed, calculate_state_root, flashblocks_number_contract_address, + p2p_enabled: args.flashblocks.p2p.p2p_enabled, + p2p_port: args.flashblocks.p2p.p2p_port, + p2p_private_key_file: args.flashblocks.p2p.p2p_private_key_file, + p2p_known_peers: args.flashblocks.p2p.p2p_known_peers, }) } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs index 9e838c1a..f999a70e 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs @@ -43,7 +43,7 @@ impl PayloadHandler { loop { tokio::select! { Some(payload) = built_rx.recv() => { - let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); + let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); // ignore error here; if p2p was disabled, the channel will be closed. let _ = p2p_tx.send(payload.into()).await; } diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 4c7f5e98..404aecde 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -36,10 +36,10 @@ impl FlashblocksServiceBuilder { Pool: PoolBounds, BuilderTx: BuilderTransactions + Unpin + Clone + Send + Sync + 'static, { - let (incoming_message_rx, outgoing_message_tx) = if self.0.p2p_enabled { + let (incoming_message_rx, outgoing_message_tx) = if self.0.specific.p2p_enabled { let mut builder = p2p::NodeBuilder::new(); - if let Some(ref private_key_file) = self.0.p2p_private_key_file + if let Some(ref private_key_file) = self.0.specific.p2p_private_key_file && !private_key_file.is_empty() { let private_key_hex = std::fs::read_to_string(private_key_file) @@ -52,7 +52,7 @@ impl FlashblocksServiceBuilder { } let known_peers: Vec = - if let Some(ref p2p_known_peers) = self.0.p2p_known_peers { + if let Some(ref p2p_known_peers) = self.0.specific.p2p_known_peers { p2p_known_peers .split(',') .map(|s| s.to_string()) @@ -70,7 +70,7 @@ impl FlashblocksServiceBuilder { .with_agent_version(AGENT_VERSION.to_string()) .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) .with_known_peers(known_peers) - .with_port(self.0.p2p_port) + .with_port(self.0.specific.p2p_port) .try_build::() .wrap_err("failed to build flashblocks p2p node")?; let multiaddrs = node.multiaddrs(); diff --git a/crates/op-rbuilder/src/builders/mod.rs b/crates/op-rbuilder/src/builders/mod.rs index 04101aad..5874a1a5 100644 --- a/crates/op-rbuilder/src/builders/mod.rs +++ b/crates/op-rbuilder/src/builders/mod.rs @@ -117,23 +117,12 @@ pub struct BuilderConfig { /// Configuration values that are specific to the block builder implementation used. pub specific: Specific, + /// Maximum gas a transaction can use before being excluded. pub max_gas_per_txn: Option, /// Address gas limiter stuff pub gas_limiter_config: GasLimiterArgs, - - /// Whether to enable the p2p node for flashblocks - pub p2p_enabled: bool, - - /// Port for the p2p node - pub p2p_port: u16, - - /// Optional hex-encoded private key file path for the p2p node - pub p2p_private_key_file: Option, - - /// Comma-separated list of multiaddresses of known peers to connect to - pub p2p_known_peers: Option, } impl core::fmt::Debug for BuilderConfig { @@ -155,13 +144,6 @@ impl core::fmt::Debug for BuilderConfig { .field("specific", &self.specific) .field("max_gas_per_txn", &self.max_gas_per_txn) .field("gas_limiter_config", &self.gas_limiter_config) - .field("p2p_enabled", &self.p2p_enabled) - .field("p2p_port", &self.p2p_port) - .field( - "p2p_private_key_file", - &self.p2p_private_key_file.as_ref().map(|_| "Some(...)"), - ) - .field("p2p_known_peers", &self.p2p_known_peers) .finish() } } @@ -179,10 +161,6 @@ impl Default for BuilderConfig { sampling_ratio: 100, max_gas_per_txn: None, gas_limiter_config: GasLimiterArgs::default(), - p2p_enabled: false, - p2p_port: 9009, - p2p_private_key_file: None, - p2p_known_peers: None, } } } @@ -204,10 +182,6 @@ where sampling_ratio: args.telemetry.sampling_ratio, max_gas_per_txn: args.max_gas_per_txn, gas_limiter_config: args.gas_limiter.clone(), - p2p_enabled: args.flashblocks.flashblocks_p2p_enabled, - p2p_port: args.flashblocks.flashblocks_p2p_port, - p2p_private_key_file: args.flashblocks.flashblocks_p2p_private_key_file.clone(), - p2p_known_peers: args.flashblocks.flashblocks_known_peers.clone(), specific: S::try_from(args)?, }) } diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index 57498266..36d5a155 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -23,8 +23,6 @@ use crate::{ flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -62,10 +60,7 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_addr: "127.0.0.1".into(), flashblocks_block_time: 200, flashblocks_leeway_time: 100, - flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, - ..Default::default() + flashblocks_fixed: false, ..Default::default() }, ..Default::default() })] @@ -103,8 +98,6 @@ async fn smoke_dynamic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 50, flashblocks_fixed: true, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -143,8 +136,6 @@ async fn smoke_classic_unichain(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 50, flashblocks_fixed: true, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -183,8 +174,6 @@ async fn smoke_classic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -230,8 +219,6 @@ async fn unichain_dynamic_with_lag(rbuilder: LocalInstance) -> eyre::Result<()> flashblocks_block_time: 200, flashblocks_leeway_time: 0, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -270,8 +257,6 @@ async fn dynamic_with_full_block_lag(rbuilder: LocalInstance) -> eyre::Result<() flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -332,8 +317,6 @@ async fn test_flashblock_min_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -390,8 +373,6 @@ async fn test_flashblock_max_filtering(rbuilder: LocalInstance) -> eyre::Result< flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: true, - flashblocks_p2p_port: 9002, ..Default::default() }, ..Default::default() @@ -437,9 +418,7 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: false, - flashblocks_p2p_port: 9002, - ..Default::default() + flashblocks_calculate_state_root: false, ..Default::default() }, ..Default::default() })] @@ -478,8 +457,7 @@ async fn test_flashblocks_no_state_root_calculation(rbuilder: LocalInstance) -> chain_block_time: 1000, enable_revert_protection: true, flashblocks: FlashblocksArgs { - flashblocks_number_contract_address: Some(FLASHBLOCKS_NUMBER_ADDRESS), - ..Default::default() + flashblocks_number_contract_address: Some(FLASHBLOCKS_NUMBER_ADDRESS), ..Default::default() }, ..Default::default() })] From 9a9b31db8ec3f10d267aa50e25d376342d4992d3 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 21 Oct 2025 16:08:10 -0400 Subject: [PATCH 24/32] add max peer arg --- crates/op-rbuilder/src/args/op.rs | 8 +++++ .../src/builders/flashblocks/config.rs | 5 +++ .../src/builders/flashblocks/service.rs | 1 + crates/p2p/src/behaviour.rs | 9 +++-- crates/p2p/src/lib.rs | 34 ++++++++++++++++--- 5 files changed, 50 insertions(+), 7 deletions(-) diff --git a/crates/op-rbuilder/src/args/op.rs b/crates/op-rbuilder/src/args/op.rs index 795a5d87..b0b90f84 100644 --- a/crates/op-rbuilder/src/args/op.rs +++ b/crates/op-rbuilder/src/args/op.rs @@ -215,6 +215,14 @@ pub struct FlashblocksP2pArgs { env = "FLASHBLOCK_P2P_KNOWN_PEERS" )] pub p2p_known_peers: Option, + + /// Maximum number of peers for the flashblocks p2p node + #[arg( + long = "flashblocks.p2p_max_peer_count", + env = "FLASHBLOCK_P2P_MAX_PEER_COUNT", + default_value = "50" + )] + pub p2p_max_peer_count: u32, } /// Parameters for telemetry configuration diff --git a/crates/op-rbuilder/src/builders/flashblocks/config.rs b/crates/op-rbuilder/src/builders/flashblocks/config.rs index 917b02cd..a3345edb 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/config.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/config.rs @@ -50,6 +50,9 @@ pub struct FlashblocksConfig { /// Comma-separated list of multiaddresses of known peers to connect to pub p2p_known_peers: Option, + + /// Maximum number of peers for the p2p node + pub p2p_max_peer_count: u32, } impl Default for FlashblocksConfig { @@ -65,6 +68,7 @@ impl Default for FlashblocksConfig { p2p_port: 9009, p2p_private_key_file: None, p2p_known_peers: None, + p2p_max_peer_count: 50, } } } @@ -100,6 +104,7 @@ impl TryFrom for FlashblocksConfig { p2p_port: args.flashblocks.p2p.p2p_port, p2p_private_key_file: args.flashblocks.p2p.p2p_private_key_file, p2p_known_peers: args.flashblocks.p2p.p2p_known_peers, + p2p_max_peer_count: args.flashblocks.p2p.p2p_max_peer_count, }) } } diff --git a/crates/op-rbuilder/src/builders/flashblocks/service.rs b/crates/op-rbuilder/src/builders/flashblocks/service.rs index 404aecde..4ad1909f 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/service.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/service.rs @@ -71,6 +71,7 @@ impl FlashblocksServiceBuilder { .with_protocol(FLASHBLOCKS_STREAM_PROTOCOL) .with_known_peers(known_peers) .with_port(self.0.specific.p2p_port) + .with_max_peer_count(self.0.specific.p2p_max_peer_count) .try_build::() .wrap_err("failed to build flashblocks p2p node")?; let multiaddrs = node.multiaddrs(); diff --git a/crates/p2p/src/behaviour.rs b/crates/p2p/src/behaviour.rs index a61ea735..46f054eb 100644 --- a/crates/p2p/src/behaviour.rs +++ b/crates/p2p/src/behaviour.rs @@ -5,7 +5,6 @@ use libp2p::{ }; use std::{convert::Infallible, time::Duration}; -const DEFAULT_MAX_PEER_COUNT: u32 = 200; const PROTOCOL_VERSION: &str = "1.0.0"; #[derive(NetworkBehaviour)] @@ -48,14 +47,18 @@ impl From for BehaviourEvent { } impl Behaviour { - pub(crate) fn new(keypair: &identity::Keypair, agent_version: String) -> eyre::Result { + pub(crate) fn new( + keypair: &identity::Keypair, + agent_version: String, + max_peer_count: u32, + ) -> eyre::Result { let peer_id = keypair.public().to_peer_id(); let autonat = autonat::Behaviour::new(peer_id, autonat::Config::default()); let mdns = mdns::tokio::Behaviour::new(mdns::Config::default(), peer_id) .wrap_err("failed to create mDNS behaviour")?; let connection_limits = connection_limits::Behaviour::new( - ConnectionLimits::default().with_max_established(Some(DEFAULT_MAX_PEER_COUNT)), + ConnectionLimits::default().with_max_established(Some(max_peer_count)), ); let identify = identify::Behaviour::new( diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index 47f43232..eaedd53d 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -12,6 +12,7 @@ use libp2p::{ swarm::SwarmEvent, tcp, yamux, }; +use multiaddr::Protocol; use std::{collections::HashMap, time::Duration}; use tokio::sync::mpsc; use tokio_util::sync::CancellationToken; @@ -19,6 +20,8 @@ use tracing::{debug, warn}; pub use libp2p::{Multiaddr, StreamProtocol}; +const DEFAULT_MAX_PEER_COUNT: u32 = 50; + /// A message that can be sent between peers. pub trait Message: serde::Serialize + for<'de> serde::Deserialize<'de> + Send + Sync + Clone + std::fmt::Debug @@ -221,6 +224,7 @@ pub struct NodeBuilder { known_peers: Vec, agent_version: Option, protocols: Vec, + max_peer_count: Option, cancellation_token: Option, } @@ -239,6 +243,7 @@ impl NodeBuilder { known_peers: Vec::new(), agent_version: None, protocols: Vec::new(), + max_peer_count: None, cancellation_token: None, } } @@ -268,6 +273,11 @@ impl NodeBuilder { self } + pub fn with_max_peer_count(mut self, max_peer_count: u32) -> Self { + self.max_peer_count = Some(max_peer_count); + self + } + pub fn with_known_peers(mut self, addresses: I) -> Self where I: IntoIterator, @@ -282,11 +292,12 @@ impl NodeBuilder { pub fn try_build(self) -> eyre::Result> { let Self { port, - mut listen_addrs, + listen_addrs, keypair_hex, known_peers, agent_version, protocols, + max_peer_count, cancellation_token, } = self; @@ -309,9 +320,10 @@ impl NodeBuilder { let keypair = keypair.unwrap_or(identity::Keypair::generate_ed25519()); let peer_id = keypair.public().to_peer_id(); - let transport = create_transport(&keypair)?; - let mut behaviour = - Behaviour::new(&keypair, agent_version).context("failed to create behaviour")?; + let transport = create_transport(&keypair).wrap_err("failed to create transport")?; + let max_peer_count = max_peer_count.unwrap_or(DEFAULT_MAX_PEER_COUNT); + let mut behaviour = Behaviour::new(&keypair, agent_version, max_peer_count) + .context("failed to create behaviour")?; let mut control = behaviour.new_control(); let mut incoming_streams_handlers = Vec::new(); @@ -337,6 +349,20 @@ impl NodeBuilder { cfg.with_idle_connection_timeout(Duration::from_secs(u64::MAX)) // don't disconnect from idle peers }) .build(); + + // disallow providing listen addresses that have a peer ID in them, + // as we've specified the peer ID for this node above. + let mut listen_addrs: Vec = listen_addrs + .into_iter() + .filter(|addr| { + for protocol in addr.iter() { + if protocol == Protocol::P2p(peer_id) { + return false; + } + } + true + }) + .collect(); if listen_addrs.is_empty() { let port = port.unwrap_or(0); let listen_addr = format!("/ip4/0.0.0.0/tcp/{port}") From 9ebf7062e38b6206f9bef1df2c9871806d062bdc Mon Sep 17 00:00:00 2001 From: elizabeth Date: Tue, 21 Oct 2025 16:11:24 -0400 Subject: [PATCH 25/32] lint --- crates/p2p/src/behaviour.rs | 2 +- crates/p2p/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/p2p/src/behaviour.rs b/crates/p2p/src/behaviour.rs index 46f054eb..140d309b 100644 --- a/crates/p2p/src/behaviour.rs +++ b/crates/p2p/src/behaviour.rs @@ -84,7 +84,7 @@ impl Behaviour { } impl BehaviourEvent { - pub(crate) async fn handle(self) { + pub(crate) fn handle(self) { match self { BehaviourEvent::Autonat(_event) => {} BehaviourEvent::Identify(_event) => {} diff --git a/crates/p2p/src/lib.rs b/crates/p2p/src/lib.rs index eaedd53d..fba12aa1 100644 --- a/crates/p2p/src/lib.rs +++ b/crates/p2p/src/lib.rs @@ -202,7 +202,7 @@ impl Node { debug!("connection closed with peer {peer_id}: {cause:?}"); outgoing_streams_handler.remove_peer(&peer_id); } - SwarmEvent::Behaviour(event) => event.handle().await, + SwarmEvent::Behaviour(event) => event.handle(), _ => continue, } }, From 7bb5c8048111eb9f6339d4f0b6df293d0b23b6c2 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 12:32:01 -0400 Subject: [PATCH 26/32] temp fix --- crates/op-rbuilder/src/builders/builder_tx.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 89b21997..63e564a6 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -4,7 +4,10 @@ use alloy_evm::Database; use alloy_op_evm::OpEvm; use alloy_primitives::{ Address, B256, Bytes, TxKind, U256, - map::foldhash::{HashMap, HashSet, HashSetExt}, + map::{ + DefaultHashBuilder, + foldhash::{HashSet, HashSetExt}, + }, }; use alloy_sol_types::{ContractError, Revert, SolCall, SolError, SolInterface}; use core::fmt::Debug; @@ -30,6 +33,7 @@ use revm::{ inspector::NoOpInspector, state::Account, }; +use std::collections::HashMap; use tracing::{trace, warn}; use crate::{ @@ -40,7 +44,7 @@ use crate::{ pub struct SimulationSuccessResult { pub gas_used: u64, pub output: T::Return, - pub state_changes: HashMap, + pub state_changes: HashMap, } #[derive(Debug, Clone)] From 5313e7ddf6bfcf38e76367d2958ab45336479293 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 12:33:54 -0400 Subject: [PATCH 27/32] rename metrics with payload_tx_ to payload_transaction_ --- crates/op-rbuilder/src/builders/context.rs | 4 ++-- .../src/builders/flashblocks/payload.rs | 10 +++++----- crates/op-rbuilder/src/metrics.rs | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/crates/op-rbuilder/src/builders/context.rs b/crates/op-rbuilder/src/builders/context.rs index 032e97e6..54894d28 100644 --- a/crates/op-rbuilder/src/builders/context.rs +++ b/crates/op-rbuilder/src/builders/context.rs @@ -544,9 +544,9 @@ impl OpPayloadBuilderCtx { info.executed_transactions.push(tx.into_inner()); } - let payload_tx_simulation_time = execute_txs_start_time.elapsed(); + let payload_transaction_simulation_time = execute_txs_start_time.elapsed(); self.metrics.set_payload_builder_metrics( - payload_tx_simulation_time, + payload_transaction_simulation_time, num_txs_considered, num_txs_simulated, num_txs_simulated_success, diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload.rs b/crates/op-rbuilder/src/builders/flashblocks/payload.rs index 94fcae1d..9e2237bc 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload.rs @@ -678,13 +678,13 @@ where return Ok(None); } - let payload_tx_simulation_time = tx_execution_start_time.elapsed(); + let payload_transaction_simulation_time = tx_execution_start_time.elapsed(); ctx.metrics - .payload_tx_simulation_duration - .record(payload_tx_simulation_time); + .payload_transaction_simulation_duration + .record(payload_transaction_simulation_time); ctx.metrics - .payload_tx_simulation_gauge - .set(payload_tx_simulation_time); + .payload_transaction_simulation_gauge + .set(payload_transaction_simulation_time); if let Err(e) = self .builder_tx diff --git a/crates/op-rbuilder/src/metrics.rs b/crates/op-rbuilder/src/metrics.rs index dd43d958..31fe081c 100644 --- a/crates/op-rbuilder/src/metrics.rs +++ b/crates/op-rbuilder/src/metrics.rs @@ -96,9 +96,9 @@ pub struct OpRBuilderMetrics { /// Latest state merge transitions duration pub state_transition_merge_gauge: Gauge, /// Histogram of the duration of payload simulation of all transactions - pub payload_tx_simulation_duration: Histogram, + pub payload_transaction_simulation_duration: Histogram, /// Latest payload simulation of all transactions duration - pub payload_tx_simulation_gauge: Gauge, + pub payload_transaction_simulation_gauge: Gauge, /// Number of transaction considered for inclusion in the block pub payload_num_tx_considered: Histogram, /// Latest number of transactions considered for inclusion in the block @@ -157,7 +157,7 @@ impl OpRBuilderMetrics { #[expect(clippy::too_many_arguments)] pub fn set_payload_builder_metrics( &self, - payload_tx_simulation_time: impl IntoF64 + Copy, + payload_transaction_simulation_time: impl IntoF64 + Copy, num_txs_considered: impl IntoF64 + Copy, num_txs_simulated: impl IntoF64 + Copy, num_txs_simulated_success: impl IntoF64 + Copy, @@ -165,10 +165,10 @@ impl OpRBuilderMetrics { num_bundles_reverted: impl IntoF64, reverted_gas_used: impl IntoF64, ) { - self.payload_tx_simulation_duration - .record(payload_tx_simulation_time); - self.payload_tx_simulation_gauge - .set(payload_tx_simulation_time); + self.payload_transaction_simulation_duration + .record(payload_transaction_simulation_time); + self.payload_transaction_simulation_gauge + .set(payload_transaction_simulation_time); self.payload_num_tx_considered.record(num_txs_considered); self.payload_num_tx_considered_gauge.set(num_txs_considered); self.payload_num_tx_simulated.record(num_txs_simulated); From 0311b4ddde1a1e43f47867f0e8aebfaa3ee3512e Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 15:31:39 -0400 Subject: [PATCH 28/32] address comments --- .../op-rbuilder/src/builders/flashblocks/payload_handler.rs | 5 ++++- crates/op-rbuilder/src/tests/flashblocks.rs | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs index f999a70e..e19bb19c 100644 --- a/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs +++ b/crates/op-rbuilder/src/builders/flashblocks/payload_handler.rs @@ -3,6 +3,7 @@ use reth_node_builder::Events; use reth_optimism_node::OpEngineTypes; use reth_optimism_payload_builder::OpBuiltPayload; use tokio::sync::mpsc; +use tracing::warn; pub(crate) struct PayloadHandler { // receives new payloads built by us. @@ -43,7 +44,9 @@ impl PayloadHandler { loop { tokio::select! { Some(payload) = built_rx.recv() => { - let _ = payload_events_handle.send(Events::BuiltPayload(payload.clone())); + if let Err(e) = payload_events_handle.send(Events::BuiltPayload(payload.clone())) { + warn!(e = ?e, "failed to send BuiltPayload event"); + } // ignore error here; if p2p was disabled, the channel will be closed. let _ = p2p_tx.send(payload.into()).await; } diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index 36d5a155..9991003d 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -60,7 +60,8 @@ async fn smoke_dynamic_base(rbuilder: LocalInstance) -> eyre::Result<()> { flashblocks_addr: "127.0.0.1".into(), flashblocks_block_time: 200, flashblocks_leeway_time: 100, - flashblocks_fixed: false, ..Default::default() + flashblocks_fixed: false, + ..Default::default() }, ..Default::default() })] @@ -418,7 +419,8 @@ async fn test_flashblock_min_max_filtering(rbuilder: LocalInstance) -> eyre::Res flashblocks_block_time: 200, flashblocks_leeway_time: 100, flashblocks_fixed: false, - flashblocks_calculate_state_root: false, ..Default::default() + flashblocks_calculate_state_root: false, + ..Default::default() }, ..Default::default() })] From 669507abf24c6d9166f18b42d6a29fcf5c70bfd1 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 15:32:50 -0400 Subject: [PATCH 29/32] revert builder_tx to see if it compiles on ci --- crates/op-rbuilder/src/builders/builder_tx.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 63e564a6..89b21997 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -4,10 +4,7 @@ use alloy_evm::Database; use alloy_op_evm::OpEvm; use alloy_primitives::{ Address, B256, Bytes, TxKind, U256, - map::{ - DefaultHashBuilder, - foldhash::{HashSet, HashSetExt}, - }, + map::foldhash::{HashMap, HashSet, HashSetExt}, }; use alloy_sol_types::{ContractError, Revert, SolCall, SolError, SolInterface}; use core::fmt::Debug; @@ -33,7 +30,6 @@ use revm::{ inspector::NoOpInspector, state::Account, }; -use std::collections::HashMap; use tracing::{trace, warn}; use crate::{ @@ -44,7 +40,7 @@ use crate::{ pub struct SimulationSuccessResult { pub gas_used: u64, pub output: T::Return, - pub state_changes: HashMap, + pub state_changes: HashMap, } #[derive(Debug, Clone)] From 061067c100abb70c1f9c54fa7a3bc5d77633b3f5 Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 15:40:24 -0400 Subject: [PATCH 30/32] re-add builder_tx changes --- crates/op-rbuilder/src/builders/builder_tx.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 89b21997..63e564a6 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -4,7 +4,10 @@ use alloy_evm::Database; use alloy_op_evm::OpEvm; use alloy_primitives::{ Address, B256, Bytes, TxKind, U256, - map::foldhash::{HashMap, HashSet, HashSetExt}, + map::{ + DefaultHashBuilder, + foldhash::{HashSet, HashSetExt}, + }, }; use alloy_sol_types::{ContractError, Revert, SolCall, SolError, SolInterface}; use core::fmt::Debug; @@ -30,6 +33,7 @@ use revm::{ inspector::NoOpInspector, state::Account, }; +use std::collections::HashMap; use tracing::{trace, warn}; use crate::{ @@ -40,7 +44,7 @@ use crate::{ pub struct SimulationSuccessResult { pub gas_used: u64, pub output: T::Return, - pub state_changes: HashMap, + pub state_changes: HashMap, } #[derive(Debug, Clone)] From 6c28ec472be723ec82d9273a7c81b6004b114b6f Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 16:20:54 -0400 Subject: [PATCH 31/32] fix formatting --- crates/op-rbuilder/src/tests/flashblocks.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/op-rbuilder/src/tests/flashblocks.rs b/crates/op-rbuilder/src/tests/flashblocks.rs index 9991003d..a623aaff 100644 --- a/crates/op-rbuilder/src/tests/flashblocks.rs +++ b/crates/op-rbuilder/src/tests/flashblocks.rs @@ -459,7 +459,8 @@ async fn test_flashblocks_no_state_root_calculation(rbuilder: LocalInstance) -> chain_block_time: 1000, enable_revert_protection: true, flashblocks: FlashblocksArgs { - flashblocks_number_contract_address: Some(FLASHBLOCKS_NUMBER_ADDRESS), ..Default::default() + flashblocks_number_contract_address: Some(FLASHBLOCKS_NUMBER_ADDRESS), + ..Default::default() }, ..Default::default() })] From 9bbc4a4607e99768104a516518461993a06ecddf Mon Sep 17 00:00:00 2001 From: elizabeth Date: Mon, 27 Oct 2025 16:22:43 -0400 Subject: [PATCH 32/32] use alloy_primitives::map::HashMap --- crates/op-rbuilder/src/builders/builder_tx.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/crates/op-rbuilder/src/builders/builder_tx.rs b/crates/op-rbuilder/src/builders/builder_tx.rs index 63e564a6..11194a38 100644 --- a/crates/op-rbuilder/src/builders/builder_tx.rs +++ b/crates/op-rbuilder/src/builders/builder_tx.rs @@ -4,10 +4,7 @@ use alloy_evm::Database; use alloy_op_evm::OpEvm; use alloy_primitives::{ Address, B256, Bytes, TxKind, U256, - map::{ - DefaultHashBuilder, - foldhash::{HashSet, HashSetExt}, - }, + map::{HashMap, HashSet}, }; use alloy_sol_types::{ContractError, Revert, SolCall, SolError, SolInterface}; use core::fmt::Debug; @@ -33,7 +30,6 @@ use revm::{ inspector::NoOpInspector, state::Account, }; -use std::collections::HashMap; use tracing::{trace, warn}; use crate::{ @@ -44,7 +40,7 @@ use crate::{ pub struct SimulationSuccessResult { pub gas_used: u64, pub output: T::Return, - pub state_changes: HashMap, + pub state_changes: HashMap, } #[derive(Debug, Clone)] @@ -196,7 +192,7 @@ pub trait BuilderTransactions = HashSet::new(); + let mut invalid = HashSet::new(); for builder_tx in builder_txs.iter() { if builder_tx.is_top_of_block != top_of_block {