diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 84ce2056ac..6a817a8228 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -493,6 +493,7 @@ editOffer.confirmEdit=Confirm: Edit offer editOffer.publishOffer=Publishing your offer. editOffer.failed=Editing of offer failed:\n{0} editOffer.success=Your offer has been successfully edited. +editOffer.invalidDeposit=The buyer's security deposit is not within the constraints defined by the Bisq DAO and can no longer be edited. #################################################################### # Portfolio diff --git a/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java b/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java index 67ac5fea46..19185d1da5 100644 --- a/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java +++ b/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java @@ -84,7 +84,7 @@ import static javafx.beans.binding.Bindings.createStringBinding; public abstract class MutableOfferViewModel extends ActivatableWithDataModel { private final BtcValidator btcValidator; private final BsqValidator bsqValidator; - private final SecurityDepositValidator securityDepositValidator; + protected final SecurityDepositValidator securityDepositValidator; private final P2PService p2PService; private final WalletsSetup walletsSetup; private final PriceFeedService priceFeedService; @@ -104,7 +104,7 @@ public abstract class MutableOfferViewModel ext public final StringProperty amount = new SimpleStringProperty(); public final StringProperty minAmount = new SimpleStringProperty(); - final StringProperty buyerSecurityDeposit = new SimpleStringProperty(); + protected final StringProperty buyerSecurityDeposit = new SimpleStringProperty(); final StringProperty buyerSecurityDepositInBTC = new SimpleStringProperty(); final StringProperty buyerSecurityDepositLabel = new SimpleStringProperty(); diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferView.java b/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferView.java index e0729daab3..8d253569c8 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferView.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferView.java @@ -148,11 +148,15 @@ public class EditOfferView extends MutableOfferView { model.onStartEditOffer(errorMessage -> { log.error(errorMessage); new Popup<>().warning(Res.get("editOffer.failed", errorMessage)) - .onClose(() -> { - close(); - }) + .onClose(this::close) .show(); }); + + if (!model.isSecurityDepositValid()) { + new Popup<>().warning(Res.get("editOffer.invalidDeposit")) + .onClose(this::close) + .show(); + } } /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferViewModel.java b/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferViewModel.java index 0d62d5249d..d3896f2782 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferViewModel.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/editoffer/EditOfferViewModel.java @@ -80,4 +80,8 @@ class EditOfferViewModel extends MutableOfferViewModel { price.set(btcFormatter.formatPrice(null)); price.set(btcFormatter.formatPrice(dataModel.getPrice().get())); } + + public boolean isSecurityDepositValid() { + return securityDepositValidator.validate(buyerSecurityDeposit.get()).isValid; + } }