9.3 KiB
9.3 KiB
Changelog
All notable changes to this library will be documented in this file.
The format is based on Keep a Changelog, and this library adheres to Rust's notion of Semantic Versioning.
[Unreleased]
Added
- Functionality that enables the receiving and spending of transparent funds,
behind the new
transparent-inputs
feature flag.- A new
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 oftransparent-inputs
functionality.
- A new
- A new
data_api::wallet::spend
method has been added, which is intended to supersede thedata_api::wallet::create_spend_to_address
method. This new method now constructs transactions via interpretation of azcash_client_backend::zip321::TransactionRequest
value. This facilitates the implementation of ZIP 321 support in wallets and provides substantially greater flexibility in transaction creation. - An
unstable
feature flag; this is added to parts of the API that may change in any release. zcash_client_backend::address
:RecipientAddress::Unified
zcash_client_backend::data_api
:PoolType
Recipient
SentTransactionOutput
WalletRead::get_unified_full_viewing_keys
WalletRead::get_account_for_ufvk
WalletRead::get_current_address
WalletRead::get_all_nullifiers
WalletRead::get_transparent_receivers
WalletRead::get_unspent_transparent_outputs
WalletWrite::create_account
WalletWrite::remove_unmined_tx
(behind theunstable
feature flag).WalletWrite::get_next_available_address
WalletWrite::put_received_transparent_utxo
zcash_client_backend::decrypt
:TransferType
zcash_client_backend::proto
:actions
field oncompact_formats::CompactTx
compact_formats::CompactOrchardAction
zcash_client_backend::zip321::TransactionRequest
methods:TransactionRequest::new
for constructing a request fromVec<Payment>
.TransactionRequest::payments
for accessing thePayments
that make up a request.
zcash_client_backend::encoding
KeyError
AddressCodec
implementations forsapling::PaymentAddress
andUnifiedAddress
- 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:
zcash_client_backend::address::UnifiedAddress
zcash_client_backend::keys::{UnifiedSpendingKey
,UnifiedFullViewingKey
,Era
,DecodingError
}zcash_client_backend::encoding::AddressCodec
zcash_client_backend::encoding::encode_payment_address
zcash_client_backend::encoding::encode_transparent_address
Changed
- MSRV is now 1.56.1.
- Bumped dependencies to
ff 0.12
,group 0.12
,bls12_381 0.7
,jubjub 0.9
,zcash_primitives 0.8
,orchard 0.3
. zcash_client_backend::proto
:compact_formats::CompactSpend
has been renamed toCompactSaplingSpend
, and itsepk
field (and associatedset_epk
method) has been renamed toephemeralKey
(andset_ephemeralKey
).compact_formats::CompactOutput
has been renamed toCompactSaplingOutput
.
epk: jubjub::ExtendedPoint
has been replaced byephemeral_key: zcash_note_encryption::EphemeralKeyBytes
in various places:zcash_client_backend::wallet::WalletShieldedOutput
: theepk
field has been replaced byephemeral_key
.zcash_client_backend::proto::compact_formats::CompactSaplingOutput
: theepk
method has been replaced byephemeral_key
.
data_api::wallet::spend_to_address
now takes amin_confirmations
parameter, which the caller can provide to specify the minimum number of confirmations required for notes being selected. A default value of 10 confirmations is recommended.- Renamed the following in
zcash_client_backend::data_api
to use lower-case abbreviations (matching Rust naming conventions):error::Error::InvalidExtSK
toError::InvalidExtSk
testing::MockWalletDB
totesting::MockWalletDb
- Changes to the
data_api::WalletRead
trait:WalletRead::get_target_and_anchor_heights
now takes amin_confirmations
argument that is used to compute an upper bound on the anchor height being returned; this had previously been hardcoded todata_api::wallet::ANCHOR_OFFSET
.WalletRead::get_spendable_notes
has been renamed toget_spendable_sapling_notes
WalletRead::select_spendable_notes
has been renamed toselect_spendable_sapling_notes
- The
zcash_client_backend::data_api::SentTransaction
type has been substantially modified to accommodate handling of transparent inputs. Per-output data has been split out into a new structSentTransactionOutput
andSentTransaction
can now contain multiple outputs, and tracks the fee paid. data_api::WalletWrite::store_received_tx
has been renamed tostore_decrypted_tx
.data_api::ReceivedTransaction
has been renamed toDecryptedTransaction
, and itsoutputs
field has been renamed tosapling_outputs
.- An
Error::MemoForbidden
error has been added to thedata_api::error::Error
enum to report the condition where a memo was specified to be sent to a transparent recipient. zcash_client_backend::decrypt
:decrypt_transaction
now takes aHashMap<_, UnifiedFullViewingKey>
instead ofHashMap<_, ExtendedFullViewingKey>
.
- If no memo is provided when sending to a shielded recipient, the empty memo will be used
zcash_client_backend::keys::spending_key
has been moved to thezcash_client_backend::keys::sapling
module.zcash_client_backend::zip321::MemoError
has been renamed and expanded into a more comprehensiveZip321Error
type, and functions in thezip321
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)
- The api of
welding_rig::ScanningKey
has changed to accommodate batch decryption and to correctly handle scanning with the internal (change) keys derived from ZIP 316 UFVKs and UIVKs. welding_rig::scan_block
now uses batching for trial-decryption of transaction outputs.- 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
data_api::wallet::create_spend_to_address
has been modified to use a unified spending key rather than a Sapling extended spending key.
Removed
zcash_client_backend::data_api
:WalletRead::get_extended_full_viewing_keys
(useWalletRead::get_unified_full_viewing_keys
instead).WalletRead::get_address
(useWalletRead::get_current_address
orWalletWrite::get_next_available_address
instead.)
- The hardcoded
data_api::wallet::ANCHOR_OFFSET
constant. zcash_client_backend::wallet::AccountId
(moved tozcash_primitives::zip32::AccountId
).
[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 forzcash_primitives::zip32:ExtendedFullViewingKey
andzcash_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 ajubjub::SubgroupPoint
to ajubjub::ExtendedPoint
, to match the change to thezcash_primitives
decryption APIs:zcash_client_backend::proto::compact_formats::CompactOutput::epk()
- The
epk
field ofzcash_client_backend::wallet::WalletShieldedOutput
.
zcash_client_backend::decrypt
:decrypt_transaction
now takes a variable with typeP: zcash_primitives::consensus::Parameters
.- The
memo
field ofDecryptedOutput
now has typeMemoBytes
.
zcash_client_backend::wallet
:- The
nf
property ofWalletShieldedSpend
now has the typeNullifier
. - The
account
property ofWalletShieldedSpend
andWalletShieldedOutput
now has the typeAccountId
.
- The
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 toscan_block
now has the type&[(AccountId, Nullifier)]
.
Removed
zcash_client_backend::constants
module (its sub-modules have been moved intozcash_primitives::constants
, and more generally replaced by the new methods on thezcash_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.