Skip to content

zip321-0.7.0

@nuttycom nuttycom tagged this 24 Apr 04:33
[0.7.0] - 2026-04-23
====================

Added
-----
- `zip321::PaymentError` enum for errors in constructing a `Payment`.
- `zip321::PaymentError::with_index` method to convert a `PaymentError` into a
  `Zip321Error` with an associated payment index.

Changed
-------
- MSRV is now 1.85.1.
- Migrated to `zcash_protocol 0.8`, `zcash_address 0.11`.
- `zip321::Payment::new` now returns `Result<Self, PaymentError>` instead of
  `Option<Self>`, providing a meaningful error when a memo is sent to a
  transparent recipient or a zero-valued output is sent to a transparent address.
- `zip321::Payment::amount` now returns `Option<Zatoshis>` instead of `Zatoshis`.
  Previously, the amount field of the payment would be set to zero if no amount
  parameter was present; however, this behavior is not specified by ZIP 321.
  The semantics of this field have now been altered such that if no amount is
  specified by a payment request, this should be interpreted to mean that the
  sender of the transaction should specify an amount for the payment.
- `zip321::Payment::new` now takes its `amount` parameter as `Option<Zatoshis>`
  instead of `Zatoshis`.
- `zip321::Zip321Error` has added variant `Zip321Error::ZeroValuedTransparentOutput`.
  Zero-valued transparent outputs are rejected by the Zcash consensus rules,
  and so payments to transparent addresses with the `amount` parameter explicitly
  set to zero are now disallowed.
- The return type of `zip321::TransactionRequest::total` has been modified;
  it now returns `Ok(None)` if any payment amount is `None`, as the total
  is not well-defined in this case.
- `zip321::Zip321Error` has been marked `#[non_exhaustive]` to permit future
  semver-compatible additions to the errors that can be identified at parse time.
Assets 2
Loading