Skip to content

chore(main): release zkool 7.0.0#995

Closed
hhanh00 wants to merge 912 commits into
mainfrom
release-please--branches--main--components--zkool
Closed

chore(main): release zkool 7.0.0#995
hhanh00 wants to merge 912 commits into
mainfrom
release-please--branches--main--components--zkool

Conversation

@hhanh00

@hhanh00 hhanh00 commented Jun 2, 2026

Copy link
Copy Markdown
Owner

🤖 I have created a release beep boop

7.0.0 (2026-06-02)

⚠ BREAKING CHANGES

  • db schema for categories and transaction value in fiat (#524)
  • folder and db versioning (#468)

Features

Bug Fixes


This PR was generated with Release Please. See documentation.

hhanh00 added 30 commits January 2, 2026 00:44
hhanh00 and others added 20 commits May 31, 2026 13:01
…tree

ZIP-227: first issuance includes a zero-value reference note with a
well-known recipient. Its cmx must enter the Orchard Merkle tree but
we must not create a wallet note for it. Set owner=None for value=0
notes so try_decrypt naturally skips them.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…upport

- Sync ZSA notes from orchard_buckets to input_pools[2] for the builder,
  so ZSA notes become actual spends (fixes NoSplitNoteAvailable).
- Count non-ZEC inputs in FeeManager so orchard action count is correct.
- Add per-asset orchard change outputs to fee estimation.
- Add dummy ZEC recipient (amount 0, own orchard address) when ZSA
  assets present but no ZEC output would exist.
- Sort recipients ZEC-first so the builder processes ZEC before ZSA.
- Show asset name and value in orchard input log lines.
- Fix COALESCE zero-asset-base assert in get_orchard_note by treating
  [0;32] as AssetBase::zatoshi().
- Wire orchard_buckets into fill_single_receivers for asset-aware
  per-asset input selection and change computation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Remove if asset_change > 0 guard so a 0-value change output is always
  emitted for each asset, keeping the fee estimator pre-count in sync
- Fix ZSA closure in build_for_pczt: was |_| false, now correctly
  identifies non-ZEC assets via AssetBase::zatoshi()

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Revert plan.rs to pre-ZSA baseline (cc0c424f) and re-add ZSA support as an
isolated pre-processing block that does not touch the core ZEC-only code path.

Key changes:
- ZSA recipients are partitioned out before the ZEC fill_single_receivers
- ZSA notes are selected per-asset from orchard notes, tracked in fee_manager,
  and buffered for flush after the ZEC block
- When ZSA is present, change_pool is forced to orchard (2) — the ZEC change
  output also satisfies ZIP-226, removing the need for a dummy ZEC recipient
- ZSA-only transactions use a dummy recipient with track_outputs=false to
  drive ZEC note selection for fees without polluting the output list
- Orchard outputs now use the correct AssetBase (not always zatoshi)
- fill_single_receivers gains a track_outputs parameter for the dummy path

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ZSA change outputs create split spends via IoFinalizer. The PCZT package
now tracks these split spend action indices, and the FROST signer includes
them when applying signatures. Without this, ZSA transactions with change
outputs fail with MissingSpendAuthSig during FROST signing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…de migration

- Remove #[cfg(zcash_unstable = "nu7")] from OrchardZSA match arms in
  memo.rs, mempool.rs, and zebra.rs — ZSA is now always compiled
- Remove unused AssetId import from issuance.rs
- Switch zcash-trees from local path to git dependency in Cargo.toml
- Comment out [patch.crates-io] section in Cargo.toml
- Update Cargo.lock with git source entries for all overridden crates
- Delete outdated test files (test_compact_decrypt.rs, test_orchard_decrypt.rs)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…e manual code signing

- Remove FlutterGeneratedPluginSwiftPackage SPM references and
  XCLocalSwiftPackageReference section
- Add [CP] Copy Pods Resources build phase for CocoaPods resources
- Switch code signing from Apple Development/Automatic to Developer
  ID Application/Manual with zkool provisioning profile

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…config.toml

Move the `--cfg zcash_unstable="nu7"` rustflags from the workspace
.cargo/config.toml into the CI build workflow as an env variable.
This follows the approach of the reverted android fix (4aa751f) and
ensures the flag is applied only in CI builds rather than globally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Android build uses cargokit's android_environment.dart which sets
CARGO_ENCODED_RUSTFLAGS for NDK linker workarounds. When set, Cargo
ignores RUSTFLAGS entirely, so --cfg zcash_unstable="nu7" was silently
dropped during Android builds.

Switch to CARGO_ENCODED_RUSTFLAGS which _libGccWorkaround already reads
and appends to, so the flag merges correctly with the workaround flags.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
cargokit's android_environment.dart sets CARGO_ENCODED_RUSTFLAGS which
causes Cargo to ignore RUSTFLAGS. Use CARGO_ENCODED_RUSTFLAGS instead.
The \u001f YAML escape produces the Unit Separator byte required by
Cargo's encoded format.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add ZsaHolding type and list_zsa_holdings API (Rust + Flutter bindings)
- Add ZSA holdings page with per-asset balance view
- Add IssueAssetPage for new token issuance
- Add currency dropdown to send page (ZEC + ZSA selection)
- Support sending ZSA tokens with correct asset_base/asset_name
- Fix missing split-spend signing in sign_transaction (orchard_split_spend_indices)
- Share get_zsa_holdings between Flutter API and GraphQL assets query
- Refactor Recipient to include assetBase field

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add zsa_value + asset_id columns to transactions table
- Compute ZSA summary in summarize_tx (first asset net amount)
- Add asset_display helper fn (resolved from name or desc_hash, fallback ZEC)
- Tx struct: zsaValue, assetId, assetDisplay fields
- TxNote/TxSpend: idAsset + assetDisplay fields (join assets in queries)
- TransactionTile shows ZSA value below ZEC amount
- Tx detail page shows asset name and raw value for ZSA notes/spends
- Fix calculate_balance to only count ZEC notes (id_asset IS NULL)
- Fix max_spendable to only count ZEC notes
@hhanh00 hhanh00 force-pushed the release-please--branches--main--components--zkool branch from cccca39 to 5a071fe Compare June 2, 2026 07:35
@hhanh00 hhanh00 force-pushed the release-please--branches--main--components--zkool branch from 5a071fe to 115ee57 Compare June 2, 2026 07:49
- Activate NU7 only when database name contains "zsa" for v6 transactions
- Use OrchardVanilla proving key for non-ZSA transactions
- Use OrchardZSA proving key for ZSA-enabled transactions
- Prevent "bad tx header" error from LWD with non-ZSA databases
- Prevent ConstraintSystemFailure during proof generation

Fixes transaction compatibility issues after ZSA work:
- Non-ZSA databases (regtest.db) now use v5 format with OrchardVanilla
- ZSA databases use v6 format with OrchardZSA circuit
- Both transaction versions work with their respective proving keys

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hhanh00 hhanh00 force-pushed the release-please--branches--main--components--zkool branch from 115ee57 to 0cb54f8 Compare June 2, 2026 08:19
@hhanh00 hhanh00 closed this Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants