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

Download history 37714/week @ 2024-05-05 40469/week @ 2024-05-12 37480/week @ 2024-05-19 36470/week @ 2024-05-26 40052/week @ 2024-06-02 46100/week @ 2024-06-09 43726/week @ 2024-06-16 44452/week @ 2024-06-23 38486/week @ 2024-06-30 38642/week @ 2024-07-07 41144/week @ 2024-07-14 45381/week @ 2024-07-21 42564/week @ 2024-07-28 43983/week @ 2024-08-04 48865/week @ 2024-08-11 43430/week @ 2024-08-18

181,757 每月下载量
250crate中使用 (9 个直接使用)

MIT/Apache

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 根目录下的 MainnetEncoderDerivedXPubDerivedXPriv 类型。如果密钥派生未知,请使用 XPubXPriv 对象。这些可以通过从 enc 模块中的网络特定的 Encoder 进行反序列化。

有用的特性和类型需要从 encmodel 模块导入。我们还提供了一个包含您开始所需所有内容的 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