#container #addresses #start #blocks #lib #generate #bitcoind

bitcoin-harness

一个简单的库,用于启动bitcoind容器,生成区块并为地址提供资金

4个版本

0.2.2 2022年11月9日
0.2.1 2022年9月19日
0.2.0 2020年12月4日
0.1.0 2020年11月13日

#9#bitcoind

每月 27 次下载

MIT 许可证

30KB
649

bitcoin-harness-rs

一个简单的库,用于启动bitcoind容器,生成区块并为地址提供资金。


lib.rs:

bitcoin-harness

一个简单的库,用于启动bitcoind容器,生成区块并为地址提供资金。注意:它使用tokio。

示例

仅连接到bitcoind并获取网络

use bitcoin_harness::{Bitcoind, bitcoind_rpc, Client};

let tc_client = testcontainers::clients::Cli::default();
let bitcoind = Bitcoind::new(&tc_client).unwrap();
let client = Client::new(bitcoind.node_url);
let network = client.network().await.unwrap();

assert_eq!(network, bitcoin::Network::Regtest)

创建钱包,为它提供资金并获取UTXO

use bitcoin_harness::{Bitcoind, bitcoind_rpc, Client, Wallet};

let tc_client = testcontainers::clients::Cli::default();
let bitcoind = Bitcoind::new(&tc_client).unwrap();
let client = Client::new(bitcoind.node_url.clone());

bitcoind.init(5).await.unwrap();

let wallet = Wallet::new("my_wallet", bitcoind.node_url.clone()).await.unwrap();
let address = wallet.new_address().await.unwrap();
let amount = bitcoin::Amount::from_btc(3.0).unwrap();

bitcoind.mint(address, amount).await.unwrap();

let balance = wallet.balance().await.unwrap();

assert_eq!(balance, amount);

let utxos = wallet.list_unspent().await.unwrap();

assert_eq!(utxos.get(0).unwrap().amount, amount);

依赖项

~15–31MB
~415K SLoC