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