2021-02-04 07:13:22 -08:00
|
|
|
# Changelog
|
2021-02-04 07:16:32 -08:00
|
|
|
All notable changes to this library will be documented in this file.
|
2021-02-04 07:13:22 -08:00
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
2021-02-04 07:16:32 -08:00
|
|
|
and this library adheres to Rust's notion of
|
2021-02-04 07:13:22 -08:00
|
|
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
|
|
|
## [Unreleased]
|
2023-05-16 08:50:31 -07:00
|
|
|
### Added
|
|
|
|
- `impl Eq for zcash_client_backend::address::RecipientAddress`
|
|
|
|
- `impl Eq for zcash_client_backend::zip321::{Payment, TransactionRequest}`
|
2023-06-06 13:27:39 -07:00
|
|
|
- `data_api::NullifierQuery` for use with `WalletRead::get_sapling_nullifiers`
|
2023-05-16 08:50:31 -07:00
|
|
|
|
2023-04-19 12:33:34 -07:00
|
|
|
### Changed
|
2023-05-16 08:37:07 -07:00
|
|
|
- MSRV is now 1.65.0.
|
2023-06-06 13:35:42 -07:00
|
|
|
- Bumped dependencies to `hdwallet 0.4`, `zcash_primitives 0.12`, `zcash_note_encryption 0.4`,
|
2023-06-06 14:42:51 -07:00
|
|
|
`incrementalmerkletree 0.4`, `orchard 0.5`, `bs58 0.5`
|
2023-05-17 07:56:24 -07:00
|
|
|
- `WalletRead::get_memo` now returns `Result<Option<Memo>, Self::Error>`
|
|
|
|
instead of `Result<Memo, Self::Error>` in order to make representable
|
|
|
|
wallet states where the full note plaintext is not available.
|
2023-06-06 13:27:39 -07:00
|
|
|
- `WalletRead::get_nullifiers` has been renamed to `WalletRead::get_sapling_nullifiers`
|
|
|
|
and its signature has changed; it now subsumes the removed `WalletRead::get_all_nullifiers`.
|
|
|
|
- `wallet::SpendableNote` has been renamed to `wallet::ReceivedSaplingNote`.
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
- `WalletRead::get_all_nullifiers`
|
2022-12-06 00:18:34 -08:00
|
|
|
|
2023-04-27 18:46:28 -07:00
|
|
|
## [0.9.0] - 2023-04-28
|
2023-04-26 10:17:34 -07:00
|
|
|
### Added
|
|
|
|
- `data_api::SentTransactionOutput::from_parts`
|
2023-04-26 15:27:56 -07:00
|
|
|
- `data_api::WalletRead::get_min_unspent_height`
|
2023-04-26 10:17:34 -07:00
|
|
|
|
2023-04-25 16:35:22 -07:00
|
|
|
### Changed
|
|
|
|
- `decrypt::DecryptedOutput` is now parameterized by a `Note` type parameter,
|
|
|
|
to allow reuse of the data structure for non-Sapling contexts.
|
2023-04-26 15:27:56 -07:00
|
|
|
- `data_api::SentTransactionOutput` must now be constructed using
|
2023-04-27 12:07:34 -07:00
|
|
|
`SentTransactionOutput::from_parts`. The internal state of `SentTransactionOutput`
|
2023-05-17 07:56:24 -07:00
|
|
|
is now private, and accessible via methods that have the same names as the
|
2023-04-27 12:07:34 -07:00
|
|
|
previously exposed fields.
|
2022-12-06 00:18:34 -08:00
|
|
|
|
2023-04-03 12:31:45 -07:00
|
|
|
### Renamed
|
|
|
|
- The following types and fields have been renamed in preparation for supporting
|
|
|
|
`orchard` in wallet APIs:
|
|
|
|
- `WalletTx::shielded_spends` -> `WalletTx::sapling_spends`
|
|
|
|
- `WalletTx::shielded_outputs` -> `WalletTx::sapling_outputs`
|
2023-04-26 10:17:34 -07:00
|
|
|
- `WalletShieldedSpend` -> `WalletSaplingSpend`. Also, the internals of this
|
|
|
|
data structure have been made private.
|
|
|
|
- `WalletShieldedOutput` -> `WalletSaplingOutput`. Also, the internals of this
|
|
|
|
data structure have been made private.
|
2023-04-26 15:27:56 -07:00
|
|
|
- The `data_api::WalletWrite::rewind_to_height` method has been renamed to
|
|
|
|
`truncate_to_height` to better reflect its semantics.
|
2023-04-03 12:31:45 -07:00
|
|
|
|
|
|
|
### Removed
|
|
|
|
- `wallet::WalletTx::num_spends`
|
|
|
|
- `wallet::WalletTx::num_outputs`
|
2023-04-25 16:23:00 -07:00
|
|
|
- `wallet::WalletSaplingOutput::to` is redundant and has been removed; the
|
|
|
|
recipient address can be obtained from the note.
|
|
|
|
- `decrypt::DecryptedOutput::to` is redundant and has been removed; the
|
|
|
|
recipient address can be obtained from the note.
|
|
|
|
|
2023-04-14 17:00:40 -07:00
|
|
|
## [0.8.0] - 2023-04-15
|
2023-03-17 21:15:59 -07:00
|
|
|
### Changed
|
2023-04-11 08:47:44 -07:00
|
|
|
- Bumped dependencies to `bls12_381 0.8`, `group 0.13`, `orchard 0.4`,
|
2023-04-14 16:56:16 -07:00
|
|
|
`tonic 0.9`, `base64 0.21`, `bech32 0.9`, `zcash_primitives 0.11`.
|
2023-03-20 14:11:05 -07:00
|
|
|
- The dependency on `zcash_primitives` no longer enables the `multicore` feature
|
|
|
|
by default in order to support compilation under `wasm32-wasi`. Users of other
|
|
|
|
platforms may need to include an explicit dependency on `zcash_primitives`
|
|
|
|
without `default-features = false` or otherwise explicitly enable the
|
|
|
|
`zcash_primitives/multicore` feature if they did not already depend
|
|
|
|
upon `zcash_primitives` with default features enabled.
|
2023-03-17 21:15:59 -07:00
|
|
|
|
2023-04-14 16:49:13 -07:00
|
|
|
### Fixed
|
|
|
|
- `zcash_client_backend::fees::zip317::SingleOutputChangeStrategy` now takes
|
|
|
|
into account the Sapling output padding behaviour of
|
|
|
|
`zcash_primitives::transaction::components::sapling::builder::SaplingBuilder`.
|
|
|
|
|
2023-01-31 18:11:56 -08:00
|
|
|
## [0.7.0] - 2023-02-01
|
2023-01-19 15:32:09 -08:00
|
|
|
### Added
|
|
|
|
- `zcash_client_backend::data_api::wallet`:
|
2023-01-31 17:58:45 -08:00
|
|
|
- `input_selection::Proposal::{is_shielding, target_height}`
|
2023-01-19 15:32:09 -08:00
|
|
|
- `propose_transfer`
|
|
|
|
- `propose_shielding`
|
|
|
|
- `create_proposed_transaction`
|
|
|
|
|
2022-12-08 16:15:48 -08:00
|
|
|
### Changed
|
2023-01-19 15:48:24 -08:00
|
|
|
- MSRV is now 1.60.0.
|
2023-01-31 18:07:16 -08:00
|
|
|
- Bumped dependencies to `zcash_primitives 0.10`.
|
2023-01-31 17:58:45 -08:00
|
|
|
- `zcash_client_backend::data_api::chain`:
|
|
|
|
- `BlockSource::with_blocks` now takes `from_height` as `Option<BlockHeight>`
|
|
|
|
instead of `BlockHeight`. Trait implementors should return all available
|
|
|
|
blocks in the datastore when `from_height` is `None`.
|
|
|
|
- Various **breaking changes** to `validate_chain`:
|
|
|
|
- The `parameters: &ParamsT` argument has been removed. When `None` is given
|
|
|
|
as the `validate_from` argument, `validate_chain` will now pass `None` to
|
|
|
|
`BlockSource::with_blocks` (instead of the Sapling network upgrade's
|
2023-03-20 14:11:05 -07:00
|
|
|
activation height).
|
2023-01-31 17:58:45 -08:00
|
|
|
- A `limit: Option<u32>` argument has been added. This enables callers to
|
|
|
|
validate smaller intervals of blocks already present on the provided
|
|
|
|
`BlockSource`, shortening processing times of the function call at the
|
|
|
|
expense of obtaining a partial result. When providing a `limit`, a result
|
|
|
|
of `Ok(())` means that the chain has been validated on its continuity of
|
|
|
|
heights and hashes in the range `[validate_from, validate_from + limit)`.
|
|
|
|
Callers are responsible for making subsequent calls to `validate_chain` in
|
|
|
|
order to complete validating the totality of `block_source`.
|
|
|
|
- `zcash_client_backend::data_api::wallet`:
|
|
|
|
- `input_selection::Proposal` no longer has a `TransparentInput` generic
|
|
|
|
parameter, and `Proposal::transparent_inputs` now returns
|
|
|
|
`&[zcash_client_backend::wallet::WalletTransparentOutput]`.
|
|
|
|
- `shield_transparent_funds` now takes a `shielding_threshold` argument that
|
|
|
|
can be used to specify the minimum value allowed as input to a shielding
|
|
|
|
transaction. Previously the shielding threshold was fixed at 100000 zatoshis.
|
2023-01-06 09:01:05 -08:00
|
|
|
- Note commitments now use
|
|
|
|
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
|
|
|
|
`bls12_381::Scalar` in the following places:
|
|
|
|
- The `cmu` field of `zcash_client_backend::wallet::WalletShieldedOutput`.
|
|
|
|
- `zcash_client_backend::proto::compact_formats::CompactSaplingOutput::cmu`.
|
2022-12-08 16:15:48 -08:00
|
|
|
|
2023-03-20 14:11:05 -07:00
|
|
|
### Removed
|
2023-01-31 10:21:46 -08:00
|
|
|
- `zcash_client_backend::data_api`:
|
|
|
|
- `WalletWrite::remove_unmined_tx` (was behind the `unstable` feature flag).
|
2022-11-21 05:52:44 -08:00
|
|
|
|
2022-12-06 00:18:34 -08:00
|
|
|
## [0.6.1] - 2022-12-06
|
2022-12-06 00:17:49 -08:00
|
|
|
### Added
|
|
|
|
- `zcash_client_backend::data_api::chain::scan_cached_blocks` now generates
|
|
|
|
`tracing` spans, which can be used for profiling.
|
2022-07-25 19:12:45 -07:00
|
|
|
|
2022-12-06 00:18:34 -08:00
|
|
|
### Fixed
|
|
|
|
- `zcash_client_backend:zip321` no longer returns an error when trying to parse
|
|
|
|
a URI without query parameters.
|
|
|
|
|
2022-11-11 12:42:55 -08:00
|
|
|
## [0.6.0] - 2022-11-12
|
2022-01-27 15:25:01 -08:00
|
|
|
### Added
|
2022-02-01 10:37:43 -08:00
|
|
|
- Functionality that enables the receiving and spending of transparent funds,
|
|
|
|
behind the new `transparent-inputs` feature flag.
|
2022-11-11 12:29:26 -08:00
|
|
|
- A new `zcash_client_backend::data_api::wallet::shield_transparent_funds`
|
|
|
|
method has been added to facilitate the automatic shielding of transparent
|
|
|
|
funds received by the wallet.
|
|
|
|
- A `zcash_client_backend::wallet::WalletTransparentOutput` type in support of
|
|
|
|
`transparent-inputs` functionality.
|
2022-08-29 14:32:18 -07:00
|
|
|
- An `unstable` feature flag; this is added to parts of the API that may change
|
|
|
|
in any release.
|
2022-06-07 04:35:53 -07:00
|
|
|
- `zcash_client_backend::address`:
|
|
|
|
- `RecipientAddress::Unified`
|
2022-10-25 09:54:12 -07:00
|
|
|
- `AddressMetadata`
|
2022-11-11 12:29:26 -08:00
|
|
|
- `impl Eq for UnifiedAddress`
|
2022-06-13 17:57:20 -07:00
|
|
|
- `zcash_client_backend::data_api`:
|
2022-11-11 12:29:26 -08:00
|
|
|
- `wallet::spend` method, intended to supersede the `wallet::create_spend_to_address`
|
|
|
|
method. This new method now constructs transactions via interpretation of a
|
|
|
|
`zcash_client_backend::zip321::TransactionRequest` value. This facilitates
|
|
|
|
the implementation of ZIP 321 support in wallets and provides substantially
|
|
|
|
greater flexibility in transaction creation.
|
2022-10-11 12:08:15 -07:00
|
|
|
- `PoolType`
|
2022-10-17 10:35:14 -07:00
|
|
|
- `ShieldedPool`
|
2022-10-11 08:07:11 -07:00
|
|
|
- `Recipient`
|
|
|
|
- `SentTransactionOutput`
|
2022-08-29 14:32:18 -07:00
|
|
|
- `WalletRead::get_unified_full_viewing_keys`
|
2022-10-03 13:44:04 -07:00
|
|
|
- `WalletRead::get_account_for_ufvk`
|
2022-09-12 11:42:12 -07:00
|
|
|
- `WalletRead::get_current_address`
|
2022-08-31 08:09:25 -07:00
|
|
|
- `WalletRead::get_all_nullifiers`
|
2022-10-13 19:58:43 -07:00
|
|
|
- `WalletRead::get_transparent_receivers`
|
|
|
|
- `WalletRead::get_unspent_transparent_outputs`
|
2022-10-25 11:04:02 -07:00
|
|
|
- `WalletRead::get_transparent_balances`
|
2022-09-13 15:43:04 -07:00
|
|
|
- `WalletWrite::create_account`
|
2022-08-30 15:54:58 -07:00
|
|
|
- `WalletWrite::remove_unmined_tx` (behind the `unstable` feature flag).
|
2022-09-12 11:42:12 -07:00
|
|
|
- `WalletWrite::get_next_available_address`
|
2022-10-13 19:58:43 -07:00
|
|
|
- `WalletWrite::put_received_transparent_utxo`
|
2022-11-01 17:42:41 -07:00
|
|
|
- `impl From<prost::DecodeError> for error::Error`
|
2022-10-17 10:35:14 -07:00
|
|
|
- `chain::error`: a module containing error types type that that can occur only
|
|
|
|
in chain validation and sync have been separated out from errors related to
|
|
|
|
other wallet operations.
|
|
|
|
- `input_selection`: a module containing types related to the process
|
|
|
|
of selecting inputs to be spent, given a transaction request.
|
2022-10-11 12:08:15 -07:00
|
|
|
- `zcash_client_backend::decrypt`:
|
|
|
|
- `TransferType`
|
2022-02-16 18:44:20 -08:00
|
|
|
- `zcash_client_backend::proto`:
|
|
|
|
- `actions` field on `compact_formats::CompactTx`
|
|
|
|
- `compact_formats::CompactOrchardAction`
|
2022-09-16 10:24:14 -07:00
|
|
|
- gRPC bindings for the `lightwalletd` server, behind a `lightwalletd-tonic`
|
|
|
|
feature flag.
|
2022-02-01 10:37:43 -08:00
|
|
|
- `zcash_client_backend::zip321::TransactionRequest` methods:
|
2022-10-17 10:35:14 -07:00
|
|
|
- `TransactionRequest::empty` for constructing a new empty request.
|
2022-02-01 10:37:43 -08:00
|
|
|
- `TransactionRequest::new` for constructing a request from `Vec<Payment>`.
|
|
|
|
- `TransactionRequest::payments` for accessing the `Payments` that make up a
|
|
|
|
request.
|
2022-10-11 12:08:15 -07:00
|
|
|
- `zcash_client_backend::encoding`
|
|
|
|
- `KeyError`
|
|
|
|
- `AddressCodec` implementations for `sapling::PaymentAddress` and
|
2022-11-11 12:29:26 -08:00
|
|
|
`UnifiedAddress`.
|
2022-09-26 09:59:50 -07:00
|
|
|
- `zcash_client_backend::fees`
|
|
|
|
- `ChangeError`
|
|
|
|
- `ChangeStrategy`
|
|
|
|
- `ChangeValue`
|
|
|
|
- `TransactionBalance`
|
2022-11-11 12:29:26 -08:00
|
|
|
- `fixed`, a module containing change selection strategies for the old fixed
|
|
|
|
fee rule.
|
|
|
|
- `zip317`, a module containing change selection strategies for the ZIP 317
|
|
|
|
fee rule.
|
2022-02-01 10:37:43 -08:00
|
|
|
- New experimental APIs that should be considered unstable, and are
|
|
|
|
likely to be modified and/or moved to a different module in a future
|
|
|
|
release:
|
2022-06-07 04:35:53 -07:00
|
|
|
- `zcash_client_backend::address::UnifiedAddress`
|
2022-08-31 22:11:13 -07:00
|
|
|
- `zcash_client_backend::keys::{UnifiedSpendingKey`, `UnifiedFullViewingKey`, `Era`, `DecodingError`}
|
2022-02-01 10:37:43 -08:00
|
|
|
- `zcash_client_backend::encoding::AddressCodec`
|
|
|
|
- `zcash_client_backend::encoding::encode_payment_address`
|
|
|
|
- `zcash_client_backend::encoding::encode_transparent_address`
|
2022-01-27 15:25:01 -08:00
|
|
|
|
2021-03-26 12:21:45 -07:00
|
|
|
### Changed
|
2022-02-24 08:24:00 -08:00
|
|
|
- MSRV is now 1.56.1.
|
2022-11-11 12:29:26 -08:00
|
|
|
- Bumped dependencies to `ff 0.12`, `group 0.12`, `bls12_381 0.7`
|
2022-11-11 12:37:55 -08:00
|
|
|
`zcash_primitives 0.9`, `orchard 0.3`.
|
2022-02-16 18:44:20 -08:00
|
|
|
- `zcash_client_backend::proto`:
|
2022-11-01 17:42:41 -07:00
|
|
|
- The Protocol Buffers bindings are now generated for `prost 0.11` instead of
|
|
|
|
`protobuf 2`.
|
2022-02-17 15:58:20 -08:00
|
|
|
- `compact_formats::CompactSpend` has been renamed to `CompactSaplingSpend`,
|
|
|
|
and its `epk` field (and associated `set_epk` method) has been renamed to
|
|
|
|
`ephemeralKey` (and `set_ephemeralKey`).
|
2022-02-16 18:44:20 -08:00
|
|
|
- `compact_formats::CompactOutput` has been renamed to `CompactSaplingOutput`.
|
2021-08-09 13:45:16 -07:00
|
|
|
- `epk: jubjub::ExtendedPoint` has been replaced by
|
|
|
|
`ephemeral_key: zcash_note_encryption::EphemeralKeyBytes` in various places:
|
|
|
|
- `zcash_client_backend::wallet::WalletShieldedOutput`: the `epk` field has
|
|
|
|
been replaced by `ephemeral_key`.
|
2022-02-16 18:44:20 -08:00
|
|
|
- `zcash_client_backend::proto::compact_formats::CompactSaplingOutput`: the
|
|
|
|
`epk` method has been replaced by `ephemeral_key`.
|
2022-11-11 12:29:26 -08:00
|
|
|
- `zcash_client_backend::data_api`:
|
|
|
|
- Renamed the following to use lower-case abbreviations (matching Rust naming
|
|
|
|
conventions):
|
|
|
|
- `testing::MockWalletDB` to `testing::MockWalletDb`
|
|
|
|
- Changes to the `WalletRead` trait:
|
|
|
|
- `WalletRead::get_target_and_anchor_heights` now takes
|
|
|
|
a `min_confirmations` argument that is used to compute an upper bound on
|
|
|
|
the anchor height being returned; this had previously been hardcoded to
|
|
|
|
`wallet::ANCHOR_OFFSET`.
|
|
|
|
- `WalletRead::get_spendable_notes` has been renamed to
|
|
|
|
`get_spendable_sapling_notes`, and now takes as an argument a vector of
|
|
|
|
note IDs to be excluded from consideration.
|
|
|
|
- `WalletRead::select_spendable_notes` has been renamed to
|
|
|
|
`select_spendable_sapling_notes`, and now takes as an argument a vector of
|
|
|
|
note IDs to be excluded from consideration.
|
|
|
|
- The `WalletRead::NoteRef` and `WalletRead::TxRef` associated types are now
|
|
|
|
required to implement `Eq` and `Ord`
|
|
|
|
- `WalletWrite::store_received_tx` has been renamed to `store_decrypted_tx`.
|
2022-11-11 13:23:28 -08:00
|
|
|
- `wallet::decrypt_and_store_transaction` now always stores the transaction by
|
|
|
|
calling `WalletWrite::store_decrypted_tx`, even if no outputs could be
|
|
|
|
decrypted. The error type produced by the provided `WalletWrite` instance is
|
|
|
|
also now returned directly.
|
2022-11-11 12:29:26 -08:00
|
|
|
- The `SentTransaction` type has been substantially modified to accommodate
|
|
|
|
handling of transparent inputs. Per-output data has been split out into a
|
|
|
|
new struct `SentTransactionOutput`, and `SentTransaction` can now contain
|
|
|
|
multiple outputs, and tracks the fee paid.
|
|
|
|
- `ReceivedTransaction` has been renamed to `DecryptedTransaction`, and its
|
|
|
|
`outputs` field has been renamed to `sapling_outputs`.
|
|
|
|
- `BlockSource` has been moved to the `chain` module.
|
|
|
|
- The types of the `with_row` callback argument to `BlockSource::with_blocks`
|
|
|
|
and the return type of this method have been modified to return
|
|
|
|
`chain::error::Error`.
|
|
|
|
- `testing::MockBlockSource` has been moved to
|
|
|
|
`chain::testing::MockBlockSource` module.
|
|
|
|
- `chain::{validate_chain, scan_cached_blocks}` have altered parameters and
|
|
|
|
result types. The latter have been modified to return`chain::error::Error`
|
|
|
|
instead of abstract error types. This new error type now wraps the errors of
|
|
|
|
the block source and wallet database to which these methods delegate IO
|
|
|
|
operations directly, which simplifies error handling in cases where callback
|
|
|
|
functions are involved.
|
|
|
|
- `error::ChainInvalid` has been moved to `chain::error`.
|
|
|
|
- `error::Error` has been substantially modified. It now wraps database,
|
|
|
|
note selection, builder, and other errors.
|
|
|
|
- Added new error cases:
|
|
|
|
- `Error::DataSource`
|
|
|
|
- `Error::NoteSelection`
|
|
|
|
- `Error::BalanceError`
|
|
|
|
- `Error::MemoForbidden`
|
|
|
|
- `Error::AddressNotRecognized`
|
|
|
|
- `Error::ChildIndexOutOfRange`
|
|
|
|
- `Error::NoteMismatch`
|
|
|
|
- `Error::InsufficientBalance` has been renamed to `InsufficientFunds` and
|
|
|
|
restructured to have named fields.
|
|
|
|
- `Error::Protobuf` has been removed; these decoding errors are now
|
|
|
|
produced as data source and/or block-source implementation-specific
|
|
|
|
errors.
|
|
|
|
- `Error::InvalidChain` has been removed; its former purpose is now served
|
|
|
|
by `chain::ChainError`.
|
|
|
|
- `Error::InvalidNewWitnessAnchor` and `Error::InvalidWitnessAnchor` have
|
|
|
|
been moved to `chain::error::ContinuityError`.
|
|
|
|
- `Error::InvalidExtSk` (now unused) has been removed.
|
|
|
|
- `Error::KeyNotFound` (now unused) has been removed.
|
|
|
|
- `Error::KeyDerivationError` (now unused) has been removed.
|
|
|
|
- `Error::SaplingNotActive` (now unused) has been removed.
|
2022-06-13 18:13:00 -07:00
|
|
|
- `zcash_client_backend::decrypt`:
|
|
|
|
- `decrypt_transaction` now takes a `HashMap<_, UnifiedFullViewingKey>`
|
|
|
|
instead of `HashMap<_, ExtendedFullViewingKey>`.
|
2022-02-01 10:37:43 -08:00
|
|
|
- If no memo is provided when sending to a shielded recipient, the
|
2022-11-11 12:29:26 -08:00
|
|
|
empty memo will be used.
|
2022-01-27 15:25:01 -08:00
|
|
|
- `zcash_client_backend::keys::spending_key` has been moved to the
|
|
|
|
`zcash_client_backend::keys::sapling` module.
|
2022-02-01 10:37:43 -08:00
|
|
|
- `zcash_client_backend::zip321::MemoError` has been renamed and
|
|
|
|
expanded into a more comprehensive `Zip321Error` type, and functions in the
|
|
|
|
`zip321` module have been updated to use this unified error type. The
|
|
|
|
following error cases have been added:
|
|
|
|
- `Zip321Error::TooManyPayments(usize)`
|
|
|
|
- `Zip321Error::DuplicateParameter(parse::Param, usize)`
|
|
|
|
- `Zip321Error::TransparentMemo(usize)`
|
|
|
|
- `Zip321Error::RecipientMissing(usize)`
|
|
|
|
- `Zip321Error::ParseError(String)`
|
2022-11-11 12:29:26 -08:00
|
|
|
- `zcash_client_backend::welding_rig`:
|
|
|
|
- The API of `ScanningKey` has changed to accommodate batch decryption and to
|
|
|
|
correctly handle scanning with the internal (change) keys derived from ZIP
|
|
|
|
316 UFVKs and UIVKs.
|
|
|
|
- `scan_block` now uses batching for trial-decryption of transaction outputs.
|
2022-08-15 12:14:15 -07:00
|
|
|
- The return type of the following methods in `zcash_client_backend::encoding`
|
|
|
|
have been changed to improve error reporting:
|
|
|
|
- `decode_extended_spending_key`
|
|
|
|
- `decode_extended_full_viewing_key`
|
|
|
|
- `decode_payment_address`
|
2022-10-17 10:35:14 -07:00
|
|
|
- `zcash_client_backend::wallet::SpendableNote` is now parameterized by a note
|
|
|
|
identifier type and has an additional `note_id` field that is used to hold the
|
|
|
|
identifier used to refer to the note in the wallet database.
|
|
|
|
|
|
|
|
### Deprecated
|
|
|
|
- `zcash_client_backend::data_api::wallet::create_spend_to_address` has been
|
|
|
|
deprecated. Use `zcash_client_backend::data_api::wallet::spend` instead. If
|
|
|
|
you wish to continue using `create_spend_to_address`, note that the arguments
|
|
|
|
to the function has been modified to take a unified spending key instead of a
|
|
|
|
Sapling extended spending key, and now also requires a `min_confirmations`
|
|
|
|
argument that the caller can provide to specify a minimum number of
|
|
|
|
confirmations required for notes being selected. A minimum of 10
|
|
|
|
confirmations is recommended.
|
2022-02-01 10:37:43 -08:00
|
|
|
|
|
|
|
### Removed
|
2022-06-13 17:57:20 -07:00
|
|
|
- `zcash_client_backend::data_api`:
|
2022-11-11 12:29:26 -08:00
|
|
|
- `wallet::ANCHOR_OFFSET`
|
2022-06-13 17:57:20 -07:00
|
|
|
- `WalletRead::get_extended_full_viewing_keys` (use
|
|
|
|
`WalletRead::get_unified_full_viewing_keys` instead).
|
2022-09-12 11:42:12 -07:00
|
|
|
- `WalletRead::get_address` (use `WalletRead::get_current_address` or
|
|
|
|
`WalletWrite::get_next_available_address` instead.)
|
2022-11-01 17:42:41 -07:00
|
|
|
- `impl From<protobuf::ProtobufError> for error::Error`
|
|
|
|
- `zcash_client_backend::proto::compact_formats`:
|
|
|
|
- `Compact*::new` methods (use `Default::default` or struct instantiation
|
|
|
|
instead).
|
|
|
|
- Getters (use dedicated typed methods or direct field access instead).
|
|
|
|
- Setters (use direct field access instead).
|
2022-02-01 10:37:43 -08:00
|
|
|
- `zcash_client_backend::wallet::AccountId` (moved to `zcash_primitives::zip32::AccountId`).
|
2022-11-11 12:29:26 -08:00
|
|
|
- `impl zcash_client_backend::welding_rig::ScanningKey for ExtendedFullViewingKey`
|
|
|
|
(use `DiversifiableFullViewingKey` instead).
|
2022-01-27 15:25:01 -08:00
|
|
|
|
2021-03-25 22:54:42 -07:00
|
|
|
## [0.5.0] - 2021-03-26
|
2021-02-22 08:59:07 -08:00
|
|
|
### Added
|
|
|
|
- `zcash_client_backend::address::RecipientAddress`
|
|
|
|
- `zcash_client_backend::data_api` module, containing the Data Access API.
|
|
|
|
- `zcash_client_backend::wallet`:
|
|
|
|
- `AccountId`
|
|
|
|
- `SpendableNote`
|
|
|
|
- `OvkPolicy`
|
2021-03-25 14:06:30 -07:00
|
|
|
- `zcash_client_backend::welding_rig::ScanningKey` trait, representing a key
|
|
|
|
which can be used for trial decryption of outputs, and optionally nullifier
|
|
|
|
computation. This trait is implemented for
|
|
|
|
`zcash_primitives::zip32:ExtendedFullViewingKey` and
|
|
|
|
`zcash_primitives::primitives::SaplingIvk`.
|
2021-02-22 08:59:07 -08:00
|
|
|
- First alpha of TZE support, behind the `zfuture` feature flag.
|
|
|
|
|
|
|
|
### Changed
|
2021-03-04 09:30:11 -08:00
|
|
|
- MSRV is now 1.47.0.
|
2021-02-22 08:59:07 -08:00
|
|
|
- `epk` fields and return values were changed from a `jubjub::SubgroupPoint` to
|
|
|
|
a `jubjub::ExtendedPoint`, to match the change to the `zcash_primitives`
|
|
|
|
decryption APIs:
|
|
|
|
- `zcash_client_backend::proto::compact_formats::CompactOutput::epk()`
|
|
|
|
- The `epk` field of `zcash_client_backend::wallet::WalletShieldedOutput`.
|
2021-03-17 14:00:27 -07:00
|
|
|
- `zcash_client_backend::decrypt`:
|
|
|
|
- `decrypt_transaction` now takes a variable with type
|
|
|
|
`P: zcash_primitives::consensus::Parameters`.
|
|
|
|
- The `memo` field of `DecryptedOutput` now has type `MemoBytes`.
|
2021-02-22 08:59:07 -08:00
|
|
|
- `zcash_client_backend::wallet`:
|
|
|
|
- The `nf` property of `WalletShieldedSpend` now has the type `Nullifier`.
|
|
|
|
- The `account` property of `WalletShieldedSpend` and `WalletShieldedOutput`
|
|
|
|
now has the type `AccountId`.
|
|
|
|
- `zcash_client_backend::welding_rig`:
|
2021-03-25 14:00:54 -07:00
|
|
|
- `scan_block` now takes `&[(AccountId, K: ScanningKey)]`, instead of a
|
2021-02-22 08:59:07 -08:00
|
|
|
slice of extended full viewing keys with implicit account IDs.
|
|
|
|
- The `nullifiers` argument to `scan_block` now has the type
|
|
|
|
`&[(AccountId, Nullifier)]`.
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
- `zcash_client_backend::constants` module (its sub-modules have been moved into
|
|
|
|
`zcash_primitives::constants`, and more generally replaced by the new methods
|
|
|
|
on the `zcash_primitives::consensus::Parameters` trait).
|
2021-02-04 07:13:22 -08:00
|
|
|
|
|
|
|
## [0.4.0] - 2020-09-09
|
|
|
|
### Changed
|
|
|
|
- MSRV is now 1.44.1.
|
|
|
|
- Bumped dependencies to `ff 0.8`, `group 0.8`, `bls12_381 0.3.1`,
|
|
|
|
`jubjub 0.5.1`, `protobuf 2.15`.
|
|
|
|
|
|
|
|
## [0.3.0] - 2020-08-24
|
|
|
|
TBD
|
|
|
|
|
|
|
|
## [0.2.0] - 2020-03-13
|
|
|
|
TBD
|
|
|
|
|
|
|
|
## [0.1.0] - 2019-10-08
|
|
|
|
Initial release.
|