Skip to content

Conversation

@dmidem
Copy link
Collaborator

@dmidem dmidem commented Dec 3, 2025

Bring zsa-swap up to date with the latest zsa1 (including its orchard / librustzcash updates) by merging in the cleaned-up multiple action group branches: multiple-ag and zsa-integration-demo-multiple-ag, via zsa-swap-multiple-ag.

No functional changes to asset state management or the Orchard shielded layout are expected compared to the existing zsa-swap, aside from minor refactoring. This is a branch/merge cleanup plus conflict and compile fixes so the swap code sits on the updated base.

seniakalma and others added 15 commits August 11, 2025 15:58
Fix git info fetching of the git tag and commit hash by using docker
arguments
Update the deploy ecs workflow on zsa-integration-demo by the latest
file from zsa1 branch
* Defines and implements the issued asset state types

* Adds issued assets to the finalized state

* Validates issuance actions and burns before committing blocks to a non-finalized chain.

* Adds `issued_assets` fields on `ChainInner` and `ContextuallyValidatedBlock`

* Adds issued assets map to non-finalized chains

* adds new column family to list of state column families

* Updates AssetState, AssetStateChange, IssuedAssetsOrChange, & SemanticallyVerifiedBlock types, updates `IssuedAssetsChange::from_transactions()` method return type

* Fixes tests by computing an `IssuedAssetsChange` for conversions to CheckpointVerifiedBlock

* fixes finalization checks

* Adds documentation to types and methods in `asset_state` module, fixes several bugs.

* Fix compilation errors that appeared after the previous merge

* Avoid using NonEmpty in orchard_zsa/issuance

* Fix BurnItem serialization/deserializartioon errors (use LE instead of BE for amount, read amount after asset base)

* Make a minor fix and add FIXME comment in orchard_flavor_ext.rs

* Fix the sign of burn value in SupplyChange::add in orchard_zsa/asset_state, add a couple of FIXMEs

* Fix the 'transactions must have only one burn item per asset base' error in the  function of the  crate (this may not be a fully correct fix). Add a couple of FIXME comments explaining the problem.

* Use NoteValue from the orchard crate for BurnItem amount instead of u64 to prevent serialization errors and enable defining BurnItem in orchard, facilitating its reuse along with related functions

* Use BurnItem::from instead of try_from

* Fix a compilation error for the previous commit ('Use BurnItem::from instead of try_from')

* Fix a compilation error for the previous commit ('Use BurnItem::from instead of try_from') (2)

* Modify ValueCommitment::with_asset to accept value as a NoteValue instead of amount (with_asset is used to process orchard burn) - this allows avoiding the use of try_into for burn in binding_verification_key function

* Adds TODOs

* Adds state request/response variants for querying asset states

* Adds a `getassetstate` RPC method

* Adds snapshot test

* Addesses some FIXMEs and replaces a couple others with TODOs.

* Removes `issued_assets_change` field from `SemanticallyVerifiedBlock`

* Temporarily disable specific Clippy checks for Rust 1.83.0 compatibility

* Disable clippy warning about doc comment for empty line

* Update Orchard ZSA consensus tests to calculate and check asset supply

* Rename ZSA workflow tests (including file, constant and variable names) to Orchard ZSA

* Add amount method to BurnItem and make BurnItem pub (visible for other crates)

* Fix Orchard ZSA workflow tests to make it compilable with getblocktemplate-rpcs feature enabled

* Fix clippy error

* Add rust-toolchain.toml with Rust version 1.82.0 to avoid clippy errors came with Rust 1.83.0

* Fix revert_chain_with function in zebra-state to support V6/OrchardZSA

* Minor fix in comments

* Rename transaction_to_fake_v5 function to transaction_to_fake_min_v5 and panic if V6 passed into it

* Minor fixes in comments

* Revert "Minor fix in comments"

This reverts commit 59fec59.

* Revert "Rename transaction_to_fake_v5 function to transaction_to_fake_min_v5 and panic if V6 passed into it"

This reverts commit 2ce58ef.

* Revert " Minor fixes in comments"

This reverts commit fac3abd.

* Fix remaining merge conflicts

* Fix compilation erros

* Fix clippy warning

* Fix compilation errors appeared after the previous merge

* Fix compilation error

* Fix compilation errors in zebra-state happened without tx-v6 feature flag enabled

* Allow finalizing issued assets via the issue action when no notes are provided and the finalize flag is set to true

* Refactor orchard_workflow_blocks_zsa.rs (zebra-test crate) to read test data from files, introduce and use OrchardWorkflowBlock there

* Fix clippy errors

* Copy tests from zsa-issued-assets-tests here and fix compilation errors

* Temporarily comment out verify_issuance_blocks_test test (it fails now)

* Rename remaining tx-v6 flags to tx_v6

---------

Co-authored-by: Arya <aryasolhi@gmail.com>
* Update orchard and librustzcash, align Zebra with upstream API/module changes

* zebra-chain: add ZIP-230 vSighashInfo(V0) serialization/deserialization for V6

* zebra-chain: add ZIP-230/ZIP-246 versioned signature support

* zebra-chain: add NU6_1 activation heights

* zebra-chain: add missing new sapling_v6.rs module

* Update ZSA test blocks

* Update ZSA test blocks again and refactor orchard_zsa_workflow_blocks.rs to use the include_str! macro for storing test blocks in external files

* Add 1-hour limit for cargo test in CI and a specific 1-minute limit for the Orchard ZSA workflow test in zebra-consensus to prevent it from getting stuck when block heights are not sequential

* Fix compilation error from the previous commit

* Update orchard-zsa-shielded-data test vectors

* Update get_blockchain_info@mainnet_10.snap test snapshot

* Update get_blockchain_info@testnet_10.snap test snapshot

* Make fixes according to #92 review comments

* zebra-chain: refactor versioned_sig_v0_roundtrip test according to #92 review comments

* Add testnet-singlenode-deploy

* Add testnet-singlenode-deploy to dockerignore exceptions

* Add TODO for missing ZSA ZIP-317 logical action terms

* Upgrade librustzcash crate revisions in Cargo.toml/Cargo.lock

* Fix according to the second #92 review comments

---------

Co-authored-by: alexeykoren <2365507+alexeykoren@users.noreply.github.com>
@PaulLaux PaulLaux changed the title Sync zsa-swap with latest zsa1 via multiple-ag / zsa-integration-demo-multiple-ag Zsa-swap based on zsa-integration-demo (+global state) + multiple-ag Dec 8, 2025
@PaulLaux PaulLaux changed the title Zsa-swap based on zsa-integration-demo (+global state) + multiple-ag ZSA-swaps based on zsa-integration-demo (+global state) + multiple-ag Dec 8, 2025
@PaulLaux PaulLaux added the demo label Dec 8, 2025
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.

4 participants