Compare commits

..

2 Commits

Author SHA1 Message Date
Steve Myers
2f5ac99fee Fix Wallet.broadcast function, now returns a tx id as a hex string 2022-03-17 13:27:01 -05:00
Steve Myers
5128ce8d5b Bump version to 0.4.1 2022-03-14 14:46:31 -05:00
4 changed files with 9 additions and 7 deletions

View File

@@ -6,6 +6,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
- Fix Wallet.broadcast function, now returns a tx id as a hex string
## [v0.4.0]
- Add dual license MIT and Apache 2.0

View File

@@ -1,6 +1,6 @@
[package]
name = "bdk-ffi"
version = "0.4.0"
version = "0.4.1"
authors = ["Steve Myers <steve@notmandatory.org>", "Sudarsan Balaji <sudarsan.balaji@artfuldev.com>"]
edition = "2018"

View File

@@ -131,7 +131,7 @@ interface Wallet {
[Throws=BdkError]
void sync(BdkProgress progress_update, u32? max_address_param);
[Throws=BdkError]
Transaction broadcast([ByRef] PartiallySignedBitcoinTransaction psbt);
string broadcast([ByRef] PartiallySignedBitcoinTransaction psbt);
};
interface PartiallySignedBitcoinTransaction {

View File

@@ -1,3 +1,4 @@
use bdk::bitcoin::hashes::hex::ToHex;
use bdk::bitcoin::secp256k1::Secp256k1;
use bdk::bitcoin::util::psbt::PartiallySignedTransaction;
use bdk::bitcoin::{Address, Network};
@@ -201,7 +202,7 @@ impl PartiallySignedBitcoinTransaction {
impl WalletHolder<AnyBlockchain> for Wallet {
fn get_wallet(&self) -> MutexGuard<BdkWallet<AnyBlockchain, AnyDatabase>> {
self.wallet_mutex.lock().unwrap()
self.wallet_mutex.lock().expect("wallet")
}
}
@@ -265,11 +266,10 @@ impl Wallet {
.sync(BdkProgressHolder { progress_update }, max_address_param)
}
fn broadcast(&self, psbt: &PartiallySignedBitcoinTransaction) -> Result<Transaction, Error> {
fn broadcast(&self, psbt: &PartiallySignedBitcoinTransaction) -> Result<String, Error> {
let tx = psbt.internal.lock().unwrap().clone().extract_tx();
self.get_wallet().broadcast(&tx)?;
let tx_details = self.get_wallet().get_tx(&tx.txid(), true)?;
Ok(Transaction::from(&tx_details.unwrap()))
let txid = self.get_wallet().broadcast(&tx)?;
Ok(txid.to_hex())
}
}