pub(crate) mod tx {
use std::str::FromStr;
use bdk::{database::BatchDatabase, SignOptions, Wallet};
use bitcoin::{Address, Transaction};
pub fn build_signed_tx<D: BatchDatabase>(
wallet: &Wallet<D>,
recipient_address: &str,
amount: u64,
) -> Transaction {
let mut tx_builder = wallet.build_tx();
let to_address = Address::from_str(recipient_address)
.unwrap()
.require_network(wallet.network())
.unwrap();
tx_builder.set_recipients(vec![(to_address.script_pubkey(), amount)]);
let (mut psbt, _) = tx_builder.finish().unwrap();
wallet.sign(&mut psbt, SignOptions::default()).unwrap();
psbt.extract_tx()
}
}