diff --git a/.gitignore b/.gitignore index 081a3b39..b80edca8 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ root_verifier_vk verifier.bin .vscode/ + +.env diff --git a/Cargo.lock b/Cargo.lock index 0065c587..64096446 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,9 +15,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.24.2" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" dependencies = [ "gimli", ] @@ -77,9 +77,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -92,9 +92,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-chains" -version = "0.2.10" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9be168f7a4b24c12c328c96175f5e515ba1b2440bb9c978df772c1edf335e4b" +checksum = "6068f356948cd84b5ad9ac30c50478e433847f14a50714d2b68f15d052724049" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -105,14 +105,14 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0dd3ed764953a6b20458b2b7abbfdc93d20d14b38babe1a70fe631a443a9f1" +checksum = "90d103d3e440ad6f703dd71a5b58a6abd24834563bde8a5fabe706e00242f810" dependencies = [ - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "alloy-trie 0.9.1", "alloy-tx-macros", "auto_impl", @@ -126,20 +126,20 @@ dependencies = [ "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-consensus-any" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9556182afa73cddffa91e64a5aa9508d5e8c912b3a15f26998d2388a824d2c7b" +checksum = "48ead76c8c84ab3a50c31c56bc2c748c2d64357ad2131c32f9b10ab790a25e1a" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "serde", ] @@ -153,32 +153,34 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-eip2930" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" dependencies = [ "alloy-primitives", "alloy-rlp", + "borsh", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -203,16 +205,16 @@ dependencies = [ [[package]] name = "alloy-eips" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305fa99b538ca7006b0c03cfed24ec6d82beda67aac857ef4714be24231d15e6" +checksum = "7bdbec74583d0067798d77afa43d58f00d93035335d7ceaa5d3f93857d461bb9" dependencies = [ "alloy-eip2124", "alloy-eip2930", "alloy-eip7702", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "auto_impl", "c-kzg", "derive_more 2.0.1", @@ -222,17 +224,17 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-evm" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a5f67ee74999aa4fe576a83be1996bdf74a30fce3d248bf2007d6fc7dae8aa" +checksum = "2f1bfade4de9f464719b5aca30cf5bb02b9fda7036f0cf43addc3a0e66a0340c" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-hardforks", "alloy-primitives", "alloy-rpc-types-engine", @@ -244,18 +246,18 @@ dependencies = [ "op-alloy-rpc-types-engine", "op-revm", "revm 29.0.1", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-genesis" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a272533715aefc900f89d51db00c96e6fd4f517ea081a12fea482a352c8c815c" +checksum = "c25d5acb35706e683df1ea333c862bdb6b7c5548836607cd5bb56e501cca0b4f" dependencies = [ - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "alloy-trie 0.9.1", "serde", "serde_with", @@ -277,9 +279,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +checksum = "5513d5e6bd1cba6bdcf5373470f559f320c05c8c59493b6e98912fbe6733943f" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -289,34 +291,34 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91676d242c0ced99c0dd6d0096d7337babe9457cc43407d26aa6367fcf90553" +checksum = "31b67c5a702121e618217f7a86f314918acb2622276d0273490e2d4534490bc0" dependencies = [ "alloy-primitives", "alloy-sol-types", "http", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] [[package]] name = "alloy-network" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f82150116b30ba92f588b87f08fa97a46a1bd5ffc0d0597efdf0843d36bfda" +checksum = "612296e6b723470bb1101420a73c63dfd535aa9bf738ce09951aedbd4ab7292e" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "alloy-signer", "alloy-sol-types", "async-trait", @@ -325,26 +327,27 @@ dependencies = [ "futures-utils-wasm", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-network-primitives" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223612259a080160ce839a4e5df0125ca403a1d5e7206cc911cea54af5d769aa" +checksum = "a0e7918396eecd69d9c907046ec8a93fb09b89e2f325d5e7ea9c4e3929aa0dd2" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "serde", ] [[package]] name = "alloy-primitives" -version = "1.3.1" -source = "git+https://github.com/scroll-tech/alloy-core?branch=feat%2Frkyv#d748da779d515c0a8344c15e811482e254ba897f" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "355bf68a433e0fd7f7d33d5a9fc2583fde70bf5c530f63b80845f8da5505cf28" dependencies = [ "alloy-rlp", "bytes", @@ -353,7 +356,7 @@ dependencies = [ "derive_more 2.0.1", "foldhash 0.2.0", "hashbrown 0.16.0", - "indexmap 2.11.4", + "indexmap 2.12.0", "itoa", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-asm", @@ -370,13 +373,13 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7283b81b6f136100b152e699171bc7ed8184a58802accbc91a7df4ebb944445" +checksum = "55c1313a527a2e464d067c031f3c2ec073754ef615cc0eabca702fd0fe35729c" dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -400,7 +403,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tracing", "url", @@ -426,14 +429,14 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "alloy-rpc-client" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1154b12d470bef59951c62676e106f4ce5de73b987d86b9faa935acebb138ded" +checksum = "45f802228273056528dfd6cc8845cc91a7c7e0c6fc1a66d19e8673743dacdc7e" dependencies = [ "alloy-json-rpc", "alloy-primitives", @@ -454,20 +457,20 @@ dependencies = [ [[package]] name = "alloy-rpc-types-any" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cc57ee0c1ac9fb14854195fc249494da7416591dc4a4d981ddfd5dd93b9bce" +checksum = "cdbf6d1766ca41e90ac21c4bc5cbc5e9e965978a25873c3f90b3992d905db4cb" dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", ] [[package]] name = "alloy-rpc-types-debug" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ac29dd005c33e3f7e09087accc80843315303685c3f7a1b888002cd27785b" +checksum = "977698b458738369ba5ca645d2cdb4d51ba07a81db37306ff85322853161ea3a" dependencies = [ "alloy-primitives", "derive_more 2.0.1", @@ -477,15 +480,15 @@ dependencies = [ [[package]] name = "alloy-rpc-types-engine" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9d173854879bcf26c7d71c1c3911972a3314df526f4349ffe488e676af577d" +checksum = "07da696cc7fbfead4b1dda8afe408685cae80975cbb024f843ba74d9639cd0d3" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "derive_more 2.0.1", "ethereum_ssz", "ethereum_ssz_derive", @@ -495,23 +498,23 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7d47bca1a2a1541e4404aa38b7e262bb4dffd9ac23b4f178729a4ddc5a5caa" +checksum = "a15e4831b71eea9d20126a411c1c09facf1d01d5cac84fd51d532d3c429cfc26" dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "alloy-sol-types", "itertools 0.14.0", "serde", "serde_json", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -527,9 +530,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8468f1a7f9ee3bae73c24eead0239abea720dbf7779384b9c7e20d51bfb6b0" +checksum = "751d1887f7d202514a82c5b3caf28ee8bd4a2ad9549e4f498b6f0bff99b52add" dependencies = [ "alloy-primitives", "serde", @@ -538,9 +541,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33387c90b0a5021f45a5a77c2ce6c49b8f6980e66a318181468fb24cea771670" +checksum = "9cf0b42ffbf558badfecf1dde0c3c5ed91f29bb7e97876d0bed008c3d5d67171" dependencies = [ "alloy-primitives", "async-trait", @@ -548,46 +551,46 @@ dependencies = [ "either", "elliptic-curve", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "alloy-sol-macro" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +checksum = "f3ce480400051b5217f19d6e9a82d9010cdde20f1ae9c00d53591e4a1afbb312" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "6d792e205ed3b72f795a8044c52877d2e6b6e9b1d13f431478121d8d4eaa9028" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.11.4", + "indexmap 2.12.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "0bd1247a8f90b465ef3f1207627547ec16940c35597875cdc09c49d58b19693c" dependencies = [ "const-hex", "dunce", @@ -595,15 +598,15 @@ dependencies = [ "macro-string", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "954d1b2533b9b2c7959652df3076954ecb1122a28cc740aa84e7b0a49f6ac0a9" dependencies = [ "serde", "winnow", @@ -611,9 +614,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +checksum = "70319350969a3af119da6fb3e9bddb1bce66c9ea933600cb297c8b1850ad2a3c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -623,12 +626,11 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702002659778d89a94cd4ff2044f6b505460df6c162e2f47d1857573845b0ace" +checksum = "71b3deee699d6f271eab587624a9fa84d02d0755db7a95a043d52a6488d16ebe" dependencies = [ "alloy-json-rpc", - "alloy-primitives", "auto_impl", "base64", "derive_more 2.0.1", @@ -638,7 +640,7 @@ dependencies = [ "parking_lot", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", "tokio", "tower", "tracing", @@ -648,9 +650,9 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6bdc0830e5e8f08a4c70a4c791d400a86679c694a3b4b986caf26fad680438" +checksum = "1720bd2ba8fe7e65138aca43bb0f680e4e0bcbd3ca39bf9d3035c9d7d2757f24" dependencies = [ "alloy-json-rpc", "alloy-transport", @@ -687,7 +689,7 @@ dependencies = [ "alloy-rlp", "arrayvec", "derive_more 2.0.1", - "nybbles 0.4.5", + "nybbles 0.4.6", "serde", "smallvec", "tracing", @@ -695,15 +697,14 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.38" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bf39928a5e70c9755d6811a2928131b53ba785ad37c8bf85c90175b5d43b818" +checksum = "cd7ce8ed34106acd6e21942022b6a15be6454c2c3ead4d76811d3bdcd63cf771" dependencies = [ - "alloy-primitives", "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -726,9 +727,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -741,9 +742,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -776,9 +777,18 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "ar_archive_writer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c269894b6fe5e9d7ada0cf69b5bf847ff35bc25fc271f08e1d080fce80339a" +dependencies = [ + "object 0.32.2", +] [[package]] name = "ark-bls12-381" @@ -910,7 +920,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -948,7 +958,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1037,7 +1047,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1105,7 +1115,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1116,7 +1126,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1143,7 +1153,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1152,6 +1162,30 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "axiom-sdk" +version = "1.0.6" +source = "git+https://github.com/axiom-crypto/axiom-api-cli.git?branch=feat%2Fupload-exe-raw#a46052807157079760311b199ee9940c71cba0d9" +dependencies = [ + "bytes", + "cargo_metadata 0.21.0", + "chrono", + "dirs", + "eyre", + "flate2", + "hex", + "openvm-build", + "reqwest", + "rustc_version 0.4.1", + "scopeguard", + "serde", + "serde_json", + "tar", + "toml_edit 0.23.7", + "url", + "walkdir", +] + [[package]] name = "az" version = "1.2.1" @@ -1160,18 +1194,18 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "backtrace" -version = "0.3.75" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" dependencies = [ "addr2line", "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.37.3", "rustc-demangle", "serde", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -1257,7 +1291,7 @@ checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1278,11 +1312,11 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1357,9 +1391,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.11.0-rc.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ef36a6fcdb072aa548f3da057640ec10859eb4e91ddf526ee648d50c76a949" +checksum = "96eb4cdd6cf1b31d671e9efe75c5d1ec614776856cefbe109ca373554a6d514f" dependencies = [ "hybrid-array", ] @@ -1379,9 +1413,9 @@ dependencies = [ [[package]] name = "blst" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" dependencies = [ "cc", "glob", @@ -1391,9 +1425,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.7.2" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" +checksum = "ebeb9aaf9329dff6ceb65c689ca3db33dbf15f324909c60e4e5eef5701ce31b1" dependencies = [ "bon-macros", "rustversion", @@ -1401,9 +1435,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.7.2" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" +checksum = "77e9d642a7e3a318e37c2c9427b5a6a48aa1ad55dcd986f3034ab2239045a645" dependencies = [ "darling 0.21.3", "ident_case", @@ -1411,7 +1445,30 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.106", + "syn 2.0.110", +] + +[[package]] +name = "borsh" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +dependencies = [ + "once_cell", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.110", ] [[package]] @@ -1428,9 +1485,9 @@ checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" [[package]] name = "bytecheck" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50690fb3370fb9fe3550372746084c46f2ac8c9685c583d2be10eefd89d3d1a3" +checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" dependencies = [ "bytecheck_derive", "ptr_meta", @@ -1440,20 +1497,20 @@ dependencies = [ [[package]] name = "bytecheck_derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb7846e0cb180355c2dec69e721edafa36919850f1a9f52ffba4ebc0393cb71" +checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -1472,15 +1529,15 @@ dependencies = [ [[package]] name = "bytesize" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5c434ae3cf0089ca203e9019ebe529c47ff45cefe8af7c85ecb734ef541822f" +checksum = "c99fa31e08a43eaa5913ef68d7e01c37a2bdce6ed648168239ad33b7d30a9cd8" [[package]] name = "c-kzg" -version = "2.1.1" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" +checksum = "e00bf4b112b07b505472dbefd19e37e53307e2bfed5a79e0cc161d58ccd0e687" dependencies = [ "blst", "cc", @@ -1493,9 +1550,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" +checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" dependencies = [ "serde_core", ] @@ -1518,17 +1575,26 @@ dependencies = [ "serde", ] +[[package]] +name = "cargo-platform" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122ec45a44b270afd1402f351b782c676b173e3c3fb28d86ff7ebfb4d86a4ee4" +dependencies = [ + "serde", +] + [[package]] name = "cargo-util-schemas" -version = "0.2.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" +checksum = "7dc1a6f7b5651af85774ae5a34b4e8be397d9cf4bc063b7e6dbd99a841837830" dependencies = [ "semver 1.0.27", "serde", "serde-untagged", "serde-value", - "thiserror 1.0.69", + "thiserror 2.0.17", "toml", "unicode-xid", "url", @@ -1550,38 +1616,38 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.19.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +checksum = "5cfca2aaa699835ba88faf58a06342a314a950d2b9686165e038286c30316868" dependencies = [ "camino", - "cargo-platform 0.1.9", + "cargo-platform 0.2.0", + "cargo-util-schemas", "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "cargo_metadata" -version = "0.20.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502" +checksum = "ef987d17b0a113becdd19d3d0022d04d7ef41f9efe4f3fb63ac44ba61df3ade9" dependencies = [ "camino", - "cargo-platform 0.2.0", - "cargo-util-schemas", + "cargo-platform 0.3.1", "semver 1.0.27", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "cc" -version = "1.2.38" +version = "1.2.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" +checksum = "35900b6c8d709fb1d854671ae27aeaa9eec2f8b01b364e1619a40da3e6fe2afe" dependencies = [ "find-msvc-tools", "jobserver", @@ -1591,9 +1657,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" @@ -1606,7 +1678,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -1615,16 +1687,16 @@ version = "0.5.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e12a13eb01ded5d32ee9658d94f553a19e804204f2dc811df69ab4d9e0cb8c7" dependencies = [ - "block-buffer 0.11.0-rc.5", + "block-buffer 0.11.0", "crypto-common 0.2.0-rc.4", "inout", ] [[package]] name = "clap" -version = "4.5.47" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" dependencies = [ "clap_builder", "clap_derive", @@ -1632,9 +1704,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" dependencies = [ "anstream", "anstyle", @@ -1644,21 +1716,48 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" + +[[package]] +name = "color-eyre" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b88ea9df13354b55bc7234ebcce36e6ef896aca2e42a15de9e10edce01b427" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] [[package]] name = "colorchoice" @@ -1676,11 +1775,24 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "console" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width", + "windows-sys 0.61.2", +] + [[package]] name = "const-hex" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" dependencies = [ "cfg-if", "cpufeatures", @@ -1696,9 +1808,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_format" -version = "0.2.34" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" dependencies = [ "const_format_proc_macros", ] @@ -1769,6 +1881,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + [[package]] name = "critical-section" version = "1.2.0" @@ -1831,6 +1952,33 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags", + "crossterm_winapi", + "derive_more 2.0.1", + "document-features", + "mio", + "parking_lot", + "rustix", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + [[package]] name = "crunchy" version = "0.2.4" @@ -1871,21 +2019,21 @@ dependencies = [ [[package]] name = "csv" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" dependencies = [ "csv-core", "itoa", "ryu", - "serde", + "serde_core", ] [[package]] name = "csv-core" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" dependencies = [ "memchr", ] @@ -1970,7 +2118,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1985,7 +2133,7 @@ dependencies = [ "quote", "serde", "strsim", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -1996,7 +2144,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2007,7 +2155,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2037,12 +2185,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", - "serde", + "serde_core", ] [[package]] @@ -2064,7 +2212,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2075,7 +2223,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2086,7 +2234,7 @@ checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2115,7 +2263,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "unicode-xid", ] @@ -2128,7 +2276,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "unicode-xid", ] @@ -2153,6 +2301,27 @@ dependencies = [ "subtle", ] +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.61.2", +] + [[package]] name = "displaydoc" version = "0.2.5" @@ -2161,14 +2330,23 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", +] + +[[package]] +name = "document-features" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" +dependencies = [ + "litrs", ] [[package]] -name = "dotenv" -version = "0.15.0" +name = "dotenvy" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "downcast-rs" @@ -2178,9 +2356,9 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtor" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e58a0764cddb55ab28955347b45be00ade43d4d6f3ba4bf3dc354e4ec9432934" +checksum = "404d02eeb088a82cfd873006cb713fe411306c7d182c344905e101fb1167d301" dependencies = [ "dtor-proc-macro", ] @@ -2228,7 +2406,7 @@ dependencies = [ "hkdf", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -2240,7 +2418,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2278,6 +2456,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "encoder-standard" version = "0.1.0" @@ -2286,6 +2470,15 @@ dependencies = [ "zstd", ] +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "endian-type" version = "0.1.2" @@ -2294,22 +2487,22 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "enum-ordinalize" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" dependencies = [ "enum-ordinalize-derive", ] [[package]] name = "enum-ordinalize-derive" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2321,7 +2514,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2332,7 +2525,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2343,9 +2536,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" dependencies = [ "serde", "serde_core", @@ -2359,7 +2552,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -2422,7 +2615,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2502,11 +2695,23 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "filetime" +version = "0.2.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.60.2", +] + [[package]] name = "find-msvc-tools" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" +checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" [[package]] name = "fixed-hash" @@ -2520,6 +2725,16 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "flate2" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2624,7 +2839,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2669,6 +2884,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + [[package]] name = "gcd" version = "2.3.0" @@ -2677,9 +2901,9 @@ checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "typenum", "version_check", @@ -2694,20 +2918,20 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "js-sys", "libc", "r-efi", - "wasi 0.14.7+wasi-0.2.4", + "wasip2", "wasm-bindgen", ] @@ -2720,7 +2944,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -2734,9 +2958,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.1" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" [[package]] name = "git-version" @@ -2755,14 +2979,14 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "glam" -version = "0.30.6" +version = "0.30.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d8e8d9db3feacb0bb4801b77e00c4d550f3e8d3e5303388fdfec3ff8a91f04d" +checksum = "bd47b05dddf0005d850e5644cae7f2b14ac3df487979dbfff3b56f20b1a6ae46" [[package]] name = "glob" @@ -2790,7 +3014,7 @@ dependencies = [ "futures-sink", "futures-timer", "futures-util", - "getrandom 0.3.3", + "getrandom 0.3.4", "no-std-compat", "nonzero_ext", "parking_lot", @@ -2824,6 +3048,25 @@ dependencies = [ "subtle", ] +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.12.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "halo2" version = "0.1.0-beta.2" @@ -3136,6 +3379,7 @@ dependencies = [ "bytes", "futures-channel", "futures-core", + "h2", "http", "http-body", "httparse", @@ -3147,6 +3391,22 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -3182,9 +3442,11 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -3199,7 +3461,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.2", ] [[package]] @@ -3213,9 +3475,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -3226,9 +3488,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -3239,11 +3501,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -3254,42 +3515,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -3341,7 +3598,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3363,9 +3620,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown 0.16.0", @@ -3383,14 +3640,17 @@ dependencies = [ ] [[package]] -name = "io-uring" -version = "0.7.10" +name = "inquire" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +checksum = "2628910d0114e9139056161d8644a2026be7b117f8498943f9437748b04c9e0a" dependencies = [ "bitflags", - "cfg-if", - "libc", + "crossterm", + "dyn-clone", + "fuzzy-matcher", + "unicode-segmentation", + "unicode-width", ] [[package]] @@ -3401,9 +3661,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "4f867b9d1d896b67beb18518eda36fdb77a32ea590de864f1325b294a6d14397" dependencies = [ "memchr", "serde", @@ -3411,9 +3671,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -3457,21 +3717,62 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" +dependencies = [ + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", + "windows-sys 0.61.2", +] + +[[package]] +name = "jiff-static" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.110", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + [[package]] name = "jobserver" version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.80" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" +checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" dependencies = [ "once_cell", "wasm-bindgen", @@ -3555,9 +3856,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" @@ -3565,6 +3866,17 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags", + "libc", + "redox_syscall", +] + [[package]] name = "libsecp256k1" version = "0.7.2" @@ -3619,17 +3931,22 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" + +[[package]] +name = "litrs" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] @@ -3671,7 +3988,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3695,15 +4012,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memmap2" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" dependencies = [ "libc", ] @@ -3730,7 +4047,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62a6a1f7141f1d9bc7a886b87536bbfc97752e08b369e1e0453a9acfab5f5da4" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.12.0", "itoa", "lockfree-object-pool", "metrics", @@ -3751,7 +4068,7 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "hashbrown 0.14.5", - "indexmap 2.11.4", + "indexmap 2.12.0", "metrics", "num_cpus", "ordered-float 4.6.0", @@ -3760,6 +4077,22 @@ dependencies = [ "sketches-ddsketch", ] +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -3767,17 +4100,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] name = "mio" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "log", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -3803,22 +4138,22 @@ dependencies = [ [[package]] name = "munge" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7feb0b48aa0a25f9fe0899482c6e1379ee7a11b24a53073eacdecb9adb6dc60" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" dependencies = [ "munge_macro", ] [[package]] name = "munge_macro" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2e3795a5d2da581a8b252fec6022eee01aea10161a4d1bf237d4cbe47f7e988" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -3870,11 +4205,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] @@ -4009,9 +4344,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" dependencies = [ "num_enum_derive", "rustversion", @@ -4019,14 +4354,14 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4056,9 +4391,9 @@ dependencies = [ [[package]] name = "nybbles" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa11e84403164a9f12982ab728f3c67c6fd4ab5b5f0254ffc217bdbd3b28ab0" +checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" dependencies = [ "alloy-rlp", "cfg-if", @@ -4070,18 +4405,18 @@ dependencies = [ [[package]] name = "objc2-core-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ "bitflags", ] [[package]] name = "objc2-io-kit" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1c64d6120e51cd86033f67176b1cb66780c2efe34dec55176f77befd93c0a" +checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" dependencies = [ "libc", "objc2-core-foundation", @@ -4089,9 +4424,18 @@ dependencies = [ [[package]] name = "object" -version = "0.36.7" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "object" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ "memchr", ] @@ -4108,9 +4452,9 @@ dependencies = [ [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "op-alloy-consensus" @@ -4119,14 +4463,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a501241474c3118833d6195312ae7eb7cc90bbb0d5f524cbb0b06619e49ff67" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "derive_more 2.0.1", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -4136,7 +4480,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14e50c94013a1d036a529df259151991dbbd6cf8dc215e3b68b784f95eec60e6" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-engine", @@ -4145,14 +4489,14 @@ dependencies = [ "ethereum_ssz_derive", "op-alloy-consensus", "snap", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "op-revm" -version = "10.0.0" +version = "10.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba21d705bbbfc947a423cba466d75e4af0c7d43ee89ba0a0f1cfa04963cede9" +checksum = "826f43a5b1613c224f561847c152bfbaefcb593a9ae2c612ff4dc4661c6e625f" dependencies = [ "auto_impl", "revm 29.0.1", @@ -4167,9 +4511,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ "bitflags", "cfg-if", @@ -4188,7 +4532,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4199,9 +4543,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -4216,7 +4560,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "bytemuck", "getrandom 0.2.16", - "getrandom 0.3.3", + "getrandom 0.3.4", "num-bigint 0.4.6", "openvm-custom-insn", "openvm-platform", @@ -4263,7 +4607,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4291,7 +4635,7 @@ dependencies = [ "num-prime", "openvm-macros-common", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4459,7 +4803,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4487,7 +4831,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "itertools 0.14.0", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4567,7 +4911,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4628,7 +4972,7 @@ source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4668,7 +5012,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4726,7 +5070,7 @@ name = "openvm-macros-common" version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -4810,7 +5154,7 @@ version = "1.4.1" source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5243,6 +5587,12 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "ordered-float" version = "2.10.1" @@ -5261,6 +5611,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "owo-colors" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" + [[package]] name = "p256" version = "0.13.2" @@ -5675,14 +6031,14 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -5690,15 +6046,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link 0.2.1", ] [[package]] @@ -5745,12 +6101,11 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.2" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" +checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" dependencies = [ "memchr", - "thiserror 2.0.16", "ucd-trie", ] @@ -5785,7 +6140,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5814,7 +6169,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5862,6 +6217,15 @@ version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "poseidon-primitives" version = "0.2.0" @@ -5879,9 +6243,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -5908,7 +6272,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -5937,7 +6301,7 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.23.6", + "toml_edit 0.23.7", ] [[package]] @@ -5959,28 +6323,27 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "bee689443a2bd0a16ab0348b52ee43e3b2d1b1f931c8aa5c9f8de4c86fbe8c40" dependencies = [ "bit-set", "bit-vec", "bitflags", - "lazy_static", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -5993,31 +6356,32 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e944464ec8536cd1beb0bbfd96987eb5e3b72f2ecdafdc5c769a37f1fa2ae1f" +checksum = "d11f2fedc3b7dafdc2851bc52f277377c5473d378859be234bc7ebb593144d01" dependencies = [ + "ar_archive_writer", "cc", ] [[package]] name = "ptr_meta" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" +checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" dependencies = [ "ptr_meta_derive", ] [[package]] name = "ptr_meta_derive" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" +checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6030,7 +6394,7 @@ dependencies = [ "libc", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "web-sys", "winapi", ] @@ -6043,9 +6407,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.40" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -6074,9 +6438,9 @@ dependencies = [ [[package]] name = "rancor" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf5f7161924b9d1cea0e4cabc97c372cea92b5f927fc13c6bca67157a0ad947" +checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" dependencies = [ "ptr_meta", ] @@ -6139,7 +6503,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "serde", ] @@ -6192,38 +6556,49 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags", ] +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.17", +] + [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -6233,9 +6608,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -6244,36 +6619,43 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "rend" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35e8a6bf28cd121053a66aa2e6a2e3eaffad4a60012179f0e864aa5ffeff215" +checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" dependencies = [ "bytecheck", ] [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64", "bytes", + "encoding_rs", + "futures-channel", "futures-core", + "futures-util", + "h2", "http", "http-body", "http-body-util", "hyper", + "hyper-rustls", "hyper-tls", "hyper-util", "js-sys", "log", + "mime", + "mime_guess", "native-tls", "percent-encoding", "pin-project-lite", @@ -6300,7 +6682,7 @@ source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73 dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-genesis", "alloy-primitives", @@ -6319,7 +6701,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-genesis", "alloy-primitives", "alloy-trie 0.9.1", @@ -6338,7 +6720,7 @@ source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73 dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -6351,7 +6733,7 @@ dependencies = [ "auto_impl", "reth-execution-types", "reth-primitives-traits", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6360,7 +6742,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "reth-chainspec", "reth-consensus", "reth-primitives-traits", @@ -6371,7 +6753,7 @@ name = "reth-db-models" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "reth-primitives-traits", ] @@ -6384,7 +6766,7 @@ dependencies = [ "reth-consensus", "reth-execution-errors", "reth-storage-errors", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6393,7 +6775,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "reth-chainspec", "reth-consensus", @@ -6421,11 +6803,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", "alloy-rpc-types-eth", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "reth-codecs", "reth-primitives-traits", "serde", @@ -6438,7 +6820,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-primitives", "auto_impl", @@ -6460,7 +6842,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", @@ -6482,9 +6864,9 @@ dependencies = [ "alloy-evm", "alloy-primitives", "alloy-rlp", - "nybbles 0.4.5", + "nybbles 0.4.6", "reth-storage-errors", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6493,7 +6875,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-primitives", "derive_more 2.0.1", @@ -6511,7 +6893,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", "url", ] @@ -6534,7 +6916,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-genesis", "alloy-primitives", "alloy-rlp", @@ -6553,7 +6935,7 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6563,7 +6945,7 @@ source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73 dependencies = [ "alloy-primitives", "derive_more 2.0.1", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6585,10 +6967,10 @@ source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73 dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-genesis", "alloy-primitives", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "auto_impl", "derive_more 2.0.1", "once_cell", @@ -6609,7 +6991,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-primitives", "alloy-rpc-types-engine", @@ -6629,7 +7011,7 @@ dependencies = [ "scroll-alloy-consensus", "scroll-alloy-evm", "scroll-alloy-hardforks", - "thiserror 2.0.16", + "thiserror 2.0.17", "tracing", ] @@ -6653,7 +7035,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", "bytes", @@ -6696,7 +7078,7 @@ dependencies = [ "reth-trie-sparse", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6716,7 +7098,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rpc-types-engine", "auto_impl", @@ -6737,7 +7119,7 @@ name = "reth-storage-errors" version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", "derive_more 2.0.1", @@ -6745,7 +7127,7 @@ dependencies = [ "reth-prune-types", "reth-static-file-types", "revm-database-interface 7.0.5", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -6754,7 +7136,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", "alloy-trie 0.9.1", @@ -6781,7 +7163,7 @@ dependencies = [ "alloy-trie 0.9.1", "derive_more 2.0.1", "itertools 0.14.0", - "nybbles 0.4.5", + "nybbles 0.4.6", "reth-primitives-traits", "revm-database 7.0.5", ] @@ -6951,7 +7333,7 @@ name = "revm-database" version = "7.0.5" source = "git+https://github.com/scroll-tech/revm#51f65cca104d85ea41125e88d58ece665d1f43c1" dependencies = [ - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "revm-bytecode 6.2.2", "revm-database-interface 7.0.5", "revm-primitives 20.2.1", @@ -7195,6 +7577,20 @@ dependencies = [ "subtle", ] +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "ripemd" version = "0.1.3" @@ -7216,19 +7612,19 @@ dependencies = [ "bincode 1.3.3", "itertools 0.14.0", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] name = "rkyv" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f5c3e5da784cd8c69d32cdc84673f3204536ca56e1fa01be31a74b92c932ac" +checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" dependencies = [ "bytecheck", "bytes", "hashbrown 0.15.5", - "indexmap 2.11.4", + "indexmap 2.12.0", "munge", "ptr_meta", "rancor", @@ -7240,13 +7636,13 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4270433626cffc9c4c1d3707dd681f2a2718d3d7b09ad754bec137acecda8d22" +checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -7283,13 +7679,14 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", + "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -7304,7 +7701,7 @@ dependencies = [ "rkyv", "rlp", "ruint-macro", - "serde", + "serde_core", "valuable", "zeroize", ] @@ -7367,18 +7764,42 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.0", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.23.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "94182ad936a0c91c324cd46c6511b9510ed16af436d7b5bab34beab0afd55f7a" dependencies = [ "zeroize", ] +[[package]] +name = "rustls-webpki" +version = "0.103.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.22" @@ -7387,9 +7808,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" dependencies = [ "fnv", "quick-error", @@ -7403,6 +7824,15 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + [[package]] name = "sbv-core" version = "2.0.0" @@ -7434,13 +7864,13 @@ version = "2.0.0" source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=master#40aed436537900b49338b37325c4444e3b408ad8" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-network", "alloy-primitives", "alloy-rpc-types-debug", "alloy-rpc-types-eth", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "auto_impl", "itertools 0.14.0", "reth-chainspec", @@ -7479,7 +7909,7 @@ dependencies = [ "sbv-helpers", "sbv-primitives", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -7495,7 +7925,7 @@ dependencies = [ "sbv-core", "sbv-primitives", "serde", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -7504,7 +7934,7 @@ version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -7521,9 +7951,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "9558e172d4e8533736ba97870c4b2cd63f84b382a3d6eb063da41b91cce17289" dependencies = [ "dyn-clone", "ref-cast", @@ -7543,10 +7973,10 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-primitives", "alloy-rlp", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "derive_more 2.0.1", "reth-codecs", "serde", @@ -7559,7 +7989,7 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-evm", "alloy-primitives", "auto_impl", @@ -7602,11 +8032,11 @@ version = "1.8.2" source = "git+https://github.com/scroll-tech/reth?branch=scroll#0e4001e46de6de73f1ebd479a228f9159f8f3721" dependencies = [ "alloy-consensus", - "alloy-eips 1.0.38", + "alloy-eips 1.1.0", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "derive_more 2.0.1", "scroll-alloy-consensus", "serde", @@ -7633,9 +8063,9 @@ dependencies = [ name = "scroll-zkvm-build-guest" version = "0.6.0" dependencies = [ - "cargo_metadata 0.19.2", + "cargo_metadata 0.23.1", "clap", - "dotenv", + "dotenvy", "eyre", "hex", "openvm-build", @@ -7692,13 +8122,15 @@ dependencies = [ "alloy-provider", "alloy-rpc-client", "alloy-transport", + "axiom-sdk", "base64", "bincode 2.0.1", "bytesize", - "cargo_metadata 0.20.0", + "cargo_metadata 0.23.1", "chrono", "clap", "csv", + "dotenvy", "eyre", "futures", "glob", @@ -7708,7 +8140,6 @@ dependencies = [ "openvm-benchmarks-prove", "openvm-benchmarks-utils", "openvm-circuit", - "openvm-native-recursion", "openvm-sdk", "rayon", "regex", @@ -7752,7 +8183,7 @@ dependencies = [ "serde", "serde_json", "serde_stacker", - "thiserror 2.0.16", + "thiserror 2.0.17", "toml", "tracing", ] @@ -7764,6 +8195,8 @@ dependencies = [ "alloy-primitives", "base64", "bincode 1.3.3", + "eyre", + "hex", "once_cell", "openvm-native-recursion", "openvm-sdk", @@ -7774,6 +8207,7 @@ dependencies = [ "scroll-zkvm-types-bundle", "scroll-zkvm-types-chunk", "serde", + "serde_json", "snark-verifier-sdk", ] @@ -7782,7 +8216,7 @@ name = "scroll-zkvm-types-base" version = "0.6.0" dependencies = [ "alloy-primitives", - "alloy-serde 1.0.38", + "alloy-serde 1.1.0", "rkyv", "serde", "sha2 0.10.9", @@ -7841,7 +8275,7 @@ dependencies = [ "scroll-zkvm-types-base", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.17", ] [[package]] @@ -7856,6 +8290,25 @@ dependencies = [ "scroll-zkvm-types-base", ] +[[package]] +name = "scroll-zkvm-upload-axiom" +version = "0.6.0" +dependencies = [ + "axiom-sdk", + "cargo_metadata 0.23.1", + "clap", + "color-eyre", + "console", + "dotenvy", + "eyre", + "hex", + "inquire", + "jiff", + "openvm-sdk", + "scroll-zkvm-types", + "serde_json", +] + [[package]] name = "scroll-zkvm-verifier" version = "0.6.0" @@ -8048,7 +8501,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8057,7 +8510,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.12.0", "itoa", "memchr", "ryu", @@ -8099,19 +8552,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "aa66c845eee442168b2c8134fec70ac50dc20e760769c8ba0ad1319ca1959b04" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.4", + "indexmap 2.12.0", "schemars 0.9.0", - "schemars 1.0.4", - "serde", - "serde_derive", + "schemars 1.1.0", + "serde_core", "serde_json", "serde_with_macros", "time", @@ -8119,14 +8571,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "b91a903660542fced4e99881aa481bdbaec1634568ee02e0b8bd57c64cb38955" dependencies = [ - "darling 0.20.11", + "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8211,6 +8663,27 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + [[package]] name = "signal-hook-registry" version = "1.4.6" @@ -8230,6 +8703,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + [[package]] name = "simdutf8" version = "0.1.5" @@ -8317,12 +8796,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -8352,15 +8831,15 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "stacker" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cddb07e32ddb770749da91081d8d0ac3a16f1a569a18b20348cd371f5dead06b" +checksum = "e1f8b29fb42aafcea4edeeb6b2f2d7ecd0d969c48b4cf0d2e64aafc471dd6e59" dependencies = [ "cc", "cfg-if", @@ -8421,7 +8900,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8434,7 +8913,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8446,7 +8925,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8468,9 +8947,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", @@ -8479,14 +8958,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "ff790eb176cc81bb8936aed0f7b9f14fc4670069a2d371b3e3b0ecce908b2cb3" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8506,7 +8985,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8523,23 +9002,54 @@ dependencies = [ "windows", ] +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", +] + [[package]] name = "tempfile" -version = "3.22.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.61.0", + "windows-sys 0.61.2", ] [[package]] @@ -8560,7 +9070,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8571,7 +9081,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "test-case-core", ] @@ -8586,11 +9096,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.17", ] [[package]] @@ -8601,18 +9111,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8635,9 +9145,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +version = "0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d" +checksum = "cd8aa5b2ab86a2cefa406d889139c162cbb230092f7d1d7cbc1716405d852a3b" dependencies = [ "cc", "libc", @@ -8645,9 +9155,9 @@ dependencies = [ [[package]] name = "tikv-jemallocator" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865" +checksum = "0359b4327f954e0567e69fb191cf1436617748813819c94b8cd4a431422d053a" dependencies = [ "libc", "tikv-jemalloc-sys", @@ -8695,9 +9205,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -8720,33 +9230,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", "socket2", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8759,6 +9266,16 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.17" @@ -8773,9 +9290,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", @@ -8807,9 +9324,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ "serde_core", ] @@ -8820,7 +9337,7 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.12.0", "serde", "serde_spanned", "toml_datetime 0.6.11", @@ -8830,21 +9347,22 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.23.6" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ - "indexmap 2.11.4", - "toml_datetime 0.7.2", + "indexmap 2.12.0", + "toml_datetime 0.7.3", "toml_parser", + "toml_writer", "winnow", ] [[package]] name = "toml_parser" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ "winnow", ] @@ -8855,6 +9373,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tower" version = "0.5.2" @@ -8919,7 +9443,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -8932,6 +9456,16 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-error" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" +dependencies = [ + "tracing", + "tracing-subscriber 0.3.20", +] + [[package]] name = "tracing-forest" version = "0.1.6" @@ -9007,9 +9541,9 @@ checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" [[package]] name = "ucd-trie" @@ -9035,11 +9569,17 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -9047,6 +9587,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -9073,6 +9619,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "unty" version = "0.0.4" @@ -9160,6 +9712,16 @@ dependencies = [ "libc", ] +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -9175,15 +9737,6 @@ version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" @@ -9195,9 +9748,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.103" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" +checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" dependencies = [ "cfg-if", "once_cell", @@ -9206,25 +9759,11 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.53" +version = "0.4.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" +checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" dependencies = [ "cfg-if", "js-sys", @@ -9235,9 +9774,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.103" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" +checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9245,22 +9784,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.103" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" +checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.110", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.103" +version = "0.2.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" +checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" dependencies = [ "unicode-ident", ] @@ -9281,9 +9820,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.80" +version = "0.3.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" +checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -9315,6 +9854,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -9328,7 +9876,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core", + "windows-core 0.61.2", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -9340,7 +9888,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -9352,8 +9900,21 @@ dependencies = [ "windows-implement", "windows-interface", "windows-link 0.1.3", - "windows-result", - "windows-strings", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", ] [[package]] @@ -9362,31 +9923,31 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", "windows-threading", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -9397,9 +9958,9 @@ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-numerics" @@ -9407,8 +9968,19 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core", + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -9420,6 +9992,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-strings" version = "0.4.2" @@ -9429,6 +10010,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -9453,16 +10043,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] name = "windows-sys" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.0", + "windows-link 0.2.1", ] [[package]] @@ -9483,19 +10073,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows-link 0.2.1", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -9515,9 +10105,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -9527,9 +10117,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -9539,9 +10129,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -9551,9 +10141,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -9563,9 +10153,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -9575,9 +10165,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -9587,9 +10177,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -9599,9 +10189,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" @@ -9620,9 +10210,9 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -9635,11 +10225,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -9647,13 +10236,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "synstructure", ] @@ -9674,7 +10263,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -9694,15 +10283,15 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", "synstructure", ] [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" dependencies = [ "zeroize_derive", ] @@ -9715,14 +10304,14 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -9731,9 +10320,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -9742,13 +10331,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.110", ] [[package]] @@ -9804,3 +10393,8 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "alloy-primitives" +version = "1.3.1" +source = "git+https://github.com/scroll-tech/alloy-core?branch=feat%2Frkyv#d748da779d515c0a8344c15e811482e254ba897f" diff --git a/Cargo.toml b/Cargo.toml index 0180f674..6a7b389e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ members = [ "crates/verifier", "crates/integration", "crates/build-guest", + "crates/tools/upload-axiom", ] resolver = "2" @@ -93,13 +94,14 @@ bitcode = { version = "0.6.5", default-features = false, features = [ ] } bincode_v1 = { version = "1.3", package = "bincode" } bincode = { version = "2.0", features = ["serde"] } -cargo_metadata = "0.20" +cargo_metadata = "0.23" clap = "4.5" c-kzg = { version = "2.0" } csv = "1.3.1" derivative = "2.2.0" ecies = { git = "https://github.com/scroll-tech/ecies-rs" } eyre = "0.6" +color-eyre = "0.6" futures = "0.3" halo2curves-axiom = { version = "0.5.3" } itertools = "0.14" @@ -131,6 +133,9 @@ sysinfo = { version = "0.35", default-features = false } bytesize = "2.0.1" url = "2.5.4" tokio = "1" +axiom-sdk = { git = "https://github.com/axiom-crypto/axiom-api-cli.git", branch = "feat/upload-exe-raw" } +dotenvy = "0.15" +jiff = "0.2" scroll-zkvm-types = { path = "crates/types" } scroll-zkvm-types-base = { path = "crates/types/base" } diff --git a/Makefile b/Makefile index a670e97f..33edf133 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,9 @@ $(SRS_PARAMS_DIR)/%.srs: download-release: sh download-release.sh +upload-release: + @cargo run --bin scroll-zkvm-upload-axiom + fmt: @cargo fmt --all @@ -87,6 +90,9 @@ test-execute-validium-e2e: test-single-chunk: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit setup_prove_verify_single -- --exact --nocapture +test-axiom-single-chunk: + @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit setup_axiom_prove_verify_single -- --exact --nocapture + test-multi-chunk: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test chunk_circuit setup_prove_verify_multi -- --exact --nocapture @@ -96,6 +102,9 @@ test-single-batch: test-e2e-batch: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit e2e -- --exact --nocapture +test-axiom-e2e-batch: + @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test batch_circuit axiom_e2e -- --exact --nocapture + test-bundle: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test bundle_circuit setup_prove_verify -- --exact --nocapture @@ -104,3 +113,6 @@ test-bundle-local: test-e2e-bundle: @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test bundle_circuit e2e -- --exact --nocapture + +test-axiom-e2e-bundle: + @cargo test $(CARGO_CONFIG_FLAG) --release -p scroll-zkvm-integration --test bundle_circuit axiom_e2e -- --exact --nocapture diff --git a/crates/build-guest/Cargo.toml b/crates/build-guest/Cargo.toml index 65bcde88..6acba274 100644 --- a/crates/build-guest/Cargo.toml +++ b/crates/build-guest/Cargo.toml @@ -18,8 +18,8 @@ serde_json.workspace = true snark-verifier-sdk.workspace = true toml.workspace = true -cargo_metadata = "0.19.1" -dotenv = "0.15.0" +cargo_metadata.workspace = true +dotenvy.workspace = true clap = { version = "4.0", features = ["derive"] } [features] diff --git a/crates/build-guest/src/main.rs b/crates/build-guest/src/main.rs index f521d251..964e3409 100644 --- a/crates/build-guest/src/main.rs +++ b/crates/build-guest/src/main.rs @@ -32,16 +32,8 @@ //! - OpenVM assets: `releases/dev/verifier/` //! - Commitment files: Written to respective circuit crate directories -use std::{ - env, - fs::read_to_string, - path::{Path, PathBuf}, - sync::Arc, - time::Instant, -}; - use clap::{Parser, ValueEnum}; -use dotenv::dotenv; +use dotenvy::dotenv; use eyre::Result; use openvm_build::GuestOptions; use openvm_instructions::exe::VmExe; @@ -56,6 +48,12 @@ use openvm_sdk::{ use openvm_stark_sdk::p3_bn254_fr::Bn254Fr; use scroll_zkvm_types::zkvm::AGG_STARK_PROVING_KEY; use snark_verifier_sdk::snark_verifier::loader::evm::compile_solidity; +use std::{ + env, fs, + path::{Path, PathBuf}, + sync::Arc, + time::Instant, +}; mod verifier; @@ -93,9 +91,9 @@ fn write_commitment(output_path: &PathBuf, commitment: [u32; DIGEST_SIZE]) -> Re "#![cfg_attr(rustfmt, rustfmt_skip)]\n//! Generated by crates/build-guest. DO NOT EDIT!\n\npub const COMMIT: [u32; {DIGEST_SIZE}] = {commitment:?};\n" ); if let Some(parent) = output_path.parent() { - std::fs::create_dir_all(parent)?; + fs::create_dir_all(parent)?; } - std::fs::write(output_path, content)?; + fs::write(output_path, content)?; println!("{LOG_PREFIX} Wrote commitment to {}", output_path.display()); @@ -114,9 +112,9 @@ fn write_commitment_as_evm_hex( .rev() // To big endian .collect::>(); if let Some(parent) = output_path.parent() { - std::fs::create_dir_all(parent)?; + fs::create_dir_all(parent)?; } - std::fs::write(output_path, hex::encode(digest_bytes))?; + fs::write(output_path, hex::encode(digest_bytes))?; println!("{LOG_PREFIX} Wrote commitment to {}", output_path.display()); Ok(()) } @@ -139,7 +137,7 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re println!("{LOG_PREFIX} Projects to build: {:?}", projects_to_build); - let mut vk_dump: serde_json::Value = serde_json::from_str("{}").unwrap(); + let mut vk_dump: serde_json::Value = serde_json::from_str("{}")?; for project_name in projects_to_build { let project_path = workspace_dir .join("crates") @@ -155,18 +153,18 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re // First read the app config specified in the project's root directory. let path_app_config = Path::new(project_dir).join(FD_APP_CONFIG); let app_config: AppConfig = - toml::from_str(&read_to_string(&path_app_config).unwrap()).unwrap(); + toml::from_str(&fs::read_to_string(&path_app_config)?)?; println!( "{project_dir} app config: {}", - toml::to_string_pretty(&app_config).unwrap() + toml::to_string_pretty(&app_config)? ); // copy path_app_config as ${release_output_dir}/${project_name}/${FD_APP_CONFIG} let output_path = release_output_dir.join(project_name).join(FD_APP_CONFIG); if let Some(parent) = output_path.parent() { - std::fs::create_dir_all(parent)?; + fs::create_dir_all(parent)?; } - std::fs::copy(&path_app_config, &output_path)?; + fs::copy(&path_app_config, &output_path)?; println!("{LOG_PREFIX} Copied config to {}", output_path.display()); // 1. Build ELF @@ -202,12 +200,21 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re original_dir.display() ); + // Create the assets dir if not already present. + let path_assets = Path::new(release_output_dir).join(project_name); + fs::create_dir_all(&path_assets)?; + let elf_src = workspace_dir + .join("target") + .join("riscv32im-risc0-zkvm-elf") + .join("maxperf") + .join(format!("scroll-zkvm-{project_name}-circuit")); + let path_app_elf: PathBuf = path_assets.join("app.elf"); + fs::copy(&elf_src, &path_app_elf)?; + println!("{LOG_PREFIX} elf written to {path_app_elf:?}"); + // 2. Transpile ELF to VM Executable let app_exe: VmExe = (*sdk.convert_to_exe(elf)?).clone(); - // Create the assets dir if not already present. - let path_assets = Path::new(release_output_dir).join(project_name); - std::fs::create_dir_all(&path_assets)?; // Write exe to disc. let path_app_exe: PathBuf = path_assets.join("app.vmexe"); write_object_to_file(&path_app_exe, app_exe.clone())?; @@ -261,9 +268,9 @@ fn generate_app_assets(workspace_dir: &Path, release_output_dir: &PathBuf) -> Re let output_path = release_output_dir.join("verifier").join("openVmVk.json"); if let Some(parent) = output_path.parent() { - std::fs::create_dir_all(parent)?; + fs::create_dir_all(parent)?; } - let f = std::fs::File::create(output_path)?; + let f = fs::File::create(output_path)?; serde_json::to_writer(f, &vk_dump)?; println!( "{LOG_PREFIX} openVmVk.json: {}", @@ -290,8 +297,8 @@ fn generate_root_verifier(workspace_dir: &Path, force_overwrite: bool) -> Result return Ok(()); } - let asm = openvm_sdk::Sdk::riscv32().generate_root_verifier_asm(); - std::fs::write(&root_verifier_path, asm).expect("fail to write"); + let asm = Sdk::riscv32().generate_root_verifier_asm(); + fs::write(&root_verifier_path, asm).expect("fail to write"); println!( "{LOG_PREFIX} Root verifier generated at: {}", @@ -312,7 +319,7 @@ fn generate_evm_verifier( let path_root_agg_pk = verifier_output_dir.join("root_verifier_vk"); if force_overwrite || !path_root_agg_pk.exists() { - openvm_sdk::fs::write_object_to_file(&path_root_agg_pk, AGG_STARK_PROVING_KEY.get_agg_vk()) + write_object_to_file(&path_root_agg_pk, AGG_STARK_PROVING_KEY.get_agg_vk()) .expect("fail to write"); } @@ -325,7 +332,7 @@ fn generate_evm_verifier( } if let Some(parent) = path_verifier_bin.parent() { - std::fs::create_dir_all(parent)?; + fs::create_dir_all(parent)?; } let verifier_sol = if recompute_mode { @@ -333,11 +340,11 @@ fn generate_evm_verifier( } else { verifier::download_evm_verifier()? }; - std::fs::write(&path_verifier_sol, &verifier_sol)?; + fs::write(&path_verifier_sol, &verifier_sol)?; println!("{LOG_PREFIX} verifier_sol written to {path_verifier_sol:?}"); let verifier_bin = compile_solidity(&verifier_sol); - std::fs::write(&path_verifier_bin, &verifier_bin)?; + fs::write(&path_verifier_bin, &verifier_bin)?; println!("{LOG_PREFIX} verifier_bin written to {path_verifier_bin:?}"); Ok(()) @@ -375,8 +382,8 @@ pub fn main() -> Result<()> { let workspace_dir = metadata.workspace_root.into_std_path_buf(); println!("{LOG_PREFIX} Workspace root: {}", workspace_dir.display()); - let release_output_dir: std::path::PathBuf = workspace_dir.join("releases").join(&cli.output); - std::fs::create_dir_all(&release_output_dir)?; + let release_output_dir: PathBuf = workspace_dir.join("releases").join(&cli.output); + fs::create_dir_all(&release_output_dir)?; println!( "{LOG_PREFIX} Release output directory: {}", release_output_dir.display() diff --git a/crates/circuits/batch-circuit/batch_exe_commit.rs b/crates/circuits/batch-circuit/batch_exe_commit.rs index 31ba7cf6..a195853e 100644 --- a/crates/circuits/batch-circuit/batch_exe_commit.rs +++ b/crates/circuits/batch-circuit/batch_exe_commit.rs @@ -1,4 +1,4 @@ #![cfg_attr(rustfmt, rustfmt_skip)] //! Generated by crates/build-guest. DO NOT EDIT! -pub const COMMIT: [u32; 8] = [1649793006, 453918448, 700472053, 1708688727, 1956651385, 1452705656, 611459631, 1820274171]; +pub const COMMIT: [u32; 8] = [169613029, 1512041042, 1908768371, 1004859199, 1983914774, 43222473, 909835658, 1213866356]; diff --git a/crates/circuits/bundle-circuit/bundle_exe_commit.rs b/crates/circuits/bundle-circuit/bundle_exe_commit.rs index 527a5026..b7c30655 100644 --- a/crates/circuits/bundle-circuit/bundle_exe_commit.rs +++ b/crates/circuits/bundle-circuit/bundle_exe_commit.rs @@ -1,4 +1,4 @@ #![cfg_attr(rustfmt, rustfmt_skip)] //! Generated by crates/build-guest. DO NOT EDIT! -pub const COMMIT: [u32; 8] = [2012351307, 1390891344, 349217220, 1980321794, 92671869, 1673212720, 1290433404, 1552447571]; +pub const COMMIT: [u32; 8] = [1143263794, 1642021020, 1910803054, 330372631, 762840128, 1706047354, 1086014054, 673751013]; diff --git a/crates/circuits/chunk-circuit/chunk_exe_commit.rs b/crates/circuits/chunk-circuit/chunk_exe_commit.rs index 70205ab2..1566820c 100644 --- a/crates/circuits/chunk-circuit/chunk_exe_commit.rs +++ b/crates/circuits/chunk-circuit/chunk_exe_commit.rs @@ -1,4 +1,4 @@ #![cfg_attr(rustfmt, rustfmt_skip)] //! Generated by crates/build-guest. DO NOT EDIT! -pub const COMMIT: [u32; 8] = [534218310, 1811212981, 1016259372, 652600422, 1802874675, 1341042917, 594473376, 479497145]; +pub const COMMIT: [u32; 8] = [72552249, 89910939, 1705051041, 1391470268, 810063640, 1213504996, 1356511642, 617368080]; diff --git a/crates/circuits/chunk-circuit/openvm.toml b/crates/circuits/chunk-circuit/openvm.toml index 4e99c1cb..c1463017 100644 --- a/crates/circuits/chunk-circuit/openvm.toml +++ b/crates/circuits/chunk-circuit/openvm.toml @@ -18,9 +18,9 @@ range_tuple_checker_sizes = [256, 8192] [app_vm_config.modular] supported_moduli = [ - "21888242871839275222246405745257275088696311157297823662689037894645226208583", - "21888242871839275222246405745257275088548364400416034343698204186575808495617", - "115792089237316195423570985008687907853269984665640564039457584007908834671663", + "21888242871839275222246405745257275088696311157297823662689037894645226208583", + "21888242871839275222246405745257275088548364400416034343698204186575808495617", + "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "115792089210356248762697446949407573530086143415290314195533631308867097853951", "115792089210356248762697446949407573529996955224135760342422259061068512044369" diff --git a/crates/integration/Cargo.toml b/crates/integration/Cargo.toml index 117e6605..7c4d2857 100644 --- a/crates/integration/Cargo.toml +++ b/crates/integration/Cargo.toml @@ -27,7 +27,6 @@ openvm-benchmarks-prove = { workspace = true, default-features = false } openvm-benchmarks-utils = { workspace = true, default-features = false } openvm-circuit.workspace = true openvm-sdk = { workspace = true, default-features = false } -openvm-native-recursion = { workspace = true, default-features = false } alloy-provider = { workspace = true } alloy-rpc-client.workspace = true @@ -60,6 +59,8 @@ regex = "1.11.1" sysinfo = { workspace = true, features = ["system"] } bytesize.workspace = true url.workspace = true +axiom-sdk.workspace = true +dotenvy.workspace = true [dev-dependencies] glob = "0.3" diff --git a/crates/integration/src/axiom.rs b/crates/integration/src/axiom.rs new file mode 100644 index 00000000..1dbfbb8d --- /dev/null +++ b/crates/integration/src/axiom.rs @@ -0,0 +1,164 @@ +use super::TaskProver; +use axiom_sdk::build::BuildSdk; +use axiom_sdk::config::ConfigSdk; +use axiom_sdk::input::Input; +use axiom_sdk::prove::{ProveArgs, ProveSdk}; +use axiom_sdk::{AxiomConfig, AxiomSdk, ProgressCallback, ProofType, SaveOption}; +use chrono::DateTime; +use openvm_sdk::commit::CommitBytes; +use openvm_sdk::types::{EvmProof, VersionedVmStarkProof}; +use scroll_zkvm_types::ProvingTask as UniversalProvingTask; +use scroll_zkvm_types::proof::ProofEnum; +use scroll_zkvm_types::types_agg::ProgramCommitment; +use scroll_zkvm_types::utils::serialize_vk; +use std::env; + +pub struct AxiomProver { + name: String, + sdk: AxiomSdk, + program_id: String, +} + +struct TracingProgressCallback; + +impl AxiomProver { + /// Create a new client + pub fn from_env(name: String, config_id: String, program_id: String) -> Self { + let api_key = env::var("AXIOM_API_KEY").expect("AXIOM_API_KEY env var is required"); + let config = AxiomConfig { + api_key: Some(api_key), + config_id: Some(config_id), + ..Default::default() + }; + let sdk = AxiomSdk::new(config).with_callback(TracingProgressCallback); + Self { + name, + sdk, + program_id, + } + } + + pub fn get_app_commitment(&mut self) -> eyre::Result { + let vm_commitment = self.sdk.get_vm_config_metadata(None)?.app_vm_commit; + let vm_commitment: [u8; _] = hex::decode(vm_commitment)?.try_into().unwrap(); + let app_exe_commit: [u8; _] = self + .sdk + .get_app_exe_commit(&self.program_id)? + .try_into() + .unwrap(); + + let exe = CommitBytes::new(app_exe_commit).to_u32_digest(); + let vm = CommitBytes::new(vm_commitment).to_u32_digest(); + + Ok(ProgramCommitment { exe, vm }) + } +} + +impl TaskProver for AxiomProver { + fn name(&self) -> &str { + &self.name + } + + fn prove_task(&mut self, t: &UniversalProvingTask, gen_snark: bool) -> eyre::Result { + let input = serde_json::to_value(t.build_openvm_input())?; + + let proof_type = if gen_snark { + ProofType::Evm + } else { + ProofType::Stark + }; + + let job_id = self.sdk.generate_new_proof(ProveArgs { + program_id: Some(self.program_id.clone()), + input: Some(Input::Value(input)), + proof_type: Some(proof_type), + num_gpus: None, + priority: None, + })?; + + let status = self.sdk.wait_for_proof_completion(&job_id, false)?; + if status.state.as_str() != "Succeeded" { + return Err(eyre::eyre!( + "Proof generation failed with status: {}", + status.state + )); + } + tracing::info!(name: "wait_for_proof_completion", "{status:#?}"); + + let cycles = status.num_instructions.unwrap(); + let launched_at = DateTime::parse_from_rfc3339(status.launched_at.as_deref().unwrap())?; + let terminated_at = DateTime::parse_from_rfc3339(status.terminated_at.as_deref().unwrap())?; + let duration = terminated_at + .signed_duration_since(launched_at) + .as_seconds_f64(); + let mhz = cycles as f64 / duration / 1e6f64; + tracing::info!("Proof generated in {duration:.2} seconds: {mhz:.2} MHz"); + + let proof_bytes = + self.sdk + .get_generated_proof(&status.id, &proof_type, SaveOption::DoNotSave)?; + + match proof_type { + ProofType::Stark => { + let proof: VersionedVmStarkProof = serde_json::from_slice(&proof_bytes)?; + Ok(ProofEnum::Stark( + proof.try_into().expect("Failed to convert to StarkProof"), + )) + } + ProofType::Evm => { + let proof: EvmProof = serde_json::from_slice(&proof_bytes)?; + Ok(ProofEnum::Evm(proof.into())) + } + } + } + + fn get_vk(&mut self) -> eyre::Result> { + Ok(serialize_vk::serialize(&self.get_app_commitment()?)) + } +} + +impl ProgressCallback for TracingProgressCallback { + fn on_header(&self, text: &str) { + tracing::info!("{text}"); + } + + fn on_success(&self, text: &str) { + tracing::info!("{text}"); + } + + fn on_info(&self, text: &str) { + tracing::info!("{text}"); + } + + fn on_warning(&self, text: &str) { + tracing::warn!("{text}"); + } + + fn on_error(&self, text: &str) { + tracing::error!("{text}"); + } + + fn on_section(&self, title: &str) { + tracing::info!("{title}:"); + } + + fn on_field(&self, key: &str, value: &str) { + tracing::info!(" {key}: {value}"); + } + + fn on_status(&self, text: &str) { + tracing::info!("status={text}"); + } + + fn on_progress_start(&self, _message: &str, _total: Option) {} + + fn on_progress_update(&self, _current: u64) {} + + fn on_progress_update_message(&self, _message: &str) {} + + fn on_progress_finish(&self, _message: &str) {} + + fn on_clear_line(&self) {} + + fn on_clear_line_and_reset(&self) {} +} diff --git a/crates/integration/src/bin/chunk-benchmark.rs b/crates/integration/src/bin/chunk-benchmark.rs index abf5256b..618fd5b8 100644 --- a/crates/integration/src/bin/chunk-benchmark.rs +++ b/crates/integration/src/bin/chunk-benchmark.rs @@ -11,12 +11,11 @@ use clap::Parser; use openvm_benchmarks_prove::util::BenchmarkCli; use openvm_benchmarks_utils::build_elf; use openvm_circuit::openvm_stark_sdk::bench::run_with_metric_collection; -use openvm_sdk::StdIn; use openvm_sdk::config::{SdkVmBuilder, SdkVmConfig}; use scroll_zkvm_integration::testers::chunk::{ ChunkProverTester, get_witness_from_env_or_builder, preset_chunk, }; -use scroll_zkvm_integration::{DIR_TESTRUN, PartialProvingTask, ProverTester, WORKSPACE_ROOT}; +use scroll_zkvm_integration::{DIR_TESTRUN, ProverTester, WORKSPACE_ROOT}; use std::{env, fs}; fn main() -> eyre::Result<()> { @@ -50,12 +49,14 @@ fn main() -> eyre::Result<()> { )?; env::set_current_dir(current_dir)?; - let mut stdin = StdIn::default(); - let wit = get_witness_from_env_or_builder(&mut preset_chunk())?; - wit.write_guest_input(&mut stdin)?; run_with_metric_collection("OUTPUT_PATH", || { - args.bench_from_exe::("chunk-circuit", app_vm_config, elf, stdin) + args.bench_from_exe::( + "chunk-circuit", + app_vm_config, + elf, + ChunkProverTester::build_guest_input(&wit, std::iter::empty())?, + ) }) } diff --git a/crates/integration/src/lib.rs b/crates/integration/src/lib.rs index 09dae8fe..4c2fadb4 100644 --- a/crates/integration/src/lib.rs +++ b/crates/integration/src/lib.rs @@ -1,3 +1,4 @@ +use crate::axiom::AxiomProver; use cargo_metadata::MetadataCommand; use once_cell::sync::OnceCell; use openvm_sdk::StdIn; @@ -7,12 +8,14 @@ use scroll_zkvm_prover::{ utils::{read_json, vm::ExecutionResult, write_json}, }; use scroll_zkvm_types::{ + ProvingTask as UniversalProvingTask, proof::{EvmProof, ProofEnum, StarkProof}, public_inputs::{ForkName, Version}, types_agg::ProgramCommitment, utils::serialize_vk, }; use scroll_zkvm_verifier::verifier::{AGG_STARK_PROVING_KEY, UniversalVerifier}; +use std::collections::HashMap; use std::{ path::{Path, PathBuf}, process, @@ -25,6 +28,8 @@ pub mod testers; pub mod utils; +mod axiom; + /// Directory to store proofs on disc. const DIR_PROOFS: &str = "proofs"; @@ -54,9 +59,11 @@ pub fn testing_version_validium() -> Version { /// Read the 'GUEST_VERSION' from the environment variable. /// If not existed, return "dev" as default /// The returned value will be used to locate asset files: $workspace/releases/$guest_version -pub fn guest_version() -> String { - std::env::var("GUEST_VERSION").unwrap_or_else(|_| "dev".to_string()) -} +pub static GUEST_VERSION: LazyLock<&str> = LazyLock::new(|| { + let ver = std::env::var("GUEST_VERSION").unwrap_or_else(|_| "dev".to_string()); + eprintln!("GUEST_VERSION = {ver}"); + Box::leak(ver.into_boxed_str()) +}); pub static WORKSPACE_ROOT: LazyLock<&Path> = LazyLock::new(|| { let path = MetadataCommand::new() @@ -69,14 +76,38 @@ pub static WORKSPACE_ROOT: LazyLock<&Path> = LazyLock::new(|| { Box::leak(path.into_boxed_path()) }); +pub static ASSET_BASE_DIR: LazyLock = LazyLock::new(|| { + let path = WORKSPACE_ROOT.join("releases").join(*GUEST_VERSION); + eprintln!("ASSET_BASE_DIR = {}", path.display()); + path +}); + /// Path to store release assets, root directory of zkvm-prover repository. -static DIR_OUTPUT: LazyLock<&Path> = LazyLock::new(|| { +pub static DIR_OUTPUT: LazyLock<&Path> = LazyLock::new(|| { let path = WORKSPACE_ROOT.join(".output"); std::fs::create_dir_all(&path).expect("failed to create output directory"); eprintln!("DIR_OUTPUT = {}", path.display()); Box::leak(path.into_boxed_path()) }); +pub static PROGRAM_COMMITMENTS: LazyLock> = + LazyLock::new(|| { + let mut commitments = + load_program_commitments().expect("failed to load program commitments"); + commitments.shrink_to_fit(); + eprintln!("PROGRAM_COMMITMENTS = {commitments:#?}"); + commitments + }); + +pub static AXIOM_PROGRAM_IDS: LazyLock> = LazyLock::new(|| { + let axiom_program_ids = ASSET_BASE_DIR.join("axiom_program_ids.json"); + let mut program_ids: HashMap = + read_json(&axiom_program_ids).expect("failed to read axiom program ids"); + program_ids.shrink_to_fit(); + eprintln!("AXIOM_PROGRAM_IDS = {program_ids:#?}"); + program_ids +}); + /// Every test run will write assets to a new directory. /// /// Possibly one of the following: @@ -91,19 +122,18 @@ pub trait PartialProvingTask: serde::Serialize { fn legacy_rkyv_archive(&self) -> eyre::Result>; - fn write_guest_input(&self, stdin: &mut StdIn) -> eyre::Result<()> + fn archive(&self) -> eyre::Result> where Self: Sized, { - let bytes: Vec = match guest_version().as_str() { + let bytes: Vec = match GUEST_VERSION.as_ref() { "0.5.2" => self.legacy_rkyv_archive()?, _ => { let config = bincode::config::standard(); bincode::serde::encode_to_vec(self, config)? } }; - stdin.write_bytes(&bytes); - Ok(()) + Ok(bytes) } } @@ -126,6 +156,8 @@ pub trait ProverTester { /// Setup directory structure for the test suite. fn setup(setup_logger: bool) -> eyre::Result<()> { + dotenvy::dotenv().ok(); + // Setup tracing subscriber. if setup_logger { crate::setup_logger()?; @@ -159,10 +191,8 @@ pub trait ProverTester { /// Load the app config. fn load() -> eyre::Result<(PathBuf, PathBuf)> { - let assets_version = guest_version(); - let release_dir = WORKSPACE_ROOT.join("releases").join(assets_version); - let path_app_config = release_dir.join(Self::NAME).join(FD_APP_CONFIG); - let path_app_exe = release_dir.join(Self::NAME).join(FD_APP_EXE); + let path_app_config = ASSET_BASE_DIR.join(Self::NAME).join(FD_APP_CONFIG); + let path_app_exe = ASSET_BASE_DIR.join(Self::NAME).join(FD_APP_EXE); Ok((path_app_config, path_app_exe)) } @@ -180,14 +210,28 @@ pub trait ProverTester { let config = scroll_zkvm_prover::ProverConfig { path_app_exe, path_app_config, - is_openvm_v13: guest_version() == "0.5.2", + is_openvm_v13: *GUEST_VERSION == "0.5.2", ..Default::default() }; - let prover = scroll_zkvm_prover::Prover::setup(config, Some(Self::NAME))?; + let prover = Prover::setup(config, Some(Self::NAME))?; Ok(prover) } + /// Load the axiom program prover + fn load_axiom_prover() -> eyre::Result { + let program_id = AXIOM_PROGRAM_IDS + .get(Self::NAME) + .ok_or_else(|| eyre::eyre!("missing axiom program id for {}", Self::NAME))? + .to_string(); + let prover = AxiomProver::from_env( + Self::NAME.to_string(), + scroll_zkvm_types::axiom::get_config_id(Self::NAME).to_string(), + program_id, + ); + Ok(prover) + } + /// File descriptor for the proof saved to disc. #[instrument("Prover::fd_proof", skip_all, fields(task_id = task.identifier(), path_proof))] fn fd_proof(task: &impl PartialProvingTask) -> String { @@ -195,22 +239,53 @@ pub trait ProverTester { path_proof } + fn build_universal_task<'a>( + witness: &Self::Witness, + aggregated_proofs: impl Iterator, + ) -> eyre::Result { + Ok(UniversalProvingTask { + serialized_witness: vec![witness.archive()?], + aggregated_proofs: aggregated_proofs.cloned().collect(), + fork_name: witness.fork_name().as_str().to_string(), + identifier: witness.identifier(), + vk: Default::default(), + }) + } + fn build_guest_input<'a>( witness: &Self::Witness, aggregated_proofs: impl Iterator, ) -> eyre::Result { - use openvm_native_recursion::hints::Hintable; + use scroll_zkvm_prover::task::ProvingTask; + Ok(Self::build_universal_task(witness, aggregated_proofs)?.build_guest_input()) + } +} - let mut stdin = StdIn::default(); - witness.write_guest_input(&mut stdin)?; +pub trait TaskProver { + fn name(&self) -> &str; + fn prove_task(&mut self, t: &UniversalProvingTask, gen_snark: bool) -> eyre::Result; + fn get_vk(&mut self) -> eyre::Result>; +} - for proof in aggregated_proofs { - let streams = proof.proofs[0].write(); - for s in &streams { - stdin.write_field(s); - } +impl TaskProver for Prover { + fn name(&self) -> &str { + self.prover_name.as_str() + } + + fn prove_task(&mut self, t: &UniversalProvingTask, gen_snark: bool) -> eyre::Result { + use scroll_zkvm_prover::task::ProvingTask; + let stdin = t.build_guest_input(); + if !gen_snark { + // gen stark proof + Ok(self.gen_proof_stark(stdin)?.into()) + } else { + let proof: EvmProof = self.gen_proof_snark(stdin)?.into(); + Ok(proof.into()) } - Ok(stdin) + } + + fn get_vk(&mut self) -> eyre::Result> { + Ok(self.get_app_vk()) } } @@ -295,9 +370,9 @@ pub fn tester_execute( } /// End-to-end test for proving witnesses of the same prover. -#[instrument(name = "prove_verify", skip_all, fields(task_id, prover_name = prover.prover_name))] +#[instrument(name = "prove_verify", skip_all, fields(task_id, prover_name = prover.name()))] pub fn prove_verify( - prover: &mut Prover, + prover: &mut impl TaskProver, witness: &T::Witness, proofs: &[ProofEnum], ) -> eyre::Result { @@ -308,7 +383,7 @@ pub fn prove_verify( .join(T::DIR_ASSETS) .join(DIR_PROOFS); std::fs::create_dir_all(&cache_dir)?; - let vk = prover.get_app_vk(); + let vk = prover.get_vk()?; // Try reading proof from cache if available, and early return in that case. let task_id = witness.identifier(); @@ -320,14 +395,14 @@ pub fn prove_verify( tracing::debug!(name: "early_return_proof", ?task_id); proof } else { - let stdin = T::build_guest_input( + let task = T::build_universal_task( witness, proofs .iter() .map(|p| p.as_stark_proof().expect("must be stark proof")), )?; // Construct stark proof for the circuit. - let proof = prover.gen_proof_stark(stdin)?.into(); + let proof = prover.prove_task(&task, false)?; write_json(&path_proof, &proof)?; tracing::debug!(name: "cached_proof", ?task_id); @@ -347,7 +422,7 @@ pub fn prove_verify( /// End-to-end test for a single proving task to generate an EVM-verifiable SNARK proof. #[instrument(name = "prove_verify_single_evm", skip_all)] pub fn prove_verify_single_evm( - prover: &mut Prover, + prover: &mut impl TaskProver, witness: &T::Witness, proofs: &[ProofEnum], ) -> eyre::Result @@ -363,11 +438,8 @@ where std::fs::create_dir_all(&cache_dir)?; // Dump verifier-only assets to disk. - let path_verifier_dir = WORKSPACE_ROOT - .join("releases") - .join(guest_version()) - .join("verifier"); - let verifier = scroll_zkvm_verifier::verifier::UniversalVerifier::setup(&path_verifier_dir)?; + let path_verifier_dir = ASSET_BASE_DIR.join("verifier"); + let verifier = UniversalVerifier::setup(&path_verifier_dir)?; // Try reading proof from cache if available, and early return in that case. let task_id = witness.identifier(); @@ -379,20 +451,20 @@ where tracing::debug!(name: "early_return_evm_proof", ?task_id); proof } else { - let stdin = T::build_guest_input( + let task = T::build_universal_task( witness, proofs .iter() .map(|p| p.as_stark_proof().expect("must be stark proof")), )?; // Construct stark proof for the circuit. - let proof: EvmProof = prover.gen_proof_snark(stdin)?.into(); + let proof = prover.prove_task(&task, true)?; write_json(&path_proof, &proof)?; tracing::debug!(name: "cached_evm_proof", ?task_id); - proof.into() + proof }; - let vk = prover.get_app_vk(); + let vk = prover.get_vk()?; // Verify proof. verifier.verify_evm_proof( &proof @@ -406,25 +478,23 @@ where Ok(proof) } -pub fn load_program_commitments(program: &str) -> eyre::Result { +fn load_program_commitments() -> eyre::Result> { use base64::{Engine, prelude::BASE64_STANDARD}; - let file_path = WORKSPACE_ROOT - .join("releases") - .join(guest_version()) - .join("verifier") - .join("openVmVk.json"); - let json_value: serde_json::Value = { + let file_path = ASSET_BASE_DIR.join("verifier").join("openVmVk.json"); + let commitments: HashMap = { let file = std::fs::File::open(&file_path)?; serde_json::from_reader(file)? }; - let commitment_string = json_value[&format!("{}_vk", program)] - .as_str() - .ok_or_else(|| eyre::eyre!("Missing or invalid program commitment for {}", program))?; - let commitment_bytes = hex::decode(commitment_string) - .or_else(|_| BASE64_STANDARD.decode(commitment_string)) - .map_err(|_| eyre::eyre!("Failed to decode program commitment for {}", program))?; - let commitment = serialize_vk::deserialize(&commitment_bytes); - Ok(commitment) + let mut result = HashMap::new(); + for (program, commitment_string) in commitments { + let program = program.strip_suffix("_vk").unwrap().to_string(); + let commitment_bytes = hex::decode(&commitment_string) + .or_else(|_| BASE64_STANDARD.decode(commitment_string)) + .map_err(|_| eyre::eyre!("Failed to decode program commitment for {}", program))?; + let commitment = serialize_vk::deserialize(&commitment_bytes); + result.insert(program, commitment); + } + Ok(result) } #[test] diff --git a/crates/integration/src/testers/batch.rs b/crates/integration/src/testers/batch.rs index 1494f3a9..6c30dbd9 100644 --- a/crates/integration/src/testers/batch.rs +++ b/crates/integration/src/testers/batch.rs @@ -1,4 +1,3 @@ -use scroll_zkvm_prover::Prover; use scroll_zkvm_types::{ batch::{BatchHeader, BatchInfo, BatchWitness, LegacyBatchWitness, ReferenceHeader}, chunk::ChunkInfo, @@ -8,7 +7,7 @@ use scroll_zkvm_types::{ }; use crate::{ - PartialProvingTask, ProverTester, load_program_commitments, prove_verify, + PROGRAM_COMMITMENTS, PartialProvingTask, ProverTester, TaskProver, prove_verify, testers::chunk::{ChunkTaskGenerator, preset_chunk_multiple, preset_chunk_validium}, utils::{build_batch_witnesses, build_batch_witnesses_validium}, }; @@ -79,8 +78,8 @@ impl BatchTaskGenerator { pub fn get_or_build_proof( &mut self, - prover: &mut Prover, - child_prover: &mut Prover, + prover: &mut impl TaskProver, + child_prover: &mut impl TaskProver, ) -> eyre::Result { if let Some(proof) = &self.proof { return Ok(proof.clone()); @@ -94,7 +93,7 @@ impl BatchTaskGenerator { pub fn get_or_build_child_proofs( &mut self, - child_prover: &mut Prover, + child_prover: &mut impl TaskProver, ) -> eyre::Result> { let mut proofs = Vec::new(); for chunk_gen in &mut self.chunk_generators { @@ -116,7 +115,7 @@ impl BatchTaskGenerator { .map(|g| g.get_or_build_witness()) .collect::>>()?; - let commitment = load_program_commitments("chunk")?; + let commitment = PROGRAM_COMMITMENTS["chunk"]; let ret_wit = if chunks .first() diff --git a/crates/integration/src/testers/bundle.rs b/crates/integration/src/testers/bundle.rs index 3f320477..c957410b 100644 --- a/crates/integration/src/testers/bundle.rs +++ b/crates/integration/src/testers/bundle.rs @@ -6,10 +6,8 @@ use scroll_zkvm_types::{ }; // Only related to hardcoded commitments. Can be refactored later. -use scroll_zkvm_prover::Prover; - use crate::{ - PartialProvingTask, ProverTester, load_program_commitments, prove_verify_single_evm, + PROGRAM_COMMITMENTS, PartialProvingTask, ProverTester, TaskProver, prove_verify_single_evm, testers::batch::BatchTaskGenerator, utils::metadata_from_batch_witnesses, }; @@ -66,9 +64,9 @@ impl BundleTaskGenerator { pub fn get_or_build_proof( &mut self, - prover: &mut Prover, - batch_prover: &mut Prover, - chunk_prover: &mut Prover, + prover: &mut impl TaskProver, + batch_prover: &mut impl TaskProver, + chunk_prover: &mut impl TaskProver, ) -> eyre::Result { if let Some(proof) = &self.proof { return Ok(proof.clone()); @@ -82,8 +80,8 @@ impl BundleTaskGenerator { fn get_or_build_child_proofs( &mut self, - batch_prover: &mut Prover, - chunk_prover: &mut Prover, + batch_prover: &mut impl TaskProver, + chunk_prover: &mut impl TaskProver, ) -> eyre::Result> { let mut proofs = Vec::new(); for chunk_gen in &mut self.batch_generators { @@ -114,7 +112,7 @@ impl BundleTaskGenerator { .version(); let fork_name = version.fork; - let commitment = load_program_commitments("batch")?; + let commitment = PROGRAM_COMMITMENTS["batch"]; let mut batch_proofs = Vec::new(); let mut batch_infos: Vec = Vec::new(); @@ -135,7 +133,7 @@ impl BundleTaskGenerator { .iter() .map(|&b| b as u32) .collect::>(), - commitment: commitment.clone(), + commitment, }; batch_proofs.push(proof); batch_infos.push(info); diff --git a/crates/integration/src/testers/chunk.rs b/crates/integration/src/testers/chunk.rs index bf46db83..540bfd75 100644 --- a/crates/integration/src/testers/chunk.rs +++ b/crates/integration/src/testers/chunk.rs @@ -1,14 +1,13 @@ use crate::{ - PartialProvingTask, ProverTester, guest_version, prove_verify, testdata_fork_directory, - tester_execute, testers::PATH_TESTDATA, testing_hardfork, testing_version, - utils::metadata_from_chunk_witnesses, + GUEST_VERSION, PartialProvingTask, ProverTester, TaskProver, prove_verify, + testdata_fork_directory, tester_execute, testers::PATH_TESTDATA, testing_hardfork, + testing_version, utils::metadata_from_chunk_witnesses, }; -use openvm_sdk::StdIn; use rayon::iter::{IntoParallelIterator, ParallelIterator}; use sbv_core::BlockWitness; use sbv_primitives::{B256, types::consensus::TxL1Message}; +use scroll_zkvm_prover::utils::read_json; use scroll_zkvm_prover::utils::vm::ExecutionResult; -use scroll_zkvm_prover::{Prover, utils::read_json}; use scroll_zkvm_types::chunk::ChunkWitnessUpgradeCompact; use scroll_zkvm_types::{ chunk::{ChunkInfo, ChunkWitness, LegacyChunkWitness, SecretKey}, @@ -68,11 +67,11 @@ impl PartialProvingTask for ChunkWitness { Ok(bytes.to_vec()) } - fn write_guest_input(&self, stdin: &mut StdIn) -> eyre::Result<()> + fn archive(&self) -> eyre::Result> where Self: Sized, { - let bytes: Vec = match guest_version().as_str() { + let bytes: Vec = match GUEST_VERSION.as_ref() { "0.5.2" => self.legacy_rkyv_archive()?, "0.6.0-rc.6" => { let config = bincode::config::standard(); @@ -86,8 +85,7 @@ impl PartialProvingTask for ChunkWitness { bincode::serde::encode_to_vec(self, config)? } }; - stdin.write_bytes(&bytes); - Ok(()) + Ok(bytes) } fn fork_name(&self) -> ForkName { @@ -127,7 +125,7 @@ impl ChunkTaskGenerator { Ok(witness) } - pub fn get_or_build_proof(&mut self, prover: &mut Prover) -> eyre::Result { + pub fn get_or_build_proof(&mut self, prover: &mut impl TaskProver) -> eyre::Result { if let Some(proof) = &self.proof { return Ok(proof.clone()); } diff --git a/crates/integration/src/utils/mod.rs b/crates/integration/src/utils/mod.rs index ecb2a150..5054b7f5 100644 --- a/crates/integration/src/utils/mod.rs +++ b/crates/integration/src/utils/mod.rs @@ -322,7 +322,7 @@ pub fn build_batch_witnesses( .iter() .map(|&b| b as u32) .collect::>(), - commitment: commitment.clone(), + commitment, } }) .collect::>(); @@ -395,7 +395,7 @@ pub fn build_batch_witnesses_validium( .iter() .map(|&b| b as u32) .collect::>(), - commitment: commitment.clone(), + commitment, } }) .collect::>(); diff --git a/crates/integration/tests/batch_circuit.rs b/crates/integration/tests/batch_circuit.rs index 1adedcd8..1bdaebda 100644 --- a/crates/integration/tests/batch_circuit.rs +++ b/crates/integration/tests/batch_circuit.rs @@ -15,7 +15,7 @@ use scroll_zkvm_types::public_inputs::Version; fn test_execute() -> eyre::Result<()> { BatchProverTester::setup(true)?; let u_task = load_local_task("batch-task.json")?; - let stdin = u_task.build_guest_input()?; + let stdin = u_task.build_guest_input(); let prover = BatchProverTester::load_prover(false)?; @@ -69,6 +69,18 @@ fn e2e() -> eyre::Result<()> { Ok(()) } +#[test] +fn axiom_e2e() -> eyre::Result<()> { + BatchProverTester::setup(true)?; + + let mut prover = BatchProverTester::load_axiom_prover()?; + let mut chunk_prover = ChunkProverTester::load_axiom_prover()?; + let mut batch = BatchTaskGenerator::from_chunk_tasks(&preset_chunk_multiple(), None); + let _ = batch.get_or_build_proof(&mut prover, &mut chunk_prover)?; + + Ok(()) +} + #[test] fn verify_batch_hash_invariant() -> eyre::Result<()> { use scroll_zkvm_types::public_inputs::ForkName; diff --git a/crates/integration/tests/bundle_circuit.rs b/crates/integration/tests/bundle_circuit.rs index be2c0c7b..337715fb 100644 --- a/crates/integration/tests/bundle_circuit.rs +++ b/crates/integration/tests/bundle_circuit.rs @@ -1,6 +1,6 @@ use sbv_primitives::B256; use scroll_zkvm_integration::{ - ProverTester, + ProverTester, TaskProver, testers::{ batch::{BatchProverTester, preset_batch_multiple, preset_batch_validium}, bundle::{BundleProverTester, BundleTaskGenerator}, @@ -127,7 +127,28 @@ fn e2e() -> eyre::Result<()> { let mut chunk_prover = ChunkProverTester::load_prover(false)?; let mut batch_prover = BatchProverTester::load_prover(false)?; let mut bundle_prover = BundleProverTester::load_prover(true)?; + e2e_inner(&mut chunk_prover, &mut batch_prover, &mut bundle_prover)?; + Ok(()) +} + +#[test] +fn axiom_e2e() -> eyre::Result<()> { + BundleProverTester::setup(true)?; + + let mut chunk_prover = ChunkProverTester::load_axiom_prover()?; + let mut batch_prover = BatchProverTester::load_axiom_prover()?; + let mut bundle_prover = BundleProverTester::load_axiom_prover()?; + e2e_inner(&mut chunk_prover, &mut batch_prover, &mut bundle_prover)?; + + Ok(()) +} + +fn e2e_inner( + chunk_prover: &mut impl TaskProver, + batch_prover: &mut impl TaskProver, + bundle_prover: &mut impl TaskProver, +) -> eyre::Result<()> { let mut task = preset_bundle(); let wit = task.get_or_build_witness()?; let metadata = metadata_from_bundle_witnesses(&wit)?; @@ -146,8 +167,7 @@ fn e2e() -> eyre::Result<()> { "unexpected pi hash for e2e bundle info, block witness changed?" ); - let proof = - task.get_or_build_proof(&mut bundle_prover, &mut batch_prover, &mut chunk_prover)?; + let proof = task.get_or_build_proof(bundle_prover, batch_prover, chunk_prover)?; let evm_proof: OpenVmEvmProof = proof.into_evm_proof().unwrap().into(); diff --git a/crates/integration/tests/chunk_circuit.rs b/crates/integration/tests/chunk_circuit.rs index 674857d4..0646bc4d 100644 --- a/crates/integration/tests/chunk_circuit.rs +++ b/crates/integration/tests/chunk_circuit.rs @@ -195,6 +195,17 @@ fn setup_prove_verify_single() -> eyre::Result<()> { Ok(()) } +#[test] +fn setup_axiom_prove_verify_single() -> eyre::Result<()> { + ChunkProverTester::setup(true)?; + let mut prover = ChunkProverTester::load_axiom_prover()?; + + let wit = get_witness_from_env_or_builder(&mut preset_chunk())?; + let _ = prove_verify::(&mut prover, &wit, &[])?; + + Ok(()) +} + #[test] fn setup_prove_verify_multi() -> eyre::Result<()> { ChunkProverTester::setup(true)?; diff --git a/crates/prover/src/prover/mod.rs b/crates/prover/src/prover/mod.rs index 7f2702b4..cb7f5289 100644 --- a/crates/prover/src/prover/mod.rs +++ b/crates/prover/src/prover/mod.rs @@ -151,9 +151,7 @@ impl Prover { let task_id = task.identifier(); tracing::debug!(name: "generate_root_verifier_input", task_id); - let stdin = task - .build_guest_input() - .map_err(|e| Error::GenProof(e.to_string()))?; + let stdin = task.build_guest_input(); // Generate a new proof. let proof = if !with_snark { diff --git a/crates/prover/src/task/mod.rs b/crates/prover/src/task/mod.rs index 2ffe6d4b..3666b6f7 100644 --- a/crates/prover/src/task/mod.rs +++ b/crates/prover/src/task/mod.rs @@ -9,12 +9,12 @@ use scroll_zkvm_types::{public_inputs::ForkName, task::ProvingTask as UniversalP pub trait ProvingTask: serde::de::DeserializeOwned { fn identifier(&self) -> String; - fn build_guest_input_inner(&self, stdin: &mut StdIn) -> Result<(), rkyv::rancor::Error>; + fn build_guest_input_inner(&self, stdin: &mut StdIn); - fn build_guest_input(&self) -> Result { + fn build_guest_input(&self) -> StdIn { let mut stdin = StdIn::default(); - self.build_guest_input_inner(&mut stdin)?; - Ok(stdin) + self.build_guest_input_inner(&mut stdin); + stdin } fn fork_name(&self) -> ForkName; @@ -25,7 +25,7 @@ impl ProvingTask for UniversalProvingTask { self.identifier.clone() } - fn build_guest_input_inner(&self, stdin: &mut StdIn) -> Result<(), rkyv::rancor::Error> { + fn build_guest_input_inner(&self, stdin: &mut StdIn) { for witness in &self.serialized_witness { stdin.write_bytes(witness); } @@ -36,7 +36,6 @@ impl ProvingTask for UniversalProvingTask { stdin.write_field(s); } } - Ok(()) } fn fork_name(&self) -> ForkName { diff --git a/crates/tools/upload-axiom/Cargo.toml b/crates/tools/upload-axiom/Cargo.toml new file mode 100644 index 00000000..5877d6f3 --- /dev/null +++ b/crates/tools/upload-axiom/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "scroll-zkvm-upload-axiom" +authors.workspace = true +edition.workspace = true +homepage.workspace = true +readme.workspace = true +repository.workspace = true +version.workspace = true + +[dependencies] +axiom-sdk.workspace = true +cargo_metadata.workspace = true +clap = { version = "4.0", features = ["derive"] } +console = "0.16" +dotenvy.workspace = true +color-eyre.workspace = true +eyre.workspace = true +hex.workspace = true +inquire = "0.9" +openvm-sdk.workspace = true +serde_json.workspace = true +scroll-zkvm-types.workspace = true +jiff.workspace = true diff --git a/crates/tools/upload-axiom/src/main.rs b/crates/tools/upload-axiom/src/main.rs new file mode 100644 index 00000000..f44bf811 --- /dev/null +++ b/crates/tools/upload-axiom/src/main.rs @@ -0,0 +1,273 @@ +use axiom_sdk::AxiomConfig; +use axiom_sdk::build::{BuildSdk, UploadExeArgs}; +use axiom_sdk::config::ConfigSdk; +use axiom_sdk::projects::ProjectSdk; +use clap::ArgGroup; +use clap::{Parser, ValueEnum}; +use console::{Emoji, style}; +use dotenvy::dotenv; +use eyre::Context; +use inquire::{Confirm, Text}; +use jiff::civil::{DateTime, DateTimeDifference}; +use jiff::tz::TimeZone; +use jiff::{Timestamp, Unit, Zoned}; +use openvm_sdk::commit::CommitBytes; +use scroll_zkvm_types::axiom::get_config_id; +use scroll_zkvm_types::utils::serialize_vk; +use std::collections::HashMap; +use std::fs::File; +use std::io::{IsTerminal, stderr, stdout}; +use std::path::{Path, PathBuf}; +use std::{env, fs}; + +#[derive(Parser)] +#[command(name = "upload-axiom")] +#[command(about = "Upload guest program (chunk, batch, bundle) to Axiom")] +#[command( + group( + ArgGroup::new("project_selection") + .args(&["project_id", "create_project"]) + .required(true) + .multiple(false) + ) +)] +struct Cli { + /// Guest program version + /// + /// "dev" or specific version like "0.5.0" + #[arg(short = 'v', long, default_value = "dev", env = "GUEST_VERSION")] + guest_version: String, + /// Projects to upload + /// + /// Comma separated list of "chunk", "batch", "bundle" + #[arg( + short = 'p', + long, + env = "PROJECTS_TO_UPLOAD", + value_delimiter = ',', + default_value = "chunk,batch,bundle" + )] + uploads: Vec, + /// Don't write program ids json + #[arg(long)] + no_write_ids: bool, + + /// The directory containing the manifest of the crate to run this command in. + #[arg(long, env = "CARGO_MANIFEST_DIR")] + manifest_dir: PathBuf, + + /// Axiom API Key + #[arg( + long, + env = "AXIOM_API_KEY", + help_heading = "Axiom Configuration", + hide_env_values = true + )] + api_key: String, + /// Axiom Project ID + #[arg(long, env = "AXIOM_PROJECT_ID", help_heading = "Axiom Configuration")] + project_id: Option, + /// Create new Axiom Project with this name + #[arg(long, help_heading = "Axiom Configuration")] + create_project: Option, + #[arg( + long, + default_value = "https://api.axiom.xyz/v1", + help_heading = "Axiom Configuration" + )] + api_url: String, + + /// Answer yes to all prompts + #[arg(short = 'y', long = "yes", help_heading = "Miscellaneous")] + yes: bool, + /// Dry run mode + #[arg(long, help_heading = "Miscellaneous")] + dry_run: bool, + /// Coloring + #[arg(long, default_value = "auto", help_heading = "Miscellaneous")] + color: ColorChoice, +} + +#[derive(Copy, Clone, ValueEnum, Debug)] +enum ColorChoice { + Auto, + Always, + Never, +} + +const LOG_PREFIX: &str = "[upload-axiom]"; +const OK: Emoji = Emoji("✅", "✓ "); +const WARN: Emoji = Emoji("⚠️", "! "); + +fn main() -> eyre::Result<()> { + // Load .env file if present + dotenv().ok(); + color_eyre::install()?; + + let cli = Cli::parse(); + + match cli.color { + ColorChoice::Always => { + console::set_colors_enabled(true); + console::set_colors_enabled_stderr(true); + } + ColorChoice::Never => { + console::set_colors_enabled(false); + console::set_colors_enabled_stderr(false); + } + _ => {} + } + + // Set current directory to the crate's root + env::set_current_dir(&cli.manifest_dir)?; + + let interactive = stdout().is_terminal() && stderr().is_terminal(); + let assume_yes = cli.yes || !interactive; + + let metadata = cargo_metadata::MetadataCommand::new().no_deps().exec()?; + let workspace_dir = metadata.workspace_root.into_std_path_buf(); + + let guest_version = if interactive { + Text::new("Guest version:") + .with_initial_value(&cli.guest_version) + .prompt()? + } else { + cli.guest_version + }; + + let axiom_config = AxiomConfig { + api_url: cli.api_url, + api_key: Some(cli.api_key), + ..Default::default() + }; + + let sdk = axiom_sdk::AxiomSdk::new(axiom_config.clone()); + + let project_id = if let Some(project_name) = cli.create_project { + let project_id = sdk.create_project(&project_name)?.id; + println!( + "{LOG_PREFIX} {OK} Created new Axiom project '{project_name}' with ID: {project_id}" + ); + project_id + } else { + cli.project_id.unwrap() + }; + + let guest_dir = workspace_dir.join("releases").join(&guest_version); + + let vks: HashMap = serde_json::from_reader( + File::open(guest_dir.join("verifier").join("openVmVk.json")) + .context("Failed to open openVmVk.json")?, + ) + .context("Failed to parse openVmVk.json")?; + + for project in cli.uploads.iter() { + if !vks.contains_key(&format!("{project}_vk")) { + eyre::bail!("Project '{project}' not found in openVmVk.json"); + } + } + + let mut program_ids = HashMap::new(); + + for project in cli.uploads { + let Some(vk) = vks.get(&format!("{project}_vk")) else { + eyre::bail!("Project '{project}' not found in openVmVk.json"); + }; + + let styled_project = style(&project).bold().green(); + let dir = guest_dir.join(&project); + + let config_id = get_config_id(&project); + let sdk = axiom_sdk::AxiomSdk::new(AxiomConfig { + config_id: Some(config_id.to_string()), + ..axiom_config.clone() + }); + + // verify config_id is correct + let commitment = serialize_vk::deserialize(&hex::decode(vk)?); + let vm_commitment = CommitBytes::from_u32_digest(&commitment.vm); + let config_vm_commitment = sdk.get_vm_config_metadata(Some(config_id))?.app_vm_commit; + let config_vm_commitment = hex::decode(config_vm_commitment)?; + if vm_commitment.as_slice() == config_vm_commitment.as_slice() { + println!("{LOG_PREFIX} {OK} config_id VM commitment matches."); + } else { + let abort = assume_yes + || !Confirm::new(&format!( + "{WARN} VM commitment mismatch for project {styled_project}. Continue anyway?" + )) + .with_default(false) + .prompt()?; + if abort { + println!( + "{LOG_PREFIX} {WARN} invalid config_id for project {styled_project}, skipping upload..." + ); + continue; + } + } + + let app_elf = dir.join("app.elf"); + let app_vmexe = dir.join("app.vmexe"); + + // Print metadata for double check + println!("{LOG_PREFIX} Preparing to upload project {styled_project}:"); + print_metadata(&app_elf)?; + print_metadata(&app_vmexe)?; + + let proceed = assume_yes + || Confirm::new(&format!("Proceed to upload {styled_project} to Axiom?")) + .with_default(false) + .prompt()?; + if !proceed { + println!("Skipping upload of {styled_project}"); + continue; + } + + println!("{LOG_PREFIX} Uploading project {styled_project}..."); + + let program_id = sdk.upload_exe_raw( + fs::read(app_elf)?, + fs::read(app_vmexe)?, + UploadExeArgs { + config_id: Some(config_id.to_string()), + project_id: Some(project_id.clone()), + project_name: None, + bin_name: Some(project.clone()), + program_name: Some(project.clone()), + default_num_gpus: None, + }, + )?; + println!( + "{LOG_PREFIX} {OK} Uploaded project {styled_project} with Program ID: {program_id}" + ); + + program_ids.insert(vk, program_id); + } + + if !cli.no_write_ids { + let output_path = guest_dir.join("axiom_program_ids.json"); + fs::write(&output_path, serde_json::to_string_pretty(&program_ids)?)?; + println!( + "{LOG_PREFIX} {OK} Wrote Axiom program IDs to {}", + output_path.display() + ); + } + + Ok(()) +} + +fn print_metadata>(path: P) -> eyre::Result<()> { + let now: DateTime = Zoned::now().into(); + + let name = path.as_ref().file_name().unwrap().to_string_lossy(); + let metadata = fs::metadata(&path)?; + + println!("- {}:", name); + println!(" - size: {} bytes", metadata.len()); + + let created: DateTime = Timestamp::try_from(metadata.created()?)? + .to_zoned(TimeZone::system()) + .into(); + let passed = created.until(DateTimeDifference::new(now).smallest(Unit::Second))?; + println!(" - created: {passed:#} ago ({created:#})"); + Ok(()) +} diff --git a/crates/types/Cargo.toml b/crates/types/Cargo.toml index 7c5fbda5..98bd29a1 100644 --- a/crates/types/Cargo.toml +++ b/crates/types/Cargo.toml @@ -22,6 +22,9 @@ once_cell = "1.20" snark-verifier-sdk.workspace = true sbv-primitives.workspace = true serde.workspace = true +serde_json.workspace = true +eyre.workspace = true +hex.workspace = true base64.workspace = true bincode_v1.workspace = true diff --git a/crates/types/base/src/aggregation.rs b/crates/types/base/src/aggregation.rs index 3229537f..827fcb51 100644 --- a/crates/types/base/src/aggregation.rs +++ b/crates/types/base/src/aggregation.rs @@ -18,6 +18,7 @@ pub struct AggregationInput { /// Represent the commitment needed to verify a [`RootProof`]. #[derive( + Copy, Clone, Debug, Default, @@ -27,7 +28,7 @@ pub struct AggregationInput { serde::Deserialize, serde::Serialize, )] -#[rkyv(derive(Debug))] +#[rkyv(derive(Debug, Copy, Clone))] pub struct ProgramCommitment { /// The commitment to the child program exe. pub exe: [u32; 8], diff --git a/crates/types/src/axiom.rs b/crates/types/src/axiom.rs new file mode 100644 index 00000000..23ca4675 --- /dev/null +++ b/crates/types/src/axiom.rs @@ -0,0 +1,27 @@ +pub mod config { + /// Axiom configuration ID for [openvm.toml](../../circuits/chunk-circuit/openvm.toml). + /// Should be updated when the openvm.toml changes. + pub const CHUNK: &str = "cfg_01k9b6y2tcnw8b969vnk6d7eyq"; + /// Axiom configuration ID for [openvm.toml](../../circuits/batch-circuit/openvm.toml). + /// Should be updated when the openvm.toml changes. + pub const BATCH: &str = "cfg_01k9b6wa8hx37z42kd41cqrkfs"; + /// Axiom configuration ID for [openvm.toml](../../circuits/bundle-circuit/openvm.toml). + /// Should be updated when the openvm.toml changes. + pub const BUNDLE: &str = "cfg_01k9b6xjt0va25sy94tztwehs7"; +} + +/// Get the Axiom configuration ID for the given circuit kind. +/// +/// # Panics +/// +/// Panics if the kind is not one of "chunk", "batch", or "bundle". +pub fn get_config_id(kind: &str) -> &str { + use config::{BATCH, BUNDLE, CHUNK}; + + match kind { + "chunk" => CHUNK, + "batch" => BATCH, + "bundle" => BUNDLE, + _ => panic!("Unknown config kind: {}", kind), + } +} diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index 780f59ef..52ddbbfc 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -24,6 +24,10 @@ pub mod proof; pub mod task; pub use task::ProvingTask; +pub mod openvm; + +pub mod axiom; + pub mod utils; pub mod zkvm; diff --git a/crates/types/src/openvm.rs b/crates/types/src/openvm.rs new file mode 100644 index 00000000..c3a56455 --- /dev/null +++ b/crates/types/src/openvm.rs @@ -0,0 +1,48 @@ +use openvm_native_recursion::hints::Hintable; +use openvm_stark_sdk::openvm_stark_backend::p3_field::PrimeField32; +use serde::{Deserialize, Serialize}; + +/// Input structure for OpenVM input json +/// +/// ```json +/// { +/// "input": [ "0x...", "0x...", ... ] +/// } +/// ``` +/// +/// Reference: https://github.com/openvm-org/openvm/blob/7e9488992a74d49fa697359681cd2a7e768b90ef/crates/cli/src/input.rs#L82-L115 +#[derive(Clone, Default, Serialize, Deserialize)] +pub struct OpenVMInput { + input: Vec, +} + +impl super::ProvingTask { + pub fn build_openvm_input(&self) -> OpenVMInput { + let mut input = Vec::new(); + + // Encode witness entries (0x01 | bytes) + for w in self.serialized_witness.iter() { + let mut buf = Vec::with_capacity(1 + w.len()); + buf.push(0x01); + buf.extend_from_slice(w); + input.push(format!("0x{}", hex::encode(&buf))); + } + + // Encode proof fields (0x02 | u32_le_bytes...) + for field in self + .aggregated_proofs + .iter() + .flat_map(|proof| proof.proofs[0].write()) + { + let mut buf = Vec::with_capacity(1 + 4 * field.len()); + buf.push(0x02); + for f in field { + let v: u32 = f.as_canonical_u32(); + buf.extend_from_slice(&v.to_le_bytes()); + } + input.push(format!("0x{}", hex::encode(&buf))); + } + + OpenVMInput { input } + } +} diff --git a/crates/types/src/proof.rs b/crates/types/src/proof.rs index e50908a6..55fd288c 100644 --- a/crates/types/src/proof.rs +++ b/crates/types/src/proof.rs @@ -1,11 +1,14 @@ use crate::utils::{as_base64, vec_as_base64}; use openvm_native_recursion::halo2::RawEvmProof; use openvm_sdk::SC; +use openvm_sdk::codec::Decode; use openvm_stark_sdk::{ openvm_stark_backend::{p3_field::PrimeField32, proof::Proof}, p3_baby_bear::BabyBear, }; use serde::{Deserialize, Serialize}; +use std::io; +use std::io::Cursor; /// Helper type for convenience that implements [`From`] and [`Into`] traits between /// [`OpenVmEvmProof`]. The difference is that the instances in [`EvmProof`] are the byte-encoding @@ -68,6 +71,30 @@ pub struct VmInternalStarkProof { pub public_values: Vec, } +pub use openvm_sdk::types::VersionedVmStarkProof as OpenVmVersionedVmStarkProof; + +impl TryFrom for StarkProof { + type Error = io::Error; + + fn try_from(proof: OpenVmVersionedVmStarkProof) -> io::Result { + let inner_proof = Proof::::decode_from_bytes(&proof.proof)?; + let mut pv_reader = Cursor::new(proof.user_public_values); + // decode_vec is not pub so we have to use the detail inside it ... + let len = usize::decode(&mut pv_reader)?; + let mut public_values = Vec::with_capacity(len); + + for _ in 0..len { + public_values.push(BabyBear::decode(&mut pv_reader)?); + } + + Ok(Self { + proofs: vec![inner_proof], + public_values, + stat: Default::default(), + }) + } +} + pub use openvm_sdk::types::EvmProof as OpenVmEvmProof; use snark_verifier_sdk::snark_verifier::{ halo2_base::halo2_proofs::halo2curves::bn256::Fr, util::arithmetic::PrimeField,