diff --git a/Cargo.lock b/Cargo.lock index 2188155..9ba18d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,15 +12,6 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - [[package]] name = "adler2" version = "2.0.1" @@ -33,7 +24,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common 0.1.6", + "crypto-common 0.1.7", "generic-array", ] @@ -43,16 +34,16 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "cipher", "cpufeatures", ] [[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", ] @@ -63,12 +54,6 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -80,9 +65,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arbitrary" @@ -113,7 +98,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -128,21 +113,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if 1.0.3", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base16ct" version = "0.2.0" @@ -173,15 +143,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" [[package]] name = "bech32" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" [[package]] name = "bellman" @@ -199,24 +169,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "binary-install" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bff426ff93f3610dd2b946f3eb8cb2d1285ca8682834d43be531a3f93db2ff" -dependencies = [ - "anyhow", - "dirs-next", - "flate2", - "fs2", - "hex", - "is_executable", - "siphasher", - "tar", - "ureq", - "zip", -] - [[package]] name = "bip32" version = "0.6.0-pre.1" @@ -235,9 +187,9 @@ dependencies = [ [[package]] name = "bitcoin" -version = "0.32.7" +version = "0.32.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda569d741b895131a88ee5589a467e73e9c4718e958ac9308e4f7dc44b6945" +checksum = "1e499f9fc0407f50fe98af744ab44fa67d409f76b6772e1689ec8485eb0c0f66" dependencies = [ "base58ck", "bech32", @@ -262,9 +214,9 @@ dependencies = [ [[package]] name = "bitcoin-io" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b47c4ab7a93edb0c7198c5535ed9b52b63095f4e9b45279c6736cec4b856baf" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" [[package]] name = "bitcoin-units" @@ -278,9 +230,9 @@ dependencies = [ [[package]] name = "bitcoin_hashes" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb18c03d0db0247e147a21a6faafd5a7eb851c743db062de72018b6b7e8e4d16" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" dependencies = [ "bitcoin-io", "hex-conservative", @@ -295,9 +247,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bitvec" @@ -322,24 +274,24 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] name = "blake2s_simd" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" +checksum = "ee29928bad1e3f94c9d1528da29e07a1d3d04817ae8332de1e8b846c8439f4b3" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] @@ -375,9 +327,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", @@ -387,9 +339,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.7.2" +version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2529c31017402be841eb45892278a6c21a000c0a17643af326c73a73f83f0fb" +checksum = "f47dbe92550676ee653353c310dfb9cf6ba17ee70396e1f7cf0a2020ad49b2fe" dependencies = [ "bon-macros", "rustversion", @@ -397,40 +349,41 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.7.2" +version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82020dadcb845a345591863adb65d74fa8dc5c18a0b6d408470e13b7adc7005" +checksum = "519bd3116aeeb42d5372c29d982d16d0170d3d4a5ed85fc7dd91642ffff3c67c" dependencies = [ - "darling 0.21.3", + "darling 0.20.11", "ident_case", "prettyplease 0.2.37", "proc-macro2", "quote", "rustversion", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "borsh" -version = "1.5.7" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" dependencies = [ "borsh-derive", + "bytes", "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "1.5.7" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" dependencies = [ "once_cell", - "proc-macro-crate 3.3.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -451,9 +404,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "byteorder" @@ -463,9 +416,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "bytesize" @@ -476,40 +429,20 @@ dependencies = [ "serde", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "camino" -version = "1.1.12" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "cargo-near-build" -version = "0.6.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88321898bd839f20478d8083450b52975e268d38cd5ae0de146d2bc0c0be9b02" +checksum = "73005ffb8b98b39dd7a4dd48412bbd5391f38c5aef907259be3fd135932c6db5" dependencies = [ "bon", "bs58 0.5.1", @@ -528,25 +461,42 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util-schemas" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "7dc1a6f7b5651af85774ae5a34b4e8be397d9cf4bc063b7e6dbd99a841837830" dependencies = [ + "semver", "serde", + "serde-untagged", + "serde-value", + "thiserror 2.0.18", + "toml 0.8.23", + "unicode-xid", + "url", ] [[package]] name = "cargo_metadata" -version = "0.18.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +checksum = "5cfca2aaa699835ba88faf58a06342a314a950d2b9686165e038286c30316868" dependencies = [ "camino", "cargo-platform", + "cargo-util-schemas", "semver", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.18", ] [[package]] @@ -560,9 +510,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.36" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", "jobserver", @@ -578,9 +528,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" @@ -594,7 +544,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "cipher", "cpufeatures", ] @@ -614,11 +564,10 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", @@ -633,19 +582,18 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common 0.1.6", + "crypto-common 0.1.7", "inout", "zeroize", ] [[package]] name = "colored" -version = "2.2.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "lazy_static", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -656,21 +604,53 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" [[package]] -name = "constant_time_eq" -version = "0.3.1" +name = "convert_case" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" [[package]] name = "convert_case" -version = "0.5.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9" +dependencies = [ + "cookie", + "document-features", + "idna", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] [[package]] name = "core-foundation" @@ -682,6 +662,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -712,7 +702,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", ] [[package]] @@ -760,9 +750,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ "generic-array", "typenum", @@ -784,9 +774,9 @@ source = "git+https://github.com/near/mpc_old?rev=0afee9004a1b1c3386940e60c28cff dependencies = [ "anyhow", "borsh", - "getrandom 0.2.16", + "getrandom 0.2.17", "k256", - "near-account-id 1.1.3", + "near-account-id 1.1.4", "near-sdk", "serde", "serde_json", @@ -800,7 +790,7 @@ version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", @@ -818,7 +808,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -841,16 +831,6 @@ dependencies = [ "darling_macro 0.20.11", ] -[[package]] -name = "darling" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" -dependencies = [ - "darling_core 0.21.3", - "darling_macro 0.21.3", -] - [[package]] name = "darling_core" version = "0.13.4" @@ -876,21 +856,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.106", -] - -[[package]] -name = "darling_core" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -912,18 +878,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.106", -] - -[[package]] -name = "darling_macro" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" -dependencies = [ - "darling_core 0.21.3", - "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -938,9 +893,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -954,47 +909,29 @@ checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", + "syn 2.0.117", ] [[package]] name = "derive_more" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" -dependencies = [ - "derive_more-impl 2.0.1", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.106", + "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ + "convert_case 0.10.0", "proc-macro2", "quote", - "syn 2.0.106", + "rustc_version", + "syn 2.0.117", "unicode-xid", ] @@ -1006,7 +943,7 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", - "crypto-common 0.1.6", + "crypto-common 0.1.7", "subtle", ] @@ -1021,27 +958,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if 1.0.3", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "displaydoc" version = "0.2.5" @@ -1050,14 +966,14 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "document-features" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" dependencies = [ "litrs", ] @@ -1152,7 +1068,7 @@ version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", ] [[package]] @@ -1172,7 +1088,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1191,14 +1107,25 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1245,21 +1172,20 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "libc", "libredox", - "windows-sys 0.60.2", ] [[package]] name = "find-msvc-tools" -version = "0.1.1" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed-hash" @@ -1272,9 +1198,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", @@ -1349,6 +1275,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "fs4" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8640e34b88f7652208ce9e88b1a37a2ae95227d84abec377ccd3c5cfeb141ed4" +dependencies = [ + "rustix", + "windows-sys 0.59.0", +] + [[package]] name = "funty" version = "2.0.0" @@ -1357,41 +1293,41 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-core", "futures-task", "pin-project-lite", - "pin-utils", + "slab", ] [[package]] @@ -1407,25 +1343,38 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "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 = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if 1.0.4", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "libc", - "r-efi", - "wasi 0.14.3+wasi-0.2.4", + "r-efi 6.0.0", + "wasip2", + "wasip3", ] [[package]] @@ -1437,15 +1386,9 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "glob" version = "0.3.3" @@ -1466,9 +1409,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", @@ -1476,7 +1419,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.11.0", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -1523,9 +1466,9 @@ dependencies = [ [[package]] name = "halo2_proofs" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "019561b5f3be60731e7b72f3f7878c5badb4174362d860b03d3cf64cb47f90db" +checksum = "05713f117155643ce10975e0bee44a274bcda2f4bb5ef29a999ad67c1fa8d4d3" dependencies = [ "blake2b_simd", "ff", @@ -1555,6 +1498,12 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" + [[package]] name = "heck" version = "0.4.1" @@ -1584,9 +1533,9 @@ dependencies = [ [[package]] name = "hex-conservative" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5313b072ce3c597065a808dbf612c4c8e8590bdbf8b579508bf7a762c5eae6cd" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" dependencies = [ "arrayvec", ] @@ -1615,23 +1564,13 @@ dependencies = [ "digest 0.11.0-pre.9", ] -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -1675,9 +1614,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -1689,7 +1628,6 @@ dependencies = [ "httparse", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -1729,14 +1667,13 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "base64 0.22.1", "bytes", "futures-channel", - "futures-core", "futures-util", "http", "http-body", @@ -1755,9 +1692,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1779,12 +1716,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -1792,9 +1730,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -1805,11 +1743,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1820,42 +1757,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" 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.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -1863,6 +1796,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + [[package]] name = "ident_case" version = "1.0.1" @@ -1918,13 +1857,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "serde", + "serde_core", ] [[package]] @@ -1936,51 +1876,22 @@ dependencies = [ "generic-array", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.9.4", - "cfg-if 1.0.3", - "libc", -] - [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.8" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", ] -[[package]] -name = "is_executable" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d553b8abc8187beb7d663e34c065ac4570b273bc9511a50e940e99409c577" -dependencies = [ - "winapi", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -1992,9 +1903,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jobserver" @@ -2002,16 +1913,18 @@ 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.78" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ + "cfg-if 1.0.4", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -2022,7 +1935,19 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b1fb8864823fad91877e6caea0baca82e49e8db50f8e5c9f9a453e27d3330fc" dependencies = [ - "jsonptr", + "jsonptr 0.4.7", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "json-patch" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f300e415e2134745ef75f04562dd0145405c2f7fd92065db029ac4b16b57fe90" +dependencies = [ + "jsonptr 0.7.1", "serde", "serde_json", "thiserror 1.0.69", @@ -2045,6 +1970,16 @@ dependencies = [ "serde_json", ] +[[package]] +name = "jsonptr" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5a3cc660ba5d72bce0b3bb295bf20847ccbb40fd423f3f05b61273672e561fe" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "jubjub" version = "0.10.0" @@ -2065,7 +2000,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "ecdsa", "elliptic-curve", "once_cell", @@ -2076,9 +2011,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -2092,62 +2027,69 @@ dependencies = [ "spin", ] +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" -version = "0.2.175" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", "libc", - "redox_syscall", + "plain", + "redox_syscall 0.7.3", ] [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "litrs" -version = "0.4.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" +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", + "serde", ] [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" @@ -2164,14 +2106,14 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", ] [[package]] name = "memchr" -version = "2.7.5" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "memory_units" @@ -2198,17 +2140,18 @@ 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.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -2236,9 +2179,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" dependencies = [ "libc", "log", @@ -2261,9 +2204,9 @@ dependencies = [ [[package]] name = "near-abi" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c49593c9e94454a2368a4c0a511bf4bf1413aff4d23f16e1d8f4e64b5215351" +checksum = "2fe0c8cdaf8369d8c78f2577d95673007c7f256c85752a66672be5244e2681a6" dependencies = [ "borsh", "schemars 0.8.22", @@ -2278,7 +2221,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879ac02b2e8d6498294adce1de7a2424a5474b35a73e9262c851be39c89d7f92" dependencies = [ "anyhow", - "convert_case", + "convert_case 0.5.0", "near-abi-client-impl", "near-abi-client-macros", "prettyplease 0.1.25", @@ -2313,13 +2256,9 @@ dependencies = [ [[package]] name = "near-account-id" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8542f031adc257a27ba46ad904c241a88470ee95130663a9e5c08cf8e124f4d4" -dependencies = [ - "borsh", - "serde", -] +checksum = "975bb8e272af403d97656893f71e095e1b178ccee571b3ec4a193152be0248f5" [[package]] name = "near-account-id" @@ -2333,20 +2272,21 @@ dependencies = [ [[package]] name = "near-chain-configs" -version = "0.30.3" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b309d3b1f8adee89167babb4695ae1fdfe1102ef019b9f44dc1dbc5389327c42" +checksum = "b49e9e2d173d526725d4055ac2af4fa18ba0e3cfd4a6c4c6439ac63a63ad9f41" dependencies = [ "anyhow", "bytesize", "chrono", - "derive_more 1.0.0", - "near-config-utils 0.30.3", - "near-crypto 0.30.3", - "near-parameters 0.30.3", - "near-primitives 0.30.3", - "near-time 0.30.3", + "derive_more", + "near-config-utils", + "near-crypto", + "near-parameters", + "near-primitives", + "near-time", "num-rational", + "parking_lot", "serde", "serde_json", "sha2 0.10.9", @@ -2355,18 +2295,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "near-config-utils" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb6045fa1f9503c61665af42d1534b04a854a6b4aeecb33fd53a5acaa4635b7" -dependencies = [ - "anyhow", - "json_comments", - "thiserror 2.0.16", - "tracing", -] - [[package]] name = "near-config-utils" version = "0.34.7" @@ -2375,7 +2303,7 @@ checksum = "da2ba8f7129472fc147b867e904e4b8f398aa79f263f54dff6283c4860446ef8" dependencies = [ "anyhow", "json_comments", - "thiserror 2.0.16", + "thiserror 2.0.18", "tracing", ] @@ -2388,32 +2316,6 @@ dependencies = [ "near-sdk", ] -[[package]] -name = "near-crypto" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c635fb7ddbd807d92e1a8a3dc57d45e92faa15eaf2a8f0fbc977f6bc8fda6ce" -dependencies = [ - "blake2", - "borsh", - "bs58 0.4.0", - "curve25519-dalek", - "derive_more 1.0.0", - "ed25519-dalek", - "hex", - "near-account-id 1.1.3", - "near-config-utils 0.30.3", - "near-schema-checker-lib 0.30.3", - "near-stdx 0.30.3", - "primitive-types", - "rand", - "secp256k1 0.27.0", - "serde", - "serde_json", - "subtle", - "thiserror 2.0.16", -] - [[package]] name = "near-crypto" version = "0.34.7" @@ -2424,28 +2326,20 @@ dependencies = [ "borsh", "bs58 0.4.0", "curve25519-dalek", - "derive_more 2.0.1", + "derive_more", "ed25519-dalek", "hex", "near-account-id 2.6.0", - "near-config-utils 0.34.7", - "near-schema-checker-lib 0.34.7", - "near-stdx 0.34.7", + "near-config-utils", + "near-schema-checker-lib", + "near-stdx", "primitive-types", + "rand", "secp256k1 0.27.0", "serde", "serde_json", "subtle", - "thiserror 2.0.16", -] - -[[package]] -name = "near-fmt" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d6b26918e71a60b56b0fe6604198d0b29df4e0b27dc944cad7af3e1ada6976" -dependencies = [ - "near-primitives-core 0.30.3", + "thiserror 2.0.18", ] [[package]] @@ -2454,14 +2348,14 @@ version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f31b6d8fb4146cf0a7dcadf7816bf7b8efd5c081d6d2ca524bc80815b5f86812" dependencies = [ - "near-primitives-core 0.34.7", + "near-primitives-core", ] [[package]] name = "near-gas" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ca4044222f2f392ab61d27d0aefc5106b1ece4dcd22c5c987e3c75371d2a37" +checksum = "919d705b6dab5a7c6cc4b9a60e3025ed2f7cf3d4c3c32ad1a47264a4190e6409" dependencies = [ "borsh", "schemars 0.8.22", @@ -2470,59 +2364,41 @@ dependencies = [ [[package]] name = "near-jsonrpc-client" -version = "0.17.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b8a74b8311731d9ed1a995549fc7ec1d103d5c8c7eaab35e240f894343b0b4" +checksum = "94937febf6a8e8d0cfbf194007a426bed81f41d84665a5982fcb7b4e3b21eca6" dependencies = [ "borsh", "lazy_static", "log", "near-chain-configs", - "near-crypto 0.30.3", + "near-crypto", "near-jsonrpc-primitives", - "near-primitives 0.30.3", + "near-primitives", "reqwest", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.18", ] [[package]] name = "near-jsonrpc-primitives" -version = "0.30.3" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963e3051ebca3bb37a4a411b44d5744efdfa0b227dbcad5e03732dd0b9672b2d" +checksum = "b245e3de3c64e9c908167322abb4696d7c4e4c8315d715f167661000375af691" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto 0.30.3", - "near-primitives 0.30.3", - "near-schema-checker-lib 0.30.3", + "near-crypto", + "near-primitives", + "near-schema-checker-lib", + "near-time", "serde", "serde_json", - "thiserror 2.0.16", + "thiserror 2.0.18", "time", ] -[[package]] -name = "near-parameters" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e364f850512d7f1ee1eb398e1da85fd3ef95eb3cbce8db2d505eed054bbe848" -dependencies = [ - "borsh", - "enum-map", - "near-account-id 1.1.3", - "near-primitives-core 0.30.3", - "near-schema-checker-lib 0.30.3", - "num-rational", - "serde", - "serde_repr", - "serde_yaml", - "strum 0.24.1", - "thiserror 2.0.16", -] - [[package]] name = "near-parameters" version = "0.34.7" @@ -2532,14 +2408,14 @@ dependencies = [ "borsh", "enum-map", "near-account-id 2.6.0", - "near-primitives-core 0.34.7", - "near-schema-checker-lib 0.34.7", + "near-primitives-core", + "near-schema-checker-lib", "num-rational", "serde", "serde_repr", "serde_yaml", "strum 0.24.1", - "thiserror 2.0.16", + "thiserror 2.0.18", ] [[package]] @@ -2565,48 +2441,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "near-primitives" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca734a17b2a973e4753658dd4370f6b35e106ff6c0f9620cbe5283988597833" -dependencies = [ - "arbitrary", - "base64 0.21.7", - "bitvec", - "borsh", - "bytes", - "bytesize", - "cfg-if 1.0.3", - "chrono", - "derive_more 1.0.0", - "easy-ext", - "enum-map", - "hex", - "itertools 0.12.1", - "near-crypto 0.30.3", - "near-fmt 0.30.3", - "near-parameters 0.30.3", - "near-primitives-core 0.30.3", - "near-schema-checker-lib 0.30.3", - "near-stdx 0.30.3", - "near-time 0.30.3", - "num-rational", - "ordered-float", - "primitive-types", - "rand", - "rand_chacha", - "serde", - "serde_json", - "serde_with", - "sha3", - "smart-default", - "strum 0.24.1", - "thiserror 2.0.16", - "tracing", - "zstd 0.13.3", -] - [[package]] name = "near-primitives" version = "0.34.7" @@ -2620,21 +2454,23 @@ dependencies = [ "bytes", "bytesize", "chrono", - "derive_more 2.0.1", + "derive_more", "easy-ext", "enum-map", "hex", - "itertools 0.14.0", - "near-crypto 0.34.7", - "near-fmt 0.34.7", - "near-parameters 0.34.7", - "near-primitives-core 0.34.7", - "near-schema-checker-lib 0.34.7", - "near-stdx 0.34.7", - "near-time 0.34.7", + "itertools", + "near-crypto", + "near-fmt", + "near-parameters", + "near-primitives-core", + "near-schema-checker-lib", + "near-stdx", + "near-time", "num-rational", - "ordered-float", + "ordered-float 4.6.0", "primitive-types", + "rand", + "rand_chacha", "serde", "serde_json", "serde_with", @@ -2642,30 +2478,9 @@ dependencies = [ "smallvec", "smart-default", "strum 0.24.1", - "thiserror 2.0.16", + "thiserror 2.0.18", "tracing", - "zstd 0.13.3", -] - -[[package]] -name = "near-primitives-core" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953534fb0dff03f2042a12a933e31d86dd79601c2640338307bba724919e1876" -dependencies = [ - "arbitrary", - "base64 0.21.7", - "borsh", - "bs58 0.4.0", - "derive_more 1.0.0", - "enum-map", - "near-account-id 1.1.3", - "near-schema-checker-lib 0.30.3", - "num-rational", - "serde", - "serde_repr", - "sha2 0.10.9", - "thiserror 2.0.16", + "zstd", ] [[package]] @@ -2678,71 +2493,58 @@ dependencies = [ "base64 0.21.7", "borsh", "bs58 0.4.0", - "derive_more 2.0.1", + "derive_more", "enum-map", "near-account-id 2.6.0", "near-gas", - "near-schema-checker-lib 0.34.7", + "near-schema-checker-lib", "near-token", "num-rational", "serde", "serde_repr", "serde_with", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.18", ] [[package]] -name = "near-sandbox-utils" -version = "0.15.0" +name = "near-sandbox" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ea2772bc3fb37be43b52c57c0a998b1add4675e609fd89113c600c7c016443" +checksum = "ffb6493715a4b5d18f23abcb3d6438e466373aba66f25764516c4b32433e92e0" dependencies = [ - "anyhow", - "binary-install", - "fs2", - "home", + "flate2", + "fs4", + "json-patch 4.1.0", + "libc", + "near-account-id 2.6.0", + "near-token", + "serde", + "serde_json", + "tar", + "tempfile", + "thiserror 2.0.18", "tokio", + "tracing", + "ureq", ] -[[package]] -name = "near-schema-checker-core" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecf3abb048646186aef4796d5bcda22c2c9246beaabaf3ea568c0cce2229257b" - [[package]] name = "near-schema-checker-core" version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f969a965d1ea04e1f085ee4d6c7273ae1064f578711087f3beaf8d400672cc7e" -[[package]] -name = "near-schema-checker-lib" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1416c5b236ea30152895df73213eca04c997c7bd60d83a1c18141f8705759865" -dependencies = [ - "near-schema-checker-core 0.30.3", - "near-schema-checker-macro 0.30.3", -] - [[package]] name = "near-schema-checker-lib" version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4ae7538880de8a8d75e150dd0f4f685211ddd654ab12a339f40458df6d191dd" dependencies = [ - "near-schema-checker-core 0.34.7", - "near-schema-checker-macro 0.34.7", + "near-schema-checker-core", + "near-schema-checker-macro", ] -[[package]] -name = "near-schema-checker-macro" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a60d29f7f64c2fc6d2fd25139863a6887b4d7fbcc79db8caad9c72eca67f05e9" - [[package]] name = "near-schema-checker-macro" version = "0.34.7" @@ -2759,11 +2561,11 @@ dependencies = [ "borsh", "bs58 0.5.1", "near-account-id 2.6.0", - "near-crypto 0.34.7", + "near-crypto", "near-gas", - "near-parameters 0.34.7", - "near-primitives 0.34.7", - "near-primitives-core 0.34.7", + "near-parameters", + "near-primitives", + "near-primitives-core", "near-sdk-macros", "near-sys", "near-token", @@ -2789,15 +2591,9 @@ dependencies = [ "serde_json", "strum 0.26.3", "strum_macros 0.26.4", - "syn 2.0.106", + "syn 2.0.117", ] -[[package]] -name = "near-stdx" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13869f432b1b457c36c9332471d868da6b0ee971e2da0b94deb376aba8d27e6b" - [[package]] name = "near-stdx" version = "0.34.7" @@ -2806,19 +2602,9 @@ checksum = "2c5dc0456309fcb256a0609d829971fd99f343e1a7f3b72f85364e64250a4555" [[package]] name = "near-sys" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ea77bb86969ff09c83faa517b2209c4876928381ed31e29c06cae2de0a216b" - -[[package]] -name = "near-time" -version = "0.30.3" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1b143d7249e64ebfd1f6da7b1c15f4a9d0ee5d9be3556771a5b4b665a2c22cb" -dependencies = [ - "serde", - "time", -] +checksum = "4e31458b18c7d880beea4372bd1a704679713a36165048961cd593ff8df46002" [[package]] name = "near-time" @@ -2853,11 +2639,11 @@ dependencies = [ "ed25519-dalek", "enum-map", "lru", - "near-crypto 0.34.7", - "near-parameters 0.34.7", - "near-primitives-core 0.34.7", - "near-schema-checker-lib 0.34.7", - "near-stdx 0.34.7", + "near-crypto", + "near-parameters", + "near-primitives-core", + "near-schema-checker-lib", + "near-stdx", "num-rational", "parking_lot", "rand", @@ -2869,16 +2655,16 @@ dependencies = [ "sha3", "strum 0.24.1", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.18", "tracing", "zeropool-bn", ] [[package]] name = "near-workspaces" -version = "0.20.1" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "263c833751e15cd242beff1f72ae199d8f78a2b453852e88bbff47d43cb81ca9" +checksum = "1052c6f22494d9fbfb671a8efbc4f4c3a1fed0c8cac07336c97680c6088fca63" dependencies = [ "async-trait", "base64 0.22.1", @@ -2886,16 +2672,16 @@ dependencies = [ "cargo-near-build", "chrono", "fs2", - "json-patch", + "json-patch 2.0.0", "libc", "near-abi-client", - "near-account-id 1.1.3", - "near-crypto 0.30.3", + "near-account-id 2.6.0", + "near-crypto", "near-gas", "near-jsonrpc-client", "near-jsonrpc-primitives", - "near-primitives 0.30.3", - "near-sandbox-utils", + "near-primitives", + "near-sandbox", "near-token", "rand", "reqwest", @@ -3011,15 +2797,6 @@ dependencies = [ "libc", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "omni-utils" version = "0.1.0" @@ -3038,14 +2815,14 @@ source = "git+https://github.com/near-one/omni-utils?rev=f9bc3ea4a72e97f02660b8f dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "opaque-debug" @@ -3055,12 +2832,12 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" dependencies = [ - "bitflags 2.9.4", - "cfg-if 1.0.3", + "bitflags 2.11.0", + "cfg-if 1.0.4", "foreign-types", "libc", "once_cell", @@ -3076,20 +2853,20 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" dependencies = [ "cc", "libc", @@ -3132,6 +2909,15 @@ dependencies = [ "zip32", ] +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-float" version = "4.6.0" @@ -3155,9 +2941,9 @@ dependencies = [ [[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", @@ -3165,26 +2951,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 1.0.3", + "cfg-if 1.0.4", "libc", - "redox_syscall", + "redox_syscall 0.5.18", "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", + "windows-link", ] [[package]] @@ -3211,18 +2986,6 @@ dependencies = [ "camino", ] -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", - "password-hash", - "sha2 0.10.9", -] - [[package]] name = "percent-encoding" version = "2.3.2" @@ -3231,35 +2994,29 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkcs8" @@ -3277,6 +3034,12 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "poly1305" version = "0.8.0" @@ -3290,9 +3053,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -3329,7 +3092,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -3348,16 +3111,16 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" dependencies = [ - "toml", + "toml 0.5.11", ] [[package]] name = "proc-macro-crate" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit", + "toml_edit 0.25.10+spec-1.1.0", ] [[package]] @@ -3379,23 +3142,23 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.40" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -3406,6 +3169,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -3440,7 +3209,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "serde", ] @@ -3496,49 +3265,47 @@ 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 2.9.4", + "bitflags 2.11.0", ] [[package]] -name = "redox_users" -version = "0.4.6" +name = "redox_syscall" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", + "bitflags 2.11.0", ] [[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.117", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -3548,9 +3315,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -3559,15 +3326,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64 0.22.1", "bytes", @@ -3620,8 +3387,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", - "cfg-if 1.0.3", - "getrandom 0.2.16", + "cfg-if 1.0.4", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -3645,12 +3412,6 @@ dependencies = [ "digest 0.11.0-pre.9", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hex" version = "2.1.0" @@ -3668,22 +3429,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "log", "once_cell", @@ -3694,20 +3455,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "ring", "rustls-pki-types", @@ -3722,9 +3492,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "sapling-crypto" @@ -3768,7 +3538,7 @@ dependencies = [ "core2", "crypto-shared", "ed25519-dalek", - "getrandom 0.2.16", + "getrandom 0.2.17", "hex", "k256", "near-contract-standards", @@ -3788,11 +3558,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -3821,9 +3591,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.0.4" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -3840,7 +3610,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -3905,12 +3675,12 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.9.4", - "core-foundation", + "bitflags 2.11.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -3918,9 +3688,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -3928,31 +3698,64 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-untagged" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9faf48a4a2d2693be24c6289dbe26552776eb7737074e6722891fadbe6c5058" +dependencies = [ + "erased-serde", + "serde", + "serde_core", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float 2.10.1", + "serde", +] + +[[package]] +name = "serde_core" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -3963,20 +3766,21 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.13.0", "itoa", "memchr", - "ryu", "serde", + "serde_core", + "zmij", ] [[package]] @@ -3987,7 +3791,16 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", ] [[package]] @@ -4012,9 +3825,9 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.0", + "indexmap 2.13.0", "schemars 0.9.0", - "schemars 1.0.4", + "schemars 1.2.1", "serde", "serde_derive", "serde_json", @@ -4031,7 +3844,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4040,7 +3853,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.0", + "indexmap 2.13.0", "itoa", "ryu", "serde", @@ -4057,24 +3870,13 @@ dependencies = [ "serde", ] -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if 1.0.3", - "cpufeatures", - "digest 0.10.7", -] - [[package]] name = "sha2" version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "cpufeatures", "digest 0.10.7", ] @@ -4085,7 +3887,7 @@ version = "0.11.0-pre.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" dependencies = [ - "cfg-if 1.0.3", + "cfg-if 1.0.4", "cpufeatures", "digest 0.11.0-pre.9", ] @@ -4108,10 +3910,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -4125,6 +3928,12 @@ dependencies = [ "rand_core", ] +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + [[package]] name = "sinsemilla" version = "0.1.0" @@ -4136,17 +3945,11 @@ dependencies = [ "subtle", ] -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" @@ -4162,17 +3965,17 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4193,9 +3996,9 @@ 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 = "static_assertions" @@ -4253,7 +4056,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4275,9 +4078,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -4301,17 +4104,17 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.9.4", - "core-foundation", + "bitflags 2.11.0", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -4333,26 +4136,25 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" dependencies = [ "filetime", "libc", - "xattr", ] [[package]] name = "tempfile" -version = "3.21.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -4366,11 +4168,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.18", ] [[package]] @@ -4381,18 +4183,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4406,11 +4208,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.43" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", + "itoa", "num-conv", "powerfmt", "serde", @@ -4420,15 +4223,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", @@ -4436,9 +4239,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", @@ -4446,9 +4249,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -4461,33 +4264,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" 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.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4513,9 +4313,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ "rustls", "tokio", @@ -4523,9 +4323,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -4543,11 +4343,35 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + [[package]] name = "toml_datetime" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] [[package]] name = "toml_edit" @@ -4555,16 +4379,46 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.0", - "toml_datetime", - "winnow", + "indexmap 2.13.0", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.15", +] + +[[package]] +name = "toml_edit" +version = "0.25.10+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b" +dependencies = [ + "indexmap 2.13.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.1", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.1", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -4577,11 +4431,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", "bytes", "futures-util", "http", @@ -4607,9 +4461,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -4618,20 +4472,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", ] @@ -4642,11 +4496,17 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +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 = "uint" @@ -4662,9 +4522,15 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-segmentation" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-xid" @@ -4678,7 +4544,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common 0.1.6", + "crypto-common 0.1.7", "subtle", ] @@ -4696,20 +4562,38 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.12.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" +checksum = "e860613aec8c8643c53fb4a3ea3bed801ac09d982b75cb5a1c579e410ef043c2" dependencies = [ "base64 0.22.1", - "flate2", + "cc", + "cookie_store", "log", "once_cell", + "percent-encoding", "rustls", + "rustls-pemfile", "rustls-pki-types", - "url", + "serde", + "serde_json", + "ureq-proto", + "utf-8", "webpki-roots 0.26.11", ] +[[package]] +name = "ureq-proto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42506c1d9fc65bcf2508cb8f9b5e7d21f88e71567fbb7595ca5e5bd5218ca7db" +dependencies = [ + "base64 0.22.1", + "http", + "httparse", + "log", +] + [[package]] name = "uriparse" version = "0.6.4" @@ -4722,16 +4606,23 @@ dependencies = [ [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", "percent-encoding", "serde", + "serde_derive", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -4758,7 +4649,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4777,59 +4668,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.3+wasi-0.2.4" +name = "wasip2" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] -name = "wasm-bindgen" -version = "0.2.101" +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "cfg-if 1.0.3", - "once_cell", - "rustversion", - "wasm-bindgen-macro", - "wasm-bindgen-shared", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.101" +name = "wasm-bindgen" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", + "cfg-if 1.0.4", + "once_cell", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.51" +version = "0.4.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" dependencies = [ - "cfg-if 1.0.3", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.101" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4837,31 +4720,65 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.101" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.101" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder", + "wasmparser", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", + "semver", +] + [[package]] name = "web-sys" -version = "0.3.78" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" dependencies = [ "js-sys", "wasm-bindgen", @@ -4873,14 +4790,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.2", + "webpki-roots 1.0.6", ] [[package]] name = "webpki-roots" -version = "1.0.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] @@ -4921,9 +4838,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.2" +version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ "windows-implement", "windows-interface", @@ -4934,37 +4851,37 @@ dependencies = [ [[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.117", ] [[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.117", ] [[package]] name = "windows-link" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-registry" -version = "0.5.3" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ "windows-link", "windows-result", @@ -4973,18 +4890,18 @@ dependencies = [ [[package]] name = "windows-result" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ "windows-link", ] @@ -4995,7 +4912,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -5004,16 +4921,16 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] name = "windows-sys" -version = "0.60.2" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-targets 0.53.3", + "windows-link", ] [[package]] @@ -5022,31 +4939,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -5055,84 +4955,42 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -5140,58 +4998,132 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" +name = "winnow" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] [[package]] name = "winnow" -version = "0.7.13" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] [[package]] name = "wit-bindgen" -version = "0.45.1" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] [[package]] -name = "writeable" -version = "0.6.1" +name = "wit-bindgen-core" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser", +] [[package]] -name = "wyz" -version = "0.5.1" +name = "wit-bindgen-rust" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ - "tap", + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease 0.2.37", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", ] [[package]] -name = "xattr" -version = "1.5.1" +name = "wit-bindgen-rust-macro" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" dependencies = [ - "libc", - "rustix", + "anyhow", + "prettyplease 0.2.37", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", ] [[package]] -name = "yoke" -version = "0.8.0" +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser", +] + +[[package]] +name = "writeable" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "yoke" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +dependencies = [ "stable_deref_trait", "yoke-derive", "zerofrom", @@ -5199,13 +5131,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "synstructure", ] @@ -5248,9 +5180,9 @@ dependencies = [ [[package]] name = "zcash_primitives" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a0c26140f2e6b760dcf052d22bd01f1a8773cdefb650ff5829430798a21b85b" +checksum = "76362b79e432bde2f22b3defcb6919d4fb50446985997169da3cc3ae4035a6d9" dependencies = [ "bip32", "blake2b_simd", @@ -5289,9 +5221,9 @@ dependencies = [ [[package]] name = "zcash_protocol" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cfe9e3fb08e6851efe3d0ced457e4cb2c305daa928f64cb0d70c040f8f8336" +checksum = "12cc76dd1f77be473e5829dbd34890bcd36d08b1e8dde2da0aea355c812a8f28" dependencies = [ "core2", "document-features", @@ -5334,63 +5266,63 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "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", ] [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -5408,9 +5340,9 @@ dependencies = [ [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", @@ -5419,9 +5351,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", @@ -5430,41 +5362,22 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac 0.12.1", - "pbkdf2", - "sha1", - "time", - "zstd 0.11.2+zstd.1.5.2", + "syn 2.0.117", ] [[package]] name = "zip32" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13ff9ea444cdbce820211f91e6aa3d3a56bde7202d3c0961b7c38f793abf5637" +checksum = "b64bf5186a8916f7a48f2a98ef599bf9c099e2458b36b819e393db1c0e768c4b" dependencies = [ + "bech32", "blake2b_simd", "memuse", "subtle", @@ -5472,13 +5385,10 @@ dependencies = [ ] [[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" +name = "zmij" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zstd" @@ -5486,17 +5396,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" dependencies = [ - "zstd-safe 7.2.4", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] diff --git a/Makefile b/Makefile index f8dd2a5..1f3ceb4 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ BRIDGE_MANIFEST := $(MAKEFILE_DIR)/contracts/satoshi-bridge/Cargo.toml RFLAGS="-C link-arg=-s" -FEATURES = bitcoin zcash +FEATURES = bitcoin zcash dash release: $(addprefix build-,$(FEATURES)) $(call build_release_wasm,nbtc,nbtc) diff --git a/contracts/satoshi-bridge/Cargo.toml b/contracts/satoshi-bridge/Cargo.toml index 3acc25a..77f373b 100644 --- a/contracts/satoshi-bridge/Cargo.toml +++ b/contracts/satoshi-bridge/Cargo.toml @@ -27,6 +27,9 @@ container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "- [package.metadata.near.reproducible_build.variant.zcash] container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-abi", "--no-default-features", "--features", "zcash"] +[package.metadata.near.reproducible_build.variant.dash] +container_build_command = ["cargo", "near", "build", "non-reproducible-wasm", "--locked", "--no-abi", "--no-default-features", "--features", "dash"] + [dependencies] near-sdk.workspace = true near-contract-standards.workspace = true @@ -44,12 +47,11 @@ sapling-crypto = { version = "0.5.0", default-features = false, optional = true zcash_protocol = { version = "0.6.1" } core2 = { version = "0.3", optional = true } zcash_address = { version = "0.9.0" } - [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2.12", features = ["custom"] } [dev-dependencies] -near-workspaces = { version = "0.20", features = ["unstable"] } +near-workspaces = { version = "0.22", features = ["unstable"] } tokio = { version = "1.12.0", features = ["full"] } rand = "0.8" hex = "0.4" @@ -59,3 +61,4 @@ bs58 = "0.5" default = [] zcash = ["zcash_primitives", "zcash_transparent", "orchard", "core2", "sapling-crypto"] bitcoin = [] +dash = [] diff --git a/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs b/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs index 385470e..56225cb 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/active_utxo_management.rs @@ -1,11 +1,10 @@ -use crate::{ - env, near, require, serde_json, BTCPendingInfo, Contract, ContractExt, Gas, Promise, - PromiseOrValue, MAX_BOOL_RESULT, -}; +use super::assert_verification_succeeded; +use crate::{env, near, BTCPendingInfo, Contract, ContractExt, Gas, Promise, PromiseOrValue}; pub const GAS_FOR_VERIFY_ACTIVE_UTXO_MANAGEMENT_CALL_BACK: Gas = Gas::from_tgas(50); impl Contract { + #[allow(unused_variables)] pub fn internal_verify_active_utxo_management( &self, tx_id: String, @@ -16,15 +15,24 @@ impl Contract { ) -> Promise { let config = self.internal_config(); let confirmations = self.get_confirmations(config, btc_pending_info.actual_received_amount); - self.verify_transaction_inclusion_promise( + + #[cfg(not(feature = "dash"))] + let verify_promise = self.verify_transaction_inclusion_promise( config.btc_light_client_account_id.clone(), tx_id.clone(), tx_block_blockhash, tx_index, merkle_proof, confirmations, - ) - .then( + ); + + #[cfg(feature = "dash")] + let verify_promise = { + let signed_tx_id = btc_pending_info.get_signed_tx_id(); + self.verify_transaction_via_mpc(signed_tx_id, confirmations) + }; + + verify_promise.then( Self::ext(env::current_account_id()) .with_static_gas(GAS_FOR_VERIFY_ACTIVE_UTXO_MANAGEMENT_CALL_BACK) .verify_active_utxo_management_callback(tx_id), @@ -39,11 +47,7 @@ impl Contract { &mut self, tx_id: String, ) -> PromiseOrValue { - let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) - .expect("Call verify_transaction_inclusion failed"); - let is_valid = serde_json::from_slice::(&result_bytes) - .expect("verify_transaction_inclusion return not bool"); - require!(is_valid, "verify_transaction_inclusion return false"); + assert_verification_succeeded(); self.internal_unwrap_btc_pending_info(&tx_id) .assert_pending_verify(); self.internal_unwrap_mut_btc_pending_info(&tx_id) diff --git a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs index 6f9a40a..b83f7a4 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/deposit.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/deposit.rs @@ -1,11 +1,12 @@ use near_sdk::serde_json::Value; +use super::assert_verification_succeeded; use crate::{ burn::GAS_FOR_BURN_CALL, env, ext_nbtc, mint::{GAS_FOR_MINT_CALL, GAS_FOR_MINT_CALL_BACK}, near, require, serde_json, AccountId, Contract, ContractExt, DepositMsg, Event, Gas, NearToken, - PendingUTXOInfo, PostAction, Promise, PromiseOrValue, SafeDepositMsg, MAX_BOOL_RESULT, + PendingUTXOInfo, PostAction, Promise, PromiseOrValue, SafeDepositMsg, MAX_FT_TRANSFER_CALL_RESULT, U128, }; @@ -13,6 +14,7 @@ pub const GAS_FOR_VERIFY_DEPOSIT_CALL_BACK: Gas = Gas::from_tgas(190); pub const GAS_FOR_UNAVAILABLE_UTXO_CALL_BACK: Gas = Gas::from_tgas(20); impl Contract { + #[allow(unused_variables)] pub(crate) fn internal_verify_deposit( &mut self, deposit_amount: u128, @@ -29,6 +31,8 @@ impl Contract { } else { self.get_extra_msg_confirmations(config, deposit_amount) }; + + #[cfg(not(feature = "dash"))] let promise = self.verify_transaction_inclusion_promise( config.btc_light_client_account_id.clone(), pending_utxo_info.tx_id.clone(), @@ -38,6 +42,10 @@ impl Contract { confirmations, ); + #[cfg(feature = "dash")] + let promise = + self.verify_transaction_via_mpc(pending_utxo_info.tx_id.clone(), confirmations); + if deposit_amount < config.min_deposit_amount { promise.then( Self::ext(env::current_account_id()) @@ -67,7 +75,7 @@ impl Contract { } } - #[allow(clippy::too_many_arguments)] + #[allow(clippy::too_many_arguments, unused_variables)] pub(crate) fn internal_safe_verify_deposit( &mut self, deposit_amount: u128, @@ -80,6 +88,8 @@ impl Contract { ) -> Promise { let config = self.internal_config(); let confirmations = self.get_confirmations(config, deposit_amount); + + #[cfg(not(feature = "dash"))] let promise = self.verify_transaction_inclusion_promise( config.btc_light_client_account_id.clone(), pending_utxo_info.tx_id.clone(), @@ -89,6 +99,10 @@ impl Contract { confirmations, ); + #[cfg(feature = "dash")] + let promise = + self.verify_transaction_via_mpc(pending_utxo_info.tx_id.clone(), confirmations); + if deposit_amount < config.min_deposit_amount { promise.then( Self::ext(env::current_account_id()) @@ -118,11 +132,7 @@ impl Contract { recipient_id: AccountId, pending_utxo_info: PendingUTXOInfo, ) -> PromiseOrValue { - let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) - .expect("Call verify_transaction_inclusion failed"); - let is_valid = serde_json::from_slice::(&result_bytes) - .expect("verify_transaction_inclusion return not bool"); - require!(is_valid, "verify_transaction_inclusion return false"); + assert_verification_succeeded(); require!( self.data_mut() .verified_deposit_utxo @@ -153,11 +163,7 @@ impl Contract { pending_utxo_info: PendingUTXOInfo, post_actions: Option>, ) -> PromiseOrValue { - let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) - .expect("Call verify_transaction_inclusion failed"); - let is_valid = serde_json::from_slice::(&result_bytes) - .expect("verify_transaction_inclusion return not bool"); - require!(is_valid, "verify_transaction_inclusion return false"); + assert_verification_succeeded(); require!( self.data_mut() .verified_deposit_utxo @@ -183,11 +189,7 @@ impl Contract { msg: String, pending_utxo_info: PendingUTXOInfo, ) -> PromiseOrValue { - let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) - .expect("Call verify_transaction_inclusion failed"); - let is_valid = serde_json::from_slice::(&result_bytes) - .expect("verify_transaction_inclusion return not bool"); - require!(is_valid, "verify_transaction_inclusion return false"); + assert_verification_succeeded(); require!( self.data_mut() .verified_deposit_utxo diff --git a/contracts/satoshi-bridge/src/btc_light_client/mod.rs b/contracts/satoshi-bridge/src/btc_light_client/mod.rs index da52466..ccc5d57 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/mod.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/mod.rs @@ -5,11 +5,37 @@ use near_sdk::serde::{ }; use std::{fmt, str::FromStr}; +#[cfg(not(feature = "dash"))] +use crate::require; use crate::{env, ext_contract, near, AccountId, Contract, Gas, Promise}; pub mod active_utxo_management; pub mod deposit; pub mod withdraw; +#[cfg(not(feature = "dash"))] +pub(crate) const MAX_VERIFY_RESULT: usize = crate::MAX_BOOL_RESULT; +#[cfg(feature = "dash")] +pub(crate) const MAX_VERIFY_RESULT: usize = crate::MAX_MPC_VERIFY_RESULT; + +pub(crate) fn assert_verification_succeeded() { + let result_bytes = + env::promise_result_checked(0, MAX_VERIFY_RESULT).expect("Call verify_transaction failed"); + + #[cfg(not(feature = "dash"))] + { + let is_valid = crate::serde_json::from_slice::(&result_bytes) + .expect("verify_transaction_inclusion return not bool"); + require!(is_valid, "verify_transaction_inclusion return false"); + } + + #[cfg(feature = "dash")] + { + let _response: crate::mpc_verifier::VerifyForeignTransactionResponse = + crate::serde_json::from_slice(&result_bytes) + .expect("ERR_MPC_VERIFY: failed to deserialize response"); + } +} + pub const GAS_FOR_VERIFY_TRANSACTION_INCLUSION: Gas = Gas::from_tgas(10); pub const GAS_FOR_GET_LAST_BLOCK_HEIGHT: Gas = Gas::from_tgas(3); #[near(serializers = [borsh])] diff --git a/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs b/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs index 794a068..7994d2b 100644 --- a/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs +++ b/contracts/satoshi-bridge/src/btc_light_client/withdraw.rs @@ -1,12 +1,11 @@ -use crate::{ - env, near, require, serde_json, BTCPendingInfo, Contract, ContractExt, Gas, Promise, - PromiseOrValue, MAX_BOOL_RESULT, -}; +use super::assert_verification_succeeded; +use crate::{env, near, BTCPendingInfo, Contract, ContractExt, Gas, Promise, PromiseOrValue}; pub const GAS_FOR_VERIFY_WITHDRAW_CALL_BACK: Gas = Gas::from_tgas(50); pub const GAS_FOR_VERIFY_CANCEL_WITHDRAW_CALL_BACK: Gas = Gas::from_tgas(50); impl Contract { + #[allow(unused_variables)] pub fn internal_verify_withdraw( &self, tx_id: String, @@ -17,15 +16,27 @@ impl Contract { ) -> Promise { let config = self.internal_config(); let confirmations = self.get_confirmations(config, btc_pending_info.actual_received_amount); - self.verify_transaction_inclusion_promise( + + #[cfg(not(feature = "dash"))] + let verify_promise = self.verify_transaction_inclusion_promise( config.btc_light_client_account_id.clone(), tx_id.clone(), tx_block_blockhash, tx_index, merkle_proof, confirmations, - ) - .then( + ); + + // For DASH (legacy P2PKH), the on-chain txid differs from the unsigned pending ID + // because script_sig is included in the txid hash. Compute the actual signed txid + // from tx_bytes_with_sign for the MPC verification query. + #[cfg(feature = "dash")] + let verify_promise = { + let signed_tx_id = btc_pending_info.get_signed_tx_id(); + self.verify_transaction_via_mpc(signed_tx_id, confirmations) + }; + + verify_promise.then( Self::ext(env::current_account_id()) .with_static_gas(GAS_FOR_VERIFY_CANCEL_WITHDRAW_CALL_BACK) .internal_verify_withdraw_callback(tx_id), @@ -37,11 +48,7 @@ impl Contract { impl Contract { #[private] pub fn internal_verify_withdraw_callback(&mut self, tx_id: String) -> PromiseOrValue { - let result_bytes = env::promise_result_checked(0, MAX_BOOL_RESULT) - .expect("Call verify_transaction_inclusion failed"); - let is_valid = serde_json::from_slice::(&result_bytes) - .expect("verify_transaction_inclusion return not bool"); - require!(is_valid, "verify_transaction_inclusion return false"); + assert_verification_succeeded(); self.internal_unwrap_btc_pending_info(&tx_id) .assert_pending_verify(); self.internal_unwrap_mut_btc_pending_info(&tx_id) diff --git a/contracts/satoshi-bridge/src/btc_pending_info.rs b/contracts/satoshi-bridge/src/btc_pending_info.rs index cdf15dd..59093a2 100644 --- a/contracts/satoshi-bridge/src/btc_pending_info.rs +++ b/contracts/satoshi-bridge/src/btc_pending_info.rs @@ -282,6 +282,16 @@ impl BTCPendingInfo { PsbtWrapper::deserialize(&self.psbt_hex) } + pub fn get_signed_tx_id(&self) -> String { + let tx_bytes = self + .tx_bytes_with_sign + .as_ref() + .expect("Missing tx_bytes_with_sign"); + let tx: bitcoin::Transaction = + bitcoin::consensus::deserialize(tx_bytes).expect("Deserialization tx_bytes failed"); + tx.compute_txid().to_string() + } + pub fn get_transaction(&self, chain: &network::Chain) -> WrappedTransaction { WrappedTransaction::decode( self.tx_bytes_with_sign diff --git a/contracts/satoshi-bridge/src/dash_utils/contract_methods.rs b/contracts/satoshi-bridge/src/dash_utils/contract_methods.rs new file mode 100644 index 0000000..8efefc7 --- /dev/null +++ b/contracts/satoshi-bridge/src/dash_utils/contract_methods.rs @@ -0,0 +1,116 @@ +use crate::dash_utils::types::ChainSpecificData; +use crate::env; +use crate::psbt_wrapper::PsbtWrapper; +use crate::{BTCPendingInfo, Contract, Event}; +use bitcoin::{OutPoint, TxOut}; +use near_sdk::json_types::U128; +use near_sdk::{require, AccountId, PromiseOrValue}; + +macro_rules! define_rbf_method { + ($method:ident, $internal_fn:ident) => { + pub(crate) fn $method( + &mut self, + account_id: AccountId, + original_btc_pending_verify_id: String, + output: Vec, + _chain_specific_data: Option, + ) { + let predecessor_account_id = env::predecessor_account_id(); + let original_tx_btc_pending_info = + self.internal_unwrap_btc_pending_info(&original_btc_pending_verify_id); + + let new_psbt = self.generate_psbt_from_original_psbt_and_new_output( + original_tx_btc_pending_info, + output, + ); + + let btc_pending_id = self.$internal_fn( + &account_id, + original_btc_pending_verify_id, + new_psbt, + predecessor_account_id, + ); + + self.internal_unwrap_mut_account(&account_id) + .btc_pending_sign_id = Some(btc_pending_id.clone()); + + Event::GenerateBtcPendingInfo { + account_id: &account_id, + btc_pending_id: &btc_pending_id, + } + .emit(); + } + }; +} + +impl Contract { + pub(crate) fn check_psbt_chain_specific( + &self, + _psbt: &PsbtWrapper, + _gas_fee: u128, + _target_btc_address: String, + ) { + } + + pub(crate) fn check_withdraw_chain_specific( + original_tx_btc_pending_info: &BTCPendingInfo, + gas_fee: u128, + ) { + let max_gas_fee = original_tx_btc_pending_info.get_max_gas_fee(); + let additional_gas_amount = gas_fee.saturating_sub(max_gas_fee); + require!(additional_gas_amount > 0, "No gas increase."); + } + + #[allow(clippy::too_many_arguments)] + pub(crate) fn ft_on_transfer_withdraw_chain_specific( + &mut self, + sender_id: AccountId, + amount: u128, + target_btc_address: String, + input: Vec, + output: Vec, + max_gas_fee: Option, + _chain_specific_data: Option, + ) -> PromiseOrValue { + self.create_btc_pending_info( + sender_id, + amount, + target_btc_address, + PsbtWrapper::new(input, output), + max_gas_fee, + ); + PromiseOrValue::Value(U128(0)) + } + + define_rbf_method!(withdraw_rbf_chain_specific, internal_withdraw_rbf); + define_rbf_method!(cancel_withdraw_chain_specific, internal_cancel_withdraw); + define_rbf_method!( + cancel_active_utxo_management_chain_specific, + internal_cancel_active_utxo_management + ); + define_rbf_method!( + active_utxo_management_rbf_chain_specific, + internal_active_utxo_management_rbf + ); + + pub(crate) fn active_utxo_management_chain_specific( + &mut self, + account_id: AccountId, + input: Vec, + output: Vec, + ) { + self.create_active_utxo_management_pending_info( + account_id, + PsbtWrapper::new(input, output), + ); + } + + pub(crate) fn generate_psbt_from_original_psbt_and_new_output( + &self, + original_tx_btc_pending_info: &BTCPendingInfo, + output: Vec, + ) -> PsbtWrapper { + let original_psbt = original_tx_btc_pending_info.get_psbt(); + PsbtWrapper::from_original_psbt(original_psbt, output) + } +} diff --git a/contracts/satoshi-bridge/src/dash_utils/mod.rs b/contracts/satoshi-bridge/src/dash_utils/mod.rs new file mode 100644 index 0000000..18ae7bc --- /dev/null +++ b/contracts/satoshi-bridge/src/dash_utils/mod.rs @@ -0,0 +1,4 @@ +pub mod contract_methods; +pub mod psbt_wrapper; +pub mod transaction; +pub mod types; diff --git a/contracts/satoshi-bridge/src/dash_utils/psbt_wrapper.rs b/contracts/satoshi-bridge/src/dash_utils/psbt_wrapper.rs new file mode 100644 index 0000000..a1d0f49 --- /dev/null +++ b/contracts/satoshi-bridge/src/dash_utils/psbt_wrapper.rs @@ -0,0 +1,314 @@ +use crate::{generate_utxo_storage_key, SignatureResponse}; + +use bitcoin::absolute::LockTime; +use bitcoin::consensus::serialize; +use bitcoin::hashes::Hash; +use bitcoin::sighash::SighashCache; +use bitcoin::transaction::Version; +use bitcoin::Transaction as BtcTransaction; +use bitcoin::{OutPoint, ScriptBuf, TxIn, TxOut, Witness}; +use near_sdk::require; + +const PSBT_FORMAT_VERSION: u8 = 1; +const MAX_TX_BYTES: usize = 1_000_000; +const MAX_ITEM_COUNT: usize = 1_000; +const MAX_ELEMENT_BYTES: usize = 100_000; + +pub struct PsbtWrapper { + unsigned_tx: BtcTransaction, + input_utxos: Vec>, + final_script_sigs: Vec>, +} + +impl PsbtWrapper { + pub fn new(input: Vec, output: Vec) -> Self { + require!(!input.is_empty(), "empty input"); + require!(!output.is_empty(), "empty output"); + + // Dash does not support RBF (replacement txs are rejected with txn-mempool-conflict). + // Use MAX to signal the transaction is final. + let sequence = bitcoin::Sequence::MAX; + let input_count = input.len(); + + let transaction = BtcTransaction { + version: Version::TWO, + lock_time: LockTime::ZERO, + input: input + .into_iter() + .map(|previous_output| TxIn { + previous_output, + sequence, + ..Default::default() + }) + .collect(), + output, + }; + + Self { + unsigned_tx: transaction, + input_utxos: vec![None; input_count], + final_script_sigs: vec![None; input_count], + } + } + + pub fn from_original_psbt( + original_psbt: crate::psbt_wrapper::PsbtWrapper, + output: Vec, + ) -> Self { + let sequence = bitcoin::Sequence::MAX; + let input_count = original_psbt.unsigned_tx.input.len(); + + let transaction = BtcTransaction { + version: Version::TWO, + lock_time: LockTime::ZERO, + input: original_psbt + .unsigned_tx + .input + .into_iter() + .map(|original_input| TxIn { + previous_output: original_input.previous_output, + sequence, + ..Default::default() + }) + .collect(), + output, + }; + + Self { + unsigned_tx: transaction, + input_utxos: original_psbt.input_utxos, + final_script_sigs: vec![None; input_count], + } + } + + pub fn set_input_utxo(&mut self, input_utxo: Vec) { + input_utxo + .iter() + .enumerate() + .for_each(|(i, v)| self.input_utxos[i] = Some(v.clone())); + } + + pub fn get_output(&self) -> &Vec { + &self.unsigned_tx.output + } + + pub fn get_input_num(&self) -> usize { + self.unsigned_tx.input.len() + } + + pub fn get_output_num(&self) -> usize { + self.unsigned_tx.output.len() + } + + pub fn get_utxo_storage_keys(&self) -> Vec { + self.unsigned_tx + .input + .clone() + .into_iter() + .map(|out_point| { + generate_utxo_storage_key( + out_point.previous_output.txid.to_string(), + out_point.previous_output.vout, + ) + }) + .collect() + } + + pub fn add_extra_outputs(&self, _actual_received_amounts: &mut [u128]) -> u128 { + 0 + } + + pub fn serialize(&self) -> String { + let mut buf = Vec::::new(); + buf.push(PSBT_FORMAT_VERSION); + + let tx_bytes = serialize(&self.unsigned_tx); + buf.extend_from_slice(&(tx_bytes.len() as u64).to_le_bytes()); + buf.extend_from_slice(&tx_bytes); + + buf.extend_from_slice(&(self.input_utxos.len() as u64).to_le_bytes()); + for utxo in &self.input_utxos { + match utxo { + Some(txout) => { + buf.push(1); + let utxo_bytes = serialize(txout); + buf.extend_from_slice(&(utxo_bytes.len() as u64).to_le_bytes()); + buf.extend_from_slice(&utxo_bytes); + } + None => buf.push(0), + } + } + + buf.extend_from_slice(&(self.final_script_sigs.len() as u64).to_le_bytes()); + for sig in &self.final_script_sigs { + match sig { + Some(script) => { + buf.push(1); + let script_bytes = script.as_bytes(); + buf.extend_from_slice(&(script_bytes.len() as u64).to_le_bytes()); + buf.extend_from_slice(script_bytes); + } + None => buf.push(0), + } + } + + hex::encode(buf) + } + + pub fn deserialize(psbt_hex: &String) -> Self { + let bytes = hex::decode(psbt_hex).expect("ERR_INVALID_PSBT_HEX"); + let mut cursor = std::io::Cursor::new(&bytes); + + use std::io::Read; + + let mut version_buf = [0u8; 1]; + cursor + .read_exact(&mut version_buf) + .expect("ERR_INVALID_PSBT"); + require!( + version_buf[0] == PSBT_FORMAT_VERSION, + "ERR_INVALID_PSBT: unsupported version" + ); + + let mut tx_len_buf = [0u8; 8]; + cursor + .read_exact(&mut tx_len_buf) + .expect("ERR_INVALID_PSBT"); + let tx_len = u64::from_le_bytes(tx_len_buf) as usize; + require!(tx_len <= MAX_TX_BYTES, "ERR_INVALID_PSBT: tx too large"); + let mut tx_bytes = vec![0u8; tx_len]; + cursor.read_exact(&mut tx_bytes).expect("ERR_INVALID_PSBT"); + let unsigned_tx: BtcTransaction = + bitcoin::consensus::deserialize(&tx_bytes).expect("ERR_INVALID_PSBT"); + + let mut utxo_count_buf = [0u8; 8]; + cursor + .read_exact(&mut utxo_count_buf) + .expect("ERR_INVALID_PSBT"); + let utxo_count = u64::from_le_bytes(utxo_count_buf) as usize; + require!( + utxo_count <= MAX_ITEM_COUNT, + "ERR_INVALID_PSBT: too many utxos" + ); + let mut input_utxos = Vec::with_capacity(utxo_count); + for _ in 0..utxo_count { + let mut flag = [0u8; 1]; + cursor.read_exact(&mut flag).expect("ERR_INVALID_PSBT"); + if flag[0] == 1 { + let mut utxo_len_buf = [0u8; 8]; + cursor + .read_exact(&mut utxo_len_buf) + .expect("ERR_INVALID_PSBT"); + let utxo_len = u64::from_le_bytes(utxo_len_buf) as usize; + require!( + utxo_len <= MAX_ELEMENT_BYTES, + "ERR_INVALID_PSBT: utxo too large" + ); + let mut utxo_bytes = vec![0u8; utxo_len]; + cursor + .read_exact(&mut utxo_bytes) + .expect("ERR_INVALID_PSBT"); + let txout: TxOut = + bitcoin::consensus::deserialize(&utxo_bytes).expect("ERR_INVALID_PSBT"); + input_utxos.push(Some(txout)); + } else { + input_utxos.push(None); + } + } + + let mut sig_count_buf = [0u8; 8]; + cursor + .read_exact(&mut sig_count_buf) + .expect("ERR_INVALID_PSBT"); + let sig_count = u64::from_le_bytes(sig_count_buf) as usize; + require!( + sig_count <= MAX_ITEM_COUNT, + "ERR_INVALID_PSBT: too many script_sigs" + ); + let mut final_script_sigs = Vec::with_capacity(sig_count); + for _ in 0..sig_count { + let mut flag = [0u8; 1]; + cursor.read_exact(&mut flag).expect("ERR_INVALID_PSBT"); + if flag[0] == 1 { + let mut script_len_buf = [0u8; 8]; + cursor + .read_exact(&mut script_len_buf) + .expect("ERR_INVALID_PSBT"); + let script_len = u64::from_le_bytes(script_len_buf) as usize; + require!( + script_len <= MAX_ELEMENT_BYTES, + "ERR_INVALID_PSBT: script too large" + ); + let mut script_bytes = vec![0u8; script_len]; + cursor + .read_exact(&mut script_bytes) + .expect("ERR_INVALID_PSBT"); + final_script_sigs.push(Some(ScriptBuf::from_bytes(script_bytes))); + } else { + final_script_sigs.push(None); + } + } + + Self { + unsigned_tx, + input_utxos, + final_script_sigs, + } + } + + pub fn extract_tx_bytes_with_sign(&self) -> Vec { + let mut signed_tx = self.unsigned_tx.clone(); + + for (i, sig) in self.final_script_sigs.iter().enumerate() { + if let Some(script_sig) = sig { + signed_tx.input[i].script_sig = script_sig.clone(); + } + } + + for input in &mut signed_tx.input { + input.witness = Witness::default(); + } + + serialize(&signed_tx) + } + + pub fn get_pending_id(&self) -> String { + self.unsigned_tx.compute_txid().to_string() + } + + #[allow(unused_variables)] + pub fn get_hash_to_sign(&self, vin: usize, public_keys: &[bitcoin::PublicKey]) -> [u8; 32] { + let input_utxo = self.input_utxos[vin] + .as_ref() + .expect("ERR_MISSING_INPUT_UTXO"); + + let cache = SighashCache::new(self.unsigned_tx.clone()); + cache + .legacy_signature_hash( + vin, + &input_utxo.script_pubkey, + bitcoin::EcdsaSighashType::All.to_u32(), + ) + .expect("ERR_SIGHASH") + .to_raw_hash() + .to_byte_array() + } + + pub fn save_signature( + &mut self, + sign_index: usize, + signature: SignatureResponse, + public_key: bitcoin::secp256k1::PublicKey, + ) { + let script_sig = bitcoin::script::Builder::new() + .push_slice(signature.to_btc_signature().serialize()) + .push_key(&bitcoin::PublicKey::new(public_key)) + .into_script(); + + self.final_script_sigs[sign_index] = Some(script_sig); + } + + pub fn get_recipient_address(&self) -> Option { + None + } +} diff --git a/contracts/satoshi-bridge/src/dash_utils/transaction.rs b/contracts/satoshi-bridge/src/dash_utils/transaction.rs new file mode 100644 index 0000000..15349d2 --- /dev/null +++ b/contracts/satoshi-bridge/src/dash_utils/transaction.rs @@ -0,0 +1,41 @@ +use crate::network; +use bitcoin::consensus::{Decodable, Encodable}; +use bitcoin::{absolute, Transaction as BtcTransaction, TxOut, Txid}; + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct Transaction { + pub inner_tx: BtcTransaction, +} + +impl Transaction { + pub fn compute_txid(&self) -> Txid { + self.inner_tx.compute_txid() + } + + pub fn output(&self) -> Vec { + self.inner_tx.output.clone() + } + + pub fn lock_time(&self) -> absolute::LockTime { + self.inner_tx.lock_time + } + + pub fn encode(&self) -> Result, bitcoin::io::Error> { + let mut buf = Vec::new(); + self.inner_tx.consensus_encode(&mut buf)?; + Ok(buf) + } + + pub fn decode( + data: &[u8], + _chain: &network::Chain, + ) -> Result { + let mut cursor = bitcoin::io::Cursor::new(data); + let tx = BtcTransaction::consensus_decode(&mut cursor)?; + Ok(Self { inner_tx: tx }) + } + + pub fn tx_bytes_with_sign(tx: bitcoin::Transaction) -> Result, bitcoin::io::Error> { + Transaction { inner_tx: tx }.encode() + } +} diff --git a/contracts/satoshi-bridge/src/dash_utils/types.rs b/contracts/satoshi-bridge/src/dash_utils/types.rs new file mode 100644 index 0000000..137cd84 --- /dev/null +++ b/contracts/satoshi-bridge/src/dash_utils/types.rs @@ -0,0 +1,4 @@ +use near_sdk::near; + +#[near(serializers = [json])] +pub struct ChainSpecificData {} diff --git a/contracts/satoshi-bridge/src/lib.rs b/contracts/satoshi-bridge/src/lib.rs index a0e00d8..5985198 100644 --- a/contracts/satoshi-bridge/src/lib.rs +++ b/contracts/satoshi-bridge/src/lib.rs @@ -18,8 +18,10 @@ use bitcoin::{absolute::LockTime, Amount, OutPoint, PublicKey as BtcPublicKey, S pub mod account; pub mod api; -#[cfg(not(feature = "zcash"))] +#[cfg(not(any(feature = "zcash", feature = "dash")))] pub mod bitcoin_utils; +#[cfg(feature = "dash")] +pub mod dash_utils; #[cfg(feature = "zcash")] pub mod zcash_utils; @@ -32,6 +34,8 @@ pub mod event; pub mod json_utils; pub mod kdf; pub mod legacy; +#[cfg(feature = "dash")] +pub mod mpc_verifier; pub mod nbtc; pub mod network; pub mod psbt; @@ -58,13 +62,20 @@ pub use crate::token_transfer::*; pub use crate::utils::*; pub use crate::utxo::*; -#[cfg(not(feature = "zcash"))] +#[cfg(not(any(feature = "zcash", feature = "dash")))] pub use crate::bitcoin_utils::psbt_wrapper; -#[cfg(not(feature = "zcash"))] +#[cfg(not(any(feature = "zcash", feature = "dash")))] pub use crate::bitcoin_utils::transaction::Transaction as WrappedTransaction; -#[cfg(not(feature = "zcash"))] +#[cfg(not(any(feature = "zcash", feature = "dash")))] use crate::bitcoin_utils::types::ChainSpecificData; +#[cfg(feature = "dash")] +pub use crate::dash_utils::psbt_wrapper; +#[cfg(feature = "dash")] +pub use crate::dash_utils::transaction::Transaction as WrappedTransaction; +#[cfg(feature = "dash")] +use crate::dash_utils::types::ChainSpecificData; + #[cfg(feature = "zcash")] pub use crate::zcash_utils::contract_methods::*; #[cfg(feature = "zcash")] diff --git a/contracts/satoshi-bridge/src/mpc_verifier.rs b/contracts/satoshi-bridge/src/mpc_verifier.rs new file mode 100644 index 0000000..b4ed5ac --- /dev/null +++ b/contracts/satoshi-bridge/src/mpc_verifier.rs @@ -0,0 +1,112 @@ +// Minimal local copies of types from `near-mpc-contract-interface`. +// Inlined to avoid pulling in `near-mpc-sdk` which requires Rust 1.88+. +// Source: https://github.com/near/mpc/blob/main/crates/near-mpc-contract-interface/src/types/foreign_chain.rs + +use crate::{ext_contract, require, Contract, Gas, Promise}; +use near_sdk::serde::{Deserialize, Serialize, Serializer}; +use near_sdk::NearToken; + +#[derive(Clone)] +pub struct BitcoinTxId(pub [u8; 32]); + +impl Serialize for BitcoinTxId { + fn serialize(&self, serializer: S) -> Result { + serializer.serialize_str(&hex::encode(self.0)) + } +} + +#[derive(Serialize)] +#[serde(crate = "near_sdk::serde")] +pub struct BlockConfirmations(pub u64); + +#[derive(Serialize)] +#[serde(crate = "near_sdk::serde")] +pub enum BitcoinExtractor { + BlockHash, +} + +#[derive(Serialize)] +#[serde(crate = "near_sdk::serde")] +pub struct BitcoinRpcRequest { + pub tx_id: BitcoinTxId, + pub confirmations: BlockConfirmations, + pub extractors: Vec, +} + +#[derive(Serialize)] +#[serde(crate = "near_sdk::serde")] +pub enum ForeignChainRpcRequest { + Bitcoin(BitcoinRpcRequest), +} + +// Serialized as u8 via serde_repr in the MPC contract (V1 = 1). +pub struct ForeignTxPayloadVersion; + +impl Serialize for ForeignTxPayloadVersion { + fn serialize(&self, serializer: S) -> Result { + serializer.serialize_u8(1) + } +} + +#[derive(Serialize)] +#[serde(crate = "near_sdk::serde")] +pub struct DomainId(pub u64); + +#[derive(Serialize)] +#[serde(crate = "near_sdk::serde")] +pub struct VerifyForeignTransactionRequestArgs { + pub request: ForeignChainRpcRequest, + pub domain_id: DomainId, + pub payload_version: ForeignTxPayloadVersion, +} + +/// Minimal deserialization of the MPC `verify_foreign_transaction` response. +/// Only `payload_hash` is checked; the `signature` field is ignored via `deny_unknown_fields = false` (default). +#[derive(Deserialize)] +#[serde(crate = "near_sdk::serde")] +pub struct VerifyForeignTransactionResponse { + /// Hex-encoded Hash256 of the signed payload. + pub payload_hash: String, +} + +// Must match the domain configured in the MPC contract for this bridge. +pub const FOREIGN_TX_DOMAIN_ID: u64 = 3; + +pub const GAS_FOR_VERIFY_FOREIGN_TX: Gas = Gas::from_tgas(15); + +const ONE_YOCTO: NearToken = NearToken::from_yoctonear(1); + +#[ext_contract(ext_mpc_contract)] +pub trait MpcContract { + fn verify_foreign_transaction(&mut self, request: VerifyForeignTransactionRequestArgs); +} + +pub fn tx_id_hex_to_bytes(tx_id: &str) -> BitcoinTxId { + let mut bytes = hex::decode(tx_id).expect("ERR_INVALID_TX_ID: not valid hex"); + require!(bytes.len() == 32, "ERR_INVALID_TX_ID: must be 32 bytes"); + bytes.reverse(); + let mut arr = [0u8; 32]; + arr.copy_from_slice(&bytes); + BitcoinTxId(arr) +} + +impl Contract { + pub fn verify_transaction_via_mpc(&self, tx_id: String, confirmations: u64) -> Promise { + let config = self.internal_config(); + + let request_args = VerifyForeignTransactionRequestArgs { + request: ForeignChainRpcRequest::Bitcoin(BitcoinRpcRequest { + tx_id: tx_id_hex_to_bytes(&tx_id), + confirmations: BlockConfirmations(confirmations), + extractors: vec![BitcoinExtractor::BlockHash], + }), + domain_id: DomainId(FOREIGN_TX_DOMAIN_ID), + payload_version: ForeignTxPayloadVersion, + }; + + ext_mpc_contract::ext(config.chain_signatures_account_id.clone()) + .with_static_gas(GAS_FOR_VERIFY_FOREIGN_TX) + .with_attached_deposit(ONE_YOCTO) + .verify_foreign_transaction(request_args) + } +} diff --git a/contracts/satoshi-bridge/src/network.rs b/contracts/satoshi-bridge/src/network.rs index bf00f17..2b24a3e 100644 --- a/contracts/satoshi-bridge/src/network.rs +++ b/contracts/satoshi-bridge/src/network.rs @@ -25,6 +25,8 @@ pub enum Chain { ZcashTestnet, DogecoinMainnet, DogecoinTestnet, + DashMainnet, + DashTestnet, } #[cfg(feature = "zcash")] pub struct BranchIdUpdateBlockHeight { @@ -333,6 +335,9 @@ pub fn get_segwit_hrp(chain: &Chain) -> Option<&'static str> { // Dogecoin (no native Bech32 support yet) Chain::DogecoinMainnet | Chain::DogecoinTestnet => None, + + // Dash (no SegWit support) + Chain::DashMainnet | Chain::DashTestnet => None, } } @@ -354,6 +359,10 @@ fn get_pubkey_address_prefix(chain: &Chain) -> Vec { // Dogecoin Chain::DogecoinMainnet => vec![0x1E], // "D" Chain::DogecoinTestnet => vec![0x71], // "n" + + // Dash + Chain::DashMainnet => vec![0x4C], // "X" + Chain::DashTestnet => vec![0x8C], // "y" } } @@ -375,6 +384,10 @@ fn get_script_address_prefix(chain: &Chain) -> Vec { // Dogecoin Chain::DogecoinMainnet => vec![0x16], // "9" Chain::DogecoinTestnet => vec![0xC4], // same as Bitcoin testnet + + // Dash + Chain::DashMainnet => vec![0x10], // "7" + Chain::DashTestnet => vec![0x13], // "8" } } @@ -429,6 +442,8 @@ mod tests { ("tmJpMbYtRf9Hgi8HUJ4FGkoM3FUSHsu28wM", Chain::ZcashTestnet), ("DKNmffVbxrBcNvQ9uJEDLe8f6prxSmH2Vm", Chain::DogecoinMainnet), ("njyMWWyh1L7tSX6QkWRgetMVCVyVtfoDta", Chain::DogecoinTestnet), + ("XoEnDiUTs3x8BmmQdBwWRxrhLmVvEu1Htw", Chain::DashMainnet), + ("yYsPEfYuJbcCXWgxC3FuTzH3d3zHjgWz7m", Chain::DashTestnet), ] { let parse_address = Address::parse(address, chain.clone()).unwrap(); let script_pubkey = parse_address.script_pubkey().unwrap(); @@ -449,6 +464,8 @@ mod tests { Chain::ZcashTestnet, Chain::DogecoinMainnet, Chain::DogecoinTestnet, + Chain::DashMainnet, + Chain::DashTestnet, ] { let btc_public_key = generate_btc_public_key("path"); let address = Address::from_pubkey(chain.clone(), btc_public_key).unwrap(); diff --git a/contracts/satoshi-bridge/src/unit/mod.rs b/contracts/satoshi-bridge/src/unit/mod.rs index 87b86a3..6528ffb 100644 --- a/contracts/satoshi-bridge/src/unit/mod.rs +++ b/contracts/satoshi-bridge/src/unit/mod.rs @@ -1,5 +1,7 @@ -#[cfg(not(feature = "zcash"))] +#[cfg(not(any(feature = "zcash", feature = "dash")))] use crate::network::Chain::BitcoinTestnet; +#[cfg(feature = "dash")] +use crate::network::Chain::DashTestnet; #[cfg(feature = "zcash")] use crate::network::Chain::ZcashTestnet; use crate::*; @@ -40,8 +42,10 @@ pub fn btc_light_client_id() -> AccountId { pub fn init_contract() -> Contract { Contract::new(Config { - #[cfg(not(feature = "zcash"))] + #[cfg(not(any(feature = "zcash", feature = "dash")))] chain: BitcoinTestnet, + #[cfg(feature = "dash")] + chain: DashTestnet, #[cfg(feature = "zcash")] chain: ZcashTestnet, chain_signatures_account_id: chain_signatures_id(), diff --git a/contracts/satoshi-bridge/src/utils.rs b/contracts/satoshi-bridge/src/utils.rs index f1ecea9..4f536c5 100644 --- a/contracts/satoshi-bridge/src/utils.rs +++ b/contracts/satoshi-bridge/src/utils.rs @@ -12,6 +12,9 @@ pub const MAX_FT_TRANSFER_CALL_RESULT: usize = 50; pub const MAX_PUBLIC_KEY_RESULT: usize = 200; /// Maximum expected byte length of a JSON-serialized `SignatureResponse` promise result. pub const MAX_SIGNATURE_RESULT: usize = 300; +/// Maximum expected byte length of a JSON-serialized `VerifyForeignTransactionResponse` promise result. +#[cfg(feature = "dash")] +pub const MAX_MPC_VERIFY_RESULT: usize = 1024; pub fn generate_utxo_storage_key(txid: String, vout: u32) -> String { format!(