diff --git a/Cargo.lock b/Cargo.lock index ffacd6f..68f53c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -394,9 +394,9 @@ dependencies = [ [[package]] name = "alloy-pubsub" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ba46eb69ddf7a9925b81f15229cb74658e6eebe5dd30a5b74e2cd040380573" +checksum = "222cd9b17b1c5ad48de51a88ffbdb17f17145170288f22662f80ac88739125e6" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -435,9 +435,9 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc2bd1e7403463a5f2c61e955bcc9d3072b63aa177442b0f9aa6a6d22a941e3" +checksum = "5b2ab59712c594c9624aaa69e38e4d38f180cb569f1fa46cdaf8c21fd50793e5" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -748,9 +748,9 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be77579633ebbc1266ae6fd7694f75c408beb1aeb6865d0b18f22893c265a061" +checksum = "9dc2c8f6b8c227ef0398f702d954c4ab572c2ead3c1ed4a5157aa1cbaf959747" dependencies = [ "alloy-json-rpc", "base64 0.22.1", @@ -768,9 +768,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fd1a5d0827939847983b46f2f79510361f901dc82f8e3c38ac7397af142c6e" +checksum = "dd328e990d57f4c4e63899fb2c26877597d6503f8e0022a3d71b2d753ecbfc0c" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -783,9 +783,9 @@ dependencies = [ [[package]] name = "alloy-transport-ws" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f27837bb4a1d6c83a28231c94493e814882f0e9058648a97e908a5f3fc9fcf" +checksum = "e222e950ecc4ea12fbfb524b9a2275cac2cd5f57c8ce25bcaf1bd3ff80dd8fc8" dependencies = [ "alloy-pubsub", "alloy-transport", @@ -2741,6 +2741,21 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -4434,6 +4449,23 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" +[[package]] +name = "native-tls" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "nom" version = "7.1.3" @@ -4638,9 +4670,9 @@ dependencies = [ [[package]] name = "op-alloy-consensus" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7c98055fd048073738df0cc6d6537e992a0d8828f39d99a469e870db126dbd" +checksum = "99d49163f952491820088dd0e66f3a35d63337c3066eceff0a931bf83a8e2101" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -4656,9 +4688,9 @@ dependencies = [ [[package]] name = "op-alloy-genesis" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d631e8113cf88d30e621022677209caa148a9ca3ccb590fd34bbd1c731e3aff3" +checksum = "8e46c2ab105f679f0cbfbc3fb762f3456d4b8556c841e667fc8f3c2226eb6c1e" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -4670,9 +4702,9 @@ dependencies = [ [[package]] name = "op-alloy-protocol" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b39574acb1873315e6bd89df174f6223e897188fb87eeea2ad1eda04f7d28eb" +checksum = "6c439457b2a1791325603fc18a94cc175e0b4b1127f11ff8a45071f05d044dcb" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -4687,9 +4719,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919e9b69212d61f3c8932bfb717c7ad458ea3fc52072b3433d99994f8223d555" +checksum = "9c9556293835232b019ec9c6fd84e4265a3151111af60ea09b5b513e3dbed41c" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -4705,9 +4737,9 @@ dependencies = [ [[package]] name = "op-alloy-rpc-types-engine" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e3a47ea24cee189b4351be247fd138c68571704ee57060cf5a722502f44412c" +checksum = "8a42a5ac4e07ed226b6a2aeefaad9b2cc7ec160e372ba626a4214d681a355fc2" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -4750,12 +4782,50 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -4776,6 +4846,7 @@ dependencies = [ "enr", "eyre", "futures", + "rand", "reth", "reth-discv5", "reth-eth-wire", @@ -4788,6 +4859,7 @@ dependencies = [ "reth-node-ethereum", "reth-primitives", "reth-testing-utils", + "reth-tokio-util", "reth-tracing", "serde", "serde_json", @@ -5586,7 +5658,7 @@ dependencies = [ [[package]] name = "reth" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -5658,7 +5730,7 @@ dependencies = [ [[package]] name = "reth-auto-seal-consensus" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -5689,7 +5761,7 @@ dependencies = [ [[package]] name = "reth-basic-payload-builder" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -5715,7 +5787,7 @@ dependencies = [ [[package]] name = "reth-beacon-consensus" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -5750,7 +5822,7 @@ dependencies = [ [[package]] name = "reth-blockchain-tree" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -5783,7 +5855,7 @@ dependencies = [ [[package]] name = "reth-blockchain-tree-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "reth-consensus", @@ -5796,7 +5868,7 @@ dependencies = [ [[package]] name = "reth-chain-state" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -5825,7 +5897,7 @@ dependencies = [ [[package]] name = "reth-chainspec" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-chains", "alloy-consensus 0.5.4", @@ -5845,7 +5917,7 @@ dependencies = [ [[package]] name = "reth-cli" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-genesis", "clap", @@ -5859,7 +5931,7 @@ dependencies = [ [[package]] name = "reth-cli-commands" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "ahash", "alloy-eips 0.5.4", @@ -5917,7 +5989,7 @@ dependencies = [ [[package]] name = "reth-cli-runner" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "reth-tasks", "tokio", @@ -5927,7 +5999,7 @@ dependencies = [ [[package]] name = "reth-cli-util" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -5944,7 +6016,7 @@ dependencies = [ [[package]] name = "reth-codecs" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -5963,7 +6035,7 @@ dependencies = [ [[package]] name = "reth-codecs-derive" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "convert_case", "proc-macro2", @@ -5974,7 +6046,7 @@ dependencies = [ [[package]] name = "reth-config" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "eyre", "humantime-serde", @@ -5988,7 +6060,7 @@ dependencies = [ [[package]] name = "reth-consensus" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6000,7 +6072,7 @@ dependencies = [ [[package]] name = "reth-consensus-common" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -6014,7 +6086,7 @@ dependencies = [ [[package]] name = "reth-consensus-debug-client" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -6038,7 +6110,7 @@ dependencies = [ [[package]] name = "reth-db" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "bytes", @@ -6071,7 +6143,7 @@ dependencies = [ [[package]] name = "reth-db-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -6096,7 +6168,7 @@ dependencies = [ [[package]] name = "reth-db-common" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-genesis", "alloy-primitives", @@ -6124,7 +6196,7 @@ dependencies = [ [[package]] name = "reth-db-models" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "arbitrary", @@ -6139,7 +6211,7 @@ dependencies = [ [[package]] name = "reth-discv4" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6164,7 +6236,7 @@ dependencies = [ [[package]] name = "reth-discv5" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6188,7 +6260,7 @@ dependencies = [ [[package]] name = "reth-dns-discovery" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "data-encoding", @@ -6212,7 +6284,7 @@ dependencies = [ [[package]] name = "reth-downloaders" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6245,7 +6317,7 @@ dependencies = [ [[package]] name = "reth-ecies" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "aes", "alloy-primitives", @@ -6276,7 +6348,7 @@ dependencies = [ [[package]] name = "reth-engine-local" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -6306,7 +6378,7 @@ dependencies = [ [[package]] name = "reth-engine-primitives" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "reth-execution-types", @@ -6319,7 +6391,7 @@ dependencies = [ [[package]] name = "reth-engine-service" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "futures", "pin-project", @@ -6342,7 +6414,7 @@ dependencies = [ [[package]] name = "reth-engine-tree" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6383,7 +6455,7 @@ dependencies = [ [[package]] name = "reth-engine-util" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -6416,7 +6488,7 @@ dependencies = [ [[package]] name = "reth-errors" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "reth-blockchain-tree-api", "reth-consensus", @@ -6429,7 +6501,7 @@ dependencies = [ [[package]] name = "reth-eth-wire" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6456,7 +6528,7 @@ dependencies = [ [[package]] name = "reth-eth-wire-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-chains", "alloy-eips 0.5.4", @@ -6474,7 +6546,7 @@ dependencies = [ [[package]] name = "reth-ethereum-cli" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "eyre", "reth-chainspec", @@ -6484,7 +6556,7 @@ dependencies = [ [[package]] name = "reth-ethereum-consensus" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -6499,7 +6571,7 @@ dependencies = [ [[package]] name = "reth-ethereum-engine-primitives" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6518,7 +6590,7 @@ dependencies = [ [[package]] name = "reth-ethereum-forks" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-chains", "alloy-primitives", @@ -6538,7 +6610,7 @@ dependencies = [ [[package]] name = "reth-ethereum-payload-builder" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -6565,7 +6637,7 @@ dependencies = [ [[package]] name = "reth-etl" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "rayon", "reth-db-api", @@ -6575,7 +6647,7 @@ dependencies = [ [[package]] name = "reth-evm" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6601,7 +6673,7 @@ dependencies = [ [[package]] name = "reth-evm-ethereum" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -6620,7 +6692,7 @@ dependencies = [ [[package]] name = "reth-execution-errors" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6636,7 +6708,7 @@ dependencies = [ [[package]] name = "reth-execution-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6651,7 +6723,7 @@ dependencies = [ [[package]] name = "reth-exex" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6687,7 +6759,7 @@ dependencies = [ [[package]] name = "reth-exex-test-utils" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "eyre", "futures-util", @@ -6719,7 +6791,7 @@ dependencies = [ [[package]] name = "reth-exex-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6732,7 +6804,7 @@ dependencies = [ [[package]] name = "reth-fs-util" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "serde", "serde_json", @@ -6742,7 +6814,7 @@ dependencies = [ [[package]] name = "reth-invalid-block-hooks" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6767,7 +6839,7 @@ dependencies = [ [[package]] name = "reth-ipc" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "async-trait", "bytes", @@ -6788,7 +6860,7 @@ dependencies = [ [[package]] name = "reth-libmdbx" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "bitflags 2.6.0", "byteorder", @@ -6805,7 +6877,7 @@ dependencies = [ [[package]] name = "reth-mdbx-sys" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "bindgen", "cc", @@ -6814,7 +6886,7 @@ dependencies = [ [[package]] name = "reth-metrics" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "futures", "metrics", @@ -6826,7 +6898,7 @@ dependencies = [ [[package]] name = "reth-net-banlist" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", ] @@ -6834,7 +6906,7 @@ dependencies = [ [[package]] name = "reth-net-nat" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "futures-util", "if-addrs", @@ -6848,7 +6920,7 @@ dependencies = [ [[package]] name = "reth-network" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6900,7 +6972,7 @@ dependencies = [ [[package]] name = "reth-network-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rpc-types-admin", @@ -6923,7 +6995,7 @@ dependencies = [ [[package]] name = "reth-network-p2p" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -6944,7 +7016,7 @@ dependencies = [ [[package]] name = "reth-network-peers" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -6959,7 +7031,7 @@ dependencies = [ [[package]] name = "reth-network-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "humantime-serde", "reth-ethereum-forks", @@ -6973,7 +7045,7 @@ dependencies = [ [[package]] name = "reth-nippy-jar" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "anyhow", "bincode", @@ -6990,7 +7062,7 @@ dependencies = [ [[package]] name = "reth-node-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-rpc-types-engine", "eyre", @@ -7012,7 +7084,7 @@ dependencies = [ [[package]] name = "reth-node-builder" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rpc-types", @@ -7077,7 +7149,7 @@ dependencies = [ [[package]] name = "reth-node-core" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7125,7 +7197,7 @@ dependencies = [ [[package]] name = "reth-node-ethereum" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "eyre", "reth-auto-seal-consensus", @@ -7153,7 +7225,7 @@ dependencies = [ [[package]] name = "reth-node-events" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-primitives", @@ -7177,7 +7249,7 @@ dependencies = [ [[package]] name = "reth-node-metrics" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "eyre", "http", @@ -7201,7 +7273,7 @@ dependencies = [ [[package]] name = "reth-node-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "reth-chainspec", "reth-db-api", @@ -7213,7 +7285,7 @@ dependencies = [ [[package]] name = "reth-payload-builder" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rpc-types", @@ -7234,7 +7306,7 @@ dependencies = [ [[package]] name = "reth-payload-primitives" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -7257,7 +7329,7 @@ dependencies = [ [[package]] name = "reth-payload-validator" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-rpc-types", "reth-chainspec", @@ -7268,7 +7340,7 @@ dependencies = [ [[package]] name = "reth-primitives" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7302,7 +7374,7 @@ dependencies = [ [[package]] name = "reth-primitives-traits" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7326,7 +7398,7 @@ dependencies = [ [[package]] name = "reth-provider" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7370,7 +7442,7 @@ dependencies = [ [[package]] name = "reth-prune" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "itertools 0.13.0", @@ -7396,7 +7468,7 @@ dependencies = [ [[package]] name = "reth-prune-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "arbitrary", @@ -7411,7 +7483,7 @@ dependencies = [ [[package]] name = "reth-revm" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -7427,7 +7499,7 @@ dependencies = [ [[package]] name = "reth-rpc" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-dyn-abi", @@ -7438,6 +7510,7 @@ dependencies = [ "alloy-rlp", "alloy-rpc-types", "alloy-rpc-types-admin", + "alloy-rpc-types-beacon", "alloy-rpc-types-debug", "alloy-rpc-types-eth 0.5.4", "alloy-rpc-types-mev", @@ -7492,7 +7565,7 @@ dependencies = [ [[package]] name = "reth-rpc-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-json-rpc", @@ -7518,7 +7591,7 @@ dependencies = [ [[package]] name = "reth-rpc-builder" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-network", "alloy-rpc-types", @@ -7556,7 +7629,7 @@ dependencies = [ [[package]] name = "reth-rpc-engine-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -7587,7 +7660,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-dyn-abi", @@ -7630,7 +7703,7 @@ dependencies = [ [[package]] name = "reth-rpc-eth-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7674,7 +7747,7 @@ dependencies = [ [[package]] name = "reth-rpc-layer" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-rpc-types-engine", "http", @@ -7687,7 +7760,7 @@ dependencies = [ [[package]] name = "reth-rpc-server-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rpc-types-engine", @@ -7703,7 +7776,7 @@ dependencies = [ [[package]] name = "reth-rpc-types-compat" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7721,7 +7794,7 @@ dependencies = [ [[package]] name = "reth-stages" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "bincode", @@ -7760,7 +7833,7 @@ dependencies = [ [[package]] name = "reth-stages-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "aquamarine", @@ -7786,7 +7859,7 @@ dependencies = [ [[package]] name = "reth-stages-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "arbitrary", @@ -7800,7 +7873,7 @@ dependencies = [ [[package]] name = "reth-static-file" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "parking_lot", @@ -7819,7 +7892,7 @@ dependencies = [ [[package]] name = "reth-static-file-types" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "clap", @@ -7831,7 +7904,7 @@ dependencies = [ [[package]] name = "reth-storage-api" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7851,7 +7924,7 @@ dependencies = [ [[package]] name = "reth-storage-errors" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-eips 0.5.4", "alloy-primitives", @@ -7864,7 +7937,7 @@ dependencies = [ [[package]] name = "reth-tasks" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "auto_impl", "dyn-clone", @@ -7882,7 +7955,7 @@ dependencies = [ [[package]] name = "reth-testing-utils" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-genesis", @@ -7895,7 +7968,7 @@ dependencies = [ [[package]] name = "reth-tokio-util" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "tokio", "tokio-stream", @@ -7905,7 +7978,7 @@ dependencies = [ [[package]] name = "reth-tracing" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "clap", "eyre", @@ -7920,7 +7993,7 @@ dependencies = [ [[package]] name = "reth-transaction-pool" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", @@ -7957,7 +8030,7 @@ dependencies = [ [[package]] name = "reth-trie" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-primitives", @@ -7982,7 +8055,7 @@ dependencies = [ [[package]] name = "reth-trie-common" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-consensus 0.5.4", "alloy-genesis", @@ -8005,7 +8078,7 @@ dependencies = [ [[package]] name = "reth-trie-db" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -8028,7 +8101,7 @@ dependencies = [ [[package]] name = "reth-trie-parallel" version = "1.1.0" -source = "git+https://github.com/paradigmxyz/reth#019f347385741d75638effee1fb0b640ae4a363b" +source = "git+https://github.com/paradigmxyz/reth#1bdf429af5092a0b737e900977c1418bc070ec59" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -9294,6 +9367,16 @@ dependencies = [ "syn 2.0.79", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.0" @@ -9325,7 +9408,9 @@ checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" dependencies = [ "futures-util", "log", + "native-tls", "tokio", + "tokio-native-tls", "tungstenite 0.23.0", ] @@ -9711,6 +9796,7 @@ dependencies = [ "http", "httparse", "log", + "native-tls", "rand", "sha1", "thiserror", diff --git a/Cargo.toml b/Cargo.toml index 399ae8f..b67f187 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,6 +58,7 @@ futures = "0.3" futures-util = "0.3" tokio = { version = "1.0", features = ["full"] } tokio-stream = "0.1" +tokio-tungstenite = { version = "0.23", features = ["native-tls"] } # serde serde = "1" diff --git a/oracle/Cargo.toml b/oracle/Cargo.toml index a78e2ff..bba69e2 100644 --- a/oracle/Cargo.toml +++ b/oracle/Cargo.toml @@ -19,6 +19,7 @@ reth-node-ethereum.workspace = true reth-primitives.workspace = true reth-tracing.workspace = true reth.workspace = true +reth-tokio-util = { git = "https://github.com/paradigmxyz/reth" } # alloy alloy-primitives.workspace = true @@ -34,17 +35,19 @@ enr = "0.12" # async futures.workspace = true tokio-stream.workspace = true -tokio-tungstenite = "0.23" +tokio-tungstenite.workspace = true tokio.workspace = true + # misc clap = "4" eyre.workspace = true serde.workspace = true serde_json.workspace = true -thiserror = "1" uuid = "1.10.0" +rand = "0.8.5" +thiserror = "1" [dev-dependencies] -reth-exex-test-utils = { git = "https://github.com/paradigmxyz/reth" } -reth-testing-utils = { git = "https://github.com/paradigmxyz/reth" } +reth-exex-test-utils.workspace = true +reth-testing-utils.workspace = true diff --git a/oracle/src/main.rs b/oracle/src/main.rs index d344102..dbf5305 100644 --- a/oracle/src/main.rs +++ b/oracle/src/main.rs @@ -1,12 +1,14 @@ use clap::Parser; use cli_ext::OracleExt; use exex::ExEx; -use futures::FutureExt; +use futures::{FutureExt, Stream}; use network::{proto::OracleProtoHandler, OracleNetwork}; -use offchain_data::DataFeederStream; +use offchain_data::{DataFeederError, DataFeederStream, DataFeeds}; use oracle::Oracle; use reth::chainspec::EthereumChainSpecParser; +use reth_exex::ExExContext; use reth_network::{protocol::IntoRlpxSubProtocol, NetworkProtocols}; +use reth_node_api::FullNodeComponents; use reth_node_ethereum::EthereumNode; mod cli_ext; @@ -17,6 +19,35 @@ mod oracle; const ORACLE_EXEX_ID: &str = "exex-oracle"; +/// Helper function to start the oracle stack. +async fn start( + ctx: ExExContext, + tcp_port: u16, + udp_port: u16, + data_feeder: D, +) -> eyre::Result<(Oracle, Node::Network)> +where + Node::Network: NetworkProtocols, + D: Stream> + Send + 'static, +{ + // Define the oracle subprotocol + let (subproto, proto_events, to_peers) = OracleProtoHandler::new(); + // Add it to the network as a subprotocol + let net = ctx.network().clone(); + net.add_rlpx_sub_protocol(subproto.into_rlpx_sub_protocol()); + + // The instance of the execution extension that will handle chain events + let exex = ExEx::new(ctx); + + // The instance of the oracle network that will handle discovery and gossiping of data + let network = OracleNetwork::new(proto_events, tcp_port, udp_port).await?; + + // The oracle instance that will orchestrate the network, the execution extensions, + // the off-chain data stream, and the gossiping + let oracle = Oracle::new(exex, network, data_feeder, to_peers); + Ok((oracle, net.clone())) +} + fn main() -> eyre::Result<()> { reth::cli::Cli::::parse().run(|builder, args| async move { let tcp_port = args.tcp_port; @@ -36,26 +67,8 @@ fn main() -> eyre::Result<()> { // Source: https://github.com/vados-cosmonic/wasmCloud/commit/440e8c377f6b02f45eacb02692e4d2fabd53a0ec tokio::task::spawn_blocking(move || { tokio::runtime::Handle::current().block_on(async move { - // define the oracle subprotocol - let (subproto, proto_events, to_peers) = OracleProtoHandler::new(); - // add it to the network as a subprotocol - ctx.network().add_rlpx_sub_protocol(subproto.into_rlpx_sub_protocol()); - - // the instance of the execution extension that will handle chain events - let exex = ExEx::new(ctx); - - // the instance of the oracle network that will handle discovery and - // gossiping of data - let network = OracleNetwork::new(proto_events, tcp_port, udp_port).await?; - // the off-chain data feed stream let data_feed = DataFeederStream::new(args.binance_symbols).await?; - - // the oracle instance that will orchestrate the network, the execution - // extensions, the offchain data stream and the - // gossiping the oracle will always sign and - // broadcast data via the channel until a peer is - // subcribed to it - let oracle = Oracle::new(exex, network, data_feed, to_peers); + let (oracle, _net) = start(ctx, tcp_port, udp_port, data_feed).await?; Ok(oracle) }) }) @@ -67,3 +80,108 @@ fn main() -> eyre::Result<()> { handle.wait_for_node_exit().await }) } + +#[cfg(test)] +mod tests { + use crate::{offchain_data::binance::ticker::Ticker, start}; + use futures::{Stream, StreamExt}; + use reth_exex_test_utils::test_exex_context; + use reth_network::{NetworkEvent, NetworkEventListenerProvider, NetworkInfo, Peers}; + use reth_network_api::PeerId; + use reth_tokio_util::EventStream; + use reth_tracing::tracing::info; + use tokio_stream::wrappers::BroadcastStream; + + async fn wait_for_session(mut events: EventStream) -> PeerId { + while let Some(event) = events.next().await { + if let NetworkEvent::SessionEstablished { peer_id, .. } = event { + info!("Session established with {}", peer_id); + return peer_id; + } + info!("Unexpected event: {:?}", event); + } + + unreachable!() + } + + use crate::offchain_data::{DataFeederError, DataFeeds}; + use futures::stream::{self}; + use std::pin::Pin; + + fn mock_stream() -> Pin> + Send>> { + let ticker = Ticker { + event_type: "24hrTicker".to_string(), + event_time: 1698323450000, + symbol: "BTCUSDT".to_string(), + price_change: "100.00".to_string(), + price_change_percent: "2.5".to_string(), + weighted_avg_price: "40200.00".to_string(), + prev_close_price: "40000.00".to_string(), + last_price: "40100.00".to_string(), + last_quantity: "0.5".to_string(), + best_bid_price: "40095.00".to_string(), + best_bid_quantity: "1.0".to_string(), + best_ask_price: "40105.00".to_string(), + best_ask_quantity: "1.0".to_string(), + open_price: "39900.00".to_string(), + high_price: "40500.00".to_string(), + low_price: "39800.00".to_string(), + volume: "1500".to_string(), + quote_volume: "60000000".to_string(), + open_time: 1698237050000, + close_time: 1698323450000, + first_trade_id: 1, + last_trade_id: 2000, + num_trades: 2000, + }; + + // Wrap the Ticker in DataFeeds::Binance + let data_feed = DataFeeds::Binance(ticker); + + // Create a stream that sends a single item and then ends, boxed and pinned + Box::pin(stream::once(async { Ok(data_feed) })) + } + + #[tokio::test] + async fn e2e_oracles() { + reth_tracing::init_test_tracing(); + + // spawn first instance + let (ctx_1, _handle) = test_exex_context().await.unwrap(); + let data_feed1 = mock_stream(); + let (oracle_1, network_1) = start(ctx_1, 30303, 30304, data_feed1).await.unwrap(); + let mut broadcast_stream_1 = BroadcastStream::new(oracle_1.signed_ticks().subscribe()); + let signer_1 = oracle_1.signer().address(); + tokio::spawn(oracle_1); + let net_1_events = network_1.event_listener(); + + // spawn second instance + let (ctx_2, _handle) = test_exex_context().await.unwrap(); + let data_feed2 = mock_stream(); + let (oracle_2, network_2) = start(ctx_2, 30305, 30306, data_feed2).await.unwrap(); + let mut broadcast_stream_2 = BroadcastStream::new(oracle_2.signed_ticks().subscribe()); + let signer_2 = oracle_2.signer().address(); + tokio::spawn(oracle_2); + let net_2_events = network_2.event_listener(); + + // expect peers connected + let (peer_2, addr_2) = (network_2.peer_id(), network_2.local_addr()); + network_1.add_peer(*peer_2, addr_2); + let expected_peer_2 = wait_for_session(net_1_events).await; + assert_eq!(expected_peer_2, *peer_2); + + let (peer_1, addr_1) = (network_1.peer_id(), network_1.local_addr()); + network_2.add_peer(*peer_1, addr_1); + let expected_peer_1 = wait_for_session(net_2_events).await; + assert_eq!(expected_peer_1, *peer_1); + + // expect signed data + let signed_ticker_1 = broadcast_stream_1.next().await.unwrap().unwrap(); + assert_eq!(signed_ticker_1.ticker.symbol, "BTCUSDT"); + assert_eq!(signed_ticker_1.signer, signer_1); + + let signed_ticker_2 = broadcast_stream_2.next().await.unwrap().unwrap(); + assert_eq!(signed_ticker_2.ticker.symbol, "BTCUSDT"); + assert_eq!(signed_ticker_2.signer, signer_2); + } +} diff --git a/oracle/src/network/mod.rs b/oracle/src/network/mod.rs index 6880c6b..2af74eb 100644 --- a/oracle/src/network/mod.rs +++ b/oracle/src/network/mod.rs @@ -62,7 +62,7 @@ impl Future for OracleNetwork { "Established connection, will start gossiping" ); } - None => return Poll::Ready(Ok(())), + None => return Poll::Pending, } } } diff --git a/oracle/src/network/proto/connection.rs b/oracle/src/network/proto/connection.rs index f5f494d..7374519 100644 --- a/oracle/src/network/proto/connection.rs +++ b/oracle/src/network/proto/connection.rs @@ -10,6 +10,7 @@ use reth_eth_wire::{ use reth_network::protocol::{ConnectionHandler, OnNotSupported}; use reth_network_api::Direction; use reth_network_peers::PeerId; +use reth_tracing::tracing::trace; use std::{ collections::HashMap, pin::Pin, @@ -59,6 +60,8 @@ impl Stream for OracleConnection { } if let Poll::Ready(Some(Ok(tick))) = this.signed_ticks.poll_next_unpin(cx) { + let signer = tick.signer; + trace!(target: "oracle::conn", ?signer, "Received signed tick data."); return Poll::Ready(Some( OracleProtoMessage::signed_ticker(Box::new(tick)).encoded(), )); @@ -142,6 +145,7 @@ impl ConnectionHandler for OracleConnHandler { .events .send(ProtocolEvent::Established { direction, peer_id, to_connection: tx }) .ok(); + trace!(target: "oracle::conn", "Connection established."); OracleConnection { conn, initial_ping: direction.is_outgoing().then(OracleProtoMessage::ping), diff --git a/oracle/src/offchain_data/binance/feeder.rs b/oracle/src/offchain_data/binance/feeder.rs index 1f5d1e9..0a7982e 100644 --- a/oracle/src/offchain_data/binance/feeder.rs +++ b/oracle/src/offchain_data/binance/feeder.rs @@ -1,5 +1,5 @@ use futures::{ready, Stream, StreamExt}; -use reth_tracing::tracing::error; +use reth_tracing::tracing::{error, trace}; use std::{ pin::Pin, task::{Context, Poll}, @@ -96,7 +96,7 @@ impl Stream for BinanceDataFeeder { return Poll::Pending; } }; - + trace!(target: "oracle::binance", ?msg, "Received message"); Poll::Ready(Some(Ok(msg.data))) } Some(Err(e)) => { diff --git a/oracle/src/oracle.rs b/oracle/src/oracle.rs index 284e215..4c09e11 100644 --- a/oracle/src/oracle.rs +++ b/oracle/src/oracle.rs @@ -1,14 +1,14 @@ use crate::{ exex::ExEx, network::{proto::data::SignedTicker, OracleNetwork}, - offchain_data::{DataFeederStream, DataFeeds}, + offchain_data::{DataFeederError, DataFeeds}, }; use alloy_rlp::{BytesMut, Encodable}; use alloy_signer::SignerSync; use alloy_signer_local::PrivateKeySigner; -use futures::{FutureExt, StreamExt}; +use futures::{FutureExt, Stream, StreamExt}; use reth_node_api::FullNodeComponents; -use reth_tracing::tracing::{error, info}; +use reth_tracing::tracing::{error, info, trace}; use std::{ future::Future, pin::Pin, @@ -17,32 +17,53 @@ use std::{ /// The Oracle struct is a long running task that orchestrates discovery of new peers, /// decoding data from chain events (ExEx) and gossiping it to peers. -pub(crate) struct Oracle { +pub(crate) struct Oracle +where + D: Stream> + Send + 'static, +{ /// The network task for this node. /// It is composed by a discovery task and a sub protocol RLPx task. network: OracleNetwork, /// The execution extension task for this node. exex: ExEx, /// The offchain data feed stream. - data_feed: DataFeederStream, + data_feed: D, /// The signer to sign the data feed. signer: PrivateKeySigner, /// Half of the broadcast channel to send data to connected peers. to_peers: tokio::sync::broadcast::Sender, } -impl Oracle { +impl Oracle +where + D: Stream> + Send + 'static, +{ pub(crate) fn new( exex: ExEx, network: OracleNetwork, - data_feed: DataFeederStream, + data_feed: D, to_peers: tokio::sync::broadcast::Sender, ) -> Self { Self { exex, network, data_feed, signer: PrivateKeySigner::random(), to_peers } } + + /// Returns the signer used by the oracle. + #[allow(dead_code)] + pub(crate) fn signer(&self) -> &PrivateKeySigner { + &self.signer + } + + /// Returns the signed ticker broadcast channel. + #[allow(dead_code)] + pub(crate) fn signed_ticks(&self) -> &tokio::sync::broadcast::Sender { + &self.to_peers + } } -impl Future for Oracle { +impl Future for Oracle +where + D: Stream> + Send + 'static + std::marker::Unpin, +{ type Output = eyre::Result<()>; fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { @@ -74,8 +95,9 @@ impl Future for Oracle { let signature = this.signer.sign_message_sync(&buffer)?; let signed_ticker = SignedTicker::new(ticker, signature, this.signer.address()); - if let Err(err) = this.to_peers.send(signed_ticker.clone()) { - error!(?err, "Failed to send ticker to gossip, no peers connected"); + if this.to_peers.send(signed_ticker.clone()).is_ok() { + let signer = signed_ticker.signer; + trace!(target: "oracle", ?signer, "Sent signed ticker"); } } Some(Err(e)) => {