use crate::bitcoin::clients; use bdk_wallet::bitcoin::{Amount, Network}; use tracing_subscriber::filter::EnvFilter; use tracing_subscriber::util::SubscriberInitExt; use tracing_subscriber::{fmt, layer::SubscriberExt}; pub(crate) async fn simple_transfer() -> Result<(), anyhow::Error> { tracing_setup(); let mut dave = clients::esplora::create_wallet("dave", Network::Signet)?; let mut sammy = clients::esplora::create_wallet("sammy", Network::Signet)?; let _next_address = dave.next_unused_address()?; let _ = dave.balance(); dave.sync().await?; let _ = dave.balance(); let _sammy = sammy.balance(); sammy.sync().await?; let _ = sammy.balance(); let send_amount = Amount::from_sat(500); ensure_enough_sats(dave, send_amount); let sammy_address = sammy.next_unused_address()?.address; let tx = dave.build_and_sign_send_tx(sammy_address, send_amount)?; dave.broadcast(&tx).await?; Ok(()) } /// Exit if the wallet does not have enough sats to send. fn ensure_enough_sats(wallet: EsploraWallet, send_amount: bitcoin::Amount) -> _ { if wallet.balance().total() < send_amount { tracing::error!( "Please send at least {} sats to the receiving address. Exiting.", send_amount ); std::process::exit(0); } } pub(crate) async fn htlc() -> anyhow::Result<()> { // dave will be our sender let mut dave = clients::esplora::create_wallet("dave", Network::Signet)?; // sammy will be our liquidity router let mut sammy = clients::esplora::create_wallet("sammy", Network::Signet)?; Ok(()) } fn tracing_setup() { tracing_subscriber::registry() .with(fmt::layer()) .with(EnvFilter::from_default_env()) .init(); tracing::info!("Tracing initialized."); }