Going to try out the bdk
This commit is contained in:
7
side-node/Cargo.lock
generated
7
side-node/Cargo.lock
generated
@@ -1,7 +0,0 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "side-node"
|
||||
version = "0.1.0"
|
||||
@@ -7,11 +7,10 @@ edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
async-trait = "0.1.52"
|
||||
bdk_wallet = { version = "1.0.0-alpha.13", features = ["all-keys"] }
|
||||
bft-json-crdt = { path = "../crates/bft-json-crdt" }
|
||||
bft-crdt-derive = { path = "../crates/bft-json-crdt/bft-crdt-derive" }
|
||||
bitcoin = { version = "0.32.2", features = ["rand"] }
|
||||
bitcoincore-rpc = "0.19.0"
|
||||
bitcoincore-rpc-json = "0.19.0"
|
||||
clap = { version = "4.5.4", features = ["derive"] }
|
||||
dirs = "5.0.1"
|
||||
ezsockets = { version = "*", features = ["client"] }
|
||||
@@ -25,7 +24,6 @@ tracing = "0.1.32"
|
||||
# tracing-subscriber = "0.3.9"
|
||||
toml = "0.8.14"
|
||||
indexmap = { version = "2.2.6", features = ["serde"] }
|
||||
bdk_wallet = { version = "1.0.0-alpha.13", features = ["all-keys"] }
|
||||
|
||||
[dev-dependencies]
|
||||
uuid = { version = "1.8.0", features = ["v4"] }
|
||||
|
||||
@@ -1,74 +1,3 @@
|
||||
use std::str::FromStr;
|
||||
|
||||
use bitcoin::{address::NetworkUnchecked, key::Secp256k1, Address, Amount};
|
||||
use bitcoincore_rpc::{Auth, Client, RpcApi};
|
||||
|
||||
use crate::{keys, utils};
|
||||
|
||||
pub fn run(wallet_name: &str) {
|
||||
let rpc = client_for(wallet_name);
|
||||
let name = rpc.get_wallet_info().unwrap().wallet_name;
|
||||
println!("Wallet name: {name}");
|
||||
let balance = rpc.get_balance(None, None).unwrap();
|
||||
let address = get_default_address(rpc);
|
||||
let account = rpc.generate_to_address(block_num, address);
|
||||
println!("account {account:?} has balance {balance:?}");
|
||||
|
||||
// let sammy = Address::from_str("tb1qtd5e44gf6eqqdknymaydqyvw6869fda32w3l06").unwrap();
|
||||
// let amount = Amount::from_sat(1000);
|
||||
// let sammy = parse_and_validate_address(sammy).unwrap();
|
||||
// transfer_funds(rpc, amount, sammy);
|
||||
}
|
||||
|
||||
// fn login(rpc: Client, wallet_name: &str) {
|
||||
// let passphrase = serde_json::Value::from_str("password").unwrap();
|
||||
// rpc.call("walletpassphrase", &[passphrase]).unwrap();
|
||||
// }
|
||||
|
||||
fn get_default_address(rpc: Client) -> Address {
|
||||
let address = rpc.generate_to_address(None, None).unwrap();
|
||||
println!("Default address: {address:?}");
|
||||
parse_and_validate_address(address).unwrap()
|
||||
}
|
||||
|
||||
fn get_info(rpc: Client) {
|
||||
let info = rpc.get_wallet_info().unwrap();
|
||||
println!("Wallet info: {info:?}");
|
||||
}
|
||||
|
||||
fn parse_and_validate_address(
|
||||
address: bitcoin::Address<NetworkUnchecked>,
|
||||
) -> Result<bitcoin::Address, bitcoin::address::ParseError> {
|
||||
let require_network = address.require_network(bitcoin::Network::Signet);
|
||||
let address = require_network?;
|
||||
Ok(address)
|
||||
}
|
||||
|
||||
fn transfer_funds(rpc: Client, amount: Amount, to: Address) {
|
||||
rpc.send_to_address(&to, amount, None, None, None, None, None, None)
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
fn client_for(wallet_name: &str) -> Client {
|
||||
let rpc = Client::new(
|
||||
"http://127.0.0.1:38332",
|
||||
Auth::UserPass("dave".to_string(), "password".to_string()),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
if !rpc
|
||||
.list_wallets()
|
||||
.unwrap()
|
||||
.contains(&wallet_name.to_string())
|
||||
{
|
||||
rpc.load_wallet(wallet_name).unwrap();
|
||||
}
|
||||
|
||||
rpc.list_wallets().unwrap().iter().for_each(|wallet| {
|
||||
if wallet != wallet_name {
|
||||
rpc.unload_wallet(Some(wallet)).unwrap();
|
||||
}
|
||||
});
|
||||
|
||||
rpc
|
||||
pub fn run(name: &str) {
|
||||
println!("running btc_rpc...");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user