Commit Graph

3196 Commits

Author SHA1 Message Date
str4d 64d657ed31
Merge pull request #1033 from zcash/sapling-params-refactor
Introduce newtypes for Sapling circuit parameters
2023-11-08 21:01:30 +00:00
str4d e4b9d73d0c
Merge pull request #1003 from nuttycom/wallet/reusable_input_selection
zcash_client_backend: Factor out `InputSource` from `WalletRead`
2023-11-08 20:20:03 +00:00
Kris Nuttycombe aa063ae3fd zcash_client_backend: Factor out input source traits from `WalletRead`
Prior to this change, it's necessary to implement the entirety of the
`WalletRead` trait in order to be able to use the input selection
functionality provided by `zcash_client_backend::data_api::input_selection`.
This change factors out the minimal operations required for transaction
proposal construction to better reflect the principle of least authority
and make the input selection code reusable in more contexts.

In order to minimize the operations of the newly-created `InputSource`
and `ShieldingSource` traits, this change also removes the
`min_confirmations` field from transaction proposals, in favor of
storing explicit target and anchor heights. This has the effect of
limiting the lifetime of transaction proposals to `PRUNING_DEPTH -
min_confirmations` blocks.
2023-11-08 12:41:49 -07:00
Kris Nuttycombe c915c93862
Merge pull request #1017 from nuttycom/test_with_bundled_prover
Test with bundled prover instead of local prover.
2023-11-07 13:14:47 -07:00
Jack Grigg c56ab0001e Fix intra-doc link 2023-11-07 03:11:38 +00:00
Jack Grigg 82535112c2 zcash_primitives: Add Sapling verification key newtypes 2023-11-07 03:11:15 +00:00
Jack Grigg 1b9f26c984 Move `{Spend,Output}Parameters` from `zcash_proofs` to `zcash_primitives` 2023-11-07 03:09:25 +00:00
Jack Grigg 8bb9c4e7ba Move Sapling proof verifiers from `zcash_proofs` to `zcash_primitives` 2023-11-07 03:08:43 +00:00
str4d 7b4a0d858d
Merge pull request #1036 from zcash/sapling-builder-markers-clone
zcash_primitives: Implement `Clone` on bundle marker types
2023-11-05 19:13:54 +00:00
Jack Grigg 3b8c932ab9 zcash_primitives: Implement `Clone` on bundle marker types
This enables unauthorized Sapling bundles to be cloned, for example when
loading them into a `TransactionData` for signature hashing.
2023-11-04 04:27:07 +00:00
Kris Nuttycombe 7d1c0a29ca
Merge pull request #1035 from zcash/ci-reliable-wasm32-builds
CI: Build `wasm32-wasi` in a synthetic crate
2023-11-03 18:35:14 -06:00
Jack Grigg c846fba564 CI: Build `wasm32-wasi` in a synthetic crate
This target is incompatible with various crates that we use for testing.
However, when those crates are enabled via dev-dependencies, they become
part of the build graph and prevent us from building the regular code.

Downstream crates don't inherit dev-dependencies, so we simulate this
directly in CI.
2023-11-03 23:57:10 +00:00
str4d bf8868ca91
Merge pull request #1031 from zcash/sapling-prover-cleanups
Sapling prover cleanups
2023-11-03 22:23:29 +00:00
Kris Nuttycombe c0a0ef1653 zcash_proofs: Remove obsolete examples.
Since we now use the bundled prover everywhere, we no longer need
utilities to download Zcash parameters, which was the only purpose that
these examples were serving.
2023-11-03 16:15:24 -06:00
Kris Nuttycombe ea7c608f45 Remove parameters download step from github CI
Now that the tests use the bundled prover, we no longer need them to
download the zcash parameters files.
2023-11-03 16:13:38 -06:00
Kris Nuttycombe e27dcf498e Use the bundled prover rather than local params files for testing by default.
`fetch_params.sh` is now deprecated and the bundled proving parameters
from `wagyu-zcash-parameters` are used everywhere, so the tests should
follow suit.

Fixes #1016
2023-11-03 16:13:34 -06:00
Jack Grigg 6e42d839cd zcash_proofs: Remove `sapling::SaplingProvingContext` 2023-11-03 21:09:19 +00:00
Jack Grigg b20641ae58 zcash_primitives: Remove `sapling::prover::TxProver`
Removed
-------
- `zcash_primitives::sapling`:
  - `prover::TxProver` (use `SpendProver` and `OutputProver` instead).
  - `prover::mock::MockTxProver` (use `MockSpendProver` and `MockOutputProver`
    instead).
