Merge pull request #772 from zcash/release-0.10
`zcash_primitives 0.10.0`, `zcash_proofs 0.10.0`, `zcash_client_backend 0.7.0`, `zcash_client_sqlite 0.5.0`
This commit is contained in:
commit
847c187beb
|
@ -7,46 +7,47 @@ and this library adheres to Rust's notion of
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.7.0] - 2023-02-01
|
||||||
### Added
|
### Added
|
||||||
- `zcash_client_backend::data_api::wallet`:
|
- `zcash_client_backend::data_api::wallet`:
|
||||||
|
- `input_selection::Proposal::{is_shielding, target_height}`
|
||||||
- `propose_transfer`
|
- `propose_transfer`
|
||||||
- `propose_shielding`
|
- `propose_shielding`
|
||||||
- `create_proposed_transaction`
|
- `create_proposed_transaction`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- MSRV is now 1.60.0.
|
- MSRV is now 1.60.0.
|
||||||
|
- Bumped dependencies to `zcash_primitives 0.10`.
|
||||||
- `zcash_client_backend::data_api::wallet::shield_transparent_funds` now
|
- `zcash_client_backend::data_api::chain`:
|
||||||
takes a `shielding_threshold` argument that can be used to specify the
|
- `BlockSource::with_blocks` now takes `from_height` as `Option<BlockHeight>`
|
||||||
minimum value allowed as input to a shielding transaction. Previously
|
instead of `BlockHeight`. Trait implementors should return all available
|
||||||
the shielding threshold was fixed at 100000 zatoshis.
|
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
|
||||||
|
activation height).
|
||||||
|
- 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.
|
||||||
- Note commitments now use
|
- Note commitments now use
|
||||||
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
|
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
|
||||||
`bls12_381::Scalar` in the following places:
|
`bls12_381::Scalar` in the following places:
|
||||||
- The `cmu` field of `zcash_client_backend::wallet::WalletShieldedOutput`.
|
- The `cmu` field of `zcash_client_backend::wallet::WalletShieldedOutput`.
|
||||||
- `zcash_client_backend::proto::compact_formats::CompactSaplingOutput::cmu`.
|
- `zcash_client_backend::proto::compact_formats::CompactSaplingOutput::cmu`.
|
||||||
|
|
||||||
- **breaking changes** to `zcash_client_backend::data_api::chain::validate_chain`
|
|
||||||
- `validate_chain` now requires a non-optional `validate_from` parameter that
|
|
||||||
indicates the starting point of the `BlockSourceT` validation. An Optional
|
|
||||||
`limit` can be specified as well. This allows 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.
|
|
||||||
|
|
||||||
- `params: &ParamsT` has been removed from the arguments since they were only
|
|
||||||
needed to fall back to `sapling_activation_height` when `None` as passed as
|
|
||||||
the `validate_from` argument. Implementors of `BlockSource` are resposible
|
|
||||||
of definining how they will fall back to a suitable value when `validate_from`
|
|
||||||
is `None`.
|
|
||||||
|
|
||||||
- When passing a `limit` to the chain validation function, a successful output,
|
|
||||||
indicates that the chain has been validated on its continuity of heights and hashes
|
|
||||||
within the limits of the range `[validate_from, validate_from + limit)`.
|
|
||||||
Callers providing a `limit` argument are responsible for making subsequent calls to
|
|
||||||
`validate_chain()` in order to complete validating the totality of the block_source.
|
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- `zcash_client_backend::data_api`:
|
- `zcash_client_backend::data_api`:
|
||||||
- `WalletWrite::remove_unmined_tx` (was behind the `unstable` feature flag).
|
- `WalletWrite::remove_unmined_tx` (was behind the `unstable` feature flag).
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "zcash_client_backend"
|
name = "zcash_client_backend"
|
||||||
description = "APIs for creating shielded Zcash light clients"
|
description = "APIs for creating shielded Zcash light clients"
|
||||||
version = "0.6.1"
|
version = "0.7.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Jack Grigg <jack@z.cash>",
|
"Jack Grigg <jack@z.cash>",
|
||||||
"Kris Nuttycombe <kris@electriccoin.co>"
|
"Kris Nuttycombe <kris@electriccoin.co>"
|
||||||
|
@ -23,7 +23,7 @@ development = ["zcash_proofs"]
|
||||||
zcash_address = { version = "0.2", path = "../components/zcash_address" }
|
zcash_address = { version = "0.2", path = "../components/zcash_address" }
|
||||||
zcash_encoding = { version = "0.2", path = "../components/zcash_encoding" }
|
zcash_encoding = { version = "0.2", path = "../components/zcash_encoding" }
|
||||||
zcash_note_encryption = { version = "0.2", path = "../components/zcash_note_encryption" }
|
zcash_note_encryption = { version = "0.2", path = "../components/zcash_note_encryption" }
|
||||||
zcash_primitives = { version = "0.9", path = "../zcash_primitives" }
|
zcash_primitives = { version = "0.10", path = "../zcash_primitives" }
|
||||||
|
|
||||||
# Dependencies exposed in a public API:
|
# Dependencies exposed in a public API:
|
||||||
# (Breaking upgrades to these require a breaking upgrade to this crate.)
|
# (Breaking upgrades to these require a breaking upgrade to this crate.)
|
||||||
|
@ -84,7 +84,7 @@ proptest = "1.0.0"
|
||||||
rand_core = "0.6"
|
rand_core = "0.6"
|
||||||
rand_xorshift = "0.3"
|
rand_xorshift = "0.3"
|
||||||
tempfile = "3.1.0"
|
tempfile = "3.1.0"
|
||||||
zcash_proofs = { version = "0.9", path = "../zcash_proofs" }
|
zcash_proofs = { version = "0.10", path = "../zcash_proofs" }
|
||||||
zcash_address = { version = "0.2", path = "../components/zcash_address", features = ["test-dependencies"] }
|
zcash_address = { version = "0.2", path = "../components/zcash_address", features = ["test-dependencies"] }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|
|
@ -6,6 +6,8 @@ and this library adheres to Rust's notion of
|
||||||
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.7.0] - 2023-02-01
|
||||||
### Added
|
### Added
|
||||||
- `zcash_client_sqlite::FsBlockDb::rewind_to_height` rewinds the BlockMeta Db
|
- `zcash_client_sqlite::FsBlockDb::rewind_to_height` rewinds the BlockMeta Db
|
||||||
to the specified height following the same logic as homonymous functions on
|
to the specified height following the same logic as homonymous functions on
|
||||||
|
@ -17,32 +19,11 @@ and this library adheres to Rust's notion of
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- MSRV is now 1.60.0.
|
- MSRV is now 1.60.0.
|
||||||
|
- Bumped dependencies to `zcash_primitives 0.10`, `zcash_client_backend 0.7`.
|
||||||
- **breaking changes** to `validate_chain`.
|
- `zcash_client_backend::FsBlockDbError`:
|
||||||
- `zcash_client_backend::data_api::chain::validate_chain` now requires a
|
- Renamed `FsBlockDbError::{DbError, FsError}` to `FsBlockDbError::{Db, Fs}`.
|
||||||
non-optional `validate_from` parameter that indicates the starting point of
|
- Added `FsBlockDbError::MissingBlockPath`.
|
||||||
the `BlockSourceT` validation. An Optional `limit` can be specified as
|
- `impl fmt::Display for FsBlockDbError`
|
||||||
well. This allows callers to validate smaller intervals of the given
|
|
||||||
`BlockSourceT` shortening processing times of the function call at the
|
|
||||||
expense of obtaining a partial result on a given section of interest of the
|
|
||||||
block source.
|
|
||||||
- `params: &ParamsT` has been removed from the arguments since they were only needed
|
|
||||||
to fall back to `sapling_activation_height` when `None` as passed as the
|
|
||||||
`validate_from` argument. Passing `None` as validation start point on a
|
|
||||||
pre-populated `block_source` would result in an error
|
|
||||||
`ChainError::block_height_discontinuity(sapling_activation_height - 1, current_height)`
|
|
||||||
- With this new API callers must specify a concrete `validate_from` argument and
|
|
||||||
assume that `validate_chain` will not take any default fallbacks to chain
|
|
||||||
`ParamsT`.
|
|
||||||
- The addition of a `limit` to the chain validation function changes the
|
|
||||||
meaning of its successful output, being now a `BlockHeight, BlockHash)` tuple
|
|
||||||
indicating the block height and block has up to which the chain as been
|
|
||||||
validated on its continuity of heights and hashes. Callers providing a
|
|
||||||
`limit` aregumente are responsible of subsequent calls to `validate_chain()`
|
|
||||||
to complete validating the totality of the block_source.
|
|
||||||
|
|
||||||
### Removed
|
|
||||||
- implementation of unstable function `WalletWrite::remove_unmined_tx`,
|
|
||||||
|
|
||||||
## [0.4.2] - 2022-12-13
|
## [0.4.2] - 2022-12-13
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "zcash_client_sqlite"
|
name = "zcash_client_sqlite"
|
||||||
description = "An SQLite-based Zcash light client"
|
description = "An SQLite-based Zcash light client"
|
||||||
version = "0.4.2"
|
version = "0.5.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Jack Grigg <jack@z.cash>",
|
"Jack Grigg <jack@z.cash>",
|
||||||
"Kris Nuttycombe <kris@electriccoin.co>"
|
"Kris Nuttycombe <kris@electriccoin.co>"
|
||||||
|
@ -14,8 +14,8 @@ edition = "2021"
|
||||||
rust-version = "1.60"
|
rust-version = "1.60"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
zcash_client_backend = { version = "0.6", path = "../zcash_client_backend" }
|
zcash_client_backend = { version = "0.7", path = "../zcash_client_backend" }
|
||||||
zcash_primitives = { version = "0.9", path = "../zcash_primitives" }
|
zcash_primitives = { version = "0.10", path = "../zcash_primitives" }
|
||||||
|
|
||||||
# Dependencies exposed in a public API:
|
# Dependencies exposed in a public API:
|
||||||
# (Breaking upgrades to these require a breaking upgrade to this crate.)
|
# (Breaking upgrades to these require a breaking upgrade to this crate.)
|
||||||
|
@ -51,8 +51,8 @@ rand_core = "0.6"
|
||||||
regex = "1.4"
|
regex = "1.4"
|
||||||
tempfile = "3"
|
tempfile = "3"
|
||||||
zcash_note_encryption = { version = "0.2", path = "../components/zcash_note_encryption" }
|
zcash_note_encryption = { version = "0.2", path = "../components/zcash_note_encryption" }
|
||||||
zcash_proofs = { version = "0.9", path = "../zcash_proofs" }
|
zcash_proofs = { version = "0.10", path = "../zcash_proofs" }
|
||||||
zcash_primitives = { version = "0.9", path = "../zcash_primitives", features = ["test-dependencies"] }
|
zcash_primitives = { version = "0.10", path = "../zcash_primitives", features = ["test-dependencies"] }
|
||||||
zcash_address = { version = "0.2", path = "../components/zcash_address", features = ["test-dependencies"] }
|
zcash_address = { version = "0.2", path = "../components/zcash_address", features = ["test-dependencies"] }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|
|
@ -11,14 +11,14 @@ rust-version = "1.60"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
blake2b_simd = "1"
|
blake2b_simd = "1"
|
||||||
zcash_primitives = { version = "0.9", path = "../zcash_primitives", features = ["zfuture" ] }
|
zcash_primitives = { version = "0.10", path = "../zcash_primitives", features = ["zfuture" ] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
ff = "0.12"
|
ff = "0.12"
|
||||||
jubjub = "0.9"
|
jubjub = "0.9"
|
||||||
rand_core = "0.6"
|
rand_core = "0.6"
|
||||||
zcash_address = { version = "0.2", path = "../components/zcash_address" }
|
zcash_address = { version = "0.2", path = "../components/zcash_address" }
|
||||||
zcash_proofs = { version = "0.9", path = "../zcash_proofs" }
|
zcash_proofs = { version = "0.10", path = "../zcash_proofs" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
transparent-inputs = []
|
transparent-inputs = []
|
||||||
|
|
|
@ -6,6 +6,8 @@ and this library adheres to Rust's notion of
|
||||||
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.10.0] - 2023-02-01
|
||||||
### Added
|
### Added
|
||||||
- `zcash_primitives::sapling`:
|
- `zcash_primitives::sapling`:
|
||||||
- `keys::DiversifiedTransmissionKey`
|
- `keys::DiversifiedTransmissionKey`
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "zcash_primitives"
|
name = "zcash_primitives"
|
||||||
description = "Rust implementations of the Zcash primitives"
|
description = "Rust implementations of the Zcash primitives"
|
||||||
version = "0.9.1"
|
version = "0.10.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Jack Grigg <jack@z.cash>",
|
"Jack Grigg <jack@z.cash>",
|
||||||
"Kris Nuttycombe <kris@electriccoin.co>"
|
"Kris Nuttycombe <kris@electriccoin.co>"
|
||||||
|
|
|
@ -6,6 +6,8 @@ and this library adheres to Rust's notion of
|
||||||
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.10.0] - 2023-02-01
|
||||||
### Added
|
### Added
|
||||||
- `zcash_proofs::circuit::sapling`:
|
- `zcash_proofs::circuit::sapling`:
|
||||||
- `ValueCommitmentOpening`
|
- `ValueCommitmentOpening`
|
||||||
|
@ -13,6 +15,7 @@ and this library adheres to Rust's notion of
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- MSRV is now 1.60.0.
|
- MSRV is now 1.60.0.
|
||||||
|
- Bumped dependencies to `zcash_primitives 0.10`.
|
||||||
- Note commitments now use
|
- Note commitments now use
|
||||||
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
|
`zcash_primitives::sapling::note::ExtractedNoteCommitment` instead of
|
||||||
`bls12_381::Scalar` in `zcash_proofs::sapling`:
|
`bls12_381::Scalar` in `zcash_proofs::sapling`:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "zcash_proofs"
|
name = "zcash_proofs"
|
||||||
description = "Zcash zk-SNARK circuits and proving APIs"
|
description = "Zcash zk-SNARK circuits and proving APIs"
|
||||||
version = "0.9.0"
|
version = "0.10.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Jack Grigg <jack@z.cash>",
|
"Jack Grigg <jack@z.cash>",
|
||||||
]
|
]
|
||||||
|
@ -17,7 +17,7 @@ categories = ["cryptography::cryptocurrencies"]
|
||||||
all-features = true
|
all-features = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
zcash_primitives = { version = "0.9", path = "../zcash_primitives" }
|
zcash_primitives = { version = "0.10", path = "../zcash_primitives" }
|
||||||
|
|
||||||
# Dependencies exposed in a public API:
|
# Dependencies exposed in a public API:
|
||||||
# (Breaking upgrades to these require a breaking upgrade to this crate.)
|
# (Breaking upgrades to these require a breaking upgrade to this crate.)
|
||||||
|
|
Loading…
Reference in New Issue