5个版本
0.1.5 | 2024年2月15日 |
---|---|
0.1.4 | 2024年1月31日 |
0.1.3 | 2024年1月31日 |
0.1.2 | 2024年1月31日 |
0.0.0 | 2024年1月3日 |
#2427 in 魔法豆
395KB
2.5K SLoC
fedimint-http:Fedimint HTTP客户端(和Cashu代理)
fedimint-http公开了一个REST API以与Fedimint客户端交互。
通过复制.env
来设置example.env
中的变量,然后运行cargo run
。它还设置为一个clap应用程序,因此您也可以通过命令行参数启动服务器。
Fedimint客户端端点
Fedimint客户端支持以下端点(在/fedimint/v2/ws
处有原始的websocket支持,直到我改进界面。欢迎提交PR!)
与管理相关的命令
/fedimint/v2/admin/info
:显示钱包信息(持有,等级)。/fedimint/v2/admin/backup
:将(加密的)铸币笔记快照上传到联盟。/fedimint/v2/admin/discover-version
:发现与联盟通信时要使用的公共API版本。/fedimint/v2/admin/restore
:恢复之前创建的铸币笔记备份(使用backup
命令)。/fedimint/v2/admin/list-operations
:列出操作。/fedimint/v2/admin/module
:调用模块子命令。/fedimint/v2/admin/config
:返回客户端配置。
与铸币相关的命令
/fedimint/v2/mint/reissue
:重新发行从第三方接收的笔记以避免双重支出。/fedimint/v2/mint/spend
:准备发送给第三方的付款笔记。/fedimint/v2/mint/validate
:验证电子现金笔记的签名,但不检查它们是否已被使用过。/fedimint/v2/mint/split
:将包含多个电子现金纸币的字符串(例如来自spend
命令)分割成包含恰好一个纸币的字符串。/fedimint/v2/mint/combine
:合并两个或更多序列化的电子现金纸币字符串。
与闪电网络相关的命令
/fedimint/v2/ln/invoice
:创建一个闪电发票,通过网关接收付款。/fedimint/v2/ln/await-invoice
:等待进来的发票被支付。/fedimint/v2/ln/pay
:通过网关支付闪电发票或 lnurl。/fedimint/v2/ln/await-pay
:等待闪电付款完成。/fedimint/v2/ln/list-gateways
:列出已注册的网关。/fedimint/v2/ln/switch-gateway
:切换活动网关。
链上相关命令
/fedimint/v2/onchain/deposit-address
:生成一个新的存款地址,发送到该地址的资金可以以后提取。/fedimint/v2/onchain/await-deposit
:等待先前生成的地址上的存款。/fedimint/v2/onchain/withdraw
:从联盟中提取资金。
即将推出(TM):将 Cashu NUT 端点映射到 fedimint 客户端。
支持的 Cashu NUT:注解、利用和术语
- NUT-00:注解、利用和术语
- Fedimint 电子现金目前不将联盟端点作为电子现金的一部分进行编码,只是联盟 ID。Fedimint 鼓励基于其信任模型建立长期关系,因此目前不支持即时发行/重新发行。可以强制进行映射,但并不完全匹配。返回联盟 ID 而不是
- NUT-01:铸造公钥交换
-
/v1/keys
:支持 -
/v1/keys/{keyset-id}
:支持(fedimint 只维护 1 个密钥集) - Fedimint 目前不支持密钥集轮换。以 Cashu 格式响应单密钥集映射。
-
- NUT-02:密钥集和密钥集 ID
-
/v1/keysets
:支持
-
- NUT-03:交换代币
-
/v1/swap
:支持 - 相当于 Fedimint 重新发行。证明略有不同,但功能等效。
-
- NUT-04:铸造代币
-
/v1/mint/quote/{method}
:支持- method=bolt11:通过 lngateway 支持
- method=onchain:通过 pegin 支持
-
/v1/mint/quote/{method}/{quote_id}
:支持 -
/v1/mint/{method}
:支持- Fedimint 客户端对这些命令的处理略有不同,但可能可以强制执行流程,不明白为什么在状态完成后需要第二次轮次,应该直接返回那里。
-
- NUT-05:熔化代币
-
/v1/melt/quote/{method}
:支持- method=bolt11:通过 lngateway 支持
- method=onchain:通过 pegout 支持
-
/v1/melt/quote/{method}/{quote_id}
:支持
-
- NUT-06:铸造信息
-
/v1/info
:支持
-
依赖项
~97MB
~1.5M SLoC