From 9edfe42135d4798bdbbf71d4871101018435a667 Mon Sep 17 00:00:00 2001 From: jjy Date: Tue, 29 Oct 2024 10:54:05 +0800 Subject: [PATCH 1/3] update sign options --- mutiny-core/src/onchain.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mutiny-core/src/onchain.rs b/mutiny-core/src/onchain.rs index 717c6d417..409449843 100644 --- a/mutiny-core/src/onchain.rs +++ b/mutiny-core/src/onchain.rs @@ -651,7 +651,15 @@ impl OnChainWallet { builder.finish()? }; log_debug!(self.logger, "Unsigned PSBT: {psbt}"); - let finalized = wallet.sign(&mut psbt, SignOptions::default())?; + let finalized = wallet.sign( + &mut psbt, + SignOptions { + trust_witness_utxo: true, + try_finalize: true, + allow_all_sighashes: true, + ..Default::default() + }, + )?; log_debug!(self.logger, "finalized: {finalized}"); Ok(psbt) } From 006d16278efef08d93e2d5813fc8b2a5a29a0d82 Mon Sep 17 00:00:00 2001 From: jjy Date: Tue, 29 Oct 2024 22:12:36 +0800 Subject: [PATCH 2/3] Fix sweep signing --- mutiny-core/src/onchain.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mutiny-core/src/onchain.rs b/mutiny-core/src/onchain.rs index 409449843..61fd49af3 100644 --- a/mutiny-core/src/onchain.rs +++ b/mutiny-core/src/onchain.rs @@ -78,7 +78,8 @@ impl OnChainWallet { .descriptor( KeychainKind::Internal, Some(change_descriptor_template.clone()), - ), + ) + .extract_keys(), ) }); let wallet = match load_wallet_res { From 95582dccd468a1f5e2e29dd2b6cb21cf25c097b7 Mon Sep 17 00:00:00 2001 From: jjy Date: Tue, 29 Oct 2024 22:24:15 +0800 Subject: [PATCH 3/3] Store new wallet address --- mutiny-core/src/nodemanager.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mutiny-core/src/nodemanager.rs b/mutiny-core/src/nodemanager.rs index 34ef4ea2e..87a87a164 100644 --- a/mutiny-core/src/nodemanager.rs +++ b/mutiny-core/src/nodemanager.rs @@ -672,6 +672,10 @@ impl NodeManager { self.set_address_labels(address.clone(), labels)?; log_trace!(self.logger, "finished calling get_new_address"); + if let Some(changeset) = wallet.take_staged() { + self.storage.write_changes(&changeset)?; + } + return Ok(address); }