Skip to content

Commit 88d407f

Browse files
committed
fix fixed price inversion bug
1 parent e4e2ad8 commit 88d407f

File tree

3 files changed

+7
-10
lines changed

3 files changed

+7
-10
lines changed

core/src/main/java/haveno/core/api/CoreOffersService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,7 @@ private boolean offerMatchesDirectionAndCurrency(Offer offer,
353353
if ("".equals(direction)) direction = null;
354354
if ("".equals(currencyCode)) currencyCode = null;
355355
var offerOfWantedDirection = direction == null || offer.getDirection().name().equalsIgnoreCase(direction);
356-
var counterAssetCode = offer.currenciesInverted() ? offer.getOfferPayload().getBaseCurrencyCode() : offer.getOfferPayload().getCounterCurrencyCode();
357-
var offerInWantedCurrency = currencyCode == null || counterAssetCode.equalsIgnoreCase(currencyCode);
356+
var offerInWantedCurrency = currencyCode == null || offer.getCounterCurrencyCode().equalsIgnoreCase(currencyCode);
358357
return offerOfWantedDirection && offerInWantedCurrency;
359358
}
360359

core/src/main/java/haveno/core/offer/Offer.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import haveno.core.provider.price.MarketPrice;
4040
import haveno.core.provider.price.PriceFeedService;
4141
import haveno.core.trade.HavenoUtils;
42+
import haveno.core.util.PriceUtil;
4243
import haveno.core.util.VolumeUtil;
4344
import haveno.network.p2p.NodeAddress;
4445
import javafx.beans.property.ObjectProperty;
@@ -175,7 +176,7 @@ public void cancelAvailabilityRequest() {
175176
public Price getPrice() {
176177
String counterCurrencyCode = getCounterCurrencyCode();
177178
if (!offerPayload.isUseMarketBasedPrice()) {
178-
return Price.valueOf(counterCurrencyCode, offerPayload.getPrice());
179+
return Price.valueOf(counterCurrencyCode, currenciesInverted() ? PriceUtil.invertLongPrice(offerPayload.getPrice(), counterCurrencyCode) : offerPayload.getPrice());
179180
}
180181

181182
checkNotNull(priceFeedService, "priceFeed must not be null");
@@ -508,9 +509,7 @@ public String getCountryCode() {
508509
}
509510

510511
public String getBaseCurrencyCode() {
511-
if (currencyCode != null) return currencyCode;
512-
currencyCode = currenciesInverted() ? offerPayload.getCounterCurrencyCode() : offerPayload.getBaseCurrencyCode(); // legacy offers inverted crypto
513-
return currencyCode;
512+
return currenciesInverted() ? offerPayload.getCounterCurrencyCode() : offerPayload.getBaseCurrencyCode(); // legacy offers inverted crypto
514513
}
515514

516515
public String getCounterCurrencyCode() {

core/src/main/java/haveno/core/offer/OpenOfferManager.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878
import haveno.core.user.Preferences;
7979
import haveno.core.user.User;
8080
import haveno.core.util.JsonUtil;
81-
import haveno.core.util.PriceUtil;
8281
import haveno.core.util.Validator;
8382
import haveno.core.xmr.model.XmrAddressEntry;
8483
import haveno.core.xmr.wallet.BtcWalletService;
@@ -2014,7 +2013,7 @@ private void maybeUpdatePersistedOffers() {
20142013
ownerNodeAddress,
20152014
originalOfferPayload.getPubKeyRing(),
20162015
originalOfferPayload.getDirection(),
2017-
originalOffer.currenciesInverted() && originalOfferPayload.getPrice() != 0 ? PriceUtil.invertLongPrice(originalOfferPayload.getPrice(), originalOffer.getCounterCurrencyCode()) : originalOfferPayload.getPrice(),
2016+
originalOffer.getPrice().getValue(),
20182017
originalOfferPayload.getMarketPriceMarginPct(),
20192018
originalOfferPayload.isUseMarketBasedPrice(),
20202019
originalOfferPayload.getAmount(),
@@ -2024,8 +2023,8 @@ private void maybeUpdatePersistedOffers() {
20242023
originalOfferPayload.getPenaltyFeePct(),
20252024
originalOfferPayload.getBuyerSecurityDepositPct(),
20262025
originalOfferPayload.getSellerSecurityDepositPct(),
2027-
originalOffer.currenciesInverted() ? originalOfferPayload.getCounterCurrencyCode() : originalOfferPayload.getBaseCurrencyCode(),
2028-
originalOffer.currenciesInverted() ? originalOfferPayload.getBaseCurrencyCode() : originalOfferPayload.getCounterCurrencyCode(),
2026+
originalOffer.getBaseCurrencyCode(),
2027+
originalOffer.getCounterCurrencyCode(),
20292028
originalOfferPayload.getPaymentMethodId(),
20302029
originalOfferPayload.getMakerPaymentAccountId(),
20312030
originalOfferPayload.getCountryCode(),

0 commit comments

Comments
 (0)