ppad-tx-0.2.0: CHANGELOG
# Changelog
- 0.2.0 (2026-10-10)
* Breaking: TxId is abstract. Construct one with mk_txid (replacing
mkTxId), unwrap it with un_txid; null_txid is the all-zero txid
coinbase inputs reference.
* Breaking: each TxIn carries its own witness (txin_witness), and
Tx's tx_witnesses field is gone, so a transaction can no longer
hold a different number of witnesses than inputs.
* Breaking: the serialisation builders (put_compact, put_outpoint,
to_strict, etc.) are no longer exported.
* Widens sighash_legacy and sighash_segwit to take a raw 32-bit
hashType, matching consensus (the full value is committed to the
preimage; only the low byte determines behaviour). The SighashType
ADT remains, as the canonical-byte enum, via encode_sighash. This
is a breaking change.
* Strips OP_CODESEPARATOR from the script code in legacy sighashes.
* Adds BIP341 taproot sighashes (sighash_taproot_keypath,
sighash_taproot_scriptpath).
* Adds NFData instances for all transaction types, an NFData
instance for SighashType, and Ord instances for TxId and OutPoint.
* Fixes from_bytes, which threw an exception on compactSize lengths
of 2^63 or more, and now rejects counts exceeding the remaining
input.
* Rejects segwit-flagged transactions carrying no witness data, and
serialises transactions whose witnesses are all empty in the legacy
format, as Bitcoin Core does.
- 0.1.0 (2026-04-18)
* Initial release.