#script #bitcoin #miniscript #crypto

elements-miniscript

Elements Miniscript:Miniscript,但用于元素

4 个版本 (2 个重大更改)

0.3.1 2024 年 5 月 10 日
0.3.0 2024 年 1 月 30 日
0.2.0 2023 年 6 月 22 日
0.1.0 2021 年 7 月 29 日

#1 in #miniscript

Download history 633/week @ 2024-05-05 1473/week @ 2024-05-12 1226/week @ 2024-05-19 878/week @ 2024-05-26 1015/week @ 2024-06-02 814/week @ 2024-06-09 1074/week @ 2024-06-16 848/week @ 2024-06-23 1030/week @ 2024-06-30 816/week @ 2024-07-07 499/week @ 2024-07-14 597/week @ 2024-07-21 983/week @ 2024-07-28 342/week @ 2024-08-04 308/week @ 2024-08-11 327/week @ 2024-08-18

2,013 每月下载量
13 个crate中使用 (9 个直接使用)

CC0 和可能 GPL-3.0-only

4.5MB
53K SLoC

Build

最低支持的 Rust 版本 1.58.0

*此crate使用"2018"版

Elements Miniscript

此库是 rust-miniscript 的分支,用于元素。

高级功能

此库支持

  • 输出描述符,包括内嵌 Miniscript
  • 将描述符解析和序列化为可读的字符串格式
  • 将抽象消费策略编译为 Miniscript(由 compiler 标志启用)
  • 对 Miniscript 和消费策略进行语义分析,支持用户定义的公钥类型
  • 给定可转换为 bitcoin::PublicKey 的密钥类型,将 Miniscript 编码和解码为 Bitcoin Script
  • 确定给定描述符的可满足性,以及最优证明;使用适当的数据完成未签名的 elements::TxIn
  • 确定用于在给定比特币交易中花费硬币的特定密钥、哈希预图像和时限锁

更多信息可以在 文档示例目录 中找到

构建

默认启用了 cargo 功能 std。必须启用至少一个功能 stdno-std 或两者都启用。

启用 no-std 功能不会禁用 std。要禁用 std 功能,您必须禁用默认功能。 no-std 功能仅启用此 crate 无需 std 即可使用所需的其他功能。两者可以同时启用而不会发生冲突。

基准测试

要运行基准测试,请运行 RUSTFLAGS=--cfg=miniscript_bench cargo +nightly bench --all-features

最低支持的 Rust 版本 (MSRV)

本库应始终能够在任何组合的特性的 Rust 1.58.0 上编译。

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

cargo update -p byteorder --precise 1.4.3

请注意,此列表有时可能不全面,因为CI没有强制执行。如果您有任何问题,请检查CI中执行的脚本:contrib/test.sh

贡献

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

发布说明

请参阅CHANGELOG.md

许可

本项目的代码根据Creative Commons CC0 1.0 Universal license授权。我们使用SPDX license listSPDX IDs

依赖项

~19MB
~210K SLoC