tx

Minimal transaction primitives (docs.ppad.tech/tx).
git clone git://git.ppad.tech/tx.git
Log | Files | Refs | README | LICENSE

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.