From 9b50cd7ba71f2bd6a7b4a1e6019e1ae77a176efc Mon Sep 17 00:00:00 2001 From: woodser Date: Sun, 26 Jan 2025 21:04:05 -0500 Subject: [PATCH] fix contract mismatch by nullifying extra info empty string --- .../java/haveno/core/offer/CreateOfferService.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/haveno/core/offer/CreateOfferService.java b/core/src/main/java/haveno/core/offer/CreateOfferService.java index 508a3f44e3..bca446827c 100644 --- a/core/src/main/java/haveno/core/offer/CreateOfferService.java +++ b/core/src/main/java/haveno/core/offer/CreateOfferService.java @@ -130,6 +130,9 @@ public Offer createAndGetOffer(String offerId, buyerAsTakerWithoutDeposit, extraInfo); + // must nullify empty string so contracts match + if ("".equals(extraInfo)) extraInfo = null; + // verify buyer as taker security deposit boolean isBuyerMaker = offerUtil.isBuyOffer(direction); if (!isBuyerMaker && !isPrivateOffer && buyerAsTakerWithoutDeposit) { @@ -142,14 +145,11 @@ public Offer createAndGetOffer(String offerId, if (marketPriceMargin != 0) throw new IllegalArgumentException("Cannot set market price margin with fixed price"); } - long creationTime = new Date().getTime(); - NodeAddress makerAddress = p2PService.getAddress(); + // verify price boolean useMarketBasedPriceValue = fixedPrice == null && useMarketBasedPrice && isMarketPriceAvailable(currencyCode) && !PaymentMethod.isFixedPriceOnly(paymentAccount.getPaymentMethod().getId()); - - // verify price if (fixedPrice == null && !useMarketBasedPriceValue) { throw new IllegalArgumentException("Must provide fixed price"); } @@ -166,6 +166,8 @@ public Offer createAndGetOffer(String offerId, challengeHash = HavenoUtils.getChallengeHash(challenge); } + long creationTime = new Date().getTime(); + NodeAddress makerAddress = p2PService.getAddress(); long priceAsLong = fixedPrice != null ? fixedPrice.getValue() : 0L; double marketPriceMarginParam = useMarketBasedPriceValue ? marketPriceMargin : 0; long amountAsLong = amount != null ? amount.longValueExact() : 0L;