diff --git a/Cargo.lock b/Cargo.lock index 5969368332..b3f0767f85 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aead" @@ -123,12 +123,6 @@ dependencies = [ "syn 1.0.109", ] -[[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" @@ -140,9 +134,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -155,44 +149,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.8" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6680de5231bd6ee4c6191b8a1325daa282b415391ec9d3a37bd34f2060dc73fa" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "append-only-vec" @@ -220,15 +214,15 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arti-client" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a726d39f22ddf0dcf0ea903d900592167d60a32e46f202e83651a1be8c452e" +checksum = "4734bde002bb3d52e27ab808faa971a143d48d11dbd836d5c02edd1756cdab06" dependencies = [ "async-trait", "cfg-if", - "derive-deftly", + "derive-deftly 1.0.1", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "educe", "fs-mistrust", "futures", @@ -236,16 +230,18 @@ dependencies = [ "humantime", "humantime-serde", "libc", + "once_cell", "postage", "rand 0.8.5", "safelog", "serde", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-async-utils", "tor-basic-utils", "tor-chanmgr", "tor-circmgr", "tor-config", + "tor-config-path", "tor-dirmgr", "tor-error", "tor-guardmgr", @@ -268,21 +264,56 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" +[[package]] +name = "asn1-rs" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits 0.2.19", + "rusticata-macros", + "thiserror 2.0.16", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "async-compression" -version = "0.4.23" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37fc50485c4f3f736a4fb14199f6d5f5ba008d7f28fe710306c92780f004c07" +checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23" dependencies = [ - "flate2", + "compression-codecs", + "compression-core", "futures-core", "futures-io", - "liblzma", - "memchr", "pin-project-lite", "tokio", - "zstd", - "zstd-safe", ] [[package]] @@ -304,18 +335,18 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -354,9 +385,9 @@ checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" [[package]] name = "atomic" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" dependencies = [ "bytemuck", ] @@ -369,15 +400,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" +checksum = "94b8ff6c09cd57b16da53641caa860168b88c172a5ee163b0288d3d6eea12786" dependencies = [ "aws-lc-sys", "zeroize", @@ -385,11 +416,11 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" +checksum = "0e44d16778acaf6a9ec9899b92cebd65580b83f685446bf2e1f5d3d732f99dcd" dependencies = [ - "bindgen", + "bindgen 0.72.1", "cc", "cmake", "dunce", @@ -403,14 +434,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", - "axum-core", + "axum-core 0.4.5", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit 0.7.3", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +dependencies = [ + "axum-core 0.5.2", "bytes", "futures-util", "http", "http-body", "http-body-util", "itoa", - "matchit", + "matchit 0.8.4", "memchr", "mime", "percent-encoding", @@ -443,6 +500,25 @@ dependencies = [ "tower-service", ] +[[package]] +name = "axum-core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.75" @@ -472,9 +548,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.7.3" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "bech32" @@ -512,37 +588,44 @@ dependencies = [ "serde", ] -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "serde", - "unty", -] - [[package]] name = "bindgen" version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", "lazy_static", "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.106", +] + +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.9.4", + "cexpr", + "clang-sys", + "itertools 0.13.0", "log", "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash 1.1.0", + "rustc-hash 2.1.1", "shlex", - "syn 2.0.101", - "which 4.4.2", + "syn 2.0.106", ] [[package]] @@ -598,9 +681,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "bitflags-serde-legacy" @@ -608,7 +691,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b64e60c28b6d25ad92e8b367801ff9aa12b41d05fc8798055d296bace4a60cc" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "serde", ] @@ -654,7 +737,7 @@ checksum = "e0b121a9fe0df916e362fb3271088d071159cdf11db0e4182d02152850756eff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -708,7 +791,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -727,11 +810,22 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "bstr" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "by_address" @@ -769,9 +863,9 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.23.0" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" [[package]] name = "byteorder" @@ -797,9 +891,9 @@ dependencies = [ [[package]] name = "caret" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5440e59387a6f8291f2696a875656873e9d51e9fb7b38af81a25772a5f81b33" +checksum = "061dc3258f029feaf9ff02b43c6af5ea67a7dfaed5d2aef36204c812e614ef9c" [[package]] name = "cbc" @@ -812,10 +906,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.25" +version = "1.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" +checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -832,9 +927,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -868,17 +963,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", - "num-traits", + "num-traits 0.2.19", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] @@ -905,18 +999,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.42" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.42" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -926,9 +1020,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "clipboard-win" @@ -976,9 +1070,28 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "compression-codecs" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64" +dependencies = [ + "compression-core", + "flate2", + "liblzma", + "zstd", + "zstd-safe", +] + +[[package]] +name = "compression-core" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb" [[package]] name = "concat-idents" @@ -987,7 +1100,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f76990911f2267d837d9d0ad060aa63aaad170af40904b29461734c339030d4d" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1031,15 +1144,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "convert_case" version = "0.7.1" @@ -1060,6 +1164,15 @@ dependencies = [ "version_check", ] +[[package]] +name = "cookie-factory" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" +dependencies = [ + "futures", +] + [[package]] name = "cookie_store" version = "0.21.1" @@ -1124,9 +1237,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -1176,9 +1289,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -1245,7 +1358,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1267,12 +1380,12 @@ dependencies = [ "serde_json", "tempfile", "tokio", - "tonic", - "tonic-build", + "tonic 0.13.1", + "tonic-build 0.13.1", "tower 0.5.2", "tracing-subscriber", - "zcash_primitives", - "zcash_protocol", + "zcash_primitives 0.24.0", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zingo-infra-services", "zingo-netutils", "zingo-testvectors", @@ -1325,7 +1438,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1347,7 +1460,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1367,34 +1480,47 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der-parser" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" +dependencies = [ + "asn1-rs", + "cookie-factory", + "displaydoc", + "nom", + "num-traits 0.2.19", + "rusticata-macros", +] + [[package]] name = "deranged" -version = "0.4.0" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "derive-deftly" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "e8ea84d0109517cc2253d4a679bdda1e8989e9bd86987e9e4f75ffdda0095fd1" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "derive-deftly-macros 0.14.6", + "heck", ] [[package]] name = "derive-deftly" -version = "0.14.6" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ea84d0109517cc2253d4a679bdda1e8989e9bd86987e9e4f75ffdda0095fd1" +checksum = "0015cb20a284ec944852820598af3aef6309ea8dc317a0304441272ed620f196" dependencies = [ - "derive-deftly-macros", + "derive-deftly-macros 1.0.1", "heck", ] @@ -1405,17 +1531,57 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357422a457ccb850dc8f1c1680e0670079560feaad6c2e247e3f345c4fab8a3f" dependencies = [ "heck", - "indexmap 2.9.0", + "indexmap 2.11.1", + "itertools 0.14.0", + "proc-macro-crate", + "proc-macro2", + "quote", + "sha3", + "strum 0.27.2", + "syn 2.0.106", + "void", +] + +[[package]] +name = "derive-deftly-macros" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b48e8e38a4aa565da767322b5ca55fb0f8347983c5bc7f7647db069405420479" +dependencies = [ + "heck", + "indexmap 2.11.1", "itertools 0.14.0", "proc-macro-crate", "proc-macro2", "quote", "sha3", - "strum 0.27.1", - "syn 2.0.101", + "strum 0.27.2", + "syn 2.0.106", "void", ] +[[package]] +name = "derive-getters" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74ef43543e701c01ad77d3a5922755c6a1d71b22d942cb8042be4994b380caff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "derive-new" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "derive_builder_core_fork_arti" version = "0.11.2" @@ -1447,35 +1613,13 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl 1.0.0", -] - [[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.101", - "unicode-xid", + "derive_more-impl", ] [[package]] @@ -1484,10 +1628,10 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case 0.7.1", + "convert_case", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "unicode-xid", ] @@ -1522,20 +1666,11 @@ dependencies = [ [[package]] name = "directories" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" -dependencies = [ - "dirs-sys 0.4.1", -] - -[[package]] -name = "dirs" -version = "5.0.1" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -1544,7 +1679,7 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" dependencies = [ - "dirs-sys 0.5.0", + "dirs-sys", ] [[package]] @@ -1557,18 +1692,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users 0.4.6", - "windows-sys 0.48.0", -] - [[package]] name = "dirs-sys" version = "0.5.0" @@ -1577,8 +1700,8 @@ checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" dependencies = [ "libc", "option-ext", - "redox_users 0.5.0", - "windows-sys 0.59.0", + "redox_users 0.5.2", + "windows-sys 0.61.0", ] [[package]] @@ -1600,7 +1723,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1614,9 +1737,9 @@ dependencies = [ [[package]] name = "downcast-rs" -version = "1.2.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" [[package]] name = "dunce" @@ -1626,15 +1749,15 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "dynosaur" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1b7ff6b5c4d1df9f75c6bcce5cebfa480a448d298b0c83a07b3f5bb318ad10f" +checksum = "277b2cb52d2df4acece06bb16bc0bb0a006970c7bf504eac2d310927a6f65890" dependencies = [ "dynosaur_derive", "trait-variant", @@ -1642,13 +1765,13 @@ dependencies = [ [[package]] name = "dynosaur_derive" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a600ac649c596084163b9bcde422e9973a321dd190b9d8b15dde23986e53f425" +checksum = "7a4102713839a8c01c77c165bc38ef2e83948f6397fa1e1dcfacec0f07b149d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -1678,9 +1801,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", @@ -1694,17 +1817,18 @@ dependencies = [ [[package]] name = "ed25519-zebra" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +checksum = "0017d969298eec91e3db7a2985a8cab4df6341d86e6f3a6f5878b13fb7846bc9" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.14.5", - "hex", + "hashbrown 0.15.5", + "pkcs8", "rand_core 0.6.4", "serde", "sha2 0.10.9", + "subtle", "zeroize", ] @@ -1767,12 +1891,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" dependencies = [ "num-bigint", - "num-traits", + "num-traits 0.2.19", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", +] + +[[package]] +name = "enum_primitive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" +dependencies = [ + "num-traits 0.1.43", ] +[[package]] +name = "env_home" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" + [[package]] name = "env_logger" version = "0.7.1" @@ -1794,6 +1933,15 @@ dependencies = [ "document-features", ] +[[package]] +name = "equihash" +version = "0.2.2" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" +dependencies = [ + "blake2b_simd", + "core2", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -1802,12 +1950,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.12" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -1822,9 +1970,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1850,6 +1998,14 @@ dependencies = [ "blake2b_simd", ] +[[package]] +name = "f4jumble" +version = "0.1.1" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" +dependencies = [ + "blake2b_simd", +] + [[package]] name = "fallible-iterator" version = "0.3.0" @@ -1902,7 +2058,7 @@ version = "0.10.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" dependencies = [ - "atomic 0.6.0", + "atomic 0.6.1", "serde", "toml", "uncased", @@ -1911,16 +2067,22 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1941,9 +2103,9 @@ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -1961,6 +2123,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foreign-types" version = "0.3.2" @@ -1978,9 +2146,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -1996,22 +2164,22 @@ dependencies = [ "libm", "num-bigint", "num-integer", - "num-traits", + "num-traits 0.2.19", ] [[package]] name = "fs-mistrust" -version = "0.8.3" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28d81b7d2feb4197784e984a09c9799404a7793ed2352a54cb2aff98a31d48a" +checksum = "8bac926cebf23b68e62f518086eb5671f3d24daa00c395e2142840adef3dc476" dependencies = [ "derive_builder_fork_arti", - "dirs 5.0.1", + "dirs", "libc", "once_cell", "pwd-grp", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "walkdir", ] @@ -2093,7 +2261,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -2168,7 +2336,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -2182,20 +2350,20 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.5+wasi-0.2.4", "wasm-bindgen", ] [[package]] name = "getset" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3586f256131df87204eb733da72e3d3eb4f343c639f4b7be279ac7c48baeafe" +checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -2206,9 +2374,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "glob-match" @@ -2230,9 +2398,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -2240,7 +2408,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.9.0", + "indexmap 2.11.1", "slab", "tokio", "tokio-util", @@ -2287,14 +2455,15 @@ dependencies = [ [[package]] name = "halo2_proofs" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b867a8d9bbb85fca76fff60652b5cd19b853a1c4d0665cb89bee68b18d2caf0" +checksum = "019561b5f3be60731e7b72f3f7878c5badb4174362d860b03d3cf64cb47f90db" dependencies = [ "blake2b_simd", "ff", "group", "halo2_legacy_pdqsort", + "indexmap 1.9.3", "maybe-rayon", "pasta_curves", "rand_core 0.6.4", @@ -2317,14 +2486,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash 0.8.12", - "allocator-api2", ] [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "hashlink" @@ -2343,9 +2516,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -2483,13 +2656,14 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", @@ -2497,6 +2671,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2504,9 +2679,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.6" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a01595e11bdcec50946522c32dde3fc6914743000a68b93000965f2f02406d" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http", "hyper", @@ -2516,9 +2691,9 @@ dependencies = [ "rustls-native-certs", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.2", + "tokio-rustls", "tower-service", - "webpki-roots 1.0.0", + "webpki-roots 1.0.2", ] [[package]] @@ -2552,9 +2727,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ "base64", "bytes", @@ -2568,7 +2743,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.6.0", "system-configuration", "tokio", "tower-service", @@ -2621,7 +2796,7 @@ checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", - "tinystr 0.8.1", + "tinystr", "writeable", "zerovec", ] @@ -2678,7 +2853,7 @@ dependencies = [ "displaydoc", "icu_locale_core", "stable_deref_trait", - "tinystr 0.8.1", + "tinystr", "writeable", "yoke", "zerofrom", @@ -2694,9 +2869,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2730,7 +2905,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -2744,9 +2919,9 @@ dependencies = [ [[package]] name = "indenter" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" @@ -2761,12 +2936,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "serde", ] @@ -2778,11 +2953,11 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" [[package]] name = "inotify" -version = "0.9.6" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.4", "inotify-sys", "libc", ] @@ -2807,20 +2982,20 @@ dependencies = [ [[package]] name = "inventory" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83" +checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" dependencies = [ "rustversion", ] [[package]] name = "io-uring" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -2882,9 +3057,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -2892,9 +3067,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" dependencies = [ "once_cell", "wasm-bindgen", @@ -2951,7 +3126,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3018,11 +3193,11 @@ dependencies = [ [[package]] name = "known-folders" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d9a1740cc8b46e259a0eb787d79d855e79ff10b9855a5eba58868d5da7927c" +checksum = "c644f4623d1c55eb60a9dac35e0858a59f982fb87db6ce34c872372b0a5b728f" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3062,9 +3237,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" @@ -3073,23 +3248,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.3", ] [[package]] name = "liblzma" -version = "0.4.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66352d7a8ac12d4877b6e6ea5a9b7650ee094257dc40889955bea5bc5b08c1d0" +checksum = "10bf66f4598dc77ff96677c8e763655494f00ff9c1cf79e2eb5bb07bc31f807d" dependencies = [ "liblzma-sys", ] [[package]] name = "liblzma-sys" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5839bad90c3cc2e0b8c4ed8296b80e86040240f81d46b9c0e9bc8dd51ddd3af1" +checksum = "01b9596486f6d60c3bbe644c0e1be1aa6ccc472ad630fe8927b456973d7cb736" dependencies = [ "cc", "libc", @@ -3104,11 +3279,11 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "libc", "redox_syscall", ] @@ -3119,7 +3294,7 @@ version = "0.16.0+8.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c" dependencies = [ - "bindgen", + "bindgen 0.69.5", "bzip2-sys", "cc", "glob", @@ -3153,10 +3328,10 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber", - "zcash_address", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zcash_client_backend", - "zcash_primitives", - "zcash_protocol", + "zcash_primitives 0.24.0", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zingo-infra-services", "zingo-status", "zingo-testvectors", @@ -3183,9 +3358,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -3195,9 +3370,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litrs" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" [[package]] name = "lock_api" @@ -3211,9 +3386,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" dependencies = [ "serde", ] @@ -3226,29 +3401,30 @@ checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" [[package]] name = "log4rs" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0816135ae15bd0391cf284eab37e6e3ee0a6ee63d2ceeb659862bd8d0a984ca6" +checksum = "3e947bb896e702c711fccc2bf02ab2abb6072910693818d1d6b07ee2b9dfd86c" dependencies = [ "anyhow", "arc-swap", "chrono", - "derivative", + "derive_more", "fnv", "humantime", "libc", "log", "log-mdc", - "once_cell", + "mock_instant", "parking_lot", - "rand 0.8.5", + "rand 0.9.2", "serde", "serde-value", "serde_json", "serde_yaml", - "thiserror 1.0.69", + "thiserror 2.0.16", "thread-id", "typemap-ors", + "unicode-segmentation", "winapi", ] @@ -3270,11 +3446,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -3283,6 +3459,12 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + [[package]] name = "maybe-rayon" version = "0.1.1" @@ -3295,15 +3477,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -3350,20 +3532,19 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "minreq" -version = "2.13.4" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d2aaba477837b46ec1289588180fabfccf0c3b1d1a0c6b1866240cd6cd5ce9" +checksum = "05015102dad0f7d61691ca347e9d9d9006685a64aefb3d79eecf62665de2153d" dependencies = [ - "log", "rustls 0.21.12", "rustls-webpki 0.101.7", "webpki-roots 0.25.4", @@ -3371,26 +3552,21 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] -name = "mio" -version = "1.0.4" +name = "mock_instant" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.59.0", -] +checksum = "dce6dd36094cac388f119d2e9dc82dc730ef91c32a6222170d630e5414b956e6" [[package]] name = "mset" @@ -3447,7 +3623,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cfg-if", "cfg_aliases", "libc", @@ -3471,29 +3647,34 @@ checksum = "549e471b99ccaf2f89101bec68f4d244457d5a95a9c3d0672e9564124397741d" [[package]] name = "notify" -version = "6.1.1" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.9.1", - "filetime", + "bitflags 2.9.4", "inotify", "kqueue", "libc", "log", - "mio 0.8.11", + "mio", + "notify-types", "walkdir", - "windows-sys 0.48.0", + "windows-sys 0.60.2", ] +[[package]] +name = "notify-types" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" + [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -3503,7 +3684,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", - "num-traits", + "num-traits 0.2.19", ] [[package]] @@ -3517,7 +3698,7 @@ dependencies = [ "libm", "num-integer", "num-iter", - "num-traits", + "num-traits 0.2.19", "rand 0.8.5", "smallvec", "zeroize", @@ -3535,7 +3716,7 @@ version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "num-traits", + "num-traits 0.2.19", ] [[package]] @@ -3546,7 +3727,16 @@ checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", - "num-traits", + "num-traits 0.2.19", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.19", ] [[package]] @@ -3571,23 +3761,24 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3613,9 +3804,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "oneshot-fused-workaround" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2f833c92b3bb159ddee62e27d611e056cd89373b4ba7ba6df8bcd00acdf1b5" +checksum = "ff2948fd2414b613f9a97f8401270bd5d7638265ab940475cdbcfa28a0273d58" dependencies = [ "futures", ] @@ -3632,7 +3823,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -3649,7 +3840,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3717,7 +3908,7 @@ version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ - "num-traits", + "num-traits 0.2.19", ] [[package]] @@ -3731,10 +3922,13 @@ dependencies = [ ] [[package]] -name = "overload" -version = "0.1.1" +name = "os_str_bytes" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +dependencies = [ + "memchr", +] [[package]] name = "owo-colors" @@ -3814,7 +4008,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -3914,18 +4108,18 @@ dependencies = [ "sapling-crypto", "shardtree", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", - "tonic", + "tonic 0.13.1", "tracing", - "zcash_address", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zcash_client_backend", - "zcash_encoding", - "zcash_keys", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_keys 0.10.0", "zcash_note_encryption", - "zcash_primitives", - "zcash_protocol", - "zcash_transparent", + "zcash_primitives 0.24.0", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_transparent 0.4.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zingo-memo", "zingo-netutils", "zingo-status", @@ -3934,9 +4128,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" @@ -3945,7 +4139,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.9.0", + "indexmap 2.11.1", ] [[package]] @@ -3978,7 +4172,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4007,7 +4201,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4092,9 +4286,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -4116,12 +4310,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.33" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4152,7 +4346,7 @@ checksum = "5676d703dda103cbb035b653a9f11448c0a7216c7926bd35fcb5865475d0c970" dependencies = [ "autocfg", "equivalent", - "indexmap 2.9.0", + "indexmap 2.11.1", ] [[package]] @@ -4183,33 +4377,33 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] [[package]] name = "proptest" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.9.1", + "bitflags 2.9.4", "lazy_static", - "num-traits", - "rand 0.9.1", - "rand_chacha 0.9.0", + "num-traits 0.2.19", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -4241,7 +4435,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.101", + "syn 2.0.106", "tempfile", ] @@ -4255,7 +4449,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -4309,7 +4503,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b94fdf3867b7f2889a736f0022ea9386766280d2cca4bdbe41629ada9e4f3b8f" dependencies = [ - "derive-deftly", + "derive-deftly 0.14.6", "libc", "paste", "thiserror 1.0.69", @@ -4346,9 +4540,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -4357,8 +4551,8 @@ dependencies = [ "quinn-udp", "rustc-hash 2.1.1", "rustls 0.23.31", - "socket2 0.5.10", - "thiserror 2.0.12", + "socket2 0.6.0", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -4366,20 +4560,20 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", "lru-slab", - "rand 0.9.1", + "rand 0.9.2", "ring 0.17.14", "rustc-hash 2.1.1", "rustls 0.23.31", "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -4387,16 +4581,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.12" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.0", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4410,9 +4604,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -4456,9 +4650,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -4532,18 +4726,18 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.6.4", ] [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -4551,9 +4745,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -4592,11 +4786,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", ] [[package]] @@ -4612,58 +4806,63 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] -name = "regex" -version = "1.11.1" +name = "ref-cast" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "ref-cast-impl", ] [[package]] -name = "regex-automata" -version = "0.1.10" +name = "ref-cast-impl" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ - "regex-syntax 0.6.29", + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] -name = "regex-automata" -version = "0.4.9" +name = "regex" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.29" +name = "regex-automata" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "rend" @@ -4676,9 +4875,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.18" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98ff6b0dbbe4d5a37318f433d4fc82babd21631f194d370409ceb2e40b2f0b5" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "async-compression", "base64", @@ -4696,12 +4895,10 @@ dependencies = [ "hyper-rustls", "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", "mime", "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", @@ -4713,7 +4910,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.2", + "tokio-rustls", "tokio-util", "tower 0.5.2", "tower-http", @@ -4722,14 +4919,14 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 1.0.0", + "webpki-roots 1.0.2", ] [[package]] name = "retry-error" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd5db9deeb62617010191df02a0887c96cc15d91514d32c208d6b8f76b9f20e" +checksum = "ce97442758392c7e2a7716e06c514de75f0fe4b5a4b76e14ba1e5edfb7ba3512" [[package]] name = "rfc6979" @@ -4852,7 +5049,7 @@ dependencies = [ "digest 0.10.7", "num-bigint-dig", "num-integer", - "num-traits", + "num-traits 0.2.19", "pkcs1", "pkcs8", "rand_core 0.6.4", @@ -4869,7 +5066,7 @@ version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -4898,7 +5095,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.101", + "syn 2.0.106", "walkdir", ] @@ -4921,7 +5118,7 @@ dependencies = [ "arrayvec", "borsh", "bytes", - "num-traits", + "num-traits 0.2.19", "rand 0.8.5", "rkyv", "serde", @@ -4930,9 +5127,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -4961,13 +5158,22 @@ dependencies = [ "semver", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -4976,15 +5182,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.0", ] [[package]] @@ -5024,7 +5230,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.2.0", + "security-framework 3.4.0", ] [[package]] @@ -5070,9 +5276,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -5117,15 +5323,15 @@ checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safelog" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba05ad561772e139a16a49088b2d332f659ef49953d56e09cf0f726784e5fdd" +checksum = "7a4e1c994fbc7521a5003e5c1c54304654ea0458881e777f6e2638520c2de8c5" dependencies = [ - "derive_more 2.0.1", + "derive_more", "educe", "either", "fluid-let", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -5139,11 +5345,10 @@ dependencies = [ [[package]] name = "sanitize-filename" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed72fbaf78e6f2d41744923916966c4fbe3d7c74e3037a8ee482f1115572603" +checksum = "bc984f4f9ceb736a7bb755c3e3bd17dc56370af2600c9780dcc48c66453da34d" dependencies = [ - "lazy_static", "regex", ] @@ -5182,11 +5387,35 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] [[package]] @@ -5259,7 +5488,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -5268,11 +5497,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation 0.10.1", "core-foundation-sys", "libc", @@ -5281,9 +5510,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -5331,7 +5560,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5345,9 +5574,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -5357,9 +5586,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -5378,15 +5607,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", + "indexmap 2.11.1", + "schemars 0.9.0", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -5396,14 +5627,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5412,13 +5643,24 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.1", "itoa", "ryu", "serde", "unsafe-libyaml", ] +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha1" version = "0.10.6" @@ -5477,7 +5719,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637e95dcd06bc1bb3f86ed9db1e1832a70125f32daae071ef37dcb7701b7d4fe" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "either", "incrementalmerkletree", "tracing", @@ -5489,7 +5731,9 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b1fdf65dd6331831494dd616b30351c38e96e45921a27745cf98490458b90bb" dependencies = [ - "dirs 6.0.0", + "bstr", + "dirs", + "os_str_bytes", ] [[package]] @@ -5510,9 +5754,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -5533,18 +5777,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" -[[package]] -name = "simple_asn1" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror 2.0.12", - "time", -] - [[package]] name = "sinsemilla" version = "0.1.0" @@ -5564,12 +5796,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slotmap" @@ -5577,14 +5806,28 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" dependencies = [ + "serde", "version_check", ] [[package]] -name = "smallvec" -version = "1.15.0" +name = "slotmap-careful" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "9500059071474a36baac642b6bb99ca1dbac0ce43727abbba02dad83822dadf2" +dependencies = [ + "paste", + "serde", + "slotmap", + "thiserror 2.0.16", + "void", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" @@ -5726,11 +5969,11 @@ dependencies = [ [[package]] name = "strum" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ - "strum_macros 0.27.1", + "strum_macros 0.27.2", ] [[package]] @@ -5743,20 +5986,19 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "strum_macros" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5778,9 +6020,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.101" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -5804,7 +6046,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -5813,7 +6055,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -5836,15 +6078,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.20.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] @@ -5858,11 +6100,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] @@ -5873,45 +6115,44 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "thread-id" -version = "4.2.2" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe8f25bbdd100db7e1d34acf7fd2dc59c4bf8f7483f505eaa7d4f12f76cc0ea" +checksum = "99043e46c5a15af379c06add30d9c93a6c0e8849de00d244c4a2c417da128d80" dependencies = [ "libc", - "winapi", + "windows-sys 0.59.0", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] name = "time" -version = "0.3.41" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -5924,29 +6165,20 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.22" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", -] - [[package]] name = "tinystr" version = "0.8.1" @@ -5959,9 +6191,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -5974,15 +6206,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", "io-uring", "libc", - "mio 1.0.4", + "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", @@ -6001,7 +6233,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -6014,16 +6246,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -6048,9 +6270,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -6062,9 +6284,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -6074,20 +6296,20 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.1", "serde", "serde_spanned", "toml_datetime", @@ -6097,9 +6319,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tonic" @@ -6109,7 +6331,7 @@ checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", - "axum", + "axum 0.7.9", "base64", "bytes", "h2", @@ -6122,16 +6344,43 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "rustls-native-certs", - "rustls-pemfile", "socket2 0.5.10", "tokio", - "tokio-rustls 0.26.2", "tokio-stream", "tower 0.4.13", "tower-layer", "tower-service", "tracing", +] + +[[package]] +name = "tonic" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +dependencies = [ + "async-trait", + "axum 0.8.4", + "base64", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "socket2 0.5.10", + "tokio", + "tokio-rustls", + "tokio-stream", + "tower 0.5.2", + "tower-layer", + "tower-service", + "tracing", "webpki-roots 0.26.11", ] @@ -6146,54 +6395,84 @@ dependencies = [ "prost-build", "prost-types", "quote", - "syn 2.0.101", + "syn 2.0.106", +] + +[[package]] +name = "tonic-build" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tonic-reflection" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" +dependencies = [ + "prost", + "prost-types", + "tokio", + "tokio-stream", + "tonic 0.12.3", ] [[package]] name = "tor-async-utils" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2adb0fa957cad5a1f408e357a4450931366a9d35b78235d72260b6842518ba" +checksum = "d5294c85610f52bcbe36fddde04a3a994c4ec382ceed455cfdc8252be7046008" dependencies = [ + "derive-deftly 1.0.1", "educe", "futures", "oneshot-fused-workaround", "pin-project", "postage", + "thiserror 2.0.16", "void", ] [[package]] name = "tor-basic-utils" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d080757c5d7404813f936147e3d72f7c035eba541c1422de29acd2242b98f36" +checksum = "7e97f88c41653613190a717185e9e208575cb4df256ba404daff05721f27f10d" dependencies = [ - "derive_more 1.0.0", + "derive_more", "hex", - "itertools 0.13.0", + "itertools 0.14.0", "libc", "paste", "rand 0.8.5", "rand_chacha 0.3.1", "serde", "slab", - "thiserror 1.0.69", + "smallvec", + "thiserror 2.0.16", ] [[package]] name = "tor-bytes" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23db3a71001bc0a3f25b0f6ee824b559d128768275811de0d913369990f9a83b" +checksum = "357650fb5bff5e94e5ecc7ee26c6af3f584c2be178b45da8f5ab81cf9f9d4795" dependencies = [ "bytes", - "derive-deftly", + "derive-deftly 1.0.1", "digest 0.10.7", "educe", "getrandom 0.2.16", "safelog", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-error", "tor-llcrypto", "zeroize", @@ -6201,38 +6480,43 @@ dependencies = [ [[package]] name = "tor-cell" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637cf998679d463138d9bffe07c55bec1c3ccc43a66e4a587d8952ceaa6ee7d4" +checksum = "5341a132563ebeffa45ff60e6519394ee7ba58cb5cf65ba99e7ef879789d87b7" dependencies = [ - "bitflags 2.9.1", + "amplify", + "bitflags 2.9.4", "bytes", "caret", - "derive_more 1.0.0", + "derive-deftly 1.0.1", + "derive_more", "educe", "paste", "rand 0.8.5", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-basic-utils", "tor-bytes", "tor-cert", "tor-error", "tor-linkspec", "tor-llcrypto", + "tor-memquota", "tor-units", + "void", ] [[package]] name = "tor-cert" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437567f6b43fab396478d01ff15ce717587bda41a15f06c4de87f8fee1fefbb0" +checksum = "67a82064ea8ea2864e52e143c978d09570a78bc7e5c2b0056b77068b8893a23f" dependencies = [ "caret", - "derive_more 1.0.0", + "derive_builder_fork_arti", + "derive_more", "digest 0.10.7", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-bytes", "tor-checkable", "tor-llcrypto", @@ -6240,13 +6524,14 @@ dependencies = [ [[package]] name = "tor-chanmgr" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc267bf4aba055859d51c34dcab067c109b89cefed9501409377772cbb296d8b" +checksum = "86fd8969d9a3e6cf289a7f95c15ec11dff339bc94a902f1edf962333bd83270e" dependencies = [ "async-trait", + "caret", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "educe", "futures", "oneshot-fused-workaround", @@ -6254,7 +6539,7 @@ dependencies = [ "rand 0.8.5", "safelog", "serde", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-async-utils", "tor-basic-utils", "tor-cell", @@ -6262,6 +6547,7 @@ dependencies = [ "tor-error", "tor-linkspec", "tor-llcrypto", + "tor-memquota", "tor-netdir", "tor-proto", "tor-rtcompat", @@ -6273,34 +6559,34 @@ dependencies = [ [[package]] name = "tor-checkable" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a052723dc4fc53605232652d75997940cd51abc4cd3ff74daca746c150f5ac7" +checksum = "8f1671c146d35ead4a350a50d7d2b25230635c0271539d310d92ea8d7c777313" dependencies = [ "humantime", "signature", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-llcrypto", ] [[package]] name = "tor-circmgr" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00458ecadba3e0f8566f6be9fcf41bd2a50b3f45f0a349057510b2d37322c21" +checksum = "7e42aaf170fb526b16ff38d18d2f2967da7e5fd934e94a565beee3716ec480a8" dependencies = [ "amplify", "async-trait", "bounded-vec-deque", "cfg-if", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "downcast-rs", "dyn-clone", "educe", "futures", "humantime-serde", - "itertools 0.13.0", + "itertools 0.14.0", "once_cell", "oneshot-fused-workaround", "pin-project", @@ -6309,7 +6595,7 @@ dependencies = [ "safelog", "serde", "static_assertions", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-async-utils", "tor-basic-utils", "tor-chanmgr", @@ -6317,6 +6603,7 @@ dependencies = [ "tor-error", "tor-guardmgr", "tor-linkspec", + "tor-memquota", "tor-netdir", "tor-netdoc", "tor-persist", @@ -6324,6 +6611,7 @@ dependencies = [ "tor-protover", "tor-relay-selection", "tor-rtcompat", + "tor-units", "tracing", "void", "weak-table", @@ -6331,20 +6619,20 @@ dependencies = [ [[package]] name = "tor-config" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7281aaa74794b23cf570547ff7706fbca5f8564d421921943420f2c70ddecfa" +checksum = "bca6cc0af790f5f02d8a06c8f692fa471207de2739d8b2921c04f9570af34d75" dependencies = [ "amplify", - "derive-deftly", + "cfg-if", + "derive-deftly 1.0.1", "derive_builder_fork_arti", - "directories", "educe", "either", "figment", "fs-mistrust", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "notify", "once_cell", "paste", @@ -6353,9 +6641,8 @@ dependencies = [ "serde", "serde-value", "serde_ignored", - "shellexpand", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "toml", "tor-basic-utils", "tor-error", @@ -6364,35 +6651,50 @@ dependencies = [ "void", ] +[[package]] +name = "tor-config-path" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d35f2df5e5a8968069280e9170ae6c617c637e69d075baf582bd925d0e3902" +dependencies = [ + "directories", + "once_cell", + "serde", + "shellexpand", + "thiserror 2.0.16", + "tor-error", + "tor-general-addr", +] + [[package]] name = "tor-consdiff" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da0ead1be2509af9558ff9b8004d25e7e4795a3dfa4d78968d8c43d231e76c7" +checksum = "9b9c48e1e8cc9c925ae5bdca8c71952886d2407f1f286cc4d8f4f7aad082d6a6" dependencies = [ "digest 0.10.7", "hex", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-llcrypto", ] [[package]] name = "tor-dirclient" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3fb55282536a5aaf998ceaa1d2f5a268119c3b3cf8de741eaf98f5ed5af079" +checksum = "b5acde3549254949099b072ae4c71c98b93fe4f059c8e5cba4b055df546c9fac" dependencies = [ "async-compression", "base64ct", - "derive_more 1.0.0", + "derive_more", "futures", "hex", "http", "httparse", "httpdate", - "itertools 0.13.0", + "itertools 0.14.0", "memchr", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-circmgr", "tor-error", "tor-linkspec", @@ -6405,14 +6707,14 @@ dependencies = [ [[package]] name = "tor-dirmgr" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bf47d53f83a55f4cc61fa77bcd051c283d1a1da60f67e9370d845df3480256" +checksum = "183418366135eeab826f01f0fc87fed2de389ac938d37575e3443075f17797dd" dependencies = [ "async-trait", "base64ct", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "digest 0.10.7", "educe", "event-listener", @@ -6422,7 +6724,7 @@ dependencies = [ "hex", "humantime", "humantime-serde", - "itertools 0.13.0", + "itertools 0.14.0", "memmap2", "once_cell", "oneshot-fused-workaround", @@ -6435,7 +6737,7 @@ dependencies = [ "serde", "signature", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "time", "tor-async-utils", "tor-basic-utils", @@ -6457,39 +6759,50 @@ dependencies = [ [[package]] name = "tor-error" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d764640168b176da6c44e4d5ceda97db3aca89d6f7e5ee398f454c56ba6a34c2" +checksum = "d5c23ce991df37473f65aef31df61f1b038f422ef7daf1d934eda9e533ef9843" dependencies = [ - "derive_more 1.0.0", + "derive_more", "futures", "once_cell", "paste", "retry-error", "static_assertions", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "tracing", "void", ] +[[package]] +name = "tor-general-addr" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f35f8ecb457f99f655c805f6c5cc855c63e71fa84c24a48e11e9fc51a7d7ad4b" +dependencies = [ + "derive_more", + "thiserror 2.0.16", + "void", +] + [[package]] name = "tor-guardmgr" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82444165f5f3a2587e4c93258c7a554718a4985780d262ae158a5e24fcbee019" +checksum = "29a8f3ddf135d23e2c5443e97fb30c635767daa44923b142915d22bdaf47e2ea" dependencies = [ "amplify", "base64ct", - "derive-deftly", + "derive-deftly 1.0.1", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "dyn-clone", "educe", "futures", "humantime", "humantime-serde", - "itertools 0.13.0", + "itertools 0.14.0", "num_enum", "oneshot-fused-workaround", "pin-project", @@ -6498,7 +6811,7 @@ dependencies = [ "safelog", "serde", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-async-utils", "tor-basic-utils", "tor-config", @@ -6517,70 +6830,78 @@ dependencies = [ [[package]] name = "tor-hscrypto" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda7d9ec707605c7bdd71c29a94e5cf6c1a61ed42f815b5dd2da3f1546393ca1" +checksum = "34606b731a6c9b24f102124947e8f4be85cd86d90816f4c5ff62c43776d557c5" dependencies = [ "data-encoding", - "derive_more 1.0.0", + "derive_more", "digest 0.10.7", - "itertools 0.13.0", + "itertools 0.14.0", "paste", "rand 0.8.5", "safelog", "signature", "subtle", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-basic-utils", "tor-bytes", "tor-error", + "tor-key-forge", "tor-llcrypto", "tor-units", + "void", ] [[package]] name = "tor-key-forge" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06c2a026f0a21f9870799eb3ac24340bfa71efb6126d9c7294a6d6c401a8ba67" +checksum = "b22ecf1c5b6bfa7849bf92cad3daab16bbc741ac62a61c9fea47c8be2f982e01" dependencies = [ - "derive-deftly", - "derive_more 1.0.0", + "derive-deftly 1.0.1", + "derive_more", "downcast-rs", "paste", "rand 0.8.5", "signature", "ssh-key", - "thiserror 1.0.69", + "thiserror 2.0.16", + "tor-bytes", + "tor-cert", + "tor-checkable", "tor-error", - "tor-hscrypto", "tor-llcrypto", ] [[package]] name = "tor-keymgr" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66ea6684cd1110c8b405443611b1c8f24cca4d8ca05a41ee747ea4479ad4c5c" +checksum = "06c16e10a2bd5888e0c22e92638aa4ac90cd9971f0bf302a10a6c907662323a4" dependencies = [ "amplify", "arrayvec", - "derive-deftly", + "cfg-if", + "derive-deftly 1.0.1", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "downcast-rs", "dyn-clone", "fs-mistrust", "glob-match", "humantime", "inventory", - "itertools 0.13.0", + "itertools 0.14.0", "rand 0.8.5", "serde", + "signature", "ssh-key", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-basic-utils", + "tor-bytes", "tor-config", + "tor-config-path", "tor-error", "tor-hscrypto", "tor-key-forge", @@ -6593,41 +6914,44 @@ dependencies = [ [[package]] name = "tor-linkspec" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53ccbd9372da197987699399c88695ecd1737c2b0e6267c540a3febdf92b5643" +checksum = "119c9fe01c6dace496dd137aba8ad6d92324a1dbdd4515a9348c499723c0f742" dependencies = [ "base64ct", "by_address", "caret", - "derive-deftly", + "derive-deftly 1.0.1", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "hex", - "itertools 0.13.0", + "itertools 0.14.0", "safelog", "serde", "serde_with", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-basic-utils", "tor-bytes", "tor-config", "tor-llcrypto", + "tor-memquota", "tor-protover", ] [[package]] name = "tor-llcrypto" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0c146b5c77f609dda6992f60940586fee2aa711dab5d59b3ecc7c8c958d787" +checksum = "85dbde770a588d073ae16dc743f51a135bd6d041943a82395b05365ed6c69a0f" dependencies = [ "aes", "base64ct", "ctr", "curve25519-dalek", - "derive_more 1.0.0", + "der-parser", + "derive-deftly 1.0.1", + "derive_more", "digest 0.10.7", "ed25519-dalek", "educe", @@ -6641,9 +6965,9 @@ dependencies = [ "sha2 0.10.9", "sha3", "signature", - "simple_asn1", "subtle", - "thiserror 1.0.69", + "thiserror 2.0.16", + "tor-memquota", "visibility", "x25519-dalek", "zeroize", @@ -6651,14 +6975,14 @@ dependencies = [ [[package]] name = "tor-log-ratelim" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6fada5f9dae169bd0caf2d61932c528e8136790a5a553eac9de30d6290fe7e" +checksum = "80aed29a8c53e55664e9dd4b99561dec2621dcedaa25116e58dd795fa6bf07f1" dependencies = [ "futures", "humantime", "once_cell", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-error", "tor-rtcompat", "tracing", @@ -6667,19 +6991,22 @@ dependencies = [ [[package]] name = "tor-memquota" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12551616f15f9d1fb4e37ee14ffc0b6743d0c31affbb4643374f456c0a820073" +checksum = "d63eef6dd4d38b16199cf201de07b6de4a6af310f67bd71067d22ef746eb1a1d" dependencies = [ - "derive-deftly", - "derive_more 1.0.0", + "derive-deftly 1.0.1", + "derive_more", + "dyn-clone", "educe", "futures", + "itertools 0.14.0", + "paste", "pin-project", "serde", - "slotmap", + "slotmap-careful", "static_assertions", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-async-utils", "tor-basic-utils", "tor-config", @@ -6692,21 +7019,22 @@ dependencies = [ [[package]] name = "tor-netdir" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d9b832338169a882cb895c79ea60089641749e1c2d6d4f7b8e23cc010185dfa" +checksum = "8e17883b3b2ef17a5f9ad4ae8a78de2c4b3d629ccfeb66c15c4cb33494384f08" dependencies = [ - "bitflags 2.9.1", - "derive_more 1.0.0", + "async-trait", + "bitflags 2.9.4", + "derive_more", "futures", "humantime", - "itertools 0.13.0", + "itertools 0.14.0", "num_enum", "rand 0.8.5", "serde", "static_assertions", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-basic-utils", "tor-error", "tor-linkspec", @@ -6720,21 +7048,21 @@ dependencies = [ [[package]] name = "tor-netdoc" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a5fbfe1444d96e08bb97cdf717a62738e5f1bd5a594c5520a05f683b8a516e3" +checksum = "aec11efe729e4ca9c5b03a8702f94b82dfd0ab450c0d58c4ca5ee9e4c49e6f89" dependencies = [ "amplify", "base64ct", - "bitflags 2.9.1", + "bitflags 2.9.4", "cipher", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "digest 0.10.7", "educe", "hex", "humantime", - "itertools 0.13.0", + "itertools 0.14.0", "once_cell", "phf", "serde", @@ -6742,9 +7070,9 @@ dependencies = [ "signature", "smallvec", "subtle", - "thiserror 1.0.69", + "thiserror 2.0.16", "time", - "tinystr 0.7.6", + "tinystr", "tor-basic-utils", "tor-bytes", "tor-cell", @@ -6760,23 +7088,24 @@ dependencies = [ [[package]] name = "tor-persist" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5acf1de8a8ad4817d8ebdf1250bddbe9efa4b25dea0a339ae8dbb1f7d7f28583" +checksum = "be9958219e20477aef5645f99d0d3695e01bb230bbd36a0fd4c207f5428abe6b" dependencies = [ - "derive-deftly", - "derive_more 1.0.0", + "derive-deftly 1.0.1", + "derive_more", "filetime", "fs-mistrust", "fslock", "futures", - "itertools 0.13.0", + "itertools 0.14.0", "oneshot-fused-workaround", "paste", "sanitize-filename", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.16", + "time", "tor-async-utils", "tor-basic-utils", "tor-error", @@ -6786,20 +7115,24 @@ dependencies = [ [[package]] name = "tor-proto" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "073a996250f73d7a814d9049de321a1f59a710dc18b92a4da8d26f002a5735dd" +checksum = "9ef488ff76f3cd9e6c8e4376c90dc526a27d74a53363a5f86af426d61c42edd9" dependencies = [ + "amplify", "asynchronous-codec", "bitvec", "bytes", + "caret", "cipher", "coarsetime", + "derive-deftly 1.0.1", "derive_builder_fork_arti", - "derive_more 1.0.0", + "derive_more", "digest 0.10.7", "educe", "futures", + "futures-util", "hkdf", "hmac 0.12.1", "oneshot-fused-workaround", @@ -6807,8 +7140,10 @@ dependencies = [ "rand 0.8.5", "rand_core 0.6.4", "safelog", + "slotmap-careful", + "static_assertions", "subtle", - "thiserror 1.0.69", + "thiserror 2.0.16", "tokio", "tokio-util", "tor-async-utils", @@ -6822,6 +7157,7 @@ dependencies = [ "tor-linkspec", "tor-llcrypto", "tor-log-ratelim", + "tor-memquota", "tor-rtcompat", "tor-rtmock", "tor-units", @@ -6833,19 +7169,19 @@ dependencies = [ [[package]] name = "tor-protover" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae806e57efcbd59694fd3c3c8100bc7dabc2dfd0bda70f122c7489fc0e889704" +checksum = "5a7d228eda4c7e7c96fff6a5f6759d1bd03bad69b62b9d94f2ac409de3518b8a" dependencies = [ "caret", - "thiserror 1.0.69", + "thiserror 2.0.16", ] [[package]] name = "tor-relay-selection" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca1a4d767cd52ee8723dfe9dc3ec640b7a37527e009bc0860301a1aad249871" +checksum = "e41754428684bd62892df2c74c2d11128cfbf3f1a8a9aaa1b920fcb90e04961a" dependencies = [ "rand 0.8.5", "serde", @@ -6857,24 +7193,28 @@ dependencies = [ [[package]] name = "tor-rtcompat" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df693852fb9a1c1a8bca1673fa3a8e1bca929fb2753165b1efce70f9381323b0" +checksum = "4956b5e707d288e22f77809507e67a79a11db9054a29a44af00f93ff7cb6c2c7" dependencies = [ "async-trait", "async_executors", + "asynchronous-codec", "coarsetime", - "derive_more 1.0.0", + "derive_more", + "dyn-clone", "educe", "futures", "futures-rustls", + "libc", "paste", "pin-project", "rustls-pki-types", - "thiserror 1.0.69", + "thiserror 2.0.16", "tokio", "tokio-util", "tor-error", + "tor-general-addr", "tracing", "void", "x509-signature", @@ -6882,25 +7222,26 @@ dependencies = [ [[package]] name = "tor-rtmock" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f540f59b3194f4ad697d6ffa13013e2b92e1058cd1b3beb9c8a500d2b805a92" +checksum = "9077af79aac5ad0c5336af1cc41a31c617bbc09261210a2427deb84f14356857" dependencies = [ "amplify", "async-trait", - "derive-deftly", - "derive_more 1.0.0", + "derive-deftly 1.0.1", + "derive_more", "educe", "futures", "humantime", - "itertools 0.13.0", + "itertools 0.14.0", "oneshot-fused-workaround", "pin-project", "priority-queue", - "slotmap", + "slotmap-careful", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-error", + "tor-general-addr", "tor-rtcompat", "tracing", "tracing-test", @@ -6909,25 +7250,31 @@ dependencies = [ [[package]] name = "tor-socksproto" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308849623b9aa2a604c42a68081f7956ea6d4b5f378dd94ef0a36f05e86399ff" +checksum = "d3892f6d0c323b87a2390f41e91c0294c6d5852f00e955e41e85a0116636e82d" dependencies = [ + "amplify", "caret", + "derive-deftly 1.0.1", + "educe", + "safelog", "subtle", - "thiserror 1.0.69", + "thiserror 2.0.16", "tor-bytes", "tor-error", ] [[package]] name = "tor-units" -version = "0.23.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de60d366ac1128f4cd3e1bae601a3d0393cd0c4e9e0e05eee605d28a8a5ce704" +checksum = "7388f506c9278d07421e6799aa8a912adee4ea6921b3dd08a1247a619de82124" dependencies = [ - "derive_more 1.0.0", - "thiserror 1.0.69", + "derive-deftly 1.0.1", + "derive_more", + "thiserror 2.0.16", + "tor-memquota", ] [[package]] @@ -6958,17 +7305,22 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", + "indexmap 2.11.1", "pin-project-lite", + "slab", "sync_wrapper", "tokio", + "tokio-util", "tower-layer", "tower-service", + "tracing", ] [[package]] name = "tower-batch-control" -version = "0.2.41-beta.22" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "0.2.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6823ca72ad0d8ebf40ddfe11c104f0ccb242befb7fd3bc20c33b6798a31eba" dependencies = [ "futures", "futures-core", @@ -6983,8 +7335,9 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.41-beta.22" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "0.2.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434e19ee996ee5c6aa42f11463a355138452592e5c5b5b73b6f0f19534556af" dependencies = [ "futures-core", "pin-project", @@ -6994,11 +7347,11 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdb0c213ca27a9f57ab69ddb290fd80d970922355b83ae380b395d3986b8a2e" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "bytes", "futures-util", "http", @@ -7036,20 +7389,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -7088,14 +7441,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -7122,7 +7475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" dependencies = [ "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -7133,7 +7486,7 @@ checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -7144,13 +7497,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typed-index-collections" -version = "3.3.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd393dbd1e7b23e0cab7396570309b4068aa504e9dac2cd41d827583b4e9ab7" -dependencies = [ - "bincode 2.0.1", - "serde", -] +checksum = "183496e014253d15abbe6235677b1392dba2d40524c88938991226baa38ac7c4" [[package]] name = "typemap-ors" @@ -7208,9 +7557,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-normalization" @@ -7276,21 +7625,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] [[package]] @@ -7307,9 +7651,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.17.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ "js-sys", "wasm-bindgen", @@ -7341,7 +7685,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -7436,17 +7780,26 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.5+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.0+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -7455,40 +7808,41 @@ version = "0.12.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" dependencies = [ - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" dependencies = [ "cfg-if", "js-sys", @@ -7499,9 +7853,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7509,22 +7863,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" dependencies = [ "unicode-ident", ] @@ -7537,9 +7891,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549" [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" dependencies = [ "js-sys", "wasm-bindgen", @@ -7567,39 +7921,38 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.0", + "webpki-roots 1.0.2", ] [[package]] name = "webpki-roots" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] [[package]] name = "which" -version = "4.4.2" +version = "7.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" dependencies = [ "either", - "home", - "once_cell", - "rustix 0.38.44", + "env_home", + "rustix 1.1.2", + "winsafe", ] [[package]] name = "which" -version = "6.0.3" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" +checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" dependencies = [ - "either", - "home", - "rustix 0.38.44", + "env_home", + "rustix 1.1.2", "winsafe", ] @@ -7621,11 +7974,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -7642,7 +7995,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -7655,7 +8008,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -7666,22 +8019,28 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" [[package]] name = "windows-registry" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bab093bdd303a1240bb99b8aba8ea8a69ee19d34c9e2ef9594e708a4878820" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -7692,7 +8051,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -7701,7 +8060,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -7731,6 +8090,24 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -7755,13 +8132,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "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 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -7774,6 +8168,12 @@ 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.48.5" @@ -7786,6 +8186,12 @@ 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.48.5" @@ -7798,12 +8204,24 @@ 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.48.5" @@ -7816,6 +8234,12 @@ 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.48.5" @@ -7828,6 +8252,12 @@ 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.48.5" @@ -7840,6 +8270,12 @@ 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.48.5" @@ -7852,11 +8288,17 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -7868,13 +8310,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.1", -] +checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36" [[package]] name = "writeable" @@ -7939,30 +8378,42 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "synstructure", ] [[package]] name = "zcash_address" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71591bb4eb2fd7622e88eed42e7d7d8501cd1e920a0698c7fb08723a8c1d0b4f" +checksum = "7c984ae01367a4a3d20e9d34ae4e4cc0dca004b22d9a10a51eec43f43934612e" dependencies = [ "bech32", "bs58", "core2", - "f4jumble", + "f4jumble 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "zcash_address" +version = "0.9.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" +dependencies = [ + "bech32", + "bs58", + "core2", + "f4jumble 0.1.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "proptest", - "zcash_encoding", - "zcash_protocol", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", ] [[package]] name = "zcash_client_backend" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568427bc188e401ece5524a66a6818ddb8f1b16bb518bafec7b83ca041adc5f9" +version = "0.19.1" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" dependencies = [ "arti-client", "base64", @@ -7976,6 +8427,7 @@ dependencies = [ "dynosaur", "fs-mistrust", "futures-util", + "getset", "group", "hex", "http-body-util", @@ -7983,7 +8435,6 @@ dependencies = [ "hyper-util", "incrementalmerkletree", "memuse", - "nom", "nonempty", "orchard", "pasta_curves", @@ -8000,23 +8451,24 @@ dependencies = [ "shardtree", "subtle", "time", + "time-core", "tokio", - "tokio-rustls 0.24.1", - "tonic", - "tonic-build", + "tokio-rustls", + "tonic 0.13.1", + "tonic-build 0.13.1", "tor-rtcompat", - "tower 0.4.13", + "tower 0.5.2", "tracing", "trait-variant", - "webpki-roots 0.25.4", - "which 6.0.3", - "zcash_address", - "zcash_encoding", - "zcash_keys", + "webpki-roots 0.26.11", + "which 7.0.3", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_keys 0.10.0", "zcash_note_encryption", - "zcash_primitives", - "zcash_protocol", - "zcash_transparent", + "zcash_primitives 0.24.0", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_transparent 0.4.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zip32", "zip321", ] @@ -8031,6 +8483,15 @@ dependencies = [ "nonempty", ] +[[package]] +name = "zcash_encoding" +version = "0.3.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" +dependencies = [ + "core2", + "nonempty", +] + [[package]] name = "zcash_history" version = "0.4.0" @@ -8044,9 +8505,8 @@ dependencies = [ [[package]] name = "zcash_keys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f19138db56626babaed67c9f8d8d6094b0413cc34f63b6e5a76071e44d395175" +version = "0.10.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" dependencies = [ "bech32", "bip32", @@ -8065,10 +8525,36 @@ dependencies = [ "secrecy", "subtle", "tracing", - "zcash_address", - "zcash_encoding", - "zcash_protocol", - "zcash_transparent", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_transparent 0.4.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zip32", +] + +[[package]] +name = "zcash_keys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6c8d3d5a08a66f76264c72172e692ec362218b091181cda30c04d00a4561cd8" +dependencies = [ + "bech32", + "blake2b_simd", + "bls12_381", + "bs58", + "core2", + "document-features", + "group", + "memuse", + "nonempty", + "rand_core 0.6.4", + "secrecy", + "subtle", + "tracing", + "zcash_address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_transparent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "zip32", ] @@ -8087,9 +8573,50 @@ dependencies = [ [[package]] name = "zcash_primitives" -version = "0.22.1" +version = "0.24.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" +dependencies = [ + "bip32", + "blake2b_simd", + "block-buffer 0.11.0-rc.3", + "bs58", + "core2", + "crypto-common 0.2.0-rc.1", + "document-features", + "equihash 0.2.2 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "ff", + "fpe", + "getset", + "group", + "hex", + "incrementalmerkletree", + "jubjub", + "memuse", + "nonempty", + "orchard", + "rand 0.8.5", + "rand_core 0.6.4", + "redjubjub", + "ripemd 0.1.3", + "sapling-crypto", + "secp256k1", + "sha2 0.10.9", + "subtle", + "tracing", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_note_encryption", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_spec", + "zcash_transparent 0.4.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zip32", +] + +[[package]] +name = "zcash_primitives" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4033e521ce8bc2e37cfa98f3db847495339de15858b349cc8a4078154cdc25dc" +checksum = "76362b79e432bde2f22b3defcb6919d4fb50446985997169da3cc3ae4035a6d9" dependencies = [ "bip32", "blake2b_simd", @@ -8098,7 +8625,7 @@ dependencies = [ "core2", "crypto-common 0.2.0-rc.1", "document-features", - "equihash", + "equihash 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "ff", "fpe", "getset", @@ -8118,20 +8645,42 @@ dependencies = [ "sha2 0.10.9", "subtle", "tracing", - "zcash_address", - "zcash_encoding", + "zcash_address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_note_encryption", - "zcash_protocol", + "zcash_protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_spec", - "zcash_transparent", + "zcash_transparent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "zip32", ] [[package]] name = "zcash_proofs" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bd0b0fe6a98a8b07e30c58457a2c2085f90e57ffac18eec9f72a566b471bde" +checksum = "9f90d9521161f7308c2fe6bddf771947f1a0fcd01b9e8a3b624c30a5661ad945" +dependencies = [ + "bellman", + "blake2b_simd", + "bls12_381", + "document-features", + "group", + "home", + "jubjub", + "known-folders", + "lazy_static", + "rand_core 0.6.4", + "redjubjub", + "sapling-crypto", + "tracing", + "xdg", + "zcash_primitives 0.24.1", +] + +[[package]] +name = "zcash_proofs" +version = "0.24.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" dependencies = [ "bellman", "blake2b_simd", @@ -8148,14 +8697,25 @@ dependencies = [ "sapling-crypto", "tracing", "xdg", - "zcash_primitives", + "zcash_primitives 0.24.0", ] [[package]] name = "zcash_protocol" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0acf60e235c5ba42c83f1e7e3763cf90a436583e6de71557fed26bab2d65dc" +checksum = "f9cfe9e3fb08e6851efe3d0ced457e4cb2c305daa928f64cb0d70c040f8f8336" +dependencies = [ + "core2", + "document-features", + "hex", + "memuse", +] + +[[package]] +name = "zcash_protocol" +version = "0.6.1" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" dependencies = [ "core2", "document-features", @@ -8165,12 +8725,20 @@ dependencies = [ [[package]] name = "zcash_script" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2122a042c77d529d3c60b899e74705eda39ae96a8a992460caeb06afa76990a2" +checksum = "caf6e76f310bb2d3cc233086a97c1710ba1de7ffbbf8198b8113407d0f427dfc" dependencies = [ - "bindgen", + "bindgen 0.72.1", + "bitflags 2.9.4", "cc", + "enum_primitive", + "ripemd 0.1.3", + "secp256k1", + "sha-1", + "sha2 0.10.9", + "thiserror 2.0.16", + "tracing", ] [[package]] @@ -8184,9 +8752,32 @@ dependencies = [ [[package]] name = "zcash_transparent" -version = "0.2.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd8c2d138ec893d3d384d97304da9ff879424056087c8ac811780a0e8d96a99" +checksum = "3a7c162a8aa6f708e842503ed5157032465dadfb1d7f63adf9db2d45213a0b11" +dependencies = [ + "bip32", + "blake2b_simd", + "bs58", + "core2", + "document-features", + "getset", + "hex", + "ripemd 0.1.3", + "secp256k1", + "sha2 0.10.9", + "subtle", + "zcash_address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_spec", + "zip32", +] + +[[package]] +name = "zcash_transparent" +version = "0.4.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" dependencies = [ "bip32", "blake2b_simd", @@ -8199,19 +8790,21 @@ dependencies = [ "secp256k1", "sha2 0.10.9", "subtle", - "zcash_address", - "zcash_encoding", - "zcash_protocol", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zcash_spec", "zip32", ] [[package]] name = "zebra-chain" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17a86ec712da2f25d3edc7e5cf0b1d15ef41ab35305e253f0f7cd9cecc0f1939" dependencies = [ - "bitflags 2.9.1", + "bech32", + "bitflags 2.9.4", "bitflags-serde-legacy", "bitvec", "blake2b_simd", @@ -8219,9 +8812,9 @@ dependencies = [ "bs58", "byteorder", "chrono", - "dirs 6.0.0", + "dirs", "ed25519-zebra", - "equihash", + "equihash 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "futures", "group", "halo2_proofs", @@ -8249,24 +8842,25 @@ dependencies = [ "sinsemilla", "static_assertions", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", "uint 0.10.0", "x25519-dalek", - "zcash_address", - "zcash_encoding", + "zcash_address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_encoding 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "zcash_history", "zcash_note_encryption", - "zcash_primitives", - "zcash_protocol", - "zcash_transparent", + "zcash_primitives 0.24.1", + "zcash_protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_transparent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "zebra-consensus" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a44698a96b007f00da9a2e4c4cdee6c5adfc22996bdeb06ccc781b96d597c0" dependencies = [ "bellman", "blake2b_simd", @@ -8278,13 +8872,14 @@ dependencies = [ "jubjub", "lazy_static", "metrics", + "mset", "once_cell", "orchard", "rand 0.8.5", "rayon", "sapling-crypto", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower 0.4.13", "tower-batch-control", @@ -8292,7 +8887,7 @@ dependencies = [ "tracing", "tracing-futures", "wagyu-zcash-parameters", - "zcash_proofs", + "zcash_proofs 0.24.0 (registry+https://github.com/rust-lang/crates.io-index)", "zebra-chain", "zebra-node-services", "zebra-script", @@ -8301,18 +8896,19 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0230d1e515518e0ef33ca668f3abb98e364485f384f7ee101506ec64bca7e7d3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.4", "byteorder", "bytes", "chrono", - "dirs 6.0.0", + "dirs", "futures", "hex", "humantime-serde", - "indexmap 2.9.0", + "indexmap 2.11.1", "itertools 0.14.0", "lazy_static", "metrics", @@ -8324,7 +8920,7 @@ dependencies = [ "regex", "serde", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-util", @@ -8337,8 +8933,9 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c808614a9d245ae8d6d3177c06a8c78c2a8566219b090d6a85dc46f4364eadad" dependencies = [ "color-eyre", "jsonrpsee-types", @@ -8351,31 +8948,43 @@ dependencies = [ [[package]] name = "zebra-rpc" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ae56eb3c668366a751621f40e1c0569c32ae92467ec1f8bac5b755db308126" dependencies = [ "base64", "chrono", "color-eyre", + "derive-getters", + "derive-new", "futures", "hex", "http-body-util", "hyper", - "indexmap 2.9.0", + "indexmap 2.11.1", "jsonrpsee", "jsonrpsee-proc-macros", "jsonrpsee-types", "nix 0.29.0", + "prost", "rand 0.8.5", "semver", "serde", "serde_json", + "serde_with", "tokio", + "tokio-stream", + "tonic 0.12.3", + "tonic-build 0.12.3", + "tonic-reflection", "tower 0.4.13", "tracing", - "zcash_address", - "zcash_primitives", - "zcash_protocol", + "which 8.0.0", + "zcash_address 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_keys 0.10.1", + "zcash_primitives 0.24.1", + "zcash_protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "zcash_transparent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "zebra-chain", "zebra-consensus", "zebra-network", @@ -8386,29 +8995,32 @@ dependencies = [ [[package]] name = "zebra-script" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76a2e972e414caa3635b8c2d21f20c21a71c69f76b37bf7419d97ed0c2277e7" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.16", + "zcash_primitives 0.24.1", "zcash_script", "zebra-chain", ] [[package]] name = "zebra-state" -version = "1.0.0-beta.46" -source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "129b32692f22207719dd1c5ddcbae59b96a322e2329664787f6247acef78c7f3" dependencies = [ - "bincode 1.3.3", + "bincode", "chrono", "crossbeam-channel", - "dirs 6.0.0", + "dirs", "futures", "hex", "hex-literal", "human_bytes", "humantime-serde", - "indexmap 2.9.0", + "indexmap 2.11.1", "itertools 0.14.0", "lazy_static", "metrics", @@ -8420,7 +9032,7 @@ dependencies = [ "semver", "serde", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tower 0.4.13", "tracing", @@ -8429,22 +9041,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -8464,7 +9076,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", "synstructure", ] @@ -8485,7 +9097,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -8501,9 +9113,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -8518,7 +9130,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.101", + "syn 2.0.106", ] [[package]] @@ -8538,11 +9150,11 @@ dependencies = [ "tempfile", "tokio", "tracing-subscriber", - "zcash_address", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zcash_client_backend", - "zcash_keys", - "zcash_primitives", - "zcash_protocol", + "zcash_keys 0.10.0", + "zcash_primitives 0.24.0", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zingo-infra-services", "zingo-testvectors", "zingolib", @@ -8552,7 +9164,7 @@ dependencies = [ [[package]] name = "zingo-infra-services" version = "0.1.0" -source = "git+https://github.com/zingolabs/infrastructure.git?branch=dev#c3678c1b14e0b7d28646039fe0204ebc1dab71b6" +source = "git+https://github.com/zingolabs/infrastructure.git?rev=91a1125a328edbbe459c16acb18b2f7e22008b28#91a1125a328edbbe459c16acb18b2f7e22008b28" dependencies = [ "getset", "hex", @@ -8566,8 +9178,9 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tracing", - "zcash_primitives", - "zcash_protocol", + "tracing-subscriber", + "zcash_primitives 0.24.0", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zebra-chain", "zebra-node-services", "zebra-rpc", @@ -8578,11 +9191,11 @@ name = "zingo-memo" version = "0.0.1" dependencies = [ "rand 0.8.5", - "zcash_address", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zcash_client_backend", - "zcash_encoding", - "zcash_keys", - "zcash_primitives", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_keys 0.10.0", + "zcash_primitives 0.24.0", ] [[package]] @@ -8597,9 +9210,9 @@ dependencies = [ "hyper-util", "prost", "rustls-pemfile", - "thiserror 2.0.12", - "tokio-rustls 0.26.2", - "tonic", + "thiserror 2.0.16", + "tokio-rustls", + "tonic 0.13.1", "tower 0.5.2", "webpki-roots 0.25.4", "zcash_client_backend", @@ -8615,10 +9228,10 @@ dependencies = [ "rust_decimal", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "zcash_client_backend", - "zcash_encoding", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", ] [[package]] @@ -8626,7 +9239,7 @@ name = "zingo-status" version = "0.0.1" dependencies = [ "byteorder", - "zcash_primitives", + "zcash_primitives 0.24.0", ] [[package]] @@ -8649,7 +9262,7 @@ dependencies = [ "bytes", "chrono", "concat-idents", - "dirs 6.0.0", + "dirs", "futures", "hex", "http", @@ -8674,19 +9287,19 @@ dependencies = [ "serde_json", "shardtree", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", - "tonic", + "tonic 0.13.1", "tracing", "tracing-subscriber", - "zcash_address", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zcash_client_backend", - "zcash_encoding", - "zcash_keys", - "zcash_primitives", - "zcash_proofs", - "zcash_protocol", - "zcash_transparent", + "zcash_encoding 0.3.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_keys 0.10.0", + "zcash_primitives 0.24.0", + "zcash_proofs 0.24.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_transparent 0.4.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", "zingo-infra-services", "zingo-memo", "zingo-netutils", @@ -8710,15 +9323,14 @@ dependencies = [ [[package]] name = "zip321" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b5156b2f2e06d7819c2a5fcd4d515e745f5ac97a06cfb3721205d965de8f13" +version = "0.5.0" +source = "git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b#d387aed7e04e881dbe30c6ff8b26a96c834c094b" dependencies = [ "base64", "nom", "percent-encoding", - "zcash_address", - "zcash_protocol", + "zcash_address 0.9.0 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", + "zcash_protocol 0.6.1 (git+https://github.com/zcash/librustzcash?rev=d387aed7e04e881dbe30c6ff8b26a96c834c094b)", ] [[package]] @@ -8741,9 +9353,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 38c26c1644..20f114e4a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ members = [ resolver = "2" [workspace.dependencies] -bip0039 = { version = "0.12", features = [ "rand" ] } +bip0039 = { version = "0.12", features = ["rand"] } bip32 = { version = "0.6.0-pre.1", default-features = false } zip32 = "0.2.0" @@ -25,24 +25,26 @@ orchard = "0.11.0" sapling-crypto = "0.5.0" incrementalmerkletree = "0.8.2" shardtree = "0.6.1" -zcash_address = "0.7.0" -zcash_client_backend = { version = "0.18.1", features = [ +zcash_address = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b" } +zcash_client_backend = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b", features = [ "lightwalletd-tonic", "orchard", "transparent-inputs", "tor", ] } -zcash_encoding = "0.3.0" -zcash_keys = { version = "0.8.0", features = [ +zcash_encoding = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b" } +zcash_keys = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b", features = [ "transparent-inputs", "sapling", "orchard", ] } zcash_note_encryption = "0.4.1" -zcash_primitives = "0.22.1" -zcash_proofs = "0.22.0" -zcash_protocol = "=0.5.1" -zcash_transparent = "0.2.3" +zcash_primitives = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b" } +zcash_proofs = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b" } +zcash_protocol = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b", features = [ + "local-consensus", +] } +zcash_transparent = { git = "https://github.com/zcash/librustzcash", rev = "d387aed7e04e881dbe30c6ff8b26a96c834c094b" } append-only-vec = "0.1.7" bech32 = "0.11.0" @@ -71,7 +73,7 @@ log4rs = "1" memuse = "0.2" nonempty = "0.11.0" portpicker = "0.1" -proptest = "1" +proptest = "1.6.0" prost = "0.13" rand = "0.8" reqwest = { version = "0.12.15", default-features = false } @@ -92,12 +94,8 @@ tempfile = "3" thiserror = "2" tokio = "1" tokio-rustls = "0.26" -tonic = { version = "0.12", features = [ - "tls", - "tls-roots", - "tls-webpki-roots", -] } -tonic-build = "0.12" +tonic = { version = "0.13", features = ["tls-webpki-roots"] } +tonic-build = "0.13" tower = { version = "0.5" } tracing = "0.1" tracing-subscriber = "0.3" @@ -107,7 +105,7 @@ crossbeam-channel = "0.5" rayon = "1" # Zingolabs -zingo-infra-services = { git = "https://github.com/zingolabs/infrastructure.git", branch = "dev" } +zingo-infra-services = { git = "https://github.com/zingolabs/infrastructure.git", rev = "91a1125a328edbbe459c16acb18b2f7e22008b28" } # Workspace testvectors = { package = "zingo-testvectors", path = "zingo-testvectors" } diff --git a/darkside-tests/src/chain_generics.rs b/darkside-tests/src/chain_generics.rs index 36d11df9ad..fda3f67828 100644 --- a/darkside-tests/src/chain_generics.rs +++ b/darkside-tests/src/chain_generics.rs @@ -73,7 +73,7 @@ pub(crate) mod conduct_chain { .await; let config = self .client_builder - .make_unique_data_dir_and_load_config(self.activation_heights); + .make_unique_data_dir_and_load_config(self.activation_heights.into()); let mut lightclient = LightClient::create_from_wallet( LightWallet::new( config.chain, @@ -100,7 +100,7 @@ pub(crate) mod conduct_chain { fn zingo_config(&mut self) -> zingolib::config::ZingoConfig { self.client_builder - .make_unique_data_dir_and_load_config(self.activation_heights) + .make_unique_data_dir_and_load_config(self.activation_heights.into()) } async fn bump_chain(&mut self) { diff --git a/darkside-tests/src/darkside_connector.rs b/darkside-tests/src/darkside_connector.rs index 2c5ec8b47c..db269e8392 100644 --- a/darkside-tests/src/darkside_connector.rs +++ b/darkside-tests/src/darkside_connector.rs @@ -43,7 +43,7 @@ impl DarksideConnector { let uri = uri.clone(); let svc = tower::ServiceBuilder::new() //Here, we take all the pieces of our uri, and add in the path from the Requests's uri - .map_request(move |mut req: http::Request| { + .map_request(move |mut req: http::Request| { let uri = Uri::builder() .scheme(uri.scheme().unwrap().clone()) .authority(uri.authority().unwrap().clone()) diff --git a/darkside-tests/src/utils.rs b/darkside-tests/src/utils.rs index 4ae3202e3c..e8cd0ad958 100644 --- a/darkside-tests/src/utils.rs +++ b/darkside-tests/src/utils.rs @@ -15,6 +15,7 @@ use zcash_primitives::{merkle_tree::read_commitment_tree, transaction::Transacti use zingo_infra_services::{ indexer::{Indexer, Lightwalletd, LightwalletdConfig}, network::localhost_uri, + utils::ExecutableLocation, }; use super::{ @@ -28,7 +29,7 @@ use crate::{ }; use zingolib::testutils::paths::get_cargo_manifest_dir; -const LIGHTWALLETD_BIN: Option = None; +const LIGHTWALLETD_BIN: Option = None; pub async fn prepare_darksidewalletd( uri: http::Uri, @@ -213,7 +214,7 @@ pub async fn init_darksidewalletd( set_port: Option, ) -> Result<(Lightwalletd, DarksideConnector), String> { let lightwalletd = Lightwalletd::launch(LightwalletdConfig { - lightwalletd_bin: LIGHTWALLETD_BIN, + lightwalletd_bin: LIGHTWALLETD_BIN.unwrap(), // TODO: What should we do if there's no binary? listen_port: set_port, zcashd_conf: PathBuf::new(), darkside: true, @@ -326,7 +327,7 @@ pub mod scenarios { }; use testvectors::seeds::HOSPITAL_MUSEUM_SEED; use zingolib::lightclient::LightClient; - use zingolib::testutils::scenarios::ClientBuilder; + use zingolib::{testutils::scenarios::ClientBuilder, wallet::network::ZingolibLocalNetwork}; pub struct DarksideEnvironment { lightwalletd: Lightwalletd, @@ -345,12 +346,12 @@ pub mod scenarios { let (lightwalletd, darkside_connector) = init_darksidewalletd(set_port).await.unwrap(); let client_builder = ClientBuilder::new(darkside_connector.0.clone(), tempfile::tempdir().unwrap()); - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); DarksideEnvironment { lightwalletd, darkside_connector, client_builder, - activation_heights, + activation_heights: activation_heights.into(), faucet: None, lightclients: vec![], staged_blockheight: BlockHeight::from(1), @@ -381,7 +382,7 @@ pub mod scenarios { testvectors::seeds::DARKSIDE_SEED.to_string(), 0, true, - self.activation_heights, + self.activation_heights.into(), )); let faucet_funding_transaction = match funded_pool { @@ -406,9 +407,12 @@ pub mod scenarios { seed: String, birthday: u64, ) -> &mut DarksideEnvironment { - let lightclient = - self.client_builder - .build_client(seed, birthday, true, self.activation_heights); + let lightclient = self.client_builder.build_client( + seed, + birthday, + true, + self.activation_heights.into(), + ); self.lightclients.push(lightclient); self } diff --git a/darkside-tests/tests/advanced_reorg_tests.rs b/darkside-tests/tests/advanced_reorg_tests.rs index 6f425280c6..4bdda4fc8f 100644 --- a/darkside-tests/tests/advanced_reorg_tests.rs +++ b/darkside-tests/tests/advanced_reorg_tests.rs @@ -18,9 +18,9 @@ use tokio::time::sleep; use zcash_primitives::consensus::BlockHeight; use zingo_infra_services::{ indexer::{Indexer, Lightwalletd, LightwalletdConfig}, - network::{ActivationHeights, localhost_uri}, + network::localhost_uri, }; -use zingolib::wallet::summary::data::ValueTransferKind; +use zingolib::wallet::{network::ZingolibLocalNetwork, summary::data::ValueTransferKind}; use zingolib::{testutils::scenarios::LIGHTWALLETD_BIN, wallet::summary::data::SentValueTransfer}; use zingolib::{ testutils::{ @@ -51,7 +51,7 @@ async fn reorg_changes_incoming_tx_height() { ADVANCED_REORG_TESTS_USER_WALLET.to_string(), 202, true, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), ); light_client.sync_and_await().await.unwrap(); @@ -215,7 +215,7 @@ async fn reorg_changes_incoming_tx_index() { ADVANCED_REORG_TESTS_USER_WALLET.to_string(), 202, true, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), ); light_client.sync_and_await().await.unwrap(); @@ -379,7 +379,7 @@ async fn reorg_expires_incoming_tx() { ADVANCED_REORG_TESTS_USER_WALLET.to_string(), 202, true, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), ); light_client.sync_and_await().await.unwrap(); @@ -565,7 +565,7 @@ async fn reorg_changes_outgoing_tx_height() { ADVANCED_REORG_TESTS_USER_WALLET.to_string(), 202, true, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), ); light_client.sync_and_await().await.unwrap(); @@ -826,7 +826,7 @@ async fn reorg_expires_outgoing_tx_height() { ADVANCED_REORG_TESTS_USER_WALLET.to_string(), 202, true, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), ); let expected_initial_balance = AccountBalance { @@ -1032,7 +1032,7 @@ async fn reorg_changes_outgoing_tx_index() { ADVANCED_REORG_TESTS_USER_WALLET.to_string(), 202, true, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), ); light_client.sync_and_await().await.unwrap(); diff --git a/darkside-tests/tests/tests.rs b/darkside-tests/tests/tests.rs index 2b6fce0f81..e069b0ceb5 100644 --- a/darkside-tests/tests/tests.rs +++ b/darkside-tests/tests/tests.rs @@ -9,7 +9,6 @@ use testvectors::seeds::DARKSIDE_SEED; use zingo_infra_services::indexer::Indexer; use zingo_infra_services::indexer::Lightwalletd; use zingo_infra_services::indexer::LightwalletdConfig; -use zingo_infra_services::network::ActivationHeights; use zingo_infra_services::network::localhost_uri; // use zcash_client_backend::PoolType::Shielded; // use zcash_client_backend::ShieldedProtocol::Orchard; @@ -21,6 +20,7 @@ use zingolib::testutils::lightclient::from_inputs; use zingolib::testutils::scenarios::ClientBuilder; use zingolib::testutils::scenarios::LIGHTWALLETD_BIN; use zingolib::wallet::balance::AccountBalance; +use zingolib::wallet::network::ZingolibLocalNetwork; #[ignore = "darkside bug, invalid block hash length in tree states"] #[tokio::test] @@ -37,7 +37,7 @@ async fn simple_sync() { prepare_darksidewalletd(server_id.clone(), true) .await .unwrap(); - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); let wallet_dir = TempDir::new().unwrap(); let mut light_client = ClientBuilder::new(server_id, wallet_dir).build_client( DARKSIDE_SEED.to_string(), @@ -87,7 +87,7 @@ async fn reorg_receipt_sync_generic() { .await .unwrap(); - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); let wallet_dir = TempDir::new().unwrap(); let mut light_client = ClientBuilder::new(server_id.clone(), wallet_dir).build_client( DARKSIDE_SEED.to_string(), @@ -155,7 +155,7 @@ async fn sent_transaction_reorged_into_mempool() { let wallet_dir = TempDir::new().unwrap(); let mut client_manager = ClientBuilder::new(server_id.clone(), wallet_dir); - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); let mut light_client = client_manager.build_client(DARKSIDE_SEED.to_string(), 0, true, activation_heights); let mut recipient = client_manager.build_client( diff --git a/libtonode-tests/tests/concrete.rs b/libtonode-tests/tests/concrete.rs index 758e693070..aeb0a4614c 100644 --- a/libtonode-tests/tests/concrete.rs +++ b/libtonode-tests/tests/concrete.rs @@ -152,6 +152,7 @@ mod fast { }, wallet::{ keys::unified::{ReceiverSelection, UnifiedAddressId}, + network::ZingolibLocalNetwork, summary::data::{SelfSendValueTransfer, SentValueTransfer, ValueTransferKind}, }, }; @@ -456,12 +457,12 @@ mod fast { async fn unified_address_discovery() { let (local_net, mut client_builder) = scenarios::custom_clients_default().await; let mut faucet = - client_builder.build_faucet(true, local_net.validator().activation_heights()); + client_builder.build_faucet(true, local_net.validator().activation_heights().into()); let mut recipient = client_builder.build_client( HOSPITAL_MUSEUM_SEED.to_string(), 0, true, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); let network = recipient.wallet.read().await.network; @@ -511,7 +512,7 @@ mod fast { HOSPITAL_MUSEUM_SEED.to_string(), 0, true, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); if let Some(_ua) = recipient @@ -613,7 +614,7 @@ mod fast { Some(100_000), None, PoolType::Shielded(ShieldedProtocol::Orchard), - ActivationHeights::default(), + ZingolibLocalNetwork::default(), None, ) .await; @@ -1172,7 +1173,7 @@ mod fast { seed_phrase, 0, false, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); let network = recipient.wallet.read().await.network; let (new_address_id, new_address) = recipient @@ -1245,7 +1246,7 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" HOSPITAL_MUSEUM_SEED.to_string(), 0, false, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); assert_eq!( @@ -1257,7 +1258,7 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" #[tokio::test] async fn mine_to_orchard() { let (local_net, mut faucet) = - scenarios::faucet(PoolType::ORCHARD, ActivationHeights::default(), None).await; + scenarios::faucet(PoolType::ORCHARD, ZingolibLocalNetwork::default(), None).await; check_client_balances!(faucet, o: 1_875_000_000 s: 0 t: 0); increase_height_and_wait_for_client(&local_net, &mut faucet, 1) .await @@ -1268,7 +1269,7 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" #[tokio::test] async fn mine_to_sapling() { let (local_net, mut faucet) = - scenarios::faucet(PoolType::SAPLING, ActivationHeights::default(), None).await; + scenarios::faucet(PoolType::SAPLING, ZingolibLocalNetwork::default(), None).await; check_client_balances!(faucet, o: 0 s: 1_875_000_000 t: 0); increase_height_and_wait_for_client(&local_net, &mut faucet, 1) .await @@ -1278,9 +1279,12 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" #[tokio::test] async fn mine_to_transparent() { - let (local_net, mut faucet, _recipient) = - scenarios::faucet_recipient(PoolType::Transparent, ActivationHeights::default(), None) - .await; + let (local_net, mut faucet, _recipient) = scenarios::faucet_recipient( + PoolType::Transparent, + ZingolibLocalNetwork::default(), + None, + ) + .await; check_client_balances!(faucet, o: 0 s: 0 t: 1_875_000_000); increase_height_and_wait_for_client(&local_net, &mut faucet, 1) .await @@ -1293,17 +1297,20 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" #[ignore] #[tokio::test] async fn sync_all_epochs() { - let activation_heights = ActivationHeights { - overwinter: 1.into(), - sapling: 3.into(), - blossom: 5.into(), - heartwood: 7.into(), - canopy: 9.into(), - nu5: 11.into(), - nu6: 13.into(), - }; + let activation_heights = + ActivationHeights::new(zcash_protocol::local_consensus::LocalNetwork { + overwinter: Some(BlockHeight::from(1)), + sapling: Some(BlockHeight::from(3)), + blossom: Some(BlockHeight::from(5)), + heartwood: Some(BlockHeight::from(7)), + canopy: Some(BlockHeight::from(9)), + nu5: Some(BlockHeight::from(11)), + nu6: Some(BlockHeight::from(13)), + nu6_1: Some(BlockHeight::from(15)), + }); + let (local_net, mut lightclient) = - scenarios::unfunded_client(activation_heights, None).await; + scenarios::unfunded_client(activation_heights.into(), None).await; increase_height_and_wait_for_client(&local_net, &mut lightclient, 14) .await .unwrap(); @@ -1311,17 +1318,19 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" #[tokio::test] async fn sync_all_epochs_from_heartwood() { - let activation_heights = ActivationHeights { - overwinter: 1.into(), - sapling: 1.into(), - blossom: 1.into(), - heartwood: 1.into(), - canopy: 3.into(), - nu5: 5.into(), - nu6: 7.into(), - }; + let activation_heights = + ActivationHeights::new(zcash_protocol::local_consensus::LocalNetwork { + overwinter: Some(BlockHeight::from(1)), + sapling: Some(BlockHeight::from(1)), + blossom: Some(BlockHeight::from(1)), + heartwood: Some(BlockHeight::from(1)), + canopy: Some(BlockHeight::from(3)), + nu5: Some(BlockHeight::from(5)), + nu6: Some(BlockHeight::from(7)), + nu6_1: Some(BlockHeight::from(9)), + }); let (local_net, mut lightclient) = - scenarios::unfunded_client(activation_heights, None).await; + scenarios::unfunded_client(activation_heights.into(), None).await; increase_height_and_wait_for_client(&local_net, &mut lightclient, 5) .await .unwrap(); @@ -1331,7 +1340,7 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" #[ignore] #[tokio::test] async fn mine_to_transparent_and_shield() { - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); let (local_net, mut faucet, _recipient) = scenarios::faucet_recipient(PoolType::Transparent, activation_heights, None).await; increase_height_and_wait_for_client(&local_net, &mut faucet, 100) @@ -1341,7 +1350,7 @@ tmQuMoTTjU3GFfTjrhPiBYihbTVfYmPk5Gr" } #[tokio::test] async fn mine_to_transparent_and_propose_shielding() { - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); let (local_net, mut faucet, _recipient) = scenarios::faucet_recipient(PoolType::Transparent, activation_heights, None).await; increase_height_and_wait_for_client(&local_net, &mut faucet, 100) @@ -1400,6 +1409,7 @@ mod slow { use zingolib::utils::conversion::txid_from_hex_encoded_str; use zingolib::wallet::error::{CalculateTransactionError, ProposeSendError}; use zingolib::wallet::keys::unified::UnifiedAddressId; + use zingolib::wallet::network::ZingolibLocalNetwork; use zingolib::wallet::output::SpendStatus; use zingolib::wallet::summary::data::{ BasicNoteSummary, OutgoingNoteSummary, SendType, TransactionKind, TransactionSummary, @@ -1707,17 +1717,17 @@ mod slow { tracing_subscriber::fmt().init(); let (local_net, mut client_builder) = scenarios::custom_clients_default().await; let mut faucet = - client_builder.build_faucet(false, local_net.validator().activation_heights()); + client_builder.build_faucet(false, local_net.validator().activation_heights().into()); let mut original_recipient = client_builder.build_client( HOSPITAL_MUSEUM_SEED.to_string(), 0, false, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); let zingo_config = zingolib::config::load_clientconfig( client_builder.server_id, Some(client_builder.zingo_datadir.path().to_path_buf()), - ChainType::Regtest(local_net.validator().activation_heights()), + ChainType::Regtest(local_net.validator().activation_heights().into()), WalletSettings { sync_config: SyncConfig { transparent_address_discovery: TransparentAddressDiscovery::minimal(), @@ -2476,7 +2486,7 @@ TransactionSummary { // consistent with all the notes in the relevant block changing state. // NOTE that the balance doesn't give insight into the distribution across notes. let (local_net, mut faucet) = - scenarios::faucet(PoolType::SAPLING, ActivationHeights::default(), None).await; + scenarios::faucet(PoolType::SAPLING, ZingolibLocalNetwork::default(), None).await; let amount_to_send = 10_000; let faucet_ua = get_base_address_macro!(faucet, "unified"); @@ -2507,18 +2517,20 @@ TransactionSummary { #[tokio::test] async fn send_heartwood_sapling_funds() { - let activation_heights = ActivationHeights { - overwinter: 1.into(), - sapling: 1.into(), - blossom: 1.into(), - heartwood: 1.into(), - canopy: 3.into(), - nu5: 5.into(), - nu6: 5.into(), - }; + let activation_heights = + ActivationHeights::new(zcash_protocol::local_consensus::LocalNetwork { + overwinter: Some(BlockHeight::from(1)), + sapling: Some(BlockHeight::from(1)), + blossom: Some(BlockHeight::from(1)), + heartwood: Some(BlockHeight::from(1)), + canopy: Some(BlockHeight::from(3)), + nu5: Some(BlockHeight::from(5)), + nu6: Some(BlockHeight::from(5)), + nu6_1: Some(BlockHeight::from(5)), + }); let (local_net, mut faucet, mut recipient) = scenarios::faucet_recipient( PoolType::Shielded(ShieldedProtocol::Sapling), - activation_heights, + activation_heights.into(), None, ) .await; @@ -2550,7 +2562,7 @@ TransactionSummary { Some(100_000), Some(100_000), PoolType::Shielded(ShieldedProtocol::Orchard), - ActivationHeights::default(), + ZingolibLocalNetwork::default(), None, ) .await; @@ -2638,7 +2650,7 @@ TransactionSummary { Some(funding_value), None, PoolType::Shielded(ShieldedProtocol::Orchard), - ActivationHeights::default(), + ZingolibLocalNetwork::default(), None, ) .await; @@ -3330,12 +3342,12 @@ TransactionSummary { // Check that list_value_transfers behaves correctly given different fee scenarios let (local_net, mut client_builder) = scenarios::custom_clients_default().await; let mut faucet = - client_builder.build_faucet(false, local_net.validator().activation_heights()); + client_builder.build_faucet(false, local_net.validator().activation_heights().into()); let mut pool_migration_client = client_builder.build_client( HOSPITAL_MUSEUM_SEED.to_string(), 0, false, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); let pmc_taddr = get_base_address_macro!(pool_migration_client, "transparent"); let pmc_sapling = get_base_address_macro!(pool_migration_client, "sapling"); @@ -3375,12 +3387,12 @@ TransactionSummary { // Test all possible promoting note source combinations let (local_net, mut client_builder) = scenarios::custom_clients_default().await; let mut faucet = - client_builder.build_faucet(false, local_net.validator().activation_heights()); + client_builder.build_faucet(false, local_net.validator().activation_heights().into()); let mut client = client_builder.build_client( HOSPITAL_MUSEUM_SEED.to_string(), 0, false, - local_net.validator().activation_heights(), + local_net.validator().activation_heights().into(), ); let pmc_taddr = get_base_address_macro!(client, "transparent"); let pmc_sapling = get_base_address_macro!(client, "sapling"); @@ -3713,17 +3725,27 @@ TransactionSummary { from_inputs::quick_send(&mut faucet, vec![(&base_uaddress, 1_000u64, Some("1"))]) .await .unwrap(); + local_net.validator().generate_blocks(1).await.unwrap(); + faucet.sync_and_await().await.unwrap(); + from_inputs::quick_send(&mut faucet, vec![(&base_uaddress, 1_000u64, Some("1"))]) .await .unwrap(); + local_net.validator().generate_blocks(1).await.unwrap(); + faucet.sync_and_await().await.unwrap(); + assert_eq!( JsonValue::from(faucet.do_total_memobytes_to_address().await.unwrap())[&base_uaddress] .pretty(4), "2".to_string() ); + from_inputs::quick_send(&mut faucet, vec![(&base_uaddress, 1_000u64, Some("aaaa"))]) .await .unwrap(); + local_net.validator().generate_blocks(1).await.unwrap(); + faucet.sync_and_await().await.unwrap(); + assert_eq!( JsonValue::from(faucet.do_total_memobytes_to_address().await.unwrap())[&base_uaddress] .pretty(4), diff --git a/zingo-netutils/src/lib.rs b/zingo-netutils/src/lib.rs index ee90e0dd84..a7fc1993f6 100644 --- a/zingo-netutils/src/lib.rs +++ b/zingo-netutils/src/lib.rs @@ -8,18 +8,16 @@ use std::sync::Arc; use client::client_from_connector; use http::{Uri, uri::PathAndQuery}; -use http_body_util::combinators::UnsyncBoxBody; use hyper_util::client::legacy::connect::HttpConnector; use tokio_rustls::rustls::pki_types::{Der, TrustAnchor}; use tokio_rustls::rustls::{ClientConfig, RootCertStore}; -use tonic::Status; use tower::ServiceExt; use tower::util::BoxCloneService; use zcash_client_backend::proto::service::compact_tx_streamer_client::CompactTxStreamerClient; /// ? pub type UnderlyingService = BoxCloneService< - http::Request>, + http::Request, http::Response, hyper_util::client::legacy::Error, >; @@ -123,7 +121,7 @@ impl GrpcConnector { let client = client_from_connector(connector, false); let svc = tower::ServiceBuilder::new() //Here, we take all the pieces of our uri, and add in the path from the Requests's uri - .map_request(move |mut request: http::Request| { + .map_request(move |mut request: http::Request<_>| { let path_and_query = request .uri() .path_and_query() @@ -149,7 +147,7 @@ impl GrpcConnector { let client = client_from_connector(connector, true); let svc = tower::ServiceBuilder::new() //Here, we take all the pieces of our uri, and add in the path from the Requests's uri - .map_request(move |mut request: http::Request| { + .map_request(move |mut request: http::Request<_>| { let path_and_query = request .uri() .path_and_query() diff --git a/zingocli/src/commands.rs b/zingocli/src/commands.rs index ad3db089c4..a2dd48da53 100644 --- a/zingocli/src/commands.rs +++ b/zingocli/src/commands.rs @@ -15,13 +15,13 @@ use pepper_sync::config::PerformanceLevel; use pepper_sync::keys::transparent; use std::sync::LazyLock; use tokio::runtime::Runtime; +use zingolib::wallet::network::ZingolibLocalNetwork; use zcash_address::unified::{Container, Encoding, Ufvk}; use zcash_keys::address::Address; use zcash_keys::keys::UnifiedFullViewingKey; use zcash_protocol::consensus::NetworkType; use zcash_protocol::value::Zatoshis; -use zingo_infra_services::network::ActivationHeights; use pepper_sync::wallet::{KeyIdInterface, OrchardNote, SaplingNote, SyncMode}; use zingolib::data::{PollReport, proposal}; @@ -219,7 +219,7 @@ impl Command for ParseAddressCommand { [ zingolib::config::ChainType::Mainnet, zingolib::config::ChainType::Testnet, - zingolib::config::ChainType::Regtest(ActivationHeights::default()), + zingolib::config::ChainType::Regtest(ZingolibLocalNetwork::default()), ] .iter() .find_map(|chain| Address::decode(chain, address).zip(Some(*chain))) diff --git a/zingocli/src/lib.rs b/zingocli/src/lib.rs index d0bbdb20ea..80a2843019 100644 --- a/zingocli/src/lib.rs +++ b/zingocli/src/lib.rs @@ -21,11 +21,11 @@ use commands::ShortCircuitedCommand; use pepper_sync::config::{PerformanceLevel, SyncConfig, TransparentAddressDiscovery}; use zingo_infra_services::LocalNet; use zingo_infra_services::indexer::{Lightwalletd, LightwalletdConfig}; -use zingo_infra_services::network::ActivationHeights; use zingo_infra_services::validator::{Zcashd, ZcashdConfig}; use zingolib::config::ChainType; use zingolib::lightclient::LightClient; use zingolib::testutils::scenarios::{LIGHTWALLETD_BIN, ZCASH_CLI_BIN, ZCASHD_BIN}; +use zingolib::wallet::network::ZingolibLocalNetwork; use zingolib::wallet::{LightWallet, WalletBase, WalletSettings}; use crate::commands::RT; @@ -381,11 +381,11 @@ If you don't remember the block height, you can pass '--birthday 0' to scan from match chain.as_str() { "mainnet" => ChainType::Mainnet, "testnet" => ChainType::Testnet, - "regtest" => ChainType::Regtest(ActivationHeights::default()), + "regtest" => ChainType::Regtest(ZingolibLocalNetwork::default()), _ => return Err(chain.clone()), } } else if is_regtest { - ChainType::Regtest(ActivationHeights::default()) + ChainType::Regtest(ZingolibLocalNetwork::default()) } else { ChainType::Mainnet }; @@ -649,7 +649,7 @@ pub fn run_cli() { zcashd_bin: ZCASHD_BIN.clone(), zcash_cli_bin: ZCASH_CLI_BIN.clone(), rpc_listen_port: None, - activation_heights: ActivationHeights::default(), + activation_heights: ZingolibLocalNetwork::default().into(), miner_address: Some(REG_O_ADDR_FROM_ABANDONART), chain_cache: None, }, diff --git a/zingolib/src/config.rs b/zingolib/src/config.rs index 8fdf486ded..6c5d9fdca4 100644 --- a/zingolib/src/config.rs +++ b/zingolib/src/config.rs @@ -26,9 +26,8 @@ use log4rs::{ use zcash_primitives::consensus::{ BlockHeight, MAIN_NETWORK, NetworkType, NetworkUpgrade, Parameters, TEST_NETWORK, }; -use zingo_infra_services::network::ActivationHeights; -use crate::wallet::WalletSettings; +use crate::wallet::{WalletSettings, network::ZingolibLocalNetwork}; /// TODO: Add Doc Comment Here! pub const DEVELOPER_DONATION_ADDRESS: &str = "u1w47nzy4z5g9zvm4h2s4ztpl8vrdmlclqz5sz02742zs5j3tz232u4safvv9kplg7g06wpk5fx0k0rx3r9gg4qk6nkg4c0ey57l0dyxtatqf8403xat7vyge7mmen7zwjcgvryg22khtg3327s6mqqkxnpwlnrt27kxhwg37qys2kpn2d2jl2zkk44l7j7hq9az82594u3qaescr3c9v"; @@ -496,7 +495,7 @@ pub enum ChainType { /// Public testnet Testnet, /// Local testnet - Regtest(ActivationHeights), + Regtest(ZingolibLocalNetwork), /// Mainnet Mainnet, } @@ -527,7 +526,11 @@ impl Parameters for ChainType { match self { Mainnet => MAIN_NETWORK.activation_height(nu), Testnet => TEST_NETWORK.activation_height(nu), - Regtest(activation_heights) => Some(activation_heights.activation_height(nu)), + Regtest(activation_heights) => Some( + activation_heights + .activation_height(nu) + .unwrap_or(BlockHeight::from_u32(1)), + ), } } } diff --git a/zingolib/src/lightclient.rs b/zingolib/src/lightclient.rs index e3cd542af9..f62424d105 100644 --- a/zingolib/src/lightclient.rs +++ b/zingolib/src/lightclient.rs @@ -315,20 +315,18 @@ mod tests { use crate::{ config::{ChainType, ZingoConfig}, lightclient::error::LightClientError, - wallet::LightWallet, + wallet::{LightWallet, network::ZingolibLocalNetwork}, }; use bip0039::Mnemonic; use tempfile::TempDir; use testvectors::seeds::CHIMNEY_BETTER_SEED; - use zingo_infra_services::network::ActivationHeights; use crate::{lightclient::LightClient, wallet::WalletBase}; #[tokio::test] async fn new_wallet_from_phrase() { let temp_dir = TempDir::new().unwrap(); - let activation_heights = ActivationHeights::default(); - let config = ZingoConfig::build(ChainType::Regtest(activation_heights)) + let config = ZingoConfig::build(ChainType::Regtest(ZingolibLocalNetwork::default())) .set_wallet_dir(temp_dir.path().to_path_buf()) .create(); let mut lc = LightClient::create_from_wallet( diff --git a/zingolib/src/mocks.rs b/zingolib/src/mocks.rs index 63eba28dc8..3012003e7c 100644 --- a/zingolib/src/mocks.rs +++ b/zingolib/src/mocks.rs @@ -429,7 +429,7 @@ pub mod proposal { step.shielded_inputs().cloned(), step.balance().clone(), self.fee_rule.unwrap(), - self.min_target_height.unwrap(), + self.min_target_height.unwrap().into(), step.is_shielding(), ) .unwrap() @@ -534,6 +534,8 @@ pub mod proposal { zcash_client_backend::wallet::Note::Sapling(note), zip32::Scope::External, Position::from(1), + None, // mined_height. TODO: How should we use this here? + None, // max_shielding_input_height. TODO: How should we use this here? )), ))) .prior_step_inputs(vec![]) diff --git a/zingolib/src/testutils.rs b/zingolib/src/testutils.rs index 9aea22f049..9ae5c5da1b 100644 --- a/zingolib/src/testutils.rs +++ b/zingolib/src/testutils.rs @@ -270,7 +270,7 @@ pub async fn generate_n_blocks_return_new_height( local_net.validator().generate_blocks(n).await.unwrap(); assert_eq!(local_net.validator().get_chain_height().await, target); - target + BlockHeight::from_u32(target.into()) } /// Will hang if chain does not reach `target_block_height` diff --git a/zingolib/src/testutils/assertions.rs b/zingolib/src/testutils/assertions.rs index a279be04fa..ba812b3a03 100644 --- a/zingolib/src/testutils/assertions.rs +++ b/zingolib/src/testutils/assertions.rs @@ -5,6 +5,7 @@ use nonempty::NonEmpty; use pepper_sync::wallet::WalletTransaction; use zcash_client_backend::proposal::{Proposal, Step}; use zcash_primitives::transaction::TxId; +use zcash_protocol::value::Zatoshis; use crate::{lightclient::LightClient, wallet::LightWallet}; @@ -14,7 +15,7 @@ pub enum ProposalToTransactionRecordComparisonError { #[error("{0:?}")] LookupError(#[from] LookupRecordsPairStepsError), #[error("Mismatch: Recorded fee: {0:?} ; Expected fee: {1:?}")] - Mismatch(Result, u64), + Mismatch(Result, Zatoshis), } /// compares a proposal with a fulfilled record and returns the agreed fee @@ -22,14 +23,14 @@ pub fn compare_fee( wallet: &LightWallet, transaction: &WalletTransaction, step: &Step, -) -> Result { + // TODO: Should this be `Zatoshis`? Or should it be `ZatBalance`? +) -> Result { let recorded_fee_result = wallet.calculate_transaction_fee(transaction); - let proposed_fee = step.balance().fee_required().into_u64(); + let proposed_fee = step.balance().fee_required(); if let Ok(recorded_fee) = recorded_fee_result - && recorded_fee == proposed_fee - { - return Ok(recorded_fee); - } + && recorded_fee == proposed_fee { + return Ok(recorded_fee); + } Err(ProposalToTransactionRecordComparisonError::Mismatch( recorded_fee_result, proposed_fee, @@ -46,7 +47,7 @@ pub async fn lookup_fees_with_proposal_check( client: &LightClient, proposal: &Proposal, txids: &NonEmpty, -) -> Vec> { +) -> Vec> { for_each_proposed_transaction(client, proposal, txids, |records, record, step| { compare_fee(records, record, step) }) diff --git a/zingolib/src/testutils/chain_generics/fixtures.rs b/zingolib/src/testutils/chain_generics/fixtures.rs index f71669fe14..82fa9fc190 100644 --- a/zingolib/src/testutils/chain_generics/fixtures.rs +++ b/zingolib/src/testutils/chain_generics/fixtures.rs @@ -3,6 +3,7 @@ use pepper_sync::wallet::SaplingNote; use zcash_primitives::transaction::fees::zip317::MARGINAL_FEE; +use zcash_protocol::value::Zatoshis; use zcash_protocol::{PoolType, ShieldedProtocol}; use crate::testutils::chain_generics::conduct_chain::ConductChain; @@ -150,7 +151,11 @@ where .unwrap(); assert_eq!( (recorded_fee, recorded_value, recorded_change), - (MARGINAL_FEE.into_u64() * 4, recorded_value, recorded_change) + ( + Option::unwrap(MARGINAL_FEE * 4_u64), + recorded_value, + recorded_change + ) ); let (recorded_fee, recorded_value) = with_assertions::assure_propose_shield_bump_sync( @@ -162,7 +167,10 @@ where .unwrap(); assert_eq!( (recorded_fee, recorded_value), - (MARGINAL_FEE.into_u64() * 3, 100_000 - recorded_fee) + ( + Option::unwrap(MARGINAL_FEE * 3_u64), + Option::unwrap(Zatoshis::from_u64(100_000).unwrap() - recorded_fee) + ) ); let (recorded_fee, recorded_value, recorded_change) = @@ -182,7 +190,11 @@ where .unwrap(); assert_eq!( (recorded_fee, recorded_value, recorded_change), - (MARGINAL_FEE.into_u64() * 2, 50_000, recorded_change) + ( + Option::unwrap(MARGINAL_FEE * 2_u64), + Zatoshis::from_u64(50_000).unwrap(), + recorded_change + ) ); } } @@ -226,7 +238,7 @@ where assert_eq!( (recorded_fee, recorded_value, recorded_change), ( - 11 * MARGINAL_FEE.into_u64(), + Option::unwrap(MARGINAL_FEE * 11_u64), recorded_value, recorded_change ) @@ -249,7 +261,11 @@ where .unwrap(); assert_eq!( (recorded_fee, recorded_value, recorded_change), - (4 * MARGINAL_FEE.into_u64(), 10_000, recorded_change) + ( + Option::unwrap(MARGINAL_FEE * 4_u64), + Zatoshis::from_u64(10_000).unwrap(), + recorded_change + ) ); } @@ -292,7 +308,7 @@ where assert_eq!( (recorded_fee, recorded_value, recorded_change), ( - expected_fee_for_transaction_1, + Zatoshis::from_u64(expected_fee_for_transaction_1).unwrap(), recorded_value, recorded_change ) @@ -346,9 +362,9 @@ where assert_eq!( (recorded_fee, recorded_value, recorded_change), ( - expected_fee_for_transaction_2, - expected_value_from_transaction_2, - 0 + Zatoshis::from_u64(expected_fee_for_transaction_2).unwrap(), + Zatoshis::from_u64(expected_value_from_transaction_2).unwrap(), + Zatoshis::from_u64(0).unwrap() ) ); @@ -512,6 +528,10 @@ pub async fn any_source_sends_to_any_receiver( .unwrap(); assert_eq!( (recorded_fee, recorded_value, recorded_change), - (expected_fee, receiver_value, change) + ( + Zatoshis::from_u64(expected_fee).unwrap(), + Zatoshis::from_u64(receiver_value).unwrap(), + Zatoshis::from_u64(change).unwrap() + ) ); } diff --git a/zingolib/src/testutils/chain_generics/libtonode.rs b/zingolib/src/testutils/chain_generics/libtonode.rs index 59dc3e5165..9f6fd7f4a1 100644 --- a/zingolib/src/testutils/chain_generics/libtonode.rs +++ b/zingolib/src/testutils/chain_generics/libtonode.rs @@ -33,13 +33,16 @@ impl ConductChain for LibtonodeEnvironment { } async fn create_faucet(&mut self) -> LightClient { - self.client_builder - .build_faucet(false, self.local_net.validator().activation_heights()) + self.client_builder.build_faucet( + false, + self.local_net.validator().activation_heights().into(), + ) } fn zingo_config(&mut self) -> crate::config::ZingoConfig { - self.client_builder - .make_unique_data_dir_and_load_config(self.local_net.validator().activation_heights()) + self.client_builder.make_unique_data_dir_and_load_config( + self.local_net.validator().activation_heights().into(), + ) } async fn bump_chain(&mut self) { diff --git a/zingolib/src/testutils/chain_generics/with_assertions.rs b/zingolib/src/testutils/chain_generics/with_assertions.rs index d92f718e84..26bebd1915 100644 --- a/zingolib/src/testutils/chain_generics/with_assertions.rs +++ b/zingolib/src/testutils/chain_generics/with_assertions.rs @@ -7,6 +7,7 @@ use zcash_primitives::consensus::BlockHeight; use zcash_primitives::transaction::TxId; use zcash_primitives::transaction::fees::zip317; use zcash_protocol::PoolType; +use zcash_protocol::value::Zatoshis; use crate::lightclient::LightClient; use crate::testutils::assertions::compare_fee; @@ -49,7 +50,7 @@ pub async fn propose_send_bump_sync_all_recipients( payments: Vec<(&str, u64, Option<&str>)>, recipients: Vec<&mut LightClient>, test_mempool: bool, -) -> Result<(u64, u64, u64), String> +) -> Result<(Zatoshis, Zatoshis, Zatoshis), String> where CC: ConductChain, { @@ -80,7 +81,7 @@ pub async fn assure_propose_shield_bump_sync( environment: &mut CC, client: &mut LightClient, test_mempool: bool, -) -> Result<(u64, u64), String> +) -> Result<(Zatoshis, Zatoshis), String> where CC: ConductChain, { @@ -105,7 +106,7 @@ pub async fn follow_proposal( proposal: &Proposal, txids: NonEmpty, test_mempool: bool, -) -> Result<(u64, u64, u64), String> +) -> Result<(Zatoshis, Zatoshis, Zatoshis), String> where CC: ConductChain, { @@ -120,20 +121,26 @@ where // check that each record has the expected fee and status, returning the fee let (sender_recorded_fees, (sender_recorded_outputs, sender_recorded_statuses)): ( - Vec, - (Vec, Vec), + Vec, + (Vec, Vec), ) = for_each_proposed_transaction(sender, proposal, &txids, |wallet, transaction, step| { ( compare_fee(wallet, transaction, step), - (transaction.total_value_received(), transaction.status()), + ( + Zatoshis::from_u64(transaction.total_value_received()), + transaction.status(), + ), ) }) .await .into_iter() .map(|stepwise_result| { - stepwise_result - .map(|(fee_comparison_result, others)| (fee_comparison_result.unwrap(), others)) - .unwrap() + let (fee_comparison_result, others) = stepwise_result.unwrap(); + let (balance, confirmation_status) = others; + ( + fee_comparison_result.unwrap(), + (balance.unwrap(), confirmation_status), + ) }) .unzip(); @@ -156,20 +163,26 @@ where // check that each record has the expected fee and status, returning the fee and outputs let (sender_mempool_fees, (sender_mempool_outputs, sender_mempool_statuses)): ( - Vec, - (Vec, Vec), + Vec, + (Vec, Vec), ) = for_each_proposed_transaction(sender, proposal, &txids, |wallet, transaction, step| { ( compare_fee(wallet, transaction, step), - (transaction.total_value_received(), transaction.status()), + ( + Zatoshis::from_u64(transaction.total_value_received()), + transaction.status(), + ), ) }) .await .into_iter() .map(|stepwise_result| { - stepwise_result - .map(|(fee_comparison_result, others)| (fee_comparison_result.unwrap(), others)) - .unwrap() + let (fee_comparison_result, others) = stepwise_result.unwrap(); + let (balance, confirmation_status) = others; + ( + fee_comparison_result.unwrap(), + (balance.unwrap(), confirmation_status), + ) }) .unzip(); @@ -182,20 +195,23 @@ where ); } - let mut recipients_mempool_outputs: Vec> = vec![]; + let mut recipients_mempool_outputs: Vec> = vec![]; for recipient in recipients.iter_mut() { recipient.sync_and_await().await.unwrap(); // check that each record has the status, returning the output value let (recipient_mempool_outputs, recipient_mempool_statuses): ( - Vec, + Vec, Vec, ) = for_each_proposed_transaction( recipient, proposal, &txids, |_wallet, transaction, _step| { - (transaction.total_value_received(), transaction.status()) + ( + Zatoshis::from_u64(transaction.total_value_received()).unwrap(), + transaction.status(), + ) }, ) .await @@ -225,20 +241,26 @@ where // check that each record has the expected fee and status, returning the fee and outputs let (sender_confirmed_fees, (sender_confirmed_outputs, sender_confirmed_statuses)): ( - Vec, - (Vec, Vec), + Vec, + (Vec, Vec), ) = for_each_proposed_transaction(sender, proposal, &txids, |wallet, transaction, step| { ( compare_fee(wallet, transaction, step), - (transaction.total_value_received(), transaction.status()), + ( + Zatoshis::from_u64(transaction.total_value_received()).unwrap(), + transaction.status(), + ), ) }) .await .into_iter() .map(|stepwise_result| { - stepwise_result - .map(|(fee_comparison_result, others)| (fee_comparison_result.unwrap(), others)) - .unwrap() + let (fee_comparison_result, others) = stepwise_result.unwrap(); + let (balance, confirmation_status) = others; + ( + fee_comparison_result.unwrap(), + (balance, confirmation_status), + ) }) .unzip(); @@ -257,7 +279,7 @@ where // check that each record has the status, returning the output value let (recipient_confirmed_outputs, recipient_confirmed_statuses): ( - Vec, + Vec, Vec, ) = for_each_proposed_transaction( recipient, @@ -270,6 +292,7 @@ where .await .into_iter() .map(|stepwise_result| stepwise_result.unwrap()) + .map(|(value, status)| (Zatoshis::from_u64(value).unwrap(), status)) .collect(); for status in recipient_confirmed_statuses { assert_eq!( @@ -285,9 +308,24 @@ where assert_eq!(recipients_confirmed_outputs, *recipient_mempool_outputs); }); - Ok(( - sender_confirmed_fees.iter().sum(), - recipients_confirmed_outputs.into_iter().flatten().sum(), - sender_confirmed_outputs.iter().sum(), // this construction will be problematic when 2-step transactions mean some value is received and respent. - )) + let total_fees = sender_confirmed_fees + .iter() + .copied() + .sum::>() + .ok_or_else(|| "overflow while summing fees".to_string())?; + + let total_received = recipients_confirmed_outputs + .iter() + .flatten() + .copied() + .sum::>() + .ok_or_else(|| "overflow while summing received".to_string())?; + + let total_change = sender_confirmed_outputs + .iter() + .copied() + .sum::>() + .ok_or_else(|| "overflow while summing change".to_string())?; + + Ok((total_fees, total_received, total_change)) } diff --git a/zingolib/src/testutils/scenarios.rs b/zingolib/src/testutils/scenarios.rs index 22441437fb..d760d8c730 100644 --- a/zingolib/src/testutils/scenarios.rs +++ b/zingolib/src/testutils/scenarios.rs @@ -27,7 +27,8 @@ use testvectors::{ }; use zingo_infra_services::LocalNet; use zingo_infra_services::indexer::{Lightwalletd, LightwalletdConfig}; -use zingo_infra_services::network::{ActivationHeights, localhost_uri}; +use zingo_infra_services::network::localhost_uri; +use zingo_infra_services::utils::ExecutableLocation; use zingo_infra_services::validator::{Validator, Zcashd, ZcashdConfig}; use pepper_sync::config::{PerformanceLevel, SyncConfig, TransparentAddressDiscovery}; @@ -38,10 +39,11 @@ use crate::lightclient::LightClient; use crate::testutils::increase_height_and_wait_for_client; use crate::wallet::WalletBase; use crate::wallet::keys::unified::ReceiverSelection; +use crate::wallet::network::ZingolibLocalNetwork; use crate::wallet::{LightWallet, WalletSettings}; /// Helper function to get the test binary path -fn get_test_binary_path(binary_name: &str) -> Option { +fn get_test_binary_path(binary_name: &str) -> ExecutableLocation { // Try CARGO_WORKSPACE_DIR first (available in newer cargo versions) // Otherwise fall back to CARGO_MANIFEST_DIR and go up one level let workspace_dir = std::env::var("CARGO_WORKSPACE_DIR") @@ -57,28 +59,31 @@ fn get_test_binary_path(binary_name: &str) -> Option { .join("bins") .join(binary_name); if path.exists() { - Some(path.canonicalize().unwrap()) + ExecutableLocation::Specific(path.canonicalize().unwrap()) } else { - None + ExecutableLocation::Global(binary_name.to_string()) } } /// Zcashd binary location. First checks test_binaries/bins, then $PATH if not found. -pub static ZCASHD_BIN: LazyLock> = LazyLock::new(|| get_test_binary_path("zcashd")); +pub static ZCASHD_BIN: LazyLock = + LazyLock::new(|| get_test_binary_path("zcashd")); /// Zcash CLI binary location. First checks test_binaries/bins, then $PATH if not found. -pub static ZCASH_CLI_BIN: LazyLock> = +pub static ZCASH_CLI_BIN: LazyLock = LazyLock::new(|| get_test_binary_path("zcash-cli")); /// Zebrad binary location. First checks test_binaries/bins, then $PATH if not found. -pub static ZEBRAD_BIN: LazyLock> = LazyLock::new(|| get_test_binary_path("zebrad")); +pub static ZEBRAD_BIN: LazyLock = + LazyLock::new(|| get_test_binary_path("zebrad")); /// Lightwalletd binary location. First checks test_binaries/bins, then $PATH if not found. -pub static LIGHTWALLETD_BIN: LazyLock> = +pub static LIGHTWALLETD_BIN: LazyLock = LazyLock::new(|| get_test_binary_path("lightwalletd")); /// Zainod binary location. First checks test_binaries/bins, then $PATH if not found. -pub static ZAINOD_BIN: LazyLock> = LazyLock::new(|| get_test_binary_path("zainod")); +pub static ZAINOD_BIN: LazyLock = + LazyLock::new(|| get_test_binary_path("zainod")); /// Struct for building lightclients for integration testing pub struct ClientBuilder { @@ -102,7 +107,7 @@ impl ClientBuilder { pub fn make_unique_data_dir_and_load_config( &mut self, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, ) -> ZingoConfig { //! Each client requires a unique data_dir, we use the //! client_number counter for this. @@ -119,7 +124,7 @@ impl ClientBuilder { pub fn create_clientconfig( &self, conf_path: PathBuf, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, ) -> ZingoConfig { std::fs::create_dir(&conf_path).unwrap(); load_clientconfig( @@ -142,7 +147,7 @@ impl ClientBuilder { pub fn build_faucet( &mut self, overwrite: bool, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, ) -> LightClient { //! A "faucet" is a lightclient that receives mining rewards self.build_client( @@ -159,7 +164,7 @@ impl ClientBuilder { mnemonic_phrase: String, birthday: u64, overwrite: bool, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, ) -> LightClient { let config = self.make_unique_data_dir_and_load_config(activation_heights); let mut wallet = LightWallet::new( @@ -182,7 +187,7 @@ impl ClientBuilder { /// TODO: Add Doc Comment Here! pub async fn unfunded_client( - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, chain_cache: Option, ) -> (LocalNet, LightClient) { let (local_net, mut client_builder) = @@ -201,7 +206,7 @@ pub async fn unfunded_client( /// TODO: Add Doc Comment Here! pub async fn unfunded_client_default() -> (LocalNet, LightClient) { - unfunded_client(ActivationHeights::default(), None).await + unfunded_client(ZingolibLocalNetwork::default(), None).await } /// Many scenarios need to start with spendable funds. This setup provides @@ -216,7 +221,7 @@ pub async fn unfunded_client_default() -> (LocalNet, Light /// become interesting (e.g. without experimental features, or txindices) we'll create more setups. pub async fn faucet( mine_to_pool: PoolType, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, chain_cache: Option, ) -> (LocalNet, LightClient) { let (local_net, mut client_builder) = @@ -230,13 +235,13 @@ pub async fn faucet( /// TODO: Add Doc Comment Here! pub async fn faucet_default() -> (LocalNet, LightClient) { - faucet(PoolType::ORCHARD, ActivationHeights::default(), None).await + faucet(PoolType::ORCHARD, ZingolibLocalNetwork::default(), None).await } /// TODO: Add Doc Comment Here! pub async fn faucet_recipient( mine_to_pool: PoolType, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, chain_cache: Option, ) -> (LocalNet, LightClient, LightClient) { let (local_net, mut client_builder) = @@ -258,7 +263,7 @@ pub async fn faucet_recipient( /// TODO: Add Doc Comment Here! pub async fn faucet_recipient_default() -> (LocalNet, LightClient, LightClient) { - faucet_recipient(PoolType::ORCHARD, ActivationHeights::default(), None).await + faucet_recipient(PoolType::ORCHARD, ZingolibLocalNetwork::default(), None).await } /// TODO: Add Doc Comment Here! @@ -267,7 +272,7 @@ pub async fn faucet_funded_recipient( sapling_funds: Option, transparent_funds: Option, mine_to_pool: PoolType, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, chain_cache: Option, ) -> ( LocalNet, @@ -359,7 +364,7 @@ pub async fn faucet_funded_recipient_default( None, None, PoolType::ORCHARD, - ActivationHeights::default(), + ZingolibLocalNetwork::default(), None, ) .await; @@ -370,7 +375,7 @@ pub async fn faucet_funded_recipient_default( /// TODO: Add Doc Comment Here! pub async fn custom_clients( mine_to_pool: PoolType, - activation_heights: ActivationHeights, + activation_heights: ZingolibLocalNetwork, chain_cache: Option, ) -> (LocalNet, ClientBuilder) { let miner_address = match mine_to_pool { @@ -389,7 +394,7 @@ pub async fn custom_clients( zcashd_bin: ZCASHD_BIN.clone(), zcash_cli_bin: ZCASH_CLI_BIN.clone(), rpc_listen_port: None, - activation_heights, + activation_heights: activation_heights.into(), miner_address: Some(miner_address), chain_cache, }, @@ -408,14 +413,14 @@ pub async fn custom_clients( /// TODO: Add Doc Comment Here! pub async fn custom_clients_default() -> (LocalNet, ClientBuilder) { let (local_net, client_builder) = - custom_clients(PoolType::ORCHARD, ActivationHeights::default(), None).await; + custom_clients(PoolType::ORCHARD, ZingolibLocalNetwork::default(), None).await; (local_net, client_builder) } /// TODO: Add Doc Comment Here! pub async fn unfunded_mobileclient() -> LocalNet { - let activation_heights = ActivationHeights::default(); + let activation_heights = ZingolibLocalNetwork::default(); LocalNet::::launch( LightwalletdConfig { lightwalletd_bin: LIGHTWALLETD_BIN.clone(), @@ -427,7 +432,7 @@ pub async fn unfunded_mobileclient() -> LocalNet { zcashd_bin: ZCASHD_BIN.clone(), zcash_cli_bin: ZCASH_CLI_BIN.clone(), rpc_listen_port: None, - activation_heights, + activation_heights: activation_heights.into(), miner_address: Some(REG_Z_ADDR_FROM_ABANDONART), chain_cache: None, }, @@ -442,12 +447,13 @@ pub async fn funded_orchard_mobileclient(value: u64) -> LocalNet LocalNet LocalNet { let lightwalletd_uri = localhost_uri(0); + crate::config::load_clientconfig( lightwalletd_uri, None, - crate::config::ChainType::Regtest(ActivationHeights::default()), + crate::config::ChainType::Regtest(ZingolibLocalNetwork::default()), WalletSettings { sync_config: SyncConfig { transparent_address_discovery: TransparentAddressDiscovery::minimal(), diff --git a/zingolib/src/wallet/network.rs b/zingolib/src/wallet/network.rs new file mode 100644 index 0000000000..b53f4fb326 --- /dev/null +++ b/zingolib/src/wallet/network.rs @@ -0,0 +1,106 @@ +use zcash_protocol::consensus::{BlockHeight, Parameters}; +use zingo_infra_services::network::ActivationHeights; + +/// A struct representing a Local Network. +/// Used as a hack for compatiblility with `ActivationHeights` from `infra`. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct ZingolibLocalNetwork { + inner: zcash_protocol::local_consensus::LocalNetwork, +} + +impl Parameters for ZingolibLocalNetwork { + fn network_type(&self) -> zcash_protocol::consensus::NetworkType { + self.inner.network_type() + } + + fn activation_height( + &self, + nu: zcash_protocol::consensus::NetworkUpgrade, + ) -> Option { + self.inner.activation_height(nu) + } +} + +impl Default for ZingolibLocalNetwork { + fn default() -> Self { + ZingolibLocalNetwork { + inner: zcash_protocol::local_consensus::LocalNetwork { + overwinter: Some(BlockHeight::from_u32(1)), + sapling: Some(BlockHeight::from_u32(1)), + blossom: Some(BlockHeight::from_u32(1)), + heartwood: Some(BlockHeight::from_u32(1)), + canopy: Some(BlockHeight::from_u32(1)), + nu5: Some(BlockHeight::from_u32(1)), + nu6: Some(BlockHeight::from_u32(1)), + nu6_1: Some(BlockHeight::from_u32(1)), + }, + } + } +} + +impl From for ZingolibLocalNetwork { + fn from(activation_heights: ActivationHeights) -> Self { + ZingolibLocalNetwork { + inner: zcash_protocol::local_consensus::LocalNetwork { + overwinter: Some( + BlockHeight::from( + activation_heights + .activation_height( + zcash_protocol::consensus::NetworkUpgrade::Overwinter, + ) + .unwrap_or(1.into()), + ) + .into(), + ), + sapling: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Sapling) + .unwrap_or(1.into()), + ) + .into(), + blossom: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Blossom) + .unwrap_or(1.into()), + ) + .into(), + heartwood: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Heartwood) + .unwrap_or(1.into()), + ) + .into(), + canopy: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Canopy) + .unwrap_or(1.into()), + ) + .into(), + nu5: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Nu5) + .unwrap_or(1.into()), + ) + .into(), + nu6: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Nu6) + .unwrap_or(1.into()), + ) + .into(), + nu6_1: BlockHeight::from( + activation_heights + .activation_height(zcash_protocol::consensus::NetworkUpgrade::Nu6_1) + .unwrap_or(1.into()), + ) + .into(), + }, + } + } +} + +impl From for ActivationHeights { + fn from(zingolib_local_network: ZingolibLocalNetwork) -> Self { + ActivationHeights::new(zingolib_local_network.inner) + } +} diff --git a/zingolib/src/wallet/propose.rs b/zingolib/src/wallet/propose.rs index 23778b905b..b3f45be4fb 100644 --- a/zingolib/src/wallet/propose.rs +++ b/zingolib/src/wallet/propose.rs @@ -1,7 +1,9 @@ //! creating proposals from wallet data +use std::num::NonZeroU32; + use zcash_client_backend::{ - data_api::wallet::input_selection::GreedyInputSelector, + data_api::wallet::{ConfirmationsPolicy, input_selection::GreedyInputSelector}, fees::{DustAction, DustOutputPolicy}, zip321::TransactionRequest, }; @@ -57,7 +59,9 @@ impl LightWallet { &input_selector, &change_strategy, request, - self.wallet_settings.min_confirmations, + // TODO: Is this the right configuration? + // self.wallet_settings.min_confirmations, + ConfirmationsPolicy::new_symmetrical(self.wallet_settings.min_confirmations, false), ) .map_err(ProposeSendError::Proposal) } @@ -113,7 +117,8 @@ impl LightWallet { Zatoshis::const_from_u64(10_000), &transparent_addresses, account_id, - 1, + // TODO: Should `allow_zero_conf_shielding` be true? + ConfirmationsPolicy::new_symmetrical(NonZeroU32::new(1).unwrap(), true), ) .map_err(ProposeShieldError::Component)?; diff --git a/zingolib/src/wallet/summary.rs b/zingolib/src/wallet/summary.rs index 88a10c19a0..265bf4ffb0 100644 --- a/zingolib/src/wallet/summary.rs +++ b/zingolib/src/wallet/summary.rs @@ -47,7 +47,16 @@ impl LightWallet { TransactionKind::Sent(SendType::Send) | TransactionKind::Sent(SendType::SendToSelf) => transaction.total_value_sent(), }; - let fee = self.calculate_transaction_fee(transaction).ok(); + // TODO: Is this ok? + // let fee: Option = Some( + // self.calculate_transaction_fee(transaction) + // .unwrap() + // .into_u64(), + // ); + let fee: Option = self + .calculate_transaction_fee(transaction) + .ok() + .map(|z| z.into_u64()); let orchard_notes = transaction .orchard_notes() .iter() diff --git a/zingolib/src/wallet/transaction.rs b/zingolib/src/wallet/transaction.rs index a76ece97ed..1afacfc4b9 100644 --- a/zingolib/src/wallet/transaction.rs +++ b/zingolib/src/wallet/transaction.rs @@ -1,6 +1,6 @@ use zcash_primitives::transaction::TxId; use zcash_protocol::consensus::BlockHeight; -use zcash_protocol::value::ZatBalance; +use zcash_protocol::value::Zatoshis; use pepper_sync::wallet::{ KeyIdInterface, NoteInterface, OrchardNote, OutgoingNoteInterface, OutputId, OutputInterface, @@ -74,10 +74,10 @@ impl LightWallet { pub fn calculate_transaction_fee( &self, transaction: &WalletTransaction, - ) -> Result { + ) -> Result { Ok(transaction .transaction() - .fee_paid(|outpoint| -> Result { + .fee_paid(|outpoint| -> Result, FeeError> { let outpoint = OutputId::from(outpoint); let prevout = self .wallet_outputs::() @@ -88,10 +88,10 @@ impl LightWallet { spend: format!("{:?}", outpoint), })?; - Ok(ZatBalance::from_u64(prevout.value()) - .expect("value converted from checked type")) + Ok(Some( + Zatoshis::from_u64(prevout.value()).expect("value converted from checked type"), + )) })? - .try_into() .expect("fee should not be negative")) } diff --git a/zingolib/src/wallet/zcb_traits.rs b/zingolib/src/wallet/zcb_traits.rs index 63d6e29a83..f00b680cd6 100644 --- a/zingolib/src/wallet/zcb_traits.rs +++ b/zingolib/src/wallet/zcb_traits.rs @@ -5,9 +5,12 @@ use shardtree::{ShardTree, error::ShardTreeError, store::ShardStore}; use zcash_address::ZcashAddress; use zcash_client_backend::{ data_api::{ - Account, AccountBirthday, AccountPurpose, BlockMetadata, InputSource, NullifierQuery, - ORCHARD_SHARD_HEIGHT, SAPLING_SHARD_HEIGHT, SpendableNotes, TransactionDataRequest, - WalletCommitmentTrees, WalletRead, WalletSummary, WalletWrite, chain::CommitmentTreeRoot, + Account, AccountBirthday, AccountPurpose, Balance, BlockMetadata, InputSource, + NullifierQuery, ORCHARD_SHARD_HEIGHT, SAPLING_SHARD_HEIGHT, SpendableNotes, TargetValue, + TransactionDataRequest, WalletCommitmentTrees, WalletRead, WalletSummary, WalletWrite, + Zip32Derivation, + chain::CommitmentTreeRoot, + wallet::{ConfirmationsPolicy, TargetHeight}, }, wallet::{NoteId, ReceivedNote, TransparentAddressMetadata, WalletTransparentOutput}, }; @@ -24,7 +27,6 @@ use zcash_primitives::{ use zcash_protocol::{ PoolType, ShieldedProtocol, consensus::{self, BlockHeight, Parameters}, - value::Zatoshis, }; use zcash_transparent::bundle::{OutPoint, TxOut}; @@ -34,8 +36,8 @@ use pepper_sync::{ error::SyncError, keys::transparent::{self, TransparentScope}, wallet::{ - KeyIdInterface, NoteInterface as _, OrchardNote, OrchardShardStore, OutputId, - OutputInterface, SaplingNote, SaplingShardStore, traits::SyncWallet, + KeyIdInterface, NoteInterface, OrchardNote, OrchardShardStore, OutputId, OutputInterface, + SaplingNote, SaplingShardStore, traits::SyncWallet, }, }; use zingo_status::confirmation_status::ConfirmationStatus; @@ -84,8 +86,7 @@ impl WalletRead for LightWallet { fn get_derived_account( &self, - _seed: &zip32::fingerprint::SeedFingerprint, - _account_id: zip32::AccountId, + _account_id: &Zip32Derivation, ) -> Result, Self::Error> { unimplemented!() } @@ -147,7 +148,7 @@ impl WalletRead for LightWallet { fn get_wallet_summary( &self, - _min_confirmations: u32, + _min_confirmations: ConfirmationsPolicy, ) -> Result>, Self::Error> { unimplemented!() } @@ -185,7 +186,7 @@ impl WalletRead for LightWallet { fn get_target_and_anchor_heights( &self, min_confirmations: NonZeroU32, - ) -> Result, Self::Error> { + ) -> Result, Self::Error> { let target_height = if let Some(height) = self.sync_state.wallet_height() { height + 1 } else { @@ -206,7 +207,7 @@ impl WalletRead for LightWallet { ); Ok(Some(( - target_height, + target_height.into(), std::cmp::max(1.into(), anchor_height), ))) } @@ -274,8 +275,9 @@ impl WalletRead for LightWallet { fn get_transparent_balances( &self, _account: Self::AccountId, - _max_height: BlockHeight, - ) -> Result, Self::Error> { + _max_height: TargetHeight, + _confirmations_policy: ConfirmationsPolicy, + ) -> Result, Self::Error> { unimplemented!() } @@ -409,7 +411,10 @@ impl WalletWrite for LightWallet { sent_transaction.tx().write(&mut transaction_bytes)?; let transaction = Transaction::read( transaction_bytes.as_slice(), - consensus::BranchId::for_height(&self.network, sent_transaction.target_height()), + consensus::BranchId::for_height( + &self.network, + sent_transaction.target_height().into(), + ), )?; match pepper_sync::scan_pending_transaction( @@ -417,7 +422,7 @@ impl WalletWrite for LightWallet { &SyncWallet::get_unified_full_viewing_keys(self)?, self, transaction, - ConfirmationStatus::Calculated(sent_transaction.target_height()), + ConfirmationStatus::Calculated(sent_transaction.target_height().into()), sent_transaction.created().unix_timestamp() as u32, ) { Ok(_) => (), @@ -456,6 +461,7 @@ impl WalletWrite for LightWallet { .collect()) } + // TODO: implement fn set_transaction_status( &mut self, _txid: TxId, @@ -463,6 +469,15 @@ impl WalletWrite for LightWallet { ) -> Result<(), Self::Error> { unimplemented!() } + + // TODO: implement + fn notify_address_checked( + &mut self, + _request: zcash_client_backend::data_api::TransactionsInvolvingAddress, + _as_of_height: BlockHeight, + ) -> Result<(), Self::Error> { + todo!() + } } impl WalletCommitmentTrees for LightWallet { @@ -562,11 +577,17 @@ impl InputSource for LightWallet { fn select_spendable_notes( &self, account: Self::AccountId, - target_value: Zatoshis, + target_value: TargetValue, sources: &[ShieldedProtocol], - anchor_height: BlockHeight, + _target_height: TargetHeight, + confirmations_policy: ConfirmationsPolicy, exclude: &[Self::NoteRef], ) -> Result, Self::Error> { + let (_, anchor_height) = self + .get_target_and_anchor_heights(confirmations_policy.trusted()) + .unwrap() + .unwrap(); // TODO: remove unwraps + let mut exclude_sapling = exclude .iter() .filter(|¬e_id| note_id.pool_type() == PoolType::SAPLING) @@ -577,7 +598,9 @@ impl InputSource for LightWallet { .filter(|¬e_id| note_id.pool_type() == PoolType::ORCHARD) .map(|note_id| OutputId::new(note_id.txid(), note_id.output_index())) .collect::>(); - let mut remaining_value_needed = RemainingNeeded::Positive(target_value); + + let TargetValue::AtLeast(at_least_value) = target_value; + let mut remaining_value_needed = RemainingNeeded::Positive(at_least_value); // prioritises selecting spendable notes that are guaranteed to be unspent first let mut selected_sapling_notes = Vec::new(); @@ -690,6 +713,8 @@ impl InputSource for LightWallet { note.key_id().scope, note.position() .expect("note selection should filter on notes with positions"), + None, // mined_height. TODO: How should we use this here? + None, // max_shielding_input_height. TODO: How should we use this here? ) }) .collect::>(); @@ -707,6 +732,8 @@ impl InputSource for LightWallet { note.key_id().scope, note.position() .expect("note selection should filter on notes with positions"), + None, // mined_height. TODO: How should we use this here? + None, // max_shielding_input_height. TODO: How should we use this here? ) }) .collect::>(); @@ -736,15 +763,17 @@ impl InputSource for LightWallet { fn get_spendable_transparent_outputs( &self, address: &TransparentAddress, - target_height: BlockHeight, - min_confirmations: u32, + target_height: TargetHeight, + min_confirmations: ConfirmationsPolicy, ) -> Result, Self::Error> { let address = transparent::encode_address(&self.network, *address); Ok(self .spendable_transparent_coins( - target_height, - NonZeroU32::new(min_confirmations).ok_or(WalletError::MinimumConfirmationError)?, + target_height.into(), + // TODO: Should we use the `trusted` or `untrusted` confirmations? + NonZeroU32::new(min_confirmations.trusted().into()) + .ok_or(WalletError::MinimumConfirmationError)?, ) .into_iter() .filter(|&output| output.address() == address)