From a73c198a2aaccc37ca360ab090737cf0fd778127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Tr=C4=85d?= Date: Fri, 4 Oct 2024 17:52:19 +0200 Subject: [PATCH] WIP cli (#21) --- world-chain-builder/Cargo.lock | 1955 ++++++++++++----- world-chain-builder/Cargo.toml | 26 +- world-chain-builder/bin/toolkit.rs | 28 - world-chain-builder/crates/toolkit/Cargo.toml | 27 + world-chain-builder/crates/toolkit/src/cli.rs | 55 + .../crates/toolkit/src/cli/identity_source.rs | 43 + .../toolkit/src/cli/inclusion_proof_source.rs | 44 + .../crates/toolkit/src/cli/utils.rs | 21 + .../crates/toolkit/src/main.rs | 48 + world-chain-builder/src/date_marker.rs | 101 + world-chain-builder/src/external_nullifier.rs | 106 + world-chain-builder/src/lib.rs | 2 + world-chain-builder/src/pbh/semaphore.rs | 184 -- world-chain-builder/src/pool/error.rs | 2 +- world-chain-builder/src/pool/validator.rs | 9 +- world-chain-builder/x | 7 + 16 files changed, 1911 insertions(+), 747 deletions(-) delete mode 100644 world-chain-builder/bin/toolkit.rs create mode 100644 world-chain-builder/crates/toolkit/Cargo.toml create mode 100644 world-chain-builder/crates/toolkit/src/cli.rs create mode 100644 world-chain-builder/crates/toolkit/src/cli/identity_source.rs create mode 100644 world-chain-builder/crates/toolkit/src/cli/inclusion_proof_source.rs create mode 100644 world-chain-builder/crates/toolkit/src/cli/utils.rs create mode 100644 world-chain-builder/crates/toolkit/src/main.rs create mode 100644 world-chain-builder/src/date_marker.rs create mode 100644 world-chain-builder/src/external_nullifier.rs create mode 100755 world-chain-builder/x diff --git a/world-chain-builder/Cargo.lock b/world-chain-builder/Cargo.lock index a5de19fa..d3f501e8 100644 --- a/world-chain-builder/Cargo.lock +++ b/world-chain-builder/Cargo.lock @@ -114,13 +114,13 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-chains" -version = "0.1.32" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf770dad29577cd3580f3dd09005799224a912b8cdfdd6dc04d030d42b3df4e" +checksum = "94c225801d42099570d0674701dddd4142f0ef715282aeb5985042e2ec962df7" dependencies = [ "alloy-rlp", "arbitrary", - "num_enum", + "num_enum 0.7.3", "proptest", "serde", "strum", @@ -143,9 +143,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4004925bff5ba0a11739ae84dbb6601a981ea692f3bd45b626935ee90a6b8471" +checksum = "0b499852e1d0e9b8c6db0f24c48998e647c0d5762a01090f955106a7700e4611" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -156,7 +156,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow", + "winnow 0.6.20", ] [[package]] @@ -174,9 +174,9 @@ dependencies = [ [[package]] name = "alloy-eip7702" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -291,7 +291,7 @@ dependencies = [ "getrandom", "hashbrown 0.14.5", "hex-literal", - "indexmap 2.5.0", + "indexmap 2.6.0", "itoa", "k256", "keccak-asm", @@ -333,7 +333,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", "thiserror", @@ -380,7 +380,7 @@ checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -397,7 +397,7 @@ dependencies = [ "alloy-transport-ws", "futures", "pin-project", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", "tokio", @@ -600,7 +600,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -611,12 +611,12 @@ checksum = "6b96ce28d2fde09abb6135f410c41fad670a3a770b6776869bd852f1df102e6f" dependencies = [ "alloy-sol-macro-input", "const-hex", - "heck", - "indexmap 2.5.0", + "heck 0.5.0", + "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "syn-solidity", "tiny-keccak", ] @@ -629,10 +629,10 @@ checksum = "906746396a8296537745711630d9185746c0b50c033d5e9d18b0a6eba3d53f90" dependencies = [ "const-hex", "dunce", - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "syn-solidity", ] @@ -643,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc85178909a49c8827ffccfc9103a7ce1767ae66a801b69bdc326913870bf8e6" dependencies = [ "serde", - "winnow", + "winnow 0.6.20", ] [[package]] @@ -686,7 +686,7 @@ checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde_json", "tower 0.5.1", "tracing", @@ -795,6 +795,12 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "any_ascii" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e" + [[package]] name = "anyhow" version = "1.0.89" @@ -812,7 +818,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -831,29 +837,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" dependencies = [ "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-std 0.4.0", ] [[package]] name = "ark-circom" version = "0.1.0" -source = "git+https://github.com/arkworks-rs/circom-compat.git?rev=f97ac2b#f97ac2b2458fd14489bc70375bb45688f5ef26a8" +source = "git+https://github.com/Dzejkop/circom-compat.git?rev=3b19f79#3b19f795534d8c6c052ee5c4d44f249c4fe7fe88" dependencies = [ "ark-bn254", "ark-crypto-primitives", "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-groth16", "ark-poly", "ark-relations", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "ark-std 0.4.0", "byteorder", "cfg-if", "color-eyre", "criterion", - "ethers-core", + "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "fnv", "hex", "num", @@ -861,6 +867,7 @@ dependencies = [ "num-traits", "thiserror", "wasmer", + "wasmer-wasix", ] [[package]] @@ -870,9 +877,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" dependencies = [ "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-relations", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "ark-snark", "ark-std 0.4.0", "blake2", @@ -884,13 +891,13 @@ dependencies = [ [[package]] name = "ark-ec" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c60370a92f8e1a5f053cad73a862e1b99bc642333cd676fa11c0c39f80f4ac2" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-poly", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", @@ -920,13 +927,13 @@ dependencies = [ [[package]] name = "ark-ff" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2d42532524bee1da5a4f6f733eb4907301baa480829557adcff5dfaeee1d9a" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ "ark-ff-asm 0.4.2", "ark-ff-macros 0.4.2", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "ark-std 0.4.0", "derivative", "digest 0.10.7", @@ -992,22 +999,22 @@ checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" dependencies = [ "ark-crypto-primitives", "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-poly", "ark-relations", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "ark-std 0.4.0", "rayon", ] [[package]] name = "ark-poly" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6ec811462cabe265cfe1b102fcfe3df79d7d2929c2425673648ee9abfd0272" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" dependencies = [ - "ark-ff 0.4.1", - "ark-serialize 0.4.1", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", "ark-std 0.4.0", "derivative", "hashbrown 0.13.2", @@ -1020,7 +1027,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" dependencies = [ - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-std 0.4.0", "tracing", "tracing-subscriber 0.2.25", @@ -1038,9 +1045,9 @@ dependencies = [ [[package]] name = "ark-serialize" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e735959bc173ea4baf13327b19c22d452b8e9e8e8f7b7fc34e6bf0e316c33e" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ "ark-serialize-derive", "ark-std 0.4.0", @@ -1065,9 +1072,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" dependencies = [ - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-relations", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "ark-std 0.4.0", ] @@ -1095,15 +1102,15 @@ dependencies = [ [[package]] name = "ark-zkey" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "ark-bn254", "ark-circom", "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-groth16", "ark-relations", - "ark-serialize 0.4.1", + "ark-serialize 0.4.2", "color-eyre", "flame", "flamer", @@ -1130,9 +1137,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "async-compression" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec134f64e2bc57411226dfc4e52dec859ddfc7e711fc5e07b612584f000e4aa" +checksum = "7e614738943d3f68c628ae3dbce7c3daffb196665f82f8c8ea6b65de73c79429" dependencies = [ "brotli", "flate2", @@ -1146,9 +1153,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -1157,24 +1164,24 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "async-trait" -version = "0.1.82" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1188,6 +1195,15 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -1223,14 +1239,14 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backon" @@ -1255,7 +1271,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide 0.7.4", - "object 0.32.2", + "object", "rustc-demangle", ] @@ -1333,7 +1349,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1389,6 +1405,19 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "blake3" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + [[package]] name = "block-buffer" version = "0.9.0" @@ -1439,9 +1468,9 @@ dependencies = [ [[package]] name = "brotli" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" +checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -1475,7 +1504,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.8", "serde", ] @@ -1534,6 +1563,15 @@ dependencies = [ "serde", ] +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" +dependencies = [ + "serde", +] + [[package]] name = "c-kzg" version = "1.0.3" @@ -1604,9 +1642,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.21" +version = "1.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" +checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938" dependencies = [ "jobserver", "libc", @@ -1649,6 +1687,33 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half 2.4.1", +] + [[package]] name = "cipher" version = "0.4.4" @@ -1667,7 +1732,7 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.5", + "libloading", ] [[package]] @@ -1683,9 +1748,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.17" +version = "4.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615" dependencies = [ "clap_builder", "clap_derive", @@ -1693,26 +1758,26 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim", + "strsim 0.11.1", ] [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -1879,9 +1944,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" dependencies = [ "cfg-if", "cpufeatures", @@ -1917,6 +1982,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + [[package]] name = "convert_case" version = "0.6.0" @@ -1926,6 +1997,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "cooked-waker" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147be55d677052dabc6b22252d5dd0fd4c29c8c27aa4f2fbef0f94aa003b406f" + [[package]] name = "core-foundation" version = "0.9.4" @@ -1975,56 +2052,74 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.82.3" +version = "0.91.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +checksum = "2a2ab4512dfd3a6f4be184403a195f76e81a8a9f9e6c898e19d2dc3ce20e0115" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.82.3" +version = "0.91.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +checksum = "98b022ed2a5913a38839dfbafe6cf135342661293b08049843362df4301261dc" dependencies = [ + "arrayvec", + "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", + "cranelift-egraph", "cranelift-entity", + "cranelift-isle", "gimli 0.26.2", "log", - "regalloc", + "regalloc2", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.82.3" +version = "0.91.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +checksum = "639307b45434ad112a98f8300c0f0ab085cbefcd767efcdef9ef19d4c0756e74" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.82.3" +version = "0.91.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" +checksum = "278e52e29c53fcf32431ef08406c295699a70306d05a0715c5b1bf50e33a9ab7" + +[[package]] +name = "cranelift-egraph" +version = "0.91.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624b54323b06e675293939311943ba82d323bb340468ce1889be5da7932c8d73" +dependencies = [ + "cranelift-entity", + "fxhash", + "hashbrown 0.12.3", + "indexmap 1.9.3", + "log", + "smallvec", +] [[package]] name = "cranelift-entity" -version = "0.82.3" +version = "0.91.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" +checksum = "9a59bcbca89c3f1b70b93ab3cbba5e5e0cbf3e63dadb23c7525cb142e21a9d4c" [[package]] name = "cranelift-frontend" -version = "0.82.3" +version = "0.91.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +checksum = "0d70abacb8cfef3dc8ff7e8836e9c1d70f7967dfdac824a4cd5e30223415aca6" dependencies = [ "cranelift-codegen", "log", @@ -2032,6 +2127,12 @@ dependencies = [ "target-lexicon", ] +[[package]] +name = "cranelift-isle" +version = "0.91.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "393bc73c451830ff8dbb3a07f61843d6cb41a084f9996319917c0b291ed785bb" + [[package]] name = "crc" version = "3.2.1" @@ -2092,6 +2193,12 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "critical-section" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64009896348fc5af4222e9cf7d7d82a95a256c634ebcf61c53e4ea461422242" + [[package]] name = "crossbeam-channel" version = "0.5.13" @@ -2120,6 +2227,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -2244,7 +2360,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2271,7 +2387,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2288,7 +2404,17 @@ checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", ] [[package]] @@ -2297,8 +2423,22 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] @@ -2311,8 +2451,19 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", - "syn 2.0.77", + "strsim 0.11.1", + "syn 2.0.79", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote", + "syn 1.0.109", ] [[package]] @@ -2321,9 +2472,9 @@ version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core", + "darling_core 0.20.10", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2413,6 +2564,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + [[package]] name = "derive_arbitrary" version = "1.3.2" @@ -2421,7 +2583,38 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", ] [[package]] @@ -2432,7 +2625,7 @@ checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2453,7 +2646,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "unicode-xid", ] @@ -2565,6 +2758,15 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" +[[package]] +name = "document-features" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +dependencies = [ + "litrs", +] + [[package]] name = "dotenvy" version = "0.15.7" @@ -2706,10 +2908,10 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2740,7 +2942,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2758,10 +2960,10 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -2828,6 +3030,33 @@ dependencies = [ "uint", ] +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum 0.7.3", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + [[package]] name = "ethers-core" version = "2.0.14" @@ -2841,7 +3070,7 @@ dependencies = [ "ethabi", "generic-array", "k256", - "num_enum", + "num_enum 0.7.3", "open-fastrlp", "rand", "rlp", @@ -2937,6 +3166,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + [[package]] name = "flame" version = "0.2.2" @@ -2958,14 +3193,14 @@ checksum = "7693d9dd1ec1c54f52195dfe255b627f7cec7da33b679cd56de949e662b3db10" dependencies = [ "flame", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "flate2" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "miniz_oxide 0.8.0", @@ -3001,6 +3236,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "fsevent-sys" version = "4.1.0" @@ -3072,7 +3313,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -3121,6 +3362,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -3178,6 +3428,19 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "globset" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", +] + [[package]] name = "gloo-net" version = "0.6.0" @@ -3247,7 +3510,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.5.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3266,7 +3529,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.5.0", + "indexmap 2.6.0", "slab", "tokio", "tokio-util", @@ -3279,6 +3542,16 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403" +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hash-db" version = "0.15.2" @@ -3286,12 +3559,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" [[package]] -name = "hashbrown" -version = "0.11.2" +name = "hash32" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" dependencies = [ - "ahash 0.7.8", + "byteorder", ] [[package]] @@ -3323,10 +3596,16 @@ dependencies = [ "serde", ] +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + [[package]] name = "hasher" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "bytemuck", ] @@ -3350,6 +3629,28 @@ dependencies = [ "num-traits", ] +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.1", + "spin", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "heck" version = "0.5.0" @@ -3425,15 +3726,6 @@ dependencies = [ "hmac 0.8.1", ] -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "hostname" version = "0.3.1" @@ -3509,9 +3801,9 @@ checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -3620,21 +3912,36 @@ dependencies = [ ] [[package]] -name = "hyper-util" -version = "0.1.8" +name = "hyper-tls" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "futures-channel", - "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http-body-util", "hyper 1.4.1", - "pin-project-lite", - "socket2 0.5.7", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2 0.5.7", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] @@ -3662,6 +3969,12 @@ dependencies = [ "cc", ] +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + [[package]] name = "ident_case" version = "1.0.1" @@ -3698,6 +4011,22 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ignore" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata 0.4.8", + "same-file", + "walkdir", + "winapi-util", +] + [[package]] name = "impl-codec" version = "0.6.0" @@ -3774,13 +4103,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "arbitrary", "equivalent", - "hashbrown 0.14.5", + "hashbrown 0.15.0", "serde", ] @@ -3852,15 +4181,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" [[package]] name = "iri-string" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c25163201be6ded9e686703e85532f8f852ea1f92ba625cb3c51f7fe6d07a4a" +checksum = "44bd7eced44cfe2cebc674adb2a7124a754a4b5269288d22e9f39f8fada3562d" dependencies = [ "memchr", "serde", @@ -3945,9 +4274,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd1ead9fb95614e8dc5556d12a8681c2f6d352d0c1d3efc8708c7ccbba47bc6" +checksum = "126b48a5acc3c52fbd5381a77898cb60e145123179588a29e7ac48f9c06e401b" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -3963,9 +4292,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89841d4f03a14c055eb41d4f41901819573ef948e8ee0d5c86466fd286b2ce7f" +checksum = "bf679a8e0e083c77997f7c4bb4ca826577105906027ae462aac70ff348d02c6a" dependencies = [ "base64 0.22.1", "futures-channel", @@ -3988,9 +4317,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff79651479f69ada7bda604ef2acf3f1aa50755d97cc36d25ff04c2664f9d96f" +checksum = "b0e503369a76e195b65af35058add0e6900b794a4e9a9316900ddd3a87a80477" dependencies = [ "async-trait", "bytes", @@ -4015,9 +4344,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ed8b301b19f4dad8ddc66ed956a70fc227def5c19b3898e0a29ce8f0edee06" +checksum = "f2c0caba4a6a8efbafeec9baa986aa22a75a96c29d3e4b0091b0098d6470efb5" dependencies = [ "async-trait", "base64 0.22.1", @@ -4040,22 +4369,22 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d4c6bec4909c966f59f52db3655c0e9d4685faae8b49185973d9d7389bb884" +checksum = "fc660a9389e2748e794a40673a4155d501f32db667757cdb80edeff0306b489b" dependencies = [ - "heck", - "proc-macro-crate", + "heck 0.5.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "jsonrpsee-server" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe2198e5fd96cf2153ecc123364f699b6e2151317ea09c7bf799c43c2fe1415" +checksum = "af6e6c9b6d975edcb443565d648b605f3e85a04ec63aa6941811a8894cc9cded" dependencies = [ "futures-util", "http 1.1.0", @@ -4080,9 +4409,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e386460425e49679587871a056f2895a47dade21457324ad1262cd78ef6d9" +checksum = "d8fb16314327cbc94fdf7965ef7e4422509cd5597f76d137bd104eb34aeede67" dependencies = [ "http 1.1.0", "serde", @@ -4092,9 +4421,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2d2206c8f04c6b79a11bd1d92d6726b6f7fd3dec57c91e07fa53e867268bbb" +checksum = "e0da62b43702bd5640ea305d35df95da30abc878e79a7b4b01feda3beaf35d3c" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4103,9 +4432,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.4" +version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87bc869e143d430e748988261d19b630e8f1692074e68f1a7f0eb4c521d2fc58" +checksum = "39aabf5d6c6f22da8d5b808eea1fab0736059f11fb42f71f141b14f404e5046a" dependencies = [ "http 1.1.0", "jsonrpsee-client-transport", @@ -4131,9 +4460,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -4146,7 +4475,7 @@ dependencies = [ [[package]] name = "keccak" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "hasher", "tiny-keccak", @@ -4234,20 +4563,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] -name = "libc" -version = "0.2.158" +name = "lexical-sort" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "c09e4591611e231daf4d4c685a66cb0410cc1e502027a20ae55f2bb9e997207a" +dependencies = [ + "any_ascii", +] [[package]] -name = "libloading" -version = "0.7.4" +name = "libc" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libloading" @@ -4303,7 +4631,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.7", ] [[package]] @@ -4384,6 +4712,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "lock_api" version = "0.4.12" @@ -4400,27 +4734,6 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" -[[package]] -name = "loupe" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" -dependencies = [ - "indexmap 1.9.3", - "loupe-derive", - "rustversion", -] - -[[package]] -name = "loupe-derive" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "lru" version = "0.12.4" @@ -4444,14 +4757,8 @@ name = "lz4_flex" version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" dependencies = [ - "libc", + "twox-hash", ] [[package]] @@ -4463,6 +4770,12 @@ dependencies = [ "libc", ] +[[package]] +name = "managed" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" + [[package]] name = "match_cfg" version = "0.1.0" @@ -4493,6 +4806,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d28bba84adfe6646737845bc5ebbfa2c08424eb1c37e94a1fd2a82adb56a872" +dependencies = [ + "libc", +] + [[package]] name = "memmap2" version = "0.9.5" @@ -4504,18 +4826,18 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ "autocfg", ] [[package]] name = "memoffset" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -4537,7 +4859,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4f0c8427b39666bf970460908b213ec09b3b350f20c0c2eabcbba51704a08e6" dependencies = [ "base64 0.22.1", - "indexmap 2.5.0", + "indexmap 2.6.0", "metrics", "metrics-util", "quanta", @@ -4569,7 +4891,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.5", - "indexmap 2.5.0", + "indexmap 2.6.0", "metrics", "num_cpus", "ordered-float", @@ -4694,9 +5016,9 @@ checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" [[package]] name = "multiaddr" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" dependencies = [ "arrayref", "byteorder", @@ -4707,7 +5029,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.8.0", "url", ] @@ -4729,7 +5051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -4909,13 +5231,34 @@ dependencies = [ "libc", ] +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + [[package]] name = "num_enum" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.7.3", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -4924,10 +5267,10 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -4953,18 +5296,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "crc32fast", - "hashbrown 0.11.2", - "indexmap 1.9.3", - "memchr", -] - [[package]] name = "object" version = "0.32.2" @@ -4976,9 +5307,12 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +dependencies = [ + "portable-atomic", +] [[package]] name = "oorandom" @@ -5137,7 +5471,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5166,9 +5500,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "ordered-float" -version = "4.2.2" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6" +checksum = "44d501f1a72f71d3c063a6bbc8f7271fa73aa09fe5d6283b6571e2ed176a2537" dependencies = [ "num-traits", ] @@ -5228,7 +5562,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -5277,7 +5611,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.4", + "redox_syscall 0.5.7", "smallvec", "windows-targets 0.52.6", ] @@ -5288,6 +5622,12 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "path-clean" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17359afc20d7ab31fdb42bb844c8b3bb1dabd7dcf7e68428492da7f16966fcef" + [[package]] name = "pbkdf2" version = "0.12.2" @@ -5325,6 +5665,16 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.6.0", +] + [[package]] name = "pharos" version = "0.5.3" @@ -5335,6 +5685,48 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.5" @@ -5352,7 +5744,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5379,9 +5771,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plain_hasher" @@ -5434,17 +5826,17 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" [[package]] name = "poseidon" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "ark-bn254", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "hasher", "once_cell", "ruint", @@ -5510,13 +5902,23 @@ dependencies = [ "uint", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + [[package]] name = "proc-macro-crate" version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -5562,7 +5964,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5614,7 +6016,7 @@ dependencies = [ "rand", "rand_chacha", "rand_xorshift", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -5638,7 +6040,7 @@ checksum = "6ff7ff745a347b87471d859a377a9a404361e7efc2a971d73424a6d183c0fc77" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -5661,6 +6063,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "pulldown-cmark" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" +dependencies = [ + "bitflags 1.3.2", + "memchr", + "unicase", +] + [[package]] name = "quanta" version = "0.12.3" @@ -5827,9 +6240,9 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "11.1.0" +version = "11.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" +checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0" dependencies = [ "bitflags 2.6.0", ] @@ -5877,9 +6290,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.4" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -5896,26 +6309,27 @@ dependencies = [ ] [[package]] -name = "regalloc" -version = "0.0.34" +name = "regalloc2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" dependencies = [ + "fxhash", "log", - "rustc-hash 1.1.0", + "slice-group-by", "smallvec", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -5929,13 +6343,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -5946,9 +6360,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "region" @@ -5971,6 +6385,12 @@ dependencies = [ "bytecheck", ] +[[package]] +name = "replace_with" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a8614ee435691de62bcffcf4a66d91b3594bf1428a5722e79103249a095690" + [[package]] name = "reqwest" version = "0.11.27" @@ -5986,7 +6406,7 @@ dependencies = [ "http 0.2.12", "http-body 0.4.6", "hyper 0.14.30", - "hyper-tls", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", @@ -6013,12 +6433,13 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64 0.22.1", "bytes", + "futures-channel", "futures-core", "futures-util", "http 1.1.0", @@ -6026,29 +6447,35 @@ dependencies = [ "http-body-util", "hyper 1.4.1", "hyper-rustls", + "hyper-tls 0.6.0", "hyper-util", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "quinn", "rustls", - "rustls-native-certs 0.7.3", - "rustls-pemfile 2.1.3", + "rustls-native-certs 0.8.0", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", "tokio", + "tokio-native-tls", "tokio-rustls", + "tokio-socks", + "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", + "wasm-streams", "web-sys", "webpki-roots", "windows-registry", @@ -6072,7 +6499,7 @@ dependencies = [ "alloy-rlp", "aquamarine", "backon", - "clap 4.5.17", + "clap 4.5.19", "eyre", "futures", "reth-basic-payload-builder", @@ -6320,7 +6747,7 @@ name = "reth-cli" version = "1.0.7" source = "git+https://github.com/ewoolsey/reth?rev=b2848f#b2848f2fc84595fa62c3831a9bb80c7708e6b627" dependencies = [ - "clap 4.5.17", + "clap 4.5.19", "eyre", "reth-cli-runner", ] @@ -6334,7 +6761,7 @@ dependencies = [ "alloy-eips", "alloy-primitives", "backon", - "clap 4.5.17", + "clap 4.5.19", "comfy-table", "crossterm", "eyre", @@ -6434,7 +6861,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -6484,7 +6911,7 @@ dependencies = [ "auto_impl", "eyre", "futures", - "reqwest 0.12.7", + "reqwest 0.12.8", "reth-node-api", "reth-node-core", "reth-rpc-api", @@ -7188,7 +7615,7 @@ dependencies = [ "byteorder", "dashmap", "derive_more 1.0.0", - "indexmap 2.5.0", + "indexmap 2.6.0", "parking_lot 0.12.3", "reth-mdbx-sys", "thiserror", @@ -7224,7 +7651,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -7242,7 +7669,7 @@ source = "git+https://github.com/ewoolsey/reth?rev=b2848f#b2848f2fc84595fa62c383 dependencies = [ "futures-util", "if-addrs", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde_with", "thiserror", "tokio", @@ -7474,7 +7901,7 @@ dependencies = [ "alloy-genesis", "alloy-primitives", "alloy-rpc-types-engine", - "clap 4.5.17", + "clap 4.5.19", "const_format", "derive_more 1.0.0", "dirs-next", @@ -7599,12 +8026,12 @@ source = "git+https://github.com/ewoolsey/reth?rev=b2848f#b2848f2fc84595fa62c383 dependencies = [ "alloy-primitives", "async-trait", - "clap 4.5.17", + "clap 4.5.19", "eyre", "jsonrpsee", "jsonrpsee-types", "parking_lot 0.12.3", - "reqwest 0.12.7", + "reqwest 0.12.8", "reth-auto-seal-consensus", "reth-basic-payload-builder", "reth-beacon-consensus", @@ -7669,7 +8096,7 @@ source = "git+https://github.com/ewoolsey/reth?rev=b2848f#b2848f2fc84595fa62c383 dependencies = [ "alloy-primitives", "alloy-rlp", - "clap 4.5.17", + "clap 4.5.19", "eyre", "futures-util", "reth-chainspec", @@ -7768,7 +8195,7 @@ dependencies = [ "op-alloy-network", "op-alloy-rpc-types", "parking_lot 0.12.3", - "reqwest 0.12.7", + "reqwest 0.12.8", "reth-chainspec", "reth-evm", "reth-evm-optimism", @@ -8383,7 +8810,7 @@ version = "1.0.7" source = "git+https://github.com/ewoolsey/reth?rev=b2848f#b2848f2fc84595fa62c3831a9bb80c7708e6b627" dependencies = [ "alloy-primitives", - "clap 4.5.17", + "clap 4.5.19", "derive_more 1.0.0", "serde", "strum", @@ -8454,7 +8881,7 @@ name = "reth-tracing" version = "1.0.7" source = "git+https://github.com/ewoolsey/reth?rev=b2848f#b2848f2fc84595fa62c3831a9bb80c7708e6b627" dependencies = [ - "clap 4.5.17", + "clap 4.5.19", "eyre", "rolling-file", "tracing", @@ -8633,6 +9060,8 @@ version = "10.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "713dbb271acd13afb06dcd460c1dc43da211e7ac9bc73cdf13528f615f55f96b" dependencies = [ + "paste", + "phf", "revm-primitives", "serde", ] @@ -8727,6 +9156,7 @@ dependencies = [ "bytecheck", "bytes", "hashbrown 0.12.3", + "indexmap 1.9.3", "ptr_meta", "rend", "rkyv_derive", @@ -8811,7 +9241,7 @@ dependencies = [ "alloy-rlp", "arbitrary", "ark-ff 0.3.0", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "bytemuck", "bytes", "fastrlp", @@ -8894,9 +9324,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.13" +version = "0.23.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +checksum = "415d9944693cb90382053259f89fbb077ea730ad7273047ec63b19bc9b160ba8" dependencies = [ "log", "once_cell", @@ -8914,7 +9344,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", "security-framework", @@ -8927,7 +9357,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", "security-framework", @@ -8944,19 +9374,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-platform-verifier" @@ -9014,6 +9443,19 @@ dependencies = [ "wait-timeout", ] +[[package]] +name = "rusty_pool" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ed36cdb20de66d89a17ea04b8883fc7a386f2cf877aaedca5005583ce4876ff" +dependencies = [ + "crossbeam-channel", + "futures", + "futures-channel", + "futures-executor", + "num_cpus", +] + [[package]] name = "ryu" version = "1.0.18" @@ -9047,7 +9489,7 @@ version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -9062,6 +9504,31 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", + "url", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.79", +] + [[package]] name = "schnellru" version = "0.2.3" @@ -9141,23 +9608,29 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", ] +[[package]] +name = "self_cell" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" + [[package]] name = "semaphore" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "ark-bn254", "ark-circom", "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-groth16", "ark-relations", "ark-std 0.4.0", @@ -9166,7 +9639,7 @@ dependencies = [ "bytemuck", "color-eyre", "ethabi", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/gakonst/ethers-rs)", "hasher", "hex", "hex-literal", @@ -9195,18 +9668,18 @@ dependencies = [ [[package]] name = "semaphore-depth-config" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" [[package]] name = "semaphore-depth-macros" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", "semaphore-depth-config", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -9258,12 +9731,14 @@ dependencies = [ ] [[package]] -name = "serde_bytes" -version = "0.11.15" +name = "serde-wasm-bindgen" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +checksum = "e3b4c031cd0d9014307d82b8abf653c0290fbdaeb4c02d00c63cf52f728628bf" dependencies = [ + "js-sys", "serde", + "wasm-bindgen", ] [[package]] @@ -9272,7 +9747,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" dependencies = [ - "half", + "half 1.8.3", "serde", ] @@ -9284,7 +9759,18 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", +] + +[[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.79", ] [[package]] @@ -9293,7 +9779,7 @@ version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "itoa", "memchr", "ryu", @@ -9308,14 +9794,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -9334,15 +9820,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +checksum = "9720086b3357bcb44fce40117d769a4d068c70ecfa190850a980a71755f66fcc" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_derive", "serde_json", @@ -9352,14 +9838,27 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.9.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +checksum = "5f1abbfe725f27678f4663bcacb75a83e829fd464c25d78dd038a3a29e307cec" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", +] + +[[package]] +name = "serde_yaml" +version = "0.9.34+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" +dependencies = [ + "indexmap 2.6.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", ] [[package]] @@ -9426,6 +9925,16 @@ dependencies = [ "lazy_static 1.5.0", ] +[[package]] +name = "shared-buffer" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6c99835bad52957e7aa241d3975ed17c1e5f8c92026377d117a606f36b84b16" +dependencies = [ + "bytes", + "memmap2 0.6.2", +] + [[package]] name = "shellexpand" version = "3.1.0" @@ -9483,9 +9992,9 @@ dependencies = [ [[package]] name = "simdutf8" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "similar" @@ -9519,6 +10028,12 @@ dependencies = [ "time", ] +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "sketches-ddsketch" version = "0.2.2" @@ -9534,6 +10049,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + [[package]] name = "smallvec" version = "1.13.2" @@ -9544,6 +10065,17 @@ dependencies = [ "serde", ] +[[package]] +name = "smoltcp" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee34c1e1bfc7e9206cc0fb8030a90129b4e319ab53856249bb27642cab914fb3" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "managed", +] + [[package]] name = "snap" version = "1.1.1" @@ -9612,7 +10144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -9630,7 +10162,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "storage" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "bytemuck", "color-eyre", @@ -9638,6 +10170,12 @@ dependencies = [ "tempfile", ] +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "strsim" version = "0.11.1" @@ -9659,11 +10197,11 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -9698,9 +10236,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.77" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -9716,7 +10254,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -9789,6 +10327,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "tar" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +dependencies = [ + "filetime", + "libc", + "xattr", +] + [[package]] name = "target-lexicon" version = "0.12.16" @@ -9797,9 +10346,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", @@ -9817,6 +10366,25 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "termios" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" +dependencies = [ + "libc", +] + [[package]] name = "test-case" version = "3.3.1" @@ -9835,7 +10403,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -9846,7 +10414,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "test-case-core", ] @@ -9861,22 +10429,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -10053,7 +10621,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -10077,6 +10645,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-socks" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f" +dependencies = [ + "either", + "futures-util", + "thiserror", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.16" @@ -10129,7 +10709,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -10143,15 +10723,47 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.21" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.6.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.6.0", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.20", +] + +[[package]] +name = "toolkit" +version = "0.1.0" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-rlp", + "bytes", + "chrono", + "clap 4.5.19", + "color-eyre", + "dotenvy", + "hex", + "semaphore", + "serde", + "serde_json", + "tokio", + "world-chain-builder", ] [[package]] @@ -10264,7 +10876,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -10374,17 +10986,18 @@ dependencies = [ [[package]] name = "trees" version = "0.1.0" -source = "git+https://github.com/worldcoin/semaphore-rs?rev=f44b7934#f44b7934361e2bba05f9351d97a6eddfa4de4eff" +source = "git+https://github.com/worldcoin/semaphore-rs?rev=d0d1f899add7116ccc1228f5e5e5ee2e2e233768#d0d1f899add7116ccc1228f5e5e5ee2e2e233768" dependencies = [ "ark-bn254", "ark-circom", "ark-ec", - "ark-ff 0.4.1", + "ark-ff 0.4.2", "ark-groth16", "ark-relations", "ark-std 0.4.0", "bytemuck", "color-eyre", + "derive-where", "hasher", "hex", "hex-literal", @@ -10481,6 +11094,16 @@ dependencies = [ "utf-8", ] +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + [[package]] name = "typenum" version = "1.17.0" @@ -10489,9 +11112,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -10522,9 +11145,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" [[package]] name = "unicode-ident" @@ -10580,12 +11203,24 @@ dependencies = [ "subtle", ] +[[package]] +name = "unsafe-libyaml" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" + [[package]] name = "unsigned-varint" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +[[package]] +name = "unsigned-varint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" + [[package]] name = "untrusted" version = "0.9.0" @@ -10601,8 +11236,15 @@ dependencies = [ "form_urlencoded", "idna 0.5.0", "percent-encoding", + "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf-8" version = "0.7.6" @@ -10656,6 +11298,145 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "virtual-fs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e60ef133d8336b201a1618252518d81f9e9d30fbe27449dab706699a549216bc" +dependencies = [ + "anyhow", + "async-trait", + "bytes", + "dashmap", + "derivative", + "dunce", + "filetime", + "fs_extra", + "futures", + "getrandom", + "indexmap 1.9.3", + "lazy_static 1.5.0", + "libc", + "pin-project-lite", + "replace_with", + "shared-buffer", + "slab", + "thiserror", + "tokio", + "tracing", + "webc", +] + +[[package]] +name = "virtual-mio" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff8026c9d7575dc9afd8a0907357acb7aa55ec262097fbccae5da42f67773b3c" +dependencies = [ + "async-trait", + "bytes", + "derivative", + "futures", + "mio 0.8.11", + "serde", + "socket2 0.4.10", + "thiserror", + "tracing", +] + +[[package]] +name = "virtual-net" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d9551aa47efdb28093f79845d40858baf5075e4b4a09c7d9c8a0edd42f942b" +dependencies = [ + "anyhow", + "async-trait", + "base64 0.21.7", + "bincode", + "bytecheck", + "bytes", + "derivative", + "futures-util", + "libc", + "mio 0.8.11", + "pin-project-lite", + "rkyv", + "serde", + "smoltcp", + "socket2 0.4.10", + "thiserror", + "tokio", + "tracing", + "virtual-mio", +] + +[[package]] +name = "wai-bindgen-gen-core" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aa3dc41b510811122b3088197234c27e08fcad63ef936306dd8e11e2803876c" +dependencies = [ + "anyhow", + "wai-parser", +] + +[[package]] +name = "wai-bindgen-gen-rust" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19bc05e8380515c4337c40ef03b2ff233e391315b178a320de8640703d522efe" +dependencies = [ + "heck 0.3.3", + "wai-bindgen-gen-core", +] + +[[package]] +name = "wai-bindgen-gen-rust-wasm" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f35ce5e74086fac87f3a7bd50f643f00fe3559adb75c88521ecaa01c8a6199" +dependencies = [ + "heck 0.3.3", + "wai-bindgen-gen-core", + "wai-bindgen-gen-rust", +] + +[[package]] +name = "wai-bindgen-rust" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e5601c6f448c063e83a5e931b8fefcdf7e01ada424ad42372c948d2e3d67741" +dependencies = [ + "bitflags 1.3.2", + "wai-bindgen-rust-impl", +] + +[[package]] +name = "wai-bindgen-rust-impl" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdeeb5c1170246de8425a3e123e7ef260dc05ba2b522a1d369fe2315376efea4" +dependencies = [ + "proc-macro2", + "syn 1.0.109", + "wai-bindgen-gen-core", + "wai-bindgen-gen-rust-wasm", +] + +[[package]] +name = "wai-parser" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd0acb6d70885ea0c343749019ba74f015f64a9d30542e66db69b49b7e28186" +dependencies = [ + "anyhow", + "id-arena", + "pulldown-cmark", + "unicode-normalization", + "unicode-xid", +] + [[package]] name = "wait-timeout" version = "0.2.0" @@ -10665,6 +11446,12 @@ dependencies = [ "libc", ] +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + [[package]] name = "walkdir" version = "2.5.0" @@ -10712,7 +11499,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -10746,7 +11533,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10759,82 +11546,94 @@ checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-encoder" -version = "0.217.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b88b0814c9a2b323a9b46c687e726996c255ac8b64aa237dd11c81ed4854760" +checksum = "1ba64e81215916eaeb48fee292f29401d69235d62d8b8fd92a7b2844ec5ae5f7" dependencies = [ "leb128", ] +[[package]] +name = "wasm-streams" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasmer" -version = "2.3.0" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +checksum = "4b28d4251f96ece14460328c56ee0525edcf4bbb08748cfd87fef3580ae4d403" dependencies = [ + "bytes", "cfg-if", + "derivative", "indexmap 1.9.3", "js-sys", - "loupe", "more-asserts 0.2.2", + "rustc-demangle", + "serde", + "serde-wasm-bindgen", + "shared-buffer", "target-lexicon", "thiserror", + "tracing", "wasm-bindgen", - "wasmer-artifact", "wasmer-compiler", "wasmer-compiler-cranelift", "wasmer-derive", - "wasmer-engine", - "wasmer-engine-dylib", - "wasmer-engine-universal", "wasmer-types", "wasmer-vm", "wat", - "winapi", -] - -[[package]] -name = "wasmer-artifact" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" -dependencies = [ - "enumset", - "loupe", - "thiserror", - "wasmer-compiler", - "wasmer-types", + "windows-sys 0.59.0", ] [[package]] name = "wasmer-compiler" -version = "2.3.0" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +checksum = "009b8417d51dbca8ac9a640ea999cc924fc59040a81245ecd0e092cb7c45dc10" dependencies = [ + "backtrace", + "bytes", + "cfg-if", + "enum-iterator", "enumset", - "loupe", + "lazy_static 1.5.0", + "leb128", + "libc", + "memmap2 0.5.10", + "more-asserts 0.2.2", + "region", "rkyv", - "serde", - "serde_bytes", + "self_cell", + "shared-buffer", "smallvec", - "target-lexicon", "thiserror", "wasmer-types", + "wasmer-vm", "wasmparser", + "windows-sys 0.59.0", + "xxhash-rust", ] [[package]] name = "wasmer-compiler-cranelift" -version = "2.3.0" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +checksum = "2445c6fb03824979448293e91d8a6daf0cdf66e8d996f31ef270e0d2cc3ea1f3" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "gimli 0.26.2", - "loupe", "more-asserts 0.2.2", "rayon", "smallvec", @@ -10845,171 +11644,224 @@ dependencies = [ ] [[package]] -name = "wasmer-derive" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "wasmer-engine" -version = "2.3.0" +name = "wasmer-config" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +checksum = "644b7e3547bd7e796d92220f60bf57734914254c6cee56607e80177a3e8a28da" dependencies = [ - "backtrace", - "enumset", - "lazy_static 1.5.0", - "loupe", - "memmap2 0.5.10", - "more-asserts 0.2.2", - "rustc-demangle", + "anyhow", + "bytesize", + "ciborium", + "derive_builder", + "hex", + "indexmap 2.6.0", + "schemars", + "semver 1.0.23", "serde", - "serde_bytes", - "target-lexicon", + "serde_json", + "serde_yaml", "thiserror", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-types", - "wasmer-vm", -] - -[[package]] -name = "wasmer-engine-dylib" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" -dependencies = [ - "cfg-if", - "enum-iterator", - "enumset", - "leb128", - "libloading 0.7.4", - "loupe", - "object 0.28.4", - "rkyv", - "serde", - "tempfile", - "tracing", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-engine", - "wasmer-object", - "wasmer-types", - "wasmer-vm", - "which", + "toml", + "url", ] [[package]] -name = "wasmer-engine-universal" -version = "2.3.0" +name = "wasmer-derive" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +checksum = "02592d86ac19fb09c972e72edeb3e57ac5c569eac7e77b919b165da014e8c139" dependencies = [ - "cfg-if", - "enumset", - "leb128", - "loupe", - "region", - "rkyv", - "wasmer-compiler", - "wasmer-engine", - "wasmer-engine-universal-artifact", - "wasmer-types", - "wasmer-vm", - "winapi", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "wasmer-engine-universal-artifact" -version = "2.3.0" +name = "wasmer-journal" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +checksum = "3045807a8a70da47eb06cb55aad673d5774f87f26ee11b7758d63c54b67bc5f4" dependencies = [ - "enum-iterator", - "enumset", - "loupe", + "anyhow", + "async-trait", + "base64 0.21.7", + "bincode", + "bytecheck", + "bytes", + "derivative", + "lz4_flex", + "num_enum 0.5.11", "rkyv", + "serde", + "serde_json", + "shared-buffer", "thiserror", - "wasmer-artifact", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-object" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" -dependencies = [ - "object 0.28.4", - "thiserror", - "wasmer-compiler", - "wasmer-types", + "tracing", + "virtual-fs", + "virtual-net", + "wasmer", + "wasmer-wasix-types", ] [[package]] name = "wasmer-types" -version = "2.3.0" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +checksum = "3d22a00f1a90e9e66d5427853f41e76d8ab89e03eb3034debd11933607fef56a" dependencies = [ - "backtrace", + "bytecheck", "enum-iterator", + "enumset", + "getrandom", + "hex", "indexmap 1.9.3", - "loupe", "more-asserts 0.2.2", "rkyv", "serde", + "sha2 0.10.8", + "target-lexicon", "thiserror", + "xxhash-rust", ] [[package]] name = "wasmer-vm" -version = "2.3.0" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +checksum = "87d88e8355157cd730fb81e33c3b4d6849fd44c26d32bf78820638e1d935967b" dependencies = [ "backtrace", "cc", "cfg-if", "corosensei", + "crossbeam-queue", + "dashmap", + "derivative", "enum-iterator", + "fnv", "indexmap 1.9.3", "lazy_static 1.5.0", "libc", - "loupe", - "mach", - "memoffset 0.6.5", + "mach2", + "memoffset 0.9.1", "more-asserts 0.2.2", "region", - "rkyv", "scopeguard", + "thiserror", + "wasmer-types", + "windows-sys 0.59.0", +] + +[[package]] +name = "wasmer-wasix" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfe427dbe359e037e1e33ff13b3a5473706e5679df2dbb0e71b5b46c9bb6ce3" +dependencies = [ + "ahash 0.8.11", + "anyhow", + "async-trait", + "base64 0.21.7", + "bincode", + "blake3", + "bytecheck", + "bytes", + "cfg-if", + "cooked-waker", + "dashmap", + "derivative", + "futures", + "getrandom", + "heapless", + "hex", + "http 1.1.0", + "lazy_static 1.5.0", + "libc", + "linked_hash_set", + "lz4_flex", + "num_enum 0.5.11", + "once_cell", + "petgraph", + "pin-project", + "pin-utils", + "rand", + "reqwest 0.12.8", + "rkyv", + "rusty_pool", + "semver 1.0.23", "serde", + "serde_derive", + "serde_json", + "serde_yaml", + "sha2 0.10.8", + "shared-buffer", + "tempfile", + "terminal_size", + "termios", "thiserror", - "wasmer-artifact", + "tokio", + "tokio-stream", + "toml", + "tracing", + "url", + "urlencoding", + "virtual-fs", + "virtual-mio", + "virtual-net", + "waker-fn", + "wasmer", + "wasmer-config", + "wasmer-journal", + "wasmer-types", + "wasmer-wasix-types", + "webc", + "weezl", + "windows-sys 0.59.0", + "xxhash-rust", +] + +[[package]] +name = "wasmer-wasix-types" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b9304c02de27468ea4154a31f8758343717d03a29d2a620bc652e8217baab75" +dependencies = [ + "anyhow", + "bitflags 1.3.2", + "byteorder", + "cfg-if", + "num_enum 0.5.11", + "serde", + "time", + "tracing", + "wai-bindgen-gen-core", + "wai-bindgen-gen-rust", + "wai-bindgen-gen-rust-wasm", + "wai-bindgen-rust", + "wai-parser", + "wasmer", + "wasmer-derive", "wasmer-types", - "winapi", ] [[package]] name = "wasmparser" -version = "0.83.0" +version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" +checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" +dependencies = [ + "bitflags 2.6.0", + "indexmap 2.6.0", + "semver 1.0.23", +] [[package]] name = "wast" -version = "217.0.0" +version = "64.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79004ecebded92d3c710d4841383368c7f04b63d0992ddd6b0c7d5029b7629b7" +checksum = "a259b226fd6910225aa7baeba82f9d9933b6d00f2ce1b49b80fa4214328237cc" dependencies = [ - "bumpalo", "leb128", "memchr", "unicode-width", @@ -11018,9 +11870,9 @@ dependencies = [ [[package]] name = "wat" -version = "1.217.0" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c126271c3d92ca0f7c63e4e462e40c69cca52fd4245fcda730d1cf558fb55088" +checksum = "53253d920ab413fca1c7dc2161d601c79b4fdf631d0ba51dd4343bf9b556c3f6" dependencies = [ "wast", ] @@ -11035,6 +11887,40 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webc" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdea84cf234555864ca9b7a5084c1a99dbdf2d148035f62a09b19ce5606532c1" +dependencies = [ + "anyhow", + "base64 0.22.1", + "bytes", + "cfg-if", + "ciborium", + "document-features", + "flate2", + "ignore", + "indexmap 1.9.3", + "leb128", + "lexical-sort", + "libc", + "once_cell", + "path-clean", + "rand", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "shared-buffer", + "tar", + "tempfile", + "thiserror", + "toml", + "url", + "wasmer-config", +] + [[package]] name = "webpki-roots" version = "0.26.6" @@ -11045,16 +11931,10 @@ dependencies = [ ] [[package]] -name = "which" -version = "4.4.2" +name = "weezl" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "widestring" @@ -11151,7 +12031,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -11162,7 +12042,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -11397,9 +12277,18 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -11420,8 +12309,8 @@ version = "0.2.0" source = "git+https://github.com/philsippl/circom-witness-rs#fed7d591a4a6adfde371d3dac3fde23d755bcd39" dependencies = [ "ark-bn254", - "ark-ff 0.4.1", - "ark-serialize 0.4.1", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", "byteorder", "cxx", "cxx-build", @@ -11448,13 +12337,15 @@ dependencies = [ "alloy-signer", "alloy-signer-local", "bytemuck", + "bytes", "chrono", - "clap 4.5.17", + "clap 4.5.19", "color-eyre", "derive_more 1.0.0", "dotenvy", - "ethers-core", + "ethers-core 2.0.14 (git+https://github.com/gakonst/ethers-rs)", "futures", + "hex", "op-alloy-consensus", "op-alloy-network", "op-alloy-rpc-types", @@ -11497,6 +12388,9 @@ dependencies = [ "reth-transaction-pool", "reth-trie", "revm", + "revm-inspectors", + "revm-interpreter", + "revm-precompile", "revm-primitives", "semaphore", "serde", @@ -11539,6 +12433,23 @@ dependencies = [ "tap", ] +[[package]] +name = "xattr" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +dependencies = [ + "libc", + "linux-raw-sys", + "rustix", +] + +[[package]] +name = "xxhash-rust" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" + [[package]] name = "yansi" version = "1.0.1" @@ -11563,7 +12474,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] @@ -11583,7 +12494,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn 2.0.79", ] [[package]] diff --git a/world-chain-builder/Cargo.toml b/world-chain-builder/Cargo.toml index bb2a5194..27063f25 100644 --- a/world-chain-builder/Cargo.toml +++ b/world-chain-builder/Cargo.toml @@ -5,6 +5,9 @@ edition = "2021" default-run = "world-chain-builder" +[workspace] +members = ["crates/*"] + [dependencies] # reth reth-primitives = { git = "https://github.com/ewoolsey/reth", rev = "b2848f", features = [ @@ -67,8 +70,16 @@ alloy-rpc-types = "0.3" alloy-rlp = "0.3" alloy-eips = "0.3" -# other -revm = "14" +# revm +revm = "=14.0.2" +revm-interpreter = "=10.0.2" +revm-inspectors = "=0.7.4" +revm-precompile = "=11.0.2" +revm-primitives = { version = "=9.0.2", default-features = false, features = [ + "std", +] } + +# 3rd party tokio = { version = "1", features = ["full"] } futures = "0.3" chrono = "0.4" @@ -76,10 +87,7 @@ thiserror = "1" strum = "0.26" strum_macros = "0.26" bytemuck = "1" -revm-primitives = { version = "9.0.0", default-features = false, features = [ - "std", -] } -semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "f44b7934", features = [ +semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "d0d1f899add7116ccc1228f5e5e5ee2e2e233768", features = [ "depth_30", ] } clap = { version = "4", features = ["derive", "env"] } @@ -90,6 +98,8 @@ parking_lot = "0.12" derive_more = "1" dotenvy = "0.15.7" tikv-jemallocator = { version = "0.6.0", optional = true } +bytes = "1.7.2" +hex = "0.4.3" [dev-dependencies] tempfile = "3" @@ -114,7 +124,3 @@ jemalloc = ["tikv-jemallocator"] [[bin]] name = "world-chain-builder" path = "bin/world-chain-builder.rs" - -[[bin]] -name = "toolkit" -path = "bin/toolkit.rs" diff --git a/world-chain-builder/bin/toolkit.rs b/world-chain-builder/bin/toolkit.rs deleted file mode 100644 index 8dffbce4..00000000 --- a/world-chain-builder/bin/toolkit.rs +++ /dev/null @@ -1,28 +0,0 @@ -use clap::Parser; - -#[derive(Debug, Clone, Parser)] -struct Args { - #[clap(subcommand)] - cmd: Cmd, -} - -#[derive(Debug, Clone, Parser)] -enum Cmd { - Prove(ProveArgs), -} - -#[derive(Debug, Clone, Parser)] -struct ProveArgs { - #[clap(short, long)] - tx_index: usize, -} - -#[tokio::main] -async fn main() -> eyre::Result<()> { - dotenvy::dotenv().ok(); - - let args = Args::parse(); - println!("{:?}", args); - - Ok(()) -} diff --git a/world-chain-builder/crates/toolkit/Cargo.toml b/world-chain-builder/crates/toolkit/Cargo.toml new file mode 100644 index 00000000..b2ba7073 --- /dev/null +++ b/world-chain-builder/crates/toolkit/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "toolkit" +version = "0.1.0" +edition = "2021" + +[dependencies] +semaphore = { git = "https://github.com/worldcoin/semaphore-rs", rev = "d0d1f899add7116ccc1228f5e5e5ee2e2e233768", features = [ + "depth_30", +] } +world-chain-builder = { path = "../.." } + +# Alloy +alloy-consensus = "0.3" +alloy-network = "0.3" +alloy-primitives = "0.8" +alloy-rlp = "0.3" + +# 3rd party +bytes = "1.7.2" +clap = { version = "4", features = ["derive", "env"] } +eyre = { version = "0.6", package = "color-eyre" } +hex = "0.4.3" +serde = { version = "1", features = ["derive"] } +serde_json = "1.0" +tokio = { version = "1", features = ["full"] } +dotenvy = "0.15.7" +chrono = "0.4" diff --git a/world-chain-builder/crates/toolkit/src/cli.rs b/world-chain-builder/crates/toolkit/src/cli.rs new file mode 100644 index 00000000..e053449a --- /dev/null +++ b/world-chain-builder/crates/toolkit/src/cli.rs @@ -0,0 +1,55 @@ +use bytes::{Bytes, BytesMut}; +use chrono::NaiveDate; +use clap::Parser; +use identity_source::IdentitySource; +use inclusion_proof_source::InclusionProofSource; + +pub mod identity_source; +pub mod inclusion_proof_source; +mod utils; + +#[derive(Debug, Clone, Parser)] +pub struct Opt { + #[clap(subcommand)] + pub cmd: Cmd, +} + +#[derive(Debug, Clone, Parser)] +pub enum Cmd { + Prove(ProveArgs), + + Send(SendArgs), +} + +#[derive(Debug, Clone, Parser)] +pub struct ProveArgs { + /// Raw tx + /// + /// can be constructed with `cast mktx` + #[clap(short, long)] + #[clap(value_parser = utils::bytes_parse_hex)] + pub tx: Bytes, + + /// The PBH nonce for the priority tx + /// + /// should be in range 0-30 otherwise the tx will be discarded as invalid + #[clap(short = 'N', long)] + #[clap(alias = "nonce")] + pub pbh_nonce: u16, + + /// Overrides the current date for PBH proof generation + /// Format: "YYYY-MM-DD" + /// + /// Dates are always assumed to be in UTC + #[clap(short = 'D', long)] + pub custom_date: Option, + + #[command(flatten)] + pub identity_source: IdentitySource, + + #[command(flatten)] + pub inclusion_proof_source: InclusionProofSource, +} + +#[derive(Debug, Clone, Parser)] +pub struct SendArgs {} diff --git a/world-chain-builder/crates/toolkit/src/cli/identity_source.rs b/world-chain-builder/crates/toolkit/src/cli/identity_source.rs new file mode 100644 index 00000000..09c397eb --- /dev/null +++ b/world-chain-builder/crates/toolkit/src/cli/identity_source.rs @@ -0,0 +1,43 @@ +use std::path::PathBuf; + +use bytes::BytesMut; +use clap::Args; +use semaphore::identity::Identity; + +use super::utils::bytes_mut_parse_hex; + +#[derive(Debug, Clone, Args)] +pub struct IdentitySource { + /// Hex encoded identity secret + #[clap( + short = 'I', + long, + conflicts_with = "identity_file", + required_unless_present = "identity_file", + value_parser = bytes_mut_parse_hex + )] + pub identity: Option, + + /// Path to a file containing the identity secret + #[clap( + long, + conflicts_with = "identity", + required_unless_present = "identity" + )] + pub identity_file: Option, +} + +impl IdentitySource { + pub fn load(&self) -> Identity { + if let Some(mut identity) = self.identity.clone() { + return Identity::from_secret(identity.as_mut(), None); + } + + if let Some(identity_file) = &self.identity_file { + let mut identity = std::fs::read(identity_file).unwrap(); + return Identity::from_secret(identity.as_mut(), None); + } + + unreachable!() + } +} diff --git a/world-chain-builder/crates/toolkit/src/cli/inclusion_proof_source.rs b/world-chain-builder/crates/toolkit/src/cli/inclusion_proof_source.rs new file mode 100644 index 00000000..441306f2 --- /dev/null +++ b/world-chain-builder/crates/toolkit/src/cli/inclusion_proof_source.rs @@ -0,0 +1,44 @@ +use std::path::PathBuf; + +use clap::Args; +use semaphore::poseidon_tree::Proof; + +use super::utils::parse_from_json; + +#[derive(Debug, Clone, Args)] +pub struct InclusionProofSource { + /// Inclusion proof in JSON format + #[clap( + short = 'P', + long, + value_parser = parse_from_json::, + conflicts_with = "inclusion_proof_file", + required_unless_present = "inclusion_proof_file" + )] + pub inclusion_proof: Option, + + #[clap( + long, + conflicts_with = "inclusion_proof", + required_unless_present = "inclusion_proof" + )] + pub inclusion_proof_file: Option, + + // TODO: Add fetching from signup-sequencer/world-tree + // TODO: Add fetching from smart contract via RPC +} + +impl InclusionProofSource { + pub fn load(&self) -> Proof { + if let Some(inclusion_proof) = self.inclusion_proof.clone() { + return inclusion_proof; + } + + if let Some(inclusion_proof_file) = &self.inclusion_proof_file { + let inclusion_proof = std::fs::read(inclusion_proof_file).unwrap(); + return serde_json::from_slice(&inclusion_proof).unwrap(); + } + + unreachable!() + } +} diff --git a/world-chain-builder/crates/toolkit/src/cli/utils.rs b/world-chain-builder/crates/toolkit/src/cli/utils.rs new file mode 100644 index 00000000..ebbdd87a --- /dev/null +++ b/world-chain-builder/crates/toolkit/src/cli/utils.rs @@ -0,0 +1,21 @@ +use bytes::{Bytes, BytesMut}; +use serde::de::DeserializeOwned; + +pub fn bytes_mut_parse_hex(s: &str) -> eyre::Result { + Ok(BytesMut::from( + &hex::decode(s.trim_start_matches("0x"))?[..], + )) +} + +pub fn bytes_parse_hex(s: &str) -> eyre::Result { + Ok(Bytes::from( + hex::decode(s.trim_start_matches("0x"))?, + )) +} + +pub fn parse_from_json<'a, T>(s: &'a str) -> eyre::Result +where + T: DeserializeOwned, +{ + Ok(serde_json::from_str(s)?) +} diff --git a/world-chain-builder/crates/toolkit/src/main.rs b/world-chain-builder/crates/toolkit/src/main.rs new file mode 100644 index 00000000..e2293f9c --- /dev/null +++ b/world-chain-builder/crates/toolkit/src/main.rs @@ -0,0 +1,48 @@ +use alloy_consensus::TxEnvelope; +use alloy_rlp::Decodable; +use clap::Parser; +use cli::{Cmd, Opt}; +use semaphore::hash_to_field; +use world_chain_builder::date_marker::DateMarker; +use world_chain_builder::external_nullifier::ExternalNullifier; + +mod cli; + +#[tokio::main] +async fn main() -> eyre::Result<()> { + dotenvy::dotenv().ok(); + + let args = Opt::parse(); + println!("{:#?}", args); + + match args.cmd { + Cmd::Prove(prove_args) => { + let tx: TxEnvelope = TxEnvelope::decode(&mut prove_args.tx.as_ref())?; + + let tx_hash = tx.tx_hash(); + let signal_hash = hash_to_field(tx_hash.as_ref()); + + let identity = prove_args.identity_source.load(); + let merkle_proof = prove_args.inclusion_proof_source.load(); + + let date = prove_args + .custom_date + .unwrap_or_else(|| chrono::Utc::now().naive_utc().date()); + + let month = DateMarker::from(date); + + let external_nullifier = ExternalNullifier::new(month, prove_args.pbh_nonce); + let external_nullifier_hash = external_nullifier.hash(); + + let semaphore_proof = semaphore::protocol::generate_proof( + &identity, + &merkle_proof, + external_nullifier_hash, + signal_hash, + )?; + } + _ => unimplemented!(), + } + + Ok(()) +} diff --git a/world-chain-builder/src/date_marker.rs b/world-chain-builder/src/date_marker.rs new file mode 100644 index 00000000..7aebdce7 --- /dev/null +++ b/world-chain-builder/src/date_marker.rs @@ -0,0 +1,101 @@ +use std::str::FromStr; + +use chrono::{Datelike, NaiveDate}; +use thiserror::Error; + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct DateMarker { + pub year: i32, + pub month: u32, +} + +impl DateMarker { + pub fn new(year: i32, month: u32) -> Self { + Self { year, month } + } +} + +impl From for DateMarker +where + T: Datelike, +{ + fn from(value: T) -> Self { + Self { + year: value.year(), + month: value.month(), + } + } +} + +impl From for NaiveDate { + fn from(value: DateMarker) -> Self { + NaiveDate::from_ymd_opt(value.year, value.month, 1).unwrap() + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Error)] +pub enum DateMarkerParsingError { + #[error("invalid length - expected 6 characters got {actual}")] + InvaldLength { actual: usize }, + #[error("error parsing month - {0}")] + InvalidMonth(std::num::ParseIntError), + #[error("month out of range - expected 01-12 got {month}")] + MonthOutOfRange { month: u32 }, + #[error("error parsing year - {0}")] + InvalidYear(std::num::ParseIntError), +} + +impl FromStr for DateMarker { + type Err = DateMarkerParsingError; + + fn from_str(s: &str) -> Result { + if s.len() != 6 { + return Err(DateMarkerParsingError::InvaldLength { actual: s.len() }); + } + + let month = &s[..2]; + let year = &s[2..]; + + let month = month + .parse() + .map_err(DateMarkerParsingError::InvalidMonth)?; + let year = year.parse().map_err(DateMarkerParsingError::InvalidYear)?; + + if month < 1 || month > 12 { + return Err(DateMarkerParsingError::MonthOutOfRange { month }); + } + + Ok(DateMarker { year, month }) + } +} + +impl std::fmt::Display for DateMarker { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{:02}{:04}", self.month, self.year) + } +} + +#[cfg(test)] +mod tests { + use test_case::test_case; + + use super::*; + + #[test_case("012024")] + #[test_case("022024")] + #[test_case("022025")] + fn parse_month_marker_roundtrip(s: &str) { + let m: DateMarker = s.parse().unwrap(); + + assert_eq!(m.to_string(), s); + } + + #[test_case("132024" ; "invalid month")] + #[test_case("12024" ; "too short")] + #[test_case("003024" ; "zero month")] + #[test_case("" ; "empty")] + #[test_case("23012024" ; "too long")] + fn parse_month_marker_invalid(s: &str) { + s.parse::().unwrap_err(); + } +} diff --git a/world-chain-builder/src/external_nullifier.rs b/world-chain-builder/src/external_nullifier.rs new file mode 100644 index 00000000..ea956829 --- /dev/null +++ b/world-chain-builder/src/external_nullifier.rs @@ -0,0 +1,106 @@ +use std::str::FromStr; + +use semaphore::{hash_to_field, Field}; +use thiserror::Error; + +use crate::date_marker::{DateMarker, DateMarkerParsingError}; +use crate::pbh::tx::Prefix; + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct ExternalNullifier { + pub month: DateMarker, + pub nonce: u16, +} + +impl ExternalNullifier { + pub fn new(month: DateMarker, nonce: u16) -> Self { + Self { month, nonce } + } + + pub fn hash(&self) -> Field { + hash_to_field(self.to_string().as_bytes()) + } +} + +impl std::fmt::Display for ExternalNullifier { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}-{}-{}", Prefix::V1, self.month, self.nonce) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Error)] +pub enum ExternalNullifierParsingError { + #[error("invalid format - expected a string of format `vv-mmyyyy-xxx...` got {actual}")] + InvaldFormat { actual: String }, + + #[error("error parsing prefix - {0}")] + InvalidPrefix(strum::ParseError), + + #[error("error parsing month - {0}")] + InvalidMonth(DateMarkerParsingError), + + #[error("error parsing nonce - {0}")] + InvalidNonce(std::num::ParseIntError), + + #[error("leading zeroes in nonce `{0}`")] + LeadingZeroes(String), +} + +impl FromStr for ExternalNullifier { + type Err = ExternalNullifierParsingError; + + fn from_str(s: &str) -> Result { + let parts: Vec<&str> = s.split('-').collect(); + if parts.len() != 3 { + return Err(ExternalNullifierParsingError::InvaldFormat { + actual: s.to_string(), + }); + } + + // no need to check the exact value since there's only one variant + let Prefix::V1 = parts[0] + .parse() + .map_err(ExternalNullifierParsingError::InvalidPrefix)?; + + let month = parts[1] + .parse() + .map_err(ExternalNullifierParsingError::InvalidMonth)?; + + let nonce_str = parts[2]; + let nonce_str_trimmed = nonce_str.trim_start_matches('0'); + + if nonce_str != "0" && nonce_str != nonce_str_trimmed { + return Err(ExternalNullifierParsingError::LeadingZeroes( + nonce_str.to_string(), + )); + } + + let nonce = nonce_str + .parse() + .map_err(ExternalNullifierParsingError::InvalidNonce)?; + + Ok(ExternalNullifier { month, nonce }) + } +} + +#[cfg(test)] +mod tests { + use semaphore::hash_to_field; + use test_case::test_case; + + use super::*; + + #[test_case("v1-012025-11")] + #[test_case("v1-012025-19")] + fn parse_external_nulliifer_roundtrip(s: &str) { + let e: ExternalNullifier = s.parse().unwrap(); + + assert_eq!(e.to_string(), s); + } + + #[test_case("v2-012025-11")] + #[test_case("v1-012025-011")] + fn parse_external_nulliifer_invalid(s: &str) { + s.parse::().unwrap_err(); + } +} diff --git a/world-chain-builder/src/lib.rs b/world-chain-builder/src/lib.rs index 32200a77..e47976de 100644 --- a/world-chain-builder/src/lib.rs +++ b/world-chain-builder/src/lib.rs @@ -6,3 +6,5 @@ pub mod pbh; pub mod pool; pub mod primitives; pub mod rpc; +pub mod external_nullifier; +pub mod date_marker; diff --git a/world-chain-builder/src/pbh/semaphore.rs b/world-chain-builder/src/pbh/semaphore.rs index 51e9c6a1..b96bdfd3 100644 --- a/world-chain-builder/src/pbh/semaphore.rs +++ b/world-chain-builder/src/pbh/semaphore.rs @@ -1,13 +1,7 @@ -use std::str::FromStr; - use alloy_rlp::{Decodable, Encodable, RlpDecodable, RlpEncodable}; -use chrono::{Datelike, NaiveDate}; use semaphore::packed_proof::PackedProof; use semaphore::Field; use serde::{Deserialize, Serialize}; -use thiserror::Error; - -use super::tx::Prefix; pub const TREE_DEPTH: usize = 30; @@ -58,155 +52,9 @@ pub struct SemaphoreProof { pub proof: Proof, } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub struct ExternalNullifier { - pub month: DateMarker, - pub nonce: u16, -} - -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub struct DateMarker { - pub year: i32, - pub month: u32, -} - -impl ExternalNullifier { - pub fn new(month: DateMarker, nonce: u16) -> Self { - Self { month, nonce } - } -} - -impl std::fmt::Display for ExternalNullifier { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{}-{}-{}", Prefix::V1, self.month, self.nonce) - } -} - -#[derive(Debug, Clone, PartialEq, Eq, Error)] -pub enum ExternalNullifierParsingError { - #[error("invalid format - expected a string of format `vv-mmyyyy-xxx...` got {actual}")] - InvaldFormat { actual: String }, - - #[error("error parsing prefix - {0}")] - InvalidPrefix(strum::ParseError), - - #[error("error parsing month - {0}")] - InvalidMonth(MonthMarkerParsingError), - - #[error("error parsing nonce - {0}")] - InvalidNonce(std::num::ParseIntError), - - #[error("leading zeroes in nonce `{0}`")] - LeadingZeroes(String), -} - -impl FromStr for ExternalNullifier { - type Err = ExternalNullifierParsingError; - - fn from_str(s: &str) -> Result { - let parts: Vec<&str> = s.split('-').collect(); - if parts.len() != 3 { - return Err(ExternalNullifierParsingError::InvaldFormat { - actual: s.to_string(), - }); - } - - // no need to check the exact value since there's only one variant - let Prefix::V1 = parts[0] - .parse() - .map_err(ExternalNullifierParsingError::InvalidPrefix)?; - - let month = parts[1] - .parse() - .map_err(ExternalNullifierParsingError::InvalidMonth)?; - - let nonce_str = parts[2]; - let nonce_str_trimmed = nonce_str.trim_start_matches('0'); - - if nonce_str != "0" && nonce_str != nonce_str_trimmed { - return Err(ExternalNullifierParsingError::LeadingZeroes( - nonce_str.to_string(), - )); - } - - let nonce = nonce_str - .parse() - .map_err(ExternalNullifierParsingError::InvalidNonce)?; - - Ok(ExternalNullifier { month, nonce }) - } -} - -impl DateMarker { - pub fn new(year: i32, month: u32) -> Self { - Self { year, month } - } -} - -impl From for DateMarker -where - T: Datelike, -{ - fn from(value: T) -> Self { - Self { - year: value.year(), - month: value.month(), - } - } -} - -impl From for NaiveDate { - fn from(value: DateMarker) -> Self { - NaiveDate::from_ymd_opt(value.year, value.month, 1).unwrap() - } -} - -#[derive(Debug, Clone, PartialEq, Eq, Error)] -pub enum MonthMarkerParsingError { - #[error("invalid length - expected 6 characters got {actual}")] - InvaldLength { actual: usize }, - #[error("error parsing month - {0}")] - InvalidMonth(std::num::ParseIntError), - #[error("month out of range - expected 01-12 got {month}")] - MonthOutOfRange { month: u32 }, - #[error("error parsing year - {0}")] - InvalidYear(std::num::ParseIntError), -} - -impl FromStr for DateMarker { - type Err = MonthMarkerParsingError; - - fn from_str(s: &str) -> Result { - if s.len() != 6 { - return Err(MonthMarkerParsingError::InvaldLength { actual: s.len() }); - } - - let month = &s[..2]; - let year = &s[2..]; - - let month = month - .parse() - .map_err(MonthMarkerParsingError::InvalidMonth)?; - let year = year.parse().map_err(MonthMarkerParsingError::InvalidYear)?; - - if !(1..=12).contains(&month) { - return Err(MonthMarkerParsingError::MonthOutOfRange { month }); - } - - Ok(DateMarker { year, month }) - } -} - -impl std::fmt::Display for DateMarker { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{:02}{:04}", self.month, self.year) - } -} - #[cfg(test)] mod test { use ethers_core::types::U256; - use test_case::test_case; use super::*; @@ -233,36 +81,4 @@ mod test { let decoded = SemaphoreProof::decode(&mut buf).unwrap(); assert_eq!(semaphore_proof, decoded); } - - #[test_case("v1-012025-11")] - #[test_case("v1-012025-19")] - fn parse_external_nulliifer_roundtrip(s: &str) { - let e: ExternalNullifier = s.parse().unwrap(); - - assert_eq!(e.to_string(), s); - } - - #[test_case("v2-012025-11")] - #[test_case("v1-012025-011")] - fn parse_external_nulliifer_invalid(s: &str) { - s.parse::().unwrap_err(); - } - - #[test_case("012024")] - #[test_case("022024")] - #[test_case("022025")] - fn parse_month_marker_roundtrip(s: &str) { - let m: DateMarker = s.parse().unwrap(); - - assert_eq!(m.to_string(), s); - } - - #[test_case("132024" ; "invalid month")] - #[test_case("12024" ; "too short")] - #[test_case("003024" ; "zero month")] - #[test_case("" ; "empty")] - #[test_case("23012024" ; "too long")] - fn parse_month_marker_invalid(s: &str) { - s.parse::().unwrap_err(); - } } diff --git a/world-chain-builder/src/pool/error.rs b/world-chain-builder/src/pool/error.rs index e0e875e9..c9b8b2d9 100644 --- a/world-chain-builder/src/pool/error.rs +++ b/world-chain-builder/src/pool/error.rs @@ -4,7 +4,7 @@ use reth_transaction_pool::error::{InvalidPoolTransactionError, PoolTransactionE use reth_transaction_pool::{PoolTransaction, TransactionValidationOutcome}; use semaphore::Field; -use crate::pbh::semaphore::ExternalNullifierParsingError; +use crate::external_nullifier::ExternalNullifierParsingError; #[derive(Debug, thiserror::Error)] pub enum WorldChainTransactionPoolInvalid { diff --git a/world-chain-builder/src/pool/validator.rs b/world-chain-builder/src/pool/validator.rs index 063ac832..d1d9e260 100644 --- a/world-chain-builder/src/pool/validator.rs +++ b/world-chain-builder/src/pool/validator.rs @@ -18,8 +18,10 @@ use super::error::{TransactionValidationError, WorldChainTransactionPoolInvalid} use super::ordering::WorldChainOrdering; use super::root::WorldChainRootValidator; use super::tx::{WorldChainPoolTransaction, WorldChainPooledTransaction}; +use crate::date_marker::DateMarker; +use crate::external_nullifier::ExternalNullifier; use crate::pbh::db::{ExecutedPbhNullifierTable, ValidatedPbhTransactionTable}; -use crate::pbh::semaphore::{DateMarker, ExternalNullifier, SemaphoreProof, TREE_DEPTH}; +use crate::pbh::semaphore::{SemaphoreProof, TREE_DEPTH}; /// Type alias for World Chain transaction pool pub type WorldChainTransactionPool = Pool< @@ -291,8 +293,11 @@ pub mod tests { use tempfile::tempdir; use test_case::test_case; + use super::*; + use crate::date_marker::DateMarker; + use crate::external_nullifier::ExternalNullifier; use crate::pbh::db::load_world_chain_db; - use crate::pbh::semaphore::{DateMarker, ExternalNullifier, Proof, SemaphoreProof, TREE_DEPTH}; + use crate::pbh::semaphore::{Proof, SemaphoreProof, TREE_DEPTH}; use crate::pool::ordering::WorldChainOrdering; use crate::pool::root::{WorldChainRootValidator, LATEST_ROOT_SLOT, OP_WORLD_ID}; use crate::pool::tx::WorldChainPooledTransaction; diff --git a/world-chain-builder/x b/world-chain-builder/x new file mode 100755 index 00000000..52fb6922 --- /dev/null +++ b/world-chain-builder/x @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ -n "$RELEASE" ]; then + cargo run --release --package toolkit "$@" +else + cargo run --package toolkit "$@" +fi