12 个版本 (6 个重大更新)
0.12.0 | 2024 年 7 月 27 日 |
---|---|
0.11.1 | 2024 年 6 月 9 日 |
0.8.7 | 2023 年 8 月 23 日 |
0.8.3 | 2023 年 3 月 15 日 |
0.2.2 | 2021 年 4 月 4 日 |
#6 在 #bip-32
181,757 每月下载量
在 250 个crate中使用 (9 个直接使用)
120KB
2.5K SLoC
coins-bip32
这是 BIP32 的一个实现。它使用 k256 并导出其几个特性和类型。
它可以用来构建比特币和以太坊的钱包和应用。
构建
$ cargo build
$ cargo build --target wasm32-unknown-unknown
运行测试(请确保运行所有功能组合)
$ cargo test
运行基准测试
$ cargo bench
$ cargo bench --no-default-features
lib.rs
:
这个crate提供了一个BIP32、BIP49和BIP84的基本实现。它可以很容易地通过参数化的编码器来支持其他网络。
通常,用户会想要使用 crate 根目录下的 MainnetEncoder
、DerivedXPub
、DerivedXPriv
类型。如果密钥派生未知,请使用 XPub
和 XPriv
对象。这些可以通过从 enc
模块中的网络特定的 Encoder
进行反序列化。
有用的特性和类型需要从 enc
或 model
模块导入。我们还提供了一个包含您开始所需所有内容的 prelude
模块。
警告
- 这个crate不是为用于对抗性环境而设计的。
- 这个crate尚未经过全面的安全审查。
使用
use coins_bip32::prelude::*;
let digest = coins_core::Hash256::default();
let xpriv_str = "xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi".to_owned();
let xpriv: XPriv = xpriv_str.parse().unwrap();
let child_xpriv = xpriv.derive_child(33)?;
let (sig, _recovery_id): (Signature, RecoveryId) = child_xpriv.sign_digest(digest.clone());
// Signing key types are associated with verifying key types. You can always derive a pubkey
let child_xpub = child_xpriv.verify_key();
child_xpub.verify_digest(digest.clone(), &sig)?;
MainnetEncoder::xpub_to_base58(&child_xpub)?;
依赖项
~5MB
~89K SLoC