feat: add broadcast method on electrum client
This commit is contained in:
parent
1913c45ef9
commit
4aec4b0434
@ -501,6 +501,9 @@ interface ElectrumClient {
|
|||||||
|
|
||||||
[Throws=ElectrumClientError]
|
[Throws=ElectrumClientError]
|
||||||
Update sync(SyncRequest sync_request, u64 batch_size, boolean fetch_prev_txouts);
|
Update sync(SyncRequest sync_request, u64 batch_size, boolean fetch_prev_txouts);
|
||||||
|
|
||||||
|
[Throws=ElectrumClientError]
|
||||||
|
string broadcast([ByRef] Transaction transaction);
|
||||||
};
|
};
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
@ -3,14 +3,16 @@ use crate::types::{FullScanRequest, SyncRequest};
|
|||||||
use crate::wallet::Update;
|
use crate::wallet::Update;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
use bdk::bitcoin::Transaction as BdkTransaction;
|
||||||
use bdk::chain::spk_client::FullScanRequest as BdkFullScanRequest;
|
use bdk::chain::spk_client::FullScanRequest as BdkFullScanRequest;
|
||||||
use bdk::chain::spk_client::FullScanResult as BdkFullScanResult;
|
use bdk::chain::spk_client::FullScanResult as BdkFullScanResult;
|
||||||
use bdk::chain::spk_client::SyncRequest as BdkSyncRequest;
|
use bdk::chain::spk_client::SyncRequest as BdkSyncRequest;
|
||||||
use bdk::chain::spk_client::SyncResult as BdkSyncResult;
|
use bdk::chain::spk_client::SyncResult as BdkSyncResult;
|
||||||
use bdk::KeychainKind;
|
use bdk::KeychainKind;
|
||||||
use bdk_electrum::electrum_client::Client as BdkBlockingClient;
|
use bdk_electrum::electrum_client::{Client as BdkBlockingClient, ElectrumApi};
|
||||||
use bdk_electrum::{ElectrumExt, ElectrumFullScanResult, ElectrumSyncResult};
|
use bdk_electrum::{ElectrumExt, ElectrumFullScanResult, ElectrumSyncResult};
|
||||||
|
|
||||||
|
use crate::bitcoin::Transaction;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct ElectrumClient(BdkBlockingClient);
|
pub struct ElectrumClient(BdkBlockingClient);
|
||||||
@ -82,4 +84,12 @@ impl ElectrumClient {
|
|||||||
|
|
||||||
Ok(Arc::new(Update(update)))
|
Ok(Arc::new(Update(update)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn broadcast(&self, transaction: &Transaction) -> Result<String, ElectrumClientError> {
|
||||||
|
let bdk_transaction: BdkTransaction = transaction.into();
|
||||||
|
self.0
|
||||||
|
.transaction_broadcast(&bdk_transaction)
|
||||||
|
.map_err(ElectrumClientError::from)
|
||||||
|
.map(|txid| txid.to_string())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user