diff --git a/bdk-ffi/src/bdk.udl b/bdk-ffi/src/bdk.udl index af03f6c..836cd65 100644 --- a/bdk-ffi/src/bdk.udl +++ b/bdk-ffi/src/bdk.udl @@ -1,7 +1,7 @@ namespace bdk {}; // ------------------------------------------------------------------------ -// bdk crate +// bdk crate - root module // ------------------------------------------------------------------------ enum KeychainKind { @@ -86,6 +86,17 @@ interface Wallet { interface Update {}; +interface TxBuilder { + constructor(); + + TxBuilder add_recipient(Script script, u64 amount); + + TxBuilder fee_rate(float sat_per_vbyte); + + [Throws=BdkError] + string finish([ByRef] Wallet wallet); +}; + // ------------------------------------------------------------------------ // bdk crate - descriptor module // ------------------------------------------------------------------------ diff --git a/bdk-ffi/src/lib.rs b/bdk-ffi/src/lib.rs index 80a9248..a0ac27a 100644 --- a/bdk-ffi/src/lib.rs +++ b/bdk-ffi/src/lib.rs @@ -6,6 +6,7 @@ mod psbt; mod wallet; use bdk::bitcoin::address::{NetworkChecked, NetworkUnchecked}; +use bdk::bitcoin::blockdata::script::ScriptBuf as BdkScriptBuf; use bdk::bitcoin::Address as BdkAddress; use bdk::bitcoin::Network as BdkNetwork; use bdk::wallet::AddressIndex as BdkAddressIndex; @@ -23,6 +24,7 @@ use crate::keys::DerivationPath; use crate::keys::DescriptorPublicKey; use crate::keys::DescriptorSecretKey; use crate::keys::Mnemonic; +use crate::wallet::TxBuilder; use crate::wallet::Update; use crate::wallet::Wallet; use bdk::keys::bip39::WordCount; @@ -453,11 +455,11 @@ impl Address { self.inner.network.into() } - // fn script_pubkey(&self) -> Arc