mirror of https://github.com/zcash/orchard.git
7.9 KiB
7.9 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Rust's notion of Semantic Versioning.
[Unreleased]
[0.7.0] - 2024-01-26
Licensing
- The license for this crate is now "MIT OR Apache-2.0". The license exception that applied to the Zcash and Zebra projects, other projects designed to integrate with Zcash, and certain forks of Zcash, is no longer necessary. For clarity, this is intended to be a strict relaxation of the previous licensing, i.e. it permits all usage that was previously possible with or without use of the license exception.
Added
orchard::builder
:bundle
BundleMetadata
BundleType
OutputInfo
orchard::bundle::Flags::{ENABLED, SPENDS_DISABLED, OUTPUTS_DISABLED}
orchard::tree::Anchor::empty_tree
Changed
- Migrated to the
zip32
crate. The following types have been replaced by the equivalent ones in that crate are now re-exported from there:orchard::keys::{DiversifierIndex, Scope}
orchard::zip32::ChildIndex
orchard::builder
:Builder::new
now takes the bundle type to be used in bundle construction, instead of taking the flags and anchor separately.Builder::add_recipient
has been renamed toadd_output
in order to clarify than more than one output of a given transaction may be sent to the same recipient.Builder::build
now takes an additionalBundleType
argument that specifies how actions should be padded, instead of using hardcoded padding. It also now returns aResult<Option<(Bundle<...>, BundleMetadata)>, ...>
instead of aResult<Bundle<...>, ...>
.BuildError
has additional variants:SpendsDisabled
OutputsDisabled
AnchorMismatch
SpendInfo::new
now returns aResult<SpendInfo, SpendError>
instead of anOption
.
orchard::keys::SpendingKey::from_zip32_seed
now takes azip32::AccountId
.
Removed
orchard::bundle::Flags::from_parts
[0.6.0] - 2023-09-08
Changed
- MSRV is now 1.65.0.
- Migrated to
incrementalmerkletree 0.5
.
[0.5.0] - 2023-06-06
Changed
- Migrated to
zcash_note_encryption 0.4
,incrementalmerkletree 0.4
,bridgetree 0.3
.bridgetree
is now exclusively a test dependency.
[0.4.0] - 2023-04-11
Added
orchard::builder
:{SpendInfo::new, InputView, OutputView}
Builder::{spends, outputs}
SpendError
OutputError
orchard::keys
:PreparedEphemeralPublicKey
PreparedIncomingViewingKey
- impls of
memuse::DynamicUsage
for:orchard::note::Nullifier
orchard::note_encryption::OrchardDomain
- impls of
Eq
for:orchard::zip32::ChildIndex
orchard::value::ValueSum
Changed
- MSRV is now 1.60.0.
- Migrated to
ff 0.13
,group 0.13
,pasta_curves 0.5
,halo2_proofs 0.3
,halo2_gadgets 0.3
,reddsa 0.5
,zcash_note_encryption 0.3
. orchard::builder
:Builder::{add_spend, add_output}
now use concrete error types instead of&'static str
s.Error
has been renamed toBuildError
to differentiate from new error types.BuildError
now implementsstd::error::Error
andstd::fmt::Display
.
Fixed
- Several bugs have been fixed that were preventing Orchard bundles from being created or verified on 32-bit platforms, or with recent versions of Rust.
[0.3.0] - 2022-10-19
Added
orchard::Proof::add_to_batch
orchard::address::Address::diversifier
orchard::keys::Diversifier::from_bytes
orchard::note
:RandomSeed
Note::{from_parts, rseed}
orchard::circuit::Circuit::from_action_context
Changed
- Migrated to
zcash_note_encryption 0.2
.
[0.2.0] - 2022-06-24
Added
orchard::bundle::BatchValidator
orchard::builder::Builder::value_balance
orchard::note_encryption
:CompactAction::from_parts
CompactAction::nullifier
OrchardDomain::for_nullifier
- Low-level APIs in
orchard::value
for handlingValueCommitment
s. These are useful in code that constructs proof witnesses itself, but note that doing so requires a detailed knowledge of the Zcash protocol to avoid privacy and correctness pitfalls.ValueCommitTrapdoor
ValueCommitment::derive
Changed
- Migrated to
halo2_proofs 0.2
.
[0.1.0] - 2022-05-10
Changed
- Migrated to
bitvec 1
,ff 0.12
,group 0.12
,incrementalmerkletree 0.3
,pasta_curves 0.4
,halo2_proofs 0.1
,reddsa 0.3
. orchard::bundle
:Action
has been moved toorchard::Action
.Bundle::{try_}authorize
have been renamed toBundle::{try_}map_authorization
.Flags::from_byte
now returnsOption<Flags>
instead ofio::Result<Flags>
.
impl Sub for orchard::value::NoteValue
now returnsValueSum
instead ofOption<ValueSum>
, as the result is guaranteed to be within the valid range ofValueSum
.
[0.1.0-beta.3] - 2022-04-06
Added
orchard::keys
:Scope
enum, for distinguishing external and internal scopes for viewing keys and addresses.FullViewingKey::{to_ivk, to_ovk}
, which each take aScope
argument.FullViewingKey::scope_for_address
Changed
- Migrated to
halo2_proofs 0.1.0-beta.4
,incrementalmerkletree 0.3.0-beta.2
. orchard::builder
:Builder::add_spend
now requires that theFullViewingKey
matches the givenNote
, and handles any scoping itself (instead of requiring the caller to pass theFullViewingKey
for the correct scope).
orchard::keys
:FullViewingKey::{address, address_at}
now each take aScope
argument.
Removed
orchard::keys
:FullViewingKey::derive_internal
impl From<&FullViewingKey> for IncomingViewingKey
(useFullViewingKey::to_ivk
instead).impl From<&FullViewingKey> for OutgoingViewingKey
(useFullViewingKey::to_ovk
instead).
[0.1.0-beta.2] - 2022-03-22
Added
orchard::keys
:DiversifierIndex::to_bytes
FullViewingKey::derive_internal
IncomingViewingKey::diversifier_index
orchard::note
:impl PartialEq, Eq, PartialOrd, Ord for Nullifier
orchard::primitives::redpallas::VerificationKey::verify
orchard::tree
:MerklePath::from_parts
impl PartialEq, Eq, PartialOrd, Ord for MerkleHashOrchard
impl From<orchard::bundle::BundleCommitment> for [u8; 32]
Clone
impls for various structs:orchard::Bundle::{recover_outputs_with_ovks, recover_output_with_ovk}
orchard::builder
:InProgress, SigningMetadata, SigningParts, Unauthorized, Unproven
orchard::circuit::Circuit
orchard::keys::SpendAuthorizingKey
orchard::primitives::redpallas::SigningKey
Changed
- MSRV is now 1.56.1.
- Bumped dependencies to
pasta_curves 0.3
,halo2_proofs 0.1.0-beta.3
. - The following methods now have an additional
rng: impl RngCore
argument:orchard::builder::Bundle::create_proof
orchard::builder::InProgress::create_proof
orchard::circuit::Proof::create
orchard::Bundle::commitment
now requires the boundV: Copy + Into<i64>
instead ofi64: From<&'a V>
.orchard::Bundle::binding_validating_key
now requires the boundV: Into<i64>
instead ofV: Into<ValueSum>
.orchard::builder::InProgressSignatures
andorchard::bundle::Authorization
now haveDebug
bounds on themselves and their associated types.
Removed
orchard::bundle
:commitments::hash_bundle_txid_data
(useBundle::commitment
instead).commitments::hash_bundle_auth_data
(useBundle::authorizing_commitment
instead).
orchard::keys
:FullViewingKey::default_address
IncomingViewingKey::default_address
DiversifierKey
(use the APIs onFullViewingKey
andIncomingViewingKey
instead).
impl std::hash::Hash for orchard::tree::MerkleHashOrchard
(useBTreeMap
instead ofHashMap
).orchard::value::ValueSum::from_raw
[0.1.0-beta.1] - 2021-12-17
Initial release!