[ZIP-233] Network Sustainability Mechanism: Burning#1
Closed
giddie wants to merge 131 commits into
Closed
Conversation
…to Domain implementation.
…ShieldedOutput trait
…textBytes, wrapping the AEADBytes in a struct
This PR updates the `zcash_primitives` crate to align with the recent changes in the `sapling-crypto` crate, which was updated to sync with the latest changes in `zcash_note_encryption`. ### Changes: - Updated the usage of `enc_ciphertext` to call `.as_ref()` to match the new return type. - Adjusted the import of the `ENC_CIPHERTEXT_SIZE` constant to use the definition from `sapling-crypto` instead of `zcash_note_encryption`, as the constant has been moved to `sapling-crypto`. Co-authored-by: Dmitry Demin <dmitry@qed-it.com>
This updates the test vectors to be of version 6 (as opposed to version 7). It also provides a new file for the V6 test vectors, an improvement to having them in the same file but behind feature flags. It provides a error for when the asset description string is not a UTF8 encoding.
ZSA has been implemented across the entire codebase, including: - **TransactionData** now contains two extra components: `OrchardZsaBundle` and `IssueBundle`. - Serialization and deserialization of the new components have been added. - Digests of the new components are considered in the calculation of `sighash`/`txid`. The **Nu7 network upgrade** has been introduced. However, the "nu6" `zcash_unstable` flag is currently used to separate ZSA from the regular build. All Nu7-related flags are annotated with `/* TODO nu7 */` comments. - Builder methods for ZSAs have been implemented. - Wallet-related functionality (in `zcash_client_backend`, `zcash_client_sqlite`) is currently disabled, as they do not yet support ZSAs.
This makes the changes that are required after the merging of QED-it/orchard#113
…update prost dependency version (#75) Updates the repository to ensure compatibility with the `zebra` project. ## Changes: 1. Uncommented the `zcash_client_backend` crate in the root `Cargo.toml`. Initially it was commented out under the assumption that it wasn't utilized by Zebra. However, it has been identified that Zebra relies on this crate. 2. Synchronized `zcash_client_backend` crate with `zcash_note_encryption` updates. 3. Updated the `prost` dependency version in the root `Cargo.toml` (the pinned version 0.12.3 caused compatibility issues with Zebra’s dependencies, preventing compilation).
Add Regtest network
azmr
pushed a commit
that referenced
this pull request
Nov 25, 2025
* add stubbed version of getting balances for wallet summary * adds helper methods at top level and partially implements filter for unspent notes * add map to store block end heights for tree shards * add orchard as well * accounts table * implement block_height_extrema * add impl of update_chain_tip * remove some unwraps from get_summary * add impls for get_max_checkpointed_height * add impl of get_target_and_anchor_heights * fix get_transaction * add impl for get_min_unspent_height * add get_memo impl * adds comment for truncate_to_height. Will implement this in future * tracing debug * yep * update last_Scanned_height outside tx loop * add updating orchard balance * clippy * add impls for inputSource trait * add sorting when selecting notes * Update Cargo.toml * serde block * allow constructing nullifiers * serde notes * serde transactions * top level in progress * scan queue * export error type * start account serde * serde account birthday * move serialization to separate module * clippy fix * skip * add unimplemented warnings for account import from seed phrase * remove unused imports * Remove Uivk * serde ufvk * Keep track of current diversifier idx * serde account * serde accounts * only serde left is on shard tree * almost done shardstore * use new trait * remote visit_seq from orchard note wrapper * remove unused array module * more nullifier to use trait * serialize shard store. need to deser now * serde memoryshardstore * serd shardtree * bring remaing code across for scanning * add orchard tree handling in put_blocks * only import if orchard enabled * Network Wrapper * done! cleanup time * clippy * break into modules * clippy fix * fmt * fmt * clean up frontierwrapper structs * add implementation of DataStoreFactor for memwallet * add back loading accounts from seeds only for testing * switch to use mutable ref in testing trait * partial implementation of scan_complete * fix bug from attepting to iterate over a reverse range in Rust * type safe tree and frontier serde * fmt * rename * more rename * fix issue with non-inclusive range * more cleanup * forgot to import * more clean * add proper recording of spend notes and memos * add partially implemented get_tx_history * ByteArray Trait * more refactor * clippy\ fix * Rename * cippy cix * proptest for shardtree serde * add fix for orchard support * more clean * donezo * clippy * add wasm-bindgen feature * move to upstream imt and shardtree patch * migrate 3 more tests across * adds new trait method to implement change_note_spends_succeed * Serde SendNoteTable * clippy fix * fmt * remove comment * Fix tree serialization when wallet has just been initialized * remove the raw field on get_tx_history as it broke tests * fix issue querying notes * add error handling * migrate send_multi_step_proposed_transfer * fix wallet deser * add data_api methods to allow fetching historical checkpoints * global fmt * fix clippy lints * fix test * add logic for detecting pending notes in wallet summary * fix serialization * fmt * change_note_spends_succeed passing for sapling! * add scan progress * add more comprehensive scan progress calculatioon * add unscanned ranges functionality * feature gate orchard import * add updating scan ranges on wallet import * fix bug in shard_end for updating ranges * passing birthday range scan check * cargo lock * screen out locked transactions when computing balance * fix missing nullifiers for orchard * retrievel all inputs in get_spendable_notes rather than filtering * rewrite note selection strategy to be split per pool * fix checkpoint getter for tests * fix clippy lints * switch from maybe_rayon to rayon for memwallet * remove proptest genereated file * move MemBlockCache to own module outside of testing * implement BlockCache and BlockSource * works! * change back batch size of batchrunners until further experimentation * TODO on for_each_checkpoint on sql store * switch from parking_lot to wasm_sync * add new records for transaction and add_partial method * mostly complete adding transparent output logic * remove debug * re add async trait * remove comment * test passing for shielding a transparent output * add start of implementation of data retrieval queue * add the extra features to wallet_read we need for tests * migrate tests to librustzcash and make generic over wallet impl * add test module for transparent tests * implement get_transparent_balance and get first transparent test passing * fix sqllite test * add truncate_to_height and gets transparent tests passing * global fmt * remove all IntoIterator impls * handle unwrap in get_spendable_transparent_outputs * serde on transparent related tables * fmt sqlite changes * remove incorrect todo * proto * make all methods in sync public * add from impl * adds serialization attributes to librustzcash types * format * add serialization to enable proposals to be serialized * put client memory back * add derives for noteId * add derives for FeeRule * add NoteSummary type to serialize notes * proto * fix transparent_balance_across_shielding * fix account delta * remove prints * handle ephemeral addrs * Add todo * default legacy transparent * filling in store_decrypted_tx * funding_accounts * multi_step passes * fmt * remove some prints * fmt * fmt * fmt * fix suggestions * ensure tests build with all feature flag combinations * removes serde skip from addresses field for an account and adds intermediate types to enable serialization * merge upstream and fix missing implementations. tests not passing * return a zero recovery ratio for now * fixing is_change error * fix nullifier spend detection logic * clippy lint * add tx account detection for utxo sending only. All tests passing * Willem's refactor * re-add .cargo * re-add editor config * keep willems branch with main * fix proto * remove whitespace --------- Co-authored-by: Willem Olding <willemolding@gmail.com>
aphelionz
pushed a commit
that referenced
this pull request
May 28, 2026
…14868de..23f0768ea 23f0768ea Release lightwallet-protocol v0.4.0 41156c767 Merge pull request zcash#11 from zcash/feature/get_mempool_tx_pools 7c130e883 Add `lightwalletProtocolVersion` field to `LightdInfo` struct. edbb726d7 Apply suggestion from code review 38fddd73b Apply suggestions from code review 0250f2720 Add pool type filtering to `GetMempoolTx` argument. 54ccaadd5 Change semantics of pool-based pruning of compact transactions from "may prune" to "must prune". b0667ec99 Merge pull request zcash#9 from zcash/2025-11-doc-TransparentAddressBlockFilter f3fea7bd4 doc: TransparentAddressBlockFilter doesn't include mempool a67dd323a Merge pull request zcash#8 from zcash/2025-11-lightdinfo-upgrade-info 11da4b7e3 add next upgrade info to LightdInfo structure (GetLightdInfo) 42cd8f720 Transparent data docs update (zcash#7) c0cf957ac Merge pull request zcash#5 from zcash/2025-11-comments 912fc3609 Minor clarification in GetBlockRange documentation. 6b03f2cce Documentation (comments) only d978256a2 Merge pull request #1 from zcash/compact_tx_transparent 7eeb82e7c Merge pull request zcash#4 from zcash/add_changelog a95359dc9 Apply suggestions from code review 592b637a8 Add transparent data to the `CompactBlock` format. 9d1fb2c41 Add a CHANGELOG.md that documents the evolution of the light client protocol. 180717dfa Merge pull request zcash#3 from zcash/merge_librustzcash_history 450bd4181 Merge the history of the .proto files from `librustzcash` for complete history preservation. a4859d11d Move protobuf files into place for use in `zcash/lightwallet-protocol` 2e66cdd9e Update zcash_client_backend/proto/service.proto eda012519 fix comment f838d10ad Add gRPC LightdInfo Donation Address db12c0415 Merge pull request zcash#1473 from nuttycom/wallet/enrichment_queue 698feba96 Apply suggestions from code review 20ce57ab3 zcash_client_backend: Add `block_height` argument to `decrypt_and_store_transaction` a6dea1da8 Merge pull request zcash#1482 from zancas/doc_tweak 4d2d45fc9 fix incorrect doc-comment e826f4740 update CompactBlock doc-comment, to cover non-Sapling shielded notes, and addresses e9a6c00bf Various documentation improvements 988bc7214 Merge pull request zcash#872 from nuttycom/feature/pre_dag_sync-suggest_scan_ranges 58d07d469 Implement `suggest_scan_ranges` and `update_chain_tip` a9222b338 Address comments from code review. e20310857 Rename proto::compact::{BlockMetadata => ChainMetadata} ac63418c5 Reorganize Sapling and Orchard note commitment tree sizes in CompactBlock. 0fdca14f1 zcash_client_backend: Add note commitment tree sizes to `CompactBlock` serialization. 2a0c2b8b7 zcash_client_backend: Add gRPC bindings behind feature flag 1342f0480 zcash_client_backend: Address compact_formats.proto comments 68aa4e01b zcash_client_backend: Bring in latest `compact_formats.proto` e712eb1bc Add prevHash field to CompactBlock 440384c3e Build protobufs for compact formats git-subtree-dir: zcash_client_backend/lightwallet-protocol git-subtree-split: 23f0768ea4471b63285f3c0e9b6fbb361674aa2b
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
These are the
librustzcashchanges required for ZIP-233 (NSM - Burning), which adds a transaction field forburnAmount. This is essentially a copy of zcash#1567 that I'm posting here for convenience. Unfortunately this also includes a diff with upstream. It briefly tried rebasing on thezsa1branch, but it looks like it could be messy. However, I can take some time to do this if you'd rather not merge with upstreamlibrustzcashat this time?