librustzcash/zcash_client_sqlite/CHANGELOG.md

5.2 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

  • Implementations of zcash_client_backend::data_api::WalletReadTransparent and WalletWriteTransparent have been added. These implementations are available only when the transparent-inputs feature flag is enabled.
  • New error variants:
    • SqliteClientError::TransparentAddress, to support handling of errors in transparent address decoding.
    • SqliteClientError::RequestedRewindInvalid, to report when requested rewinds exceed supported bounds.

Changed

  • MSRV is now 1.56.1.
  • Bumped dependencies to ff 0.11, group 0.11, jubjub 0.8.
  • Renamed the following to use lower-case abbreviations (matching Rust naming conventions):
    • zcash_client_sqlite::BlockDB to BlockDb
    • zcash_client_sqlite::WalletDB to WalletDb
    • zcash_client_sqlite::error::SqliteClientError::IncorrectHRPExtFVK to IncorrectHrpExtFvk.
  • The SQLite implementations of zcash_client_backend::data_api::WalletRead and WalletWrite have been updated to reflect the changes to those traits.
  • Renamed the following to reflect their Sapling-specific nature:
    • zcash_client_sqlite::wallet:
      • get_spendable_notes to get_spendable_sapling_notes.
      • select_spendable_notes to select_spendable_sapling_notes.
  • Altered the arguments to zcash_client_sqlite::wallet::put_sent_note to take the components of a DecryptedOutput value to allow this method to be used in contexts where a transaction has just been constructed, rather than only in the case that a transaction has been decrypted after being retrieved from the network.
  • A new non-null column, output_pool has been added to the sent_notes table to enable distinguishing between Sapling and transparent outputs (and in the future, outputs to other pools). This will require a migration, which may need to be performed in multiple steps. Values for this column should be assigned by inference from the address type in the stored data.

Deprecated

  • A number of public API methods that are used internally to support the zcash_client_backend::data_api::{WalletRead, WalletWrite} interfaces have been deprecated, and will be removed from the public API in a future release. Users should depend upon the versions of these methods exposed via the zcash_client_backend::data_api traits mentioned above instead.
    • Deprecated in zcash_client_sqlite::wallet:
      • get_address
      • get_extended_full_viewing_keys
      • is_valid_account_extfvk
      • get_balance
      • get_balance_at
      • get_sent_memo
      • block_height_extrema
      • get_tx_height
      • get_block_hash
      • get_rewind_height
      • get_commitment_tree
      • get_witnesses
      • get_nullifiers
      • insert_block
      • put_tx_meta
      • put_tx_data
      • mark_sapling_note_spent
      • delete_utxos_above
      • put_receiverd_note
      • insert_witness
      • prune_witnesses
      • update_expired_notes
      • put_sent_note
      • put_sent_utxo
      • insert_sent_note
      • insert_sent_utxo
      • get_address
    • Deprecated in zcash_client_sqlite::wallet::transact:
      • get_spendable_sapling_notes
      • select_spendable_sapling_notes

[0.3.0] - 2021-03-26

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

  • MSRV is now 1.47.0.
  • 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).

Fixed

  • Shielded transactions created by the wallet that have no change output (fully spending their input notes) are now correctly detected as mined when scanning compact blocks.
  • Unshielding transactions created by the wallet (with a transparent recipient address) that have no change output no longer cause a panic.

[0.2.1] - 2020-10-24

Fixed

  • transact::create_to_address now correctly reconstructs notes from the data DB after Canopy activation (zcash/librustzcash#311). This is critcal to correct operation of spends after Canopy.

[0.2.0] - 2020-09-09

Changed

  • MSRV is now 1.44.1.
  • Bumped dependencies to ff 0.8, group 0.8, jubjub 0.5.1, protobuf 2.15, rusqlite 0.24, zcash_primitives 0.4, zcash_client_backend 0.4.

[0.1.0] - 2020-08-24

Initial release.