From e411a9ed9fcd93f7665727aa3dfeb2a074cd2244 Mon Sep 17 00:00:00 2001 From: Adam Tucker Date: Sat, 6 Jun 2026 12:12:25 -0600 Subject: [PATCH 1/3] Add NU6.2 Zaino support Patch Zallet to the NU6.2-compatible Zaino stack, preserve NU6.2 activation heights through Zaino's Zingo dependency, and keep fresh dependency resolution working with the old zcashd import stack. Co-Authored-By: OpenAI Codex --- Cargo.lock | 1058 +++++++---------- Cargo.toml | 46 +- zallet/src/components/chain.rs | 9 +- .../json_rpc/methods/get_new_account.rs | 25 +- .../json_rpc/methods/get_raw_transaction.rs | 2 +- .../json_rpc/methods/recover_accounts.rs | 25 +- .../json_rpc/methods/view_transaction.rs | 2 +- zallet/src/components/sync.rs | 13 +- zallet/src/components/sync/steps.rs | 2 +- zallet/src/network.rs | 3 +- 10 files changed, 479 insertions(+), 706 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d98e79d6..b07c48e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -263,28 +263,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.108", -] - [[package]] name = "async-trait" version = "0.1.89" @@ -319,47 +297,20 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "axum" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" -dependencies = [ - "async-trait", - "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.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de45108900e1f9b9242f7f2e254aa3e2c029c921c258fe9e6b4217eeebd54288" dependencies = [ - "axum-core 0.5.5", + "axum-core", "bytes", "futures-util", "http", "http-body", "http-body-util", "itoa", - "matchit 0.8.4", + "matchit", "memchr", "mime", "percent-encoding", @@ -372,26 +323,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper", - "tower-layer", - "tower-service", -] - [[package]] name = "axum-core" version = "0.5.5" @@ -536,7 +467,7 @@ checksum = "5bd5f55d05b06624b5b3c2aa7d7e1c6ab06a41e186b66fef68cfd2ad08149ba1" dependencies = [ "getrandom 0.2.15", "lazy_static", - "num-traits 0.2.19", + "num-traits", "rand 0.8.5", "rand_core 0.6.4", "rand_xoshiro", @@ -625,18 +556,33 @@ dependencies = [ "bitflags 2.10.0", "cexpr", "clang-sys", - "itertools 0.12.1", + "itertools 0.11.0", "lazy_static", "lazycell", - "log", - "prettyplease", "proc-macro2", "quote", "regex", "rustc-hash 1.1.0", "shlex", "syn 2.0.108", - "which 4.4.2", +] + +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.10.0", + "cexpr", + "clang-sys", + "itertools 0.11.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.108", ] [[package]] @@ -818,6 +764,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09dc0086e469182132244e9b8d313a0742e1132da43a08c24b9dd3c18e0faf3a" dependencies = [ + "serde", "thiserror 2.0.12", ] @@ -889,18 +836,6 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6e9e01327e6c86e92ec72b1c798d4a94810f147209bbe3ffab6a86954937a6f" -[[package]] -name = "cargo-lock" -version = "10.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06acb4f71407ba205a07cb453211e0e6a67b21904e47f6ba1f9589e38f2e454" -dependencies = [ - "semver", - "serde", - "toml 0.8.20", - "url", -] - [[package]] name = "cargo-platform" version = "0.1.9" @@ -997,7 +932,7 @@ checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "iana-time-zone", "js-sys", - "num-traits 0.2.19", + "num-traits", "serde", "wasm-bindgen", "windows-link 0.2.1", @@ -1122,9 +1057,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8599749b6667e2f0c910c1d0dff6901163ff698a52d5a39720f61b5be4b20d3" dependencies = [ "futures-core", - "prost 0.14.1", - "prost-types 0.14.1", - "tonic 0.14.2", + "prost", + "prost-types", + "tonic", "tonic-prost", "tracing-core", ] @@ -1142,14 +1077,14 @@ dependencies = [ "hdrhistogram", "humantime", "hyper-util", - "prost 0.14.1", - "prost-types 0.14.1", + "prost", + "prost-types", "serde", "serde_json", "thread_local", "tokio", "tokio-stream", - "tonic 0.14.2", + "tonic", "tracing", "tracing-core", "tracing-subscriber", @@ -1243,6 +1178,16 @@ dependencies = [ "url", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1256,13 +1201,6 @@ dependencies = [ "corez", ] -[[package]] -name = "core2" -version = "0.4.99" -dependencies = [ - "corez", -] - [[package]] name = "corez" version = "0.1.1" @@ -1528,6 +1466,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] @@ -1687,7 +1626,7 @@ checksum = "48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689" dependencies = [ "digest 0.10.7", "num-bigint-dig", - "num-traits 0.2.19", + "num-traits", "pkcs8", "rfc6979", "sha2 0.10.9", @@ -1749,17 +1688,18 @@ dependencies = [ [[package]] name = "ed25519-zebra" -version = "4.0.3" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +checksum = "775765289f7c6336c18d3d66127527820dd45ffd9eb3b6b8ee4708590e6c20f5" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.14.5", - "hex", + "hashbrown 0.16.0", + "pkcs8", "rand_core 0.6.4", "serde", "sha2 0.10.9", + "subtle", "zeroize", ] @@ -1832,15 +1772,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" -[[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" @@ -1864,7 +1795,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca4f333d4ccc9d23c06593733673026efa71a332e028b00f12cf427b9677dce9" dependencies = [ "blake2b_simd", - "core2 0.3.99", + "core2", "document-features", ] @@ -1875,6 +1806,7 @@ source = "git+https://github.com/zcash/librustzcash.git?rev=2c4e6c769c2e70e71f14 dependencies = [ "blake2b_simd", "corez", + "document-features", ] [[package]] @@ -2062,6 +1994,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "form_urlencoded" version = "1.2.2" @@ -2082,7 +2020,7 @@ dependencies = [ "libm", "num-bigint", "num-integer", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -2102,9 +2040,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -2117,9 +2055,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -2127,15 +2065,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -2144,15 +2082,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", @@ -2161,15 +2099,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" @@ -2179,9 +2117,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -2191,7 +2129,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -2324,20 +2261,17 @@ dependencies = [ [[package]] name = "halo2_gadgets" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73a5e510d58a07d8ed238a5a8a436fe6c2c79e1bb2611f62688bc65007b4e6e7" +version = "0.3.0" +source = "git+https://github.com/zcash/halo2.git?rev=263356784042d7d4c1c17d357c94c1acaeb75ab5#263356784042d7d4c1c17d357c94c1acaeb75ab5" dependencies = [ "arrayvec", "bitvec", "ff", "group", - "halo2_poseidon", - "halo2_proofs", + "halo2_proofs 0.3.0", "lazy_static", "pasta_curves", "rand 0.8.5", - "sinsemilla", "subtle", "uint 0.9.5", ] @@ -2353,7 +2287,7 @@ dependencies = [ "ff", "group", "halo2_poseidon", - "halo2_proofs", + "halo2_proofs 0.3.2", "lazy_static", "pasta_curves", "rand 0.8.5", @@ -2380,6 +2314,20 @@ dependencies = [ "pasta_curves", ] +[[package]] +name = "halo2_proofs" +version = "0.3.0" +source = "git+https://github.com/zcash/halo2.git?rev=263356784042d7d4c1c17d357c94c1acaeb75ab5#263356784042d7d4c1c17d357c94c1acaeb75ab5" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "maybe-rayon", + "pasta_curves", + "rand_core 0.6.4", + "tracing", +] + [[package]] name = "halo2_proofs" version = "0.3.2" @@ -2408,10 +2356,6 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] [[package]] name = "hashbrown" @@ -2419,7 +2363,7 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "foldhash", + "foldhash 0.1.5", ] [[package]] @@ -2427,6 +2371,11 @@ name = "hashbrown" version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "hashlink" @@ -2447,7 +2396,7 @@ dependencies = [ "byteorder", "flate2", "nom", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3067,15 +3016,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -3325,7 +3265,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", @@ -3357,6 +3297,18 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "libzcash_script" +version = "0.1.0" +source = "git+https://github.com/ZcashFoundation/zcash_script.git?tag=zcash_script-v0.4.5#cc4ec7ee8b96103586588e51e0f7cb3ebad4d944" +dependencies = [ + "bindgen 0.72.1", + "cc", + "thiserror 2.0.12", + "tracing", + "zcash_script", +] + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -3438,12 +3390,6 @@ dependencies = [ "regex-automata", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "matchit" version = "0.8.4" @@ -3568,6 +3514,18 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.10.0", + "cfg-if", + "cfg_aliases", + "libc", +] + [[package]] name = "nom" version = "7.1.3" @@ -3612,7 +3570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3626,7 +3584,7 @@ dependencies = [ "libm", "num-integer", "num-iter", - "num-traits 0.2.19", + "num-traits", "rand 0.8.5", "smallvec", "zeroize", @@ -3644,7 +3602,7 @@ version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "num-traits 0.2.19", + "num-traits", ] [[package]] @@ -3655,16 +3613,7 @@ checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", - "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", + "num-traits", ] [[package]] @@ -3723,6 +3672,27 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openrpsee" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faeb689cfe5fad5e7285f87b00c903366b307d97f41de53e894ec608968ca3a1" +dependencies = [ + "documented", + "jsonrpsee", + "quote", + "schemars", + "serde", + "serde_json", + "syn 2.0.108", +] + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + [[package]] name = "optfield" version = "0.4.0" @@ -3743,20 +3713,19 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchard" version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f4cf75baf85bbd6f15eb919b7e70afdc4a311eef0a3e8a053e65542fe2b58e" +source = "git+https://github.com/zcash/orchard.git?rev=ca77cd8232339d9ab322ff8344454b1dc861882f#ca77cd8232339d9ab322ff8344454b1dc861882f" dependencies = [ "aes", "bitvec", "blake2b_simd", - "core2 0.3.99", + "core2", "ff", "fpe", "getset", "group", - "halo2_gadgets 0.3.1", + "halo2_gadgets 0.3.0", "halo2_poseidon", - "halo2_proofs", + "halo2_proofs 0.3.2", "hex", "incrementalmerkletree 0.7.1", "lazy_static", @@ -3775,41 +3744,6 @@ dependencies = [ "zip32 0.1.3", ] -[[package]] -name = "orchard" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1ef66fcf99348242a20d582d7434da381a867df8dc155b3a980eca767c56137" -dependencies = [ - "aes", - "bitvec", - "blake2b_simd", - "core2 0.3.99", - "ff", - "fpe", - "getset", - "group", - "halo2_gadgets 0.3.1", - "halo2_poseidon", - "halo2_proofs", - "hex", - "incrementalmerkletree 0.8.2", - "lazy_static", - "memuse", - "nonempty 0.11.0", - "pasta_curves", - "rand 0.8.5", - "reddsa", - "serde", - "sinsemilla", - "subtle", - "tracing", - "visibility", - "zcash_note_encryption", - "zcash_spec 0.2.1", - "zip32 0.2.1", -] - [[package]] name = "orchard" version = "0.14.0" @@ -3826,7 +3760,7 @@ dependencies = [ "group", "halo2_gadgets 0.5.0", "halo2_poseidon", - "halo2_proofs", + "halo2_proofs 0.3.2", "hex", "incrementalmerkletree 0.8.2", "lazy_static", @@ -4149,12 +4083,6 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - [[package]] name = "pinentry" version = "0.6.0" @@ -4354,16 +4282,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "prost" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" -dependencies = [ - "bytes", - "prost-derive 0.13.5", -] - [[package]] name = "prost" version = "0.14.1" @@ -4371,14 +4289,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" dependencies = [ "bytes", - "prost-derive 0.14.1", + "prost-derive", ] [[package]] name = "prost-build" -version = "0.13.5" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" dependencies = [ "heck", "itertools 0.14.0", @@ -4387,48 +4305,17 @@ dependencies = [ "once_cell", "petgraph", "prettyplease", - "prost 0.13.5", - "prost-types 0.13.5", + "prost", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", "regex", "syn 2.0.108", "tempfile", ] [[package]] -name = "prost-build" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" -dependencies = [ - "heck", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost 0.14.1", - "prost-types 0.14.1", - "regex", - "syn 2.0.108", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.108", -] - -[[package]] -name = "prost-derive" +name = "prost-derive" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" @@ -4440,22 +4327,13 @@ dependencies = [ "syn 2.0.108", ] -[[package]] -name = "prost-types" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" -dependencies = [ - "prost 0.13.5", -] - [[package]] name = "prost-types" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" dependencies = [ - "prost 0.14.1", + "prost", ] [[package]] @@ -4474,6 +4352,26 @@ dependencies = [ "psl-types", ] +[[package]] +name = "pulldown-cmark" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" +dependencies = [ + "bitflags 2.10.0", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "21.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8246feae3db61428fd0bb94285c690b460e4517d83152377543ca802357785f1" +dependencies = [ + "pulldown-cmark", +] + [[package]] name = "quickcheck" version = "0.9.2" @@ -4670,7 +4568,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ - "num-traits 0.2.19", + "num-traits", "rand 0.8.5", ] @@ -4970,7 +4868,7 @@ dependencies = [ "digest 0.10.7", "num-bigint-dig", "num-integer", - "num-traits 0.2.19", + "num-traits", "pkcs1", "pkcs8", "rand_core 0.6.4", @@ -5048,7 +4946,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" dependencies = [ "arrayvec", - "num-traits 0.2.19", + "num-traits", "serde", "serde_json", ] @@ -5127,6 +5025,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-native-certs" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d" +dependencies = [ + "openssl-probe", + "rustls-pki-types", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -5220,9 +5130,9 @@ dependencies = [ [[package]] name = "sapling-crypto" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d3c081c83f1dc87403d9d71a06f52301c0aa9ea4c17da2a3435bbf493ffba4" +checksum = "2d70756ede56b5e4dd417979777bd87ddb83dfcbd0815dbf8175a9920537f8a0" dependencies = [ "aes", "bellman", @@ -5230,7 +5140,7 @@ dependencies = [ "blake2b_simd", "blake2s_simd", "bls12_381", - "core2 0.3.99", + "corez", "document-features", "ff", "fpe", @@ -5252,36 +5162,12 @@ dependencies = [ ] [[package]] -name = "sapling-crypto" -version = "0.7.0" +name = "schannel" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d70756ede56b5e4dd417979777bd87ddb83dfcbd0815dbf8175a9920537f8a0" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ - "aes", - "bellman", - "bitvec", - "blake2b_simd", - "blake2s_simd", - "bls12_381", - "corez", - "document-features", - "ff", - "fpe", - "getset", - "group", - "hex", - "incrementalmerkletree 0.8.2", - "jubjub", - "lazy_static", - "memuse", - "rand 0.8.5", - "rand_core 0.6.4", - "redjubjub 0.8.0", - "subtle", - "tracing", - "zcash_note_encryption", - "zcash_spec 0.2.1", - "zip32 0.2.1", + "windows-sys 0.61.2", ] [[package]] @@ -5432,6 +5318,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "security-framework" +version = "3.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" +dependencies = [ + "bitflags 2.10.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "self_cell" version = "1.2.0" @@ -5571,17 +5480,6 @@ dependencies = [ "syn 2.0.108", ] -[[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" @@ -5686,6 +5584,12 @@ version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" +[[package]] +name = "simple-mermaid" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589144a964b4b30fe3a83b4bb1a09e2475aac194ec832a046a23e75bddf9eb29" + [[package]] name = "sinsemilla" version = "0.1.0" @@ -6283,36 +6187,6 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" -[[package]] -name = "tonic" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" -dependencies = [ - "async-stream", - "async-trait", - "axum 0.7.9", - "base64 0.22.1", - "bytes", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-timeout", - "hyper-util", - "percent-encoding", - "pin-project", - "prost 0.13.5", - "socket2 0.5.9", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "tonic" version = "0.14.2" @@ -6320,7 +6194,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" dependencies = [ "async-trait", - "axum 0.8.3", + "axum", "base64 0.22.1", "bytes", "h2", @@ -6332,6 +6206,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", + "rustls-native-certs", "socket2 0.6.1", "sync_wrapper", "tokio", @@ -6344,20 +6219,6 @@ dependencies = [ "webpki-roots 1.0.3", ] -[[package]] -name = "tonic-build" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build 0.13.5", - "prost-types 0.13.5", - "quote", - "syn 2.0.108", -] - [[package]] name = "tonic-build" version = "0.14.2" @@ -6377,8 +6238,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" dependencies = [ "bytes", - "prost 0.14.1", - "tonic 0.14.2", + "prost", + "tonic", ] [[package]] @@ -6389,25 +6250,26 @@ checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" dependencies = [ "prettyplease", "proc-macro2", - "prost-build 0.14.1", - "prost-types 0.14.1", + "prost-build", + "prost-types", "quote", "syn 2.0.108", "tempfile", - "tonic-build 0.14.2", + "tonic-build", ] [[package]] name = "tonic-reflection" -version = "0.12.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878d81f52e7fcfd80026b7fdb6a9b578b3c3653ba987f87f0dce4b64043cba27" +checksum = "aaf0685a51e6d02b502ba0764002e766b7f3042aed13d9234925b6ffbfa3fca7" dependencies = [ - "prost 0.13.5", - "prost-types 0.13.5", + "prost", + "prost-types", "tokio", "tokio-stream", - "tonic 0.12.3", + "tonic", + "tonic-prost", ] [[package]] @@ -6418,11 +6280,8 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap 1.9.3", "pin-project", "pin-project-lite", - "rand 0.8.5", - "slab", "tokio", "tokio-util", "tower-layer", @@ -6451,9 +6310,9 @@ dependencies = [ [[package]] name = "tower-batch-control" -version = "0.2.41" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6823ca72ad0d8ebf40ddfe11c104f0ccb242befb7fd3bc20c33b6798a31eba" +checksum = "6e6cf52578f98b4da47335c26c4f883f7993b1a9b9d2f5420eb8dbfd5dd19a28" dependencies = [ "futures", "futures-core", @@ -6554,6 +6413,16 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-serde" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" +dependencies = [ + "serde", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.20" @@ -6564,12 +6433,28 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex-automata", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", + "time", "tracing", "tracing-core", "tracing-log", + "tracing-serde", +] + +[[package]] +name = "tracing-tree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac87aa03b6a4d5a7e4810d1a80c19601dbe0f8a837e9177f23af721c7ba7beec" +dependencies = [ + "nu-ansi-term", + "tracing-core", + "tracing-log", + "tracing-subscriber", ] [[package]] @@ -6680,6 +6565,12 @@ dependencies = [ "tinystr 0.8.2", ] +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -7417,18 +7308,25 @@ dependencies = [ [[package]] name = "zaino-common" -version = "0.1.2" -source = "git+https://github.com/zingolabs/zaino.git?rev=15b81f110349b34090341b3ab8b7cd58c7b9aeef#15b81f110349b34090341b3ab8b7cd58c7b9aeef" +version = "0.1.1" +source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" dependencies = [ + "hex", + "nu-ansi-term", "serde", "thiserror 1.0.69", + "time", + "tracing", + "tracing-subscriber", + "tracing-tree", "zebra-chain", + "zingo_common_components", ] [[package]] name = "zaino-fetch" -version = "0.1.2" -source = "git+https://github.com/zingolabs/zaino.git?rev=15b81f110349b34090341b3ab8b7cd58c7b9aeef#15b81f110349b34090341b3ab8b7cd58c7b9aeef" +version = "0.1.1" +source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" dependencies = [ "base64 0.22.1", "byteorder", @@ -7437,16 +7335,17 @@ dependencies = [ "http", "indexmap 2.12.0", "jsonrpsee-types", - "prost 0.13.5", + "prost", "reqwest", "serde", "serde_json", "sha2 0.10.9", "thiserror 1.0.69", "tokio", - "tonic 0.12.3", + "tonic", "tracing", "url", + "zaino-common", "zaino-proto", "zebra-chain", "zebra-rpc", @@ -7454,57 +7353,63 @@ dependencies = [ [[package]] name = "zaino-proto" -version = "0.1.2" -source = "git+https://github.com/zingolabs/zaino.git?rev=15b81f110349b34090341b3ab8b7cd58c7b9aeef#15b81f110349b34090341b3ab8b7cd58c7b9aeef" +version = "0.1.1" +source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" dependencies = [ - "prost 0.13.5", - "tonic 0.12.3", - "tonic-build 0.12.3", + "prost", + "tonic", + "tonic-prost", + "tonic-prost-build", "which 4.4.2", + "zebra-chain", + "zebra-state", ] [[package]] name = "zaino-state" -version = "0.1.2" -source = "git+https://github.com/zingolabs/zaino.git?rev=15b81f110349b34090341b3ab8b7cd58c7b9aeef#15b81f110349b34090341b3ab8b7cd58c7b9aeef" +version = "0.2.0" +source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" dependencies = [ "arc-swap", "async-trait", "bitflags 2.10.0", "blake2", "bs58", - "cargo-lock", "chrono", - "core2 0.4.99", + "corez", "dashmap", "derive_more", "futures", "hex", + "incrementalmerkletree 0.8.2", "indexmap 2.12.0", "lmdb", "lmdb-sys", "nonempty 0.11.0", "primitive-types 0.13.1", - "prost 0.13.5", + "prost", "reqwest", + "sapling-crypto 0.7.0", "serde", "serde_json", "sha2 0.10.9", + "simple-mermaid", "thiserror 1.0.69", "tokio", "tokio-stream", - "tonic 0.12.3", + "tokio-util", + "tonic", "tower 0.4.13", "tracing", "whoami", "zaino-common", "zaino-fetch", "zaino-proto", - "zcash_address 0.9.0", - "zcash_keys 0.10.1", - "zcash_primitives 0.24.1", - "zcash_protocol 0.6.2", - "zcash_transparent 0.4.0", + "zcash_address 0.12.0", + "zcash_keys 0.14.0", + "zcash_primitives 0.28.0", + "zcash_protocol 0.9.0", + "zcash_transparent", "zebra-chain", "zebra-rpc", "zebra-state", @@ -7544,7 +7449,7 @@ dependencies = [ "jsonrpsee", "jsonrpsee-http-client", "known-folders", - "nix", + "nix 0.29.0", "once_cell", "orchard 0.14.0", "phf 0.12.1", @@ -7573,7 +7478,7 @@ dependencies = [ "time", "tokio", "toml 0.8.20", - "tonic 0.14.2", + "tonic", "tower 0.4.13", "tracing", "tracing-log", @@ -7593,10 +7498,10 @@ dependencies = [ "zcash_keys 0.14.0", "zcash_note_encryption", "zcash_primitives 0.28.0", - "zcash_proofs 0.28.0", + "zcash_proofs", "zcash_protocol 0.9.0", - "zcash_script 0.4.3", - "zcash_transparent 0.8.0", + "zcash_script", + "zcash_transparent", "zebra-chain", "zebra-rpc", "zebra-state", @@ -7613,26 +7518,12 @@ checksum = "d32b380113014b136aec579ea1c07fef747a818b9ac97d91daa0ec3b7a642bc0" dependencies = [ "bech32 0.11.0", "bs58", - "core2 0.3.99", + "core2", "f4jumble", "zcash_encoding 0.2.2", "zcash_protocol 0.4.3", ] -[[package]] -name = "zcash_address" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c984ae01367a4a3d20e9d34ae4e4cc0dca004b22d9a10a51eec43f43934612e" -dependencies = [ - "bech32 0.11.0", - "bs58", - "core2 0.3.99", - "f4jumble", - "zcash_encoding 0.3.0", - "zcash_protocol 0.6.2", -] - [[package]] name = "zcash_address" version = "0.12.0" @@ -7671,7 +7562,7 @@ dependencies = [ "orchard 0.14.0", "pasta_curves", "percent-encoding", - "prost 0.14.1", + "prost", "rand_core 0.6.4", "rayon", "sapling-crypto 0.7.0", @@ -7681,7 +7572,7 @@ dependencies = [ "subtle", "time", "time-core", - "tonic 0.14.2", + "tonic", "tonic-prost", "tonic-prost-build", "tracing", @@ -7692,8 +7583,8 @@ dependencies = [ "zcash_note_encryption", "zcash_primitives 0.28.0", "zcash_protocol 0.9.0", - "zcash_script 0.4.3", - "zcash_transparent 0.8.0", + "zcash_script", + "zcash_transparent", "zip32 0.2.1", "zip321", ] @@ -7715,7 +7606,7 @@ dependencies = [ "maybe-rayon", "nonempty 0.11.0", "orchard 0.14.0", - "prost 0.14.1", + "prost", "rand 0.8.5", "rand_core 0.6.4", "rand_distr", @@ -7738,8 +7629,8 @@ dependencies = [ "zcash_keys 0.14.0", "zcash_primitives 0.28.0", "zcash_protocol 0.9.0", - "zcash_script 0.4.3", - "zcash_transparent 0.8.0", + "zcash_script", + "zcash_transparent", "zip32 0.2.1", ] @@ -7749,20 +7640,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3654116ae23ab67dd1f849b01f8821a8a156f884807ff665eac109bf28306c4d" dependencies = [ - "core2 0.3.99", + "core2", "nonempty 0.7.0", ] -[[package]] -name = "zcash_encoding" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca38087e6524e5f51a5b0fb3fc18f36d7b84bf67b2056f494ca0c281590953d" -dependencies = [ - "core2 0.3.99", - "nonempty 0.11.0", -] - [[package]] name = "zcash_encoding" version = "0.4.0" @@ -7811,32 +7692,6 @@ dependencies = [ "zip32 0.1.3", ] -[[package]] -name = "zcash_keys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c8d3d5a08a66f76264c72172e692ec362218b091181cda30c04d00a4561cd8" -dependencies = [ - "bech32 0.11.0", - "blake2b_simd", - "bls12_381", - "bs58", - "core2 0.3.99", - "document-features", - "group", - "memuse", - "nonempty 0.11.0", - "rand_core 0.6.4", - "secrecy 0.8.0", - "subtle", - "tracing", - "zcash_address 0.9.0", - "zcash_encoding 0.3.0", - "zcash_protocol 0.6.2", - "zcash_transparent 0.4.0", - "zip32 0.2.1", -] - [[package]] name = "zcash_keys" version = "0.14.0" @@ -7865,7 +7720,7 @@ dependencies = [ "zcash_address 0.12.0", "zcash_encoding 0.4.0", "zcash_protocol 0.9.0", - "zcash_transparent 0.8.0", + "zcash_transparent", "zeroize", "zip32 0.2.1", ] @@ -7922,48 +7777,6 @@ dependencies = [ "zip32 0.1.3", ] -[[package]] -name = "zcash_primitives" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76362b79e432bde2f22b3defcb6919d4fb50446985997169da3cc3ae4035a6d9" -dependencies = [ - "bip32 0.6.0-pre.1", - "blake2b_simd", - "block-buffer 0.11.0-rc.3", - "bs58", - "core2 0.3.99", - "crypto-common 0.2.0-rc.1", - "document-features", - "equihash 0.2.2", - "ff", - "fpe", - "getset", - "group", - "hex", - "incrementalmerkletree 0.8.2", - "jubjub", - "memuse", - "nonempty 0.11.0", - "orchard 0.11.0", - "rand 0.8.5", - "rand_core 0.6.4", - "redjubjub 0.8.0", - "ripemd 0.1.3", - "sapling-crypto 0.5.0", - "secp256k1 0.29.1", - "sha2 0.10.9", - "subtle", - "tracing", - "zcash_address 0.9.0", - "zcash_encoding 0.3.0", - "zcash_note_encryption", - "zcash_protocol 0.6.2", - "zcash_spec 0.2.1", - "zcash_transparent 0.4.0", - "zip32 0.2.1", -] - [[package]] name = "zcash_primitives" version = "0.28.0" @@ -7990,31 +7803,8 @@ dependencies = [ "zcash_encoding 0.4.0", "zcash_note_encryption", "zcash_protocol 0.9.0", - "zcash_script 0.4.3", - "zcash_transparent 0.8.0", -] - -[[package]] -name = "zcash_proofs" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f90d9521161f7308c2fe6bddf771947f1a0fcd01b9e8a3b624c30a5661ad945" -dependencies = [ - "bellman", - "blake2b_simd", - "bls12_381", - "document-features", - "group", - "home", - "jubjub", - "known-folders", - "lazy_static", - "rand_core 0.6.4", - "redjubjub 0.8.0", - "sapling-crypto 0.5.0", - "tracing", - "xdg 2.5.2", - "zcash_primitives 0.24.1", + "zcash_script", + "zcash_transparent", ] [[package]] @@ -8045,19 +7835,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82cb36b15b5a1be70b30c32ce40372dead6561df8a467e297f96b892873a63a2" dependencies = [ - "core2 0.3.99", - "document-features", - "hex", - "memuse", -] - -[[package]] -name = "zcash_protocol" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc76dd1f77be473e5829dbd34890bcd36d08b1e8dde2da0aea355c812a8f28" -dependencies = [ - "core2 0.3.99", + "core2", "document-features", "hex", "memuse", @@ -8077,27 +7855,8 @@ dependencies = [ [[package]] name = "zcash_script" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf6e76f310bb2d3cc233086a97c1710ba1de7ffbbf8198b8113407d0f427dfc" -dependencies = [ - "bindgen", - "bitflags 2.10.0", - "cc", - "enum_primitive", - "ripemd 0.1.3", - "secp256k1 0.29.1", - "sha-1", - "sha2 0.10.9", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "zcash_script" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ef9d04e0434a80b62ad06c5a610557be358ef60a98afa5dbc8ecaf19ad72e7" +version = "0.4.5" +source = "git+https://github.com/ZcashFoundation/zcash_script.git?tag=zcash_script-v0.4.5#cc4ec7ee8b96103586588e51e0f7cb3ebad4d944" dependencies = [ "bip32 0.6.0-pre.1", "bitflags 2.10.0", @@ -8128,30 +7887,6 @@ dependencies = [ "blake2b_simd", ] -[[package]] -name = "zcash_transparent" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a7c162a8aa6f708e842503ed5157032465dadfb1d7f63adf9db2d45213a0b11" -dependencies = [ - "bip32 0.6.0-pre.1", - "blake2b_simd", - "bs58", - "core2 0.3.99", - "document-features", - "getset", - "hex", - "ripemd 0.1.3", - "secp256k1 0.29.1", - "sha2 0.10.9", - "subtle", - "zcash_address 0.9.0", - "zcash_encoding 0.3.0", - "zcash_protocol 0.6.2", - "zcash_spec 0.2.1", - "zip32 0.2.1", -] - [[package]] name = "zcash_transparent" version = "0.8.0" @@ -8171,16 +7906,16 @@ dependencies = [ "zcash_address 0.12.0", "zcash_encoding 0.4.0", "zcash_protocol 0.9.0", - "zcash_script 0.4.3", + "zcash_script", "zcash_spec 0.2.1", "zip32 0.2.1", ] [[package]] name = "zebra-chain" -version = "2.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17a86ec712da2f25d3edc7e5cf0b1d15ef41ab35305e253f0f7cd9cecc0f1939" +checksum = "30ed3a4e00e8f0b2197f3d8fd6cad02351a25ddbffcf0a6dc1fe463d7ea4ccfa" dependencies = [ "bech32 0.11.0", "bitflags 2.10.0", @@ -8188,15 +7923,17 @@ dependencies = [ "bitvec", "blake2b_simd", "blake2s_simd", + "bounded-vec", "bs58", "byteorder", "chrono", + "derive-getters", "dirs", "ed25519-zebra", - "equihash 0.2.2", + "equihash 0.3.0", "futures", "group", - "halo2_proofs", + "halo2_proofs 0.3.2", "hex", "humantime", "incrementalmerkletree 0.8.2", @@ -8204,14 +7941,15 @@ dependencies = [ "jubjub", "lazy_static", "num-integer", - "orchard 0.11.0", + "orchard 0.14.0", "primitive-types 0.12.2", "rand_core 0.6.4", "rayon", "reddsa", "redjubjub 0.8.0", "ripemd 0.1.3", - "sapling-crypto 0.5.0", + "sapling-crypto 0.7.0", + "schemars", "secp256k1 0.29.1", "serde", "serde-big-array", @@ -8220,43 +7958,47 @@ dependencies = [ "sha2 0.10.9", "sinsemilla", "static_assertions", + "strum", "tempfile", "thiserror 2.0.12", "tokio", "tracing", "uint 0.10.0", "x25519-dalek", - "zcash_address 0.9.0", - "zcash_encoding 0.3.0", + "zcash_address 0.12.0", + "zcash_encoding 0.4.0", "zcash_history", "zcash_note_encryption", - "zcash_primitives 0.24.1", - "zcash_protocol 0.6.2", - "zcash_transparent 0.4.0", + "zcash_primitives 0.28.0", + "zcash_protocol 0.9.0", + "zcash_script", + "zcash_transparent", ] [[package]] name = "zebra-consensus" -version = "2.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a44698a96b007f00da9a2e4c4cdee6c5adfc22996bdeb06ccc781b96d597c0" +checksum = "15475adf8c271d03de99d18d622a8ae4c512c401e3e29da1f27a0ba62b22057c" dependencies = [ "bellman", "blake2b_simd", "bls12_381", "chrono", + "derive-getters", "futures", "futures-util", - "halo2_proofs", + "halo2_proofs 0.3.2", "jubjub", "lazy_static", + "libzcash_script", "metrics", "mset", "once_cell", - "orchard 0.11.0", + "orchard 0.14.0", "rand 0.8.5", "rayon", - "sapling-crypto 0.5.0", + "sapling-crypto 0.7.0", "serde", "thiserror 2.0.12", "tokio", @@ -8265,8 +8007,11 @@ dependencies = [ "tower-fallback", "tracing", "tracing-futures", - "wagyu-zcash-parameters", - "zcash_proofs 0.24.0", + "zcash_primitives 0.28.0", + "zcash_proofs", + "zcash_protocol 0.9.0", + "zcash_script", + "zcash_transparent", "zebra-chain", "zebra-node-services", "zebra-script", @@ -8275,9 +8020,9 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.1.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0230d1e515518e0ef33ca668f3abb98e364485f384f7ee101506ec64bca7e7d3" +checksum = "b8ba4f7dcd795eb84a5a33f5c4f29df60dd4971be363d2cd98d5fba5ce0477f2" dependencies = [ "bitflags 2.10.0", "byteorder", @@ -8297,6 +8042,7 @@ dependencies = [ "rand 0.8.5", "rayon", "regex", + "schemars", "serde", "tempfile", "thiserror 2.0.12", @@ -8312,9 +8058,9 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c808614a9d245ae8d6d3177c06a8c78c2a8566219b090d6a85dc46f4364eadad" +checksum = "abeece0fb4503a1df00c5ab736754b55c702613968f622f6aa3c2f9842aed2b2" dependencies = [ "color-eyre", "jsonrpsee-types", @@ -8322,14 +8068,15 @@ dependencies = [ "serde", "serde_json", "tokio", + "tower 0.4.13", "zebra-chain", ] [[package]] name = "zebra-rpc" -version = "2.0.1" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1ae56eb3c668366a751621f40e1c0569c32ae92467ec1f8bac5b755db308126" +checksum = "b460869e352c9f1b49a00ed9beaae04ca3e6498381c7189d4b90a79e51c260bd" dependencies = [ "base64 0.22.1", "chrono", @@ -8344,26 +8091,39 @@ dependencies = [ "jsonrpsee", "jsonrpsee-proc-macros", "jsonrpsee-types", - "nix", - "prost 0.13.5", + "lazy_static", + "metrics", + "nix 0.30.1", + "openrpsee", + "orchard 0.14.0", + "phf 0.12.1", + "prost", "rand 0.8.5", + "sapling-crypto 0.7.0", + "schemars", "semver", "serde", "serde_json", "serde_with", + "strum", + "strum_macros", + "thiserror 2.0.12", "tokio", "tokio-stream", - "tonic 0.12.3", - "tonic-build 0.12.3", + "tonic", + "tonic-prost", + "tonic-prost-build", "tonic-reflection", "tower 0.4.13", "tracing", "which 8.0.0", - "zcash_address 0.9.0", - "zcash_keys 0.10.1", - "zcash_primitives 0.24.1", - "zcash_protocol 0.6.2", - "zcash_transparent 0.4.0", + "zcash_address 0.12.0", + "zcash_keys 0.14.0", + "zcash_primitives 0.28.0", + "zcash_proofs", + "zcash_protocol 0.9.0", + "zcash_script", + "zcash_transparent", "zebra-chain", "zebra-consensus", "zebra-network", @@ -8374,25 +8134,29 @@ dependencies = [ [[package]] name = "zebra-script" -version = "2.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76a2e972e414caa3635b8c2d21f20c21a71c69f76b37bf7419d97ed0c2277e7" +checksum = "c4fc38c19388671df8a77c767e279b135ffaecd5e7df6ed7cd096390c080b4a3" dependencies = [ + "libzcash_script", + "rand 0.8.5", "thiserror 2.0.12", - "zcash_primitives 0.24.1", - "zcash_script 0.3.2", + "zcash_primitives 0.28.0", + "zcash_script", "zebra-chain", ] [[package]] name = "zebra-state" -version = "2.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "129b32692f22207719dd1c5ddcbae59b96a322e2329664787f6247acef78c7f3" +checksum = "57b351fde5047dce0d505c9dc26863ee818b7579e9cf8d8e44489deb9decfbb7" dependencies = [ "bincode", "chrono", "crossbeam-channel", + "derive-getters", + "derive-new", "dirs", "futures", "hex", @@ -8408,6 +8172,7 @@ dependencies = [ "regex", "rlimit", "rocksdb", + "sapling-crypto 0.7.0", "semver", "serde", "tempfile", @@ -8416,6 +8181,7 @@ dependencies = [ "tower 0.4.13", "tracing", "zebra-chain", + "zebra-node-services", ] [[package]] @@ -8571,6 +8337,14 @@ dependencies = [ "zip32 0.1.3", ] +[[package]] +name = "zingo_common_components" +version = "0.3.0" +source = "git+https://github.com/valargroup/zingo-common.git?rev=3d58a4399c00ca10779fcef5ecf8ed46f913cb84#3d58a4399c00ca10779fcef5ecf8ed46f913cb84" +dependencies = [ + "hex", +] + [[package]] name = "zip32" version = "0.1.3" diff --git a/Cargo.toml b/Cargo.toml index 65f978cb..d2afda36 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,13 +2,11 @@ members = [ "zallet", ] -# `vendor/core2-shim-0.3` and `vendor/core2-shim-0.4` are referenced from the -# `[patch.crates-io]` table below, but excluded from the workspace because -# Cargo requires workspace member crate names to be unique and both shims must -# be named `core2` to satisfy the resolver. +# `vendor/core2-shim-0.3` is referenced from the `[patch.crates-io]` table below, +# but excluded from the workspace because the shim must be named `core2` to +# satisfy the resolver. exclude = [ "vendor/core2-shim-0.3", - "vendor/core2-shim-0.4", ] resolver = "2" @@ -129,10 +127,10 @@ secp256k1 = { version = "0.29", features = ["recovery"] } zaino-common = "0.1" zaino-fetch = "0.1" zaino-proto = "0.1" -zaino-state = "0.1" -zebra-chain = "2.0" -zebra-rpc = "2.0.1" -zebra-state = "2.0" +zaino-state = "0.2" +zebra-chain = "9.0" +zebra-rpc = "9.0" +zebra-state = "8.0" # Zcash wallet deadpool = "0.12" @@ -182,25 +180,37 @@ zcash_primitives = { git = "https://github.com/zcash/librustzcash.git", rev = "2 zcash_proofs = { git = "https://github.com/zcash/librustzcash.git", rev = "2c4e6c769c2e70e71f14c9cf95f2dccfdb7ef239" } zcash_protocol = { git = "https://github.com/zcash/librustzcash.git", rev = "2c4e6c769c2e70e71f14c9cf95f2dccfdb7ef239" } +# TEMPORARY: Zebra 9 depends on libzcash_script. The crates.io release can be +# built with an older bindgen that cannot parse the crate's rust-version. Drop +# this patch once libzcash_script has a crates.io release with that build fix. +libzcash_script = { git = "https://github.com/ZcashFoundation/zcash_script.git", tag = "zcash_script-v0.4.5" } +zcash_script = { git = "https://github.com/ZcashFoundation/zcash_script.git", tag = "zcash_script-v0.4.5" } + # TEMPORARY: All `core2` versions on crates.io were yanked by upstream on # 2026-04-14, breaking fresh dependency resolution because we still pull -# `core2 ^0.3` (via `equihash 0.2.2`) and `core2 ^0.4` (via `zaino-state`) -# transitively. Both entries below redirect those `core2` requests to local -# shims that re-export `corez` (the Zcash ecosystem's clean-room replacement, -# https://github.com/zcash/corez). See `vendor/core2-shim-0.3/README.md` for +# `core2 ^0.3` transitively via `equihash 0.2.2`. The entry below redirects +# that `core2` request to a local shim that re-exports `corez`, the Zcash +# ecosystem's clean-room replacement. See `vendor/core2-shim-0.3/README.md` for # context and removal criteria. core2 = { path = "vendor/core2-shim-0.3" } -core2_v04 = { package = "core2", path = "vendor/core2-shim-0.4" } + +# TEMPORARY: `zewif-zcashd 0.1` depends on `orchard ^0.10`, and all matching +# crates.io releases have been yanked. That old Orchard line also depends on +# yanked Halo2 gadget releases. Fresh dependency resolution breaks when CI +# deletes `Cargo.lock`, so pin the exact source tags until `zewif-zcashd` moves +# to an unyanked Orchard release. +orchard = { git = "https://github.com/zcash/orchard.git", rev = "ca77cd8232339d9ab322ff8344454b1dc861882f" } +halo2_gadgets = { git = "https://github.com/zcash/halo2.git", rev = "263356784042d7d4c1c17d357c94c1acaeb75ab5" } age = { git = "https://github.com/str4d/rage.git", rev = "92f437bc2a061312fa6633bb70c91eef91142fd4" } zewif = { git = "https://github.com/zcash/zewif.git", rev = "f84f80612813ba00a0a8a9a5f060bd217fa981cc" } zewif-zcashd = { git = "https://github.com/zcash/zewif-zcashd.git", rev = "9c72d1805c269f88ea5caa4eb33c6d38013b9776" } -zaino-common = { git = "https://github.com/zingolabs/zaino.git", rev = "15b81f110349b34090341b3ab8b7cd58c7b9aeef" } -zaino-fetch = { git = "https://github.com/zingolabs/zaino.git", rev = "15b81f110349b34090341b3ab8b7cd58c7b9aeef" } -zaino-proto = { git = "https://github.com/zingolabs/zaino.git", rev = "15b81f110349b34090341b3ab8b7cd58c7b9aeef" } -zaino-state = { git = "https://github.com/zingolabs/zaino.git", rev = "15b81f110349b34090341b3ab8b7cd58c7b9aeef" } +zaino-common = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } +zaino-fetch = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } +zaino-proto = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } +zaino-state = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } [profile.release] debug = "line-tables-only" diff --git a/zallet/src/components/chain.rs b/zallet/src/components/chain.rs index 5f2b2652..8c4d302f 100644 --- a/zallet/src/components/chain.rs +++ b/zallet/src/components/chain.rs @@ -9,7 +9,7 @@ use tokio::sync::RwLock; use zaino_common::{CacheConfig, DatabaseConfig, ServiceConfig, StorageConfig}; use zaino_state::{ FetchService, FetchServiceConfig, FetchServiceSubscriber, IndexerService, IndexerSubscriber, - StatusType, ZcashService, + Status, StatusType, ZcashService, }; use crate::{ @@ -90,7 +90,7 @@ impl Chain { }?; let config = FetchServiceConfig::new( - resolved_validator_address, + resolved_validator_address.to_string(), config.indexer.validator_cookie_path.clone(), config.indexer.validator_user.clone(), config.indexer.validator_password.clone(), @@ -103,10 +103,11 @@ impl Chain { // completely filling the cache. Zaino's DB currently only contains a // cache of CompactBlocks, so we make do for now with uncached queries. // TODO: https://github.com/zingolabs/zaino/issues/249 - size: zaino_common::DatabaseSize::Gb(0), + size: zaino_common::DatabaseSize(0), }, }, config.consensus.network().to_zaino(), + None, ); info!("Starting Zaino indexer"); @@ -130,7 +131,7 @@ impl Chain { let service = indexer.read().await; let status = match service.as_ref() { - Some(service) => service.inner_ref().status().await, + Some(service) => service.inner_ref().status(), None => StatusType::CriticalError, }; diff --git a/zallet/src/components/json_rpc/methods/get_new_account.rs b/zallet/src/components/json_rpc/methods/get_new_account.rs index da90ec22..65abf3b2 100644 --- a/zallet/src/components/json_rpc/methods/get_new_account.rs +++ b/zallet/src/components/json_rpc/methods/get_new_account.rs @@ -2,7 +2,8 @@ use documented::Documented; use jsonrpsee::{core::RpcResult, types::ErrorCode as RpcErrorCode}; use schemars::JsonSchema; use serde::Serialize; -use zaino_state::FetchServiceSubscriber; +use zaino_proto::proto::service::BlockId; +use zaino_state::{FetchServiceSubscriber, LightWalletIndexer}; use zcash_client_backend::{ data_api::{AccountBirthday, WalletRead, WalletWrite}, proto::service::TreeState, @@ -57,8 +58,10 @@ pub(crate) async fn call( let treestate = { let treestate = chain - .fetcher - .get_treestate(birthday_height.saturating_sub(1).to_string()) + .get_tree_state(BlockId { + height: u64::from(u32::from(birthday_height.saturating_sub(1))), + hash: vec![], + }) .await .map_err(|_| RpcErrorCode::InternalError)?; @@ -71,20 +74,8 @@ pub(crate) async fn call( height: u64::try_from(treestate.height).map_err(|_| RpcErrorCode::InternalError)?, hash: treestate.hash, time: treestate.time, - sapling_tree: treestate - .sapling - .commitments() - .final_state() - .as_ref() - .map(hex::encode) - .unwrap_or_default(), - orchard_tree: treestate - .orchard - .commitments() - .final_state() - .as_ref() - .map(hex::encode) - .unwrap_or_default(), + sapling_tree: treestate.sapling_tree, + orchard_tree: treestate.orchard_tree, } }; diff --git a/zallet/src/components/json_rpc/methods/get_raw_transaction.rs b/zallet/src/components/json_rpc/methods/get_raw_transaction.rs index 5d3668da..c0401d49 100644 --- a/zallet/src/components/json_rpc/methods/get_raw_transaction.rs +++ b/zallet/src/components/json_rpc/methods/get_raw_transaction.rs @@ -547,7 +547,7 @@ pub(crate) async fn call( let consensus_branch_id = consensus::BranchId::for_height( wallet.params(), tx.height() - .map(BlockHeight::from_u32) + .and_then(|height| u32::try_from(height).ok().map(BlockHeight::from_u32)) .unwrap_or(mempool_height), ); let tx = diff --git a/zallet/src/components/json_rpc/methods/recover_accounts.rs b/zallet/src/components/json_rpc/methods/recover_accounts.rs index 3957861e..dccdb53a 100644 --- a/zallet/src/components/json_rpc/methods/recover_accounts.rs +++ b/zallet/src/components/json_rpc/methods/recover_accounts.rs @@ -7,7 +7,8 @@ use jsonrpsee::{ }; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use zaino_state::FetchServiceSubscriber; +use zaino_proto::proto::service::BlockId; +use zaino_state::{FetchServiceSubscriber, LightWalletIndexer}; use zcash_client_backend::{ data_api::{Account as _, AccountBirthday, WalletRead, WalletWrite}, proto::service::TreeState, @@ -87,8 +88,10 @@ pub(crate) async fn call( let treestate = { let treestate = chain - .fetcher - .get_treestate(treestate_height.to_string()) + .get_tree_state(BlockId { + height: u64::from(u32::from(treestate_height)), + hash: vec![], + }) .await .map_err(|e| { LegacyCode::InvalidParameter.with_message(format!( @@ -105,20 +108,8 @@ pub(crate) async fn call( height: u64::try_from(treestate.height).map_err(|_| RpcErrorCode::InternalError)?, hash: treestate.hash, time: treestate.time, - sapling_tree: treestate - .sapling - .commitments() - .final_state() - .as_ref() - .map(hex::encode) - .unwrap_or_default(), - orchard_tree: treestate - .orchard - .commitments() - .final_state() - .as_ref() - .map(hex::encode) - .unwrap_or_default(), + sapling_tree: treestate.sapling_tree, + orchard_tree: treestate.orchard_tree, } }; diff --git a/zallet/src/components/json_rpc/methods/view_transaction.rs b/zallet/src/components/json_rpc/methods/view_transaction.rs index dec68913..246b501c 100644 --- a/zallet/src/components/json_rpc/methods/view_transaction.rs +++ b/zallet/src/components/json_rpc/methods/view_transaction.rs @@ -959,7 +959,7 @@ impl WalletTxInfo { let tx_index = block .vtx .iter() - .find(|ctx| ctx.hash == tx.txid().as_ref()) + .find(|ctx| ctx.txid == tx.txid().as_ref()) .map(|ctx| u32::try_from(ctx.index).expect("Zaino should provide valid data")); ( diff --git a/zallet/src/components/sync.rs b/zallet/src/components/sync.rs index b2f1c897..c5832bc0 100644 --- a/zallet/src/components/sync.rs +++ b/zallet/src/components/sync.rs @@ -91,6 +91,10 @@ pub(crate) use error::SyncError; mod steps; use steps::ChainBlock; +fn zaino_tx_height_to_block_height(height: i32) -> Option { + u32::try_from(height).ok().map(BlockHeight::from_u32) +} + #[derive(Debug)] pub(crate) struct WalletSync {} @@ -601,7 +605,7 @@ pub(crate) async fn fetch_transparent_utxos( let parse_height = tx_obj .height() - .map(BlockHeight::from_u32) + .and_then(zaino_tx_height_to_block_height) .unwrap_or(mined_height); let tx = match Transaction::read( tx_obj.hex().as_ref(), @@ -681,7 +685,7 @@ async fn data_requests( Ok(zebra_rpc::methods::GetRawTransaction::Raw(_)) => unreachable!(), Ok(zebra_rpc::methods::GetRawTransaction::Object(tx)) => tx .height() - .map(BlockHeight::from_u32) + .and_then(zaino_tx_height_to_block_height) .map(TransactionStatus::Mined) .unwrap_or(TransactionStatus::NotInMainChain), // TODO: Zaino is not correctly parsing the error response, so we @@ -712,7 +716,8 @@ async fn data_requests( // with an enum variant that should never occur. Ok(zebra_rpc::methods::GetRawTransaction::Raw(_)) => unreachable!(), Ok(zebra_rpc::methods::GetRawTransaction::Object(tx)) => { - let mined_height = tx.height().map(BlockHeight::from_u32); + let mined_height = + tx.height().and_then(zaino_tx_height_to_block_height); // TODO: Zaino should either be doing the tx parsing for us, // or telling us the consensus branch ID for which the tx is @@ -841,7 +846,7 @@ async fn data_requests( zebra_rpc::methods::GetRawTransaction::Object(tx) => tx, }; - let mined_height = tx.height().map(BlockHeight::from_u32); + let mined_height = tx.height().and_then(zaino_tx_height_to_block_height); // Ignore transactions that don't match the status filter. match (&req.tx_status_filter(), mined_height) { diff --git a/zallet/src/components/sync/steps.rs b/zallet/src/components/sync/steps.rs index 76e31bba..ff7cc5ee 100644 --- a/zallet/src/components/sync/steps.rs +++ b/zallet/src/components/sync/steps.rs @@ -262,7 +262,7 @@ async fn fetch_compact_block_inner( .into_iter() .map(|ctx| CompactTx { index: ctx.index, - txid: ctx.hash, + txid: ctx.txid, fee: ctx.fee, spends: ctx .spends diff --git a/zallet/src/network.rs b/zallet/src/network.rs index 3e42da7a..014c965f 100644 --- a/zallet/src/network.rs +++ b/zallet/src/network.rs @@ -76,7 +76,8 @@ impl Network { canopy: local_network.canopy.map(|h| h.into()), nu5: local_network.nu5.map(|h| h.into()), nu6: local_network.nu6.map(|h| h.into()), - nu6_1: None, + nu6_1: local_network.nu6_1.map(|h| h.into()), + nu6_2: local_network.nu6_2.map(|h| h.into()), nu7: None, }) } From 1022aad4ba76ddddc5103c7a263797c26c6662e4 Mon Sep 17 00:00:00 2001 From: Adam Tucker Date: Sun, 7 Jun 2026 17:15:00 -0600 Subject: [PATCH 2/3] Pin Zaino zero-size passthrough fix --- Cargo.lock | 8 ++++---- Cargo.toml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b07c48e7..9886fa06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7309,7 +7309,7 @@ dependencies = [ [[package]] name = "zaino-common" version = "0.1.1" -source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" +source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" dependencies = [ "hex", "nu-ansi-term", @@ -7326,7 +7326,7 @@ dependencies = [ [[package]] name = "zaino-fetch" version = "0.1.1" -source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" +source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" dependencies = [ "base64 0.22.1", "byteorder", @@ -7354,7 +7354,7 @@ dependencies = [ [[package]] name = "zaino-proto" version = "0.1.1" -source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" +source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" dependencies = [ "prost", "tonic", @@ -7368,7 +7368,7 @@ dependencies = [ [[package]] name = "zaino-state" version = "0.2.0" -source = "git+https://github.com/valargroup/zaino.git?rev=59b477e0595e96bb866186aeb8a055edacb00e76#59b477e0595e96bb866186aeb8a055edacb00e76" +source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" dependencies = [ "arc-swap", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index d2afda36..9c1fe724 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -207,10 +207,10 @@ age = { git = "https://github.com/str4d/rage.git", rev = "92f437bc2a061312fa6633 zewif = { git = "https://github.com/zcash/zewif.git", rev = "f84f80612813ba00a0a8a9a5f060bd217fa981cc" } zewif-zcashd = { git = "https://github.com/zcash/zewif-zcashd.git", rev = "9c72d1805c269f88ea5caa4eb33c6d38013b9776" } -zaino-common = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } -zaino-fetch = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } -zaino-proto = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } -zaino-state = { git = "https://github.com/valargroup/zaino.git", rev = "59b477e0595e96bb866186aeb8a055edacb00e76" } +zaino-common = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } +zaino-fetch = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } +zaino-proto = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } +zaino-state = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } [profile.release] debug = "line-tables-only" From 2f3a7e88932497e55fb4d8526122342e4114c274 Mon Sep 17 00:00:00 2001 From: Adam Tucker Date: Sun, 7 Jun 2026 19:33:43 -0600 Subject: [PATCH 3/3] Pin Zaino readiness fix --- Cargo.lock | 8 ++++---- Cargo.toml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9886fa06..46838ff8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7309,7 +7309,7 @@ dependencies = [ [[package]] name = "zaino-common" version = "0.1.1" -source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" +source = "git+https://github.com/valargroup/zaino.git?rev=e48ae9722e32f994f441992e1a70bc5ea737460e#e48ae9722e32f994f441992e1a70bc5ea737460e" dependencies = [ "hex", "nu-ansi-term", @@ -7326,7 +7326,7 @@ dependencies = [ [[package]] name = "zaino-fetch" version = "0.1.1" -source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" +source = "git+https://github.com/valargroup/zaino.git?rev=e48ae9722e32f994f441992e1a70bc5ea737460e#e48ae9722e32f994f441992e1a70bc5ea737460e" dependencies = [ "base64 0.22.1", "byteorder", @@ -7354,7 +7354,7 @@ dependencies = [ [[package]] name = "zaino-proto" version = "0.1.1" -source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" +source = "git+https://github.com/valargroup/zaino.git?rev=e48ae9722e32f994f441992e1a70bc5ea737460e#e48ae9722e32f994f441992e1a70bc5ea737460e" dependencies = [ "prost", "tonic", @@ -7368,7 +7368,7 @@ dependencies = [ [[package]] name = "zaino-state" version = "0.2.0" -source = "git+https://github.com/valargroup/zaino.git?rev=e2b356a95467b38742b52ad241d35a1557bc28d2#e2b356a95467b38742b52ad241d35a1557bc28d2" +source = "git+https://github.com/valargroup/zaino.git?rev=e48ae9722e32f994f441992e1a70bc5ea737460e#e48ae9722e32f994f441992e1a70bc5ea737460e" dependencies = [ "arc-swap", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 9c1fe724..1ef0e590 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -207,10 +207,10 @@ age = { git = "https://github.com/str4d/rage.git", rev = "92f437bc2a061312fa6633 zewif = { git = "https://github.com/zcash/zewif.git", rev = "f84f80612813ba00a0a8a9a5f060bd217fa981cc" } zewif-zcashd = { git = "https://github.com/zcash/zewif-zcashd.git", rev = "9c72d1805c269f88ea5caa4eb33c6d38013b9776" } -zaino-common = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } -zaino-fetch = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } -zaino-proto = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } -zaino-state = { git = "https://github.com/valargroup/zaino.git", rev = "e2b356a95467b38742b52ad241d35a1557bc28d2" } +zaino-common = { git = "https://github.com/valargroup/zaino.git", rev = "e48ae9722e32f994f441992e1a70bc5ea737460e" } +zaino-fetch = { git = "https://github.com/valargroup/zaino.git", rev = "e48ae9722e32f994f441992e1a70bc5ea737460e" } +zaino-proto = { git = "https://github.com/valargroup/zaino.git", rev = "e48ae9722e32f994f441992e1a70bc5ea737460e" } +zaino-state = { git = "https://github.com/valargroup/zaino.git", rev = "e48ae9722e32f994f441992e1a70bc5ea737460e" } [profile.release] debug = "line-tables-only"