From 53aa7813698630ac270e4eb66f207cb91e13fe44 Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Wed, 8 Oct 2025 06:40:43 -0400 Subject: [PATCH] SendMailboxMessageTask works with non-trade messages --- .../tasks/BuyerSendPaymentSentMessage.java | 2 +- .../BuyerSendPaymentSentMessageToSeller.java | 4 ++-- .../tasks/SellerSendPaymentReceivedMessage.java | 2 +- .../SellerSendPaymentReceivedMessageToBuyer.java | 4 ++-- .../tasks/SendDepositsConfirmedMessage.java | 2 +- .../protocol/tasks/SendMailboxMessageTask.java | 15 +++++++-------- .../SendMediatedPayoutTxPublishedMessage.java | 2 +- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessage.java b/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessage.java index efbfd49e5b..095f18b19b 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessage.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessage.java @@ -104,7 +104,7 @@ public abstract class BuyerSendPaymentSentMessage extends SendMailboxMessageTask } @Override - protected TradeMailboxMessage getTradeMailboxMessage(String tradeId) { + protected TradeMailboxMessage getMailboxMessage(String tradeId) { if (getReceiver().getPaymentSentMessage() == null) { // We do not use a real unique ID here as we want to be able to re-send the exact same message in case the diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessageToSeller.java b/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessageToSeller.java index 57ca170455..25732ed114 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessageToSeller.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/BuyerSendPaymentSentMessageToSeller.java @@ -19,8 +19,8 @@ package haveno.core.trade.protocol.tasks; import haveno.common.taskrunner.TaskRunner; import haveno.core.trade.Trade; -import haveno.core.trade.messages.TradeMessage; import haveno.core.trade.protocol.TradePeer; +import haveno.network.p2p.mailbox.MailboxMessage; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; @@ -63,7 +63,7 @@ public class BuyerSendPaymentSentMessageToSeller extends BuyerSendPaymentSentMes // continue execution on fault so payment sent message is sent to arbitrator @Override - protected void onFault(String errorMessage, TradeMessage message) { + protected void onFault(String errorMessage, MailboxMessage message) { setStateFault(); appendToErrorMessage("Sending message failed: message=" + message + "\nerrorMessage=" + errorMessage); complete(); diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessage.java b/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessage.java index 7ca993db30..0881db3a7b 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessage.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessage.java @@ -117,7 +117,7 @@ public abstract class SellerSendPaymentReceivedMessage extends SendMailboxMessag } @Override - protected TradeMailboxMessage getTradeMailboxMessage(String tradeId) { + protected TradeMailboxMessage getMailboxMessage(String tradeId) { if (getReceiver().getPaymentReceivedMessage() == null) { // sign account witness diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessageToBuyer.java b/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessageToBuyer.java index 212dcb22f4..da3a0be71f 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessageToBuyer.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/SellerSendPaymentReceivedMessageToBuyer.java @@ -19,8 +19,8 @@ package haveno.core.trade.protocol.tasks; import haveno.common.taskrunner.TaskRunner; import haveno.core.trade.Trade; -import haveno.core.trade.messages.TradeMessage; import haveno.core.trade.protocol.TradePeer; +import haveno.network.p2p.mailbox.MailboxMessage; import lombok.EqualsAndHashCode; import lombok.extern.slf4j.Slf4j; @@ -63,7 +63,7 @@ public class SellerSendPaymentReceivedMessageToBuyer extends SellerSendPaymentRe // continue execution on fault so payment received message is sent to arbitrator @Override - protected void onFault(String errorMessage, TradeMessage message) { + protected void onFault(String errorMessage, MailboxMessage message) { setStateFault(); appendToErrorMessage("Sending message failed: message=" + message + "\nerrorMessage=" + errorMessage); complete(); diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/SendDepositsConfirmedMessage.java b/core/src/main/java/haveno/core/trade/protocol/tasks/SendDepositsConfirmedMessage.java index ba20d74351..9419fd0d7c 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/SendDepositsConfirmedMessage.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/SendDepositsConfirmedMessage.java @@ -78,7 +78,7 @@ public abstract class SendDepositsConfirmedMessage extends SendMailboxMessageTas } @Override - protected TradeMailboxMessage getTradeMailboxMessage(String tradeId) { + protected TradeMailboxMessage getMailboxMessage(String tradeId) { if (message == null) { // export multisig hex once diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/SendMailboxMessageTask.java b/core/src/main/java/haveno/core/trade/protocol/tasks/SendMailboxMessageTask.java index 24638c5e70..b2f708394b 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/SendMailboxMessageTask.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/SendMailboxMessageTask.java @@ -20,10 +20,9 @@ package haveno.core.trade.protocol.tasks; import haveno.common.crypto.PubKeyRing; import haveno.common.taskrunner.TaskRunner; import haveno.core.trade.Trade; -import haveno.core.trade.messages.TradeMailboxMessage; -import haveno.core.trade.messages.TradeMessage; import haveno.network.p2p.NodeAddress; import haveno.network.p2p.SendMailboxMessageListener; +import haveno.network.p2p.mailbox.MailboxMessage; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -40,7 +39,7 @@ public abstract class SendMailboxMessageTask extends TradeTask { return trade.getTradePeer().getPubKeyRing(); } - protected abstract TradeMailboxMessage getTradeMailboxMessage(String tradeId); + protected abstract MailboxMessage getMailboxMessage(String tradeId); protected abstract void setStateSent(); @@ -55,7 +54,7 @@ public abstract class SendMailboxMessageTask extends TradeTask { try { runInterceptHook(); String id = processModel.getOfferId(); - TradeMailboxMessage message = getTradeMailboxMessage(id); + MailboxMessage message = getMailboxMessage(id); setStateSent(); NodeAddress peersNodeAddress = getReceiverNodeAddress(); log.info("Send {} to peer {} for {} {}, uid={}", @@ -69,21 +68,21 @@ public abstract class SendMailboxMessageTask extends TradeTask { new SendMailboxMessageListener() { @Override public void onArrived() { - log.info("{} arrived at peer {}. tradeId={}, uid={}", message.getClass().getSimpleName(), peersNodeAddress, message.getOfferId(), message.getUid()); + log.info("{} arrived at peer {}. tradeId={}, uid={}", message.getClass().getSimpleName(), peersNodeAddress, trade.getId(), message.getUid()); setStateArrived(); if (!task.isCompleted()) complete(); } @Override public void onStoredInMailbox() { - log.info("{} stored in mailbox for peer {}. tradeId={}, uid={}", message.getClass().getSimpleName(), peersNodeAddress, message.getOfferId(), message.getUid()); + log.info("{} stored in mailbox for peer {}. tradeId={}, uid={}", message.getClass().getSimpleName(), peersNodeAddress, trade.getId(), message.getUid()); SendMailboxMessageTask.this.onStoredInMailbox(); } @Override public void onFault(String errorMessage) { if (processModel.getP2PService().isShutDownStarted()) return; - log.error("{} failed: Peer {}. tradeId={}, uid={}, errorMessage={}", message.getClass().getSimpleName(), peersNodeAddress, message.getOfferId(), message.getUid(), errorMessage); + log.error("{} failed: Peer {}. tradeId={}, uid={}, errorMessage={}", message.getClass().getSimpleName(), peersNodeAddress, trade.getId(), message.getUid(), errorMessage); SendMailboxMessageTask.this.onFault(errorMessage, message); } } @@ -98,7 +97,7 @@ public abstract class SendMailboxMessageTask extends TradeTask { if (!isCompleted()) complete(); } - protected void onFault(String errorMessage, TradeMessage message) { + protected void onFault(String errorMessage, MailboxMessage message) { setStateFault(); appendToErrorMessage("Sending message failed: message=" + message + "\nerrorMessage=" + errorMessage); failed(errorMessage); diff --git a/core/src/main/java/haveno/core/trade/protocol/tasks/mediation/SendMediatedPayoutTxPublishedMessage.java b/core/src/main/java/haveno/core/trade/protocol/tasks/mediation/SendMediatedPayoutTxPublishedMessage.java index 906859e66e..6444d9a92a 100644 --- a/core/src/main/java/haveno/core/trade/protocol/tasks/mediation/SendMediatedPayoutTxPublishedMessage.java +++ b/core/src/main/java/haveno/core/trade/protocol/tasks/mediation/SendMediatedPayoutTxPublishedMessage.java @@ -32,7 +32,7 @@ public class SendMediatedPayoutTxPublishedMessage extends SendMailboxMessageTask } @Override - protected TradeMailboxMessage getTradeMailboxMessage(String id) { + protected TradeMailboxMessage getMailboxMessage(String id) { throw new RuntimeException("SendMediatedPayoutTxPublishedMessage.getMessage(id) not implemented for xmr"); // Transaction payoutTx = checkNotNull(trade.getPayoutTx(), "trade.getPayoutTx() must not be null"); // return new MediatedPayoutTxPublishedMessage(