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).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
- Breaking Changes
|
- Breaking Changes
|
||||||
- Rename `get_network()` method on `Wallet` interface to `network()` [#185]
|
- Rename `get_network()` method on `Wallet` interface to `network()` [#185]
|
||||||
- Rename `get_transactions()` method on `Wallet` interface to `list_transactions()` [#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
|
- `extend(DerivationPath)` extends and returns DescriptorPublicKey
|
||||||
- `as_string()` returns DescriptorPublicKey as String
|
- `as_string()` returns DescriptorPublicKey as String
|
||||||
- Add to `interface Blockchain` the `get_height()` and `get_block_hash()` methods [#184]
|
- 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]
|
- Interfaces Added [#154]
|
||||||
- `DescriptorSecretKey`
|
- `DescriptorSecretKey`
|
||||||
- `DescriptorPublicKey`
|
- `DescriptorPublicKey`
|
||||||
|
@ -168,6 +168,11 @@ dictionary LocalUtxo {
|
|||||||
boolean is_spent;
|
boolean is_spent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dictionary AddressAmount {
|
||||||
|
string address;
|
||||||
|
u64 amount;
|
||||||
|
};
|
||||||
|
|
||||||
interface Wallet {
|
interface Wallet {
|
||||||
[Throws=BdkError]
|
[Throws=BdkError]
|
||||||
constructor(string descriptor, string? change_descriptor, Network network, DatabaseConfig database_config);
|
constructor(string descriptor, string? change_descriptor, Network network, DatabaseConfig database_config);
|
||||||
@ -235,6 +240,8 @@ interface TxBuilder {
|
|||||||
|
|
||||||
TxBuilder add_data(sequence<u8> data);
|
TxBuilder add_data(sequence<u8> data);
|
||||||
|
|
||||||
|
TxBuilder set_recipients(sequence<AddressAmount> recipients);
|
||||||
|
|
||||||
[Throws=BdkError]
|
[Throws=BdkError]
|
||||||
PartiallySignedBitcoinTransaction finish([ByRef] Wallet wallet);
|
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;
|
type BdkError = Error;
|
||||||
|
|
||||||
|
pub struct AddressAmount {
|
||||||
|
pub address: String,
|
||||||
|
pub amount: u64,
|
||||||
|
}
|
||||||
|
|
||||||
pub struct AddressInfo {
|
pub struct AddressInfo {
|
||||||
pub index: u32,
|
pub index: u32,
|
||||||
pub address: String,
|
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> {
|
fn add_unspendable(&self, unspendable: OutPoint) -> Arc<Self> {
|
||||||
let mut unspendable_hash_set = self.unspendable.clone();
|
let mut unspendable_hash_set = self.unspendable.clone();
|
||||||
unspendable_hash_set.insert(unspendable);
|
unspendable_hash_set.insert(unspendable);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user