Merge pull request #30 from notmandatory/allow-creating-a-wallet-with-a-change-descriptor

Allow creating a wallet with a change descriptor
This commit is contained in:
Sudarsan Balaji 2021-10-21 14:54:21 +05:30 committed by GitHub
commit 6a25dbfb05
4 changed files with 6 additions and 5 deletions

View File

@ -62,7 +62,7 @@ fun main(args: Array<String>) {
BlockchainConfig.Electrum( BlockchainConfig.Electrum(
ElectrumConfig("ssl://electrum.blockstream.info:60002", null, 5u, null, 10u) ElectrumConfig("ssl://electrum.blockstream.info:60002", null, 5u, null, 10u)
) )
val wallet = OnlineWallet(descriptor, network, db, client) val wallet = OnlineWallet(descriptor, null, network, db, client)
wallet.sync(LogProgress(), null) wallet.sync(LogProgress(), null)
println("Initial wallet balance: ${wallet.getBalance()}") println("Initial wallet balance: ${wallet.getBalance()}")
println("Please send $amount satoshis to address: ${wallet.getNewAddress()}") println("Please send $amount satoshis to address: ${wallet.getNewAddress()}")

View File

@ -61,7 +61,7 @@ abstract class LibTest {
100u 100u
) )
) )
val wallet = OnlineWallet(desc, Network.TESTNET, db, client) val wallet = OnlineWallet(desc, null, Network.TESTNET, db, client)
assertNotNull(wallet) assertNotNull(wallet)
val network = wallet.getNetwork() val network = wallet.getNetwork()
assertEquals(network, Network.TESTNET) assertEquals(network, Network.TESTNET)
@ -87,7 +87,7 @@ abstract class LibTest {
100u 100u
) )
) )
val wallet = OnlineWallet(desc, Network.TESTNET, db, client) val wallet = OnlineWallet(desc, null, Network.TESTNET, db, client)
wallet.sync(LogProgress(), null) wallet.sync(LogProgress(), null)
val balance = wallet.getBalance() val balance = wallet.getBalance()
assertTrue(balance > 0u) assertTrue(balance > 0u)

View File

@ -126,7 +126,7 @@ callback interface BdkProgress {
interface OnlineWallet { interface OnlineWallet {
[Throws=BdkError] [Throws=BdkError]
constructor(string descriptor, Network network, DatabaseConfig database_config, BlockchainConfig blockchain_config); constructor(string descriptor, string? change_descriptor, Network network, DatabaseConfig database_config, BlockchainConfig blockchain_config);
// OfflineWalletOperations // OfflineWalletOperations
string get_new_address(); string get_new_address();

View File

@ -193,6 +193,7 @@ impl PartiallySignedBitcoinTransaction {
impl OnlineWallet { impl OnlineWallet {
fn new( fn new(
descriptor: String, descriptor: String,
change_descriptor: Option<String>,
network: Network, network: Network,
database_config: DatabaseConfig, database_config: DatabaseConfig,
blockchain_config: BlockchainConfig, blockchain_config: BlockchainConfig,
@ -225,7 +226,7 @@ impl OnlineWallet {
let blockchain = AnyBlockchain::from_config(&any_blockchain_config)?; let blockchain = AnyBlockchain::from_config(&any_blockchain_config)?;
let wallet = Mutex::new(Wallet::new( let wallet = Mutex::new(Wallet::new(
&descriptor, &descriptor,
None, change_descriptor.to_owned().as_ref(),
network, network,
database, database,
blockchain, blockchain,