diff --git a/Cargo.lock b/Cargo.lock index d660fd913..2984facf1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,12 +124,12 @@ dependencies = [ [[package]] name = "alloy-consensus" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-primitives", "alloy-rlp", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "arbitrary", "c-kzg", "proptest", @@ -140,7 +140,7 @@ dependencies = [ [[package]] name = "alloy-consensus" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy#a4bb5f0be3eec5c8679bdab93c1482df38ba8509" +source = "git+https://github.com/alloy-rs/alloy#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy)", "alloy-primitives", @@ -152,9 +152,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd2404399cb1b50572758e66e9b4bf088e5a3df9007be7126456c7e50af935f" +checksum = "cb6e6436a9530f25010d13653e206fab4c9feddacf21a54de8d7311b275bc56b" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -171,11 +171,11 @@ dependencies = [ [[package]] name = "alloy-eips" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "alloy-rlp", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "arbitrary", "c-kzg", "derive_more", @@ -189,7 +189,7 @@ dependencies = [ [[package]] name = "alloy-eips" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy#a4bb5f0be3eec5c8679bdab93c1482df38ba8509" +source = "git+https://github.com/alloy-rs/alloy#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -203,10 +203,10 @@ dependencies = [ [[package]] name = "alloy-genesis" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "serde", "serde_json", ] @@ -214,7 +214,7 @@ dependencies = [ [[package]] name = "alloy-genesis" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy#a4bb5f0be3eec5c8679bdab93c1482df38ba8509" +source = "git+https://github.com/alloy-rs/alloy#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy)", @@ -224,9 +224,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3abf6446a292e19853aaca43590eeb48bf435dfd2c74200259e8f4872f6ce3" +checksum = "aaeaccd50238126e3a0ff9387c7c568837726ad4f4e399b528ca88104d6c25ef" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -237,7 +237,7 @@ dependencies = [ [[package]] name = "alloy-json-rpc" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "serde", @@ -249,13 +249,13 @@ dependencies = [ [[package]] name = "alloy-network" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-json-rpc", "alloy-primitives", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types-eth 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-signer", "alloy-sol-types", "async-trait", @@ -267,9 +267,9 @@ dependencies = [ [[package]] name = "alloy-node-bindings" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-primitives", "k256", "serde_json", @@ -281,9 +281,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277af0cbcc483ee6ad2c1e818090b5928d27f04fd6580680f31c1cf8068bcc2" +checksum = "f783611babedbbe90db3478c120fb5f5daacceffc210b39adc0af4fe0da70bad" dependencies = [ "alloy-rlp", "arbitrary", @@ -309,17 +309,17 @@ dependencies = [ [[package]] name = "alloy-provider" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-chains", - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-json-rpc", "alloy-network", "alloy-primitives", "alloy-pubsub", "alloy-rpc-client", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types-eth 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-rpc-types-trace", "alloy-transport", "alloy-transport-http", @@ -332,7 +332,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.4", + "reqwest", "serde", "serde_json", "tokio", @@ -343,7 +343,7 @@ dependencies = [ [[package]] name = "alloy-pubsub" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -383,7 +383,7 @@ dependencies = [ [[package]] name = "alloy-rpc-client" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -393,7 +393,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest 0.12.4", + "reqwest", "serde", "serde_json", "tokio", @@ -406,59 +406,38 @@ dependencies = [ [[package]] name = "alloy-rpc-types" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-sol-types", - "arbitrary", - "itertools 0.12.1", - "jsonrpsee-types", - "proptest", - "proptest-derive", - "serde", - "serde_json", - "thiserror", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", ] [[package]] name = "alloy-rpc-types" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy#a4bb5f0be3eec5c8679bdab93c1482df38ba8509" +source = "git+https://github.com/alloy-rs/alloy#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy)", - "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy)", - "alloy-primitives", - "alloy-rlp", + "alloy-rpc-types-eth 0.1.0 (git+https://github.com/alloy-rs/alloy)", "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy)", - "alloy-sol-types", - "itertools 0.12.1", - "serde", - "serde_json", - "thiserror", ] [[package]] name = "alloy-rpc-types-anvil" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "serde", ] [[package]] name = "alloy-rpc-types-beacon" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-primitives", "alloy-rpc-types-engine", "serde", @@ -469,14 +448,14 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types-eth 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "jsonrpsee-types", "jsonwebtoken 9.3.0", "rand 0.8.5", @@ -484,14 +463,54 @@ dependencies = [ "thiserror", ] +[[package]] +name = "alloy-rpc-types-eth" +version = "0.1.0" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" +dependencies = [ + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-sol-types", + "arbitrary", + "itertools 0.13.0", + "jsonrpsee-types", + "proptest", + "proptest-derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.1.0" +source = "git+https://github.com/alloy-rs/alloy#14ed25d8ab485fc0d313fd1e055862c9d20ef273" +dependencies = [ + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy)", + "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy)", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy)", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "alloy-rpc-types-trace" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types-eth 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "serde", "serde_json", ] @@ -499,7 +518,7 @@ dependencies = [ [[package]] name = "alloy-serde" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "serde", @@ -509,7 +528,7 @@ dependencies = [ [[package]] name = "alloy-serde" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy#a4bb5f0be3eec5c8679bdab93c1482df38ba8509" +source = "git+https://github.com/alloy-rs/alloy#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "serde", @@ -519,7 +538,7 @@ dependencies = [ [[package]] name = "alloy-signer" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-primitives", "async-trait", @@ -532,9 +551,9 @@ dependencies = [ [[package]] name = "alloy-signer-wallet" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-network", "alloy-primitives", "alloy-signer", @@ -548,9 +567,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30708a79919b082f2692423c8cc72fc250477e4a2ecb0d4a7244cd3cdb299965" +checksum = "4bad41a7c19498e3f6079f7744656328699f8ea3e783bdd10d85788cd439f572" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", @@ -562,9 +581,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a679ac01774ab7e00a567a918d4231ae692c5c8cedaf4e16956c3116d7896" +checksum = "fd9899da7d011b4fe4c406a524ed3e3f963797dbc93b45479d60341d3a27b252" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", @@ -581,9 +600,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356da0c2228aa6675a5faaa08a3e4061b967f924753983d72b9a18d9a3fad44e" +checksum = "d32d595768fdc61331a132b6f65db41afae41b9b97d36c21eb1b955c422a7e60" dependencies = [ "alloy-json-abi", "const-hex", @@ -598,18 +617,18 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fd4783b0a5840479013e9ce960d2eb7b3be381f722e0fe3d1f7c3bb6bd4ebd" +checksum = "baa2fbd22d353d8685bd9fee11ba2d8b5c3b1d11e56adb3265fcf1f32bfdf404" dependencies = [ "winnow 0.6.13", ] [[package]] name = "alloy-sol-types" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eb5e6234c0b62514992589fe1578f64d418dbc8ef5cd1ab2d7f2f568f599698" +checksum = "a49042c6d3b66a9fe6b2b5a8bf0d39fc2ae1ee0310a2a26ffedd79fb097878dd" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -621,7 +640,7 @@ dependencies = [ [[package]] name = "alloy-transport" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -633,17 +652,16 @@ dependencies = [ "tokio", "tower", "url", - "wasm-bindgen-futures", ] [[package]] name = "alloy-transport-http" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.4", + "reqwest", "serde_json", "tower", "tracing", @@ -653,12 +671,12 @@ dependencies = [ [[package]] name = "alloy-transport-ws" version = "0.1.0" -source = "git+https://github.com/alloy-rs/alloy?rev=cc68b93#cc68b93605f4521c2b0bce1a7efaeff2046cf07c" +source = "git+https://github.com/alloy-rs/alloy?rev=14ed25d#14ed25d8ab485fc0d313fd1e055862c9d20ef273" dependencies = [ "alloy-pubsub", "alloy-transport", "futures", - "http 0.2.12", + "http 1.1.0", "serde_json", "tokio", "tokio-tungstenite", @@ -1140,7 +1158,7 @@ dependencies = [ "clap", "eyre", "futures-util", - "reqwest 0.12.4", + "reqwest", "reth", "reth-node-ethereum", "serde", @@ -1641,6 +1659,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cexpr" version = "0.6.0" @@ -1730,9 +1754,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" dependencies = [ "clap_builder", "clap_derive", @@ -1740,9 +1764,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" dependencies = [ "anstream", "anstyle", @@ -1770,9 +1794,9 @@ checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" [[package]] name = "coins-bip32" -version = "0.8.7" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +checksum = "66c43ff7fd9ff522219058808a259e61423335767b1071d5b346de60d9219657" dependencies = [ "bs58", "coins-core", @@ -1786,9 +1810,9 @@ dependencies = [ [[package]] name = "coins-bip39" -version = "0.8.7" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +checksum = "4c4587c0b4064da887ed39a6522f577267d57e58bdd583178cd877d721b56a2e" dependencies = [ "bitvec", "coins-bip32", @@ -1802,19 +1826,18 @@ dependencies = [ [[package]] name = "coins-core" -version = "0.8.7" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +checksum = "6b3aeeec621f4daec552e9d28befd58020a78cfc364827d06a753e8bc13c6c4b" dependencies = [ "base64 0.21.7", "bech32", "bs58", + "const-hex", "digest 0.10.7", "generic-array", - "hex", "ripemd", "serde", - "serde_derive", "sha2 0.10.8", "sha3", "thiserror", @@ -1826,6 +1849,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.1.1" @@ -2692,15 +2725,6 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - [[package]] name = "endian-type" version = "0.1.2" @@ -2897,7 +2921,7 @@ dependencies = [ name = "exex-rollup" version = "0.0.0" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-rlp", "alloy-sol-types", "eyre", @@ -3060,7 +3084,7 @@ dependencies = [ "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy)", "alloy-serde 0.1.0 (git+https://github.com/alloy-rs/alloy)", "chrono", - "reqwest 0.12.4", + "reqwest", "serde", ] @@ -3323,16 +3347,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http 0.2.12", + "http 1.1.0", "indexmap 2.2.6", "slab", "tokio", @@ -3521,17 +3545,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.0" @@ -3544,22 +3557,22 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", - "futures-core", + "futures-util", "http 1.1.0", - "http-body 1.0.0", + "http-body", "pin-project-lite", ] [[package]] name = "http-range-header" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" +checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" [[package]] name = "http-types" @@ -3583,9 +3596,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "9f3935c160d00ac752e09787e6e6bfc26494c2183cc922f1bc678a60d4733bc2" [[package]] name = "httpdate" @@ -3615,30 +3628,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hyper" -version = "0.14.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.7", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.3.1" @@ -3648,9 +3637,11 @@ dependencies = [ "bytes", "futures-channel", "futures-util", + "h2", "http 1.1.0", - "http-body 1.0.0", + "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -3658,22 +3649,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.29", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.26.0" @@ -3682,7 +3657,7 @@ checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.3.1", + "hyper", "hyper-util", "rustls 0.22.4", "rustls-pki-types", @@ -3691,6 +3666,24 @@ dependencies = [ "tower-service", ] +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper", + "hyper-util", + "log", + "rustls 0.23.9", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", +] + [[package]] name = "hyper-util" version = "0.1.5" @@ -3701,8 +3694,8 @@ dependencies = [ "futures-channel", "futures-util", "http 1.1.0", - "http-body 1.0.0", - "hyper 1.3.1", + "http-body", + "hyper", "pin-project-lite", "socket2 0.5.7", "tokio", @@ -3905,12 +3898,14 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", ] [[package]] @@ -4140,12 +4135,41 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "jobserver" version = "0.1.31" @@ -4166,9 +4190,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" +checksum = "95a130d27083a4001b7b2d72a19f08786299550f76c9bd5307498dce2c2b20fa" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4184,40 +4208,44 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" +checksum = "039db9fe25cd63b7221c3f8788c1ef4ea07987d40ec25a1e7d7a3c3e3e3fd130" dependencies = [ + "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http 0.2.12", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.0", + "rustls 0.23.9", "rustls-pki-types", + "rustls-platform-verifier", "soketto", "thiserror", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls 0.26.0", "tokio-util", "tracing", "url", - "webpki-roots 0.26.2", ] [[package]] name = "jsonrpsee-core" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" +checksum = "21545a9445fbd582840ff5160a9a3e12b8e6da582151cdb07bde9a1970ba3a24" dependencies = [ "anyhow", "async-trait", "beef", + "bytes", "futures-timer", "futures-util", - "hyper 0.14.29", + "http 1.1.0", + "http-body", + "http-body-util", "jsonrpsee-types", "parking_lot 0.12.3", "pin-project", @@ -4234,15 +4262,20 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" +checksum = "fb25cab482c8512c4f3323a5c90b95a3b8f7c90681a87bf7a68b942d52f08933" dependencies = [ "async-trait", - "hyper 0.14.29", - "hyper-rustls 0.24.2", + "base64 0.22.1", + "http-body", + "hyper", + "hyper-rustls 0.27.2", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", + "rustls 0.23.9", + "rustls-platform-verifier", "serde", "serde_json", "thiserror", @@ -4254,11 +4287,11 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" +checksum = "c18184cd09b386feb18085609e8bf77bdc942482bdd82777b433b8d015edf561" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro-crate", "proc-macro2", "quote", @@ -4267,13 +4300,17 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" +checksum = "810f63eff0f78fa8d413d678c0e55b702e2ea61d4587774c0db4ea2fc554ef92" dependencies = [ + "anyhow", "futures-util", - "http 0.2.12", - "hyper 0.14.29", + "http 1.1.0", + "http-body", + "http-body-util", + "hyper", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", "pin-project", @@ -4291,12 +4328,12 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" +checksum = "f511b714bca46f9a3e97c0e0eb21d2c112e83e444d2db535b5ec7093f5836d73" dependencies = [ - "anyhow", "beef", + "http 1.1.0", "serde", "serde_json", "thiserror", @@ -4304,9 +4341,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f448d8eacd945cc17b6c0b42c361531ca36a962ee186342a97cdb8fca679cd77" +checksum = "8c8a6dfa0c35c8549fa8e003ce0bbcf37b051ab7ef85fce587e8f0ed7881c84d" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4315,11 +4352,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" +checksum = "786c100eb67df2f2d863d231c2c6978bcf80ff4bf606ffc40e7e68ef562da7bf" dependencies = [ - "http 0.2.12", + "http 1.1.0", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -4823,9 +4860,9 @@ dependencies = [ [[package]] name = "mev-share-sse" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae69b99298d095098be0e6a3159545aa7232e5b62e2c170d5a53f6b690000f3" +checksum = "20cbf228751922258c86a8492b39f987bb22338bef0b09426c106853be0c9fc7" dependencies = [ "alloy-primitives", "async-sse", @@ -4833,7 +4870,7 @@ dependencies = [ "futures-util", "http-types", "pin-project-lite", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", "thiserror", @@ -5817,7 +5854,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.8.3", + "regex-syntax 0.8.4", "rusty-fork", "tempfile", "unarray", @@ -6058,14 +6095,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.6", - "regex-syntax 0.8.3", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", ] [[package]] @@ -6079,13 +6116,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.3", + "regex-syntax 0.8.4", ] [[package]] @@ -6096,9 +6133,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "regress" @@ -6110,44 +6147,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.29", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-util", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "winreg 0.50.0", -] - [[package]] name = "reqwest" version = "0.12.4" @@ -6159,9 +6158,9 @@ dependencies = [ "futures-core", "futures-util", "http 1.1.0", - "http-body 1.0.0", + "http-body", "http-body-util", - "hyper 1.3.1", + "hyper", "hyper-rustls 0.26.0", "hyper-util", "ipnet", @@ -6172,8 +6171,8 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls 0.22.4", - "rustls-native-certs 0.7.0", - "rustls-pemfile 2.1.2", + "rustls-native-certs", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -6181,12 +6180,14 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls 0.25.0", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", - "webpki-roots 0.26.2", + "webpki-roots", "winreg 0.52.0", ] @@ -6434,9 +6435,9 @@ dependencies = [ name = "reth-codecs" version = "0.2.0-beta.9" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-primitives", "arbitrary", "bytes", @@ -6497,13 +6498,13 @@ dependencies = [ name = "reth-consensus-debug-client" version = "0.2.0-beta.9" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-provider", "auto_impl", "eyre", "futures", - "reqwest 0.12.4", + "reqwest", "reth-node-api", "reth-node-core", "reth-rpc-api", @@ -6710,9 +6711,9 @@ dependencies = [ name = "reth-e2e-test-utils" version = "0.2.0-beta.9" dependencies = [ - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-network", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-signer", "alloy-signer-wallet", "eyre", @@ -6931,7 +6932,7 @@ dependencies = [ name = "reth-evm-ethereum" version = "0.2.0-beta.9" dependencies = [ - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-sol-types", "reth-ethereum-consensus", "reth-evm", @@ -7137,7 +7138,7 @@ name = "reth-net-nat" version = "0.2.0-beta.9" dependencies = [ "futures-util", - "reqwest 0.12.4", + "reqwest", "reth-tracing", "serde_with", "thiserror", @@ -7343,8 +7344,9 @@ dependencies = [ "dirs-next", "eyre", "futures", + "http 1.1.0", "humantime", - "hyper 0.14.29", + "jsonrpsee", "metrics", "metrics-exporter-prometheus", "metrics-process", @@ -7388,6 +7390,7 @@ dependencies = [ "tikv-jemalloc-ctl", "tokio", "tokio-util", + "tower", "tracing", "vergen", ] @@ -7449,10 +7452,9 @@ dependencies = [ "async-trait", "clap", "eyre", - "hyper 0.14.29", "jsonrpsee", "parking_lot 0.12.3", - "reqwest 0.12.4", + "reqwest", "reth", "reth-basic-payload-builder", "reth-beacon-consensus", @@ -7567,12 +7569,12 @@ name = "reth-primitives" version = "0.2.0-beta.9" dependencies = [ "alloy-chains", - "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", - "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-consensus 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", + "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-primitives", "alloy-rlp", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-trie", "arbitrary", "assert_matches", @@ -7703,7 +7705,7 @@ dependencies = [ name = "reth-revm" version = "0.2.0-beta.9" dependencies = [ - "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-eips 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-rlp", "reth-consensus-common", "reth-execution-errors", @@ -7729,9 +7731,9 @@ dependencies = [ "derive_more", "dyn-clone", "futures", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.29", + "http 1.1.0", + "http-body", + "hyper", "jsonrpsee", "jsonwebtoken 8.3.0", "metrics", @@ -7805,7 +7807,7 @@ name = "reth-rpc-builder" version = "0.2.0-beta.9" dependencies = [ "clap", - "hyper 0.14.29", + "http 1.1.0", "jsonrpsee", "metrics", "pin-project", @@ -7879,11 +7881,11 @@ version = "0.2.0-beta.9" dependencies = [ "alloy-rpc-types-engine", "assert_matches", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.29", + "http 1.1.0", "jsonrpsee", + "jsonrpsee-http-client", "pin-project", + "reqwest", "tempfile", "tokio", "tower", @@ -7904,7 +7906,7 @@ name = "reth-rpc-types" version = "0.2.0-beta.9" dependencies = [ "alloy-primitives", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-rpc-types-anvil", "alloy-rpc-types-beacon", "alloy-rpc-types-engine", @@ -7925,7 +7927,7 @@ name = "reth-rpc-types-compat" version = "0.2.0-beta.9" dependencies = [ "alloy-rlp", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "reth-primitives", "reth-rpc-types", "serde_json", @@ -8075,7 +8077,7 @@ dependencies = [ name = "reth-testing-utils" version = "0.2.0-beta.9" dependencies = [ - "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-genesis 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "rand 0.8.5", "reth-primitives", "secp256k1 0.28.2", @@ -8233,10 +8235,10 @@ dependencies = [ [[package]] name = "revm-inspectors" version = "0.1.0" -source = "git+https://github.com/paradigmxyz/evm-inspectors?rev=53aa2b2#53aa2b2add84298e9eb0d4a080d41314c85695ab" +source = "git+https://github.com/paradigmxyz/revm-inspectors?rev=5e3058a#5e3058a87caa24df748e090083ef76518d082c10" dependencies = [ "alloy-primitives", - "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=cc68b93)", + "alloy-rpc-types 0.1.0 (git+https://github.com/alloy-rs/alloy?rev=14ed25d)", "alloy-rpc-types-trace", "alloy-sol-types", "anstyle", @@ -8511,18 +8513,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - [[package]] name = "rustls" version = "0.22.4" @@ -8532,21 +8522,24 @@ dependencies = [ "log", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.4", + "rustls-webpki", "subtle", "zeroize", ] [[package]] -name = "rustls-native-certs" -version = "0.6.3" +name = "rustls" +version = "0.23.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +checksum = "a218f0f6d05669de4eabfb24f31ce802035c952429d037507b4a4a39f0e60c5b" dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", + "log", + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] @@ -8556,21 +8549,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.2" @@ -8588,15 +8572,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rustls-platform-verifier" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "b5f0d26fa1ce3c790f9590868f0109289a044acb954525f933e2aa3b871c157d" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.9", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-roots", + "winapi", ] +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad" + [[package]] name = "rustls-webpki" version = "0.102.4" @@ -8693,16 +8694,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "sdd" version = "0.2.0" @@ -8772,6 +8763,7 @@ dependencies = [ "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] @@ -8952,19 +8944,6 @@ dependencies = [ "syn 2.0.66", ] -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - [[package]] name = "sha1" version = "0.10.6" @@ -9175,18 +9154,18 @@ dependencies = [ [[package]] name = "soketto" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", "bytes", "futures", - "http 0.2.12", + "http 1.1.0", "httparse", "log", "rand 0.8.5", - "sha-1", + "sha1", ] [[package]] @@ -9358,9 +9337,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fe08d08d84f2c0a77f1e7c46518789d745c2e87a2721791ed7c3c9bc78df28" +checksum = "8d71e19bca02c807c9faa67b5a47673ff231b6e7449b251695188522f1dc44b2" dependencies = [ "paste", "proc-macro2", @@ -9400,27 +9379,6 @@ dependencies = [ "windows 0.52.0", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tap" version = "1.0.1" @@ -9695,16 +9653,6 @@ dependencies = [ "syn 2.0.66", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.25.0" @@ -9716,6 +9664,17 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.9", + "rustls-pki-types", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.15" @@ -9730,17 +9689,18 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "becd34a233e7e31a3dbf7c7241b38320f57393dcae8e7324b0167d21b8e320b0" dependencies = [ "futures-util", "log", - "rustls 0.21.12", + "rustls 0.23.9", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls 0.26.0", "tungstenite", - "webpki-roots 0.25.4", + "webpki-roots", ] [[package]] @@ -9826,9 +9786,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "async-compression", "base64 0.21.7", @@ -9836,8 +9796,9 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http 1.1.0", + "http-body", + "http-body-util", "http-range-header", "httpdate", "iri-string", @@ -10064,21 +10025,21 @@ dependencies = [ [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.12", + "http 1.1.0", "httparse", "log", "rand 0.8.5", - "rustls 0.21.12", + "rustls 0.23.9", + "rustls-pki-types", "sha1", "thiserror", - "url", "utf-8", ] @@ -10211,12 +10172,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" dependencies = [ "form_urlencoded", - "idna 0.5.0", + "idna 1.0.0", "percent-encoding", "serde", ] @@ -10427,12 +10388,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.2" diff --git a/Cargo.toml b/Cargo.toml index 6ebb09c28..2d1ac2246 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -119,7 +119,7 @@ members = [ "examples/rpc-db/", "examples/txpool-tracing/", "testing/ef-tests/", - "testing/testing-utils" + "testing/testing-utils", ] default-members = ["bin/reth"] @@ -330,9 +330,15 @@ reth-trie-parallel = { path = "crates/trie/parallel" } reth-trie-types = { path = "crates/trie/types" } # revm -revm = { version = "9.0.0", features = [ "std", "secp256k1", "blst", ], default-features = false } -revm-primitives = { version = "4.0.0", features = [ "std", ], default-features = false } -revm-inspectors = { git = "https://github.com/paradigmxyz/evm-inspectors", rev = "53aa2b2" } +revm = { version = "9.0.0", features = [ + "std", + "secp256k1", + "blst", +], default-features = false } +revm-primitives = { version = "4.0.0", features = [ + "std", +], default-features = false } +revm-inspectors = { git = "https://github.com/paradigmxyz/revm-inspectors", rev = "5e3058a" } # eth alloy-chains = "0.1.15" @@ -341,21 +347,21 @@ alloy-dyn-abi = "0.7.2" alloy-sol-types = "0.7.2" alloy-rlp = "0.3.4" alloy-trie = "0.4" -alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-rpc-types-anvil = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-rpc-types-trace = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-rpc-types-engine = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-rpc-types-beacon = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-genesis = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-node-bindings = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-provider = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93", default-features = false, features = [ +alloy-rpc-types = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-rpc-types-anvil = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-rpc-types-trace = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-rpc-types-engine = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-rpc-types-beacon = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-genesis = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-node-bindings = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-provider = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d", default-features = false, features = [ "reqwest", ] } -alloy-eips = { git = "https://github.com/alloy-rs/alloy", default-features = false, rev = "cc68b93" } -alloy-signer = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-signer-wallet = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-network = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } -alloy-consensus = { git = "https://github.com/alloy-rs/alloy", rev = "cc68b93" } +alloy-eips = { git = "https://github.com/alloy-rs/alloy", default-features = false, rev = "14ed25d" } +alloy-signer = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-signer-wallet = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-network = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } +alloy-consensus = { git = "https://github.com/alloy-rs/alloy", rev = "14ed25d" } # misc auto_impl = "1" @@ -415,21 +421,25 @@ async-trait = "0.1.68" futures = "0.3.26" pin-project = "1.0.12" futures-util = "0.3.25" -hyper = "0.14.25" +hyper = "1.3" +hyper-util = "0.1.5" reqwest = { version = "0.12", default-features = false } tower = "0.4" -tower-http = "0.4" -http = "0.2.8" -http-body = "0.4.5" +tower-http = "0.5" # p2p discv5 = "0.6.0" igd-next = "0.14.3" # rpc -jsonrpsee = "0.22" -jsonrpsee-core = "0.22" -jsonrpsee-types = "0.22" +jsonrpsee = "0.23" +jsonrpsee-core = "0.23" +jsonrpsee-types = "0.23" +jsonrpsee-http-client = "0.23" + +# http +http = "1.0" +http-body = "1.0" # crypto secp256k1 = { version = "0.28", default-features = false, features = [ diff --git a/crates/consensus/debug-client/src/providers/rpc.rs b/crates/consensus/debug-client/src/providers/rpc.rs index e706090ed..3c0dcf999 100644 --- a/crates/consensus/debug-client/src/providers/rpc.rs +++ b/crates/consensus/debug-client/src/providers/rpc.rs @@ -3,6 +3,7 @@ use alloy_eips::BlockNumberOrTag; use alloy_provider::{Provider, ProviderBuilder}; use futures::StreamExt; use reth_node_core::rpc::types::RichBlock; +use reth_rpc_types::BlockTransactionsKind; use tokio::sync::mpsc::Sender; /// Block provider that fetches new blocks from an RPC endpoint using a websocket connection. @@ -32,7 +33,7 @@ impl BlockProvider for RpcBlockProvider { while let Some(block) = stream.next().await { let full_block = ws_provider - .get_block_by_hash(block.header.hash.unwrap(), true) + .get_block_by_hash(block.header.hash.unwrap(), BlockTransactionsKind::Full) .await .expect("failed to get block") .expect("block not found"); diff --git a/crates/node-core/Cargo.toml b/crates/node-core/Cargo.toml index 9439f545e..1d1b9e0c0 100644 --- a/crates/node-core/Cargo.toml +++ b/crates/node-core/Cargo.toml @@ -69,7 +69,9 @@ serde.workspace = true serde_json.workspace = true # http/rpc -hyper.workspace = true +http.workspace = true +jsonrpsee.workspace = true +tower.workspace = true # tracing tracing.workspace = true diff --git a/crates/node-core/src/metrics/prometheus_exporter.rs b/crates/node-core/src/metrics/prometheus_exporter.rs index 19144ccda..1ce85346f 100644 --- a/crates/node-core/src/metrics/prometheus_exporter.rs +++ b/crates/node-core/src/metrics/prometheus_exporter.rs @@ -2,10 +2,7 @@ use crate::metrics::version_metrics::register_version_metrics; use eyre::WrapErr; -use hyper::{ - service::{make_service_fn, service_fn}, - Body, Request, Response, Server, -}; +use http::Response; use metrics::describe_gauge; use metrics_exporter_prometheus::{PrometheusBuilder, PrometheusHandle}; use metrics_util::layers::{PrefixLayer, Stack}; @@ -64,29 +61,36 @@ async fn start_endpoint( hook: Arc, task_executor: TaskExecutor, ) -> eyre::Result<()> { - let make_svc = make_service_fn(move |_| { - let handle = handle.clone(); - let hook = Arc::clone(&hook); - async move { - Ok::<_, Infallible>(service_fn(move |_: Request| { + let listener = + tokio::net::TcpListener::bind(listen_addr).await.wrap_err("Could not bind to address")?; + + task_executor.spawn_with_graceful_shutdown_signal(|signal| async move { + let mut shutdown = signal.ignore_guard(); + loop { + let io = tokio::select! { + res = listener.accept() => match res { + Ok((stream, _remote_addr)) => stream, + Err(err) => { + tracing::error!(%err, "failed to accept connection"); + continue; + } + }, + _ = &mut shutdown => break, + }; + + let handle = handle.clone(); + let hook = hook.clone(); + let service = tower::service_fn(move |_| { (hook)(); let metrics = handle.render(); - async move { Ok::<_, Infallible>(Response::new(Body::from(metrics))) } - })) - } - }); + async move { Ok::<_, Infallible>(Response::new(metrics)) } + }); - let server = - Server::try_bind(&listen_addr).wrap_err("Could not bind to address")?.serve(make_svc); - - task_executor.spawn_with_graceful_shutdown_signal(move |signal| async move { - if let Err(error) = server - .with_graceful_shutdown(async move { - let _ = signal.await; - }) - .await - { - tracing::error!(%error, "metrics endpoint crashed") + if let Err(error) = + jsonrpsee::server::serve_with_graceful_shutdown(io, service, &mut shutdown).await + { + tracing::error!(%error, "metrics endpoint crashed") + } } }); diff --git a/crates/optimism/node/Cargo.toml b/crates/optimism/node/Cargo.toml index 5cd32f8f4..6de820232 100644 --- a/crates/optimism/node/Cargo.toml +++ b/crates/optimism/node/Cargo.toml @@ -33,10 +33,7 @@ revm-primitives.workspace = true # async async-trait.workspace = true -hyper.workspace = true -reqwest = { workspace = true, default-features = false, features = [ - "rustls-tls-native-roots", -] } +reqwest = { workspace = true, features = ["rustls-tls-native-roots"] } tracing.workspace = true # misc diff --git a/crates/optimism/node/src/rpc.rs b/crates/optimism/node/src/rpc.rs index be5f81af7..5ae1ba7b2 100644 --- a/crates/optimism/node/src/rpc.rs +++ b/crates/optimism/node/src/rpc.rs @@ -12,9 +12,6 @@ use std::sync::{atomic::AtomicUsize, Arc}; /// Error type when interacting with the Sequencer #[derive(Debug, thiserror::Error)] pub enum SequencerRpcError { - /// Wrapper around a [`hyper::Error`]. - #[error(transparent)] - HyperError(#[from] hyper::Error), /// Wrapper around an [`reqwest::Error`]. #[error(transparent)] HttpError(#[from] reqwest::Error), diff --git a/crates/rpc/ipc/src/server/mod.rs b/crates/rpc/ipc/src/server/mod.rs index b47c0d86a..d001909d3 100644 --- a/crates/rpc/ipc/src/server/mod.rs +++ b/crates/rpc/ipc/src/server/mod.rs @@ -91,7 +91,7 @@ where /// async fn run_server() -> Result<(), Box> { /// let server = Builder::default().build("/tmp/my-uds"); /// let mut module = RpcModule::new(()); - /// module.register_method("say_hello", |_, _| "lo")?; + /// module.register_method("say_hello", |_, _, _| "lo")?; /// let handle = server.start(module).await?; /// /// // In this example we don't care about doing shutdown so let's it run forever. @@ -390,7 +390,7 @@ where let rpc_service = self.rpc_middleware.service(RpcService::new( self.inner.methods.clone(), max_response_body_size, - self.inner.conn_id as usize, + self.inner.conn_id.into(), cfg, )); // an ipc connection needs to handle read+write concurrently @@ -896,7 +896,7 @@ mod tests { let endpoint = dummy_endpoint(); let server = Builder::default().max_response_body_size(100).build(&endpoint); let mut module = RpcModule::new(()); - module.register_method("anything", |_, _| "a".repeat(101)).unwrap(); + module.register_method("anything", |_, _, _| "a".repeat(101)).unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); @@ -911,7 +911,7 @@ mod tests { let endpoint = dummy_endpoint(); let server = Builder::default().max_request_body_size(100).build(&endpoint); let mut module = RpcModule::new(()); - module.register_method("anything", |_, _| "succeed").unwrap(); + module.register_method("anything", |_, _, _| "succeed").unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); @@ -939,7 +939,7 @@ mod tests { let endpoint = dummy_endpoint(); let server = Builder::default().max_connections(2).build(&endpoint); let mut module = RpcModule::new(()); - module.register_method("anything", |_, _| "succeed").unwrap(); + module.register_method("anything", |_, _, _| "succeed").unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); @@ -973,7 +973,7 @@ mod tests { let server = Builder::default().build(&endpoint); let mut module = RpcModule::new(()); let msg = r#"{"jsonrpc":"2.0","id":83,"result":"0x7a69"}"#; - module.register_method("eth_chainId", move |_, _| msg).unwrap(); + module.register_method("eth_chainId", move |_, _, _| msg).unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); @@ -987,7 +987,7 @@ mod tests { let endpoint = dummy_endpoint(); let server = Builder::default().build(&endpoint); let mut module = RpcModule::new(()); - module.register_method("anything", |_, _| "ok").unwrap(); + module.register_method("anything", |_, _, _| "ok").unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); @@ -1013,7 +1013,7 @@ mod tests { let server = Builder::default().build(&endpoint); let mut module = RpcModule::new(()); let msg = r#"{"admin":"1.0","debug":"1.0","engine":"1.0","eth":"1.0","ethash":"1.0","miner":"1.0","net":"1.0","rpc":"1.0","txpool":"1.0","web3":"1.0"}"#; - module.register_method("rpc_modules", move |_, _| msg).unwrap(); + module.register_method("rpc_modules", move |_, _, _| msg).unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); @@ -1036,7 +1036,7 @@ mod tests { "subscribe_hello", "s_hello", "unsubscribe_hello", - |_, pending, tx| async move { + |_, pending, tx, _| async move { let rx = tx.subscribe(); let stream = BroadcastStream::new(rx); pipe_from_stream_with_bounded_buffer(pending, stream).await?; @@ -1088,8 +1088,8 @@ mod tests { let mut module = RpcModule::new(()); let goodbye_msg = r#"{"jsonrpc":"2.0","id":1,"result":"goodbye"}"#; let hello_msg = r#"{"jsonrpc":"2.0","id":2,"result":"hello"}"#; - module.register_method("say_hello", move |_, _| hello_msg).unwrap(); - module.register_method("say_goodbye", move |_, _| goodbye_msg).unwrap(); + module.register_method("say_hello", move |_, _, _| hello_msg).unwrap(); + module.register_method("say_goodbye", move |_, _, _| goodbye_msg).unwrap(); let handle = server.start(module).await.unwrap(); tokio::spawn(handle.stopped()); diff --git a/crates/rpc/ipc/src/server/rpc_service.rs b/crates/rpc/ipc/src/server/rpc_service.rs index d98564bda..2f645605d 100644 --- a/crates/rpc/ipc/src/server/rpc_service.rs +++ b/crates/rpc/ipc/src/server/rpc_service.rs @@ -6,15 +6,15 @@ use jsonrpsee::{ IdProvider, }, types::{error::reject_too_many_subscriptions, ErrorCode, ErrorObject, Request}, - BoundedSubscriptions, ConnectionDetails, MethodCallback, MethodResponse, MethodSink, Methods, - SubscriptionState, + BoundedSubscriptions, ConnectionId, Extensions, MethodCallback, MethodResponse, MethodSink, + Methods, SubscriptionState, }; use std::sync::Arc; /// JSON-RPC service middleware. #[derive(Clone, Debug)] pub struct RpcService { - conn_id: usize, + conn_id: ConnectionId, methods: Methods, max_response_body_size: usize, cfg: RpcServiceCfg, @@ -39,7 +39,7 @@ impl RpcService { pub(crate) const fn new( methods: Methods, max_response_body_size: usize, - conn_id: usize, + conn_id: ConnectionId, cfg: RpcServiceCfg, ) -> Self { Self { methods, max_response_body_size, conn_id, cfg } @@ -58,6 +58,7 @@ impl<'a> RpcServiceT<'a> for RpcService { let params = req.params(); let name = req.method_name(); let id = req.id().clone(); + let extensions = Extensions::new(); match self.methods.method_with_name(name) { None => { @@ -65,31 +66,17 @@ impl<'a> RpcServiceT<'a> for RpcService { ResponseFuture::ready(rp) } Some((_name, method)) => match method { + MethodCallback::Sync(callback) => { + let rp = (callback)(id, params, max_response_body_size, extensions); + ResponseFuture::ready(rp) + } MethodCallback::Async(callback) => { let params = params.into_owned(); let id = id.into_owned(); - let fut = (callback)(id, params, conn_id, max_response_body_size); + let fut = (callback)(id, params, conn_id, max_response_body_size, extensions); ResponseFuture::future(fut) } - MethodCallback::AsyncWithDetails(callback) => { - let params = params.into_owned(); - let id = id.into_owned(); - - // Note: Add the `Request::extensions` to the connection details when available - // here. - let fut = (callback)( - id, - params, - ConnectionDetails::_new(conn_id), - max_response_body_size, - ); - ResponseFuture::future(fut) - } - MethodCallback::Sync(callback) => { - let rp = (callback)(id, params, max_response_body_size); - ResponseFuture::ready(rp) - } MethodCallback::Subscription(callback) => { let RpcServiceCfg::CallsAndSubscriptions { bounded_subscriptions, @@ -110,7 +97,7 @@ impl<'a> RpcServiceT<'a> for RpcService { subscription_permit: p, }; - let fut = callback(id.clone(), params, sink, conn_state); + let fut = callback(id.clone(), params, sink, conn_state, extensions); ResponseFuture::future(fut) } else { let max = bounded_subscriptions.max(); @@ -129,7 +116,7 @@ impl<'a> RpcServiceT<'a> for RpcService { return ResponseFuture::ready(rp); }; - let rp = callback(id, params, conn_id, max_response_body_size); + let rp = callback(id, params, conn_id, max_response_body_size, extensions); ResponseFuture::ready(rp) } }, diff --git a/crates/rpc/rpc-builder/Cargo.toml b/crates/rpc/rpc-builder/Cargo.toml index a5ff654ae..fa1aabae7 100644 --- a/crates/rpc/rpc-builder/Cargo.toml +++ b/crates/rpc/rpc-builder/Cargo.toml @@ -30,7 +30,7 @@ reth-engine-primitives.workspace = true jsonrpsee = { workspace = true, features = ["server"] } tower-http = { workspace = true, features = ["full"] } tower = { workspace = true, features = ["full"] } -hyper.workspace = true +http.workspace = true pin-project.workspace = true # metrics diff --git a/crates/rpc/rpc-builder/src/auth.rs b/crates/rpc/rpc-builder/src/auth.rs index 0d865987b..62a676eaa 100644 --- a/crates/rpc/rpc-builder/src/auth.rs +++ b/crates/rpc/rpc-builder/src/auth.rs @@ -1,6 +1,5 @@ use crate::error::{RpcError, ServerKind}; -use hyper::header::AUTHORIZATION; -pub use jsonrpsee::server::ServerBuilder; +use http::header::AUTHORIZATION; use jsonrpsee::{ core::RegisterMethodError, http_client::{transport::HttpBackend, HeaderMap}, @@ -8,7 +7,6 @@ use jsonrpsee::{ Methods, }; use reth_engine_primitives::EngineTypes; -pub use reth_ipc::server::Builder as IpcServerBuilder; use reth_rpc::EthSubscriptionIdProvider; use reth_rpc_api::servers::*; use reth_rpc_layer::{ @@ -19,6 +17,9 @@ use reth_rpc_server_types::constants; use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use tower::layer::util::Identity; +pub use jsonrpsee::server::ServerBuilder; +pub use reth_ipc::server::Builder as IpcServerBuilder; + /// Server configuration for the auth server. #[derive(Debug)] pub struct AuthServerConfig { diff --git a/crates/rpc/rpc-builder/src/cors.rs b/crates/rpc/rpc-builder/src/cors.rs index 6124e9e4e..0d98b4411 100644 --- a/crates/rpc/rpc-builder/src/cors.rs +++ b/crates/rpc/rpc-builder/src/cors.rs @@ -1,4 +1,4 @@ -use hyper::{http::HeaderValue, Method}; +use http::{HeaderValue, Method}; use tower_http::cors::{AllowOrigin, Any, CorsLayer}; /// Error thrown when parsing cors domains went wrong diff --git a/crates/rpc/rpc-builder/src/lib.rs b/crates/rpc/rpc-builder/src/lib.rs index 8896cbdd2..d05ec8239 100644 --- a/crates/rpc/rpc-builder/src/lib.rs +++ b/crates/rpc/rpc-builder/src/lib.rs @@ -160,8 +160,7 @@ use crate::{ metrics::RpcRequestMetrics, }; use error::{ConflictingModules, RpcError, ServerKind}; -use hyper::{header::AUTHORIZATION, HeaderMap}; -pub use jsonrpsee::server::ServerBuilder; +use http::{header::AUTHORIZATION, HeaderMap}; use jsonrpsee::{ core::RegisterMethodError, server::{AlreadyStoppedError, IdProvider, RpcServiceBuilder, Server, ServerHandle}, @@ -170,9 +169,6 @@ use jsonrpsee::{ use reth_engine_primitives::EngineTypes; use reth_evm::ConfigureEvm; use reth_ipc::server::IpcServer; -pub use reth_ipc::server::{ - Builder as IpcServerBuilder, RpcServiceBuilder as IpcRpcServiceBuilder, -}; use reth_network_api::{noop::NoopNetwork, NetworkInfo, Peers}; use reth_provider::{ AccountReader, BlockReader, BlockReaderIdExt, CanonStateSubscriptions, ChainSpecProvider, @@ -204,14 +200,16 @@ use std::{ sync::Arc, time::{Duration, SystemTime, UNIX_EPOCH}, }; -pub use tower::layer::util::{Identity, Stack}; use tower_http::cors::CorsLayer; use tracing::{instrument, trace}; -pub use crate::eth::{EthConfig, EthHandlers}; - // re-export for convenience +pub use jsonrpsee::server::ServerBuilder; +pub use reth_ipc::server::{ + Builder as IpcServerBuilder, RpcServiceBuilder as IpcRpcServiceBuilder, +}; pub use reth_rpc_server_types::{constants, RethRpcModule, RpcModuleSelection}; +pub use tower::layer::util::{Identity, Stack}; /// Auth server utilities. pub mod auth; @@ -227,6 +225,7 @@ pub mod error; /// Eth utils mod eth; +pub use eth::{EthConfig, EthHandlers}; // Rpc server metrics mod metrics; @@ -1959,6 +1958,7 @@ impl RpcServerHandle { client.expect("failed to create http client").into() } + /// Returns a ws client connected to the server. pub async fn ws_client(&self) -> Option { let url = self.ws_url()?; diff --git a/crates/rpc/rpc-engine-api/Cargo.toml b/crates/rpc/rpc-engine-api/Cargo.toml index e18ecafe4..80c69d8a4 100644 --- a/crates/rpc/rpc-engine-api/Cargo.toml +++ b/crates/rpc/rpc-engine-api/Cargo.toml @@ -34,11 +34,11 @@ metrics.workspace = true # misc async-trait.workspace = true -thiserror.workspace = true -jsonrpsee-types.workspace = true jsonrpsee-core.workspace = true -tracing.workspace = true +jsonrpsee-types.workspace = true serde.workspace = true +thiserror.workspace = true +tracing.workspace = true [dev-dependencies] reth-ethereum-engine-primitives.workspace = true diff --git a/crates/rpc/rpc-engine-api/src/engine_api.rs b/crates/rpc/rpc-engine-api/src/engine_api.rs index b793440d9..a856bdc17 100644 --- a/crates/rpc/rpc-engine-api/src/engine_api.rs +++ b/crates/rpc/rpc-engine-api/src/engine_api.rs @@ -804,6 +804,7 @@ where self.inner.metrics.latency.exchange_transition_configuration.record(start.elapsed()); Ok(res?) } + /// Handler for `engine_getClientVersionV1` /// /// See also diff --git a/crates/rpc/rpc-layer/Cargo.toml b/crates/rpc/rpc-layer/Cargo.toml index b08bb21e7..b11e8ea50 100644 --- a/crates/rpc/rpc-layer/Cargo.toml +++ b/crates/rpc/rpc-layer/Cargo.toml @@ -14,15 +14,14 @@ workspace = true alloy-rpc-types-engine.workspace = true http.workspace = true -hyper.workspace = true -tower.workspace = true -http-body.workspace = true +jsonrpsee-http-client.workspace = true pin-project.workspace = true +tower.workspace = true tracing.workspace = true [dev-dependencies] -hyper = { workspace = true, features = ["client", "tcp"] } +reqwest.workspace = true assert_matches.workspace = true tokio = { workspace = true, features = ["macros"] } tempfile.workspace = true diff --git a/crates/rpc/rpc-layer/src/auth_client_layer.rs b/crates/rpc/rpc-layer/src/auth_client_layer.rs index 94403ce4b..5eda04aa0 100644 --- a/crates/rpc/rpc-layer/src/auth_client_layer.rs +++ b/crates/rpc/rpc-layer/src/auth_client_layer.rs @@ -1,11 +1,10 @@ use crate::{Claims, JwtSecret}; -use http::HeaderValue; -use hyper::{header::AUTHORIZATION, service::Service}; +use http::{header::AUTHORIZATION, HeaderValue}; use std::{ task::{Context, Poll}, time::{Duration, SystemTime, UNIX_EPOCH}, }; -use tower::Layer; +use tower::{Layer, Service}; /// A layer that adds a new JWT token to every request using `AuthClientService`. #[derive(Debug)] @@ -41,9 +40,9 @@ impl AuthClientService { } } -impl Service> for AuthClientService +impl Service> for AuthClientService where - S: Service>, + S: Service>, { type Response = S::Response; type Error = S::Error; @@ -53,7 +52,7 @@ where self.inner.poll_ready(cx) } - fn call(&mut self, mut request: hyper::Request) -> Self::Future { + fn call(&mut self, mut request: http::Request) -> Self::Future { request.headers_mut().insert(AUTHORIZATION, secret_to_bearer_header(&self.secret)); self.inner.call(request) } diff --git a/crates/rpc/rpc-layer/src/auth_layer.rs b/crates/rpc/rpc-layer/src/auth_layer.rs index 6b10ec032..0a11ae802 100644 --- a/crates/rpc/rpc-layer/src/auth_layer.rs +++ b/crates/rpc/rpc-layer/src/auth_layer.rs @@ -1,6 +1,5 @@ use super::AuthValidator; -use http::{Request, Response}; -use http_body::Body; +use jsonrpsee_http_client::{HttpRequest, HttpResponse}; use pin_project::pin_project; use std::{ future::Future, @@ -65,7 +64,7 @@ where /// This type is the actual implementation of the middleware. It follows the [`Service`] /// specification to correctly proxy Http requests to its inner service after headers validation. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct AuthService { /// Performs auth validation logics validator: V, @@ -73,16 +72,15 @@ pub struct AuthService { inner: S, } -impl Service> for AuthService +impl Service for AuthService where - S: Service, Response = Response>, - V: AuthValidator, - ReqBody: Body, - ResBody: Body, + S: Service, + V: AuthValidator, + Self: Clone, { - type Response = Response; + type Response = HttpResponse; type Error = S::Error; - type Future = ResponseFuture; + type Future = ResponseFuture; /// If we get polled it means that we dispatched an authorized Http request to the inner layer. /// So we just poll the inner layer ourselves. @@ -96,7 +94,7 @@ where /// Returns a future that wraps either: /// - The inner service future for authorized requests /// - An error Http response in case of authorization errors - fn call(&mut self, req: Request) -> Self::Future { + fn call(&mut self, req: HttpRequest) -> Self::Future { match self.validator.validate(req.headers()) { Ok(_) => ResponseFuture::future(self.inner.call(req)), Err(res) => ResponseFuture::invalid_auth(res), @@ -106,39 +104,35 @@ where #[pin_project] #[allow(missing_debug_implementations)] -pub struct ResponseFuture { +pub struct ResponseFuture { #[pin] - kind: Kind, + kind: Kind, } -impl ResponseFuture -where - B: Body, -{ +impl ResponseFuture { const fn future(future: F) -> Self { Self { kind: Kind::Future { future } } } - const fn invalid_auth(err_res: Response) -> Self { + const fn invalid_auth(err_res: HttpResponse) -> Self { Self { kind: Kind::Error { response: Some(err_res) } } } } #[pin_project(project = KindProj)] -enum Kind { +enum Kind { Future { #[pin] future: F, }, Error { - response: Option>, + response: Option, }, } -impl Future for ResponseFuture +impl Future for ResponseFuture where - F: Future, E>>, - B: Body, + F: Future>, { type Output = F::Output; @@ -158,12 +152,11 @@ mod tests { use super::*; use crate::JwtAuthValidator; use alloy_rpc_types_engine::{Claims, JwtError, JwtSecret}; - use http::{header, Method, Request, StatusCode}; - use hyper::{body, Body}; use jsonrpsee::{ server::{RandomStringIdProvider, ServerBuilder, ServerHandle}, RpcModule, }; + use reqwest::{header, StatusCode}; use std::{ net::SocketAddr, time::{SystemTime, UNIX_EPOCH}, @@ -234,25 +227,20 @@ mod tests { async fn send_request(jwt: Option) -> (StatusCode, String) { let server = spawn_server().await; - let client = hyper::Client::new(); + let client = + reqwest::Client::builder().timeout(std::time::Duration::from_secs(1)).build().unwrap(); - let jwt = jwt.unwrap_or_default(); - let address = format!("http://{AUTH_ADDR}:{AUTH_PORT}"); - let bearer = format!("Bearer {jwt}"); let body = r#"{"jsonrpc": "2.0", "method": "greet_melkor", "params": [], "id": 1}"#; - - let req = Request::builder() - .method(Method::POST) - .header(header::AUTHORIZATION, bearer) + let response = client + .post(&format!("http://{AUTH_ADDR}:{AUTH_PORT}")) + .bearer_auth(jwt.unwrap_or_default()) + .body(body) .header(header::CONTENT_TYPE, "application/json") - .uri(address) - .body(Body::from(body)) + .send() + .await .unwrap(); - - let res = client.request(req).await.unwrap(); - let status = res.status(); - let body_bytes = body::to_bytes(res.into_body()).await.unwrap(); - let body = String::from_utf8(body_bytes.to_vec()).expect("response was not valid utf-8"); + let status = response.status(); + let body = response.text().await.unwrap(); server.stop().unwrap(); server.stopped().await; @@ -278,7 +266,7 @@ mod tests { // Create a mock rpc module let mut module = RpcModule::new(()); - module.register_method("greet_melkor", |_, _| "You are the dark lord").unwrap(); + module.register_method("greet_melkor", |_, _, _| "You are the dark lord").unwrap(); server.start(module) } diff --git a/crates/rpc/rpc-layer/src/jwt_validator.rs b/crates/rpc/rpc-layer/src/jwt_validator.rs index f1485be9c..5fe3beaba 100644 --- a/crates/rpc/rpc-layer/src/jwt_validator.rs +++ b/crates/rpc/rpc-layer/src/jwt_validator.rs @@ -1,7 +1,7 @@ -use http::{header, HeaderMap, Response, StatusCode}; -use tracing::error; - use crate::{AuthValidator, JwtError, JwtSecret}; +use http::{header, HeaderMap, Response, StatusCode}; +use jsonrpsee_http_client::{HttpBody, HttpResponse}; +use tracing::error; /// Implements JWT validation logics and integrates /// to an Http [`AuthLayer`][crate::AuthLayer] @@ -22,9 +22,7 @@ impl JwtAuthValidator { } impl AuthValidator for JwtAuthValidator { - type ResponseBody = hyper::Body; - - fn validate(&self, headers: &HeaderMap) -> Result<(), Response> { + fn validate(&self, headers: &HeaderMap) -> Result<(), HttpResponse> { match get_bearer(headers) { Some(jwt) => match self.secret.validate(&jwt) { Ok(_) => Ok(()), @@ -55,14 +53,13 @@ fn get_bearer(headers: &HeaderMap) -> Option { Some(token.into()) } -fn err_response(err: JwtError) -> Response { - let body = hyper::Body::from(err.to_string()); +fn err_response(err: JwtError) -> HttpResponse { // We build a response from an error message. // We don't cope with headers or other structured fields. // Then we are safe to "expect" on the result. Response::builder() .status(StatusCode::UNAUTHORIZED) - .body(body) + .body(HttpBody::new(err.to_string())) .expect("This should never happen") } diff --git a/crates/rpc/rpc-layer/src/lib.rs b/crates/rpc/rpc-layer/src/lib.rs index a379461df..e4f7dbe06 100644 --- a/crates/rpc/rpc-layer/src/lib.rs +++ b/crates/rpc/rpc-layer/src/lib.rs @@ -8,7 +8,8 @@ #![cfg_attr(not(test), warn(unused_crate_dependencies))] #![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))] -use http::{HeaderMap, Response}; +use http::HeaderMap; +use jsonrpsee_http_client::HttpResponse; mod auth_client_layer; mod auth_layer; @@ -24,10 +25,7 @@ pub use jwt_validator::JwtAuthValidator; /// General purpose trait to validate Http Authorization headers. It's supposed to be integrated as /// a validator trait into an [`AuthLayer`]. pub trait AuthValidator { - /// Body type of the error response - type ResponseBody; - /// This function is invoked by the [`AuthLayer`] to perform validation on Http headers. /// The result conveys validation errors in the form of an Http response. - fn validate(&self, headers: &HeaderMap) -> Result<(), Response>; + fn validate(&self, headers: &HeaderMap) -> Result<(), HttpResponse>; } diff --git a/crates/rpc/rpc/src/eth/api/transactions.rs b/crates/rpc/rpc/src/eth/api/transactions.rs index 81e2ae346..52efa4c34 100644 --- a/crates/rpc/rpc/src/eth/api/transactions.rs +++ b/crates/rpc/rpc/src/eth/api/transactions.rs @@ -1734,7 +1734,7 @@ pub(crate) fn build_transaction_receipt_with_block_receipts( } let rpc_receipt = reth_rpc_types::Receipt { - status: receipt.success, + status: receipt.success.into(), cumulative_gas_used: receipt.cumulative_gas_used as u128, logs, }; diff --git a/crates/rpc/rpc/src/otterscan.rs b/crates/rpc/rpc/src/otterscan.rs index f1343c46e..e658402f3 100644 --- a/crates/rpc/rpc/src/otterscan.rs +++ b/crates/rpc/rpc/src/otterscan.rs @@ -158,7 +158,12 @@ where .drain(page_start..page_end) .map(|receipt| { let receipt = receipt.inner.map_inner(|receipt| OtsReceipt { - status: receipt.inner.receipt.status, + status: receipt + .inner + .receipt + .status + .as_eip658() + .expect("ETH API returned pre-EIP-658 status"), cumulative_gas_used: receipt.inner.receipt.cumulative_gas_used as u64, logs: None, logs_bloom: None, diff --git a/crates/tasks/src/shutdown.rs b/crates/tasks/src/shutdown.rs index ec63450e6..918a0cf36 100644 --- a/crates/tasks/src/shutdown.rs +++ b/crates/tasks/src/shutdown.rs @@ -13,8 +13,6 @@ use std::{ use tokio::sync::oneshot; /// A Future that resolves when the shutdown event has been fired. -/// -/// The [`TaskManager`](crate) #[derive(Debug)] pub struct GracefulShutdown { shutdown: Shutdown, @@ -25,6 +23,13 @@ impl GracefulShutdown { pub(crate) fn new(shutdown: Shutdown, guard: GracefulShutdownGuard) -> Self { Self { shutdown, guard: Some(guard) } } + + /// Returns a new shutdown future that is ignores the returned [`GracefulShutdownGuard`]. + /// + /// This just maps the return value of the future to `()`, it does not drop the guard. + pub fn ignore_guard(self) -> impl Future + Send + Sync + Unpin + 'static { + self.map(drop) + } } impl Future for GracefulShutdown { diff --git a/deny.toml b/deny.toml index c6532bbf5..4dff1b9ce 100644 --- a/deny.toml +++ b/deny.toml @@ -89,10 +89,9 @@ unknown-registry = "warn" # in the allow list is encountered unknown-git = "deny" allow-git = [ - # TODO: remove, see ./Cargo.toml + # TODO: Please avoid adding new entries to this list. "https://github.com/alloy-rs/alloy", "https://github.com/foundry-rs/block-explorers", "https://github.com/bluealloy/revm", - "https://github.com/paradigmxyz/evm-inspectors", - "https://github.com/sigp/discv5", + "https://github.com/paradigmxyz/revm-inspectors", ] diff --git a/examples/beacon-api-sidecar-fetcher/Cargo.toml b/examples/beacon-api-sidecar-fetcher/Cargo.toml index 8d7fd39ef..3da978826 100644 --- a/examples/beacon-api-sidecar-fetcher/Cargo.toml +++ b/examples/beacon-api-sidecar-fetcher/Cargo.toml @@ -11,10 +11,10 @@ reth-node-ethereum.workspace = true alloy-rpc-types-beacon.workspace = true -serde.workspace = true -serde_json.workspace = true clap.workspace = true -futures-util.workspace = true eyre.workspace = true -thiserror.workspace = true +futures-util.workspace = true reqwest.workspace = true +serde_json.workspace = true +serde.workspace = true +thiserror.workspace = true diff --git a/examples/beacon-api-sse/Cargo.toml b/examples/beacon-api-sse/Cargo.toml index 4582f2598..35bc4be0c 100644 --- a/examples/beacon-api-sse/Cargo.toml +++ b/examples/beacon-api-sse/Cargo.toml @@ -8,10 +8,11 @@ license.workspace = true [dependencies] reth.workspace = true reth-node-ethereum.workspace = true + alloy-rpc-types-beacon.workspace = true clap.workspace = true -tracing.workspace = true futures-util.workspace = true +mev-share-sse = { version = "0.3.0", default-features = false } tokio = { workspace = true, features = ["time"] } -mev-share-sse = { version = "0.2.0" , default-features = false } \ No newline at end of file +tracing.workspace = true