use reqbit::{IWallet, ReqBit};
#[tokio::main]
async fn main() {
let reqbit = ReqBit;
let wallet_a = "wallet_a";
let create_wallet_a = reqbit.createwallet(wallet_a).await;
println!("1. Created wallet A: {}", create_wallet_a);
let mining_address = reqbit.getnewaddress(wallet_a, None, None).await;
let mined_blocks = reqbit.generatetoaddress(100, mining_address.as_str().unwrap(), None).await;
println!("2. Mined 100 bitcoins: {}", mined_blocks);
let wallet_b = "wallet_b";
let create_wallet_b = reqbit.createwallet(wallet_b).await;
println!("3. Created wallet B: {}", create_wallet_b);
let addr_b = reqbit.getnewaddress(wallet_b, None, None).await;
println!("4. New address for wallet B: {}", addr_b);
let tx_id = reqbit
.sendtoaddress(wallet_a, addr_b.as_str().unwrap(), 3.0, None, None, Some(true))
.await;
println!("5. Sent 3 coins from A to B. Transaction ID: {}", tx_id);
let tx_info = reqbit.gettransaction(wallet_a, tx_id.as_str().unwrap(), None).await;
println!("6. Transaction info: {}", tx_info);
let balance_a = reqbit.getbalance(wallet_a).await;
let balance_b = reqbit.getbalance(wallet_b).await;
println!("7. Wallet A balance: {} BTC", balance_a);
println!(" Wallet B balance: {} BTC", balance_b);
let wallet_a_info = reqbit.getwalletinfo(wallet_a).await;
let wallet_b_info = reqbit.getwalletinfo(wallet_b).await;
println!("8. Wallet A info: {}", wallet_a_info);
println!(" Wallet B info: {}", wallet_b_info);
}