Skip to content

Commit

Permalink
save payment received message immediately for reprocessing
Browse files Browse the repository at this point in the history
  • Loading branch information
woodser committed Mar 3, 2025
1 parent f1cdaa8 commit aee7512
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
13 changes: 13 additions & 0 deletions core/src/main/java/haveno/core/trade/protocol/TradeProtocol.java
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,19 @@ protected void handle(PaymentReceivedMessage message, NodeAddress peer) {

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)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,6 @@ protected void run() {
return;
}

// save message for reprocessing
trade.getSeller().setPaymentReceivedMessage(message);

// set state
trade.getSeller().setUpdatedMultisigHex(message.getUpdatedMultisigHex());
trade.getBuyer().setAccountAgeWitness(message.getBuyerAccountAgeWitness());
Expand Down

0 comments on commit aee7512

Please sign in to comment.