diff --git a/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBook.java b/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBook.java index 556f594d1f4..b6904639a6f 100644 --- a/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBook.java +++ b/desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBook.java @@ -91,7 +91,7 @@ public void onAdded(Offer offer, P2PDataStorage.ByteArray hashOfPayload, int seq boolean hasSameOffer = offerBookListItems.stream().anyMatch(item -> item.getOffer().equals(offer)); if (!hasSameOffer) { OfferBookListItem newOfferBookListItem = new OfferBookListItem(offer, hashOfPayload, sequenceNumber); - removeAnyOldOfferBookListItemsBeforeAddingReplacement(newOfferBookListItem); + removeDuplicateItem(newOfferBookListItem); offerBookListItems.add(newOfferBookListItem); // Add replacement. if (log.isDebugEnabled()) { log.debug("onAdded: Added new offer {}\n" @@ -116,7 +116,7 @@ public void onRemoved(Offer offer, P2PDataStorage.ByteArray hashOfPayload, int s }); } - private void removeAnyOldOfferBookListItemsBeforeAddingReplacement(OfferBookListItem newOfferBookListItem) { + private void removeDuplicateItem(OfferBookListItem newOfferBookListItem) { String offerId = newOfferBookListItem.getOffer().getId(); List offerItemsWithSameIdAndDifferentHash = offerBookListItems.stream() .filter(item -> item.getOffer().getId().equals(offerId) && ( @@ -247,8 +247,7 @@ public void fillOfferBookListItems() { // Investigate why.... offerBookListItems.clear(); offerBookListItems.addAll(offerBookService.getOffers().stream() - .filter(o -> !isOfferIdBanned(o)) - .filter(o -> isV3NodeAddressCompliant(o)) + .filter(o -> isOfferAllowed(o)) .map(OfferBookListItem::new) .collect(Collectors.toList())); @@ -288,21 +287,16 @@ private Optional getOfferBookListItem(Offer offer) { .findFirst(); } - private boolean isOfferIdBanned(Offer offer) { - return filterManager.isOfferIdBanned(offer.getId()); - } - - private boolean isV3NodeAddressCompliant(Offer offer) { - return !OfferRestrictions.requiresNodeAddressUpdate() + private boolean isOfferAllowed(Offer offer) { + boolean isBanned = filterManager.isOfferIdBanned(offer.getId()); + boolean isV3NodeAddressCompliant = !OfferRestrictions.requiresNodeAddressUpdate() || Utils.isV3Address(offer.getMakerNodeAddress().getHostName()); + return !isBanned && isV3NodeAddressCompliant; } private boolean isStoredLocally(Offer offer) { return offerBookService.getOffers().stream() - .anyMatch(o -> o.getId().equals(offer.getId()) - && !isOfferIdBanned(o) - && isV3NodeAddressCompliant(o) - ); + .anyMatch(o -> o.getId().equals(offer.getId()) && isOfferAllowed(o)); } private void fillOfferCountMaps() {