CHANGELOG (1853B)
1 # Changelog 2 3 - 0.1.0 (2026-10-10) 4 * A substantial rewrite against ppad-bolt1 0.1.0, with breaking 5 changes throughout: 6 7 * The API is exported from Lightning.Protocol.BOLT2 alone, and uses 8 snake_case names, with record fields prefixed by their message's 9 name (e.g. encode_open_channel, open_channel_funding_satoshis). 10 11 * Payload decoders have type ByteString -> Either DecodeError a and 12 consume their whole input; encoders return Either EncodeError 13 ByteString only where they can fail. A Message type, with 14 message_type, encode_message and decode_message, handles complete 15 messages. 16 17 * Every message has a TLV stream. Known TLV records are typed fields 18 (channel_type is a ppad-bolt9 feature vector), unknown even records 19 are rejected, and unknown odd records are kept, so encoding a 20 decoded message reproduces its bytes. 21 22 * Amounts use ppad-bolt1's bounded Satoshi and MilliSatoshi, except 23 max_htlc_value_in_flight_msat. Types from ppad-bolt1 and ppad-tx 24 are no longer re-exported. 25 26 * OnionPacket is renamed OnionRoutingPacket and checks its length; 27 ScriptPubKey and Witness are bounded at 65535 bytes; FeatureBits, 28 Initiator and MsgType are removed; OnionHash, AttributionData, 29 FeeRange and NextFunding are added. 30 31 * Catches up with BOLT #2 as of lightning/bolts 1aadb719: 32 channel_reestablish's next_funding moves to TLV type 1, and 33 update_fulfill_htlc (fulfillment_payload), commitment_signed 34 (funding_txid), tx_add_input and tx_signatures gain TLV streams. 35 36 * Fixes decoding, which accepted unknown even TLV types, didn't check 37 known TLV values, point prefixes or amounts, and ignored trailing 38 bytes on some messages; and encoding, which accepted malformed 39 field values. 40 41 - 0.0.1 (2026-04-18) 42 * Initial release.