2023-11-03 21:08:37 +00:00
Kris Nuttycombe 7154e65864
Merge pull request #1030 from zcash/changelog-cleanups
Changelog cleanups
2023-11-03 14:49:45 -06:00
Jack Grigg 8e0e77b0a0 zcash_client_backend: Remove `fees::ChangeError::map` from the public API
It is undocumented, unused outside of this crate, and unreleased, so we
make it crate-private for now.
2023-11-03 00:56:56 +00:00
Jack Grigg a77b6c631c Add missing unreleased changelog entries 2023-11-03 00:56:56 +00:00
Jack Grigg bed5bc6cf6 Clean up unreleased changelog entries 2023-11-03 00:56:26 +00:00
str4d 44c64e1fb9
Merge pull request #1023 from zcash/741-sapling-builder-refactor
Refactor Sapling builder to separate out proof generation
2023-11-02 23:41:31 +00:00
Jack Grigg b2ff29db78 Refactor Sapling builder to separate out proof generation
Closes zcash/librustzcash#741.
2023-10-31 22:01:34 +00:00
Kris Nuttycombe 13fb0a4819
Merge pull request #1019 from nuttycom/wallet/proposals_with_minconf
zcash_client_backend: Move `min_confirmations` into `Proposal`
2023-10-31 12:59:40 -06:00
Kris Nuttycombe 4cd26b7ea9 zcash_client_backend: Move `min_confirmations` into `Proposal`
This fixes an API issue whereby it was possible to execute a `Proposal`
with a different value of `min_confirmations` than that with which the
`Proposal` was constructed.
2023-10-31 10:38:52 -06:00
Daira Emma Hopwood be8daefb84
Merge pull request #1026 from nuttycom/wallet/remove_extfvk_api
zcash_client_backend: remove `WalletRead::is_valid_account_extfvk`
2023-10-28 19:21:58 +01:00
Kris Nuttycombe a0935b5ecd zcash_client_backend: remove `WalletRead::is_valid_account_extfvk` 2023-10-27 15:01:26 -06:00
Kris Nuttycombe 9627c806e4 zcash_client_backend: Pass `Proposal` values by reference. 2023-10-26 16:11:10 -06:00
Kris Nuttycombe 113f558b1f
Merge pull request #1018 from nuttycom/wallet/standard_fee_rule
Add an enumeration of standard fee rules.
2023-10-26 16:10:26 -06:00
Kris Nuttycombe 570ea48588 Apply suggestions from code review
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-26 15:24:45 -06:00
Kris Nuttycombe f1c08693a5 zcash_client_backend: Add propose_standard_transfer. 2023-10-25 08:08:49 -06:00
Kris Nuttycombe cc0cc2de84 zcash_primitives: add StandardFeeRule
`StandardFeeRule` is an enumeration of the standard fees that have
existed in the history of Zcash zips. It is provided to simplify
transition to new fee strategies; legacy elements of this enumeration
are introduced already-deprecated.
2023-10-25 08:08:49 -06:00
Kris Nuttycombe b3e0a19ce6
Merge pull request #1015 from nuttycom/sapling/note_value
zcash_primitives: Use sapling::NoteValue instead of bare u64
2023-10-24 17:23:19 -06:00
Kris Nuttycombe caee90dce9 `zcash_primitives`: Use sapling::NoteValue instead of bare u64 2023-10-24 16:36:56 -06:00
Kris Nuttycombe 077b011dd5
Merge pull request #1014 from nuttycom/wallet/nonnegative_txos
Use `NonNegativeAmount` for note and UTXO value fields
2023-10-24 16:23:40 -06:00
Kris Nuttycombe 9cd60c536e Apply suggestions from code review
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-24 13:11:35 -06:00
Kris Nuttycombe f7527e14c9 Use `NonNegativeAmount` for note and utxo value fields 2023-10-23 12:59:26 -06:00
ebfull 84eb0821de
Merge pull request #1021 from zcash/release-zcash_client_sqlite-0.8.1
Release zcash_client_sqlite 0.8.1
2023-10-19 12:24:46 -06:00
Sean Bowe 289f1fdf30 Release 0.8.1
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-19 18:26:11 +01:00
Daira Emma Hopwood 79946ea7c3
Merge pull request #1022 from daira/merge-release-zcash_client_sqlite-0.8.1
Merge release-zcash_client_sqlite-0.8.1
2023-10-19 18:12:42 +01:00
Daira Emma Hopwood 77ceb879e6 Merge remote-tracking branch 'origin/release-zcash_client_sqlite-0.8.1' 2023-10-19 01:16:24 +01:00
Sean Bowe b88adb4e82 Release 0.8.1 2023-10-18 14:58:03 -06:00
Daira Emma Hopwood 914c0ed5c9 Add regression test for incorrect note deduplication in `v_transactions`.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-18 14:54:46 -06:00
Kris Nuttycombe 2873dd4b60 zcash_client_sqlite: Fix incorrect note deduplication in `v_transactions`
The `v_transactions` view is built upon the set of received notes,
received note values being added to the balance for the transaction and
spent notes being deducted from this balance. This fixes an error
wherein if multiple identically-valued notes were spent in a
transaction, only one of those notes' values was being counted as having
been spent.
2023-10-18 14:54:31 -06:00
ebfull f70a4fe29e
Merge pull request #1020 from nuttycom/wallet/v_transactions_note_uniqueness
zcash_client_sqlite: Fix incorrect note deduplication in `v_transactions`
2023-10-18 09:36:42 -06:00
Daira Emma Hopwood 11e909a2d1 Add regression test for incorrect note deduplication in `v_transactions`.
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-18 00:41:34 +01:00
Kris Nuttycombe 0de652c687 zcash_client_sqlite: Fix incorrect note deduplication in `v_transactions`
The `v_transactions` view is built upon the set of received notes,
received note values being added to the balance for the transaction and
spent notes being deducted from this balance. This fixes an error
wherein if multiple identically-valued notes were spent in a
transaction, only one of those notes' values was being counted as having
been spent.
2023-10-13 15:28:50 -06:00
Kris Nuttycombe 29c676ff12
Merge pull request #1009 from tw0po1nt/fix_txn_builder_panic
Gracefully handle when given an Orchard-only UA
2023-10-12 18:15:36 -06:00
Kris Nuttycombe c4c2c59211
Merge pull request #1012 from nuttycom/wallet/proposal_change_memos
zcash_client_backend: Move change memos into the `ChangeValue` components of `Proposal`s
2023-10-12 11:51:08 -06:00