1 个发布版本 (0 个不稳定)
10.0.0-qtum | 2023年12月24日 |
---|
#5 在 #miniscript
4MB
45K SLoC
最低支持的 Rust 版本 1.41.1
Miniscript-qtum
这是一个支持 Qtum 区块链的 rust-miniscript 分支。
请见下方的原始 README。
Miniscript
一个用于处理 Miniscript 的库,Miniscript 是比特币脚本的一个子集,旨在支持简单的通用工具。Miniscript 表示支出条件的门限电路,因此可以轻松地将其可视化或序列化为可读的字符串。
高级功能
此库支持
- 输出描述符 包括嵌入的 Miniscript
- 将描述符解析和序列化为可读的字符串格式
- 将抽象支出策略编译为 Miniscript(由
compiler
标志启用) - 对 Miniscript 和支出策略进行语义分析,使用用户定义的公钥类型
- 在给定可转换为
bitcoin::PublicKey
的密钥类型的情况下,将 Miniscript 编码和解码为比特币脚本 - 确定给定描述符的可满足性以及最优证据;使用适当的数据完成未签名的
bitcoin::TxIn
- 确定用于在给定比特币交易中支出硬币的特定密钥、哈希预像和定时锁
no_std
通过禁用default-features
并启用"no-std"
来启用。请参阅embedded/
中的示例。
更多信息可以在 文档 或在 examples/ 目录 中找到
构建
默认启用了 cargo 功能 std
。必须启用至少一个功能 std
或 no-std
或两者都启用。
启用 no-std
功能并不会禁用 std
。要禁用 std
功能,您必须禁用默认功能。 no-std
功能仅启用此crate在不使用 std
的情况下所需的其他功能。两者可以同时启用而不会冲突。
最低支持的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
cargo update -p once_cell --precise 1.13.1
cargo update -p bzip2 --precise 0.4.2
贡献
贡献通常受到欢迎。如果您打算进行较大更改,请在PR之前在issue中讨论它们,以避免重复工作和架构不匹配。如果您有任何问题或想要讨论的想法,请加入我们在Libera上的##miniscript。
发行说明
请参阅CHANGELOG.md。
许可
本项目的代码采用Creative Commons CC0 1.0 Universal license许可。我们使用SPDX license list和SPDX IDs。
依赖项
~14MB
~218K SLoC