#script #bitcoin #miniscript #crypto

无需 std sapio-miniscript

Miniscript:为分析设计的 Bitcoin Script 的子集,Sapio 扩展版(支持 BIP-119 OP_CTV)

17 个版本 (4 个稳定版)

8.0.1-alpha.02022 年 11 月 9 日
7.0.2-alpha.02024 年 1 月 22 日
7.0.0 2022 年 5 月 21 日
7.0.0-10 2022 年 3 月 19 日
5.1.0 2021 年 3 月 23 日

#668 in 魔法豆

Download history 12/week @ 2024-04-07 12/week @ 2024-04-14 25/week @ 2024-04-21 13/week @ 2024-04-28 13/week @ 2024-05-05 20/week @ 2024-05-12 23/week @ 2024-05-19 28/week @ 2024-05-26 23/week @ 2024-06-02 14/week @ 2024-06-09 19/week @ 2024-06-16 32/week @ 2024-06-23 54/week @ 2024-06-30 7/week @ 2024-07-07 31/week @ 2024-07-14 14/week @ 2024-07-21

每月 106 次下载
12 个 crate 中使用 (9 个直接使用)

CC0 许可证

4MB
44K SLoC

Build

最低支持的 Rust 版本 1.41.1

Miniscript

处理 Miniscript 的库,Miniscript 是 Bitcoin Script 的子集,旨在支持简单和通用工具。Miniscript 代表了消费条件的阈值电路,因此可以轻松地以人类可读的字符串形式可视化或序列化。

高级功能

此库支持

  • 输出描述符,包括嵌入的 Miniscript
  • 将描述符解析和序列化为人类可读的字符串格式
  • 将抽象消费策略编译为 Miniscript(由 compiler 标志启用)
  • 对 Miniscript 和消费策略进行语义分析,支持用户定义的公钥类型
  • 给定可转换为 bitcoin::PublicKey 的密钥类型,将 Miniscript 编码和解码为 Bitcoin Script
  • 确定给定描述符的可满足性,以及最优见证者;使用适当的数据完成未签名的 bitcoin::TxIn
  • 确定用于在给定比特币交易中消费硬币的特定密钥、哈希预图像和时限锁
  • 通过禁用 default-features 并启用 "no-std" 启用 no_std 支持。有关示例,请参阅 embedded/

更多信息可以在文档中找到,或者在examples/目录中。

最低支持的Rust版本(MSRV)

此库应始终能在Rust 1.41.1或Rust 1.47上编译,不包括no-std特性。

某些依赖与我们的MSRV不兼容,如果您正在运行测试,您可能需要按照以下方式进行固定:

cargo update --package url --precise 2.2.2
cargo update --package form_urlencoded --precise 1.0.1

贡献

贡献通常受到欢迎。如果您打算进行较大的更改,请在提交PR之前在issue中进行讨论,以避免重复工作和架构不匹配。如果您有任何问题或想要讨论的想法,请加入我们在Libera的##miniscript频道。

发行说明

请参阅CHANGELOG.md

依赖关系

~7.5MB
~92K SLoC