用途:在应用代码中解析或编码 BOLT11 闪电网络发票(bech32 编码,含结构化 TLV 类标签)。
主要能力与用法: JavaScript/TypeScript 可用 npm 包 bolt11,安装命令 npm install bolt11,提供 decode 与 encode;替代方案有 light-bolt11-decoder、@atomiqlabs/bolt11。截至 2026 年 9 月,npm bolt11 停留在 1.4.1(2023-03-22 发布),light-bolt11-decoder 为 3.2.0(2024-09-20 发布),二者仍能解码当前发票但无活跃发布线;新代码可用 @atomiqlabs/bolt11(bitcoinjs/bolt11 的维护分支,1.6.2,2026-08-14),导出相同的 decode/encode/sign API。建议固定版本并在自有测试中保留发票语料,不要假设新标签类型会被处理。 Python 可用 bolt11-py 等,from bolt11 import decode,读取 amount_msat、payment_hash。 Rust 使用 LDK 的 lightning-invoice(0.34.1,2026 年 6 月),将字符串 parse 为 Bolt11Invoice 后读取 amount_milli_satoshis 等。 Go 使用 github.com/lightningnetwork/lnd/zpay32,即 LND 内置的 BOLT11 编解码器;截至 2026 年 9 月不存在 lightninglabs/lightning-invoice 模块,也不存在 btcsuite 的 BOLT11 包。解码需传入与发票 HRP 匹配的 chaincfg.Params,否则 Decode 失败;编码为 *Invoice 的方法,需 zpay32.MessageSigner 签名者。 BOLT12 需另用较新库:Rust/LDK 的 lightning-offers、Python 的 lib-bolt12,JS/TS 支持有限。
常见问题:网络不匹配(测试网与主网解码)、bech32 填充处理严格程度不一、发票未含 min-final-CLTV-expiry 时的默认值。
限制:资料未提供各库的收费、性能与完整平台支持信息。