save payment received message immediately for reprocessing

This commit is contained in:
woodser 2025-03-03 07:55:57 -05:00 committed by woodser
parent 84d8a17ab4
commit 38c0855728
2 changed files with 13 additions and 3 deletions

View File

@ -536,6 +536,19 @@ public abstract class TradeProtocol implements DecryptedDirectMessageListener, D
private void handle(PaymentReceivedMessage message, NodeAddress peer, boolean reprocessOnError) {
System.out.println(getClass().getSimpleName() + ".handle(PaymentReceivedMessage) for " + trade.getClass().getSimpleName() + " " + trade.getShortId());
// validate signature
try {
HavenoUtils.verifyPaymentReceivedMessage(trade, message);
} catch (Throwable t) {
log.warn("Ignoring PaymentReceivedMessage with invalid signature for {} {}, error={}", trade.getClass().getSimpleName(), trade.getId(), t.getMessage());
return;
}
// save message for reprocessing
trade.getSeller().setPaymentReceivedMessage(message);
trade.requestPersistence();
if (!trade.isInitialized() || trade.isShutDown()) return;
ThreadUtils.execute(() -> {
if (!(trade instanceof BuyerTrade || trade instanceof ArbitratorTrade)) {

View File

@ -80,9 +80,6 @@ public class ProcessPaymentReceivedMessage extends TradeTask {
return;
}
// save message for reprocessing
trade.getSeller().setPaymentReceivedMessage(message);
// set state
trade.getSeller().setUpdatedMultisigHex(message.getUpdatedMultisigHex());
trade.getBuyer().setAccountAgeWitness(message.getBuyerAccountAgeWitness());