diff --git a/bolt-sidecar/Cargo.lock b/bolt-sidecar/Cargo.lock index 9046c0b8a..6c735b5f7 100644 --- a/bolt-sidecar/Cargo.lock +++ b/bolt-sidecar/Cargo.lock @@ -152,27 +152,27 @@ dependencies = [ [[package]] name = "alloy" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbcc41e8a11a4975b18ec6afba2cc48d591fa63336a4c526dacb50479a8d6b35" +checksum = "e5295219c9bc87cfa2497131423921e8ea136ee7e2ab338967078995168431d5" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-contract 0.9.2", + "alloy-consensus 0.11.0", + "alloy-contract 0.11.0", "alloy-core", - "alloy-eips 0.9.2", - "alloy-genesis 0.9.2", - "alloy-network 0.9.2", - "alloy-provider 0.9.2", - "alloy-pubsub 0.9.2", - "alloy-rpc-client 0.9.2", - "alloy-rpc-types 0.9.2", - "alloy-serde 0.9.2", - "alloy-signer 0.9.2", - "alloy-signer-local 0.9.2", - "alloy-transport 0.9.2", - "alloy-transport-http 0.9.2", - "alloy-transport-ipc 0.9.2", - "alloy-transport-ws 0.9.2", + "alloy-eips 0.11.0", + "alloy-genesis 0.11.0", + "alloy-network 0.11.0", + "alloy-provider 0.11.0", + "alloy-pubsub 0.11.0", + "alloy-rpc-client 0.11.0", + "alloy-rpc-types 0.11.0", + "alloy-serde 0.11.0", + "alloy-signer 0.11.0", + "alloy-signer-local 0.11.0", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", + "alloy-transport-ipc 0.11.0", + "alloy-transport-ws 0.11.0", ] [[package]] @@ -206,14 +206,14 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4138dc275554afa6f18c4217262ac9388790b2fc393c2dfe03c51d357abf013" +checksum = "ce20c85f6b24a5da40b2350a748e348417f0465dedbb523a4d149143bc4a41ce" dependencies = [ - "alloy-eips 0.9.2", + "alloy-eips 0.11.0", "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.9.2", + "alloy-serde 0.11.0", "alloy-trie", "auto_impl", "c-kzg", @@ -238,15 +238,15 @@ dependencies = [ [[package]] name = "alloy-consensus-any" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa04e1882c31288ce1028fdf31b6ea94cfa9eafa2e497f903ded631c8c6a42c" +checksum = "8e23af02ccded0031ef2b70df4fe9965b1c742c5d5384c8c767ae0311f7e62b9" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", + "alloy-consensus 0.11.0", + "alloy-eips 0.11.0", "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.9.2", + "alloy-serde 0.11.0", "serde", ] @@ -273,20 +273,20 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f21886c1fea0626f755a49b2ac653b396fb345233f6170db2da3d0ada31560c" +checksum = "71c7a59f261333db00fa10a3de9480f31121bb919ad38487040d7833d5982203" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", - "alloy-network 0.9.2", - "alloy-network-primitives 0.9.2", + "alloy-network 0.11.0", + "alloy-network-primitives 0.11.0", "alloy-primitives 0.8.15", - "alloy-provider 0.9.2", - "alloy-pubsub 0.9.2", - "alloy-rpc-types-eth 0.9.2", + "alloy-provider 0.11.0", + "alloy-pubsub 0.11.0", + "alloy-rpc-types-eth 0.11.0", "alloy-sol-types", - "alloy-transport 0.9.2", + "alloy-transport 0.11.0", "futures", "futures-util", "thiserror 2.0.11", @@ -322,6 +322,18 @@ dependencies = [ "winnow", ] +[[package]] +name = "alloy-eip2124" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" +dependencies = [ + "alloy-primitives 0.8.15", + "alloy-rlp", + "crc", + "thiserror 2.0.11", +] + [[package]] name = "alloy-eip2930" version = "0.1.0" @@ -392,6 +404,24 @@ dependencies = [ "alloy-serde 0.9.2", "c-kzg", "derive_more 1.0.0", + "serde", +] + +[[package]] +name = "alloy-eips" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7149e011edbd588f6df6564b369c75f6b538d76db14053d95e0b43b2d92e4266" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702 0.5.0", + "alloy-primitives 0.8.15", + "alloy-rlp", + "alloy-serde 0.11.0", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", "once_cell", "serde", "sha2 0.10.8", @@ -422,6 +452,19 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-genesis" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acaec0cc4c1489d61d6f33d0c3dd522c750025f4b5c8f59cd546221e4df660e5" +dependencies = [ + "alloy-eips 0.11.0", + "alloy-primitives 0.8.15", + "alloy-serde 0.11.0", + "alloy-trie", + "serde", +] + [[package]] name = "alloy-json-abi" version = "0.8.15" @@ -450,9 +493,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2008bedb8159a255b46b7c8614516eda06679ea82f620913679afbd8031fea72" +checksum = "c0c5c9651fd20a2fd4a57606b6a570d1c17ab86e686b962b2f1ecac68b51e020" dependencies = [ "alloy-primitives 0.8.15", "alloy-sol-types", @@ -489,20 +532,20 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4556f01fe41d0677495df10a648ddcf7ce118b0e8aa9642a0e2b6dd1fb7259de" +checksum = "b02ed56783fb2c086a4ac8961175dd6d3ad163e6cf6125f0b83f7de03379b607" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-consensus-any 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network-primitives 0.9.2", + "alloy-consensus 0.11.0", + "alloy-consensus-any 0.11.0", + "alloy-eips 0.11.0", + "alloy-json-rpc 0.11.0", + "alloy-network-primitives 0.11.0", "alloy-primitives 0.8.15", - "alloy-rpc-types-any 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", - "alloy-signer 0.9.2", + "alloy-rpc-types-any 0.11.0", + "alloy-rpc-types-eth 0.11.0", + "alloy-serde 0.11.0", + "alloy-signer 0.11.0", "alloy-sol-types", "async-trait", "auto_impl", @@ -527,14 +570,14 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31c3c6b71340a1d076831823f09cb6e02de01de5c6630a9631bdb36f947ff80" +checksum = "a0624cfa9311aa8283cd3bf5eed883d0d1e823e2a4d57b30e1b49af4b3678a6b" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", + "alloy-consensus 0.11.0", + "alloy-eips 0.11.0", "alloy-primitives 0.8.15", - "alloy-serde 0.9.2", + "alloy-serde 0.11.0", "serde", ] @@ -635,7 +678,7 @@ dependencies = [ "dashmap", "futures", "futures-utils-wasm", - "lru", + "lru 0.12.5", "parking_lot", "pin-project", "reqwest 0.12.12", @@ -651,37 +694,36 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22c4441b3ebe2d77fa9cf629ba68c3f713eb91779cff84275393db97eddd82" +checksum = "07c68df5354225da542efeb6d9388b65773b3304309b437416146e9d1e2bc1bd" dependencies = [ "alloy-chains", - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", - "alloy-json-rpc 0.9.2", - "alloy-network 0.9.2", - "alloy-network-primitives 0.9.2", + "alloy-consensus 0.11.0", + "alloy-eips 0.11.0", + "alloy-json-rpc 0.11.0", + "alloy-network 0.11.0", + "alloy-network-primitives 0.11.0", "alloy-primitives 0.8.15", - "alloy-pubsub 0.9.2", - "alloy-rpc-client 0.9.2", - "alloy-rpc-types-engine 0.9.2", - "alloy-rpc-types-eth 0.9.2", + "alloy-pubsub 0.11.0", + "alloy-rpc-client 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.0", "alloy-rpc-types-trace", - "alloy-transport 0.9.2", - "alloy-transport-http 0.9.2", - "alloy-transport-ipc 0.9.2", - "alloy-transport-ws 0.9.2", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", + "alloy-transport-ipc 0.11.0", + "alloy-transport-ws 0.11.0", "async-stream", "async-trait", "auto_impl", "dashmap", "futures", "futures-utils-wasm", - "lru", + "lru 0.13.0", "parking_lot", "pin-project", "reqwest 0.12.12", - "schnellru", "serde", "serde_json", "thiserror 2.0.11", @@ -712,13 +754,13 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2269fd635f7b505f27c63a3cb293148cd02301efce4c8bdd9ff54fbfc4a20e23" +checksum = "7ef6ef167ea24e7aac569dfd90b668c1f7dca0e48214e70364586d5341a89431" dependencies = [ - "alloy-json-rpc 0.9.2", + "alloy-json-rpc 0.11.0", "alloy-primitives 0.8.15", - "alloy-transport 0.9.2", + "alloy-transport 0.11.0", "bimap", "futures", "serde", @@ -779,17 +821,17 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06a292b37e182e514903ede6e623b9de96420e8109ce300da288a96d88b7e4b" +checksum = "0371aae9b44a35e374c94c7e1df5cbccf0f52b2ef7c782291ed56e86d88ec106" dependencies = [ - "alloy-json-rpc 0.9.2", + "alloy-json-rpc 0.11.0", "alloy-primitives 0.8.15", - "alloy-pubsub 0.9.2", - "alloy-transport 0.9.2", - "alloy-transport-http 0.9.2", - "alloy-transport-ipc 0.9.2", - "alloy-transport-ws 0.9.2", + "alloy-pubsub 0.11.0", + "alloy-transport 0.11.0", + "alloy-transport-http 0.11.0", + "alloy-transport-ipc 0.11.0", + "alloy-transport-ws 0.11.0", "futures", "pin-project", "reqwest 0.12.12", @@ -819,16 +861,16 @@ dependencies = [ [[package]] name = "alloy-rpc-types" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9383845dd924939e7ab0298bbfe231505e20928907d7905aa3bf112287305e06" +checksum = "1428d64569961b00373c503a3de306656e94ef1f2a474e93fd41a6daae0d6ac7" dependencies = [ "alloy-primitives 0.8.15", - "alloy-rpc-types-beacon 0.9.2", - "alloy-rpc-types-engine 0.9.2", - "alloy-rpc-types-eth 0.9.2", + "alloy-rpc-types-beacon 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-rpc-types-eth 0.11.0", "alloy-rpc-types-trace", - "alloy-serde 0.9.2", + "alloy-serde 0.11.0", "serde", ] @@ -845,13 +887,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca445cef0eb6c2cf51cfb4e214fbf1ebd00893ae2e6f3b944c8101b07990f988" +checksum = "66e119337400d8b0348e1576ab37ffa56d1a04cbc977a84d4fa0a527d7cb0c21" dependencies = [ - "alloy-consensus-any 0.9.2", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", + "alloy-consensus-any 0.11.0", + "alloy-rpc-types-eth 0.11.0", + "alloy-serde 0.11.0", ] [[package]] @@ -873,13 +915,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-beacon" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4009405b1d3f5e8c529b8cf353f74e815fd2102549af4172fc721b4b9ea09133" +checksum = "9deadb4c8927dc702b58c8fb675f9fb88782c4c9c95096682058c1574141b8b7" dependencies = [ - "alloy-eips 0.9.2", + "alloy-eips 0.11.0", "alloy-primitives 0.8.15", - "alloy-rpc-types-engine 0.9.2", + "alloy-rpc-types-engine 0.11.0", "serde", "serde_with", "thiserror 2.0.11", @@ -905,15 +947,15 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f821f30344862a0b6eb9a1c2eb91dfb2ff44c7489f37152a526cdcab79264" +checksum = "b582c59b6f493d9b15bea32f44f662fa6749e5464ef5305d8429a864ace60684" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-eips 0.9.2", + "alloy-consensus 0.11.0", + "alloy-eips 0.11.0", "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.9.2", + "alloy-serde 0.11.0", "derive_more 1.0.0", "jsonwebtoken", "rand 0.8.5", @@ -943,17 +985,17 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0938bc615c02421bd86c1733ca7205cc3d99a122d9f9bff05726bd604b76a5c2" +checksum = "8a4a43d8b1344e3ef115ed7a2cee934876e4a64d2b9d9bee8738f9806900757e" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-consensus-any 0.9.2", - "alloy-eips 0.9.2", - "alloy-network-primitives 0.9.2", + "alloy-consensus 0.11.0", + "alloy-consensus-any 0.11.0", + "alloy-eips 0.11.0", + "alloy-network-primitives 0.11.0", "alloy-primitives 0.8.15", "alloy-rlp", - "alloy-serde 0.9.2", + "alloy-serde 0.11.0", "alloy-sol-types", "itertools 0.13.0", "serde", @@ -963,13 +1005,13 @@ dependencies = [ [[package]] name = "alloy-rpc-types-trace" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd38207e056cc7d1372367fbb4560ddf9107cbd20731743f641246bf0dede149" +checksum = "ac383c60b09660b7695a4f210cd11ab05887d058dfc669efd814904dbbaead82" dependencies = [ "alloy-primitives 0.8.15", - "alloy-rpc-types-eth 0.9.2", - "alloy-serde 0.9.2", + "alloy-rpc-types-eth 0.11.0", + "alloy-serde 0.11.0", "serde", "serde_json", "thiserror 2.0.11", @@ -997,6 +1039,17 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-serde" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86aa42c36e3c0db5bd9a7314e98aa261a61d5e3d6a0bd7e51fb8b0a3d6438481" +dependencies = [ + "alloy-primitives 0.8.15", + "serde", + "serde_json", +] + [[package]] name = "alloy-signer" version = "0.8.0" @@ -1013,9 +1066,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bfa395ad5cc952c82358d31e4c68b27bf4a89a5456d9b27e226e77dac50e4ff" +checksum = "c613222abd016e03ba548f41db938a2c99108b59c0c66ca105eab1b7a2e6b40a" dependencies = [ "alloy-primitives 0.8.15", "async-trait", @@ -1043,14 +1096,14 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdc63ce9eda1283fcbaca66ba4a414b841c0e3edbeef9c86a71242fc9e84ccc" +checksum = "39163b956c81e8fd9605194d6b5b92dd93b0e0252810e69f9a4cebe3a8614f46" dependencies = [ - "alloy-consensus 0.9.2", - "alloy-network 0.9.2", + "alloy-consensus 0.11.0", + "alloy-network 0.11.0", "alloy-primitives 0.8.15", - "alloy-signer 0.9.2", + "alloy-signer 0.11.0", "async-trait", "k256 0.13.4", "rand 0.8.5", @@ -1152,13 +1205,12 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d17722a198f33bbd25337660787aea8b8f57814febb7c746bc30407bdfc39448" +checksum = "40e2f34fcd849676c8fe274a6e72f0664dfede7ce06d12daa728d2e72f1b4393" dependencies = [ - "alloy-json-rpc 0.9.2", + "alloy-json-rpc 0.11.0", "base64 0.22.1", - "futures-util", "futures-utils-wasm", "serde", "serde_json", @@ -1187,13 +1239,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1509599021330a31c4a6816b655e34bf67acb1cc03c564e09fd8754ff6c5de" +checksum = "6e291c97c3c0ebb5d03c34e3a55c0f7c5bfa307536a2efaaa6fae4b3a4d09851" dependencies = [ - "alloy-json-rpc 0.9.2", - "alloy-rpc-types-engine 0.9.2", - "alloy-transport 0.9.2", + "alloy-json-rpc 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-transport 0.11.0", "http-body-util", "hyper 1.5.1", "hyper-util", @@ -1226,17 +1278,18 @@ dependencies = [ [[package]] name = "alloy-transport-ipc" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4da44bc9a5155ab599666d26decafcf12204b72a80eeaba7c5e234ee8ac205" +checksum = "8d3e991f40d2d81c6ee036a34d81127bfec5fadf7e649791b5225181126c1959" dependencies = [ - "alloy-json-rpc 0.9.2", - "alloy-pubsub 0.9.2", - "alloy-transport 0.9.2", + "alloy-json-rpc 0.11.0", + "alloy-pubsub 0.11.0", + "alloy-transport 0.11.0", "bytes", "futures", "interprocess", "pin-project", + "serde", "serde_json", "tokio", "tokio-util", @@ -1263,18 +1316,18 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.9.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58011745b2f17b334db40df9077d75b181f78360a5bc5c35519e15d4bfce15e2" +checksum = "fc8c544f7dc764735664756805f8b8b770020cc295a0b96b09cbefd099c172c7" dependencies = [ - "alloy-pubsub 0.9.2", - "alloy-transport 0.9.2", + "alloy-pubsub 0.11.0", + "alloy-transport 0.11.0", "futures", "http 1.2.0", "rustls 0.23.21", "serde_json", "tokio", - "tokio-tungstenite 0.24.0", + "tokio-tungstenite 0.26.1", "tracing", "ws_stream_wasm", ] @@ -1657,49 +1710,14 @@ dependencies = [ "paste", ] -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "axum-core 0.4.5", - "axum-macros 0.4.2", - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "hyper 1.5.1", - "hyper-util", - "itoa", - "matchit 0.7.3", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 1.0.2", - "tokio", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "axum" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efea76243612a2436fb4074ba0cf3ba9ea29efdeb72645d8fc63f116462be1de" dependencies = [ - "axum-core 0.5.1", - "axum-macros 0.5.0", + "axum-core", + "axum-macros", "base64 0.22.1", "bytes", "form_urlencoded", @@ -1710,7 +1728,7 @@ dependencies = [ "hyper 1.5.1", "hyper-util", "itoa", - "matchit 0.8.4", + "matchit", "memchr", "mime", "percent-encoding", @@ -1730,27 +1748,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "axum-core" version = "0.5.1" @@ -1777,8 +1774,8 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fc6f625a1f7705c6cf62d0d070794e94668988b1c38111baeec177c715f7b" dependencies = [ - "axum 0.8.2", - "axum-core 0.5.1", + "axum", + "axum-core", "bytes", "futures-util", "headers", @@ -1793,17 +1790,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "axum-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.90", -] - [[package]] name = "axum-macros" version = "0.5.0" @@ -2086,13 +2072,13 @@ name = "bolt-sidecar" version = "0.4.0-alpha" dependencies = [ "account_utils", - "alloy 0.9.2", + "alloy 0.11.0", "alloy-node-bindings", - "alloy-provider 0.9.2", - "alloy-rpc-types-engine 0.9.2", - "alloy-transport-http 0.9.2", + "alloy-provider 0.11.0", + "alloy-rpc-types-engine 0.11.0", + "alloy-transport-http 0.11.0", "async-trait", - "axum 0.8.2", + "axum", "axum-extra", "beacon-api-client", "bls 0.2.0 (git+https://github.com/sigp/lighthouse)", @@ -2229,12 +2215,13 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cb-common" -version = "0.5.0" -source = "git+https://github.com/Commit-Boost/commit-boost-client?tag=v0.5.0#704e9f19719211acfd1697fb8a083c2897aea1a9" +version = "0.6.0" +source = "git+https://github.com/Commit-Boost/commit-boost-client?tag=v0.6.0#adf548b6296fdb4ce38903260ac24be5c4e022bb" dependencies = [ "aes 0.8.4", "alloy 0.8.3", - "axum 0.7.9", + "async-trait", + "axum", "base64 0.22.1", "bimap", "blst", @@ -2587,6 +2574,21 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" version = "1.4.2" @@ -3091,7 +3093,7 @@ dependencies = [ "hkdf", "lazy_static", "libp2p-identity", - "lru", + "lru 0.12.5", "more-asserts", "multiaddr 0.18.2", "parking_lot", @@ -5225,6 +5227,15 @@ dependencies = [ "hashbrown 0.15.2", ] +[[package]] +name = "lru" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +dependencies = [ + "hashbrown 0.15.2", +] + [[package]] name = "maplit" version = "1.0.2" @@ -5240,12 +5251,6 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "matchit" version = "0.8.4" @@ -8099,8 +8104,12 @@ checksum = "be4bf6fecd69fcdede0ec680aaf474cdab988f9de6bc73d3758f0160e3b7025a" dependencies = [ "futures-util", "log", + "rustls 0.23.21", + "rustls-pki-types", "tokio", + "tokio-rustls 0.26.1", "tungstenite 0.26.1", + "webpki-roots 0.26.7", ] [[package]] @@ -8418,6 +8427,8 @@ dependencies = [ "httparse", "log", "rand 0.8.5", + "rustls 0.23.21", + "rustls-pki-types", "sha1", "thiserror 2.0.11", "utf-8", diff --git a/bolt-sidecar/Cargo.toml b/bolt-sidecar/Cargo.toml index 19a5cdfb3..1e980559e 100644 --- a/bolt-sidecar/Cargo.toml +++ b/bolt-sidecar/Cargo.toml @@ -37,13 +37,13 @@ tree_hash_derive = "0.9" secp256k1 = { version = "0.30.0", features = ["rand"] } # alloy -alloy = { version = "0.9.2", features = ["full", "provider-trace-api", "rpc-types-beacon"] } -alloy-rpc-types-engine = { version = "0.9.2", default-features = false, features = ["jwt"] } -alloy-transport-http = { version = "0.9.2", default-features = false, features = ["jwt-auth"] } -alloy-provider = { version = "0.9.2", default-features = false, features = ["engine-api"] } +alloy = { version = "0.11.0", features = ["full", "provider-trace-api", "rpc-types-beacon"] } +alloy-rpc-types-engine = { version = "0.11.0", default-features = false, features = ["jwt"] } +alloy-transport-http = { version = "0.11.0", default-features = false, features = ["jwt-auth"] } +alloy-provider = { version = "0.11.0", default-features = false, features = ["engine-api"] } # commit-boost -cb-common = { git = "https://github.com/Commit-Boost/commit-boost-client", tag = "v0.5.0" } +cb-common = { git = "https://github.com/Commit-Boost/commit-boost-client", tag = "v0.6.0" } # ethereum-consensus ethereum-consensus = { git = "https://github.com/ralexstokes/ethereum-consensus", rev = "8fbd8a5" } # Last release in 2022 diff --git a/bolt-sidecar/src/chain_io/manager.rs b/bolt-sidecar/src/chain_io/manager.rs index 08de126a1..e78451f93 100644 --- a/bolt-sidecar/src/chain_io/manager.rs +++ b/bolt-sidecar/src/chain_io/manager.rs @@ -2,14 +2,16 @@ use std::time::Duration; use alloy::{ contract::Error, + network::Ethereum, primitives::Address, providers::{ProviderBuilder, RootProvider}, sol, - transports::{http::Http, RpcError}, + transports::RpcError, }; +use alloy_provider::{fillers::FillProvider, utils::JoinedRecommendedFillers}; use ethereum_consensus::primitives::BlsPublicKey; use eyre::{bail, Context}; -use reqwest::{Client, Url}; +use reqwest::Url; use serde::Serialize; use tracing::{debug, warn}; @@ -27,7 +29,9 @@ const MAX_RETRIES: usize = 20; /// A wrapper over a BoltManagerContract that exposes various utility methods. #[derive(Debug, Clone)] -pub struct BoltManager(BoltManagerContractInstance, RootProvider>>); +pub struct BoltManager( + BoltManagerContractInstance<(), FillProvider>, +); impl BoltManager { /// Creates a new BoltRegistry instance. Returns `None` if a canonical BoltManager contract is @@ -259,8 +263,8 @@ mod tests { .as_ref()).expect("valid bls public key")]; let res = manager.verify_validator_pubkeys(&keys, commitment_signer_pubkey).await; assert!( - res.unwrap_err().to_string() - == generate_operator_keys_mismatch_error( + res.unwrap_err().to_string() == + generate_operator_keys_mismatch_error( pubkey_hash(&keys[0]), commitment_signer_pubkey, operator @@ -311,8 +315,8 @@ mod tests { let result = manager.verify_validator_pubkeys(&keys, commitment_signer_pubkey).await; assert!( - result.unwrap_err().to_string() - == generate_operator_keys_mismatch_error( + result.unwrap_err().to_string() == + generate_operator_keys_mismatch_error( pubkey_hash(&keys[0]), commitment_signer_pubkey, operator diff --git a/bolt-sidecar/src/client/beacon.rs b/bolt-sidecar/src/client/beacon.rs index 3435db851..e8817106d 100644 --- a/bolt-sidecar/src/client/beacon.rs +++ b/bolt-sidecar/src/client/beacon.rs @@ -1,10 +1,11 @@ -use std::{fmt::Debug, ops::Deref}; +use std::fmt::Debug; use alloy::{ primitives::{Address, B256}, rpc::types::Withdrawal, }; use beacon_api_client::{BlockId, StateId}; +use derive_more::derive::Deref; use reqwest::Url; use serde::{Deserialize, Serialize}; @@ -28,6 +29,7 @@ pub enum BeaconClientError { Url, } +/// A type alias for the result of a beacon client operation. pub type BeaconClientResult = Result; /// The [BeaconApi] is responsible for fetching information from the beacon node. @@ -38,7 +40,7 @@ pub type BeaconClientResult = Result; /// /// For this reason, this struct is essentially a wrapper around [beacon_api_client::Client] /// with added custom error handling and methods. -#[derive(Clone)] +#[derive(Clone, Deref)] pub struct BeaconClient { client: reqwest::Client, beacon_rpc_url: Url, @@ -46,17 +48,10 @@ pub struct BeaconClient { // Inner client re-exported from the beacon_api_client crate. // By wrapping this, we can automatically use its existing methods // by dereferencing it. This allows us to extend its API. + #[deref] inner: beacon_api_client::mainnet::Client, } -impl Deref for BeaconClient { - type Target = beacon_api_client::mainnet::Client; - - fn deref(&self) -> &Self::Target { - &self.inner - } -} - impl BeaconClient { /// Create a new [BeaconClient] instance with the given beacon RPC URL. pub fn new(beacon_rpc_url: Url) -> Self { diff --git a/bolt-sidecar/src/client/engine.rs b/bolt-sidecar/src/client/engine.rs index 20a28adaa..e73ccb45e 100644 --- a/bolt-sidecar/src/client/engine.rs +++ b/bolt-sidecar/src/client/engine.rs @@ -1,7 +1,4 @@ -use std::ops::Deref; - use alloy::{ - network::AnyNetwork, primitives::Bytes, providers::RootProvider, rpc::client::RpcClient, @@ -10,12 +7,10 @@ use alloy::{ use alloy_provider::ext::EngineApi; use alloy_rpc_types_engine::{ClientCode, ClientVersionV1, JwtSecret}; use alloy_transport_http::{ - hyper_util::{ - client::legacy::{connect::HttpConnector, Client}, - rt::TokioExecutor, - }, - AuthLayer, AuthService, HyperClient, + hyper_util::{client::legacy::Client, rt::TokioExecutor}, + AuthLayer, HyperClient, }; +use derive_more::derive::Deref; use http_body_util::Full; use lazy_static::lazy_static; use reqwest::Url; @@ -23,22 +18,12 @@ use tower::ServiceBuilder; use crate::common::BOLT_SIDECAR_VERSION; -/// A Hyper HTTP client with a JWT authentication layer. -type HyperAuthClient> = HyperClient>>; - /// The [`EngineClient`] is responsible for interacting with the engine API via HTTP. /// The inner transport uses a JWT [AuthLayer] to authenticate requests. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Deref)] pub struct EngineClient { - inner: RootProvider, AnyNetwork>, -} - -impl Deref for EngineClient { - type Target = RootProvider, AnyNetwork>; - - fn deref(&self) -> &Self::Target { - &self.inner - } + #[deref] + inner: RootProvider, } impl EngineClient { @@ -52,7 +37,7 @@ impl EngineClient { let layer_transport = HyperClient::with_service(service); let http_hyper = Http::with_client(layer_transport, url); let rpc_client = RpcClient::new(http_hyper, true); - let inner = RootProvider::<_, AnyNetwork>::new(rpc_client); + let inner = RootProvider::new(rpc_client); Self { inner } } diff --git a/bolt-sidecar/src/client/execution.rs b/bolt-sidecar/src/client/execution.rs index 4209cfe47..11069c855 100644 --- a/bolt-sidecar/src/client/execution.rs +++ b/bolt-sidecar/src/client/execution.rs @@ -1,17 +1,18 @@ -use std::ops::{Deref, DerefMut}; - use alloy::{ eips::BlockNumberOrTag, + network::Ethereum, primitives::{Address, Bytes, TxHash, B256, U256, U64}, providers::{ProviderBuilder, RootProvider}, rpc::{ client::{BatchRequest, ClientBuilder, RpcClient}, types::{Block, FeeHistory, TransactionReceipt}, }, - transports::{http::Http, TransportErrorKind, TransportResult}, + transports::{TransportErrorKind, TransportResult}, }; +use alloy_provider::{fillers::FillProvider, utils::JoinedRecommendedFillers}; +use derive_more::derive::{Deref, DerefMut}; use futures::{stream::FuturesUnordered, StreamExt}; -use reqwest::{Client, Url}; +use reqwest::Url; use crate::primitives::AccountState; @@ -19,27 +20,15 @@ use crate::primitives::AccountState; /// /// This struct is a wrapper over an inner [`RootProvider`] and extends it with /// methods that are relevant to the Bolt state. -#[derive(Clone, Debug)] +#[derive(Clone, Debug, Deref, DerefMut)] pub struct ExecutionClient { /// The custom RPC client that allows us to add custom batching and extend the provider. - rpc: RpcClient>, + rpc: RpcClient, /// The inner provider that implements all the JSON-RPC methods, that can be /// easily used via dereferencing this struct. - inner: RootProvider>, -} - -impl Deref for ExecutionClient { - type Target = RootProvider>; - - fn deref(&self) -> &Self::Target { - &self.inner - } -} - -impl DerefMut for ExecutionClient { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.inner - } + #[deref] + #[deref_mut] + inner: FillProvider, } impl ExecutionClient { @@ -53,7 +42,7 @@ impl ExecutionClient { } /// Create a new batch request. - pub fn new_batch(&self) -> BatchRequest<'_, Http> { + pub fn new_batch(&self) -> BatchRequest<'_> { self.rpc.new_batch() }