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
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
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
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
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
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
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
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
caee90dce9
`zcash_primitives`: Use sapling::NoteValue instead of bare u64
2023-10-24 16:36:56 -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
Kris Nuttycombe
a2b5c2c784
zcash_client_backend: Use `NonNegativeAmount` for fee and change amounts.
...
In order to use `uint64` for amounts that must be nonnegative in the
`proposal.proto` file, it is useful to update fee and change computation
to use `NonNegativeAmount` where possible.
2023-10-10 16:12:47 -06:00
Kris Nuttycombe
030c1825a8
Merge pull request #1011 from nuttycom/wallet/note_identifiers
...
Make `ReceivedSaplingNote` internals private, and use (TxId, output_index) for note identifiers.
2023-10-10 07:30:33 -06:00
zancas
4bd3259ad0
Add a MARGINAL_FEE constant for the ZIP 317 marginal fee
2023-10-09 15:23:55 -06:00
sasha
74840829c8
zcash_client_backend: Make `ReceivedSaplingNote` internals private.
...
This also adds the txid and index to `ReceivedSaplingNote` for use as a
globally identifier for the note.
2023-10-09 12:22:12 -06:00
Jack Grigg
e1a4238a71
zcash_primitives: Add helper impls of `{Try}MapAuth` for closures
2023-10-06 23:48:27 +00:00
Jack Grigg
65efee1a16
zcash_primitives: Add `sapling::Bundle::try_map_authorization`
2023-10-06 23:46:02 +00:00
Jack Grigg
b09b435135
zcash_primitives: Change `sapling::MapAuth` to take `&mut self`
2023-10-06 23:43:43 +00:00
Jack Grigg
241a1a3660
zcash_primitives: Add some more `Clone` and `Debug` impls
2023-10-06 22:05:49 +00:00
Jack Grigg
04aa5a044b
zcash_primitives: Add `MockSpendProver` and `MockOutputProver`
...
These are analogues of `MockTxProver` in that they implement the
corresponding Sapling prover traits.
2023-10-06 20:31:31 +00:00
Jack Grigg
296f75954b
Add `SpendProver::encode_proof` and `OutputProver::encode_proof`
2023-10-06 20:19:41 +00:00
Kris Nuttycombe
e6fa567332
Merge pull request #1000 from zingolabs/add_debugs_to_inputs
...
add Debug to transaction builder-reported types
2023-10-04 09:15:29 -06:00
Kris Nuttycombe
b73c51f974
Merge pull request #1004 from zingolabs/add_fee_getter
...
Add fee getter
2023-10-03 12:04:29 -06:00
zancas
b9f8ec8ed2
add pub getter to transaction builder
...
use getter in original context to DRY
add doc-comment
Minor cleanup & documentation fixes.
Co-Authored-By: Daira Emma Hopwood <daira@jacaranda.org>
2023-10-03 11:13:06 -06:00
Jack Grigg
0d46fe72cc
zcash_primitives: Introduce an `OutputProver` trait
2023-10-02 16:59:01 +00:00
Jack Grigg
290bfa8b31
zcash_primitives: Introduce a `SpendProver` trait
2023-10-02 16:59:01 +00:00
zancas
b5e24751d6
add Debug to transaction builder-reported types
2023-09-29 12:55:06 -06:00
Jack Grigg
db31105067
Move Sapling circuits from `zcash_proofs` to `zcash_primitives::sapling`
...
Closes zcash/librustzcash#737 .
2023-09-29 18:36:54 +00:00
Jack Grigg
0ddcccdbac
zcash_primitives: Move Sapling constants into `sapling` module
2023-09-29 17:39:43 +00:00
Jack Grigg
7e89300db9
Move common package and dependency configs into workspace config
...
The MSRV for the main crates is 1.65, which is higher than the Rust
version that stabilised workplace dependencies (1.64). The implicit MSRV
for the component crates is still lower than this, so we don't migrate
these crates.
2023-09-26 22:01:32 +00:00
Jack Grigg
d35d0961ab
zcash_primitives 0.13.0
2023-09-25 15:06:57 +00:00
Daira Emma Hopwood
401af23484
Improve wallet tests.
...
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-12 01:33:12 +01:00
Jack Grigg
67b84c25e0
zcash_primitives 0.13.0-rc.1
2023-09-08 19:45:54 +00:00
Kris Nuttycombe
46cc6666df
Address comments from code review.
...
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-08 13:03:53 -06:00
Jack Grigg
94c1f2413d
Migrate to `incrementalmerkletree 0.5`, `orchard 0.6`
2023-09-08 18:57:25 +00:00
Kris Nuttycombe
0ea2290670
zcash_primitives: update CHANGELOG.md in preparation for the 0.13.0 release
2023-09-08 08:54:39 -06:00
Kris Nuttycombe
7abd1324de
Apply suggestions from code review
...
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2023-09-05 16:49:36 -06:00
Kris Nuttycombe
f53ea2d778
Add `get_wallet_summary` to `WalletRead`
...
The intent of this API is to provide a single API which returns in a
single call:
* per-account balances, including pending values
* wallet sync progress
Fixes #865
Fixes #900
2023-09-05 16:06:55 -06:00
Kris Nuttycombe
224e021558
Merge pull request #931 from nuttycom/remove_deprecated_default_fee
...
zcash_primitives: Remove the deprecated 1000-ZAT DEFAULT_FEE constant
2023-09-01 14:40:11 -06:00
Kris Nuttycombe
14d61a2e98
zcash_primitives: Remove the deprecated 1000-ZAT DEFAULT_FEE constant
2023-09-01 12:46:13 -06:00
Jack Grigg
f33c8ea418
zcash_primitives: Parse the full opcode set
...
This enhances the alternate `impl Debug for Script` to render unexpected
scripts correctly.
2023-08-30 20:41:27 +00:00
Jack Grigg
c8e2d81f58
Render byte slices as hex more often in `Debug` impls
...
This is more generally useful for debugging purposes than the default
`Debug` impl for `&[u8]`.
We also provide an alternate `Debug` impl for `legacy::Script` that
parses and renders known opcodes. Note that we only parse a subset of
the full opcode set.
2023-08-30 20:41:27 +00:00
Jack Grigg
57a3914e3a
zcash_primitives: Drop `byteorder::LittleEndian` usage in sighash
2023-08-30 19:46:38 +00:00
Jack Grigg
2a98f94f05
Add more debug and trace logging
...
The `Debug` impl for `sapling::Node` is updated to output hex-encoded
bytes for readability.
2023-07-18 17:23:57 +00:00
Kris Nuttycombe
6fa0b46d8e
Implement `suggest_scan_ranges` and `update_chain_tip`
...
This implements a priority queue backed by the wallet database for scan
range ordering. The scan queue is updated on each call to `put_blocks`
or to `update_chain_tip`.
2023-07-07 20:13:45 -06:00