54 个版本 (23 个稳定版)
12.2.0 | 2024 年 8 月 6 日 |
---|---|
12.1.0 | 2024 年 7 月 10 日 |
12.0.0 | 2024 年 5 月 22 日 |
11.2.0 | 2024 年 7 月 23 日 |
0.1.0 | 2018 年 11 月 13 日 |
#463 in 魔法豆
31,870 每月下载量
用于 164 个crate (55 个直接使用)
4.5MB
46K SLoC
最低支持的 Rust 版本 1.56.1
Miniscript
Miniscript 库是用于处理Miniscript的库,它是 Bitcoin Script 的一个子集,旨在支持简单和通用的工具。Miniscripts 代表了支出条件的阈值电路,因此可以轻松地以可读字符串的形式可视化和序列化。
高级功能
此库支持
- 输出描述符,包括内嵌的 Miniscripts
- 将描述符解析和序列化为人可读的字符串格式
- 将抽象支出策略编译为 Miniscript(通过
compiler
标志启用) - 对 Miniscripts 和支出策略进行语义分析,支持用户定义的公钥类型
- 将 Miniscript 编码和解码为 Bitcoin Script,给定可转换为
bitcoin::PublicKey
的密钥类型 - 确定给定描述符的可满足性,以及最优证明;使用适当的数据完成未签名的
bitcoin::TxIn
- 确定用于在给定比特币交易中支出的特定密钥、哈希预映像和锁时
- 通过禁用
default-features
并启用"no-std"
启用no_std
支持。有关示例,请参阅embedded/
更多信息可以在 文档 或 examples/
目录 中找到
构建
默认情况下启用了货物功能 std
。必须启用 std
或 no-std
或两者都启用。
启用 no-std
功能不会禁用 std
。要禁用 std
功能,您必须禁用默认功能。 no-std
功能仅启用此crate在不使用 std
的情况下所需的附加功能。两者可以同时启用而不会冲突。
最小支持的Rust版本 (MSRV)
此库应始终与 Rust 1.56.1 上的任何功能组合编译。
某些依赖项与我们的MSRV不兼容,如果您正在运行测试,您可能需要固定一些依赖项。请参阅 ./contrib/test.sh
了解当前的固定情况。
贡献
贡献通常受到欢迎。如果您打算进行较大的更改,请在PR之前在问题中讨论它们,以避免重复工作和架构不匹配。如果您有任何问题或想要讨论的想法,请加入我们 ##miniscript 上的Libera。
基准测试
我们使用一个条件Rust编译器配置来保护基准测试代码。要运行基准测试,请使用:RUSTFLAGS='--cfg=bench' cargo +nightly bench
。
发布说明
请参阅 CHANGELOG.md。
许可
本项目中的代码根据 Creative Commons CC0 1.0 Universal license 许可。我们使用 SPDX license list 和 SPDX IDs。
依赖关系
~7.5MB
~91K SLoC