bolt5

On-chain transaction handling for Lightning (docs.ppad.tech/bolt5).
git clone git://git.ppad.tech/bolt5.git
Log | Files | Refs | README | LICENSE

CHANGELOG (2330B)


      1 # Changelog
      2 
      3 - 0.1.0 (UNRELEASED)
      4   * The library's scope is being redesigned, and this version is not
      5     yet ready for release (see the README for what it does and
      6     doesn't cover).
      7 
      8   * Ports to ppad-bolt1 0.1.0, ppad-bolt3 0.1.0 and ppad-tx 0.2.0, with
      9     breaking changes:
     10 
     11     * Amounts, points and hashes are bolt1's types (amounts are
     12       bounded, with checked arithmetic), and ChannelFeatures is
     13       replaced by bolt3's CommitmentFormat.
     14 
     15     * The classifiers read each HTLC output's HTLC from bolt3's
     16       OutputHTLC, and no longer take an HTLC list.
     17       classify_remote_commit_outputs no longer takes the channel
     18       features, and classify_revoked_commit_outputs takes only the
     19       commitment and the revocation pubkey.
     20 
     21     * spend_htlc_tx replaces spend_htlc_timeout and spend_htlc_success,
     22       building the transaction with bolt3's build_htlc_tx, and fails
     23       if bolt3 can't build it.
     24 
     25     * The API is exported from Lightning.Protocol.BOLT5 alone, with
     26       snake_case names (htlc_output_type, htlc_output_type_weight); the
     27       Internal module is removed. Every public type has an NFData
     28       instance.
     29 
     30     * extract_preimage_offered and extract_preimage_htlc_success take
     31       the HTLC's payment hash, and revoked_output_weight and
     32       htlc_output_type_weight the commitment format.
     33 
     34     * spending_fee saturates at 21 million BTC.
     35 
     36   * Fixes preimage extraction, which never matched a real witness (one
     37     ending in the witness script), and checks preimages against the
     38     payment hash.
     39 
     40   * Fixes identify_close, which compared an unsigned serialization with
     41     the signed transaction found on chain; it compares txids.
     42 
     43   * Fixes HTLC output classification, which matched outputs to HTLCs by
     44     script alone, so that HTLCs sharing a payment hash were confused.
     45 
     46   * Fixes the sighash type of the local signature on anchor-channel
     47     HTLC transactions, which is SIGHASH_ALL.
     48 
     49   * Sweeps no longer create outputs below the destination's dust
     50     threshold, and anchor-channel HTLC penalty sweeps use the anchor
     51     scripts' weights.
     52 
     53   * Removes spend_revoked_batch and PenaltyContext, whose transaction
     54     couldn't be signed.
     55 
     56   * Tests check HTLC transactions and preimage extraction against the
     57     BOLT #3 Appendix C and F vectors.
     58 
     59 - 0.0.1 (2026-04-18)
     60   * Initial release.