From f09d829523003bc38f4dbb1b838247fa858b19f9 Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Thu, 1 Oct 2020 11:54:20 -0300 Subject: [PATCH] Enable reusing unused AVAILABLE entries --- .../bisq/core/btc/wallet/BtcWalletService.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java b/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java index d02b4e32f39..d7bc46ce721 100644 --- a/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java +++ b/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java @@ -578,20 +578,20 @@ public AddressEntry getOrCreateAddressEntry(String offerId, AddressEntry.Context if (addressEntry.isPresent()) { return addressEntry.get(); } else { -// Disable reusing unused AVAILABLE entries until segwit support in mandatory in Bisq // We try to use available and not yet used entries -// Optional emptyAvailableAddressEntry = getAddressEntryListAsImmutableList().stream() -// .filter(e -> AddressEntry.Context.AVAILABLE == e.getContext()) -// .filter(e -> isAddressUnused(e.getAddress())) -// .findAny(); -// if (emptyAvailableAddressEntry.isPresent()) { -// return addressEntryList.swapAvailableToAddressEntryWithOfferId(emptyAvailableAddressEntry.get(), context, offerId); -// } else { + Optional emptyAvailableAddressEntry = getAddressEntryListAsImmutableList().stream() + .filter(e -> AddressEntry.Context.AVAILABLE == e.getContext()) + .filter(e -> isAddressUnused(e.getAddress())) + .filter(e -> Script.ScriptType.P2PKH.equals(e.getAddress().getOutputScriptType())) + .findAny(); + if (emptyAvailableAddressEntry.isPresent()) { + return addressEntryList.swapAvailableToAddressEntryWithOfferId(emptyAvailableAddressEntry.get(), context, offerId); + } else { DeterministicKey key = (DeterministicKey) wallet.findKeyFromAddress(wallet.freshReceiveAddress(Script.ScriptType.P2PKH)); AddressEntry entry = new AddressEntry(key, context, offerId, false); addressEntryList.addAddressEntry(entry); return entry; -// } + } } }