diff --git a/Cargo.lock b/Cargo.lock index 78e5954..3907db5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,7 +35,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "generic-array", ] @@ -50,18 +50,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - [[package]] name = "aho-corasick" version = "1.1.3" @@ -153,7 +141,7 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix", + "rustix 0.38.43", "slab", "tracing", "windows-sys 0.59.0", @@ -249,12 +237,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - [[package]] name = "base64" version = "0.22.1" @@ -300,38 +282,35 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "568b6890865156d9043af490d4c4081c385dd68ea10acd6ca15733d511e6b51c" dependencies = [ - "hmac", + "hmac 0.12.1", "pbkdf2", "rand", - "sha2", + "sha2 0.10.8", "unicode-normalization", "zeroize", ] [[package]] name = "bip32" -version = "0.5.2" +version = "0.6.0-pre.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" +checksum = "143f5327f23168716be068f8e1014ba2ea16a6c91e8777bc8927da7b51e1df1f" dependencies = [ "bs58", - "hmac", - "k256", - "once_cell", - "pbkdf2", + "hmac 0.13.0-pre.4", "rand_core", - "ripemd", + "ripemd 0.2.0-pre.4", "secp256k1", - "sha2", + "sha2 0.11.0-pre.4", "subtle", "zeroize", ] [[package]] name = "bitflags" -version = "2.7.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -376,6 +355,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-buffer" +version = "0.11.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd016a0ddc7cb13661bf5576073ce07330a693f8608a1320b4e20561cc12cdc" +dependencies = [ + "hybrid-array", +] + [[package]] name = "blocking" version = "1.6.1" @@ -402,13 +390,22 @@ dependencies = [ "subtle", ] +[[package]] +name = "bounded-vec" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09dc0086e469182132244e9b8d313a0742e1132da43a08c24b9dd3c18e0faf3a" +dependencies = [ + "thiserror 2.0.17", +] + [[package]] name = "bs58" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2", + "sha2 0.10.8", "tinyvec", ] @@ -494,7 +491,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "inout", "zeroize", ] @@ -524,12 +521,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - [[package]] name = "constant_time_eq" version = "0.3.1" @@ -610,25 +601,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] -name = "crypto-bigint" -version = "0.5.5" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", - "rand_core", - "subtle", - "zeroize", + "typenum", ] [[package]] name = "crypto-common" -version = "0.1.6" +version = "0.2.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "b0b8ce8218c97789f16356e7896b3714f26c2ee1079b79c0b7ae7064bb9089fa" dependencies = [ - "generic-array", - "typenum", + "hybrid-array", ] [[package]] @@ -687,16 +675,6 @@ dependencies = [ "syn", ] -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - [[package]] name = "deranged" version = "0.3.11" @@ -712,32 +690,29 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", + "block-buffer 0.10.4", + "crypto-common 0.1.6", "subtle", ] [[package]] -name = "document-features" -version = "0.2.10" +name = "digest" +version = "0.11.0-pre.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +checksum = "cf2e3d6615d99707295a9673e889bf363a04b2a466bd320c65a72536f7577379" dependencies = [ - "litrs", + "block-buffer 0.11.0-rc.3", + "crypto-common 0.2.0-rc.1", + "subtle", ] [[package]] -name = "ecdsa" -version = "0.16.9" +name = "document-features" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" dependencies = [ - "der", - "digest", - "elliptic-curve", - "rfc6979", - "signature", + "litrs", ] [[package]] @@ -746,24 +721,6 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest", - "ff", - "generic-array", - "group", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - [[package]] name = "embedded-io" version = "0.4.0" @@ -776,13 +733,19 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" +[[package]] +name = "env_home" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" + [[package]] name = "equihash" -version = "0.2.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.2.2" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "blake2b_simd", - "byteorder", + "core2", ] [[package]] @@ -831,7 +794,7 @@ dependencies = [ [[package]] name = "f4jumble" version = "0.1.1" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "blake2b_simd", ] @@ -899,6 +862,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 = "fpe" version = "0.6.1" @@ -1029,7 +998,6 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", - "zeroize", ] [[package]] @@ -1175,28 +1143,22 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] [[package]] name = "hashlink" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -1243,16 +1205,16 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest", + "digest 0.10.7", ] [[package]] -name = "home" -version = "0.5.11" +name = "hmac" +version = "0.13.0-pre.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "e4b1fb14e4df79f9406b434b60acef9f45c26c50062cccf1346c6103b8c47d58" dependencies = [ - "windows-sys 0.59.0", + "digest 0.11.0-pre.9", ] [[package]] @@ -1295,6 +1257,15 @@ version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +[[package]] +name = "hybrid-array" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2d35805454dc9f8662a98d6d61886ffe26bd465f5960e0e55345c70d5c0d2a9" +dependencies = [ + "typenum", +] + [[package]] name = "hyper" version = "1.5.2" @@ -1355,9 +1326,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "incrementalmerkletree" -version = "0.7.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216c71634ac6f6ed13c2102d64354c0a04dcbdc30e31692c5972d3974d8b6d97" +checksum = "30821f91f0fa8660edca547918dc59812893b497d07c1144f326f07fdd94aba9" dependencies = [ "either", ] @@ -1447,18 +1418,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "sha2", -] - [[package]] name = "kv-log-macro" version = "1.0.7" @@ -1479,9 +1438,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libm" @@ -1491,9 +1450,9 @@ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libsqlite3-sys" -version = "0.30.1" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" +checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f" dependencies = [ "cc", "pkg-config", @@ -1506,6 +1465,12 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "linux-raw-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" + [[package]] name = "litrs" version = "0.4.1" @@ -1699,6 +1664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -1734,8 +1700,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "orchard" -version = "0.10.1" -source = "git+https://github.com/zcash/orchard.git?rev=4fa6d3b549f8803016a309281404eab095d04de8#4fa6d3b549f8803016a309281404eab095d04de8" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ef66fcf99348242a20d582d7434da381a867df8dc155b3a980eca767c56137" dependencies = [ "aes", "bitvec", @@ -1819,18 +1786,18 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest", - "hmac", + "digest 0.10.7", "password-hash", ] [[package]] name = "pczt" -version = "0.1.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.5.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "blake2b_simd", "bls12_381", + "document-features", "ff", "getset", "jubjub", @@ -1847,6 +1814,7 @@ dependencies = [ "zcash_note_encryption", "zcash_primitives", "zcash_protocol", + "zcash_script", "zcash_transparent", ] @@ -1925,7 +1893,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix", + "rustix 0.38.43", "tracing", "windows-sys 0.59.0", ] @@ -2012,9 +1980,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.4" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ "bytes", "prost-derive", @@ -2022,9 +1990,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.4" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck", "itertools", @@ -2042,9 +2010,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.4" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" dependencies = [ "anyhow", "itertools", @@ -2055,9 +2023,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.4" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ "prost", ] @@ -2107,6 +2075,16 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "rayon" version = "1.10.0" @@ -2143,20 +2121,19 @@ dependencies = [ "pasta_curves", "rand_core", "serde", - "thiserror", + "thiserror 1.0.69", "zeroize", ] [[package]] name = "redjubjub" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a60db2c3bc9c6fd1e8631fee75abc008841d27144be744951d6b9b75f9b569c" +checksum = "89b0ac1bc6bb3696d2c6f52cff8fba57238b81da8c0214ee6cd146eb8fde364e" dependencies = [ "rand_core", "reddsa", - "serde", - "thiserror", + "thiserror 1.0.69", "zeroize", ] @@ -2204,16 +2181,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - [[package]] name = "ring" version = "0.17.8" @@ -2235,14 +2202,23 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest", + "digest 0.10.7", +] + +[[package]] +name = "ripemd" +version = "0.2.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48cf93482ea998ad1302c42739bc73ab3adc574890c373ec89710e219357579" +dependencies = [ + "digest 0.11.0-pre.9", ] [[package]] name = "rusqlite" -version = "0.32.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e" +checksum = "165ca6e57b20e1351573e3729b958bc62f0e48025386970b6e4d29e7a7e71f3f" dependencies = [ "bitflags", "fallible-iterator", @@ -2278,7 +2254,20 @@ dependencies = [ "bitflags", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys 0.11.0", "windows-sys 0.59.0", ] @@ -2290,22 +2279,12 @@ checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" dependencies = [ "log", "once_cell", - "ring", "rustls-pki-types", "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" version = "1.10.1" @@ -2337,8 +2316,9 @@ checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "sapling-crypto" -version = "0.4.0" -source = "git+https://github.com/zcash/sapling-crypto.git?rev=3c2235747553da642fb142d1eeb9b1afa8391987#3c2235747553da642fb142d1eeb9b1afa8391987" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d3c081c83f1dc87403d9d71a06f52301c0aa9ea4c17da2a3435bbf493ffba4" dependencies = [ "aes", "bellman", @@ -2346,7 +2326,7 @@ dependencies = [ "blake2b_simd", "blake2s_simd", "bls12_381", - "byteorder", + "core2", "document-features", "ff", "fpe", @@ -2376,15 +2356,15 @@ dependencies = [ "daggy", "indexmap 1.9.3", "log", - "thiserror", + "thiserror 1.0.69", "uuid", ] [[package]] name = "schemerz-rusqlite" -version = "0.320.0" +version = "0.370.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ff99b7d9e8790fb20a7e52a482f66fddb3c28c3ce700c6c2665cacbf1b5529" +checksum = "ca6df8a13fb3b7914f94ac6579bd5e76b9292f135886e6becc3525f9e5116827" dependencies = [ "rusqlite", "schemerz", @@ -2397,33 +2377,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "subtle", - "zeroize", -] - [[package]] name = "secp256k1" -version = "0.27.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.8.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] @@ -2514,6 +2481,17 @@ dependencies = [ "syn", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.10.8" @@ -2522,7 +2500,18 @@ checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.11.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "540c0893cce56cdbcfebcec191ec8e0f470dd1889b6e7a0b503e310a94a168f5" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.11.0-pre.9", ] [[package]] @@ -2536,9 +2525,9 @@ dependencies = [ [[package]] name = "shardtree" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5f2390975ebfe8838f9e861f7a588123d49a7a7a0a08568ea831d8ad53fc9b4" +checksum = "637e95dcd06bc1bb3f86ed9db1e1832a70125f32daae071ef37dcb7701b7d4fe" dependencies = [ "bitflags", "either", @@ -2552,16 +2541,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core", -] - [[package]] name = "sinsemilla" version = "0.1.0" @@ -2642,6 +2621,12 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + [[package]] name = "tap" version = "1.0.1" @@ -2658,7 +2643,7 @@ dependencies = [ "fastrand", "getrandom", "once_cell", - "rustix", + "rustix 0.38.43", "windows-sys 0.59.0", ] @@ -2668,7 +2653,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl 2.0.17", ] [[package]] @@ -2682,6 +2676,17 @@ dependencies = [ "syn", ] +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -2700,7 +2705,6 @@ checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", - "js-sys", "num-conv", "powerfmt", "serde", @@ -2826,9 +2830,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.12.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" dependencies = [ "async-trait", "base64", @@ -2842,8 +2846,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost", - "rustls-pemfile", + "sync_wrapper", "tokio", "tokio-rustls", "tokio-stream", @@ -2856,9 +2859,32 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.12.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" +checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tonic-prost" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" dependencies = [ "prettyplease", "proc-macro2", @@ -2866,13 +2892,15 @@ dependencies = [ "prost-types", "quote", "syn", + "tempfile", + "tonic-build", ] [[package]] name = "tonic-web-wasm-client" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5ca6e7bdd0042c440d36b6df97c1436f1d45871ce18298091f114004b1beb4" +checksum = "898cd44be5e23e59d2956056538f1d6b3c5336629d384ffd2d92e76f87fb98ff" dependencies = [ "base64", "byteorder", @@ -2884,7 +2912,7 @@ dependencies = [ "httparse", "js-sys", "pin-project", - "thiserror", + "thiserror 2.0.17", "tonic", "tower-service", "wasm-bindgen", @@ -2895,17 +2923,16 @@ dependencies = [ [[package]] name = "tower" -version = "0.4.13" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 1.9.3", - "pin-project", + "indexmap 2.7.0", "pin-project-lite", - "rand", "slab", + "sync_wrapper", "tokio", "tokio-util", "tower-layer", @@ -3044,7 +3071,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ - "crypto-common", + "crypto-common 0.1.6", "subtle", ] @@ -3297,9 +3324,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.7" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" dependencies = [ "rustls-pki-types", ] @@ -3312,7 +3339,7 @@ dependencies = [ "pczt", "serde", "serde-wasm-bindgen", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "zcash_address", "zcash_primitives", @@ -3330,12 +3357,14 @@ dependencies = [ "orchard", "pczt", "sapling-crypto", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "webzjs-common", "zcash_keys", "zcash_primitives", + "zcash_protocol", + "zcash_transparent", "zip32", ] @@ -3346,7 +3375,7 @@ dependencies = [ "getrandom", "js-sys", "serde-wasm-bindgen", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "zcash_address", "zcash_primitives", @@ -3373,14 +3402,14 @@ dependencies = [ "postcard", "prost", "rayon", - "ripemd", + "ripemd 0.1.3", "sapling-crypto", "secrecy", "serde", "serde-wasm-bindgen", - "sha2", + "sha2 0.10.8", "subtle", - "thiserror", + "thiserror 1.0.69", "tokio", "tokio_with_wasm", "tonic", @@ -3410,13 +3439,12 @@ dependencies = [ [[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", + "env_home", + "rustix 1.1.2", "winsafe", ] @@ -3541,8 +3569,8 @@ dependencies = [ [[package]] name = "zcash_address" -version = "0.6.2" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.10.1" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "bech32", "bs58", @@ -3554,8 +3582,8 @@ dependencies = [ [[package]] name = "zcash_client_backend" -version = "0.16.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.21.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "async-trait", "base64", @@ -3567,12 +3595,12 @@ dependencies = [ "crossbeam-channel", "document-features", "futures-util", + "getset", "group", "hex", "hyper-util", "incrementalmerkletree", "memuse", - "nom", "nonempty", "orchard", "pasta_curves", @@ -3583,13 +3611,16 @@ dependencies = [ "rand_core", "rayon", "sapling-crypto", + "secp256k1", "secrecy", "serde", "shardtree", "subtle", "time", + "time-core", "tonic", - "tonic-build", + "tonic-prost", + "tonic-prost-build", "tracing", "which", "zcash_address", @@ -3598,6 +3629,7 @@ dependencies = [ "zcash_note_encryption", "zcash_primitives", "zcash_protocol", + "zcash_script", "zcash_transparent", "zip32", "zip321", @@ -3605,8 +3637,8 @@ dependencies = [ [[package]] name = "zcash_client_memory" -version = "0.1.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.0.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "async-trait", "bip32", @@ -3622,12 +3654,13 @@ dependencies = [ "prost-build", "rayon", "sapling-crypto", + "secp256k1", "secrecy", "serde", "shardtree", "static_assertions", "subtle", - "thiserror", + "thiserror 1.0.69", "time", "tokio", "tracing", @@ -3639,24 +3672,31 @@ dependencies = [ "zcash_keys", "zcash_primitives", "zcash_protocol", + "zcash_script", + "zcash_transparent", "zip32", ] [[package]] name = "zcash_client_sqlite" -version = "0.14.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.19.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ + "bitflags", "bs58", "byteorder", "document-features", "group", + "hex", "incrementalmerkletree", "jubjub", "maybe-rayon", "nonempty", "orchard", "prost", + "rand", + "rand_core", + "rand_distr", "regex", "rusqlite", "sapling-crypto", @@ -3675,23 +3715,25 @@ dependencies = [ "zcash_keys", "zcash_primitives", "zcash_protocol", + "zcash_script", "zcash_transparent", "zip32", ] [[package]] name = "zcash_encoding" -version = "0.2.2" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.3.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "core2", + "hex", "nonempty", ] [[package]] name = "zcash_keys" -version = "0.6.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.12.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "bech32", "bip32", @@ -3732,14 +3774,15 @@ dependencies = [ [[package]] name = "zcash_primitives" -version = "0.21.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.26.1" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ - "aes", "bip32", "blake2b_simd", + "block-buffer 0.11.0-rc.3", "bs58", - "byteorder", + "core2", + "crypto-common 0.2.0-rc.1", "document-features", "equihash", "ff", @@ -3755,16 +3798,17 @@ dependencies = [ "rand", "rand_core", "redjubjub", - "ripemd", + "ripemd 0.1.3", "sapling-crypto", "secp256k1", - "sha2", + "sha2 0.10.8", "subtle", "tracing", "zcash_address", "zcash_encoding", "zcash_note_encryption", "zcash_protocol", + "zcash_script", "zcash_spec", "zcash_transparent", "zip32", @@ -3772,8 +3816,8 @@ dependencies = [ [[package]] name = "zcash_proofs" -version = "0.21.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.26.1" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "bellman", "blake2b_simd", @@ -3781,7 +3825,6 @@ dependencies = [ "document-features", "group", "jubjub", - "lazy_static", "rand_core", "redjubjub", "sapling-crypto", @@ -3792,28 +3835,46 @@ dependencies = [ [[package]] name = "zcash_protocol" -version = "0.4.3" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.7.1" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "core2", "document-features", "hex", "memuse", + "zcash_encoding", +] + +[[package]] +name = "zcash_script" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bed6cf5b2b4361105d4ea06b2752f0c8af4641756c7fbc9858a80af186c234f" +dependencies = [ + "bip32", + "bitflags", + "bounded-vec", + "hex", + "ripemd 0.1.3", + "secp256k1", + "sha1", + "sha2 0.10.8", + "thiserror 2.0.17", ] [[package]] name = "zcash_spec" -version = "0.1.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cede95491c2191d3e278cab76e097a44b17fde8d6ca0d4e3a22cf4807b2d857" +checksum = "ded3f58b93486aa79b85acba1001f5298f27a46489859934954d262533ee2915" dependencies = [ "blake2b_simd", ] [[package]] name = "zcash_transparent" -version = "0.1.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.6.1" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "bip32", "blake2b_simd", @@ -3821,13 +3882,14 @@ dependencies = [ "core2", "getset", "hex", - "ripemd", + "ripemd 0.1.3", "secp256k1", - "sha2", + "sha2 0.10.8", "subtle", "zcash_address", "zcash_encoding", "zcash_protocol", + "zcash_script", "zcash_spec", "zip32", ] @@ -3875,10 +3937,11 @@ dependencies = [ [[package]] name = "zip32" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9943793abf9060b68e1889012dafbd5523ab5b125c0fcc24802d69182f2ac9" +checksum = "b64bf5186a8916f7a48f2a98ef599bf9c099e2458b36b819e393db1c0e768c4b" dependencies = [ + "bech32", "blake2b_simd", "memuse", "subtle", @@ -3887,8 +3950,8 @@ dependencies = [ [[package]] name = "zip321" -version = "0.2.0" -source = "git+https://github.com/ChainSafe/librustzcash?rev=46e8ee0937b61fdbb417df7c663f62e6945d8090#46e8ee0937b61fdbb417df7c663f62e6945d8090" +version = "0.6.0" +source = "git+https://github.com/zcash/librustzcash?rev=a40ee353bba84d1cb3eaf1889df433d3be9c79e5#a40ee353bba84d1cb3eaf1889df433d3be9c79e5" dependencies = [ "base64", "nom", diff --git a/Cargo.toml b/Cargo.toml index d989073..92333b4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,32 +27,31 @@ wasm-bindgen-rayon = { version = "1.3" } # Update to higher version cause playwr # WASM specific dependencies tracing-web = { version = "0.1.3" } console_error_panic_hook = { version = "0.1.7" } -tonic-web-wasm-client = "0.6.0" +tonic-web-wasm-client = "0.8.0" tokio_with_wasm = { version = "0.7.1", features = ["rt", "rt-multi-thread", "sync", "macros", "time"] } ## Zcash dependencies -zcash_keys = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", features = ["transparent-inputs", "orchard", "sapling", "unstable"] } -zcash_client_backend = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", default-features = false, features = ["sync", "lightwalletd-tonic", "wasm-bindgen", "orchard"] } -zcash_client_memory = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", features = ["orchard", "transparent-inputs"] } -zcash_primitives = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090" } -zcash_address = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090" } -zcash_proofs = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", default-features = false, features = ["bundled-prover", "multicore"] } -zip321 = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090" } -zip32 = { version = "0.1.3" } -zcash_protocol = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", default-features = false } -pczt = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", default-features = false, features = ["orchard", "sapling", "transparent"] } -sapling = { package = "sapling-crypto", version = "0.4", default-features = false } - +zcash_keys = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", features = ["transparent-inputs", "orchard", "sapling", "unstable"] } +zcash_client_backend = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false, features = ["sync", "lightwalletd-tonic", "orchard"] } +zcash_client_memory = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", features = ["orchard", "transparent-inputs"] } +zcash_primitives = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5" } +zcash_transparent = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false} +zcash_address = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5" } +zcash_proofs = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false, features = ["bundled-prover", "multicore"] } +zip321 = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5" } +zip32 = { version = "0.2" } +zcash_protocol = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false } +pczt = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false, features = ["orchard", "sapling", "transparent"] } +sapling = { package = "sapling-crypto", version = "0.5", default-features = false } +bip32 = { version = "=0.6.0-pre.1", default-features = false, features = ["alloc"] } ## gRPC Web dependencies -prost = { version = "0.12", default-features = false } -tonic = { version = "0.12", default-features = false, features = [ - "prost", -] } +prost = { version = "0.14", default-features = false } +tonic = { version = "0.14", default-features = false } # Used in Native tests -zcash_client_sqlite = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", default-features = false, features = ["unstable", "orchard"] } +zcash_client_sqlite = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false, features = ["unstable", "orchard"] } getrandom = { version = "0.2", features = ["js"] } thiserror = "1.0.63" @@ -86,8 +85,8 @@ byte-unit = { version = "5.1.4", features = ["byte"] } [patch.crates-io] # Also patching for pczt improvments # See: https://github.com/zcash/librustzcash/pull/1661 -orchard = { git = "https://github.com/zcash/orchard.git", rev = "4fa6d3b549f8803016a309281404eab095d04de8" } -sapling = { package = "sapling-crypto", git = "https://github.com/zcash/sapling-crypto.git", rev = "3c2235747553da642fb142d1eeb9b1afa8391987" } +# orchard = { git = "https://github.com/zcash/orchard.git", rev = "4fa6d3b549f8803016a309281404eab095d04de8" } +# sapling = { package = "sapling-crypto", git = "https://github.com/zcash/sapling-crypto.git", rev = "3c2235747553da642fb142d1eeb9b1afa8391987" } [workspace.lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wasm_bindgen)', 'cfg(wasm_bindgen_unstable_test_coverage)'] } diff --git a/crates/webzjs-common/src/network.rs b/crates/webzjs-common/src/network.rs index a1d89e2..08fbea9 100644 --- a/crates/webzjs-common/src/network.rs +++ b/crates/webzjs-common/src/network.rs @@ -39,10 +39,10 @@ impl Parameters for Network { fn activation_height(&self, nu: consensus::NetworkUpgrade) -> Option { match self { Network::MainNetwork => { - zcash_primitives::consensus::Network::MainNetwork.activation_height(nu) + zcash_protocol::consensus::Network::MainNetwork.activation_height(nu) } Network::TestNetwork => { - zcash_primitives::consensus::Network::TestNetwork.activation_height(nu) + zcash_protocol::consensus::Network::TestNetwork.activation_height(nu) } } } diff --git a/crates/webzjs-keys/Cargo.toml b/crates/webzjs-keys/Cargo.toml index 38ce03c..2aae178 100644 --- a/crates/webzjs-keys/Cargo.toml +++ b/crates/webzjs-keys/Cargo.toml @@ -21,16 +21,24 @@ thiserror.workspace = true wasm-bindgen.workspace = true zcash_primitives = { workspace = true, features = ["transparent-inputs"] } zcash_keys.workspace = true +zcash_protocol.workspace = true bip0039.workspace = true -zip32 = "0.1" +zip32.workspace = true +zcash_transparent.workspace = true sapling = { workspace = true } -bip32 = "0.5" -pczt = { workspace = true, default-features = false, features = ["signer", "orchard", "sapling", "transparent", "tx-extractor"] } -orchard = { version = "0.10.1", default-features = false } +bip32.workspace = true +pczt = { workspace = true, default-features = false, features = [ + "signer", + "orchard", + "sapling", + "transparent", + "tx-extractor", +] } +orchard = { version = "0.11", default-features = false } wasm-bindgen-futures = "0.4.43" # fixes "failed to resolve: use of undeclared crate or module `imp`" error -getrandom = { version = "0.2", features = ["js"] } +getrandom = { workspace = true, features = ["js"] } [lints] -workspace = true \ No newline at end of file +workspace = true diff --git a/crates/webzjs-keys/src/error.rs b/crates/webzjs-keys/src/error.rs index 66b0952..0bd2552 100644 --- a/crates/webzjs-keys/src/error.rs +++ b/crates/webzjs-keys/src/error.rs @@ -5,7 +5,7 @@ pub enum Error { #[error("webzjs-common crate gives error: {0}")] WebzJSCommon(#[from] webzjs_common::Error), #[error("Invalid account id")] - AccountIdConversion(#[from] zcash_primitives::zip32::TryFromIntError), + AccountIdConversion(#[from] zip32::TryFromIntError), #[error("Failed to derive key from seed")] Derivation(#[from] zcash_keys::keys::DerivationError), #[error("Error attempting to decode key: {0}")] diff --git a/crates/webzjs-keys/src/keys.rs b/crates/webzjs-keys/src/keys.rs index 951ef77..82e5bae 100644 --- a/crates/webzjs-keys/src/keys.rs +++ b/crates/webzjs-keys/src/keys.rs @@ -7,7 +7,7 @@ use wasm_bindgen::prelude::*; use crate::error::Error; use bip0039::{Count, English, Mnemonic}; use webzjs_common::Network; -use zcash_primitives::zip32::AccountId; +use zip32::AccountId; /// A ZIP32 seed fingerprint. Essentially a Blake2b hash of the seed. /// diff --git a/crates/webzjs-keys/src/pczt_sign.rs b/crates/webzjs-keys/src/pczt_sign.rs index fa76354..c066079 100644 --- a/crates/webzjs-keys/src/pczt_sign.rs +++ b/crates/webzjs-keys/src/pczt_sign.rs @@ -7,8 +7,8 @@ use std::convert::Infallible; use std::str::FromStr; use wasm_bindgen::prelude::wasm_bindgen; use webzjs_common::{Network, Pczt}; -use zcash_primitives::consensus::{NetworkConstants, Parameters}; -use zcash_primitives::legacy::keys::{NonHardenedChildIndex, TransparentKeyScope}; +use zcash_protocol::consensus::{NetworkConstants, Parameters}; +use zcash_transparent::keys::{NonHardenedChildIndex, TransparentKeyScope}; /// Signs and applies signatures to a PCZT. /// Should in a secure environment (e.g. Metamask snap). @@ -57,7 +57,7 @@ pub async fn pczt_sign_inner( address_index: NonHardenedChildIndex, }, } - let mut keys = BTreeMap::>::new(); + let mut keys = BTreeMap::>::new(); let pczt = Verifier::new(pczt) .with_orchard::(|bundle| { for (index, action) in bundle.actions().iter().enumerate() { @@ -69,9 +69,7 @@ pub async fn pczt_sign_inner( .and_then(|derivation| { derivation.extract_account_index( &seed_fp, - zcash_primitives::zip32::ChildIndex::hardened( - network.network_type().coin_type(), - ), + zip32::ChildIndex::hardened(network.network_type().coin_type()), ) }) { @@ -89,9 +87,7 @@ pub async fn pczt_sign_inner( spend.zip32_derivation().as_ref().and_then(|derivation| { derivation.extract_account_index( &seed_fp, - zcash_primitives::zip32::ChildIndex::hardened( - network.network_type().coin_type(), - ), + zip32::ChildIndex::hardened(network.network_type().coin_type()), ) }) { diff --git a/crates/webzjs-requests/Cargo.toml b/crates/webzjs-requests/Cargo.toml index b189f92..722d51a 100644 --- a/crates/webzjs-requests/Cargo.toml +++ b/crates/webzjs-requests/Cargo.toml @@ -24,7 +24,7 @@ thiserror.workspace = true serde-wasm-bindgen.workspace = true # fixes "failed to resolve: use of undeclared crate or module `imp`" error -getrandom = { version = "0.2", features = ["js"] } +getrandom = { workspace = true, features = ["js"] } [lints] -workspace = true \ No newline at end of file +workspace = true diff --git a/crates/webzjs-requests/src/error.rs b/crates/webzjs-requests/src/error.rs index 220a0c8..dec6c21 100644 --- a/crates/webzjs-requests/src/error.rs +++ b/crates/webzjs-requests/src/error.rs @@ -9,7 +9,7 @@ pub enum Error { #[error("Error constructing ZIP321 transaction request: {0}")] Zip321(#[from] zip321::Zip321Error), #[error("Error decoding memo: {0}")] - MemoDecoding(#[from] zcash_primitives::memo::Error), + MemoDecoding(#[from] zcash_protocol::memo::Error), #[error("Error attempting to decode address: {0}")] AddressDecoding(#[from] zcash_address::ParseError), #[error("serde wasm-bindgen error")] diff --git a/crates/webzjs-requests/src/requests.rs b/crates/webzjs-requests/src/requests.rs index 3ef99f3..f3042d9 100644 --- a/crates/webzjs-requests/src/requests.rs +++ b/crates/webzjs-requests/src/requests.rs @@ -4,7 +4,7 @@ use crate::error::Error; use wasm_bindgen::prelude::*; use zcash_address::ZcashAddress; -use zcash_primitives::memo::MemoBytes; +use zcash_protocol::memo::MemoBytes; /// A [ZIP-321](https://zips.z.cash/zip-0321) transaction request /// diff --git a/crates/webzjs-wallet/Cargo.toml b/crates/webzjs-wallet/Cargo.toml index d18c28d..3780b1f 100644 --- a/crates/webzjs-wallet/Cargo.toml +++ b/crates/webzjs-wallet/Cargo.toml @@ -18,9 +18,8 @@ default = ["native", "multicore"] multicore = ["zcash_proofs/multicore", "zcash_primitives/multicore", "zcash_client_memory/multicore"] - # WASM specific features -wasm = ["console_error_panic_hook", "dep:tracing-web", "zcash_client_backend/wasm-bindgen"] +wasm = ["console_error_panic_hook", "dep:tracing-web"] wasm-parallel = ["wasm", "wasm-bindgen-rayon", "multicore"] native = ["tonic/channel", "tonic/gzip", "tonic/tls-webpki-roots", "tokio/macros", "tokio/rt", "tokio/rt-multi-thread"] sqlite-db = ["dep:zcash_client_sqlite"] @@ -41,13 +40,19 @@ wasm-bindgen-rayon = { version = "1.3", optional = true } # WASM specific dependencies tracing-web = { version = "0.1.3", optional = true } console_error_panic_hook = { version = "0.1.7", optional = true } -tonic-web-wasm-client = "0.6.0" +tonic-web-wasm-client = "0.8.0" tokio_with_wasm = { version = "0.7.1", features = ["rt", "rt-multi-thread", "sync", "macros", "time"] } ## Zcash dependencies zcash_keys = { workspace = true, features = ["transparent-inputs", "orchard", "sapling", "unstable"] } -zcash_client_backend = { workspace = true, default-features = false, features = ["sync", "lightwalletd-tonic", "wasm-bindgen", "orchard", "pczt", "transparent-inputs"] } +zcash_client_backend = { workspace = true, default-features = false, features = [ + "sync", + "lightwalletd-tonic", + "orchard", + "pczt", + "transparent-inputs", +] } zcash_client_memory = { workspace = true, features = ["orchard", "transparent-inputs"] } zcash_primitives = { workspace = true } zcash_address = { workspace = true } @@ -56,21 +61,21 @@ zcash_proofs = { workspace = true, default-features = false, features = ["bundle zip321 = { workspace = true } zip32 = { workspace = true } pczt = { workspace = true, default-features = false, features = ["orchard", "sapling", "transparent"] } -orchard = { version = "0.10.1", default-features = false } +orchard = { version = "0.11", default-features = false } sapling = { workspace = true } -bip32 = "0.5" +bip32.workspace = true ## gRPC Web dependencies -prost = { version = "0.13", default-features = false } -tonic = { version = "0.12", default-features = false, features = [ - "prost", -] } - +prost = { version = "0.14", default-features = false } +tonic = { version = "0.14", default-features = false, features = ["codegen"] } # Used in Native tests tokio.workspace = true -zcash_client_sqlite = { git = "https://github.com/ChainSafe/librustzcash", rev = "46e8ee0937b61fdbb417df7c663f62e6945d8090", default-features = false, features = ["unstable", "orchard"], optional = true } +zcash_client_sqlite = { git = "https://github.com/zcash/librustzcash", rev = "a40ee353bba84d1cb3eaf1889df433d3be9c79e5", default-features = false, features = [ + "unstable", + "orchard", +], optional = true } -getrandom = { version = "0.2", features = ["js"] } +getrandom = { workspace = true, features = ["js"] } thiserror.workspace = true indexed_db_futures = "0.5.0" sha2 = "0.10" @@ -84,7 +89,10 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } tracing = "0.1.40" rayon = { version = "1.8", features = ["web_spin_lock"] } subtle = "2.6.1" -wasm_thread = { git = "https://github.com/ec2/wasm_thread", rev = "9e432077948d927d49373d1d039c23447d3648df", default-features = false, features = ["keep_worker_alive", "es_modules"] } +wasm_thread = { git = "https://github.com/ec2/wasm_thread", rev = "9e432077948d927d49373d1d039c23447d3648df", default-features = false, features = [ + "keep_worker_alive", + "es_modules", +] } wasm_sync = "0.1.2" http = { version = "1.1.0", default-features = false } @@ -93,4 +101,4 @@ postcard = { version = "1.0.10", features = ["alloc"] } serde-wasm-bindgen.workspace = true [lints] -workspace = true \ No newline at end of file +workspace = true diff --git a/crates/webzjs-wallet/src/bindgen/mod.rs b/crates/webzjs-wallet/src/bindgen/mod.rs index 987b0d4..8aa035b 100644 --- a/crates/webzjs-wallet/src/bindgen/mod.rs +++ b/crates/webzjs-wallet/src/bindgen/mod.rs @@ -1,4 +1,2 @@ -use serde::{Deserialize, Serialize}; - pub mod proposal; pub mod wallet; diff --git a/crates/webzjs-wallet/src/bindgen/wallet.rs b/crates/webzjs-wallet/src/bindgen/wallet.rs index 1cc6a0e..83eef7b 100644 --- a/crates/webzjs-wallet/src/bindgen/wallet.rs +++ b/crates/webzjs-wallet/src/bindgen/wallet.rs @@ -2,7 +2,6 @@ use std::num::NonZeroU32; use std::str::FromStr; use nonempty::NonEmpty; -use prost::Message; use serde::{Deserialize, Serialize}; use wasm_bindgen::prelude::*; @@ -13,17 +12,17 @@ use crate::wallet::usk_from_seed_str; use crate::{bindgen::proposal::Proposal, Wallet, PRUNING_DEPTH}; use wasm_thread as thread; use webzjs_common::{Network, Pczt}; -use webzjs_keys::{ProofGenerationKey, SeedFingerprint, UnifiedSpendingKey}; +use webzjs_keys::{ProofGenerationKey, SeedFingerprint}; use zcash_address::ZcashAddress; +use zcash_client_backend::data_api::wallet::ConfirmationsPolicy; use zcash_client_backend::data_api::{AccountPurpose, InputSource, WalletRead, Zip32Derivation}; use zcash_client_backend::proto::service::{ compact_tx_streamer_client::CompactTxStreamerClient, ChainSpec, }; use zcash_client_memory::MemoryWalletDb; use zcash_keys::encoding::AddressCodec; -use zcash_keys::keys::UnifiedFullViewingKey; +use zcash_keys::keys::{UnifiedAddressRequest, UnifiedFullViewingKey}; use zcash_primitives::transaction::TxId; -use zcash_primitives::zip32; pub type MemoryWallet = Wallet, T>; pub type AccountId = as WalletRead>::AccountId; @@ -130,12 +129,19 @@ impl WebWallet { pub fn new( network: &str, lightwalletd_url: &str, - min_confirmations: u32, + min_confirmations_trusted: u32, + min_confirmations_untrusted: u32, db_bytes: Option>, ) -> Result { let network = Network::from_str(network)?; - let min_confirmations = NonZeroU32::try_from(min_confirmations) - .map_err(|_| Error::InvalidMinConformations(min_confirmations))?; + let min_confirmations_trusted = NonZeroU32::try_from(min_confirmations_trusted) + .map_err(|_| Error::InvalidMinConformations)?; + let min_confirmations_untrusted = NonZeroU32::try_from(min_confirmations_untrusted) + .map_err(|_| Error::InvalidMinConformations)?; + + let min_confirmations = + ConfirmationsPolicy::new(min_confirmations_trusted, min_confirmations_untrusted, true) + .map_err(|_| Error::InvalidMinConformations)?; let client = Client::new(lightwalletd_url.to_string()); let db = match db_bytes { @@ -432,7 +438,10 @@ impl WebWallet { /// pub async fn get_current_address(&self, account_id: u32) -> Result { let db = self.inner.db.read().await; - if let Some(address) = db.get_current_address(account_id.into())? { + if let Some(address) = db.get_last_generated_address_matching( + account_id.into(), + UnifiedAddressRequest::ALLOW_ALL, + )? { Ok(address.encode(&self.inner.network)) } else { Err(Error::AccountNotFound(account_id)) @@ -518,7 +527,10 @@ impl WebWallet { /// pub async fn get_current_address_transparent(&self, account_id: u32) -> Result { let db = self.inner.db.read().await; - if let Some(address) = db.get_current_address(account_id.into())? { + if let Some(address) = db.get_last_generated_address_matching( + account_id.into(), + UnifiedAddressRequest::ALLOW_ALL, + )? { Ok(address.transparent().unwrap().encode(&self.inner.network)) } else { Err(Error::AccountNotFound(account_id)) diff --git a/crates/webzjs-wallet/src/error.rs b/crates/webzjs-wallet/src/error.rs index 01bf30a..b85ff0f 100644 --- a/crates/webzjs-wallet/src/error.rs +++ b/crates/webzjs-wallet/src/error.rs @@ -9,7 +9,7 @@ pub enum Error { #[error("webzjs-common crate gives error: {0}")] WebzJSCommon(#[from] webzjs_common::Error), #[error("Invalid account id")] - AccountIdConversion(#[from] zcash_primitives::zip32::TryFromIntError), + AccountIdConversion(#[from] zip32::TryFromIntError), #[error("Failed to derive key from seed")] // doesn't implement std::error. Should probably fix this upstream Derivation(#[from] zcash_keys::keys::DerivationError), @@ -41,10 +41,8 @@ pub enum Error { Scan(zcash_client_backend::scanning::ScanError), #[error("IO Error: {0}")] Io(#[from] std::io::Error), - #[error( - "Error parsing min_confirmations argument {0}. Must be an integer > 0 (e.g. at least 1)" - )] - InvalidMinConformations(u32), + #[error("Error parsing min_confirmations. Must be an integer > 0 (e.g. at least 1)")] + InvalidMinConformations, #[error("Error parsing zatoshi amount: {0}")] InvalidAmount(#[from] zcash_protocol::value::BalanceError), #[error("Failed to send transaction")] @@ -61,7 +59,7 @@ pub enum Error { #[error("Attempted to create a transaction with a memo to an unsupported recipient. Only shielded addresses are supported.")] UnsupportedMemoRecipient, #[error("Error decoding memo: {0}")] - MemoDecoding(#[from] zcash_primitives::memo::Error), + MemoDecoding(#[from] zcash_protocol::memo::Error), #[cfg(feature = "sqlite-db")] #[error("Sqlite error: {0}")] diff --git a/crates/webzjs-wallet/src/wallet.rs b/crates/webzjs-wallet/src/wallet.rs index df19fa3..3de47fe 100644 --- a/crates/webzjs-wallet/src/wallet.rs +++ b/crates/webzjs-wallet/src/wallet.rs @@ -1,4 +1,4 @@ -use std::num::{NonZeroU32, NonZeroUsize}; +use std::num::NonZeroUsize; use bip0039::{English, Mnemonic}; use nonempty::NonEmpty; @@ -29,7 +29,7 @@ use zcash_address::ZcashAddress; use zcash_client_backend::data_api::wallet::{ create_pczt_from_proposal, create_proposed_transactions, extract_and_store_transaction_from_pczt, input_selection::GreedyInputSelector, - propose_shielding, propose_transfer, + propose_shielding, propose_transfer, ConfirmationsPolicy, SpendingKeys, }; use zcash_client_backend::data_api::{ Account, AccountBirthday, AccountPurpose, InputSource, WalletRead, WalletSummary, WalletWrite, @@ -88,7 +88,7 @@ pub struct Wallet { // gRPC client used to connect to a lightwalletd instance for network data pub(crate) client: CompactTxStreamerClient, pub(crate) network: Network, - pub(crate) min_confirmations: NonZeroU32, + pub(crate) min_confirmations: ConfirmationsPolicy, /// Note management: the number of notes to maintain in the wallet pub(crate) target_note_count: usize, /// Note management: the minimum allowed value for split change amounts @@ -144,7 +144,7 @@ where ::Error: std::error::Error + Send + Sync + 'static, // GRPC connection Trait Bounds - T: GrpcService + Clone, + T: GrpcService + Clone, T::Error: Into, T::ResponseBody: Body + std::marker::Send + 'static, ::Error: Into + std::marker::Send, @@ -154,7 +154,7 @@ where db: W, client: T, network: Network, - min_confirmations: NonZeroU32, + min_confirmations: ConfirmationsPolicy, ) -> Result { Ok(Wallet { db: Arc::new(RwLock::new(db)), @@ -294,7 +294,7 @@ where .db .read() .await - .get_wallet_summary(self.min_confirmations.into())?) + .get_wallet_summary(self.min_confirmations)?) } /// @@ -330,7 +330,7 @@ where self.db .read() .await - .get_target_and_anchor_heights(self.min_confirmations)? + .get_target_and_anchor_heights(self.min_confirmations.trusted())? ); let mut db = self.db.write().await; let proposal = propose_transfer::<_, _, _,_, ::Error>( @@ -372,7 +372,7 @@ where &self.network, &prover, &prover, - usk, + &SpendingKeys::from_unified_spending_key(usk.clone()), OvkPolicy::Sender, &proposal, ) @@ -459,7 +459,8 @@ where } }; - let transparent_balances = db.get_transparent_balances(account_id, max_height)?; + let transparent_balances = + db.get_transparent_balances(account_id, max_height.into(), self.min_confirmations)?; let from_addrs = transparent_balances.into_keys().collect::>(); let proposal = propose_shielding::<_, _, _, _, ::Error>( @@ -470,7 +471,7 @@ where SHIELDING_THRESHOLD, // use a shielding threshold above a marginal fee transaction plus some value like Zashi does. &from_addrs, account_id, - 1, // librustzcash operates under the assumption of zero or one conf being the same but that could change. + self.min_confirmations, // librustzcash operates under the assumption of zero or one conf being the same but that could change. ) .map_err(|e| Error::Generic(format!("Error when shielding: {:?}", e)))?; @@ -617,9 +618,8 @@ where let txid = extract_and_store_transaction_from_pczt::<_, ()>( &mut *db, pczt, - &spend_vk, - &output_vk, - &orchard::circuit::VerifyingKey::build(), + Some((&spend_vk, &output_vk)), + Some(&orchard::circuit::VerifyingKey::build()), ) .map_err(|e| { Error::PcztSend(format!(