From 91273c2192b11a9aa263a07a4ec759a78895a82b Mon Sep 17 00:00:00 2001 From: Craig Raw Date: Mon, 11 Jul 2022 17:07:12 +0200 Subject: [PATCH] show custom error dialog for min relay fee not met broadcast errors --- .../sparrow/transaction/HeadersController.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java index f0d1aad2..642f9e0a 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java @@ -1107,7 +1107,14 @@ public class HeadersController extends TransactionFormController implements Init broadcastTransactionService.setOnFailed(workerStateEvent -> { broadcastProgressBar.setProgress(0); log.error("Error broadcasting transaction", workerStateEvent.getSource().getException()); - AppServices.showErrorDialog("Error broadcasting transaction", "The server returned an error when broadcasting the transaction. The server response is contained in the log (See Help > Show Log File)."); + if(workerStateEvent.getSource().getException() != null && workerStateEvent.getSource().getException().getMessage() != null + && workerStateEvent.getSource().getException().getMessage().startsWith("min relay fee not met")) { + AppServices.showErrorDialog("Error broadcasting transaction", "The fee rate for the signed transaction is below the minimum " + AppServices.getMinimumRelayFeeRate() + " sats/vB. " + + "This usually happens because a keystore has created a signature that is larger than necessary.\n\n" + + "You can solve this by recreating the transaction with a slightly increased fee rate."); + } else { + AppServices.showErrorDialog("Error broadcasting transaction", "The server returned an error when broadcasting the transaction. The server response is contained in the log (See Help > Show Log File)."); + } broadcastButton.setDisable(false); });