From 9095c691e7dd5ae75bd6d0106d9afb0c70d3cf29 Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Sun, 28 Sep 2025 11:54:51 -0400 Subject: [PATCH] fail preparing payment sent message if payout already published --- .../trade/protocol/tasks/BuyerPreparePaymentSentMessage.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerPreparePaymentSentMessage.java b/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerPreparePaymentSentMessage.java index ad40f761e9..44396b42f6 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerPreparePaymentSentMessage.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerPreparePaymentSentMessage.java @@ -63,6 +63,11 @@ public class BuyerPreparePaymentSentMessage extends TradeTask { try { runInterceptHook(); + // quit if payout already published + if (trade.isPayoutPublished()) { + throw new RuntimeException("Cannot mark payment sent because payout already published for " + trade.getClass().getSimpleName() + " " + trade.getShortId()); + } + // skip if payout tx already created if (trade.getSelf().getUnsignedPayoutTxHex() != null) { log.warn("Skipping preparation of payment sent message because payout tx is already created for {} {}", trade.getClass().getSimpleName(), trade.getShortId());