mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 07:07:43 +01:00
parent
53f42c4885
commit
520b6481f4
6 changed files with 17 additions and 24 deletions
|
@ -414,16 +414,14 @@ public class AccountAgeWitnessService {
|
|||
AccountAgeWitness accountAgeWitness,
|
||||
AccountAge accountAgeCategory,
|
||||
OfferPayload.Direction direction,
|
||||
PaymentMethod paymentMethod,
|
||||
boolean isMyLimit) {
|
||||
PaymentMethod paymentMethod) {
|
||||
if (CurrencyUtil.isCryptoCurrency(currencyCode) ||
|
||||
!PaymentMethod.hasChargebackRisk(paymentMethod, currencyCode) ||
|
||||
direction == OfferPayload.Direction.SELL) {
|
||||
return maxTradeLimit.value;
|
||||
}
|
||||
|
||||
long limit = isMyLimit ? OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF.value :
|
||||
OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER.value;
|
||||
long limit = OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT.value;
|
||||
var factor = signedBuyFactor(accountAgeCategory);
|
||||
if (factor > 0) {
|
||||
limit = MathUtils.roundDoubleToLong((double) maxTradeLimit.value * factor);
|
||||
|
@ -511,8 +509,7 @@ public class AccountAgeWitnessService {
|
|||
accountAgeWitness,
|
||||
accountAgeCategory,
|
||||
direction,
|
||||
paymentAccount.getPaymentMethod(),
|
||||
true);
|
||||
paymentAccount.getPaymentMethod());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -574,14 +571,14 @@ public class AccountAgeWitnessService {
|
|||
checkNotNull(offer);
|
||||
|
||||
// In case we don't find the witness we check if the trade amount is above the
|
||||
// TOLERATED_SMALL_AMOUNT_PEER and only in that case return false.
|
||||
// TOLERATED_SMALL_TRADE_AMOUNT (0.01 BTC) and only in that case return false.
|
||||
return findWitness(offer)
|
||||
.map(witness -> verifyPeersTradeLimit(offer, tradeAmount, witness, new Date(), errorMessageHandler))
|
||||
.orElse(isPeerToleratedSmallAmount(tradeAmount));
|
||||
.orElse(isToleratedSmalleAmount(tradeAmount));
|
||||
}
|
||||
|
||||
private boolean isPeerToleratedSmallAmount(Coin tradeAmount) {
|
||||
return tradeAmount.value <= OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER.value;
|
||||
private boolean isToleratedSmalleAmount(Coin tradeAmount) {
|
||||
return tradeAmount.value <= OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT.value;
|
||||
}
|
||||
|
||||
|
||||
|
@ -645,7 +642,7 @@ public class AccountAgeWitnessService {
|
|||
OfferPayload.Direction direction = offer.isMyOffer(keyRing) ?
|
||||
offer.getMirroredDirection() : offer.getDirection();
|
||||
peersCurrentTradeLimit = getTradeLimit(defaultMaxTradeLimit, currencyCode, peersWitness,
|
||||
accountAgeCategory, direction, offer.getPaymentMethod(), false);
|
||||
accountAgeCategory, direction, offer.getPaymentMethod());
|
||||
}
|
||||
// Makers current trade limit cannot be smaller than that in the offer
|
||||
boolean result = tradeAmount.value <= peersCurrentTradeLimit;
|
||||
|
|
|
@ -36,11 +36,7 @@ public class OfferRestrictions {
|
|||
return new Date().after(REQUIRE_UPDATE_DATE);
|
||||
}
|
||||
|
||||
// These values should generally be the same. However, to avoid voiding offers created with a higher limit
|
||||
// the TOLERATED_SMALL_AMOUNT_PEER value can be set to the higher limit to allow those offers to be taken
|
||||
// for a while.
|
||||
public static Coin TOLERATED_SMALL_AMOUNT_SELF = Coin.parseCoin("0.0025");
|
||||
public static Coin TOLERATED_SMALL_AMOUNT_PEER = Coin.parseCoin("0.01");
|
||||
public static Coin TOLERATED_SMALL_TRADE_AMOUNT = Coin.parseCoin("0.01");
|
||||
|
||||
static boolean hasOfferMandatoryCapability(Offer offer, Capability mandatoryCapability) {
|
||||
Map<String, String> extraDataMap = offer.getOfferPayload().getExtraDataMap();
|
||||
|
|
|
@ -66,7 +66,6 @@ import bisq.desktop.util.validation.HalCashValidator;
|
|||
import bisq.desktop.util.validation.IBANValidator;
|
||||
import bisq.desktop.util.validation.InteracETransferValidator;
|
||||
import bisq.desktop.util.validation.JapanBankTransferValidator;
|
||||
import bisq.desktop.util.validation.LengthValidator;
|
||||
import bisq.desktop.util.validation.MoneyBeamValidator;
|
||||
import bisq.desktop.util.validation.PerfectMoneyValidator;
|
||||
import bisq.desktop.util.validation.PopmoneyValidator;
|
||||
|
@ -77,6 +76,7 @@ import bisq.desktop.util.validation.TransferwiseValidator;
|
|||
import bisq.desktop.util.validation.USPostalMoneyOrderValidator;
|
||||
import bisq.desktop.util.validation.UpholdValidator;
|
||||
import bisq.desktop.util.validation.WeChatPayValidator;
|
||||
import bisq.desktop.util.validation.LengthValidator;
|
||||
|
||||
import bisq.core.account.witness.AccountAgeWitnessService;
|
||||
import bisq.core.locale.Res;
|
||||
|
@ -271,7 +271,7 @@ public class FiatAccountsView extends PaymentAccountsView<GridPane, FiatAccounts
|
|||
|
||||
if (PaymentMethod.hasChargebackRisk(paymentAccount.getPaymentMethod(), paymentAccount.getTradeCurrencies())) {
|
||||
limitsInfoKey = "payment.limits.info.withSigning";
|
||||
initialLimit = formatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF);
|
||||
initialLimit = formatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT);
|
||||
}
|
||||
|
||||
new Popup().information(Res.get(limitsInfoKey,
|
||||
|
|
|
@ -724,10 +724,10 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
|
|||
|
||||
if (minAmount.get() != null)
|
||||
minAmountValidationResult.set(isBtcInputValid(minAmount.get()));
|
||||
} else if (amount.get() != null && btcValidator.getMaxTradeLimit() != null && btcValidator.getMaxTradeLimit().value == OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF.value) {
|
||||
} else if (amount.get() != null && btcValidator.getMaxTradeLimit() != null && btcValidator.getMaxTradeLimit().value == OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT.value) {
|
||||
amount.set(btcFormatter.formatCoin(btcValidator.getMaxTradeLimit()));
|
||||
new Popup().information(Res.get("popup.warning.tradeLimitDueAccountAgeRestriction.buyer",
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF),
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT),
|
||||
Res.get("offerbook.warning.newVersionAnnouncement")))
|
||||
.width(900)
|
||||
.show();
|
||||
|
|
|
@ -1117,7 +1117,7 @@ public class OfferBookView extends ActivatableViewAndModel<GridPane, OfferBookVi
|
|||
Res.get("offerbook.timeSinceSigning"),
|
||||
Res.get("offerbook.timeSinceSigning.help",
|
||||
SignedWitnessService.SIGNER_AGE_DAYS,
|
||||
formatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER))) {
|
||||
formatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT))) {
|
||||
{
|
||||
setMinWidth(60);
|
||||
setSortable(true);
|
||||
|
|
|
@ -346,16 +346,16 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
|
|||
if (dataModel.wouldCreateDustForMaker())
|
||||
amountValidationResult.set(new InputValidator.ValidationResult(false,
|
||||
Res.get("takeOffer.validation.amountLargerThanOfferAmountMinusFee")));
|
||||
} else if (btcValidator.getMaxTradeLimit() != null && btcValidator.getMaxTradeLimit().value == OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER.value) {
|
||||
} else if (btcValidator.getMaxTradeLimit() != null && btcValidator.getMaxTradeLimit().value == OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT.value) {
|
||||
if (dataModel.getDirection() == OfferPayload.Direction.BUY) {
|
||||
new Popup().information(Res.get("popup.warning.tradeLimitDueAccountAgeRestriction.seller",
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER),
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT),
|
||||
Res.get("offerbook.warning.newVersionAnnouncement")))
|
||||
.width(900)
|
||||
.show();
|
||||
} else {
|
||||
new Popup().information(Res.get("popup.warning.tradeLimitDueAccountAgeRestriction.buyer",
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER),
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT),
|
||||
Res.get("offerbook.warning.newVersionAnnouncement")))
|
||||
.width(900)
|
||||
.show();
|
||||
|
|
Loading…
Add table
Reference in a new issue