librustzcash/zcash_client_backend/CHANGELOG.md

143 lines
6.9 KiB
Markdown
Raw Normal View History

# Changelog
2021-02-04 07:16:32 -08:00
All notable changes to this library will be documented in this file.
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
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
2022-01-27 15:25:01 -08:00
### Added
- A new feature flag, `transparent-inputs` is now available for use in
compilation of `zcash_primitives`, `zcash_client_backend`, and
`zcash_client_sqlite`. This flag must be enabled to provide access to the
functionality which enables the receiving and spending of transparent funds.
- A new `data_api::wallet::spend` method has been added, which is
intended to supersede the `data_api::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.
- A new `data_api::wallet::shield_transparent_funds` method has been added
to facilitate the automatic shielding of transparent funds received
by the wallet.
- `zcash_client_backend::data_api::WalletRead::get_transaction` has been added
to provide access to decoded transaction data.
- `zcash_client_backend::data_api::WalletRead::get_all_nullifiers` has been
added. This method provides access to all Sapling nullifiers, including
for notes that have been previously marked spent.
- `zcash_client_backend::data_api::WalletRead::get_unspent_transparent_outputs`
has been added under the `transparent-inputs` feature flag to provide access
to received transparent UTXOs.
- A new `zcash_client_backend::encoding::AddressCodec` trait has been added
to facilitate address encoding. This new API should be considered unstable
and is likely to be removed or changed in an upcoming release.
- `zcash_client_backend::encoding::encode_payment_address` has been added.
This API should be considered unstable.
- `zcash_client_backend::encoding::encode_transparent_address` has been added.
This API should be considered unstable.
### Changed
- MSRV is now 1.51.0.
2021-09-09 09:45:50 -07:00
- Bumped dependencies to `ff 0.11`, `group 0.11`, `bls12_381 0.6`, `jubjub 0.8`.
- `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`.
- `zcash_client_backend::proto::compact_formats::CompactOutput`: the `epk`
method has been replaced by `ephemeral_key`.
2022-01-27 15:25:01 -08:00
- Renamed the following in `zcash_client_backend::data_api` to use lower-case
abbreviations (matching Rust naming conventions):
- `error::Error::InvalidExtSK` to `Error::InvalidExtSk`
- `testing::MockWalletDB` to `testing::MockWalletDb`
2022-01-27 15:25:01 -08:00
- `data_api::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
`data_api::wallet::ANCHOR_OFFSET`.
- `data_api::WalletRead::get_spendable_notes` has been renamed to
`get_spendable_sapling_notes`
- `data_api::WalletRead::select_spendable_notes` has been renamed to
`select_spendable_sapling_notes`
- The `zcash_client_backend::data_api::SentTransaction` type has been
substantially modified to accommodate handling of transparent
inputs.
- `data_api::WalletWrite::store_received_tx` has been renamed to
`store_decrypted_tx` and it now takes an explicit list of
`(AccountId, Nullifier)` pairs that allows the library to
provide quick access to previously decrypted nullifiers.
- An `Error::MemoForbidden` error has been added to the
`data_api::error::Error` enum to report the condition where a
memo was specified to be sent to a transparent recipient.
- The hardcoded `data_api::wallet::ANCHOR_OFFSET` constant has been removed.
- `zcash_client_backend::keys::spending_key` has been moved to the
`zcash_client_backend::keys::sapling` module.
- Two new types, `UnifiedSpendingKey` and `UnifiedFullViewingKey`
have been added to the `zcash_client_backend::keys` module. These
types should be considered unstable as they are likely to be changed
and/or extracted into a different crate in a future release.
- A `zcash_client_backend::wallet::WalletTransparentOutput` type
has been added under the `transparent-inputs` feature flag in support
of autoshielding functionality.
- `zcash_client_backend::zip321::MemoError` has been renamed and
expanded into a more comprehensive `Zip321Error` type, and
functions in hthe `zip321` module have been updated to use
this unified error type.
- The `zcash_client_backend::wallet::AccountId` type has been moved
to the `zcash_primitives::zip32` module.
2021-03-25 22:54:42 -07:00
## [0.5.0] - 2021-03-26
### Added
- `zcash_client_backend::address::RecipientAddress`
- `zcash_client_backend::data_api` module, containing the Data Access API.
- `zcash_client_backend::wallet`:
- `AccountId`
- `SpendableNote`
- `OvkPolicy`
- `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`.
- First alpha of TZE support, behind the `zfuture` feature flag.
### Changed
- MSRV is now 1.47.0.
- `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`.
- `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`:
- `scan_block` now takes `&[(AccountId, K: ScanningKey)]`, instead of a
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).
## [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.