fix signing regression on psbts with external inputs

This commit is contained in:
Craig Raw
2024-04-30 11:55:28 +02:00
parent f1b246f0b0
commit 83719e7df2
2 changed files with 4 additions and 3 deletions
@@ -1386,8 +1386,9 @@ public class HeadersController extends TransactionFormController implements Init
@Subscribe
public void openWallets(OpenWalletsEvent event) {
if(id.getScene().getWindow().equals(event.getWindow()) && headersForm.getPsbt() != null && headersForm.getBlockTransaction() == null) {
List<Wallet> availableWallets = event.getWallets().stream().filter(wallet -> wallet.canSignAllInputs(headersForm.getPsbt())).sorted(new WalletSignComparator()).collect(Collectors.toList());
if(availableWallets.isEmpty()) {
List<Wallet> availableWallets = event.getWallets().stream().filter(wallet -> wallet.canSign(headersForm.getPsbt())).sorted(new WalletSignComparator()).collect(Collectors.toList());
List<Wallet> signingAllInputsWallets = event.getWallets().stream().filter(wallet -> wallet.canSignAllInputs(headersForm.getPsbt())).sorted(new WalletSignComparator()).collect(Collectors.toList());
if(availableWallets.isEmpty() || !availableWallets.equals(signingAllInputsWallets)) {
for(Wallet wallet : event.getWalletsMap().keySet()) {
if(wallet.isValid() && !wallet.getSigningKeystores(headersForm.getPsbt()).isEmpty()) {
int currentGapLimit = wallet.getGapLimit();