From 0d36cc90afb5d58fe97c27ab54d7616b646d159b Mon Sep 17 00:00:00 2001 From: Joseph Livesey Date: Wed, 27 Nov 2024 19:27:42 -0500 Subject: [PATCH] chore: remove forrestrie to its own repo --- Cargo.lock | 932 +++++++----------- Cargo.toml | 1 + README.md | 3 - crates/firehose-client/CHANGELOG.md | 8 - crates/firehose-client/Cargo.toml | 27 - crates/firehose-client/README.md | 80 -- .../firehose-client/examples/fetch_beacon.rs | 58 -- .../examples/fetch_ethereum.rs | 21 - .../firehose-client/examples/stream_beacon.rs | 32 - .../examples/stream_ethereum.rs | 31 - crates/firehose-client/src/client.rs | 290 ------ crates/firehose-client/src/error.rs | 17 - crates/firehose-client/src/lib.rs | 55 -- crates/firehose-client/src/tls.rs | 17 - crates/firehose-protos-examples/Cargo.toml | 3 +- crates/firehose-protos/Cargo.toml | 1 + crates/firehose-protos/README.md | 4 - crates/firehose-protos/build.rs | 6 +- crates/firehose-protos/protos/firehose.proto | 150 --- .../src/ethereum_v2/eth_block.rs | 20 +- crates/firehose-protos/src/firehose_v2/mod.rs | 3 - .../src/firehose_v2/request.rs | 13 - crates/firehose-protos/src/lib.rs | 20 - crates/forrestrie-examples/Cargo.toml | 34 - crates/forrestrie-examples/README.md | 14 - .../assets/historical_batch-573-c847a969.ssz | Bin 524288 -> 0 bytes .../examples/block_roots_only_proof.rs | 88 -- .../examples/block_roots_proofs.rs | 87 -- .../examples/empty_slot_hashes.rs | 237 ----- .../examples/fetch_and_verify_block.rs | 59 -- .../examples/historical_state_roots_proof.rs | 42 - .../examples/historical_summary_proof.rs | 45 - .../examples/match_ethereum_to_beacon.rs | 124 --- .../examples/receipts_proof.rs | 59 -- ...ngle_block_post_merge_pre_capella_proof.rs | 61 -- .../examples/single_execution_block.rs | 200 ---- .../examples/verify-era.rs | 182 ---- .../examples/verify_block_inclusion_proof.rs | 73 -- crates/forrestrie-examples/src/lib.rs | 1 - crates/forrestrie/CHANGELOG.md | 8 - crates/forrestrie/Cargo.toml | 36 - crates/forrestrie/README.md | 23 - crates/forrestrie/build.rs | 20 - crates/forrestrie/protos/README.md | 5 - crates/forrestrie/protos/type.proto | 270 ----- crates/forrestrie/src/beacon_block.rs | 91 -- crates/forrestrie/src/beacon_state.rs | 223 ----- crates/forrestrie/src/beacon_v1.rs | 525 ---------- crates/forrestrie/src/execution_layer.rs | 323 ------ crates/forrestrie/src/lib.rs | 4 - release-please-config.json | 3 - 51 files changed, 354 insertions(+), 4275 deletions(-) delete mode 100644 crates/firehose-client/CHANGELOG.md delete mode 100644 crates/firehose-client/Cargo.toml delete mode 100644 crates/firehose-client/README.md delete mode 100644 crates/firehose-client/examples/fetch_beacon.rs delete mode 100644 crates/firehose-client/examples/fetch_ethereum.rs delete mode 100644 crates/firehose-client/examples/stream_beacon.rs delete mode 100644 crates/firehose-client/examples/stream_ethereum.rs delete mode 100644 crates/firehose-client/src/client.rs delete mode 100644 crates/firehose-client/src/error.rs delete mode 100644 crates/firehose-client/src/lib.rs delete mode 100644 crates/firehose-client/src/tls.rs delete mode 100644 crates/firehose-protos/protos/firehose.proto delete mode 100644 crates/firehose-protos/src/firehose_v2/mod.rs delete mode 100644 crates/firehose-protos/src/firehose_v2/request.rs delete mode 100644 crates/forrestrie-examples/Cargo.toml delete mode 100644 crates/forrestrie-examples/README.md delete mode 100644 crates/forrestrie-examples/assets/historical_batch-573-c847a969.ssz delete mode 100644 crates/forrestrie-examples/examples/block_roots_only_proof.rs delete mode 100644 crates/forrestrie-examples/examples/block_roots_proofs.rs delete mode 100644 crates/forrestrie-examples/examples/empty_slot_hashes.rs delete mode 100644 crates/forrestrie-examples/examples/fetch_and_verify_block.rs delete mode 100644 crates/forrestrie-examples/examples/historical_state_roots_proof.rs delete mode 100644 crates/forrestrie-examples/examples/historical_summary_proof.rs delete mode 100644 crates/forrestrie-examples/examples/match_ethereum_to_beacon.rs delete mode 100644 crates/forrestrie-examples/examples/receipts_proof.rs delete mode 100644 crates/forrestrie-examples/examples/single_block_post_merge_pre_capella_proof.rs delete mode 100644 crates/forrestrie-examples/examples/single_execution_block.rs delete mode 100644 crates/forrestrie-examples/examples/verify-era.rs delete mode 100644 crates/forrestrie-examples/examples/verify_block_inclusion_proof.rs delete mode 100644 crates/forrestrie-examples/src/lib.rs delete mode 100644 crates/forrestrie/CHANGELOG.md delete mode 100644 crates/forrestrie/Cargo.toml delete mode 100644 crates/forrestrie/README.md delete mode 100644 crates/forrestrie/build.rs delete mode 100644 crates/forrestrie/protos/README.md delete mode 100644 crates/forrestrie/protos/type.proto delete mode 100644 crates/forrestrie/src/beacon_block.rs delete mode 100644 crates/forrestrie/src/beacon_state.rs delete mode 100644 crates/forrestrie/src/beacon_v1.rs delete mode 100644 crates/forrestrie/src/execution_layer.rs delete mode 100644 crates/forrestrie/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 051a2ed9..3d6e29f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -76,9 +76,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "alloy" @@ -100,7 +100,7 @@ version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "num_enum", "serde", "strum", @@ -113,7 +113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-serde", "auto_impl", @@ -124,25 +124,25 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ef9e96462d0b9fee9008c53c1f3d017b9498fcdef3ad8d728db98afef47955" +checksum = "e8d22df68fa7d9744be0b1a9be3260e9aa089fbf41903ab182328333061ed186" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-sol-types", ] [[package]] name = "alloy-dyn-abi" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85132f2698b520fab3f54beed55a44389f7006a7b557a0261e1e69439dcc1572" +checksum = "1cf633ae9a1f0c82fdb9e559ed2be1c8e415c3e48fc47e1feaf32c6078ec0cdd" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-sol-type-parser", "alloy-sol-types", "const-hex", @@ -158,7 +158,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "serde", ] @@ -169,7 +169,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "k256", "serde", @@ -183,7 +183,7 @@ checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" dependencies = [ "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-serde", "c-kzg", @@ -199,18 +199,18 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-serde", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded610181f3dad5810f6ff12d1a99994cf9b42d2fcb7709029352398a5da5ae6" +checksum = "1a500037938085feed8a20dbfc8fce58c599db68c948cfae711147175dee392c" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-sol-type-parser", "serde", "serde_json", @@ -224,7 +224,7 @@ checksum = "801492711d4392b2ccf5fc0bc69e299fa1aab15167d74dcaa9aab96a54f684bd" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-serde", "serde", ] @@ -253,9 +253,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd58d377699e6cfeab52c4a9d28bdc4ef37e2bd235ff2db525071fe37a2e9af5" +checksum = "3aeeb5825c2fc8c2662167058347cd0cafc3cb15bcb5cdb1758a63c2dca0409e" dependencies = [ "alloy-rlp", "bytes", @@ -264,7 +264,7 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "getrandom", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "hex-literal", "indexmap 2.6.0", "itoa", @@ -299,7 +299,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -308,7 +308,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ffc534b7919e18f35e3aa1f507b6f3d9d92ec298463a9f6beaac112809d8d06" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rpc-types-eth", "alloy-serde", "serde", @@ -323,7 +323,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-serde", "alloy-sol-types", @@ -339,30 +339,30 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "serde", "serde_json", ] [[package]] name = "alloy-sol-macro" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1b42ac8f45e2f49f4bcdd72cbfde0bb148f5481d403774ffa546e48b83efc1" +checksum = "5c0279d09463a4695788a3622fd95443625f7be307422deba4b55dd491a9c7a1" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06318f1778e57f36333e850aa71bd1bb5e560c10279e236622faae0470c50412" +checksum = "4feea540fc8233df2ad1156efd744b2075372f43a8f942a68b3b19c8a00e2c12" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -371,31 +371,31 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebb9b0ad61a41345a22c9279975c0cdd231b97947b10d7aad1cf0a7181e4a5" +checksum = "2a0ad281f3d1b613af814b66977ee698e443d4644a1510962d0241f26e0e53ae" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c71028bfbfec210e24106a542aad3def7caf1a70e2c05710e92a98481980d3" +checksum = "96eff16c797438add6c37bb335839d015b186c5421ee5626f5559a7bfeb38ef5" dependencies = [ "serde", "winnow", @@ -403,12 +403,12 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d7fb042d68ddfe79ccb23359de3007f6d4d53c13f703b64fb0db422132111" +checksum = "cff34e0682d6665da243a3e81da96f07a2dd50f7e64073e382b1a141f5a2a2f6" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-sol-macro", "const-hex", "serde", @@ -420,7 +420,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9703ce68b97f8faae6f7739d1e003fc97621b856953cbcdbb2b515743f23288" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "derive_more 1.0.0", "nybbles", @@ -675,7 +675,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -686,7 +686,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -714,7 +714,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -725,21 +725,20 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-lc-rs" -version = "1.10.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d" +checksum = "f47bb8cc16b669d267eeccf585aea077d0882f4777b1c1f740217885d6e6e5a3" dependencies = [ "aws-lc-sys", - "mirai-annotations", "paste", "zeroize", ] [[package]] name = "aws-lc-sys" -version = "0.22.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972" +checksum = "a2101df3813227bbaaaa0b04cd61c534c7954b22bd68d399b440be937dc63ff7" dependencies = [ "bindgen", "cc", @@ -752,9 +751,9 @@ dependencies = [ [[package]] name = "axum" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", @@ -771,7 +770,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower 0.5.1", "tower-layer", "tower-service", @@ -792,7 +791,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.1", + "sync_wrapper 1.0.2", "tower-layer", "tower-service", ] @@ -842,6 +841,28 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "beacon-protos" +version = "0.1.1" +source = "git+https://github.com/semiotic-ai/beacon-protos.git?branch=main#9d26221607f85defba489b66857d1cf9c18d32b2" +dependencies = [ + "bls", + "firehose-protos 0.1.0 (git+https://github.com/semiotic-ai/veemon.git?branch=joseph/back-172-remove-forrestrie-from-veemon)", + "firehose-rs", + "primitive-types", + "prost", + "prost-build", + "prost-wkt", + "prost-wkt-types", + "serde", + "ssz_types 0.6.0", + "thiserror 2.0.3", + "tonic", + "tonic-build", + "tree_hash 0.6.0", + "types", +] + [[package]] name = "bimap" version = "0.6.3" @@ -876,7 +897,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.87", + "syn 2.0.89", "which", ] @@ -992,9 +1013,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" [[package]] name = "byteorder" @@ -1034,9 +1055,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.1.36" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" +checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" dependencies = [ "jobserver", "libc", @@ -1123,9 +1144,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "fb3b4b9e5a7c7514dfa52869339ee98b3156b0bfb4e8a77c4ff4babb64b1604f" dependencies = [ "clap_builder", "clap_derive", @@ -1133,9 +1154,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "b17a95aa67cc7b5ebd32aa5370189aa0d79069ef1c64ce893bd30fb24bff20ec" dependencies = [ "anstream", "anstyle", @@ -1152,20 +1173,20 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" [[package]] name = "cmake" -version = "0.1.51" +version = "0.1.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a" +checksum = "c682c223677e0e5b6b7f63a64b9351844c3f1b1678a68b7ee617e30fb082620e" dependencies = [ "cc", ] @@ -1203,23 +1224,11 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "console" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "const-hex" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "487981fa1af147182687064d0a2c336586d337a606595ced9ffb0c685c250c73" dependencies = [ "cfg-if", "cpufeatures", @@ -1286,6 +1295,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1294,9 +1313,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -1456,7 +1475,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1504,7 +1523,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1526,7 +1545,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core 0.20.10", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1577,7 +1596,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1590,7 +1609,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1611,16 +1630,10 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "unicode-xid", ] -[[package]] -name = "deunicode" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00" - [[package]] name = "digest" version = "0.9.0" @@ -1700,7 +1713,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1785,21 +1798,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "enr" version = "0.10.0" @@ -1827,7 +1825,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -1894,7 +1892,7 @@ name = "eth_trie" version = "0.4.0" source = "git+https://github.com/ethereum/eth-trie.rs?tag=v0.1.0-alpha.2#46da867d8a7eace0a9e912271b236b2007e4cd41" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "hashbrown 0.14.5", "keccak-hash", @@ -1971,7 +1969,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70cbccfccf81d67bff0ab36e591fa536c8a935b078a7b0e58c1d00d418332fc9" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "hex", "serde", "serde_derive", @@ -1995,7 +1993,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e999563461faea0ab9bc0024e5e66adcee35881f3d5062f52f31a4070fe1522" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "itertools 0.13.0", "smallvec", ] @@ -2021,7 +2019,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2063,7 +2061,7 @@ dependencies = [ "sha3 0.9.1", "ssz_types 0.8.0", "superstruct 0.7.0", - "thiserror 1.0.68", + "thiserror 1.0.69", "tokio", "tree_hash 0.8.0", "tree_hash_derive 0.8.0", @@ -2073,16 +2071,6 @@ dependencies = [ "validator", ] -[[package]] -name = "fake" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d391ba4af7f1d93f01fcf7b2f29e2bc9348e109dfdbf4dcbdc51dfa38dab0b6" -dependencies = [ - "deunicode", - "rand", -] - [[package]] name = "fallible-iterator" version = "0.2.0" @@ -2097,9 +2085,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fastrlp" @@ -2131,18 +2119,19 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "firehose-client" version = "0.1.1" +source = "git+https://github.com/semiotic-ai/firehose-client.git?branch=main#97564c18b7da6ec49a45e9364f11b3cb22b8db43" dependencies = [ + "beacon-protos", "dotenvy", - "firehose-protos", - "forrestrie", + "firehose-protos 0.1.0 (git+https://github.com/semiotic-ai/veemon.git?branch=joseph/back-172-remove-forrestrie-from-veemon)", + "firehose-rs", "futures", - "hex", "http", "once_cell", "rustls", "serde", "serde_derive", - "thiserror 2.0.0", + "thiserror 2.0.3", "tokio", "tokio-stream", "tonic", @@ -2155,9 +2144,10 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-eip2930", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "ethportal-api", + "firehose-rs", "hex", "primitive-types", "prost", @@ -2168,23 +2158,63 @@ dependencies = [ "reth-trie-common", "serde", "serde_json", - "thiserror 2.0.0", + "thiserror 2.0.3", "tokio", "tonic", "tonic-build", "tracing", ] +[[package]] +name = "firehose-protos" +version = "0.1.0" +source = "git+https://github.com/semiotic-ai/veemon.git?branch=joseph/back-172-remove-forrestrie-from-veemon#4e3555dd823478a4fa98ecfca13490f4e6162aef" +dependencies = [ + "alloy-consensus", + "alloy-eip2930", + "alloy-primitives 0.8.13", + "alloy-rlp", + "ethportal-api", + "firehose-rs", + "primitive-types", + "prost", + "prost-build", + "prost-wkt", + "prost-wkt-types", + "reth-primitives", + "reth-trie-common", + "serde", + "thiserror 2.0.3", + "tonic", + "tonic-build", + "tracing", +] + [[package]] name = "firehose-protos-examples" version = "0.1.1" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "firehose-client", - "firehose-protos", + "firehose-protos 0.1.0", + "firehose-rs", "tokio", ] +[[package]] +name = "firehose-rs" +version = "0.1.0" +source = "git+https://github.com/semiotic-ai/firehose-rs.git?branch=main#be85002a5a1d3d298704b0465d531d14cff51caf" +dependencies = [ + "prost", + "prost-build", + "prost-wkt", + "prost-wkt-types", + "serde", + "tonic", + "tonic-build", +] + [[package]] name = "fixed-hash" version = "0.8.0" @@ -2210,17 +2240,17 @@ version = "0.1.1" dependencies = [ "alloy-consensus", "alloy-eip2930", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "bincode", "clap", "criterion", - "firehose-protos", + "firehose-protos 0.1.0", "prost", "rand", "reth-primitives", "serde", "serde_json", - "thiserror 2.0.0", + "thiserror 2.0.3", "tracing", "tracing-subscriber", "zstd", @@ -2228,9 +2258,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", "miniz_oxide", @@ -2248,21 +2278,6 @@ 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" @@ -2272,68 +2287,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "forrestrie" -version = "0.1.1" -dependencies = [ - "alloy-primitives 0.8.11", - "alloy-rlp", - "bls", - "ethportal-api", - "fake", - "firehose-protos", - "futures", - "merkle_proof", - "primitive-types", - "prost", - "prost-build", - "prost-wkt", - "prost-wkt-types", - "rand", - "reth-primitives", - "reth-trie-common", - "serde", - "ssz_types 0.6.0", - "tonic", - "tonic-build", - "tree_hash 0.6.0", - "types", -] - -[[package]] -name = "forrestrie-examples" -version = "0.1.1" -dependencies = [ - "bls", - "ethereum_ssz 0.7.1", - "ethereum_ssz_derive 0.7.1", - "ethportal-api", - "firehose-client", - "firehose-protos", - "forrestrie", - "futures", - "insta", - "merkle_proof", - "primitive-types", - "prost", - "prost-wkt", - "prost-wkt-types", - "reqwest", - "reth-primitives", - "reth-trie-common", - "serde", - "serde_json", - "snap", - "ssz_types 0.8.0", - "tokio", - "tonic", - "tracing", - "tracing-subscriber", - "tree_hash 0.6.0", - "trin-validation", - "types", -] - [[package]] name = "fs_extra" version = "1.3.0" @@ -2402,7 +2355,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -2517,7 +2470,7 @@ dependencies = [ "pin-project", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2561,9 +2514,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", "bytes", @@ -2606,9 +2559,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "allocator-api2", "equivalent", @@ -2629,11 +2582,11 @@ dependencies = [ name = "header-accumulator" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "base64 0.21.7", "clap", "ethportal-api", - "firehose-protos", + "firehose-protos 0.1.0", "flat-files-decoder", "log", "primitive-types", @@ -2641,7 +2594,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "thiserror 2.0.0", + "thiserror 2.0.3", "tree_hash 0.8.0", "trin-validation", ] @@ -2763,9 +2716,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "97818827ef4f364230e16705d4706e2897df2bb60617d6ca15d598025a3c481f" dependencies = [ "bytes", "futures-channel", @@ -2813,22 +2766,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" version = "0.1.10" @@ -2986,7 +2923,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3062,13 +2999,13 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.89", ] [[package]] @@ -3088,22 +3025,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.1", + "hashbrown 0.15.2", "serde", ] -[[package]] -name = "insta" -version = "1.41.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9ffc4d4892617c50a928c52b2961cb5174b6fc6ebf252b2fac9d21955c48b8" -dependencies = [ - "console", - "lazy_static", - "linked-hash-map", - "similar", -] - [[package]] name = "instant" version = "0.1.13" @@ -3127,12 +3052,6 @@ version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - [[package]] name = "is-terminal" version = "0.4.13" @@ -3185,9 +3104,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jni" @@ -3199,7 +3118,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror 1.0.68", + "thiserror 1.0.69", "walkdir", ] @@ -3262,7 +3181,7 @@ dependencies = [ "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 1.0.68", + "thiserror 1.0.69", "tokio", "tokio-rustls", "tokio-util", @@ -3290,7 +3209,7 @@ dependencies = [ "rustc-hash 2.0.0", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -3315,7 +3234,7 @@ dependencies = [ "rustls-platform-verifier", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror 1.0.69", "tokio", "tower 0.4.13", "tracing", @@ -3332,7 +3251,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3354,7 +3273,7 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 1.0.68", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -3371,7 +3290,7 @@ dependencies = [ "http", "serde", "serde_json", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -3487,9 +3406,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.166" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" [[package]] name = "libgit2-sys" @@ -3552,12 +3471,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -3566,9 +3479,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -3592,7 +3505,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.1", + "hashbrown 0.15.2", ] [[package]] @@ -3641,18 +3554,18 @@ dependencies = [ [[package]] name = "metastruct" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f00a5ba4a0f3453c31c397b214e1675d95b697c33763aa58add57ea833424384" +checksum = "d74f54f231f9a18d77393ecc5cc7ab96709b2a61ee326c2b2b291009b0cc5a07" dependencies = [ "metastruct_macro", ] [[package]] name = "metastruct_macro" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a991d4536c933306e52f0e8ab303757185ec13a09d1f3e1cbde5a0d8410bf" +checksum = "985e7225f3a4dfbec47a0c6a730a874185fda840d365d7bbd6ba199dd81796d5" dependencies = [ "darling 0.13.4", "itertools 0.10.5", @@ -3718,12 +3631,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "mirai-annotations" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" - [[package]] name = "modular-bitfield" version = "0.11.2" @@ -3763,23 +3670,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f247bfe894f8a04e0d8b1eb5eed9dfb7424f6dda47cf83e3f03670e87cb2831b" -[[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" @@ -3862,7 +3752,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -3916,7 +3806,7 @@ checksum = "7ea7162170c6f3cad8f67f4dd7108e3f78349fd553da5b8bebff1e7ef8f38896" dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-serde", "derive_more 1.0.0", @@ -3933,7 +3823,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rpc-types-eth", "alloy-serde", "op-alloy-consensus", @@ -3947,50 +3837,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -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.87", -] - [[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.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "overload" version = "0.1.1" @@ -3999,28 +3851,29 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" dependencies = [ "arrayvec", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.89", ] [[package]] @@ -4090,7 +3943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442" dependencies = [ "memchr", - "thiserror 1.0.68", + "thiserror 1.0.69", "ucd-trie", ] @@ -4121,7 +3974,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4214,7 +4067,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4282,14 +4135,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -4341,7 +4194,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.87", + "syn 2.0.89", "tempfile", ] @@ -4355,7 +4208,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4531,7 +4384,7 @@ checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox", - "thiserror 1.0.68", + "thiserror 1.0.69", ] [[package]] @@ -4542,7 +4395,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -4557,9 +4410,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -4578,49 +4431,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "reqwest" -version = "0.12.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "windows-registry", -] - [[package]] name = "reth-codecs" version = "1.1.0" @@ -4629,7 +4439,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-trie", "bytes", "modular-bitfield", @@ -4644,7 +4454,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -4653,7 +4463,7 @@ version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.1.0#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "auto_impl", "crc", @@ -4671,7 +4481,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.1.0#1ba631ba9581973e7c6 dependencies = [ "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-rpc-types", "alloy-serde", @@ -4702,7 +4512,7 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "byteorder", "bytes", @@ -4719,7 +4529,7 @@ name = "reth-static-file-types" version = "1.1.0" source = "git+https://github.com/paradigmxyz/reth?tag=v1.1.0#1ba631ba9581973e7c6cadeea92cfe1802aceb4a" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "derive_more 1.0.0", "serde", "strum", @@ -4732,7 +4542,7 @@ source = "git+https://github.com/paradigmxyz/reth?tag=v1.1.0#1ba631ba9581973e7c6 dependencies = [ "alloy-consensus", "alloy-genesis", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "alloy-rlp", "alloy-trie", "bytes", @@ -4753,7 +4563,7 @@ checksum = "6f1525851a03aff9a9d6a1d018b414d76252d6802ab54695b27093ecd7e7a101" dependencies = [ "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "auto_impl", "bitflags 2.6.0", "bitvec", @@ -4802,9 +4612,9 @@ dependencies = [ [[package]] name = "roaring" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4b84ba6e838ceb47b41de5194a60244fac43d9fe03b71dbe8c5a201081d6d1" +checksum = "f81dc953b2244ddd5e7860cb0bb2a790494b898ef321d4aff8e260efab60cc88" dependencies = [ "bytemuck", "byteorder", @@ -4898,7 +4708,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.87", + "syn 2.0.89", "walkdir", ] @@ -4959,9 +4769,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.39" +version = "0.38.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" +checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" dependencies = [ "bitflags 2.6.0", "errno", @@ -4972,9 +4782,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "aws-lc-rs", "log", @@ -4996,20 +4806,19 @@ dependencies = [ "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.0.1", ] [[package]] @@ -5033,7 +4842,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afbb878bdfdf63a336a5e63561b1835e7a8c91524f51621db870169eac84b490" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "jni", "log", @@ -5042,7 +4851,7 @@ dependencies = [ "rustls-native-certs 0.7.3", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "webpki-roots", "winapi", @@ -5106,9 +4915,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -5159,18 +4968,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "num-bigint", "security-framework-sys", ] +[[package]] +name = "security-framework" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -5193,9 +5015,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] @@ -5208,9 +5030,9 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -5226,20 +5048,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" dependencies = [ "itoa", "memchr", @@ -5247,18 +5069,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - [[package]] name = "serde_yaml" version = "0.9.34+deprecated" @@ -5373,12 +5183,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "similar" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e" - [[package]] name = "slab" version = "0.4.9" @@ -5407,12 +5211,6 @@ dependencies = [ "serde", ] -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - [[package]] name = "socket2" version = "0.4.10" @@ -5546,7 +5344,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5605,9 +5403,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "44d46482f1c1c87acd84dea20c1bf5ebff4c757009ed6bf19cfd36fb10e92c4e" dependencies = [ "proc-macro2", "quote", @@ -5616,14 +5414,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.11" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" +checksum = "6bdaa7b9e815582ba343a20c66627437cf45f1c6fba7f69772cbfd1358c7e197" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5634,12 +5432,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -dependencies = [ - "futures-core", -] +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" [[package]] name = "synstructure" @@ -5649,28 +5444,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", + "syn 2.0.89", ] [[package]] @@ -5681,9 +5455,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -5703,42 +5477,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.68", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "2.0.0" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15291287e9bff1bc6f9ff3409ed9af665bec7a5fc8ac079ea96be07bca0e2668" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ - "thiserror-impl 2.0.0", + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "thiserror-impl" -version = "2.0.0" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22efd00f33f93fa62848a7cab956c3d38c8d43095efda1decfc2b3a5dc0b8972" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -5859,9 +5633,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -5883,17 +5657,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", -] - -[[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", + "syn 2.0.89", ] [[package]] @@ -5972,7 +5736,7 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "rustls-native-certs 0.8.0", + "rustls-native-certs 0.8.1", "rustls-pemfile", "socket2 0.5.7", "tokio", @@ -5995,7 +5759,7 @@ dependencies = [ "prost-build", "prost-types", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6046,9 +5810,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -6058,20 +5822,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -6136,7 +5900,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373495c23db675a5192de8b610395e1bec324d596f9e6111192ce903dc11403a" dependencies = [ - "alloy-primitives 0.8.11", + "alloy-primitives 0.8.13", "ethereum_hashing 0.7.0", "smallvec", ] @@ -6161,7 +5925,7 @@ dependencies = [ "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6299,7 +6063,7 @@ checksum = "70b20a22c42c8f1cd23ce5e34f165d4d37038f5b663ad20fb6adbdf029172483" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6364,9 +6128,9 @@ checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" @@ -6431,9 +6195,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna 1.0.3", @@ -6577,7 +6341,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-shared", ] @@ -6611,7 +6375,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6634,9 +6398,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" dependencies = [ "rustls-pki-types", ] @@ -6693,36 +6457,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "windows-registry" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" -dependencies = [ - "windows-result", - "windows-strings", - "windows-targets", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -6837,9 +6571,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -6849,13 +6583,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -6877,27 +6611,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", "synstructure", ] @@ -6918,7 +6652,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] @@ -6940,7 +6674,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.89", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 197c9bbb..fed56cd8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ dotenvy = "0.15.7" ethereum-types = "=0.14.1" ethportal-api = { git = "https://github.com/ethereum/trin.git", version = "0.2.2", tag = "v0.1.0-alpha.51" } fake = "2.10.0" +firehose-rs = { git = "https://github.com/semiotic-ai/firehose-rs.git", branch = "main" } futures = "0.3.31" hex = "0.4.3" http = "1.1.0" diff --git a/README.md b/README.md index d8d01f59..a576cd2a 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,6 @@ Semiotic Labs monorepo for Verifiable Extraction of blockchain data. ## Crates -- [firehose-client](./crates/firehose-client/README.md) - [firehose-protos](./crates/firehose-protos/README.md) - [flat-files-decoder](./crates/flat-files-decoder/README.md) -- [forrestrie](./crates/forrestrie/README.md) -- [forrestrie-examples](./crates/forrestrie-examples/README.md) - [header-accumulator](./crates/header-accumulator/README.md) diff --git a/crates/firehose-client/CHANGELOG.md b/crates/firehose-client/CHANGELOG.md deleted file mode 100644 index 2e302c2f..00000000 --- a/crates/firehose-client/CHANGELOG.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changelog - -## [0.1.1](https://github.com/semiotic-ai/veemon/compare/firehose-client-v0.1.0...firehose-client-v0.1.1) (2024-10-22) - - -### Bug Fixes - -* **firehose-client:** fix chain specification in client ([a37c8e8](https://github.com/semiotic-ai/veemon/commit/a37c8e81d20075c0980e50a039cb580bcaaa85d1)) diff --git a/crates/firehose-client/Cargo.toml b/crates/firehose-client/Cargo.toml deleted file mode 100644 index d0fa4f11..00000000 --- a/crates/firehose-client/Cargo.toml +++ /dev/null @@ -1,27 +0,0 @@ -[package] -name = "firehose-client" -version = "0.1.1" -edition = "2021" - -[lib] -name = "firehose_client" -path = "src/lib.rs" - -[dependencies] -dotenvy.workspace = true -forrestrie = { path = "../forrestrie" } -firehose-protos = { path = "../firehose-protos" } -futures.workspace = true -http.workspace = true -once_cell.workspace = true -rustls.workspace = true -serde = { workspace = true, features = ["derive"] } -serde_derive.workspace = true -thiserror.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } -tokio-stream.workspace = true -tonic = { workspace = true, features = ["tls-roots"] } -tracing.workspace = true - -[dev-dependencies] -hex.workspace = true diff --git a/crates/firehose-client/README.md b/crates/firehose-client/README.md deleted file mode 100644 index d860b723..00000000 --- a/crates/firehose-client/README.md +++ /dev/null @@ -1,80 +0,0 @@ -# Firehose Rust Client - -Extract blocks from [StreamingFast Firehose](https://firehose.streamingfast.io/) -programatically in Rust. - -## gRPC Endpoints - -### Env Vars - -Use environment variables to provide Firehose Ethereum and Firehose -Beacon providers of your choice. - -To do this, place a `.env` file in the root of the `veemon` repository. -See the `.env.example` file, also in the root of this repository, for what -you'll need, depending on your requirements. You may have access to a -Firehose provider and/or may need to use a provider. For example, you can -use [Pinax](https://app.pinax.network/) as an endpoint provider. - -## firehose-ethereum and firehose-beacon gRPC - -### proto files - -We use the following protobuffers developed by Streamingfast via our -[`firehose-protos` crate](./../firehose-protos/README.md): - -See the [`firehose-protos` docs](./../firehose-protos/README.md) for information -on these protobuffers and links to the different repos that they've come from. - -Also check out [`forrestrie`](./../forrestrie/protos/README.md) for -Rust-compiled protobuffer Beacon block implementations. - -### gRPC Service Examples - -If you're looking to quickly explore what the Firehose API offers, -you can use the `grpcurl` tool to test your connection, verify your -API token, and get a list of available gRPC services. This is a great -way to interact with the API without writing any code. - -To get started, you can run the following command to retrieve the -service descriptions from the Firehose gRPC server: - -```bash -grpcurl -plaintext : describe -``` - -Below is an example of the service descriptions you might see when -querying the Firehose server: - -```terminal -grpc.health.v1.Health is a service: -service Health { - rpc Check ( .grpc.health.v1.HealthCheckRequest ) returns ( .grpc.health.v1.HealthCheckResponse ); - rpc Watch ( .grpc.health.v1.HealthCheckRequest ) returns ( stream .grpc.health.v1.HealthCheckResponse ); -} - -grpc.reflection.v1.ServerReflection is a service: -service ServerReflection { - rpc ServerReflectionInfo ( stream .grpc.reflection.v1.ServerReflectionRequest ) returns ( stream .grpc.reflection.v1.ServerReflectionResponse ); -} - -grpc.reflection.v1alpha.ServerReflection is a service: -service ServerReflection { - rpc ServerReflectionInfo ( stream .grpc.reflection.v1alpha.ServerReflectionRequest ) returns ( stream .grpc.reflection.v1alpha.ServerReflectionResponse ); -} - -sf.firehose.v1.Stream is a service: -service Stream { - rpc Blocks ( .sf.firehose.v1.Request ) returns ( stream .sf.firehose.v1.Response ); -} - -sf.firehose.v2.Fetch is a service: -service Fetch { - rpc Block ( .sf.firehose.v2.SingleBlockRequest ) returns ( .sf.firehose.v2.SingleBlockResponse ); -} - -sf.firehose.v2.Stream is a service: -service Stream { - rpc Blocks ( .sf.firehose.v2.Request ) returns ( stream .sf.firehose.v2.Response ); -} -``` diff --git a/crates/firehose-client/examples/fetch_beacon.rs b/crates/firehose-client/examples/fetch_beacon.rs deleted file mode 100644 index 73ce43cb..00000000 --- a/crates/firehose-client/examples/fetch_beacon.rs +++ /dev/null @@ -1,58 +0,0 @@ -//! # Fetch Beacon Block -//! -//! Demonstrates how to fetch a single block from Beacon Firehose, using the `Fetch` API. - -use firehose_client::{Chain, FirehoseClient}; -use firehose_protos::EthBlock; -use forrestrie::beacon_v1::{block::Body, Block as BeaconBlock}; - -#[tokio::main] -async fn main() { - // Show matching data from execution layer and beacon chain - let mut execution_layer_client = FirehoseClient::new(Chain::Ethereum); - - let response = execution_layer_client - .fetch_block(20672593) - .await - .unwrap() - .unwrap(); - - let block = EthBlock::try_from(response.into_inner()).unwrap(); - - assert_eq!(block.number, 20672593); - assert_eq!( - format!("0x{}", hex::encode(block.hash)).as_str(), - "0xea48ba1c8e38ea586239e9c5ec62949ddd79404c6006c099bb02a8b22ddd18e4" - ); - - let mut beacon_client = FirehoseClient::new(Chain::Beacon); - // This is the slot number for the Beacon block we want to fetch, but right now - // we don't have a way to map the block number of the execution block to the slot number - // of the Beacon block. - let response = beacon_client.fetch_block(9881091).await.unwrap().unwrap(); - let block = BeaconBlock::try_from(response.into_inner()).unwrap(); - - assert_eq!(block.slot, 9881091); - - let body = block.body.as_ref().unwrap(); - - match body { - Body::Deneb(body) => { - let execution_payload = body.execution_payload.as_ref().unwrap(); - - let block_hash = &execution_payload.block_hash; - - assert_eq!( - format!("0x{}", hex::encode(block_hash)).as_str(), - "0xea48ba1c8e38ea586239e9c5ec62949ddd79404c6006c099bb02a8b22ddd18e4" - ); - - let block_number = execution_payload.block_number; - - assert_eq!(block_number, 20672593); - } - _ => unimplemented!(), - }; - - println!("fetch_beacon ran to completion!"); -} diff --git a/crates/firehose-client/examples/fetch_ethereum.rs b/crates/firehose-client/examples/fetch_ethereum.rs deleted file mode 100644 index 5575f08b..00000000 --- a/crates/firehose-client/examples/fetch_ethereum.rs +++ /dev/null @@ -1,21 +0,0 @@ -//! # Fetch Ethereum Block -//! -//! Demonstrates how to fetch a single block from Ethereum firehose. - -use firehose_client::{Chain, FirehoseClient}; -use firehose_protos::EthBlock as Block; - -#[tokio::main] -async fn main() { - let mut client = FirehoseClient::new(Chain::Ethereum); - let response = client.fetch_block(20672593).await.unwrap().unwrap(); - let block = Block::try_from(response.into_inner()).unwrap(); - - assert_eq!(block.number, 20672593); - assert_eq!( - format!("0x{}", hex::encode(block.hash)).as_str(), - "0xea48ba1c8e38ea586239e9c5ec62949ddd79404c6006c099bb02a8b22ddd18e4" - ); - - println!("fetch_beacon completed successfully!"); -} diff --git a/crates/firehose-client/examples/stream_beacon.rs b/crates/firehose-client/examples/stream_beacon.rs deleted file mode 100644 index da53428d..00000000 --- a/crates/firehose-client/examples/stream_beacon.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! # Example: Stream Beacon Blocks -//! -//! Demonstrates how to stream a range of blocks from Firehose Beacon - -use firehose_client::{Chain, FirehoseClient}; -use forrestrie::beacon_v1::Block as FirehoseBeaconBlock; -use futures::StreamExt; - -#[tokio::main] -async fn main() { - // Testing this so far without proper benchmarking, the time taken to fetch the blocks - // grows linearly with the number of TOTAL_BLOCKS requested, to around 20 minutes for 8192 blocks! - const TOTAL_SLOTS: u64 = 100; - const START_SLOT: u64 = 9968872; - - let mut client = FirehoseClient::new(Chain::Beacon); - let mut stream = client - .stream_beacon_with_retry(START_SLOT, TOTAL_SLOTS) - .await - .unwrap(); - - let mut blocks: Vec = Vec::with_capacity(TOTAL_SLOTS as usize); - - while let Some(block) = stream.next().await { - blocks.push(block); - } - - // For now, just using this to signal that the test has completed - assert_eq!(blocks.len(), TOTAL_SLOTS as usize); - - println!("stream_beacon ran to completion!"); -} diff --git a/crates/firehose-client/examples/stream_ethereum.rs b/crates/firehose-client/examples/stream_ethereum.rs deleted file mode 100644 index 7962e90b..00000000 --- a/crates/firehose-client/examples/stream_ethereum.rs +++ /dev/null @@ -1,31 +0,0 @@ -//! # Example: Stream Ethereum Blocks -//! -//! This example demonstrates how to stream Ethereum blocks using the Firehose client. -use firehose_client::{Chain, FirehoseClient}; -use firehose_protos::EthBlock as Block; -use futures::StreamExt; - -#[tokio::main] -async fn main() { - // Testing this so far without proper benchmarking, the time taken to fetch the blocks - // grows linearly with the number of TOTAL_BLOCKS requested, to around 20 minutes for 8192 blocks! - const TOTAL_BLOCKS: u64 = 100; - const START_BLOCK: u64 = 19581798; - - let mut client = FirehoseClient::new(Chain::Ethereum); - let mut stream = client - .stream_blocks(START_BLOCK, TOTAL_BLOCKS) - .await - .unwrap(); - - let mut blocks: Vec = Vec::with_capacity(TOTAL_BLOCKS as usize); - - while let Some(block) = stream.next().await { - blocks.push(block); - } - - // For now, just using this to signal that the test has completed - assert_eq!(blocks.len(), TOTAL_BLOCKS as usize); - - println!("stream_ethereum ran successfully"); -} diff --git a/crates/firehose-client/src/client.rs b/crates/firehose-client/src/client.rs deleted file mode 100644 index 097e07ce..00000000 --- a/crates/firehose-client/src/client.rs +++ /dev/null @@ -1,290 +0,0 @@ -use std::str::FromStr; - -use crate::error::ClientError; -use dotenvy::{dotenv, var}; -use firehose_protos::{ - EthBlock as Block, FetchClient, Request, SingleBlockRequest, SingleBlockResponse, StreamClient, -}; -use forrestrie::beacon_v1::Block as FirehoseBeaconBlock; -use tokio_stream::wrappers::ReceiverStream; -use tonic::{ - transport::{Channel, Uri}, - Response, Status, -}; -use tracing::{error, info, trace}; - -/// Work with the fetch and streaming APIs supported by [StreamingFast Firehose](https://firehose.streamingfast.io/). -pub struct FirehoseClient { - chain: Chain, - fetch_client: Option>, - stream_client: Option>, -} - -impl FirehoseClient { - pub fn new(chain: Chain) -> Self { - Self { - chain, - fetch_client: None, - stream_client: None, - } - } - - /// The inner [`Result`] is the Firehose response, which can be either a [`Response`] or a [`Status`], - /// which is needed for handling empty slots on the Beacon chain. - pub async fn fetch_block( - &mut self, - number: u64, - ) -> Result, Status>, ClientError> { - if self.fetch_client.is_none() { - self.fetch_client = Some(fetch_client(self.chain).await?); - } - let mut request = create_single_block_fetch_request(number); - - request.insert_api_key_if_provided(self.chain); - - info!("Requesting block number:\n\t{}", number); - Ok(self.fetch_client.as_mut().unwrap().block(request).await) - } - - /// The tonic docs encourage cloning the client. - pub async fn get_streaming_client(&mut self) -> Result, ClientError> { - let client = if let Some(client) = self.stream_client.clone() { - client - } else { - self.stream_client = Some(stream_client(self.chain).await?); - self.stream_client.clone().unwrap() - }; - Ok(client) - } - - /// Stream a block range of Beacon blocks, with a retry mechanism if the stream cuts off - /// before the total number of blocks requested is reached, and accounting for missed slots. - pub async fn stream_beacon_with_retry( - &mut self, - start: u64, - total: u64, - ) -> Result, ClientError> { - let (tx, rx) = tokio::sync::mpsc::channel::(8192); - - let chain = self.chain; - let client = self.get_streaming_client().await?; - - tokio::spawn(async move { - let mut blocks = 0; - let mut last_valid_slot: Option = None; - let mut last_valid_block: Option = None; - - while blocks < total { - let mut client = client.clone(); - let request = create_blocks_streaming_request( - chain, - start + blocks, - start + total - 1, - BlocksRequested::All, - ); - match client.blocks(request).await { - Ok(response) => { - let mut stream_inner = response.into_inner(); - while let Ok(Some(block_msg)) = stream_inner.message().await { - if blocks % 100 == 0 { - trace!("Blocks fetched: {}", blocks); - } - match FirehoseBeaconBlock::try_from(block_msg) { - Ok(block) => { - if let Some(last_slot) = last_valid_slot { - let missed_slots = block.slot.saturating_sub(last_slot + 1); - if missed_slots > 0 { - trace!("Missed block at slot: {}", start + blocks); - - let last_block = last_valid_block.take().unwrap(); - let tx = tx.clone(); - for _ in 0..missed_slots { - blocks += 1; - tx.send(last_block.clone()).await.unwrap(); - } - } - } - last_valid_slot = Some(block.slot); - last_valid_block = Some(block.clone()); - - blocks += 1; - tx.clone().send(block).await.unwrap(); - } - Err(e) => { - error!("Failed to convert block message to block: {e}"); - break; - } - } - } - } - Err(e) => { - error!("Failed to get blocks stream: {:?}", e.code()); - break; - } - }; - } - }); - - Ok(ReceiverStream::new(rx)) - } - - pub async fn stream_blocks( - &mut self, - start: u64, - total: u64, - ) -> Result, ClientError> { - let (tx, rx) = tokio::sync::mpsc::channel::(8192); - - let chain = self.chain; - let client = self.get_streaming_client().await?; - - tokio::spawn(async move { - let mut blocks = 0; - - while blocks < total { - let mut client = client.clone(); - let request = create_blocks_streaming_request( - chain, - start + blocks, - start + total - 1, - BlocksRequested::All, - ); - let response = client.blocks(request).await.unwrap(); - let mut stream_inner = response.into_inner(); - while let Ok(Some(block_msg)) = stream_inner.message().await { - if blocks % 100 == 0 && blocks != 0 { - trace!("Blocks fetched: {}", blocks); - } - match Block::try_from(block_msg) { - Ok(block) => { - blocks += 1; - tx.clone().send(block).await.unwrap(); - } - Err(e) => { - panic!("Failed to convert block message to block: {e}"); - } - } - } - } - }); - - Ok(ReceiverStream::new(rx)) - } -} - -async fn build_and_connect_channel(uri: Uri) -> Result { - if uri.scheme_str() != Some("https") { - return Channel::builder(uri).connect().await; - } - - let config = crate::tls::config(); - - Channel::builder(uri) - .tls_config(config.clone())? - .connect() - .await -} - -fn create_blocks_streaming_request( - chain: Chain, - start_block_num: u64, - stop_block_num: u64, - blocks_requested: BlocksRequested, -) -> tonic::Request { - let mut request = tonic::Request::new(Request { - start_block_num: start_block_num as i64, - stop_block_num, - final_blocks_only: blocks_requested.into(), - ..Default::default() - }); - request.insert_api_key_if_provided(chain); - request -} - -async fn fetch_client(firehose: Chain) -> Result, ClientError> { - Ok(FetchClient::new({ - let uri = firehose.uri_from_env()?; - build_and_connect_channel(uri).await? - })) -} - -async fn stream_client(firehose: Chain) -> Result, ClientError> { - Ok(StreamClient::new({ - let uri = firehose.uri_from_env()?; - build_and_connect_channel(uri).await? - })) -} - -pub enum BlocksRequested { - All, - FinalOnly, -} - -impl From for bool { - fn from(blocks_requested: BlocksRequested) -> bool { - match blocks_requested { - BlocksRequested::All => false, - BlocksRequested::FinalOnly => true, - } - } -} - -/// Create a [`SingleBlockRequest`] for the given *number*. -/// Number is slot number for beacon blocks. -fn create_single_block_fetch_request(num: u64) -> tonic::Request { - tonic::Request::new(SingleBlockRequest::new(num)) -} - -trait FirehoseRequest { - fn insert_api_key_if_provided(&mut self, endpoint: Chain); -} - -impl FirehoseRequest for tonic::Request { - fn insert_api_key_if_provided(&mut self, endpoint: Chain) { - insert_api_key_if_provided(self, endpoint); - } -} - -fn insert_api_key_if_provided(request: &mut tonic::Request, chain: Chain) { - if let Ok(api_key) = var(chain.api_key_env_var_as_str()) { - let api_key_header = - tonic::metadata::MetadataValue::from_str(&api_key).expect("Invalid API key format"); - request.metadata_mut().insert("x-api-key", api_key_header); - } -} - -/// Extract blocks with [`FirehoseClient`] from an extendable union of chain variants. -#[derive(Clone, Copy, Debug)] -pub enum Chain { - Ethereum, - Beacon, - Arbitrum, -} - -impl Chain { - fn api_key_env_var_as_str(&self) -> &str { - match self { - Self::Beacon => "BEACON_API_KEY", - Self::Ethereum => "ETHEREUM_API_KEY", - Self::Arbitrum => "ARBITRUM_API_KEY", - } - } - - fn uri_from_env(&self) -> Result { - dotenv()?; - - let (url, port) = match self { - Self::Ethereum => ( - var("FIREHOSE_ETHEREUM_URL")?, - var("FIREHOSE_ETHEREUM_PORT")?, - ), - Self::Beacon => (var("FIREHOSE_BEACON_URL")?, var("FIREHOSE_BEACON_PORT")?), - Self::Arbitrum => ( - var("FIREHOSE_ARBITRUM_URL")?, - var("FIREHOSE_ARBITRUM_PORT")?, - ), - }; - - Ok(format!("{}:{}", url, port).parse::()?) - } -} diff --git a/crates/firehose-client/src/error.rs b/crates/firehose-client/src/error.rs deleted file mode 100644 index e1a9feae..00000000 --- a/crates/firehose-client/src/error.rs +++ /dev/null @@ -1,17 +0,0 @@ -use http::uri::InvalidUri; -use thiserror::Error; - -#[derive(Debug, Error)] -pub enum ClientError { - #[error("Missing environment variable: {0}")] - EnvVarMissing(#[from] dotenvy::Error), - - #[error("gRPC error: {0}")] - GRpc(#[from] tonic::transport::Error), - - #[error("{0}")] - TonicStatus(#[from] tonic::Status), - - #[error("Invalid URI: {0}")] - UriInvalid(#[from] InvalidUri), -} diff --git a/crates/firehose-client/src/lib.rs b/crates/firehose-client/src/lib.rs deleted file mode 100644 index 19d5d9fe..00000000 --- a/crates/firehose-client/src/lib.rs +++ /dev/null @@ -1,55 +0,0 @@ -//! # Rust Firehose Client -//! -//! Rust implementation of a client for the [StreamingFast Firehose](https://firehose.streamingfast.io/) -//! gRPC Fetch `Block` and Stream `Block`s APIs. -//! -//! ## Fetching an Ethereum Block -//! -//! ```no_run -//! # use firehose_client::{Chain, FirehoseClient}; -//! # use firehose_protos::EthBlock as Block; -//! # #[tokio::main] -//! # async fn main() -> Result<(), firehose_protos::ProtosError> { -//! let mut client = FirehoseClient::new(Chain::Ethereum); -//! -//! if let Some(response) = client.fetch_block(20672593).await.unwrap().ok() { -//! let block = Block::try_from(response.into_inner())?; -//! assert_eq!(block.number, 20672593); -//! assert_eq!( -//! format!("0x{}", hex::encode(block.hash)).as_str(), -//! "0xea48ba1c8e38ea586239e9c5ec62949ddd79404c6006c099bb02a8b22ddd18e4" -//! ); -//! } -//! # Ok(()) -//! # } -//! ``` -//! -//! ## Streaming Ethereum Blocks -//! -//! ```no_run -//! # use firehose_client::{Chain, FirehoseClient}; -//! # use futures::StreamExt; -//! # #[tokio::main] -//! # async fn main() -> Result<(), firehose_protos::ProtosError> { -//! const TOTAL_BLOCKS: u64 = 8192; -//! const START_BLOCK: u64 = 19581798; -//! -//! let mut client = FirehoseClient::new(Chain::Ethereum); -//! let mut stream = client -//! .stream_blocks(START_BLOCK, TOTAL_BLOCKS) -//! .await -//! .unwrap(); -//! -//! while let Some(block) = stream.next().await { -//! // Do Something with the extracted stream of blocks. -//! } -//! # Ok(()) -//! # } -//! ``` -//! - -mod client; -mod error; -mod tls; - -pub use crate::client::{Chain, FirehoseClient}; diff --git a/crates/firehose-client/src/tls.rs b/crates/firehose-client/src/tls.rs deleted file mode 100644 index c96a28f1..00000000 --- a/crates/firehose-client/src/tls.rs +++ /dev/null @@ -1,17 +0,0 @@ -use once_cell::sync::Lazy; - -use tonic::transport::ClientTlsConfig; - -static TLS_CONFIG: Lazy = Lazy::new(|| { - rustls::crypto::ring::default_provider() - .install_default() - .expect("Failed to install rustls crypto provider"); - - ClientTlsConfig::new() - .with_native_roots() - .assume_http2(true) -}); - -pub fn config() -> &'static ClientTlsConfig { - &TLS_CONFIG -} diff --git a/crates/firehose-protos-examples/Cargo.toml b/crates/firehose-protos-examples/Cargo.toml index 2f7af854..f066b0cf 100644 --- a/crates/firehose-protos-examples/Cargo.toml +++ b/crates/firehose-protos-examples/Cargo.toml @@ -5,6 +5,7 @@ edition = "2021" [dev-dependencies] alloy-primitives.workspace = true -firehose-client = { path = "../firehose-client" } +firehose-client = { git = "https://github.com/semiotic-ai/firehose-client.git", branch = "main" } firehose-protos = { path = "../firehose-protos" } +firehose-rs.workspace = true tokio.workspace = true diff --git a/crates/firehose-protos/Cargo.toml b/crates/firehose-protos/Cargo.toml index 14c56e28..194c7bfd 100644 --- a/crates/firehose-protos/Cargo.toml +++ b/crates/firehose-protos/Cargo.toml @@ -14,6 +14,7 @@ alloy-eip2930.workspace = true alloy-primitives.workspace = true alloy-rlp.workspace = true ethportal-api.workspace = true +firehose-rs.workspace = true primitive-types.workspace = true prost.workspace = true prost-wkt.workspace = true diff --git a/crates/firehose-protos/README.md b/crates/firehose-protos/README.md index 759d4bc3..71928635 100644 --- a/crates/firehose-protos/README.md +++ b/crates/firehose-protos/README.md @@ -13,7 +13,3 @@ Representation of the tracing of a block in the Ethereum blockchain. ### [`bstream.proto`](https://github.com/streamingfast/bstream/blob/develop/proto/sf/bstream/v1/bstream.proto) `Block` type from the Streamingfast block streaming Handlers library. Lower level building block of dfuse. - -### [`firehose.proto`](https://github.com/streamingfast/proto/blob/develop/sf/firehose/v2/firehose.proto) - -Firehose fetch and streaming, client and server gRPC implementation. diff --git a/crates/firehose-protos/build.rs b/crates/firehose-protos/build.rs index c94ae683..142367bf 100644 --- a/crates/firehose-protos/build.rs +++ b/crates/firehose-protos/build.rs @@ -19,11 +19,7 @@ fn main() { .file_descriptor_set_path(out_dir.join("descriptors.bin")) .compile_protos_with_config( config, - &[ - "protos/block.proto", - "protos/bstream.proto", - "protos/firehose.proto", - ], + &["protos/block.proto", "protos/bstream.proto"], &["protos/"], ) .unwrap(); diff --git a/crates/firehose-protos/protos/firehose.proto b/crates/firehose-protos/protos/firehose.proto deleted file mode 100644 index 5299bd8d..00000000 --- a/crates/firehose-protos/protos/firehose.proto +++ /dev/null @@ -1,150 +0,0 @@ -syntax = "proto3"; - -package sf.firehose.v2; - -import "google/protobuf/any.proto"; -import "google/protobuf/timestamp.proto"; - -option go_package = "github.com/streamingfast/pbgo/sf/firehose/v2;pbfirehose"; - -service Stream { - rpc Blocks(Request) returns (stream Response); -} - -service Fetch { - rpc Block(SingleBlockRequest) returns (SingleBlockResponse); -} - -message SingleBlockRequest { - - // Get the current known canonical version of a block at with this number - message BlockNumber{ - uint64 num=1; - } - - // Get the current block with specific hash and number - message BlockHashAndNumber{ - uint64 num=1; - string hash=2; - } - - // Get the block that generated a specific cursor - message Cursor{ - string cursor=1; - } - - oneof reference{ - BlockNumber block_number=3; - BlockHashAndNumber block_hash_and_number=4; - Cursor cursor=5; - } - - repeated google.protobuf.Any transforms = 6; -} - -message SingleBlockResponse { - google.protobuf.Any block = 1; - - // Metadata about the block, added in some Firehose version, so consumer - // should be ready to handle the absence of this field. - BlockMetadata metadata = 2; -} - -message Request { - - // Controls where the stream of blocks will start. - // - // The stream will start **inclusively** at the requested block num. - // - // When not provided, starts at first streamable block of the chain. Not all - // chain starts at the same block number, so you might get an higher block than - // requested when using default value of 0. - // - // Can be negative, will be resolved relative to the chain head block, assuming - // a chain at head block #100, then using `-50` as the value will start at block - // #50. If it resolves before first streamable block of chain, we assume start - // of chain. - // - // If `start_cursor` is given, this value is ignored and the stream instead starts - // immediately after the Block pointed by the opaque `start_cursor` value. - int64 start_block_num = 1; - - // Controls where the stream of blocks will start which will be immediately after - // the Block pointed by this opaque cursor. - // - // Obtain this value from a previously received `Response.cursor`. - // - // This value takes precedence over `start_block_num`. - string cursor = 2; - - // When non-zero, controls where the stream of blocks will stop. - // - // The stream will close **after** that block has passed so the boundary is - // **inclusive**. - uint64 stop_block_num = 3; - - // With final_block_only, you only receive blocks with STEP_FINAL - // Default behavior will send blocks as STEP_NEW, with occasional STEP_UNDO - bool final_blocks_only = 4; - - repeated google.protobuf.Any transforms = 10; -} - -message Response { - // Chain specific block payload, ex: - // - sf.eosio.type.v1.Block - // - sf.ethereum.type.v1.Block - // - sf.near.type.v1.Block - google.protobuf.Any block = 1; - ForkStep step = 6; - string cursor = 10; - - // Metadata about the block, added in some Firehose version, so consumer - // should be ready to handle the absence of this field. - BlockMetadata metadata = 12; -} - -message BlockMetadata { - // Num is the block number of this response's block. - uint64 num = 1; - // ID is the block ID of this response's block. The ID actual representation is chain specific. - // - Antelope & Ethereum uses hex. - // - NEAR & Solana uses base58. - // - // Refer to the chain documentation for more details. - string id = 2; - - // ParentNum is the block number of the parent of this response's block - uint64 parent_num = 3; - - // ParentID is the block ID of the parent of this response's block. If this response is the genesis block, - // this field is empty. - // - // The ID actual representation is chain specific. - // - Antelope & Ethereum uses hex. - // - NEAR & Solana uses base58. - // - // Refer to the chain documentation for more details. - string parent_id = 4; - - // LibNum is the block number of the last irreversible block (a.k.a last finalized block) at the time of this - // response' block. It determines the finality of the block. - uint64 lib_num = 5; - - // Time is the time at which the block was produced. - google.protobuf.Timestamp time = 6; -} - -enum ForkStep { - STEP_UNSET = 0; - - // Incoming block - STEP_NEW = 1; - - // A reorg caused this specific block to be excluded from the chain - STEP_UNDO = 2; - - // Block is now final and can be committed (finality is chain specific, - // see chain documentation for more details) - STEP_FINAL = 3; -} diff --git a/crates/firehose-protos/src/ethereum_v2/eth_block.rs b/crates/firehose-protos/src/ethereum_v2/eth_block.rs index 49f7f46f..e0d43f09 100644 --- a/crates/firehose-protos/src/ethereum_v2/eth_block.rs +++ b/crates/firehose-protos/src/ethereum_v2/eth_block.rs @@ -2,6 +2,7 @@ use super::{Block, BlockHeader, TransactionReceipt, TransactionTrace}; use alloy_primitives::{hex, Address, Bloom, FixedBytes, Uint, B256}; use alloy_rlp::{Encodable, Header as RlpHeader}; use ethportal_api::types::execution::header::Header; +use firehose_rs::{FromResponse, HasNumberOrSlot, Response, SingleBlockResponse}; use prost::Message; use prost_wkt_types::Any; use reth_primitives::{ @@ -10,10 +11,7 @@ use reth_primitives::{ use reth_trie_common::root::ordered_trie_root_with_encoder; use tracing::error; -use crate::{ - error::ProtosError, - firehose_v2::{Response, SingleBlockResponse}, -}; +use crate::error::ProtosError; impl TryFrom<&Block> for Header { type Error = ProtosError; @@ -360,6 +358,20 @@ impl FullReceipt { } } +impl FromResponse for Block { + type Error = ProtosError; + + fn from_response(msg: Response) -> Result { + Self::try_from(msg) + } +} + +impl HasNumberOrSlot for Block { + fn number_or_slot(&self) -> u64 { + self.number + } +} + #[cfg(test)] mod tests { use ethportal_api::Header; diff --git a/crates/firehose-protos/src/firehose_v2/mod.rs b/crates/firehose-protos/src/firehose_v2/mod.rs deleted file mode 100644 index c90bfe8b..00000000 --- a/crates/firehose-protos/src/firehose_v2/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod request; - -tonic::include_proto!("sf.firehose.v2"); diff --git a/crates/firehose-protos/src/firehose_v2/request.rs b/crates/firehose-protos/src/firehose_v2/request.rs deleted file mode 100644 index 036f03d4..00000000 --- a/crates/firehose-protos/src/firehose_v2/request.rs +++ /dev/null @@ -1,13 +0,0 @@ -use crate::BlockNumber; - -use super::{single_block_request::Reference, SingleBlockRequest}; - -impl SingleBlockRequest { - /// Create a Firehose [`SingleBlockRequest`] for the given *block number*. - pub fn new(num: u64) -> SingleBlockRequest { - SingleBlockRequest { - reference: Some(Reference::BlockNumber(BlockNumber { num })), - ..Default::default() - } - } -} diff --git a/crates/firehose-protos/src/lib.rs b/crates/firehose-protos/src/lib.rs index b111f2f8..b2aac611 100644 --- a/crates/firehose-protos/src/lib.rs +++ b/crates/firehose-protos/src/lib.rs @@ -16,7 +16,6 @@ mod error; mod ethereum_v2; -mod firehose_v2; mod bstream { pub mod v1 { @@ -27,22 +26,3 @@ mod bstream { pub use bstream::v1::Block as BstreamBlock; pub use error::ProtosError; pub use ethereum_v2::{eth_block::FullReceipt, Block as EthBlock, BlockHeader}; -pub(crate) use firehose_v2::single_block_request::BlockNumber; - -/// Interact programatically with the Firehose v2 Fetch API. -pub use firehose_v2::fetch_client::FetchClient; - -/// Create Firehose API fetch requests. -pub use firehose_v2::Request; - -/// Work with Firehose API streaming responses. -pub use firehose_v2::Response; - -/// Create Firehose API streaming requests. -pub use firehose_v2::SingleBlockRequest; - -/// Receive Firehose API fetch responses. -pub use firehose_v2::SingleBlockResponse; - -/// Work with the Firehose v2 Stream API. -pub use firehose_v2::stream_client::StreamClient; diff --git a/crates/forrestrie-examples/Cargo.toml b/crates/forrestrie-examples/Cargo.toml deleted file mode 100644 index 73c62268..00000000 --- a/crates/forrestrie-examples/Cargo.toml +++ /dev/null @@ -1,34 +0,0 @@ -[package] -name = "forrestrie-examples" -version = "0.1.1" -edition = "2021" - -[dev-dependencies] -bls.workspace = true -ethportal-api.workspace = true -firehose-client = { path = "../firehose-client" } -firehose-protos = { path = "../firehose-protos" } -forrestrie = { path = "../forrestrie" } -futures.workspace = true -insta.workspace = true -merkle_proof.workspace = true -primitive-types.workspace = true -prost.workspace = true -prost-wkt.workspace = true -prost-wkt-types.workspace = true -reqwest = { workspace = true, features = ["json"] } -reth-primitives.workspace = true -reth-trie-common.workspace = true -serde = { workspace = true, features = ["derive"] } -snap = "1.1.1" -ssz_types = "0.8.0" -ethereum_ssz = "0.7.1" -ethereum_ssz_derive = "0.7.1" -serde_json.workspace = true -tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } -trin-validation = { git = "https://github.com/ethereum/trin.git", version = "0.1.0", tag = "v0.1.0-alpha.51" } -tonic.workspace = true -tracing.workspace = true -tracing-subscriber = "0.3" -tree_hash = "0.6.0" -types.workspace = true diff --git a/crates/forrestrie-examples/README.md b/crates/forrestrie-examples/README.md deleted file mode 100644 index 2063021f..00000000 --- a/crates/forrestrie-examples/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Forrestrie Examples - -Here's an example of how to run one of the examples in the `forrestrie-examples` crate: - -```terminal -cd crates/forrestrie-examples && cargo run -- --examples historical_state_roots_proof -``` - -Use environment variables to provide Firehose Ethereum and Firehose -Beacon providers of your choice. - -To do this, place a `.env` file in the root of `veemon`. See the -`.env.example` file in the root of this repository for what you'll need, -depending on your requirements. diff --git a/crates/forrestrie-examples/assets/historical_batch-573-c847a969.ssz b/crates/forrestrie-examples/assets/historical_batch-573-c847a969.ssz deleted file mode 100644 index 45631b2dc5953b0f031795064c294a66bf7e1d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524288 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%0D-orgTCBd1Htg4EPZ z{enLgX+{wH$ASh`RwC@%yaa!hCe^wLr)re{J z$4waA>=8ztmc83*XNnE1t(8XhIpyDr1S`Reb68;;lq0JON?3g}hBMdXq-AodQh=e( zjTuOmB|C_BBAI~NP%lpfm4Vi@bH=A-6|mflnZRO6#{g|`0RPi8xy}`BG5-|8p0n*< zvrs3O{!IP(`Hdh}yxM{Rb)8;=MAj3b=J_ar)Zv*Ac-C4exDlS1Vio&a&qp^K;$IiK zW{DCiIQf+=?a94vZ^9E`wE1OvS|2)Pn;dcKP_YvmRnD)(#evu2=Nrf*=g;Oimjm&* z7e|2GztIcrdazWcK1{YG`=S%Xj(yF90bKt5v&DS|!;DuWI@RJsBUG9=Nbbgs5ELcI~dH+HbC5LwquIw{!$OpRGAx4}KoO|1qP(P%2L< zeyFm`JL_Thn3kM==RSB}`w@_?g1oJvUdkOe*xwtwWlHuSD4SlfL@5w2z0;R8#)jz_ z_k%``O~yEijO9{%*i23*<@4N4XvqLJJrQNdbF+kR=+ocE-nVd|q-TlNdT&E73g26Z z&(-a%6cxOQzcdSOB+CuOU0dq`;(mUq1S&bwxRsP8uug zeWmvEXS_N8s_)UaMk4m$VMc~L@-oqL0Aljk;ww9VSVf7dfEYgqVP`}I~=P%1162`24MhqE+W*^ zK;oAxqmmqi>+&R`tUj@#yelH}IfB4xh8U<;Q$E$S4t!K}J6zt?IJ#%sakYJm@X?T^e6NSZbccry60m74h%+oxH7uA+alFYLZ>95#!)fKy8q*lySw zdND}5Af>durF>eG;-n07CZYPP2$TGH$zqk&a+R#?qXTT^rkYW)N!+x23X^!Gd}2`eUcsa5)ue0WFY4 z%(QeUve~cfNou(ZSBFIu=OD)YNjaaqRG3Opy0)$m9yel8J{=4$A6h%JB;l&`@EY(d zI|7>n_q*_5JjRtZ<}q}SU{Ppn?>LX^qHoX=aH~R@7(q`0I@#f#hw90C0w|2R)3%Ty zFY?z1Q*t)GNugq__C-SYNj7mP`N2d*LS*(b)$>KAOI-u1IA!nv=d*wj6 zW`uMZ8{?NT;qe%c`R%p`<;0x@a}fhGNQl^o#ZLu50JB7^Hyear?-)P!$sV|WYCRbo zIzX8Gn4b($Zd_Osrdn2cA6rGsnDWh|4 zT#w@&Z;*v*5sxezA1<~+@bmY;uK9Dbbdm|gs*FHVZoX`~^NtaMO7o<`=gs!33Z6zi z=7!u!BKjcKy27Gs{k8tbZ)O>2WDJ%bmZqY8&;Z0P#79I|qrEszEQ%X>gDQoIr^hF< zt?0M{hBq-43@QNan{0`+NYS7Wy&8gwddp9~O6d+dcSNdn&2CBZ0M#)#P2~Lq=_SeF zCK>G*Ne~?yx(Kp1%aspYk#;D~?ht(^ke8{8AizCUObVTZqDFg(!yM(qH10J0W>uiz zFj*-1+p^j?$Ij>V zJ4�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