From a4345ae709a16c4d9cd59605e98312ff172a6c69 Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Tue, 3 Jun 2025 21:44:14 -0400 Subject: [PATCH] arbitrator verifies offers are public xor no deposit from buyer/taker --- .../src/main/java/haveno/core/offer/OpenOfferManager.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/main/java/haveno/core/offer/OpenOfferManager.java b/core/src/main/java/haveno/core/offer/OpenOfferManager.java index 49fa770a..c3188da8 100644 --- a/core/src/main/java/haveno/core/offer/OpenOfferManager.java +++ b/core/src/main/java/haveno/core/offer/OpenOfferManager.java @@ -1618,6 +1618,14 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe } } else { + // verify public offer (remove to generally allow private offers) + if (offer.isPrivateOffer() || offer.getChallengeHash() != null) { + errorMessage = "Private offer " + request.offerId + " is not valid. It must have direction SELL, taker fee of 0, and a challenge hash."; + log.warn(errorMessage); + sendAckMessage(request.getClass(), peer, request.getPubKeyRing(), request.getOfferId(), request.getUid(), false, errorMessage); + return; + } + // verify maker's trade fee if (offer.getMakerFeePct() != HavenoUtils.MAKER_FEE_PCT) { errorMessage = "Wrong maker fee for offer " + request.offerId + ". Expected " + HavenoUtils.MAKER_FEE_PCT + " but got " + offer.getMakerFeePct();