From 13ca6ba9fe06b1295330c2f50107b6cd8a3251ce Mon Sep 17 00:00:00 2001 From: arnaucube Date: Fri, 5 Sep 2025 14:39:19 +0000 Subject: [PATCH] add pod2 blob example flow code --- .gitignore | 1 + Cargo.lock | 5172 ++++++++++++++++++++++++++++++++++ Cargo.toml | 17 + README.md | 6 + proof_with_public_inputs.bin | Bin 0 -> 122990 bytes rust-toolchain.toml | 3 + src/main.rs | 132 + 7 files changed, 5331 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 README.md create mode 100644 proof_with_public_inputs.bin create mode 100644 rust-toolchain.toml create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..54dcfb3 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,5172 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addchain" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "const-random", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "alloy" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e2a5d689ccd182f1d138a61f081841b905034e0089f5278f6c200f2bcdab00a" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-json-rpc", + "alloy-network", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "alloy-trie", +] + +[[package]] +name = "alloy-chains" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8ff73a143281cb77c32006b04af9c047a6b8fe5860e85a88ad325328965355" +dependencies = [ + "alloy-primitives", + "num_enum", + "strum 0.27.2", +] + +[[package]] +name = "alloy-consensus" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-trie", + "alloy-tx-macros", + "auto_impl", + "c-kzg", + "derive_more", + "either", + "k256", + "once_cell", + "rand 0.8.5", + "secp256k1", + "serde", + "serde_with", + "thiserror", +] + +[[package]] +name = "alloy-consensus-any" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81443e3b8dccfeac7cd511aced15928c97ff253f4177acbb97de97178e543f6c" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de217ab604f1bcfa2e3b0aff86d50812d5931d47522f9f0a949cc263ec2d108e" +dependencies = [ + "alloy-consensus", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-pubsub", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-rlp", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "itoa", + "serde", + "serde_json", + "winnow", +] + +[[package]] +name = "alloy-eip2124" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "crc", + "serde", + "thiserror", +] + +[[package]] +name = "alloy-eip2930" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "k256", + "serde", + "thiserror", +] + +[[package]] +name = "alloy-eips" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "auto_impl", + "c-kzg", + "derive_more", + "either", + "serde", + "serde_with", + "sha2", + "thiserror", +] + +[[package]] +name = "alloy-genesis" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ba1cbc25a07e0142e8875fcbe80e1fdb02be8160ae186b90f4b9a69a72ed2b" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-serde", + "alloy-trie", + "serde", + "serde_with", +] + +[[package]] +name = "alloy-json-abi" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8882ec8e4542cfd02aadc6dccbe90caa73038f60016d936734eb6ced53d2167" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "http", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d6d87d588bda509881a7a66ae77c86514bd1193ac30fbff0e0f24db95eb5a5" +dependencies = [ + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-any", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "derive_more", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b14fa9ba5774e0b30ae6a04176d998211d516c8af69c9c530af7c6c42a8c508" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "foldhash", + "hashbrown 0.15.5", + "indexmap 2.11.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.9.2", + "ruint", + "rustc-hash", + "serde", + "sha3", + "tiny-keccak", +] + +[[package]] +name = "alloy-provider" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "475a5141313c3665b75d818be97d5fa3eb5e0abb7e832e9767edd94746db28e3" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-pubsub", + "alloy-rpc-client", + "alloy-rpc-types-anvil", + "alloy-rpc-types-debug", + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", + "alloy-rpc-types-txpool", + "alloy-signer", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "either", + "futures", + "futures-utils-wasm", + "lru", + "parking_lot", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-pubsub" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f97c18795ce1ce8151c5539ce1e4200940389674173f677c7455f79bfb00e5df" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", + "auto_impl", + "bimap", + "futures", + "parking_lot", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "wasmtimer", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "alloy-rpc-client" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25289674cd8c58fcca2568b5350423cb0dd7bca8c596c5e2869bfe4c5c57ed14" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-pubsub", + "alloy-transport", + "alloy-transport-http", + "alloy-transport-ipc", + "alloy-transport-ws", + "futures", + "pin-project", + "reqwest", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-rpc-types" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39676beaa50db545cf15447fc94ec5513b64e85a48357a0625b9a04aef08a910" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-anvil", + "alloy-rpc-types-debug", + "alloy-rpc-types-engine", + "alloy-rpc-types-eth", + "alloy-rpc-types-trace", + "alloy-rpc-types-txpool", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-anvil" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c8cad42fa936000be72ab80fcd97386a6a226c35c2989212756da9e76c1521" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-any" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01bac57c987c93773787619e20f89167db74d460a2d1d40f591d94fb7c22c379" +dependencies = [ + "alloy-consensus-any", + "alloy-rpc-types-eth", + "alloy-serde", +] + +[[package]] +name = "alloy-rpc-types-debug" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2fe118e6c152d54cb4549b9835fb87d38b12754bb121375183ee3ec84bd0849" +dependencies = [ + "alloy-primitives", + "derive_more", + "serde", + "serde_with", +] + +[[package]] +name = "alloy-rpc-types-engine" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a41624eb84bc743e414198bf10eb48b611a5554d6a9fd6205f7384d57dfd7f" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "derive_more", + "rand 0.8.5", + "serde", + "strum 0.27.2", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd1e1b4dcdf13eaa96343e5c0dafc2d2e8ce5d20b90347169d46a1df0dec210" +dependencies = [ + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.14.0", + "serde", + "serde_json", + "serde_with", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-trace" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc33d9d0e0b3cfe9c2e82a1a427c9ed516fcfebe764f0adf7ceb8107f702dd1" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-rpc-types-txpool" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fa9e9b3e613425d2a2ee1a322bdad5f1cedf835406fd4b59538822500b44bc" +dependencies = [ + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-serde" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab1b8d4649bf7d0db8ab04e31658a6cc20364d920795484d886c35bed3bab4" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "either", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-signer-local" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bdeec36c8d9823102b571b3eab8b323e053dc19c12da14a9687bd474129bf2a" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "k256", + "rand 0.8.5", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck", + "indexmap 2.11.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.106", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck", + "macro-string", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.106", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +dependencies = [ + "serde", + "winnow", +] + +[[package]] +name = "alloy-sol-types" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce5129146a76ca6139a19832c75ad408857a56bcd18cd2c684183b8eacd78d8" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "auto_impl", + "base64", + "derive_more", + "futures", + "futures-utils-wasm", + "parking_lot", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-transport-http" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2379d998f46d422ec8ef2b61603bc28cda931e5e267aea1ebe71f62da61d101" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-ipc" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "041aa5db2e907692a9a93a0a908057665c03e59364e1fbbeed613511a0159289" +dependencies = [ + "alloy-json-rpc", + "alloy-pubsub", + "alloy-transport", + "bytes", + "futures", + "interprocess", + "pin-project", + "serde", + "serde_json", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "alloy-transport-ws" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6d44395e6793566e9c89bd82297cc4b0566655c1e78a1d69362640814784cc6" +dependencies = [ + "alloy-pubsub", + "alloy-transport", + "futures", + "http", + "rustls", + "serde_json", + "tokio", + "tokio-tungstenite", + "tracing", + "ws_stream_wasm", +] + +[[package]] +name = "alloy-trie" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3412d52bb97c6c6cc27ccc28d4e6e8cf605469101193b50b0bd5813b1f990b5" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arrayvec", + "derive_more", + "nybbles", + "serde", + "smallvec", + "tracing", +] + +[[package]] +name = "alloy-tx-macros" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5becb9c269a7d05a2f28d549f86df5a5dbc923e2667eff84fdecac8cda534c" +dependencies = [ + "alloy-primitives", + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.60.2", +] + +[[package]] +name = "anyhow" +version = "1.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.4.1", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +dependencies = [ + "serde", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.1", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_impl" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitcoin-io" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" + +[[package]] +name = "bitcoin_hashes" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "2.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +dependencies = [ + "serde", +] + +[[package]] +name = "c-kzg" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", + "serde", +] + +[[package]] +name = "cc" +version = "1.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "chrono" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "windows-link", +] + +[[package]] +name = "clap" +version = "4.5.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "clap_lex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "const-hex" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dccd746bf9b1038c0507b7cec21eb2b11222db96a2902c96e8c185d6d20fb9c4" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.16", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core 0.20.11", + "darling_macro 0.20.11", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.106", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core 0.20.11", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.106", +] + +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "doctest-file" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "serdect", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff_derive" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" +dependencies = [ + "addchain", + "num-bigint 0.3.3", + "num-integer", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.3+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "rayon", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", + "serde", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-conservative" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[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.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +dependencies = [ + "equivalent", + "hashbrown 0.15.5", + "serde", +] + +[[package]] +name = "interprocess" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" +dependencies = [ + "doctest-file", + "futures-core", + "libc", + "recvmsg", + "tokio", + "widestring", + "windows-sys 0.52.0", +] + +[[package]] +name = "io-uring" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jiff" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "serdect", + "sha2", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "keccak-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2bd4c29270e724d3eaadf7bdc8700af4221fc0ed771b855eadcd1b98d52851" +dependencies = [ + "primitive-types 0.10.1", + "tiny-keccak", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.175" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" + +[[package]] +name = "lru" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +dependencies = [ + "hashbrown 0.15.5", +] + +[[package]] +name = "macro-string" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "nybbles" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" +dependencies = [ + "alloy-rlp", + "cfg-if", + "proptest", + "ruint", + "serde", + "smallvec", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags", + "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.106", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "parity-scale-codec" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pest" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "pest_meta" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +dependencies = [ + "pest", + "sha2", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plonky2" +version = "1.1.0" +source = "git+https://github.com/0xPARC/plonky2.git?rev=767a098d89b8d50d8aacfdce0c0a7222e8760d37#767a098d89b8d50d8aacfdce0c0a7222e8760d37" +dependencies = [ + "ahash", + "anyhow", + "dyn-clone", + "getrandom 0.2.16", + "hashbrown 0.14.5", + "itertools 0.11.0", + "keccak-hash", + "log", + "num", + "plonky2_field", + "plonky2_maybe_rayon", + "plonky2_util", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_arrays", + "static_assertions", + "unroll", + "web-time", +] + +[[package]] +name = "plonky2_field" +version = "1.0.0" +source = "git+https://github.com/0xPARC/plonky2.git?rev=767a098d89b8d50d8aacfdce0c0a7222e8760d37#767a098d89b8d50d8aacfdce0c0a7222e8760d37" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "num", + "plonky2_util", + "rand 0.8.5", + "serde", + "static_assertions", + "unroll", +] + +[[package]] +name = "plonky2_maybe_rayon" +version = "1.0.0" +source = "git+https://github.com/0xPARC/plonky2.git?rev=767a098d89b8d50d8aacfdce0c0a7222e8760d37#767a098d89b8d50d8aacfdce0c0a7222e8760d37" +dependencies = [ + "rayon", +] + +[[package]] +name = "plonky2_u32" +version = "0.1.0" +source = "git+https://github.com/ax0/plonky2-u32?rev=66ddeb86007f5945b07ca30c6bdd9fb8d0dabd1e#66ddeb86007f5945b07ca30c6bdd9fb8d0dabd1e" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "num", + "plonky2", +] + +[[package]] +name = "plonky2_util" +version = "1.0.0" +source = "git+https://github.com/0xPARC/plonky2.git?rev=767a098d89b8d50d8aacfdce0c0a7222e8760d37#767a098d89b8d50d8aacfdce0c0a7222e8760d37" + +[[package]] +name = "pod2" +version = "0.1.0" +source = "git+https://github.com/0xPARC/pod2?rev=78b49f2437bc6e00be2c371cbf7ac5218792d4d0#78b49f2437bc6e00be2c371cbf7ac5218792d4d0" +dependencies = [ + "anyhow", + "base64", + "bs58", + "dyn-clone", + "env_logger", + "hashbrown 0.14.5", + "hex", + "itertools 0.14.0", + "lazy_static", + "log", + "num", + "num-bigint 0.4.6", + "pest", + "pest_derive", + "plonky2", + "plonky2_u32", + "rand 0.8.5", + "rand_chacha 0.3.1", + "schemars 0.8.22", + "serde", + "serde_arrays", + "serde_bytes", + "serde_json", + "sha2", + "strum 0.26.3", + "strum_macros 0.26.4", + "thiserror", + "vergen-gitcl", +] + +[[package]] +name = "pod2_blob_example" +version = "0.1.0" +dependencies = [ + "alloy", + "anyhow", + "pod2", + "pod2_onchain", + "tokio", +] + +[[package]] +name = "pod2_onchain" +version = "0.1.0" +source = "git+https://github.com/0xPARC/pod2-onchain.git?rev=0fa4ab2b4a462b70f2ef284a8a562ea2364d9563#0fa4ab2b4a462b70f2ef284a8a562ea2364d9563" +dependencies = [ + "anyhow", + "base64", + "clap", + "ff", + "itertools 0.14.0", + "lazy_static", + "num", + "num-bigint 0.4.6", + "plonky2", + "pod2", + "serde", + "serde_json", + "sha2", +] + +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "potential_utf" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash 0.7.0", + "uint", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash 0.8.0", + "impl-codec", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags", + "lazy_static", + "num-traits", + "rand 0.9.2", + "rand_chacha 0.9.0", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "serde", +] + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "serde", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", + "serde", +] + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.3", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "recvmsg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" + +[[package]] +name = "redox_syscall" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +dependencies = [ + "bitflags", +] + +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "regex" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" + +[[package]] +name = "reqwest" +version = "0.12.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +dependencies = [ + "base64", + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "ruint" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp 0.3.1", + "fastrlp 0.4.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "parity-scale-codec", + "primitive-types 0.12.2", + "proptest", + "rand 0.8.5", + "rand 0.9.2", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.26", +] + +[[package]] +name = "rustix" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.60.2", +] + +[[package]] +name = "rustls" +version = "0.23.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.106", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", + "serde", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + +[[package]] +name = "semver-parser" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_arrays" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94a16b99c5ea4fe3daccd14853ad260ec00ea043b2708d1fd1da3106dcd8d9df" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_json" +version = "1.0.143" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +dependencies = [ + "itoa", + "memchr", + "ryu", + "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_with" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.11.0", + "schemars 0.9.0", + "schemars 1.0.4", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +dependencies = [ + "darling 0.20.11", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" + +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +dependencies = [ + "strum_macros 0.27.2", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.106", +] + +[[package]] +name = "strum_macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn-solidity" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.60.2", +] + +[[package]] +name = "thiserror" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +dependencies = [ + "deranged", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" + +[[package]] +name = "time-macros" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.47.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "pin-project-lite", + "slab", + "socket2", + "tokio-macros", + "windows-sys 0.59.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" +dependencies = [ + "futures-util", + "log", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tungstenite", + "webpki-roots 0.26.11", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap 2.11.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" +dependencies = [ + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.9.2", + "rustls", + "rustls-pki-types", + "sha1", + "thiserror", + "utf-8", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vergen" +version = "9.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", + "time", + "vergen-lib", +] + +[[package]] +name = "vergen-gitcl" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9dfc1de6eb2e08a4ddf152f1b179529638bedc0ea95e6d667c014506377aefe" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", + "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.3+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasmtimer" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.2", +] + +[[package]] +name = "webpki-roots" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "widestring" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "ws_stream_wasm" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..cd009d7 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "pod2_blob_example" +version = "0.1.0" +edition = "2024" + +[dependencies] +alloy = { version = "1.0.13", features = [ + "eips", + "full", + "json-rpc", + "rpc-client", +] } +tokio = {version="1.45", features = ["rt-multi-thread", "macros"]} + +anyhow = "1.0.56" +pod2 = { git="https://github.com/0xPARC/pod2", rev = "78b49f2437bc6e00be2c371cbf7ac5218792d4d0" } +pod2_onchain = { git = "https://github.com/0xPARC/pod2-onchain.git", rev = "0fa4ab2b4a462b70f2ef284a8a562ea2364d9563" } diff --git a/README.md b/README.md new file mode 100644 index 0000000..84cf66f --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# pod2-blob-example +Example of storing a [pod2](https://github.com/0xPARC/pod2) proof (plonky2 proof) in an ethereum blob ([EIP-4844](https://www.eip4844.com/)). More details at the `src/main.rs` file. + +## Usage +- set the ethereum private key and rpc url into `PRIV_KEY` and `RPC_URL` from `src/main.rs` +- run `cargo run --release` diff --git a/proof_with_public_inputs.bin b/proof_with_public_inputs.bin new file mode 100644 index 0000000000000000000000000000000000000000..f54e695a24b0a2ae353845e9519519f8e4eef609 GIT binary patch literal 122990 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 DWNB51 literal 0 HcmV?d00001 diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..d77e47e --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2025-09-04" +components = ["clippy", "rustfmt"] diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..b1ef8b0 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,132 @@ +use alloy::{ + consensus::{SidecarBuilder, SimpleCoder}, + eips::eip4844::DATA_GAS_PER_BLOB, + network::{TransactionBuilder, TransactionBuilder4844}, + primitives::Address, + providers::{Provider, ProviderBuilder}, + rpc::types::TransactionRequest, + signers::local::PrivateKeySigner, +}; +use anyhow::Result; +use std::{ + fs, + fs::File, + io::{BufReader, Read, Write}, + time::Instant, +}; + +use pod2::{ + backends::plonky2::{basetypes::DEFAULT_VD_SET, mainpod::Prover}, + frontend::{MainPodBuilder, Operation}, + middleware::{containers::Set, Params}, +}; + +// ethereum private key to use for the tx +const PRIV_KEY: &str = "PLACE THE ETHEREUM PRIV KEY HERE"; +// ethereum node rpc url +const RPC_URL: &str = "PLACE THE RPC URL HERE"; + + +// returns a MainPod, example adapted from pod2/examples/main_pod_points.rs +pub fn compute_pod_proof() -> Result { + let params = Params { + max_input_pods: 0, + ..Default::default() + }; + + let mut builder = MainPodBuilder::new(¶ms, &DEFAULT_VD_SET); + let set_entries = [1, 2, 3].into_iter().map(|n| n.into()).collect(); + let set = Set::new(10, set_entries)?; + + builder.pub_op(Operation::set_contains(set, 1))?; + + let prover = Prover {}; + let pod = builder.prove(&prover).unwrap(); + Ok(pod) +} + +#[tokio::main] +async fn main() -> Result<()> { + // PART 1: generate a pod2 proof, and wrap it into one level recursive proof + // in order to shrink its size + + // use the compute_pod_proof to obtain an example pod2 proof + println!("start to generate a pod2 proof"); + let start = Instant::now(); + let pod = compute_pod_proof()?; + println!( + "[TIME] generate pod & compute pod proof took: {:?}", + start.elapsed() + ); + // generate new plonky2 proof from POD's proof. This is 1 extra recursion in + // order to shrink the proof size, together with removing extra custom gates + let start = Instant::now(); + let (verifier_data, common_circuit_data, proof_with_pis) = pod2_onchain::prove_pod(pod)?; + println!("[TIME] plonky2 (wrapper) proof took: {:?}", start.elapsed()); + + // get the compressed proof, which we will send inside a blob + let compressed_proof = proof_with_pis.compress( + &verifier_data.verifier_only.circuit_digest, + &common_circuit_data.common, + )?; + let compressed_proof_bytes = compressed_proof.to_bytes(); + // store it in a file just in case we want to check it later + let mut file = fs::File::create("proof_with_public_inputs.bin")?; + file.write_all(&compressed_proof_bytes)?; + dbg!(&compressed_proof_bytes.len()); + + // alternatively, instead of generating the pod2 proof, we can load a + // previously stored proof with public inputs from the file + /* + let file = File::open("./proof_with_public_inputs.bin")?; + let mut reader = BufReader::new(file); + let mut compressed_proof_bytes = Vec::new(); + reader.read_to_end(&mut compressed_proof_bytes)?; + */ + println!("size of proof_with_pis: {}", compressed_proof_bytes.len()); + + // PART 2: send the pod2 proof into a tx blob + let signer: PrivateKeySigner = PRIV_KEY.parse()?; + let provider = ProviderBuilder::new() + .wallet(signer.clone()) + .connect(RPC_URL) + .await?; + + let latest_block = provider.get_block_number().await?; + println!("Latest block number: {latest_block}"); + + let alice = signer.address(); + let bob = Address::from([0x42; 20]); + dbg!(&alice); + dbg!(&bob); + + let sidecar: SidecarBuilder = SidecarBuilder::from_slice(&compressed_proof_bytes); + let sidecar = sidecar.build()?; + + let tx = TransactionRequest::default() + // 'from' field is filled by signer's first address (Alice in our case) + .with_to(bob) + .with_blob_sidecar(sidecar); + + let pending_tx = provider.send_transaction(tx).await?; + + println!("Pending transaction... tx hash: {}", pending_tx.tx_hash()); + + let receipt = pending_tx.get_receipt().await?; + + println!( + "Transaction included in block {}", + receipt.block_number.expect("Failed to get block number") + ); + + assert_eq!(receipt.from, alice); + assert_eq!(receipt.to, Some(bob)); + assert_eq!( + receipt + .blob_gas_used + .expect("Expected to be EIP-4844 transaction"), + DATA_GAS_PER_BLOB + ); + + Ok(()) +}