mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 09:52:23 +01:00
Merge pull request #5318 from sqrrm/lower-unsigned-size
Lower tolerated small amount
This commit is contained in:
commit
033ec325d2
@ -414,14 +414,16 @@ public class AccountAgeWitnessService {
|
||||
AccountAgeWitness accountAgeWitness,
|
||||
AccountAge accountAgeCategory,
|
||||
OfferPayload.Direction direction,
|
||||
PaymentMethod paymentMethod) {
|
||||
PaymentMethod paymentMethod,
|
||||
boolean isMyLimit) {
|
||||
if (CurrencyUtil.isCryptoCurrency(currencyCode) ||
|
||||
!PaymentMethod.hasChargebackRisk(paymentMethod, currencyCode) ||
|
||||
direction == OfferPayload.Direction.SELL) {
|
||||
return maxTradeLimit.value;
|
||||
}
|
||||
|
||||
long limit = OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT.value;
|
||||
long limit = isMyLimit ? OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF.value :
|
||||
OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER.value;
|
||||
var factor = signedBuyFactor(accountAgeCategory);
|
||||
if (factor > 0) {
|
||||
limit = MathUtils.roundDoubleToLong((double) maxTradeLimit.value * factor);
|
||||
@ -509,7 +511,8 @@ public class AccountAgeWitnessService {
|
||||
accountAgeWitness,
|
||||
accountAgeCategory,
|
||||
direction,
|
||||
paymentAccount.getPaymentMethod());
|
||||
paymentAccount.getPaymentMethod(),
|
||||
true);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -571,14 +574,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_TRADE_AMOUNT (0.01 BTC) and only in that case return false.
|
||||
// TOLERATED_SMALL_AMOUNT_PEER and only in that case return false.
|
||||
return findWitness(offer)
|
||||
.map(witness -> verifyPeersTradeLimit(offer, tradeAmount, witness, new Date(), errorMessageHandler))
|
||||
.orElse(isToleratedSmalleAmount(tradeAmount));
|
||||
.orElse(isPeerToleratedSmallAmount(tradeAmount));
|
||||
}
|
||||
|
||||
private boolean isToleratedSmalleAmount(Coin tradeAmount) {
|
||||
return tradeAmount.value <= OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT.value;
|
||||
private boolean isPeerToleratedSmallAmount(Coin tradeAmount) {
|
||||
return tradeAmount.value <= OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER.value;
|
||||
}
|
||||
|
||||
|
||||
@ -642,7 +645,7 @@ public class AccountAgeWitnessService {
|
||||
OfferPayload.Direction direction = offer.isMyOffer(keyRing) ?
|
||||
offer.getMirroredDirection() : offer.getDirection();
|
||||
peersCurrentTradeLimit = getTradeLimit(defaultMaxTradeLimit, currencyCode, peersWitness,
|
||||
accountAgeCategory, direction, offer.getPaymentMethod());
|
||||
accountAgeCategory, direction, offer.getPaymentMethod(), false);
|
||||
}
|
||||
// Makers current trade limit cannot be smaller than that in the offer
|
||||
boolean result = tradeAmount.value <= peersCurrentTradeLimit;
|
||||
|
@ -36,7 +36,11 @@ public class OfferRestrictions {
|
||||
return new Date().after(REQUIRE_UPDATE_DATE);
|
||||
}
|
||||
|
||||
public static Coin TOLERATED_SMALL_TRADE_AMOUNT = Coin.parseCoin("0.01");
|
||||
// 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");
|
||||
|
||||
static boolean hasOfferMandatoryCapability(Offer offer, Capability mandatoryCapability) {
|
||||
Map<String, String> extraDataMap = offer.getOfferPayload().getExtraDataMap();
|
||||
|
@ -66,6 +66,7 @@ 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;
|
||||
@ -76,7 +77,6 @@ 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_TRADE_AMOUNT);
|
||||
initialLimit = formatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF);
|
||||
}
|
||||
|
||||
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_TRADE_AMOUNT.value) {
|
||||
} else if (amount.get() != null && btcValidator.getMaxTradeLimit() != null && btcValidator.getMaxTradeLimit().value == OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF.value) {
|
||||
amount.set(btcFormatter.formatCoin(btcValidator.getMaxTradeLimit()));
|
||||
new Popup().information(Res.get("popup.warning.tradeLimitDueAccountAgeRestriction.buyer",
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT),
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_SELF),
|
||||
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_TRADE_AMOUNT))) {
|
||||
formatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER))) {
|
||||
{
|
||||
setMinWidth(60);
|
||||
setSortable(true);
|
||||
|
@ -345,16 +345,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_TRADE_AMOUNT.value) {
|
||||
} else if (btcValidator.getMaxTradeLimit() != null && btcValidator.getMaxTradeLimit().value == OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER.value) {
|
||||
if (dataModel.getDirection() == OfferPayload.Direction.BUY) {
|
||||
new Popup().information(Res.get("popup.warning.tradeLimitDueAccountAgeRestriction.seller",
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT),
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER),
|
||||
Res.get("offerbook.warning.newVersionAnnouncement")))
|
||||
.width(900)
|
||||
.show();
|
||||
} else {
|
||||
new Popup().information(Res.get("popup.warning.tradeLimitDueAccountAgeRestriction.buyer",
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_TRADE_AMOUNT),
|
||||
btcFormatter.formatCoinWithCode(OfferRestrictions.TOLERATED_SMALL_AMOUNT_PEER),
|
||||
Res.get("offerbook.warning.newVersionAnnouncement")))
|
||||
.width(900)
|
||||
.show();
|
||||
|
Loading…
Reference in New Issue
Block a user