Add details of unreleased changes to changelogs

This commit is contained in:
Jack Grigg 2021-02-22 16:59:07 +00:00
parent 9f14c757e6
commit 1f6f45bbe7
4 changed files with 166 additions and 4 deletions

View File

@ -6,7 +6,37 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
TBD
### Added
- `zcash_client_backend::address::RecipientAddress`
- `zcash_client_backend::data_api` module, containing the Data Access API.
- `zcash_client_backend::wallet`:
- `AccountId`
- `SpendableNote`
- `OvkPolicy`
- First alpha of TZE support, behind the `zfuture` feature flag.
### Changed
- `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`.
- `zcash_client_backend::decrypt::decrypt_transaction` now takes a variable with
type `P: zcash_primitives::consensus::Parameters`.
- `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, IncomingViewingKey)]`, 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

View File

@ -6,7 +6,27 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
TBD
This release contains a major refactor of the APIs to leverage the new Data
Access API in the `zcash_client_backend` crate. API names are almost all the
same as before, but have been reorganized.
### Added
- `zcash_client_sqlite::BlockDB`, a read-only wrapper for the SQLite connection
to the block cache database.
- `zcash_client_sqlite::WalletDB`, a read-only wrapper for the SQLite connection
to the wallet database.
- `zcash_client_sqlite::DataConnStmtCache`, a read-write wrapper for the SQLite
connection to the wallet database. Returned by `WalletDB::get_update_ops`.
- `zcash_client_sqlite::NoteId`
### Changed
- APIs now take `&BlockDB` and `&WalletDB<P>` arguments, instead of paths to the
block cache and wallet databases.
- The library no longer uses the `mainnet` feature flag to specify the network
type. APIs now take a `P: zcash_primitives::consensus::Parameters` variable.
### Removed
- `zcash_client_sqlite::address` module (moved to `zcash_client_backend`).
## [0.2.1] - 2020-10-24
### Fixed

View File

@ -6,7 +6,100 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
TBD
### Added
- Support for implementing candidate ZIPs before they have been selected for a
network upgrade, behind the `zfuture` feature flag.
- At runtime, these ZIPs are gated behind the new `NetworkUpgrade::ZFuture`
enum case, which is inaccessible without the `zfuture` feature flag. This
pseudo-NU can be enabled for private testing using a custom implementation
of the `Parameters` trait.
- New structs and methods:
- `zcash_primitives::consensus`:
- `BlockHeight`
- New methods on the `Parameters` trait:
- `coin_type`
- `hrp_sapling_extended_spending_key`
- `hrp_sapling_extended_full_viewing_key`
- `hrp_sapling_payment_address`
- `b58_pubkey_address_prefix`
- `b58_script_address_prefix`
- The `Network` enum, which enables code to be generic over the network type
at runtime.
- `zcash_primitives::primitives::Nullifier` struct.
- `zcash_primitives::transaction`:
- `TxVersion` enum, representing the set of valid transaction format
versions.
- `SignableInput` enum, encapsulating per-input data used when
creating transaction signatures.
- Test helpers, behind the `test-dependencies` feature flag:
- `zcash_primitives::prover::mock::MockTxProver`, for building transactions in
tests without creating proofs.
- `zcash_primitives::transaction::Builder::test_only_new_with_rng` constructor
which accepts a non-`CryptoRng` randomness source (for e.g. deterministic
tests).
- `proptest` APIs for generating arbitrary Zcash types.
- New constants:
- `zcash_primitives::consensus`:
- `H0`, the height of the genesis block.
- `MAIN_NETWORK`
- `TEST_NETWORK`
- `zcash_primitives::constants::{mainnet, testnet, regtest}` modules,
containing network-specific constants.
- `zcash_primitives::note_encryption`:
- `ENC_CIPHERTEXT_SIZE`
- `OUT_CIPHERTEXT_SIZE`
- `zcash_primitives::transaction::components::amount`:
- `COIN`
- `MAX_MONEY`
- More implementations of standard traits:
- `zcash_primitives::consensus`:
- `Parameters: Clone`
- `MainNetwork: PartialEq`
- `TestNetwork: PartialEq`
- `zcash_primitives::legacy`:
- `Script: PartialEq`
- `TransparentAddress: Clone + PartialOrd + Hash`
- `zcash_primitives::redjubjub::PublicKey: Clone`
- `zcash_primitives::transaction`:
- `Transaction: Clone`
- `TransactionData: Clone + Default`
- `components::Amount: Eq + PartialOrd + Ord`
- `components::TxIn: Clone + PartialEq`
- `components::TxOut: PartialEq`
- `components::SpendDescription: Clone`
- `components::OutputDescription: Clone`
- `components::SproutProof: Clone`
- `components::JSDescription: Clone`
- `zcash_primitives::zip32::DiversifierIndex: Default`
### Changed
- Trial decryption using the APIs in `zcash_primitives::note_encryption` is now
over 60% faster at detecting which notes are relevant.
- Part of this improvement was achieved by changing the APIs to take `epk` as
a `&jubjub::ExtendedPoint` instead of a `&SubgroupPoint`.
- Various APIs now take the network parameters as an explicit variable instead
of a type parameter:
- `zcash_primitives::consensus::BranchId::for_height`
- The `zcash_primitives::note_encryption` APIs.
- `zcash_primitives::transaction::builder`:
- `SaplingOutput::new`
- `Builder::new`
- `Builder::new_with_rng`
- `Parameters::activation_height` and `Parameters::is_nu_active` now take
`&self`.
- `zcash_primitives::merkle_tree::CommitmentTree::new` has been renamed to
`CommitmentTree::empty`.
- `zcash_primitives::primitives::Note::nf` now returns `Nullifier`.
- `zcash_primitives::transaction`:
- The `overwintered`, `version`, and `version_group_id` properties of the
`Transaction` and `TransactionData` structs have been replaced by
`version: TxVersion`.
- `components::amount::DEFAULT_FEE` is now 1000 zatoshis, following
[ZIP 313](https://zips.z.cash/zip-0313).
- The `nullifier` property of `components::SpendDescription` now has the type
`Nullifier`.
- `signature_hash` and `signature_hash_data` now take a `SignableInput`
argument instead of a `transparent_input` argument.
## [0.4.0] - 2020-09-09
### Added

View File

@ -6,7 +6,26 @@ and this library adheres to Rust's notion of
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
TBD
### Added
- `zcash_proofs::ZcashParameters`
- `zcash_proofs::parse_parameters`
- `zcash_proofs::prover::LocalProver::from_bytes`
- The `zcash_proofs::constants` module, containing constants and helpers used by
the `zcash_proofs::circuit::ecc::fixed_base_multiplication` gadget:
- The `FixedGeneratorOwned` type alias.
- `generate_circuit_generator`
- The six Zcash fixed generators:
- `PROOF_GENERATION_KEY_GENERATOR`
- `NOTE_COMMITMENT_RANDOMNESS_GENERATOR`
- `NULLIFIER_POSITION_GENERATOR`
- `VALUE_COMMITMENT_VALUE_GENERATOR`
- `VALUE_COMMITMENT_RANDOMNESS_GENERATOR`
- `SPENDING_KEY_GENERATOR`
- `zcash_proofs::sapling::SaplingProvingContext: Default`
- `zcash_proofs::sapling::SaplingVerificationContext: Default`
### Changed
- `zcash_proofs::load_parameters` now returns `ZcashParameters`.
## [0.4.0] - 2020-09-09
### Changed