开发者指南
在闪电网络上发送和接收
了解如何使用您的 Spark 钱包发送和接收闪电网络支付
理解闪电网络发票
Spark 服务提供商实现了无信任的闪电网络互操作性。要发送和接收闪电网络支付,您可以生成和支付闪电网络发票。闪电网络发票(也称为支付请求)是一个特殊格式的字符串,包含进行闪电网络支付所需的所有信息:
- 金额:发送多少聪(零金额发票可以省略)
- 目的地:接收者的节点公钥
- 支付哈希:支付的唯一标识符
- 描述:描述支付的可选备忘录
- 有效期:发票有效期(默认 24 小时)
闪电网络发票以 “ln” 开头,后跟网络标识符(主网为 bc),通常看起来像这样:
lnbc1...
主网发票示例:
lnbcrt2500n1pj0ytfcpp5qqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqdx40shp5jqp3qymd6qgpy99ppk0jqjzylqg5t7fhqhpl6s4kxmqgmrn59w5k0z0cqqqqqqzqqqqq9qsqqqqqq9qqqqqqgq9qsqxl9l55y5cwa9s2h8nvdh4h7h43tcwjdcysf7v0fprz5uh6vshs4n0tvhgzz2xgcqpg8yqv7
接收闪电网络支付
要接收支付,生成闪电网络发票,然后与发送者共享。
Spark 目前不支持零金额发票。但支持即将推出!
获取支付状态
要检查闪电网络支付的状态,您可以使用 getLightningReceiveRequest
发送闪电网络支付
要发送支付,您需要接收者的闪电网络发票和要支付的最大费用金额。我们建议将最大路由费设置为 5 聪或 17 bps * 交易金额中的较大者。
检查余额
发送或接收支付后,您可以使用 getBalance()
检查钱包余额。
getBalance()
方法返回一个 Promise,解析为包含以下内容的对象:
balance
:表示总金额(以聪为单位)的bigint
tokenBalances
:代币余额的 Map,其中每个条目包含:balance
:表示代币数量的bigint
tokenInfo
:关于钱包持有的特定代币的信息
此外,您可以监听余额更新事件。
最佳实践
- 支付前始终验证发票金额
- 为了分析发票数据,您可以使用 bolt11 库
- 跟踪发票 ID,以将余额变化与创建的发票匹配
- 如有必要,为发票设置适当的有效期
- 监控支付状态以确认
下一步
现在您可以发送和接收闪电网络支付,您可能想要: