#script #bitcoin #crypto #string-format

无 std miniscript

Miniscript:为分析设计的 Bitcoin Script 的子集

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 魔法豆

Download history 7752/week @ 2024-05-05 10058/week @ 2024-05-12 8609/week @ 2024-05-19 9163/week @ 2024-05-26 10069/week @ 2024-06-02 8640/week @ 2024-06-09 8889/week @ 2024-06-16 7697/week @ 2024-06-23 6670/week @ 2024-06-30 7492/week @ 2024-07-07 9722/week @ 2024-07-14 8516/week @ 2024-07-21 8494/week @ 2024-07-28 8219/week @ 2024-08-04 7526/week @ 2024-08-11 7042/week @ 2024-08-18

31,870 每月下载量
用于 164 个crate (55 个直接使用)

CC0 许可

4.5MB
46K SLoC

Build

最低支持的 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。必须启用 stdno-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 listSPDX IDs

依赖关系

~7.5MB
~91K SLoC