mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 23:18:17 +01:00
Merge pull request #5825 from chimp1984/improve-offer-validation
Improve offer validation
This commit is contained in:
commit
83c9355931
3 changed files with 10 additions and 3 deletions
|
@ -225,8 +225,15 @@ public class Offer implements NetworkPayload, PersistablePayload {
|
||||||
return offerPayloadBase.getPrice();
|
return offerPayloadBase.getPrice();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkTradePriceTolerance(long takersTradePrice) throws TradePriceOutOfToleranceException,
|
public void verifyTakersTradePrice(long takersTradePrice) throws TradePriceOutOfToleranceException,
|
||||||
MarketPriceNotAvailableException, IllegalArgumentException {
|
MarketPriceNotAvailableException, IllegalArgumentException {
|
||||||
|
if (!isUseMarketBasedPrice()) {
|
||||||
|
checkArgument(takersTradePrice == getFixedPrice(),
|
||||||
|
"Takers price does not match offer price. " +
|
||||||
|
"Takers price=" + takersTradePrice + "; offer price=" + getFixedPrice());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Price tradePrice = Price.valueOf(getCurrencyCode(), takersTradePrice);
|
Price tradePrice = Price.valueOf(getCurrencyCode(), takersTradePrice);
|
||||||
Price offerPrice = getPrice();
|
Price offerPrice = getPrice();
|
||||||
if (offerPrice == null)
|
if (offerPrice == null)
|
||||||
|
|
|
@ -685,7 +685,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
|
||||||
// Check also tradePrice to avoid failures after taker fee is paid caused by a too big difference
|
// 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
|
// in trade price between the peers. Also here poor connectivity might cause market price API connection
|
||||||
// losses and therefore an outdated market price.
|
// losses and therefore an outdated market price.
|
||||||
offer.checkTradePriceTolerance(request.getTakersTradePrice());
|
offer.verifyTakersTradePrice(request.getTakersTradePrice());
|
||||||
availabilityResult = AvailabilityResult.AVAILABLE;
|
availabilityResult = AvailabilityResult.AVAILABLE;
|
||||||
} catch (TradePriceOutOfToleranceException e) {
|
} catch (TradePriceOutOfToleranceException e) {
|
||||||
log.warn("Trade price check failed because takers price is outside out tolerance.");
|
log.warn("Trade price check failed because takers price is outside out tolerance.");
|
||||||
|
|
|
@ -104,7 +104,7 @@ public class MakerProcessesInputsForDepositTxRequest extends TradeTask {
|
||||||
Offer offer = checkNotNull(trade.getOffer(), "Offer must not be null");
|
Offer offer = checkNotNull(trade.getOffer(), "Offer must not be null");
|
||||||
try {
|
try {
|
||||||
long takersTradePrice = request.getTradePrice();
|
long takersTradePrice = request.getTradePrice();
|
||||||
offer.checkTradePriceTolerance(takersTradePrice);
|
offer.verifyTakersTradePrice(takersTradePrice);
|
||||||
trade.setPriceAsLong(takersTradePrice);
|
trade.setPriceAsLong(takersTradePrice);
|
||||||
} catch (TradePriceOutOfToleranceException e) {
|
} catch (TradePriceOutOfToleranceException e) {
|
||||||
failed(e.getMessage());
|
failed(e.getMessage());
|
||||||
|
|
Loading…
Add table
Reference in a new issue