From 7d1a4500ef88d0d817af2abfbe4e77007ad70a8e Mon Sep 17 00:00:00 2001 From: Steve Myers Date: Wed, 7 Dec 2022 11:46:47 -0600 Subject: [PATCH 1/2] Change TxBuilder.drain_to argument to Script instead of address String --- bdk-ffi/src/bdk.udl | 2 +- bdk-ffi/src/lib.rs | 33 +++++++++++++++++---------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/bdk-ffi/src/bdk.udl b/bdk-ffi/src/bdk.udl index 00018f24..2a53dd40 100644 --- a/bdk-ffi/src/bdk.udl +++ b/bdk-ffi/src/bdk.udl @@ -257,7 +257,7 @@ interface TxBuilder { TxBuilder drain_wallet(); - TxBuilder drain_to(string address); + TxBuilder drain_to(Script script); TxBuilder enable_rbf(); diff --git a/bdk-ffi/src/lib.rs b/bdk-ffi/src/lib.rs index a936b0ef..1bb5364a 100644 --- a/bdk-ffi/src/lib.rs +++ b/bdk-ffi/src/lib.rs @@ -501,12 +501,6 @@ impl Wallet { } } -fn to_script_pubkey(address: &str) -> Result { - BdkAddress::from_str(address) - .map(|x| x.script_pubkey()) - .map_err(|e| BdkError::Generic(e.to_string())) -} - /// A Bitcoin address. struct Address { address: BdkAddress, @@ -527,7 +521,7 @@ impl Address { } /// A Bitcoin script. -#[derive(Clone)] +#[derive(Clone, Debug, PartialEq, Eq)] pub struct Script { script: BdkScript, } @@ -565,7 +559,7 @@ struct TxBuilder { fee_rate: Option, fee_absolute: Option, drain_wallet: bool, - drain_to: Option, + drain_to: Option, rbf: Option, data: Vec, } @@ -703,9 +697,9 @@ impl TxBuilder { /// either provide the utxos that the transaction should spend via add_utxos, or set drain_wallet to spend all of them. /// When bumping the fees of a transaction made with this option, you probably want to use BumpFeeTxBuilder.allow_shrinking /// to allow this output to be reduced to pay for the extra fees. - fn drain_to(&self, address: String) -> Arc { + fn drain_to(&self, script: Arc