mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 23:18:17 +01:00
Do not persist offer security deposit in user settings
Fixes #4426 Always calculate the suggested security deposit based on asset price volatility rather than using a persisted value as the minimum.
This commit is contained in:
parent
de71811827
commit
3e22b6e98d
2 changed files with 12 additions and 18 deletions
|
@ -174,7 +174,7 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
|||
addressEntry = btcWalletService.getOrCreateAddressEntry(offerId, AddressEntry.Context.OFFER_FUNDING);
|
||||
|
||||
useMarketBasedPrice.set(preferences.isUsePercentageBasedPrice());
|
||||
buyerSecurityDeposit.set(preferences.getBuyerSecurityDepositAsPercent(null));
|
||||
buyerSecurityDeposit.set(Restrictions.getMinBuyerSecurityDepositAsPercent());
|
||||
|
||||
btcBalanceListener = new BalanceListener(getAddressEntry().getAddress()) {
|
||||
@Override
|
||||
|
@ -334,10 +334,10 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
|||
}
|
||||
|
||||
private void setSuggestedSecurityDeposit(PaymentAccount paymentAccount) {
|
||||
var minSecurityDeposit = preferences.getBuyerSecurityDepositAsPercent(getPaymentAccount());
|
||||
var minSecurityDeposit = Restrictions.getMinBuyerSecurityDepositAsPercent();
|
||||
try {
|
||||
if (getTradeCurrency() == null) {
|
||||
setBuyerSecurityDeposit(minSecurityDeposit, false);
|
||||
setBuyerSecurityDeposit(minSecurityDeposit);
|
||||
return;
|
||||
}
|
||||
// Get average historic prices over for the prior trade period equaling the lock time
|
||||
|
@ -360,7 +360,7 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
|||
var min = extremes[0];
|
||||
var max = extremes[1];
|
||||
if (min == 0d || max == 0d) {
|
||||
setBuyerSecurityDeposit(minSecurityDeposit, false);
|
||||
setBuyerSecurityDeposit(minSecurityDeposit);
|
||||
return;
|
||||
}
|
||||
// Suggested deposit is double the trade range over the previous lock time period, bounded by min/max deposit
|
||||
|
@ -640,12 +640,8 @@ public abstract class MutableOfferDataModel extends OfferDataModel implements Bs
|
|||
this.volume.set(volume);
|
||||
}
|
||||
|
||||
void setBuyerSecurityDeposit(double value, boolean persist) {
|
||||
void setBuyerSecurityDeposit(double value) {
|
||||
this.buyerSecurityDeposit.set(value);
|
||||
if (persist) {
|
||||
// Only expected to persist for manually changed deposit values
|
||||
preferences.setBuyerSecurityDepositAsPercent(value, getPaymentAccount());
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean isUseMarketBasedPriceValue() {
|
||||
|
|
|
@ -421,7 +421,7 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
|
|||
securityDepositStringListener = (ov, oldValue, newValue) -> {
|
||||
if (!ignoreSecurityDepositStringListener) {
|
||||
if (securityDepositValidator.validate(newValue).isValid) {
|
||||
setBuyerSecurityDepositToModel(false);
|
||||
setBuyerSecurityDepositToModel();
|
||||
dataModel.calculateTotalToPay();
|
||||
}
|
||||
updateButtonDisableState();
|
||||
|
@ -898,7 +898,7 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
|
|||
.width(800)
|
||||
.actionButtonText(Res.get("createOffer.resetToDefault"))
|
||||
.onAction(() -> {
|
||||
dataModel.setBuyerSecurityDeposit(defaultSecurityDeposit, false);
|
||||
dataModel.setBuyerSecurityDeposit(defaultSecurityDeposit);
|
||||
ignoreSecurityDepositStringListener = true;
|
||||
buyerSecurityDeposit.set(FormattingUtils.formatToPercent(dataModel.getBuyerSecurityDeposit().get()));
|
||||
ignoreSecurityDepositStringListener = false;
|
||||
|
@ -915,7 +915,7 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
|
|||
}
|
||||
|
||||
private void applyBuyerSecurityDepositOnFocusOut() {
|
||||
setBuyerSecurityDepositToModel(true);
|
||||
setBuyerSecurityDepositToModel();
|
||||
ignoreSecurityDepositStringListener = true;
|
||||
buyerSecurityDeposit.set(FormattingUtils.formatToPercent(dataModel.getBuyerSecurityDeposit().get()));
|
||||
ignoreSecurityDepositStringListener = false;
|
||||
|
@ -1146,13 +1146,11 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
|
|||
}
|
||||
}
|
||||
|
||||
private void setBuyerSecurityDepositToModel(boolean persistPreference) {
|
||||
private void setBuyerSecurityDepositToModel() {
|
||||
if (buyerSecurityDeposit.get() != null && !buyerSecurityDeposit.get().isEmpty()) {
|
||||
dataModel.setBuyerSecurityDeposit(ParsingUtils.parsePercentStringToDouble(buyerSecurityDeposit.get()),
|
||||
persistPreference);
|
||||
dataModel.setBuyerSecurityDeposit(ParsingUtils.parsePercentStringToDouble(buyerSecurityDeposit.get()));
|
||||
} else {
|
||||
dataModel.setBuyerSecurityDeposit(Restrictions.getDefaultBuyerSecurityDepositAsPercent(),
|
||||
persistPreference);
|
||||
dataModel.setBuyerSecurityDeposit(Restrictions.getDefaultBuyerSecurityDepositAsPercent());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1160,7 +1158,7 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
|
|||
// If the security deposit in the model is not valid percent
|
||||
String value = FormattingUtils.formatToPercent(dataModel.getBuyerSecurityDeposit().get());
|
||||
if (!securityDepositValidator.validate(value).isValid) {
|
||||
dataModel.setBuyerSecurityDeposit(Restrictions.getDefaultBuyerSecurityDepositAsPercent(), false);
|
||||
dataModel.setBuyerSecurityDeposit(Restrictions.getDefaultBuyerSecurityDepositAsPercent());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue