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