feat: expose get_tx method on wallet type
This commit is contained in:
parent
97a104fd5f
commit
806e29b93c
@ -104,6 +104,11 @@ interface DescriptorError {
|
||||
Hex(string e);
|
||||
};
|
||||
|
||||
[Error]
|
||||
interface TxidParseError {
|
||||
InvalidTxid(string txid);
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// bdk crate - types module
|
||||
// ------------------------------------------------------------------------
|
||||
@ -212,6 +217,9 @@ interface Wallet {
|
||||
|
||||
sequence<CanonicalTx> transactions();
|
||||
|
||||
[Throws=TxidParseError]
|
||||
CanonicalTx? get_tx(string txid);
|
||||
|
||||
[Throws=CalculateFeeError]
|
||||
u64 calculate_fee([ByRef] Transaction tx);
|
||||
|
||||
|
@ -109,6 +109,12 @@ pub enum FeeRateError {
|
||||
ArithmeticOverflow,
|
||||
}
|
||||
|
||||
#[derive(Debug, thiserror::Error)]
|
||||
pub enum TxidParseError {
|
||||
#[error("invalid txid: {txid}")]
|
||||
InvalidTxid { txid: String },
|
||||
}
|
||||
|
||||
#[derive(Debug, thiserror::Error)]
|
||||
pub enum AddressError {
|
||||
#[error("base58 address encoding error")]
|
||||
@ -318,12 +324,6 @@ impl From<std::io::Error> for PersistenceError {
|
||||
}
|
||||
}
|
||||
|
||||
// impl From<DescriptorError> for Alpha3Error {
|
||||
// fn from(_: DescriptorError) -> Self {
|
||||
// Alpha3Error::Generic
|
||||
// }
|
||||
// }
|
||||
|
||||
impl From<AllowShrinkingError> for Alpha3Error {
|
||||
fn from(_: AllowShrinkingError) -> Self {
|
||||
Alpha3Error::Generic
|
||||
|
@ -22,6 +22,7 @@ use crate::error::FeeRateError;
|
||||
use crate::error::PersistenceError;
|
||||
use crate::error::PsbtParseError;
|
||||
use crate::error::TransactionError;
|
||||
use crate::error::TxidParseError;
|
||||
use crate::error::WalletCreationError;
|
||||
use crate::esplora::EsploraClient;
|
||||
use crate::keys::DerivationPath;
|
||||
|
@ -1,6 +1,8 @@
|
||||
use crate::bitcoin::{OutPoint, PartiallySignedTransaction, Script, Transaction};
|
||||
use crate::descriptor::Descriptor;
|
||||
use crate::error::{Alpha3Error, CalculateFeeError, PersistenceError, WalletCreationError};
|
||||
use crate::error::{
|
||||
Alpha3Error, CalculateFeeError, PersistenceError, TxidParseError, WalletCreationError,
|
||||
};
|
||||
use crate::types::{AddressIndex, AddressInfo, Balance, CanonicalTx, FeeRate, ScriptAmount};
|
||||
|
||||
use bdk::bitcoin::blockdata::script::ScriptBuf as BdkScriptBuf;
|
||||
@ -108,6 +110,12 @@ impl Wallet {
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn get_tx(&self, txid: String) -> Result<Option<CanonicalTx>, TxidParseError> {
|
||||
let txid =
|
||||
Txid::from_str(txid.as_str()).map_err(|_| TxidParseError::InvalidTxid { txid })?;
|
||||
Ok(self.get_wallet().get_tx(txid).map(|tx| tx.into()))
|
||||
}
|
||||
|
||||
pub fn calculate_fee(&self, tx: &Transaction) -> Result<u64, CalculateFeeError> {
|
||||
self.get_wallet()
|
||||
.calculate_fee(&tx.into())
|
||||
|
Loading…
x
Reference in New Issue
Block a user