From 3c3dca00538d9f07c0f82af7e48e75ad0fe1890a Mon Sep 17 00:00:00 2001 From: jmacxx <47253594+jmacxx@users.noreply.github.com> Date: Wed, 21 Apr 2021 19:45:14 -0500 Subject: [PATCH] show a SPV msg if trade deposit remains unconfirmed for 3 hours or more --- .../resources/i18n/displayStrings.properties | 5 +++++ .../pendingtrades/steps/TradeStepView.java | 16 ++++++++++++++++ .../steps/buyer/BuyerStep1View.java | 1 + .../steps/seller/SellerStep1View.java | 1 + 4 files changed, 23 insertions(+) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 6d58cbd4f73..c93c7a6b3da 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -591,6 +591,11 @@ portfolio.pending.invalidTx=There is an issue with a missing or invalid transact Open a support ticket to get assistance from a Mediator.\n\n\ Error message: {0} +portfolio.pending.unconfirmedTooLong=Security deposit transaction on trade {0} is still unconfirmed after {1} hours. \ + Check the deposit transaction at a blockchain explorer. If it has been confirmed but it's not being displayed \ + at Bisq, make a data backup and a SPV resync. [HYPERLINK:https://bisq.wiki/Resyncing_SPV_file]\n\n\ + Contact Bisq support [HYPERLINK:https://keybase.io/team/bisq] if you have doubts or the issue persists. + portfolio.pending.step1.waitForConf=Wait for blockchain confirmation portfolio.pending.step2_buyer.startPayment=Start payment portfolio.pending.step2_seller.waitPaymentStarted=Wait until payment has started diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java index 64f93ff3579..a3e65a6152b 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java @@ -33,6 +33,7 @@ import bisq.core.support.dispute.mediation.MediationResultState; import bisq.core.trade.Contract; import bisq.core.trade.Trade; +import bisq.core.user.DontShowAgainLookup; import bisq.core.user.Preferences; import bisq.core.util.FormattingUtils; @@ -69,6 +70,9 @@ import javafx.beans.property.BooleanProperty; import javafx.beans.value.ChangeListener; +import java.time.Duration; +import java.time.Instant; + import java.util.Optional; import org.slf4j.Logger; @@ -730,6 +734,18 @@ private void checkIfLockTimeIsOver() { } } + protected void checkForTimeout() { + long unconfirmedHours = Duration.between(trade.getTakeOfferDate().toInstant(), Instant.now()).toHours(); + if (unconfirmedHours >= 3 && !trade.hasFailed()) { + String key = "tradeUnconfirmedTooLong_" + trade.getShortId(); + if (DontShowAgainLookup.showAgain(key)) { + new Popup().warning(Res.get("portfolio.pending.unconfirmedTooLong", trade.getShortId(), unconfirmedHours)) + .dontShowAgainId(key) + .closeButtonText(Res.get("shared.ok")) + .show(); + } + } + } /////////////////////////////////////////////////////////////////////////////////////////// // TradeDurationLimitInfo diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep1View.java b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep1View.java index f6181a12adb..809b9a5c131 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep1View.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep1View.java @@ -39,6 +39,7 @@ protected void onPendingTradesInitialized() { super.onPendingTradesInitialized(); validatePayoutTx(); validateDepositInputs(); + checkForTimeout(); } diff --git a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep1View.java b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep1View.java index defa81fde7e..eb7129344ed 100644 --- a/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep1View.java +++ b/desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep1View.java @@ -38,6 +38,7 @@ public SellerStep1View(PendingTradesViewModel model) { protected void onPendingTradesInitialized() { super.onPendingTradesInitialized(); validateDepositInputs(); + checkForTimeout(); } ///////////////////////////////////////////////////////////////////////////////////////////