Simplify
This commit is contained in:
		
							parent
							
								
									a48f9b4387
								
							
						
					
					
						commit
						5512b31969
					
				
							
								
								
									
										18
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/lib.rs
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | |||||||
| use bdk::bitcoin::hashes::hex::ToHex; | use bdk::bitcoin::hashes::hex::ToHex; | ||||||
| use bdk::bitcoin::secp256k1::Secp256k1; | use bdk::bitcoin::secp256k1::Secp256k1; | ||||||
| use bdk::bitcoin::util::psbt::PartiallySignedTransaction; | use bdk::bitcoin::util::psbt::PartiallySignedTransaction; | ||||||
| use bdk::bitcoin::{Address, Network}; | use bdk::bitcoin::{Address, Network, Script}; | ||||||
| use bdk::blockchain::any::{AnyBlockchain, AnyBlockchainConfig}; | use bdk::blockchain::any::{AnyBlockchain, AnyBlockchainConfig}; | ||||||
| use bdk::blockchain::Progress; | use bdk::blockchain::Progress; | ||||||
| use bdk::blockchain::{ | use bdk::blockchain::{ | ||||||
| @ -277,6 +277,12 @@ fn restore_extended_key( | |||||||
|     }) |     }) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | fn to_script_pubkey(address: &str) -> Result<Script, BdkError> { | ||||||
|  |     Address::from_str(address) | ||||||
|  |         .map(|x| x.script_pubkey()) | ||||||
|  |         .map_err(|e| BdkError::Generic(e.to_string())) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| struct TxBuilder { | struct TxBuilder { | ||||||
|     recipients: Vec<(String, u64)>, |     recipients: Vec<(String, u64)>, | ||||||
|     fee_rate: Option<f32>, |     fee_rate: Option<f32>, | ||||||
| @ -336,10 +342,7 @@ impl TxBuilder { | |||||||
|         let wallet = wallet.get_wallet(); |         let wallet = wallet.get_wallet(); | ||||||
|         let mut tx_builder = wallet.build_tx(); |         let mut tx_builder = wallet.build_tx(); | ||||||
|         for (address, amount) in &self.recipients { |         for (address, amount) in &self.recipients { | ||||||
|             let script_pubkey = Address::from_str(address) |             tx_builder.add_recipient(to_script_pubkey(address)?, *amount); | ||||||
|                 .map(|x| x.script_pubkey()) |  | ||||||
|                 .map_err(|e| BdkError::Generic(e.to_string()))?; |  | ||||||
|             tx_builder.add_recipient(script_pubkey, *amount); |  | ||||||
|         } |         } | ||||||
|         if let Some(sat_per_vb) = self.fee_rate { |         if let Some(sat_per_vb) = self.fee_rate { | ||||||
|             tx_builder.fee_rate(FeeRate::from_sat_per_vb(sat_per_vb)); |             tx_builder.fee_rate(FeeRate::from_sat_per_vb(sat_per_vb)); | ||||||
| @ -348,10 +351,7 @@ impl TxBuilder { | |||||||
|             tx_builder.drain_wallet(); |             tx_builder.drain_wallet(); | ||||||
|         } |         } | ||||||
|         if let Some(address) = &self.drain_to { |         if let Some(address) = &self.drain_to { | ||||||
|             let script_pubkey = Address::from_str(address) |             tx_builder.drain_to(to_script_pubkey(address)?); | ||||||
|                 .map(|a| a.script_pubkey()) |  | ||||||
|                 .map_err(|e| BdkError::Generic(e.to_string()))?; |  | ||||||
|             tx_builder.drain_to(script_pubkey); |  | ||||||
|         } |         } | ||||||
|         tx_builder |         tx_builder | ||||||
|             .finish() |             .finish() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user