From 65d3ef4ff53b9bd940cbc4b93fc00a18a02fa4e8 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Sun, 14 Nov 2021 02:00:00 +0100 Subject: [PATCH 1/3] Add check for isUseMarketBasedPrice --- core/src/main/java/bisq/core/offer/Offer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/java/bisq/core/offer/Offer.java b/core/src/main/java/bisq/core/offer/Offer.java index 7c3797a058b..2c77f0a80d8 100644 --- a/core/src/main/java/bisq/core/offer/Offer.java +++ b/core/src/main/java/bisq/core/offer/Offer.java @@ -227,6 +227,11 @@ public long getFixedPrice() { public void checkTradePriceTolerance(long takersTradePrice) throws TradePriceOutOfToleranceException, MarketPriceNotAvailableException, IllegalArgumentException { + if (!isUseMarketBasedPrice()) { + checkArgument(takersTradePrice == getFixedPrice(), + "Takers price does not match offer price"); + } + Price tradePrice = Price.valueOf(getCurrencyCode(), takersTradePrice); Price offerPrice = getPrice(); if (offerPrice == null) From f054c8ae95a4a03a80c7f88f26ae8ab1275c9d3b Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Sun, 14 Nov 2021 02:00:54 +0100 Subject: [PATCH 2/3] Rename --- core/src/main/java/bisq/core/offer/Offer.java | 2 +- core/src/main/java/bisq/core/offer/OpenOfferManager.java | 2 +- .../tasks/maker/MakerProcessesInputsForDepositTxRequest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/bisq/core/offer/Offer.java b/core/src/main/java/bisq/core/offer/Offer.java index 2c77f0a80d8..04ed55d7ea6 100644 --- a/core/src/main/java/bisq/core/offer/Offer.java +++ b/core/src/main/java/bisq/core/offer/Offer.java @@ -225,7 +225,7 @@ public long getFixedPrice() { return offerPayloadBase.getPrice(); } - public void checkTradePriceTolerance(long takersTradePrice) throws TradePriceOutOfToleranceException, + public void verifyTakersTradePrice(long takersTradePrice) throws TradePriceOutOfToleranceException, MarketPriceNotAvailableException, IllegalArgumentException { if (!isUseMarketBasedPrice()) { checkArgument(takersTradePrice == getFixedPrice(), diff --git a/core/src/main/java/bisq/core/offer/OpenOfferManager.java b/core/src/main/java/bisq/core/offer/OpenOfferManager.java index 2aab258b9c5..e2b270f6904 100644 --- a/core/src/main/java/bisq/core/offer/OpenOfferManager.java +++ b/core/src/main/java/bisq/core/offer/OpenOfferManager.java @@ -685,7 +685,7 @@ private void handleOfferAvailabilityRequest(OfferAvailabilityRequest request, No // Check also tradePrice to avoid failures after taker fee is paid caused by a too big difference // in trade price between the peers. Also here poor connectivity might cause market price API connection // losses and therefore an outdated market price. - offer.checkTradePriceTolerance(request.getTakersTradePrice()); + offer.verifyTakersTradePrice(request.getTakersTradePrice()); availabilityResult = AvailabilityResult.AVAILABLE; } catch (TradePriceOutOfToleranceException e) { log.warn("Trade price check failed because takers price is outside out tolerance."); diff --git a/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/maker/MakerProcessesInputsForDepositTxRequest.java b/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/maker/MakerProcessesInputsForDepositTxRequest.java index c2ac35f6d90..c49c2338e21 100644 --- a/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/maker/MakerProcessesInputsForDepositTxRequest.java +++ b/core/src/main/java/bisq/core/trade/protocol/bisq_v1/tasks/maker/MakerProcessesInputsForDepositTxRequest.java @@ -104,7 +104,7 @@ protected void run() { Offer offer = checkNotNull(trade.getOffer(), "Offer must not be null"); try { long takersTradePrice = request.getTradePrice(); - offer.checkTradePriceTolerance(takersTradePrice); + offer.verifyTakersTradePrice(takersTradePrice); trade.setPriceAsLong(takersTradePrice); } catch (TradePriceOutOfToleranceException e) { failed(e.getMessage()); From 478b7568ee4439de04d9e0a0fcf5785aac2bf197 Mon Sep 17 00:00:00 2001 From: chimp1984 Date: Sun, 14 Nov 2021 11:28:25 +0100 Subject: [PATCH 3/3] Add return Add more info in case it fails --- core/src/main/java/bisq/core/offer/Offer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/bisq/core/offer/Offer.java b/core/src/main/java/bisq/core/offer/Offer.java index 04ed55d7ea6..88c2963b0e3 100644 --- a/core/src/main/java/bisq/core/offer/Offer.java +++ b/core/src/main/java/bisq/core/offer/Offer.java @@ -229,7 +229,9 @@ public void verifyTakersTradePrice(long takersTradePrice) throws TradePriceOutOf MarketPriceNotAvailableException, IllegalArgumentException { if (!isUseMarketBasedPrice()) { checkArgument(takersTradePrice == getFixedPrice(), - "Takers price does not match offer price"); + "Takers price does not match offer price. " + + "Takers price=" + takersTradePrice + "; offer price=" + getFixedPrice()); + return; } Price tradePrice = Price.valueOf(getCurrencyCode(), takersTradePrice);