librustzcash/zcash_keys/CHANGELOG.md

5.5 KiB

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

  • zcash_keys::address::Address::try_from_zcash_address
  • zcash_keys::address::Receiver

[0.2.0] - 2024-03-25

Added

  • zcash_keys::address:
    • Address::has_receiver
    • UnifiedAddress::{ new, expiry_height, expiry_time, unknown_data, unknown_metadata }
  • impl Display for zcash_keys::keys::AddressGenerationError
  • impl std::error::Error for zcash_keys::keys::AddressGenerationError
  • impl From<hdwallet::error::Error> for zcash_keys::keys::DerivationError when the transparent-inputs feature is enabled.
  • zcash_keys::keys::DecodingError
  • zcash_keys::keys::UnifiedFullViewingKey::{parse, to_unified_incoming_viewing_key}
  • zcash_keys::keys::UnifiedIncomingViewingKey

Changed

  • zcash_keys::keys::UnifiedFullViewingKey::{find_address, default_address} now return Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError> (instead of Option<(UnifiedAddress, DiversifierIndex)> for find_address).
  • zcash_keys::keys::AddressGenerationError
    • Added DiversifierSpaceExhausted variant.
  • At least one of the orchard, sapling, or transparent-inputs features must be enabled for the keys module to be accessible.
  • Updated to zcash_primitives-0.15.0

Changed

  • zcash_keys::address::Address variants now Box their contents to avoid large discrepancies in enum variant sizing.

Removed

  • UnifiedFullViewingKey::new has been placed behind the test-dependencies feature flag. UFVKs should only be produced by derivation from the USK, or parsed from their string representation.
  • zcash_keys::address::UnifiedAddress::from_receivers

Fixed

  • UnifiedFullViewingKey::find_address can now find an address for a diversifier index outside the valid transparent range if you aren't requesting a transparent receiver.

[0.1.1] - 2024-03-04

Added

  • zcash_keys::keys::UnifiedAddressRequest::all

Fixed

  • A missing application of the sapling feature flag was remedied; prior to this fix it was not possible to use this crate without the sapling feature enabled.

[0.1.0] - 2024-03-01

The entries below are relative to the zcash_client_backend crate as of zcash_client_backend 0.10.0.

Added

  • zcash_keys::address (moved from zcash_client_backend::address). Further additions to this module:
    • UnifiedAddress::{has_orchard, has_sapling, has_transparent}
    • UnifiedAddress::receiver_types
    • UnifiedAddress::unknown
  • zcash_keys::encoding (moved from zcash_client_backend::encoding).
  • zcash_keys::keys (moved from zcash_client_backend::keys). Further additions to this module:
    • AddressGenerationError
    • UnifiedAddressRequest
  • A new orchard feature flag has been added to make it possible to build client code without orchard dependendencies.
  • zcash_keys::address::Address::to_zcash_address
  • A new sapling feature flag has been added to make it possible to build client code without sapling dependendencies.
  • A new transparent-inputs feature flag has been added to make it possible to build client code without providing support for generating transparent addresses.

Changed

  • The following methods, method arguments, and enum variants have been placed behind the orchard feature flag:
    • zcash_keys::address::UnifiedAddress::from_receivers no longer takes an Orchard receiver argument unless the orchard feature is enabled.
    • zcash_keys::keys::UnifiedFullViewingKey::new no longer takes an Orchard key argument unless the orchard feature is enabled.
    • zcash_keys::address::UnifiedAddress::orchard
    • zcash_keys::keys::DerivationError::Orchard
    • zcash_keys::keys::UnifiedSpendingKey::orchard
    • zcash_keys::keys::UnifiedFullViewingKey::orchard
  • The following methods and method arguments have been placed behind the sapling feature flag:
    • UnifiedAddress::from_receivers no longer takes a Sapling receiver argument unless the sapling feature is enabled.
    • zcash_keys::keys::UnifiedFullViewingKey::new no longer takes a Sapling key argument unless the sapling feature is enabled.
    • zcash_keys::address::UnifiedAddress::sapling
    • zcash_keys::keys::UnifiedSpendingKey::sapling
    • zcash_keys::keys::UnifiedFullViewingKey::sapling
  • The following methods and method arguments have been placed behind the transparent-inputs feature flag:
    • zcash_keys::keys::UnifiedFullViewingKey::transparent no longer takes a transparent key argument unless the transparent-inputs feature is enabled.
    • zcash_keys::keys::UnifiedSpendingKey::transparent
    • zcash_keys::keys::UnifiedFullViewingKey::transparent
  • zcash_keys::address:
    • RecipientAddress has been renamed to Address.
    • Address::Shielded has been renamed to Address::Sapling.
  • zcash_keys::keys:
    • UnifiedSpendingKey::address now takes an argument that specifies the receivers to be generated in the resulting address. Also, it now returns Result<UnifiedAddress, AddressGenerationError> instead of Option<UnifiedAddress> so that we may better report to the user how address generation has failed.

Removed

  • zcash_keys::address::AddressMetadata (use zcash_client_backend::data_api::TransparentAddressMetadata instead).