Expose set_recipients API from TxBuiler (#186)
This commit is contained in:
		
							parent
							
								
									aa004201b2
								
							
						
					
					
						commit
						3b028ecab1
					
				@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 | 
			
		||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 | 
			
		||||
 | 
			
		||||
## [Unreleased]
 | 
			
		||||
 | 
			
		||||
- Breaking Changes
 | 
			
		||||
  - Rename `get_network()` method on `Wallet` interface to `network()` [#185]
 | 
			
		||||
  - Rename `get_transactions()` method on `Wallet` interface to `list_transactions()` [#185]
 | 
			
		||||
@ -24,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 | 
			
		||||
    - `extend(DerivationPath)` extends and returns DescriptorPublicKey
 | 
			
		||||
    - `as_string()` returns DescriptorPublicKey as String
 | 
			
		||||
  - Add to `interface Blockchain` the `get_height()` and `get_block_hash()` methods [#184]
 | 
			
		||||
  - Add to `interface TxBuilder`  the `set_recipients(recipient: Vec<AddressAmount>)` method [#186] 
 | 
			
		||||
- Interfaces Added [#154]
 | 
			
		||||
  - `DescriptorSecretKey`
 | 
			
		||||
  - `DescriptorPublicKey`
 | 
			
		||||
 | 
			
		||||
@ -168,6 +168,11 @@ dictionary LocalUtxo {
 | 
			
		||||
  boolean is_spent;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
dictionary AddressAmount {
 | 
			
		||||
  string address;
 | 
			
		||||
  u64 amount;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
interface Wallet {
 | 
			
		||||
  [Throws=BdkError]
 | 
			
		||||
  constructor(string descriptor, string? change_descriptor, Network network, DatabaseConfig database_config);
 | 
			
		||||
@ -235,6 +240,8 @@ interface TxBuilder {
 | 
			
		||||
 | 
			
		||||
  TxBuilder add_data(sequence<u8> data);
 | 
			
		||||
  
 | 
			
		||||
  TxBuilder set_recipients(sequence<AddressAmount> recipients);
 | 
			
		||||
  
 | 
			
		||||
  [Throws=BdkError]
 | 
			
		||||
  PartiallySignedBitcoinTransaction finish([ByRef] Wallet wallet);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								src/lib.rs
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/lib.rs
									
									
									
									
									
								
							@ -37,6 +37,11 @@ uniffi_macros::include_scaffolding!("bdk");
 | 
			
		||||
 | 
			
		||||
type BdkError = Error;
 | 
			
		||||
 | 
			
		||||
pub struct AddressAmount {
 | 
			
		||||
    pub address: String,
 | 
			
		||||
    pub amount: u64,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct AddressInfo {
 | 
			
		||||
    pub index: u32,
 | 
			
		||||
    pub address: String,
 | 
			
		||||
@ -421,6 +426,17 @@ impl TxBuilder {
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn set_recipients(&self, recipients: Vec<AddressAmount>) -> Arc<Self> {
 | 
			
		||||
        let recipients = recipients
 | 
			
		||||
            .iter()
 | 
			
		||||
            .map(|address_amount| (address_amount.address.clone(), address_amount.amount))
 | 
			
		||||
            .collect();
 | 
			
		||||
        Arc::new(TxBuilder {
 | 
			
		||||
            recipients,
 | 
			
		||||
            ..self.clone()
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn add_unspendable(&self, unspendable: OutPoint) -> Arc<Self> {
 | 
			
		||||
        let mut unspendable_hash_set = self.unspendable.clone();
 | 
			
		||||
        unspendable_hash_set.insert(unspendable);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user