2023-04-13 23:35:15 +00:00
|
|
|
# Changelog for zcash-haskell
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
2024-12-19 15:23:12 +00:00
|
|
|
## [0.7.7.0]
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Updated Rust crates
|
|
|
|
|
2024-12-14 12:51:06 +00:00
|
|
|
## [0.7.6.0]
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Removed workaround for missing `time` field in Zebra's `getblock` response.
|
|
|
|
|
2024-11-21 14:19:43 +00:00
|
|
|
## [0.7.5.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Sapling commitment node functions
|
|
|
|
- Sapling Merkle path test
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Upgraded Rust dependencies to latest versions:
|
|
|
|
- `zcash_primitives` 0.19.0
|
|
|
|
- `zcash_client_backend` 0.14.0
|
|
|
|
- `orchard` 0.10.0
|
|
|
|
- `sapling-crypto` 0.3.0
|
|
|
|
- `incrementalmerkletree` 0.7.0
|
|
|
|
- `zip32` 0.1.2
|
|
|
|
|
|
|
|
## [0.7.4.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- `MerklePath`
|
|
|
|
|
|
|
|
## [0.7.3.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Function to create an Orchard hash from a note commitment
|
|
|
|
- Function to hash Orchard commitments
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified frontiers to use `HexString` for ommers
|
|
|
|
- Optimized `createTransaction`
|
|
|
|
|
|
|
|
## [0.7.2.0]
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified Sapling commitment trees to use Frontier
|
|
|
|
|
|
|
|
## [0.7.1.1]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- `ToJSON` instance for `BlockResponse`
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Updated libraries:
|
|
|
|
- conduit
|
|
|
|
- data-fix
|
|
|
|
- happy
|
|
|
|
- happy-lib
|
|
|
|
- http-conduit
|
|
|
|
- iproute
|
|
|
|
- mono-traversable
|
|
|
|
- network
|
|
|
|
- secp256k1-haskell
|
|
|
|
- strict
|
|
|
|
- typed-process
|
|
|
|
|
|
|
|
## [0.7.1.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Type `OrchardFrontier`
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified Orchard commitment trees functions to use Frontier
|
|
|
|
|
|
|
|
## [0.7.0.2]
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified witness update functions to skip the process if no commitments are present
|
|
|
|
|
|
|
|
## [0.7.0.1]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
- New error type `PrivacyPolicyError`
|
|
|
|
|
|
|
|
## [0.7.0.0]
|
|
|
|
|
|
|
|
- Implement `wagyu-zcash-parameters` in Rust bindings
|
|
|
|
|
|
|
|
## [0.6.2.3]
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Decoding of unified addresses with no transparent receivers
|
|
|
|
|
|
|
|
## [0.6.2.2]
|
|
|
|
|
|
|
|
- Added JSON instances for `ZcashNet`
|
|
|
|
- Added JSON instances for `Transaction`
|
|
|
|
- Added `ValidAddress`
|
|
|
|
|
2024-07-01 21:05:33 +00:00
|
|
|
## [0.6.2.1]
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified the parsing of raw transactions for shielded outputs
|
|
|
|
- Upgraded to GHC 9.6.5
|
|
|
|
|
2024-05-16 15:42:44 +00:00
|
|
|
## [0.6.2.0]
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Performance enhancement for transaction creation
|
|
|
|
|
2024-05-01 00:14:30 +00:00
|
|
|
## [0.6.1.1]
|
|
|
|
|
2024-05-01 14:12:58 +00:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Type for transaction creation errors
|
|
|
|
- Types for Sapling circuit parameters
|
|
|
|
- Function to create transaction
|
2024-05-01 19:24:18 +00:00
|
|
|
- Function to derive distinct transparent spending keys
|
2024-05-01 14:12:58 +00:00
|
|
|
|
2024-05-01 00:14:30 +00:00
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Add `Read` instance for `Rseed`
|
|
|
|
|
2024-04-30 21:54:15 +00:00
|
|
|
## [0.6.1.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Function to create a raw transaction
|
|
|
|
- New types for transaction creation:
|
|
|
|
- `Rseed`
|
|
|
|
- `TransparentTxSpend`
|
|
|
|
- `SaplingTxSpend`
|
|
|
|
- `OrchardTxSpend`
|
|
|
|
- `OutgoingNote`
|
|
|
|
- Rust crates:
|
|
|
|
- `secp256k1`
|
|
|
|
- `jubjub`
|
|
|
|
- `rand_core`
|
|
|
|
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- `DecodedNote` type now includes a field for `rho` and one for `rseed`
|
|
|
|
|
2024-04-29 15:27:45 +00:00
|
|
|
## [0.6.0.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Rust crates:
|
|
|
|
- `sapling-crypto` 0.1.3
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified handling of `ShieldedOutput`s based on new Rust crates
|
|
|
|
- Upgraded Rust crates:
|
|
|
|
- `orchard` to 0.7.1
|
|
|
|
- `zcash_primitives` to 0.14.0
|
|
|
|
- `zcash_client_backend` to 0.11.1
|
|
|
|
|
|
|
|
|
2024-04-26 00:56:29 +00:00
|
|
|
## [0.5.5.4]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Functions to update Sapling witnesses.
|
|
|
|
- Functions to update Orchard witnesses.
|
|
|
|
|
2024-04-18 01:14:03 +00:00
|
|
|
## [0.5.5.3]
|
|
|
|
|
2024-04-18 00:51:12 +00:00
|
|
|
### Added
|
|
|
|
|
2024-04-26 00:56:29 +00:00
|
|
|
- Added function to generate an `ExchangeAddress` in Human Readable Format Using a `TransparentAddress` in HRF
|
|
|
|
- `encodeExchangeAddress` a function to create a `ExchangeAddress` in HRF
|
|
|
|
- `decodeExchangeAddress` a function to obtain a `TransparentAddress` object from an `ExchangeAddress` in HRF
|
|
|
|
- Added new type `ExchangeAddress`
|
2024-04-18 00:51:12 +00:00
|
|
|
|
2024-04-18 01:14:03 +00:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Orchard note nullifier calculation
|
2024-04-24 16:57:00 +00:00
|
|
|
- Sapling spend field parsing
|
2024-04-18 01:14:03 +00:00
|
|
|
|
2024-04-16 22:51:14 +00:00
|
|
|
## [0.5.5.2]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
2024-04-17 16:21:03 +00:00
|
|
|
- Added function to encode a Sappling Address in Human Readable Format Using a SaplingReceiver
|
2024-04-16 22:51:14 +00:00
|
|
|
`encodeSaplingAddress` a zcash sapling address is returned or Nothing if the function fails
|
|
|
|
- Added decoding and encoding test
|
|
|
|
|
2024-04-16 18:39:56 +00:00
|
|
|
## [0.5.5.1]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Added unction to decode a Sappling Address in Human Readable Format
|
|
|
|
`decodeSaplingAddress` returns 43 byte array containing
|
|
|
|
- Added a new Datatype `SaplingAddress`
|
|
|
|
- Added a new FFI function `rust_wrapper_decode_sapling_address` to haskell-rust interface
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- `TransparentAddress` type refactored
|
|
|
|
- `TransparentReceiver` added to replace old `TransparentAddress`
|
|
|
|
- `sha256` Function moved outside of `encodeTransparentReceiver`
|
|
|
|
|
2024-04-13 22:27:59 +00:00
|
|
|
## [0.5.5.0]
|
|
|
|
|
2024-04-14 11:57:36 +00:00
|
|
|
### Added
|
|
|
|
|
2024-04-13 22:27:59 +00:00
|
|
|
- Added unction to decode Transparent Address in Human Readable Format
|
2024-04-14 11:57:36 +00:00
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- `TransparentAddress` type refactored
|
|
|
|
- `TransparentReceiver` added to replace old `TransparentAddress`
|
|
|
|
- `sha256` Function moved outside of `encodeTransparentReceiver`
|
2024-04-11 21:01:29 +00:00
|
|
|
## [0.5.4.1]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Functions to handle Sapling commitment trees, incremental witnesses and note positions
|
|
|
|
|
2024-04-09 18:06:23 +00:00
|
|
|
## [0.5.4.0]
|
2024-04-10 16:29:59 +00:00
|
|
|
|
2024-04-11 21:01:29 +00:00
|
|
|
### Added
|
2024-04-09 18:06:23 +00:00
|
|
|
- Function to decode Orchard actions with a spending key
|
2024-04-10 16:29:59 +00:00
|
|
|
- Functions for Bech32 encoding
|
|
|
|
- Function to encode a Sapling address
|
|
|
|
|
2024-04-05 17:47:17 +00:00
|
|
|
## [0.5.3.0]
|
|
|
|
|
2024-04-08 17:54:05 +00:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Function to decode Sapling outputs with a spending key
|
|
|
|
|
2024-04-05 17:47:17 +00:00
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Parsing of `TxIn` for FFI
|
|
|
|
|
2024-03-27 18:22:34 +00:00
|
|
|
## [0.5.2.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Functionality to parse transparent bundles from Zebra
|
|
|
|
- Types for transparent `TxIn`, `TxOut`, `OutPoint`
|
|
|
|
|
2024-03-20 16:15:30 +00:00
|
|
|
## [0.5.1.0]
|
2024-02-14 14:19:34 +00:00
|
|
|
|
2024-03-21 20:15:49 +00:00
|
|
|
### Added
|
|
|
|
|
|
|
|
- Functionality to capture Sapling Spends
|
|
|
|
|
2024-03-20 16:15:30 +00:00
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Modified the `makeZebraCall` function to handle errors explicitly
|
2024-03-20 19:33:36 +00:00
|
|
|
- Modified the RPC response to handle missing `result` field
|
2024-03-20 16:15:30 +00:00
|
|
|
|
|
|
|
## [0.5.0.1]
|
2024-01-16 22:15:05 +00:00
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Function to encode a human-readable transparent address
|
|
|
|
- Function to generate a seed phrase
|
2024-02-09 19:28:15 +00:00
|
|
|
- Implementations of `Read` for types
|
2024-02-14 14:19:34 +00:00
|
|
|
- Function to make RPC calls to `zebrad`
|
2024-03-03 14:23:48 +00:00
|
|
|
- Function to encode unified addresses from receivers
|
2024-03-05 21:09:57 +00:00
|
|
|
- Function to generate an Orchard spending key
|
|
|
|
- Constants for Zcash protocol
|
2024-03-07 22:07:50 +00:00
|
|
|
- Types for Spending Keys and Receivers for Sapling and Orchard
|
|
|
|
- Function to generate an Orchard receiver
|
2024-03-10 12:47:26 +00:00
|
|
|
- Function to generate a Sapling receiver
|
2024-03-15 15:26:06 +00:00
|
|
|
- Function to generate a Transparent receiver
|
2024-02-09 19:28:15 +00:00
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
2024-02-25 21:22:53 +00:00
|
|
|
- Update installation to `cabal`
|
2024-03-08 19:42:18 +00:00
|
|
|
- Updated Rust crates:
|
|
|
|
- `bech32` to 0.11
|
|
|
|
- `orchard` to 0.7.0
|
|
|
|
- `zcash_note_encryption` to 0.4.0
|
|
|
|
- `zcash_primitives` to 0.13.0
|
|
|
|
- `zcash_client_backend` to 0.10.0
|
|
|
|
- `zip32` to 0.1.0
|
|
|
|
- Changed the `UnifiedAddress` to allow for optional shielded receivers
|
2024-02-09 19:28:15 +00:00
|
|
|
|
2024-02-25 21:22:53 +00:00
|
|
|
### Removed
|
|
|
|
|
|
|
|
- `Makefile`
|
2024-01-16 22:15:05 +00:00
|
|
|
|
2024-01-12 15:46:26 +00:00
|
|
|
## [0.3.0]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Type to represent a transparent address/receiver
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
- Full decoding of Unified Address
|
|
|
|
|
|
|
|
## [0.2.0]
|
2023-08-17 15:02:32 +00:00
|
|
|
|
|
|
|
### Added
|
|
|
|
|
2023-10-04 16:12:30 +00:00
|
|
|
- `matchOrchardAddress` function to ensure a UA matches a UVK and corresponding tests
|
2023-09-27 16:18:00 +00:00
|
|
|
- `makeZcashCall` function moved into this library
|
|
|
|
- `RpcResponse`, `RpcCall` types moved into this library
|
2023-08-23 20:20:01 +00:00
|
|
|
- Functions to decode Sapling transactions
|
|
|
|
- Tests for Sapling decoding
|
2023-08-21 14:57:45 +00:00
|
|
|
- Type for block response
|
|
|
|
- Type for raw transaction response
|
|
|
|
- JSON parsers for block response, transaction response, `ShieldedOutput` and `OrchardAction`
|
|
|
|
- Tests for JSON parsers
|
2023-08-17 15:02:32 +00:00
|
|
|
- Haddock annotations
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
2023-08-21 20:58:12 +00:00
|
|
|
- Rearranged modules for cleaner dependencies.
|
2023-08-17 15:02:32 +00:00
|
|
|
- Upgrade to Haskell LTS 21.6
|
|
|
|
|
2023-06-15 00:09:43 +00:00
|
|
|
## [0.1.0] - 2023-06-14
|
2023-04-13 23:35:15 +00:00
|
|
|
|
|
|
|
### Added
|
|
|
|
|
2023-06-15 00:09:43 +00:00
|
|
|
- Function `decodeHexText`
|
|
|
|
- Function `decodeBech32`
|
2023-04-13 23:35:15 +00:00
|
|
|
- Function `f4Jumble`
|
2023-04-27 14:54:01 +00:00
|
|
|
- Function `f4UnJumble`
|
|
|
|
- Function `isValidShieldedAddress`
|
2023-06-15 00:09:43 +00:00
|
|
|
- Function `isValidSaplingViewingKey`
|
|
|
|
- Function `matchSaplingAddress`
|
|
|
|
- Function `isValidUnifiedAddress`
|
|
|
|
- Function `decodeUfvk`
|
|
|
|
- Function `decryptOrchardAction`
|
|
|
|
- Type `RawData`
|
|
|
|
- Type `ShieldedOutput`
|
|
|
|
- Type `OrchardAction`
|
|
|
|
- Type `OrchardDecodedAction`
|
|
|
|
- Type `UnifiedFullViewingKey`
|
|
|
|
|