diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index 76d31c4..0000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,5 +0,0 @@ -[build] -rustflags = ["-Dclippy::all", "-Dwarnings"] - -[net] -git-fetch-with-cli = true diff --git a/.gitmodules b/.gitmodules index f9fa8f6..0435484 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,15 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std -[submodule "lib/murky"] - path = lib/murky - url = https://github.com/dmfxyz/murky [submodule "lib/openzeppelin-contracts"] path = lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts -[submodule "lib/solidity-bytes-utils"] - path = lib/solidity-bytes-utils - url = https://github.com/GNSPS/solidity-bytes-utils [submodule "lib/risc0-ethereum"] path = lib/risc0-ethereum url = https://github.com/risc0/risc0-ethereum +[submodule "lib/murky"] + path = lib/murky + url = https://github.com/dmfxyz/murky +[submodule "lib/solidity-bytes-utils"] + path = lib/solidity-bytes-utils + url = https://github.com/GNSPS/solidity-bytes-utils \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 287908a..42f3770 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,30 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - [[package]] name = "addr2line" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "cpp_demangle", - "fallible-iterator", "gimli", - "memmap2", - "object", - "rustc-demangle", - "smallvec", ] [[package]] @@ -76,66 +59,554 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "056f2c01b2aed86e15b43c47d109bfc8b82553dc34e66452875e51247ec31ab2" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-rpc-client", + "alloy-serde", + "alloy-transport", + "alloy-transport-http", +] + +[[package]] +name = "alloy-chains" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18c5c520273946ecf715c0010b4e3503d7eba9893cd9ce6b7fff5654c4a3c470" +dependencies = [ + "alloy-primitives 0.8.5", + "num_enum", + "strum", +] + +[[package]] +name = "alloy-consensus" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "705687d5bfd019fee57cf9e206b27b30a9a9617535d5590a02b171e813208f8e" +dependencies = [ + "alloy-eips", + "alloy-primitives 0.8.5", + "alloy-rlp", + "alloy-serde", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917f7d12cf3971dc8c11c9972f732b35ccb9aaaf5f28f2f87e9e6523bee3a8ad" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives 0.8.5", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-sol-types 0.8.5", + "alloy-transport", + "futures", + "futures-util", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce854562e7cafd5049189d0268d6e5cba05fe6c9cb7c6f8126a79b94800629c" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives 0.8.5", + "alloy-rlp", + "alloy-sol-types 0.8.5", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b499852e1d0e9b8c6db0f24c48998e647c0d5762a01090f955106a7700e4611" +dependencies = [ + "alloy-json-abi", + "alloy-primitives 0.8.5", + "alloy-sol-type-parser", + "alloy-sol-types 0.8.5", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow 0.6.1", +] + +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives 0.8.5", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +dependencies = [ + "alloy-primitives 0.8.5", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eips" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ffb906284a1e1f63c4607da2068c8197458a352d0b3e9796e67353d72a9be85" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives 0.8.5", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2", +] + +[[package]] +name = "alloy-genesis" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8429cf4554eed9b40feec7f4451113e76596086447550275e3def933faf47ce3" +dependencies = [ + "alloy-primitives 0.8.5", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-json-abi" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a438d4486b5d525df3b3004188f9d5cd1d65cd30ecc41e5a3ccef6f6342e8af9" +dependencies = [ + "alloy-primitives 0.8.5", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fa8a1a3c4cbd221f2b8e3693aeb328fca79a757fe556ed08e47bbbc2a70db7" +dependencies = [ + "alloy-primitives 0.8.5", + "alloy-sol-types 0.8.5", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fa23a6a9d612b52e402c995f2d582c25165ec03ac6edf64c861a76bc5b87cd" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives 0.8.5", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types 0.8.5", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "801492711d4392b2ccf5fc0bc69e299fa1aab15167d74dcaa9aab96a54f684bd" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 0.8.5", + "alloy-serde", + "serde", +] + [[package]] name = "alloy-primitives" -version = "0.6.3" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.17", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef197eb250c64962003cb08b90b17f0882c192f4a6f2f544809d424fd7cb0e7d" +checksum = "260d3ff3bff0bb84599f032a2f2c6828180b0ea0cd41fdaf44f39cef3ba41861" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", - "derive_more", + "derive_more 1.0.0", + "hashbrown 0.14.3", "hex-literal", + "indexmap", "itoa", "k256", "keccak-asm", + "paste", "proptest", "rand", "ruint", + "rustc-hash", "serde", + "sha3", "tiny-keccak", ] +[[package]] +name = "alloy-provider" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcfaa4ffec0af04e3555686b8aacbcdf7d13638133a0672749209069750f78a6" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives 0.8.5", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest 0.12.9", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "url", +] + [[package]] name = "alloy-rlp" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d58d9f5da7b40e9bfff0b7e7816700be4019db97d4b6359fe7f94a9e22e42ac" dependencies = [ + "alloy-rlp-derive", "arrayvec", "bytes", ] [[package]] -name = "alloy-sol-macro" -version = "0.6.3" +name = "alloy-rlp-derive" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "370143ed581aace6e663342d21d209c6b2e34ee6142f7d6675adb518deeaf0dc" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives 0.8.5", + "alloy-transport", + "alloy-transport-http", + "futures", + "pin-project", + "reqwest 0.12.9", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413f4aa3ccf2c3e4234a047c5fa4727916d7daf25a89f9b765df0ba09784fd87" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 0.8.5", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types 0.8.5", + "derive_more 1.0.0", + "itertools 0.13.0", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-serde" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dff0ab1cdd43ca001e324dc27ee0e8606bd2161d6623c63e0e0b8c4dfc13600" +dependencies = [ + "alloy-primitives 0.8.5", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd4e0ad79c81a27ca659be5d176ca12399141659fef2bcbfdc848da478f4504" +dependencies = [ + "alloy-primitives 0.8.5", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander 0.7.7", + "alloy-sol-macro-input 0.7.7", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68e7f6e8fe5b443f82b3f1e15abfa191128f71569148428e49449d01f6f49e8b" +dependencies = [ + "alloy-sol-macro-expander 0.8.5", + "alloy-sol-macro-input 0.8.5", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-sol-macro-input 0.7.7", + "const-hex", + "heck 0.5.0", + "indexmap", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.49", + "syn-solidity 0.7.7", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b96ce28d2fde09abb6135f410c41fad670a3a770b6776869bd852f1df102e6f" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input 0.8.5", + "const-hex", + "heck 0.5.0", + "indexmap", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.49", + "syn-solidity 0.8.11", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.49", + "syn-solidity 0.7.7", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "906746396a8296537745711630d9185746c0b50c033d5e9d18b0a6eba3d53f90" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.49", + "syn-solidity 0.8.11", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12c71028bfbfec210e24106a542aad3def7caf1a70e2c05710e92a98481980d3" +dependencies = [ + "serde", + "winnow 0.6.1", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-primitives 0.7.7", + "alloy-sol-macro 0.7.7", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-sol-types" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86a533ce22525969661b25dfe296c112d35eb6861f188fd284f8bd4bb3842ae" +dependencies = [ + "alloy-json-abi", + "alloy-primitives 0.8.5", + "alloy-sol-macro 0.8.5", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e92100dee7fd1e44abbe0ef6607f18758cf0ad4e483f4c65ff5c8d85428a6d" +checksum = "2ac3e97dad3d31770db0fc89bd6a63b789fbae78963086733f960cf32c483904" dependencies = [ - "const-hex", - "dunce", - "heck", - "indexmap", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.49", - "syn-solidity", - "tiny-keccak", + "alloy-json-rpc", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", ] [[package]] -name = "alloy-sol-types" -version = "0.6.3" +name = "alloy-transport-http" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7c6a8c492b1d6a4f92a8fc6a13cf39473978dd7d459d7221969ce5a73d97cd" +checksum = "b367dcccada5b28987c2296717ee04b9a5637aacd78eacb1726ef211678b5212" dependencies = [ - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.9", + "serde_json", + "tower", + "tracing", + "url", ] [[package]] @@ -196,8 +667,8 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" name = "apps" version = "0.1.0" dependencies = [ - "alloy-primitives", - "alloy-sol-types", + "alloy-primitives 0.7.7", + "alloy-sol-types 0.7.7", "anyhow", "bincode", "bonsai-sdk 0.6.1", @@ -209,9 +680,11 @@ dependencies = [ "log", "methods", "primitive-io", + "risc0-circuit-recursion", "risc0-ethereum-contracts", "risc0-groth16", "risc0-zkvm", + "risc0-zkvm-platform", "serde", "serde_bytes", "tokio", @@ -274,7 +747,7 @@ dependencies = [ "ark-serialize 0.3.0", "ark-std 0.3.0", "derivative", - "num-bigint 0.4.4", + "num-bigint", "num-traits", "paste", "rustc_version 0.3.3", @@ -294,7 +767,7 @@ dependencies = [ "derivative", "digest 0.10.7", "itertools 0.10.5", - "num-bigint 0.4.4", + "num-bigint", "num-traits", "paste", "rustc_version 0.4.0", @@ -327,7 +800,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "num-bigint 0.4.4", + "num-bigint", "num-traits", "quote", "syn 1.0.109", @@ -339,7 +812,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "num-bigint 0.4.4", + "num-bigint", "num-traits", "proc-macro2", "quote", @@ -405,7 +878,7 @@ dependencies = [ "ark-serialize-derive", "ark-std 0.4.0", "digest 0.10.7", - "num-bigint 0.4.4", + "num-bigint", ] [[package]] @@ -466,6 +939,34 @@ dependencies = [ "term", ] +[[package]] +name = "asn1_der" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + [[package]] name = "async-trait" version = "0.1.77" @@ -490,9 +991,9 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", @@ -505,15 +1006,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "autotools" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" -dependencies = [ - "cc", -] - [[package]] name = "backtrace" version = "0.3.69" @@ -547,6 +1039,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "base64ct" version = "1.6.0" @@ -616,6 +1114,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + [[package]] name = "block-buffer" version = "0.10.4" @@ -625,29 +1129,66 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "bonsai-sdk" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f0a6b186dce8b2f945bd3ecc5d35a36280400200ed57878c7c3f2aeb01632e" dependencies = [ - "reqwest", + "reqwest 0.11.24", "serde", "thiserror", ] [[package]] name = "bonsai-sdk" -version = "0.7.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e0f26687ed447c77b1a40a3665bf88e8327b6de65a74f521544bd225982f589" +checksum = "94032d3eece78099780ba07605d8ba6943e47ee152f76d73f1682e2f40cf889c" dependencies = [ - "reqwest", - "risc0-groth16", + "duplicate", + "maybe-async", + "reqwest 0.12.9", "serde", "thiserror", ] +[[package]] +name = "borsh" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +dependencies = [ + "once_cell", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.49", + "syn_derive", +] + [[package]] name = "bs58" version = "0.5.0" @@ -660,9 +1201,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -698,9 +1239,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -727,35 +1268,36 @@ dependencies = [ ] [[package]] -name = "camino" -version = "1.1.6" +name = "c-kzg" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", "serde", ] [[package]] -name = "cargo-platform" -version = "0.1.5" +name = "camino" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] -name = "cargo_metadata" -version = "0.17.0" +name = "cargo-platform" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" +checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.21", "serde", - "serde_json", - "thiserror", ] [[package]] @@ -774,12 +1316,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "baee610e9452a8f6f0a1b6194ec09ff9e2d85dea54432acdae41aa0761c95d70" dependencies = [ "jobserver", "libc", + "shlex", ] [[package]] @@ -788,6 +1331,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.34" @@ -795,6 +1344,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" dependencies = [ "num-traits", + "serde", ] [[package]] @@ -835,7 +1385,7 @@ version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 2.0.49", @@ -953,12 +1503,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] -name = "cpp_demangle" -version = "0.4.3" +name = "core-graphics-types" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ - "cfg-if", + "bitflags 1.3.2", + "core-foundation", + "libc", ] [[package]] @@ -1041,6 +1593,20 @@ dependencies = [ "cipher", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.3", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "data-encoding" version = "2.5.0" @@ -1054,9 +1620,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", + "der_derive", + "flagset", "zeroize", ] +[[package]] +name = "der_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + [[package]] name = "deranged" version = "0.3.11" @@ -1090,6 +1669,27 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", + "unicode-xid", +] + [[package]] name = "diff" version = "0.1.13" @@ -1117,15 +1717,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "directories" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs" version = "5.0.1" @@ -1180,26 +1771,22 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" -[[package]] -name = "downloader" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05213e96f184578b5f70105d4d0a644a168e99e12d7bea0b200c15d67b5c182" -dependencies = [ - "digest 0.10.7", - "futures", - "rand", - "reqwest", - "thiserror", - "tokio", -] - [[package]] name = "dunce" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +[[package]] +name = "duplicate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de78e66ac9061e030587b2a2e75cc88f22304913c907b11307bca737141230cb" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", +] + [[package]] name = "ecdsa" version = "0.16.9" @@ -1265,9 +1852,9 @@ dependencies = [ [[package]] name = "enr" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", "bytes", @@ -1300,15 +1887,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" -[[package]] -name = "erased-serde" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3" -dependencies = [ - "serde", -] - [[package]] name = "errno" version = "0.3.8" @@ -1391,9 +1969,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -1407,9 +1985,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ "ethers-core", "once_cell", @@ -1419,9 +1997,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -1438,9 +2016,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", @@ -1452,7 +2030,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "reqwest", + "reqwest 0.11.24", "serde", "serde_json", "syn 2.0.49", @@ -1462,9 +2040,9 @@ dependencies = [ [[package]] name = "ethers-contract-derive" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", @@ -1478,13 +2056,13 @@ dependencies = [ [[package]] name = "ethers-core" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", - "cargo_metadata 0.18.1", + "cargo_metadata", "chrono", "const-hex", "elliptic-curve", @@ -1508,13 +2086,13 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", "ethers-core", - "reqwest", + "reqwest 0.11.24", "semver 1.0.21", "serde", "serde_json", @@ -1524,9 +2102,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", @@ -1539,7 +2117,7 @@ dependencies = [ "futures-locks", "futures-util", "instant", - "reqwest", + "reqwest 0.11.24", "serde", "serde_json", "thiserror", @@ -1551,9 +2129,9 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ "async-trait", "auto_impl", @@ -1562,17 +2140,16 @@ dependencies = [ "const-hex", "enr", "ethers-core", - "futures-channel", "futures-core", "futures-timer", "futures-util", "hashers", - "http", + "http 0.2.11", "instant", "jsonwebtoken", "once_cell", "pin-project", - "reqwest", + "reqwest 0.11.24", "serde", "serde_json", "thiserror", @@ -1589,9 +2166,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -1608,9 +2185,9 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", @@ -1648,17 +2225,11 @@ dependencies = [ "once_cell", ] -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fastrlp" @@ -1677,29 +2248,10 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "bitvec", - "byteorder", - "ff_derive", "rand_core", "subtle", ] -[[package]] -name = "ff_derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" -dependencies = [ - "addchain", - "cfg-if", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "fixed-hash" version = "0.8.0" @@ -1713,26 +2265,80 @@ dependencies = [ ] [[package]] -name = "fixedbitset" -version = "0.4.2" +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flagset" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] [[package]] -name = "flate2" -version = "1.0.28" +name = "foreign-types-macros" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ - "crc32fast", - "miniz_oxide", + "proc-macro2", + "quote", + "syn 2.0.49", ] [[package]] -name = "fnv" -version = "1.0.7" +name = "foreign-types-shared" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" @@ -1868,6 +2474,12 @@ dependencies = [ "slab", ] +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + [[package]] name = "fxhash" version = "0.2.1" @@ -1904,10 +2516,6 @@ name = "gimli" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -dependencies = [ - "fallible-iterator", - "stable_deref_trait", -] [[package]] name = "glob" @@ -1938,6 +2546,36 @@ dependencies = [ "subtle", ] +[[package]] +name = "guests" +version = "0.1.0" +dependencies = [ + "alloy-primitives 0.7.7", + "alloy-sol-types 0.7.7", + "anyhow", + "asn1_der", + "base64 0.22.1", + "bincode", + "byteorder", + "chrono", + "const-oid", + "der", + "hex", + "log", + "parity-scale-codec", + "pem 3.0.4", + "pink-json", + "primitive-io", + "ring 0.17.8", + "risc0-zkvm", + "rustls-webpki 0.102.6", + "scale-info", + "serde", + "serde_bytes", + "thiserror", + "x509-cert", +] + [[package]] name = "h2" version = "0.3.24" @@ -1949,7 +2587,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.11", "indexmap", "slab", "tokio", @@ -1971,6 +2609,21 @@ name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "hashers" @@ -1987,6 +2640,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" version = "0.3.6" @@ -2037,6 +2696,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -2044,7 +2714,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.11", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -2060,12 +2753,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "human-repr" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58b778a5761513caf593693f8951c97a5b610841e754788400f32102eefdff1" - [[package]] name = "humantime" version = "2.1.0" @@ -2083,8 +2770,8 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", - "http-body", + "http 0.2.11", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -2096,6 +2783,25 @@ dependencies = [ "want", ] +[[package]] +name = "hyper" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + [[package]] name = "hyper-rustls" version = "0.24.2" @@ -2103,11 +2809,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", - "hyper", - "rustls", + "http 0.2.11", + "hyper 0.14.28", + "rustls 0.21.10", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.5.0", + "hyper-util", + "rustls 0.23.12", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", + "webpki-roots 0.26.6", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.5.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.0", + "pin-project-lite", + "socket2", "tokio", - "tokio-rustls", + "tower-service", + "tracing", ] [[package]] @@ -2166,12 +2925,13 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.2.3" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.15.1", + "serde", ] [[package]] @@ -2192,12 +2952,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "inventory" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767" - [[package]] name = "ipnet" version = "2.9.0" @@ -2233,6 +2987,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.10" @@ -2241,9 +3004,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -2264,7 +3027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ "base64 0.21.7", - "pem", + "pem 1.1.1", "ring 0.16.20", "serde", "serde_json", @@ -2334,9 +3097,9 @@ checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" [[package]] name = "lazy-regex" -version = "3.1.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d12be4595afdf58bd19e4a9f4e24187da2a66700786ff660a418e9059937a4c" +checksum = "8d8e41c97e6bc7ecb552016274b99fbb5d035e8de288c582d9b933af6677bfda" dependencies = [ "lazy-regex-proc_macros", "once_cell", @@ -2345,9 +3108,9 @@ dependencies = [ [[package]] name = "lazy-regex-proc_macros" -version = "3.1.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bcd58e6c97a7fcbaffcdc95728b393b8d98933bfadad49ed4097845b57ef0b" +checksum = "76e1d8b05d672c53cb9c7b920bbba8783845ae4f0b076e02a3db1d02c81b4163" dependencies = [ "proc-macro2", "quote", @@ -2363,9 +3126,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libm" @@ -2386,9 +3149,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" @@ -2402,18 +3165,37 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] -name = "matrixmultiply" -version = "0.3.8" +name = "lru" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "autocfg", - "rawpointer", + "hashbrown 0.15.1", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "maybe-async" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", ] [[package]] @@ -2428,31 +3210,37 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "memmap2" -version = "0.5.10" +name = "metal" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "libc", + "bitflags 2.4.2", + "block", + "core-graphics-types", + "foreign-types 0.5.0", + "log", + "objc", + "paste", ] [[package]] name = "methods" version = "0.1.0" dependencies = [ - "alloy-primitives", - "alloy-sol-types", + "alloy-primitives 0.7.7", + "alloy-sol-types 0.7.7", "bincode", "hex", "primitive-io", "risc0-build", "risc0-build-ethereum", - "risc0-zkp 0.21.0", + "risc0-zkp", "risc0-zkvm", ] @@ -2483,23 +3271,20 @@ dependencies = [ ] [[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "ndarray" -version = "0.15.6" +name = "native-tls" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "matrixmultiply", - "num-complex", - "num-integer", - "num-traits", - "rawpointer", - "rayon", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", ] [[package]] @@ -2508,17 +3293,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.4" @@ -2530,32 +3304,12 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" -dependencies = [ - "num-traits", -] - [[package]] name = "num-conv" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.49", -] - [[package]] name = "num-integer" version = "0.1.46" @@ -2606,15 +3360,22 @@ dependencies = [ "syn 2.0.49", ] +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + [[package]] name = "object" version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ - "flate2", "memchr", - "ruzstd", ] [[package]] @@ -2637,15 +3398,59 @@ dependencies = [ ] [[package]] -name = "open-fastrlp-derive" -version = "0.1.1" +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +dependencies = [ + "bitflags 2.4.2", + "cfg-if", + "foreign-types 0.3.2", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] @@ -2757,6 +3562,16 @@ dependencies = [ "base64 0.13.1", ] +[[package]] +name = "pem" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +dependencies = [ + "base64 0.22.1", + "serde", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -2877,6 +3692,16 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pink-json" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c146010528d0b4f6a3d3255ef2a179e8ef25a1114dfb75542becf89def7c5232" +dependencies = [ + "ryu", + "serde", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -2994,6 +3819,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.49", +] + [[package]] name = "proc-macro2" version = "1.0.78" @@ -3025,72 +3872,81 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.3" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ "bytes", "prost-derive", ] -[[package]] -name = "prost-build" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" -dependencies = [ - "bytes", - "heck", - "itertools 0.11.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 2.0.49", - "tempfile", - "which", -] - [[package]] name = "prost-derive" -version = "0.12.3" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.13.0", "proc-macro2", "quote", "syn 2.0.49", ] [[package]] -name = "prost-types" -version = "0.12.3" +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quinn" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ - "prost", + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.23.12", + "socket2", + "thiserror", + "tokio", + "tracing", ] [[package]] -name = "protobuf-src" -version = "1.1.0+21.5" +name = "quinn-proto" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ - "autotools", + "bytes", + "rand", + "ring 0.17.8", + "rustc-hash", + "rustls 0.23.12", + "slab", + "thiserror", + "tinyvec", + "tracing", ] [[package]] -name = "quick-error" -version = "1.2.3" +name = "quinn-udp" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] [[package]] name = "quote" @@ -3116,6 +3972,7 @@ dependencies = [ "libc", "rand_chacha", "rand_core", + "serde", ] [[package]] @@ -3146,17 +4003,11 @@ dependencies = [ "rand_core", ] -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - [[package]] name = "rayon" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -3239,10 +4090,10 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", + "http 0.2.11", + "http-body 0.4.6", + "hyper 0.14.28", + "hyper-rustls 0.24.2", "ipnet", "js-sys", "log", @@ -3250,24 +4101,72 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", - "rustls-pemfile", + "rustls 0.21.10", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", + "webpki-roots 0.25.4", "winreg", ] +[[package]] +name = "reqwest" +version = "0.12.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.0", + "hyper-rustls 0.27.3", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.12", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.26.0", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots 0.26.6", + "windows-registry", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -3296,8 +4195,7 @@ dependencies = [ [[package]] name = "ring" version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +source = "git+https://github.com/tolak/ring.git?branch=patch-for-risc0#0e62564686879e57c2395b3216b46b609a1e0372" dependencies = [ "cc", "cfg-if", @@ -3319,43 +4217,33 @@ dependencies = [ [[package]] name = "risc0-binfmt" -version = "0.21.0-alpha.1" -source = "git+https://github.com/risc0/risc0?rev=7f731662#7f731662eaeb2d91b332cf85d4cbd61c87fc5c67" -dependencies = [ - "anyhow", - "elf", - "risc0-zkp 0.21.0-alpha.1", - "risc0-zkvm-platform 0.21.0-alpha.1", - "serde", - "tracing", -] - -[[package]] -name = "risc0-binfmt" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae2939426c60756f910352184716a3538748208c9e11ade4a507db3b2757157" +checksum = "543230f7117ce0e6b92b4797fbb3da722575973258cc38a48e28af8d3cf3a26d" dependencies = [ "anyhow", + "borsh", "elf", - "risc0-zkp 0.21.0", - "risc0-zkvm-platform 0.21.0", + "risc0-zkp", + "risc0-zkvm-platform", "serde", "tracing", ] [[package]] name = "risc0-build" -version = "0.21.0-alpha.1" -source = "git+https://github.com/risc0/risc0?rev=7f731662#7f731662eaeb2d91b332cf85d4cbd61c87fc5c67" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c328bea983ffed4cf3721c92b06fa5076cc38c9e326e1488a9ae792e67a054c7" dependencies = [ "anyhow", - "cargo-platform", - "cargo_metadata 0.17.0", + "cargo_metadata", + "dirs", "docker-generate", - "risc0-binfmt 0.21.0-alpha.1", - "risc0-zkp 0.21.0-alpha.1", - "risc0-zkvm-platform 0.21.0-alpha.1", + "hex", + "risc0-binfmt", + "risc0-zkp", + "risc0-zkvm-platform", "serde", "serde_json", "tempfile", @@ -3363,110 +4251,51 @@ dependencies = [ [[package]] name = "risc0-build-ethereum" -version = "0.7.0" -source = "git+https://github.com/risc0/risc0-ethereum?branch=release-0.7#4d94e6e0f3f5e6b159777f3e99dcde5c55338c4f" +version = "1.1.4" +source = "git+https://github.com/risc0/risc0-ethereum?tag=v1.1.4#4fa7de055d461b7fa948eb56107b7a172459e8fc" dependencies = [ "anyhow", "hex", "risc0-build", - "risc0-zkp 0.20.1", -] - -[[package]] -name = "risc0-build-kernel" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc02fece98f870221c25c22241e5f226fb3a9230df9cdeab170907440a97f41b" -dependencies = [ - "cc", - "directories", - "hex", - "sha2", - "tempfile", + "risc0-zkp", ] [[package]] name = "risc0-circuit-recursion" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a43cade35f73ad81ba974fe1d5e1513331f87052af8377b26b00a838f39c6920" +checksum = "436c762db677faf2cd616c55a69012d6b4f46c426b7d553c1b3d717e0c7e9438" dependencies = [ "anyhow", "bytemuck", - "downloader", "hex", - "rand", - "rayon", - "risc0-circuit-recursion-sys", - "risc0-core 0.21.0", - "risc0-zkp 0.21.0", - "sha2", + "metal", + "risc0-core", + "risc0-zkp", "tracing", - "zip", -] - -[[package]] -name = "risc0-circuit-recursion-sys" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad2b82cbb0e0cc22182f00287f513daea3ea8a5cc0b709d8afdd9d9180fb89a" -dependencies = [ - "glob", - "risc0-build-kernel", - "risc0-core 0.21.0", ] [[package]] name = "risc0-circuit-rv32im" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31440989146b342a7d37c15079c9568c69b7f988f3b789f422c7d4ed76526ddb" +checksum = "21f81638d4349eb5a816f3fd6ea12b314007572fc63d45cdb83891bed64e2a2a" dependencies = [ "anyhow", - "rand", - "rayon", - "risc0-circuit-rv32im-sys", - "risc0-core 0.21.0", - "risc0-zkp 0.21.0", - "risc0-zkvm-platform 0.21.0", + "metal", + "risc0-binfmt", + "risc0-core", + "risc0-zkp", + "risc0-zkvm-platform", + "serde", "tracing", ] -[[package]] -name = "risc0-circuit-rv32im-sys" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d60a79888ec9416dbd3c88bac9b630b05e513c466b7acd64b7641eed48749" -dependencies = [ - "glob", - "risc0-build-kernel", - "risc0-core 0.21.0", -] - -[[package]] -name = "risc0-core" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be79c89bcd18886b376073e3da22f8b7963247a42dce7b49cf3d09853f51641e" -dependencies = [ - "bytemuck", - "rand_core", -] - -[[package]] -name = "risc0-core" -version = "0.21.0-alpha.1" -source = "git+https://github.com/risc0/risc0?rev=7f731662#7f731662eaeb2d91b332cf85d4cbd61c87fc5c67" -dependencies = [ - "bytemuck", - "rand_core", -] - [[package]] name = "risc0-core" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0cbd09d03c23b572b66cd96a56143adb22bf895aca89c1a153ccebedaa0b4" +checksum = "1714b8968a5e4583a15018dc2ae95878c76f4cdbc643268a34670fde5b08252a" dependencies = [ "bytemuck", "rand_core", @@ -3474,109 +4303,53 @@ dependencies = [ [[package]] name = "risc0-ethereum-contracts" -version = "0.7.0" -source = "git+https://github.com/risc0/risc0-ethereum?branch=release-0.7#4d94e6e0f3f5e6b159777f3e99dcde5c55338c4f" +version = "1.1.4" +source = "git+https://github.com/risc0/risc0-ethereum?tag=v1.1.4#4fa7de055d461b7fa948eb56107b7a172459e8fc" dependencies = [ - "alloy-primitives", - "alloy-sol-types", + "alloy", "anyhow", - "bonsai-sdk 0.6.1", - "ethers", + "risc0-zkvm", ] [[package]] name = "risc0-groth16" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da1e9b8dae3f9c3862b6278b2812989a2f5a537975e5bd6a687f07cf1df68a36" +checksum = "e5f11beecdcabeac264fb868e0b5db22c7e2db5fa2ce68fd482d8ab9ffb88e5d" dependencies = [ "anyhow", "ark-bn254", + "ark-ec", "ark-groth16", "ark-serialize 0.4.2", "bytemuck", "hex", - "num-bigint 0.4.4", - "num-derive", + "num-bigint", "num-traits", - "risc0-core 0.21.0", - "risc0-zkp 0.21.0", - "serde", - "serde_json", - "tempfile", - "tracing", -] - -[[package]] -name = "risc0-sys" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61168816f4921e3cf1c9ff98792a7aa58d3e6c2dc5072bd7666690310e99fea1" -dependencies = [ - "cc", - "risc0-build-kernel", -] - -[[package]] -name = "risc0-zkp" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e20a57e04840a5afadebb5d232546245f4fd8bd0e774bd69bf4bf25f8ab90c04" -dependencies = [ - "anyhow", - "blake2", - "bytemuck", - "digest 0.10.7", - "hex", - "paste", - "rand_core", - "risc0-core 0.20.1", - "risc0-zkvm-platform 0.20.1", - "serde", - "sha2", - "tracing", -] - -[[package]] -name = "risc0-zkp" -version = "0.21.0-alpha.1" -source = "git+https://github.com/risc0/risc0?rev=7f731662#7f731662eaeb2d91b332cf85d4cbd61c87fc5c67" -dependencies = [ - "anyhow", - "blake2", - "bytemuck", - "digest 0.10.7", - "hex", - "paste", - "rand_core", - "risc0-core 0.21.0-alpha.1", - "risc0-zkvm-platform 0.21.0-alpha.1", + "risc0-binfmt", + "risc0-zkp", "serde", - "sha2", - "tracing", ] [[package]] name = "risc0-zkp" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b96b035f744ecaaa7e9809c699bc85cf669cbab6f297f141d918e9b4c8098b79" +checksum = "285aa3993827b4a646d70e68240e138f71574680a02d2e97ad30b1db80efda80" dependencies = [ "anyhow", "blake2", + "borsh", "bytemuck", + "cfg-if", "digest 0.10.7", - "ff", "hex", - "lazy_static", - "ndarray", + "hex-literal", + "metal", "paste", - "rand", "rand_core", - "rayon", - "risc0-core 0.21.0", - "risc0-sys", - "risc0-zkvm-platform 0.21.0", + "risc0-core", + "risc0-zkvm-platform", "serde", "sha2", "tracing", @@ -3584,66 +4357,47 @@ dependencies = [ [[package]] name = "risc0-zkvm" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a1275834c86176efc122a172c2b5f271a8a5d792de7efbc47dfbecaaaff9432" +checksum = "614fad8046130321e3be9ca3a36d9edad6ff4c538549ae191ec4d82576bb3893" dependencies = [ - "addr2line", "anyhow", "bincode", - "bonsai-sdk 0.7.0", + "bonsai-sdk 1.1.2", + "borsh", "bytemuck", "bytes", - "cfg-if", - "crypto-bigint", - "elf", "getrandom", "hex", - "human-repr", "lazy-regex", - "num-derive", - "num-traits", "prost", - "prost-build", - "protobuf-src", - "rayon", - "risc0-binfmt 0.21.0", + "risc0-binfmt", + "risc0-build", "risc0-circuit-recursion", "risc0-circuit-rv32im", - "risc0-core 0.21.0", + "risc0-core", "risc0-groth16", - "risc0-zkp 0.21.0", - "risc0-zkvm-platform 0.21.0", + "risc0-zkp", + "risc0-zkvm-platform", "rrs-lib", - "rustc-demangle", "semver 1.0.21", "serde", "sha2", + "stability", "tempfile", "tracing", - "typetag", ] [[package]] name = "risc0-zkvm-platform" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5819c0c3bfd8f20b1226c9d4ca1f342eb3d8385e71211a9383a879643d1dde" - -[[package]] -name = "risc0-zkvm-platform" -version = "0.21.0-alpha.1" -source = "git+https://github.com/risc0/risc0?rev=7f731662#7f731662eaeb2d91b332cf85d4cbd61c87fc5c67" - -[[package]] -name = "risc0-zkvm-platform" -version = "0.21.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b6378c9e407be18a1560ed030fd87fb6056293c56263efac46c507ae97e0d7" +checksum = "b6acf0b0d7a55578f892e0460ed1f2ca06d0380e32440531d80ca82530d41272" dependencies = [ "bytemuck", "getrandom", "libm", + "stability", ] [[package]] @@ -3680,16 +4434,16 @@ dependencies = [ [[package]] name = "ruint" -version = "1.11.1" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608a5726529f2f0ef81b8fde9873c4bb829d6b5b5ca6be4d97345ddf0749c825" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", "bytes", "fastrlp", - "num-bigint 0.4.4", + "num-bigint", "num-traits", "parity-scale-codec", "primitive-types", @@ -3704,9 +4458,9 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" @@ -3714,6 +4468,12 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -3740,9 +4500,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags 2.4.2", "errno", @@ -3759,10 +4519,24 @@ checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", "ring 0.17.8", - "rustls-webpki", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.6", + "subtle", + "zeroize", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3772,6 +4546,21 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3782,6 +4571,17 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.14" @@ -3800,17 +4600,6 @@ dependencies = [ "wait-timeout", ] -[[package]] -name = "ruzstd" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" -dependencies = [ - "byteorder", - "derive_more", - "twox-hash", -] - [[package]] name = "ryu" version = "1.0.16" @@ -3842,7 +4631,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" dependencies = [ "cfg-if", - "derive_more", + "derive_more 0.99.17", "parity-scale-codec", "scale-info-derive", ] @@ -3859,6 +4648,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "schannel" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -3901,6 +4699,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "security-framework" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "0.11.0" @@ -4043,6 +4864,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -4068,7 +4895,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" dependencies = [ - "num-bigint 0.4.4", + "num-bigint", "num-traits", "thiserror", "time", @@ -4142,10 +4969,14 @@ dependencies = [ ] [[package]] -name = "stable_deref_trait" -version = "1.2.0" +name = "stability" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" +dependencies = [ + "quote", + "syn 2.0.49", +] [[package]] name = "static_assertions" @@ -4174,20 +5005,20 @@ checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", "rustversion", @@ -4210,7 +5041,7 @@ dependencies = [ "fs2", "hex", "once_cell", - "reqwest", + "reqwest 0.11.24", "semver 1.0.21", "serde", "serde_json", @@ -4244,9 +5075,21 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.6.3" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.49", +] + +[[package]] +name = "syn-solidity" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e656cbcef8a77543b5accbd76f60f9e0bc4be364b0aba4263a6f313f8a355511" +checksum = "edf42e81491fb8871b74df3d222c64ae8cbc1269ea509fa768a3ed3e1b0ac8cb" dependencies = [ "paste", "proc-macro2", @@ -4254,12 +5097,33 @@ dependencies = [ "syn 2.0.49", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.49", +] + [[package]] name = "sync_wrapper" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -4289,14 +5153,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", + "once_cell", "rustix", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4339,6 +5204,15 @@ dependencies = [ "syn 2.0.49", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.34" @@ -4424,16 +5298,49 @@ dependencies = [ "syn 2.0.49", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.10", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.12", + "rustls-pki-types", "tokio", ] +[[package]] +name = "tokio-stream" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + [[package]] name = "tokio-tungstenite" version = "0.20.1" @@ -4442,11 +5349,11 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.21.10", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tungstenite", - "webpki-roots", + "webpki-roots 0.25.4", ] [[package]] @@ -4530,11 +5437,31 @@ dependencies = [ "winnow 0.6.1", ] +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -4603,57 +5530,23 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 0.2.11", "httparse", "log", "rand", - "rustls", + "rustls 0.21.10", "sha1", "thiserror", "url", "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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "typetag" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "661d18414ec032a49ece2d56eee03636e43c4e8d577047ab334c0ba892e29aaf" -dependencies = [ - "erased-serde", - "inventory", - "once_cell", - "serde", - "typetag-impl", -] - -[[package]] -name = "typetag-impl" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.49", -] - [[package]] name = "ucd-trie" version = "0.1.6" @@ -4756,6 +5649,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.4" @@ -4862,6 +5761,19 @@ version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +[[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 = "web-sys" version = "0.3.68" @@ -4879,15 +5791,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] -name = "which" -version = "4.4.2" +name = "webpki-roots" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ - "either", - "home", - "once_cell", - "rustix", + "rustls-pki-types", ] [[package]] @@ -4921,6 +5830,36 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -4936,7 +5875,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -4956,17 +5904,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -4977,9 +5926,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -4989,9 +5938,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -5001,9 +5950,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -5013,9 +5968,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -5025,9 +5980,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -5037,9 +5992,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -5049,9 +6004,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -5109,6 +6064,17 @@ dependencies = [ "tap", ] +[[package]] +name = "x509-cert" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" +dependencies = [ + "const-oid", + "der", + "spki", +] + [[package]] name = "yansi" version = "0.5.1" diff --git a/Cargo.toml b/Cargo.toml index 3cf6935..dc38ddc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] resolver = "2" -members = ["apps", "methods", "primitive-io"] +members = ["apps", "methods", "primitive-io", "methods/guest"] exclude = ["lib"] [workspace.package] @@ -8,8 +8,9 @@ version = "0.1.0" edition = "2021" [workspace.dependencies] -alloy-primitives = { version = "0.6", default-features = false, features = ["rlp", "serde", "std"] } -alloy-sol-types = { version = "0.6" } +alloy = { version = "0.3", features = ["full"] } +alloy-primitives = { version = "0.7", default-features = false, features = ["rlp", "serde", "std"] } +alloy-sol-types = { version = "0.7" } anyhow = { version = "1.0.75" } bincode = { version = "1.3" } bonsai-sdk = { version = "0.6.1" } @@ -18,16 +19,19 @@ ethers = { version = "2.0" } hex = { version = "0.4" } log = { version = "0.4" } methods = { path = "./methods" } -# NOTE: Using a git rev temporarily to get an unreleased version of risc0-build. -# Once the referenced commit is in a released version of risc0-build, this will go back to using a version. -risc0-build = { git = "https://github.com/risc0/risc0", rev = "7f731662", features = ["docker"] } -risc0-build-ethereum = { git = "https://github.com/risc0/risc0-ethereum", branch = "release-0.7" } -risc0-ethereum-contracts = { git = "https://github.com/risc0/risc0-ethereum", branch = "release-0.7" } -risc0-zkvm = { version = "0.21.0", default-features = false } -risc0-zkp = { version = "0.21.0", default-features = false } -risc0-groth16 = { version = "0.21.0", default-features = false, features = ["prove"] } +risc0-build = { version = "1.1", features = ["docker"] } +risc0-build-ethereum = { git = "https://github.com/risc0/risc0-ethereum", tag = "v1.1.4" } +risc0-ethereum-contracts = { git = "https://github.com/risc0/risc0-ethereum", tag = "v1.1.4" } +risc0-zkvm = { version = "1.1", default-features = false, features = ["client"] } +risc0-zkp = { version = "1.1", default-features = false } +risc0-groth16 = { version = "1.1", default-features = false } +risc0-circuit-recursion = { version = "1.1", default-features = false } +risc0-zkvm-platform = { version = "1.1" } serde = { version = "1.0", features = ["derive", "std"] } [profile.release] debug = 1 lto = true + +[patch.crates-io] +ring = { git = "https://github.com/tolak/ring.git", branch = "patch-for-risc0" } \ No newline at end of file diff --git a/apps/Cargo.toml b/apps/Cargo.toml index ddf625a..934fa5c 100644 --- a/apps/Cargo.toml +++ b/apps/Cargo.toml @@ -12,13 +12,15 @@ bonsai-sdk = { workspace = true } bytemuck = { workspace = true } clap = { version = "4.0", features = ["derive", "env"] } env_logger = { version = "0.10" } -ethers = { workspace = true } +ethers = "^2.0.14" hex = { workspace = true } log = { workspace = true } methods = { workspace = true } risc0-ethereum-contracts = { workspace = true } -risc0-zkvm = { workspace = true, features = ["prove"] } -risc0-groth16 = { workspace = true, features = ["prove"] } +risc0-zkvm = { workspace = true } +risc0-groth16 = { workspace = true } +risc0-circuit-recursion = { workspace = true } +risc0-zkvm-platform = { workspace = true } serde = { workspace = true } serde_bytes = "0.11" tokio = { version = "1.35", features = ["full"] } diff --git a/apps/src/bin/publisher.rs b/apps/src/bin/publisher.rs index 6144aa4..5552ffc 100644 --- a/apps/src/bin/publisher.rs +++ b/apps/src/bin/publisher.rs @@ -68,7 +68,7 @@ impl TxSender { // `IEvenNumber` interface automatically generated via the alloy `sol!` macro. sol! { interface IDCAP { - function verifyAttestation(bytes calldata output, bytes32 post_state_digest, bytes calldata seal); + function verifyAttestation(bytes calldata output, bytes calldata seal); } } @@ -118,14 +118,13 @@ fn main() -> Result<()> { log::info!("Start to generate proof for intputs"); // Send an off-chain proof request to the Bonsai proving service. - let (journal, post_state_digest, seal) = + let (journal, seal) = LocalProver::prove(DCAP_VERIFIER_ELF, &bincode::serialize(&input).unwrap())?; // Encode the function call for `IDCAP.verifyAttestation(x)`. let calldata = IDCAP::IDCAPCalls::verifyAttestation(IDCAP::verifyAttestationCall { - output: journal, - post_state_digest, - seal, + output: journal.into(), + seal: seal.into(), }) .abi_encode(); diff --git a/apps/src/bonsai_prover.rs b/apps/src/bonsai_prover.rs deleted file mode 100644 index f4cf571..0000000 --- a/apps/src/bonsai_prover.rs +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2024 RISC Zero, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// The following library provides utility functions to help with sending -// off-chain proof requests to the Bonsai proving service and publish the -// received proofs directly to a deployed app contract on Ethereum. -// -// Please note that both `risc0_zkvm` and `bonsai_sdk` crates are still -// under active development. As such, this library might change to adapt to -// the upstream changes. - -use std::time::Duration; - -use alloy_primitives::FixedBytes; -use anyhow::{Context, Result}; -use bonsai_sdk::alpha as bonsai_sdk; -use risc0_ethereum_contracts::groth16::Seal; -use risc0_zkvm::{compute_image_id, Receipt}; - -/// An implementation of a Prover that runs on Bonsai. -pub struct BonsaiProver {} -impl BonsaiProver { - /// Generates a snark proof as a triplet (`Vec`, `FixedBytes<32>`, - /// `Vec) for the given elf and input. - pub fn prove(elf: &[u8], input: &[u8]) -> Result<(Vec, FixedBytes<32>, Vec)> { - let client = bonsai_sdk::Client::from_env(risc0_zkvm::VERSION)?; - - // Compute the image_id, then upload the ELF with the image_id as its key. - let image_id = compute_image_id(elf)?; - let image_id_hex = image_id.to_string(); - client.upload_img(&image_id_hex, elf.to_vec())?; - log::info!("Image ID: 0x{}", image_id_hex); - - // Prepare input data and upload it. - let input_id = client.upload_input(input.to_vec())?; - - // Start a session running the prover. - let session = client.create_session(image_id_hex, input_id, vec![])?; - log::info!("Created session: {}", session.uuid); - let _receipt = loop { - let res = session.status(&client)?; - if res.status == "RUNNING" { - log::info!( - "Current status: {} - state: {} - continue polling...", - res.status, - res.state.unwrap_or_default() - ); - std::thread::sleep(Duration::from_secs(15)); - continue; - } - if res.status == "SUCCEEDED" { - // Download the receipt, containing the output. - let receipt_url = res - .receipt_url - .context("API error, missing receipt on completed session")?; - - let receipt_buf = client.download(&receipt_url)?; - let receipt: Receipt = bincode::deserialize(&receipt_buf)?; - - break receipt; - } - - panic!( - "Workflow exited: {} - | err: {}", - res.status, - res.error_msg.unwrap_or_default() - ); - }; - - // Fetch the snark. - let snark_session = client.create_snark(session.uuid)?; - log::info!("Created snark session: {}", snark_session.uuid); - let snark_receipt = loop { - let res = snark_session.status(&client)?; - match res.status.as_str() { - "RUNNING" => { - log::info!("Current status: {} - continue polling...", res.status,); - std::thread::sleep(Duration::from_secs(15)); - continue; - } - "SUCCEEDED" => { - break res.output.context("No snark generated :(")?; - } - _ => { - panic!( - "Workflow exited: {} err: {}", - res.status, - res.error_msg.unwrap_or_default() - ); - } - } - }; - - let snark = snark_receipt.snark; - log::debug!("Snark proof!: {snark:?}"); - - let seal = Seal::abi_encode(snark).context("Read seal")?; - let post_state_digest: FixedBytes<32> = snark_receipt - .post_state_digest - .as_slice() - .try_into() - .context("Read post_state_digest")?; - let journal = snark_receipt.journal; - - Ok((journal, post_state_digest, seal)) - } -} diff --git a/apps/src/lib.rs b/apps/src/lib.rs index 40abf17..613d05b 100644 --- a/apps/src/lib.rs +++ b/apps/src/lib.rs @@ -1,2 +1 @@ -pub mod bonsai_prover; pub mod local_prover; diff --git a/apps/src/local_prover.rs b/apps/src/local_prover.rs index 00bd59b..9534050 100644 --- a/apps/src/local_prover.rs +++ b/apps/src/local_prover.rs @@ -15,56 +15,35 @@ // The following library provides utility functions to help generate SNARK proof // of the execution of guest code, here by mean verify DCAP of Phala workers. -use alloy_primitives::FixedBytes; use anyhow::Result; -use risc0_groth16::docker::stark_to_snark; -use risc0_zkvm::{ - get_prover_server, recursion::identity_p254, sha::Digestible, ExecutorEnv, ExecutorImpl, - ProverOpts, VerifierContext, -}; +use risc0_ethereum_contracts::encode_seal; +use risc0_zkvm::{default_prover, ExecutorEnv, ProverOpts, VerifierContext}; /// An implementation of a Prover that runs on local machine. pub struct LocalProver {} impl LocalProver { /// Generates a snark proof as a triplet (`Vec`, `FixedBytes<32>`, /// `Vec) for the given elf and input. - pub fn prove(elf: &[u8], input: &[u8]) -> Result<(Vec, FixedBytes<32>, Vec)> { - log::info!("Start local proving"); - let env = ExecutorEnv::builder() - .write_slice(input) - // .unwrap() - .build() - .unwrap(); - - log::info!("Create execution session"); - let mut exec = ExecutorImpl::from_elf(env, elf).unwrap(); - let session = exec.run().unwrap(); - - log::info!("Generate STARK proof"); - let opts = ProverOpts::default(); - let ctx = VerifierContext::default(); - let prover = get_prover_server(&opts).unwrap(); - let receipt = prover.prove_session(&ctx, &session).unwrap(); - - let claim = receipt.get_claim().unwrap(); - let composite_receipt = receipt.inner.composite().unwrap(); - let succinct_receipt = prover.compress(composite_receipt).unwrap(); - let journal: Vec = session.journal.unwrap().bytes; + pub fn prove(elf: &[u8], input: &[u8]) -> Result<(Vec, Vec)> { + let env = ExecutorEnv::builder().write_slice(input).build().unwrap(); - let ident_receipt = identity_p254(&succinct_receipt).unwrap(); - let seal_bytes = ident_receipt.get_seal_bytes(); - - log::info!("Start translate STARK to SNARK"); - let seal = stark_to_snark(&seal_bytes).unwrap().to_vec(); + log::info!("Start local proving"); + let prover_info = default_prover().prove_with_ctx( + env, + &VerifierContext::default(), + elf, + &ProverOpts::groth16(), + )?; log::info!( - "Transform finish, proof size decrease from {:} bytes to {:} bytes, snark proof {:?}", - seal_bytes.len(), - seal.len(), - hex::encode(&seal) + "Proving finished, receipt: {:?}, stats: {:?}", + &prover_info.receipt, + &prover_info.stats ); - let post_state_digest: [u8; 32] = claim.post.digest().into(); - Ok((journal, post_state_digest.into(), seal)) + let seal = encode_seal(&prover_info.receipt)?; + let journal = prover_info.receipt.journal.bytes.clone(); + + Ok((journal, seal)) } } diff --git a/contracts/DcapVerifier.sol b/contracts/DcapVerifier.sol index 8480d94..4e2b03b 100644 --- a/contracts/DcapVerifier.sol +++ b/contracts/DcapVerifier.sol @@ -38,12 +38,12 @@ contract DcapVerifier is Ownable { } /// @notice Check the proof of attestation verification and return the attestation output. - function verifyAttestation(bytes calldata x, bytes32 postStateDigest, bytes calldata seal) + function verifyAttestation(bytes calldata x, bytes calldata seal) external returns(bytes memory) { // Construct the expected journal data. Verify will fail if journal does not match. bytes memory journal = x; - require(verifier.verify(seal, imageId, postStateDigest, sha256(journal))); + verifier.verify(seal, imageId, sha256(journal)); return journal; } diff --git a/foundry.toml b/foundry.toml index 0612bcc..d9d9d6f 100644 --- a/foundry.toml +++ b/foundry.toml @@ -4,5 +4,6 @@ out = "out" libs = ["lib"] test = "tests" ffi = true +fs_permissions = [{ access = "read-write", path = "./"}] # See more config options https://github.com/foundry-rs/foundry/tree/master/config diff --git a/lib/forge-std b/lib/forge-std index 1d0766b..978ac6f 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 1d0766bc5d814f117c7b1e643828f7d85024fb51 +Subproject commit 978ac6fadb62f5f0b723c996f64be52eddba6801 diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts index 96e5c08..01ef448 160000 --- a/lib/openzeppelin-contracts +++ b/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit 96e5c0830a83b61197dd4e29df59cb56499600ef +Subproject commit 01ef448981be9d20ca85f2faf6ebdf591ce409f3 diff --git a/lib/risc0-ethereum b/lib/risc0-ethereum index df01b5b..4fa7de0 160000 --- a/lib/risc0-ethereum +++ b/lib/risc0-ethereum @@ -1 +1 @@ -Subproject commit df01b5bdced9cb966da8b14b9c26b964cbec4a60 +Subproject commit 4fa7de055d461b7fa948eb56107b7a172459e8fc diff --git a/methods/build.rs b/methods/build.rs index ef087eb..292db5b 100644 --- a/methods/build.rs +++ b/methods/build.rs @@ -29,6 +29,7 @@ fn main() { // Builds can be made deterministic, and thereby reproducible, by using Docker to build the // guest. Check the RISC0_USE_DOCKER variable and use Docker to build the guest if set. + println!("cargo:rerun-if-env-changed=RISC0_USE_DOCKER"); let use_docker = env::var("RISC0_USE_DOCKER").ok().map(|_| DockerOptions { root_dir: Some("../".into()), }); diff --git a/methods/guest/Cargo.toml b/methods/guest/Cargo.toml index 33daa2c..b7305a2 100644 --- a/methods/guest/Cargo.toml +++ b/methods/guest/Cargo.toml @@ -1,18 +1,16 @@ [package] name = "guests" -version = "0.1.0" -edition = "2021" +version = { workspace = true } +edition = { workspace = true } [[bin]] name = "dcap-verifier" path = "src/main.rs" -[workspace] - [dependencies] -alloy-primitives = { version = "0.6", default-features = false, features = ["rlp", "serde", "std"] } -alloy-sol-types = { version = "0.6" } -risc0-zkvm = { version = "0.20.1", default-features = false, features = ['std'] } +alloy-primitives = { workspace = true } +alloy-sol-types = { workspace = true } +risc0-zkvm = { workspace = true, features = ["client"] } primitive-io = { path = "../../primitive-io" } @@ -36,7 +34,7 @@ asn1_der = { version = "0.7", default-features = false, features = [ "native_types", "std", ] } -ring = { version = "0.17.5", default-features = false, features = ["std"] } +ring = { version = "0.17.8", default-features = false, features = ["std"] } const-oid = { version = "0.9.5", default-features = false, features = ["std"] } der = { version = "0.7.8", default-features = false, features = ["std"] } pem = { version = "3", default-features = false, features = ["std"] } @@ -46,7 +44,3 @@ webpki = { package = "rustls-webpki", version = "=0.102.6", default-features = f [profile.release] lto = "thin" - - -[patch.crates-io] -ring = { git = "https://github.com/tolak/ring.git", package = "ring", branch = "patch-for-risc0" } diff --git a/methods/guest/src/dcap.rs b/methods/guest/src/dcap.rs index 8dc7c33..bdafc05 100644 --- a/methods/guest/src/dcap.rs +++ b/methods/guest/src/dcap.rs @@ -1,6 +1,6 @@ +mod constants; mod quote; mod tcb_info; -mod constants; mod utils; use alloc::borrow::ToOwned; @@ -9,9 +9,9 @@ use alloc::vec::Vec; use scale_codec::{Decode, Encode}; use scale_info::TypeInfo; +use crate::dcap::constants::*; use crate::dcap::quote::{AuthData, EnclaveReport, Quote}; use crate::dcap::tcb_info::TcbInfo; -use crate::dcap::constants::*; use crate::dcap::utils::*; use crate::Error; @@ -42,8 +42,8 @@ pub fn verify( let tcb_info = pink_json::from_str::("e_collateral.tcb_info) .map_err(|_| Error::CodecError)?; - let next_update = - chrono::DateTime::parse_from_rfc3339(&tcb_info.next_update).map_err(|_| Error::CodecError)?; + let next_update = chrono::DateTime::parse_from_rfc3339(&tcb_info.next_update) + .map_err(|_| Error::CodecError)?; if now > next_update.timestamp() as u64 { return Err(Error::TCBInfoExpired); } @@ -104,16 +104,19 @@ pub fn verify( return Err(Error::CertificateChainIsTooShort); } // Check certification_data - let leaf_cert: webpki::EndEntityCert = - webpki::EndEntityCert::try_from(&certification_certs[0]) - .map_err(|_| Error::LeafCertificateParsingError)?; + let leaf_cert: webpki::EndEntityCert = webpki::EndEntityCert::try_from(&certification_certs[0]) + .map_err(|_| Error::LeafCertificateParsingError)?; let intermediate_certs = &certification_certs[1..]; verify_certificate_chain(&leaf_cert, intermediate_certs, now_in_milli)?; // Check QE signature let asn1_signature = encode_as_der(&auth_data.qe_report_signature)?; if leaf_cert - .verify_signature(webpki::ring::ECDSA_P256_SHA256, &auth_data.qe_report, &asn1_signature) + .verify_signature( + webpki::ring::ECDSA_P256_SHA256, + &auth_data.qe_report, + &asn1_signature, + ) .is_err() { return Err(Error::RsaSignatureIsInvalid); @@ -121,8 +124,7 @@ pub fn verify( // Extract QE report from quote let mut qe_report = auth_data.qe_report.as_slice(); - let qe_report = - EnclaveReport::decode(&mut qe_report).map_err(|_err| Error::CodecError)?; + let qe_report = EnclaveReport::decode(&mut qe_report).map_err(|_err| Error::CodecError)?; // Check QE hash let mut qe_hash_data = [0u8; QE_HASH_DATA_BYTE_LEN]; @@ -162,8 +164,12 @@ pub fn verify( let mut advisory_ids = Vec::::new(); for tcb_level in &tcb_info.tcb_levels { if pce_svn >= tcb_level.tcb.pce_svn { - if cpu_svn.iter().zip(&tcb_level.tcb.components).any(|(a, b)| a < &b.svn) { - continue + if cpu_svn + .iter() + .zip(&tcb_level.tcb.components) + .any(|(a, b)| a < &b.svn) + { + continue; } tcb_status = tcb_level.tcb_status.clone(); diff --git a/methods/guest/src/dcap/quote.rs b/methods/guest/src/dcap/quote.rs index 861c645..7b374c7 100644 --- a/methods/guest/src/dcap/quote.rs +++ b/methods/guest/src/dcap/quote.rs @@ -25,6 +25,7 @@ impl> Decode for Data { } #[derive(Decode, Debug)] +#[allow(dead_code)] pub struct Header { pub version: u16, pub attestation_key_type: u16, @@ -36,12 +37,14 @@ pub struct Header { } #[derive(Decode, Debug)] +#[allow(dead_code)] pub struct Body { pub body_type: u16, pub size: u32, } #[derive(Decode, Debug)] +#[allow(dead_code)] pub struct EnclaveReport { pub cpu_svn: [u8; 16], pub misc_select: u32, @@ -74,6 +77,7 @@ impl core::fmt::Debug for CertificationData { } #[derive(Decode, Debug)] +#[allow(dead_code)] pub struct QEReportCertificationData { pub qe_report: [u8; ENCLAVE_REPORT_BYTE_LEN], pub qe_report_signature: [u8; QE_REPORT_SIG_BYTE_LEN], @@ -92,6 +96,7 @@ pub struct AuthDataV3 { } #[derive(Debug)] +#[allow(dead_code)] pub struct AuthDataV4 { pub ecdsa_signature: [u8; ECDSA_SIGNATURE_BYTE_LEN], pub ecdsa_attestation_key: [u8; ECDSA_PUBKEY_BYTE_LEN], @@ -116,6 +121,7 @@ impl Decode for AuthDataV4 { } #[derive(Debug)] +#[allow(dead_code)] pub enum AuthData { V3(AuthDataV3), V4(AuthDataV4), diff --git a/methods/guest/src/dcap/utils.rs b/methods/guest/src/dcap/utils.rs index 165db38..486aba0 100644 --- a/methods/guest/src/dcap/utils.rs +++ b/methods/guest/src/dcap/utils.rs @@ -1,12 +1,12 @@ use alloc::vec; use alloc::vec::Vec; -use core::time::Duration; -use webpki::types::CertificateDer; -use x509_cert::Certificate; use asn1_der::{ typed::{DerDecodable, Sequence}, DerObject, }; +use core::time::Duration; +use webpki::types::CertificateDer; +use x509_cert::Certificate; use crate::dcap::constants::*; use crate::Error; @@ -23,7 +23,9 @@ pub fn get_intel_extension(der_encoded: &[u8]) -> Result, Error> { .filter(|e| e.extn_id == oids::SGX_EXTENSION) .map(|e| e.extn_value.clone()); - let extension = extension_iter.next().ok_or(Error::IntelExtensionAmbiguity)?; + let extension = extension_iter + .next() + .ok_or(Error::IntelExtensionAmbiguity)?; if extension_iter.next().is_some() { //"There should only be one section containing Intel extensions" return Err(Error::IntelExtensionAmbiguity); @@ -39,7 +41,7 @@ pub fn find_extension(path: &[&[u8]], raw: &[u8]) -> Result, Error> { fn get_obj<'a>(path: &[&[u8]], mut obj: DerObject<'a>) -> Result, Error> { for oid in path { - let seq = Sequence::load(obj).map_err(|_| Error::DerDecodingError )?; + let seq = Sequence::load(obj).map_err(|_| Error::DerDecodingError)?; obj = sub_obj(oid, seq)?; } Ok(obj) @@ -48,7 +50,7 @@ fn get_obj<'a>(path: &[&[u8]], mut obj: DerObject<'a>) -> Result, fn sub_obj<'a>(oid: &[u8], seq: Sequence<'a>) -> Result, Error> { for i in 0..seq.len() { let entry = seq.get(i).map_err(|_| Error::OidIsMissing)?; - let entry = Sequence::load(entry).map_err(|_| Error::DerDecodingError )?; + let entry = Sequence::load(entry).map_err(|_| Error::DerDecodingError)?; let name = entry.get(0).map_err(|_| Error::OidIsMissing)?; let value = entry.get(1).map_err(|_| Error::OidIsMissing)?; if name.value() == oid { @@ -61,39 +63,45 @@ fn sub_obj<'a>(oid: &[u8], seq: Sequence<'a>) -> Result, Error> { pub fn get_fmspc(extension_section: &[u8]) -> Result { let data = find_extension(&[oids::FMSPC.as_bytes()], extension_section)?; if data.len() != 6 { - return Err(Error::FmspcLengthMismatch) + return Err(Error::FmspcLengthMismatch); } data.try_into().map_err(|_| Error::FmspcDecodingError) } pub fn get_cpu_svn(extension_section: &[u8]) -> Result { - let data = find_extension(&[oids::TCB.as_bytes(), oids::CPUSVN.as_bytes()], extension_section)?; + let data = find_extension( + &[oids::TCB.as_bytes(), oids::CPUSVN.as_bytes()], + extension_section, + )?; if data.len() != 16 { - return Err(Error::CpuSvnLengthMismatch) + return Err(Error::CpuSvnLengthMismatch); } data.try_into().map_err(|_| Error::CpuSvnDecodingError) } pub fn get_pce_svn(extension_section: &[u8]) -> Result { - let data = find_extension(&[oids::TCB.as_bytes(), oids::PCESVN.as_bytes()], extension_section)?; + let data = find_extension( + &[oids::TCB.as_bytes(), oids::PCESVN.as_bytes()], + extension_section, + )?; match data.len() { 1 => Ok(u16::from(data[0])), - 2 => Ok(u16::from_be_bytes(data.try_into().map_err(|_| Error::PceSvnDecodingError)?)), + 2 => Ok(u16::from_be_bytes( + data.try_into().map_err(|_| Error::PceSvnDecodingError)?, + )), _ => Err(Error::PceSvnLengthMismatch), } } pub fn extract_raw_certs(cert_chain: &[u8]) -> Result>, Error> { - Ok( - pem::parse_many(cert_chain) - .map_err(|_| Error::CodecError)? - .iter() - .map(|i| i.contents().to_vec() ) - .collect() - ) + Ok(pem::parse_many(cert_chain) + .map_err(|_| Error::CodecError)? + .iter() + .map(|i| i.contents().to_vec()) + .collect()) } pub fn extract_certs<'a>(cert_chain: &'a [u8]) -> Result>, Error> { diff --git a/methods/guest/src/main.rs b/methods/guest/src/main.rs index 9262722..21e08bc 100644 --- a/methods/guest/src/main.rs +++ b/methods/guest/src/main.rs @@ -14,10 +14,10 @@ extern crate alloc; extern crate core; -use std::io::Read; -use risc0_zkvm::guest::env; use primitive_io::{Inputs, Outputs}; +use risc0_zkvm::guest::env; use scale_codec::Decode; +use std::io::Read; mod error; use error::Error; @@ -48,7 +48,7 @@ fn main() { isv_prod_id, isv_svn, tcb_status, - advisory_ids + advisory_ids, }; log::info!("Check passed, commit output to host"); diff --git a/remappings.txt b/remappings.txt index 35bf3ce..e4a9a9b 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,4 +1,3 @@ -murky_differential_testing/=lib/murky/differential_testing/ forge-std/=lib/forge-std/src/ openzeppelin/=lib/openzeppelin-contracts/ -risc0/=lib/risc0-ethereum/contracts/src/ +risc0/=lib/risc0-ethereum/contracts/src/ \ No newline at end of file diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 6c18dfc..cb78e29 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,5 @@ [toolchain] -channel = "stable" -components = ["rustfmt", "rust-src"] +channel = "1.79" +components = ["clippy", "rustfmt", "rust-src"] +targets = [] profile = "minimal" \ No newline at end of file diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index 93de305..54c07ae 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -17,30 +17,87 @@ pragma solidity ^0.8.20; import {Script} from "forge-std/Script.sol"; -import {console2} from "forge-std/console2.sol"; +import "forge-std/Test.sol"; +import {RiscZeroCheats} from "risc0/test/RiscZeroCheats.sol"; import {IRiscZeroVerifier} from "risc0/IRiscZeroVerifier.sol"; -import {ControlID, RiscZeroGroth16Verifier} from "risc0/groth16/RiscZeroGroth16Verifier.sol"; +import {RiscZeroGroth16Verifier} from "risc0/groth16/RiscZeroGroth16Verifier.sol"; +import {ControlID} from "risc0/groth16/ControlID.sol"; import {DcapVerifier} from "../contracts/DcapVerifier.sol"; /// @notice Deployment script for the RISC Zero starter project. /// @dev Use the following environment variable to control the deployment: -/// * ETH_WALLET_PRIVATE_KEY private key of the wallet to be used for deployment. +/// * Set one of these two environment variables to control the deployment wallet: +/// * ETH_WALLET_PRIVATE_KEY private key of the wallet account. +/// * ETH_WALLET_ADDRESS address of the wallet account. +/// +/// See the Foundry documentation for more information about Solidity scripts, +/// including information about wallet options. /// -/// See the Foundry documentation for more information about Solidity scripts. /// https://book.getfoundry.sh/tutorials/solidity-scripting -contract DcapDeploy is Script { +/// https://book.getfoundry.sh/reference/forge/forge-script +contract EvenNumberDeploy is Script, RiscZeroCheats { + // Path to deployment config file, relative to the project root. + string constant CONFIG_FILE = "script/config.toml"; + + IRiscZeroVerifier verifier; + function run() external { - uint256 deployerKey = uint256(vm.envBytes32("ETH_WALLET_PRIVATE_KEY")); + // Read and log the chainID + uint256 chainId = block.chainid; + console2.log("You are deploying on ChainID %d", chainId); + + // Read the config profile from the environment variable, or use the default for the chainId. + // Default is the first profile with a matching chainId field. + string memory config = vm.readFile(string.concat(vm.projectRoot(), "/", CONFIG_FILE)); + string memory configProfile = vm.envOr("CONFIG_PROFILE", string("")); + if (bytes(configProfile).length == 0) { + string[] memory profileKeys = vm.parseTomlKeys(config, ".profile"); + for (uint256 i = 0; i < profileKeys.length; i++) { + if (stdToml.readUint(config, string.concat(".profile.", profileKeys[i], ".chainId")) == chainId) { + configProfile = profileKeys[i]; + break; + } + } + } + + if (bytes(configProfile).length != 0) { + console2.log("Deploying using config profile:", configProfile); + string memory configProfileKey = string.concat(".profile.", configProfile); + address riscZeroVerifierAddress = + stdToml.readAddress(config, string.concat(configProfileKey, ".riscZeroVerifierAddress")); + // If set, use the predeployed verifier address found in the config. + verifier = IRiscZeroVerifier(riscZeroVerifierAddress); + } + + // Determine the wallet to send transactions from. + uint256 deployerKey = uint256(vm.envOr("ETH_WALLET_PRIVATE_KEY", bytes32(0))); + address deployerAddr = address(0); + if (deployerKey != 0) { + // Check for conflicts in how the two environment variables are set. + address envAddr = vm.envOr("ETH_WALLET_ADDRESS", address(0)); + require( + envAddr == address(0) || envAddr == vm.addr(deployerKey), + "conflicting settings from ETH_WALLET_PRIVATE_KEY and ETH_WALLET_ADDRESS" + ); - vm.startBroadcast(deployerKey); + vm.startBroadcast(deployerKey); + } else { + deployerAddr = vm.envAddress("ETH_WALLET_ADDRESS"); + vm.startBroadcast(deployerAddr); + } - IRiscZeroVerifier verifier = new RiscZeroGroth16Verifier(ControlID.CONTROL_ID_0, ControlID.CONTROL_ID_1); - console2.log("Deployed RiscZeroGroth16Verifier to", address(verifier)); + // Deploy the verifier, if not already deployed. + if (address(verifier) == address(0)) { + verifier = deployRiscZeroVerifier(); + } else { + console2.log("Using IRiscZeroVerifier contract deployed at", address(verifier)); + } + // Deploy the application contract. DcapVerifier dcapVerifier = new DcapVerifier(verifier); console2.log("Deployed DcapVerifier to", address(dcapVerifier)); vm.stopBroadcast(); } -} +} \ No newline at end of file diff --git a/script/config.toml b/script/config.toml new file mode 100644 index 0000000..837b362 --- /dev/null +++ b/script/config.toml @@ -0,0 +1,14 @@ +[profile.mainnet] +# RISC Zero Verifier contract deployed on mainnet (see https://dev.risczero.com/api/blockchain-integration/contracts/verifier#deployed-verifiers) +chainId = 1 +riscZeroVerifierAddress = "0x8EaB2D97Dfce405A1692a21b3ff3A172d593D319" + +[profile.sepolia] +# RISC Zero Verifier contract deployed on sepolia (see https://dev.risczero.com/api/blockchain-integration/contracts/verifier#deployed-verifiers) +chainId = 11155111 +riscZeroVerifierAddress = "0x925d8331ddc0a1F0d96E68CF073DFE1d92b69187" + +# You can add additional profiles here +# [profile.custom] +# chainId = 11155111 +# riscZeroVerifierAddress = \ No newline at end of file diff --git a/tests/DcapVerifier.t.sol b/tests/DcapVerifier.t.sol index 0cea0c9..80bb8d4 100644 --- a/tests/DcapVerifier.t.sol +++ b/tests/DcapVerifier.t.sol @@ -16,7 +16,7 @@ pragma solidity ^0.8.20; -import {RiscZeroCheats} from "risc0/RiscZeroCheats.sol"; +import {RiscZeroCheats} from "risc0/test/RiscZeroCheats.sol"; import {console2} from "forge-std/console2.sol"; import {Test} from "forge-std/Test.sol"; import {IRiscZeroVerifier} from "risc0/IRiscZeroVerifier.sol"; @@ -33,10 +33,10 @@ contract DcapVerifierTest is RiscZeroCheats, Test { function test_VerifyAttestation() public { bytes memory input = "hello"; - (bytes memory journal, bytes32 post_state_digest, bytes memory seal) = + (bytes memory journal, bytes memory seal) = prove(Elf.DCAP_VERIFIER_PATH, input); - bytes memory output = dcapVerifier.verifyAttestation(journal, post_state_digest, seal); + bytes memory output = dcapVerifier.verifyAttestation(journal, seal); assertEq(output, journal); } }