peers publish deposit tx for redundancy (#1839)

This commit is contained in:
woodser 2025-07-15 06:35:37 -04:00 committed by GitHub
parent ccbe2d2fe1
commit ca1dde03f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 2 deletions

View file

@ -1578,6 +1578,8 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model {
peer.setUpdatedMultisigHex(null);
peer.setDisputeClosedMessage(null);
peer.setPaymentSentMessage(null);
peer.setDepositTxHex(null);
peer.setDepositTxKey(null);
if (peer.isPaymentReceivedMessageReceived()) peer.setPaymentReceivedMessage(null);
}
}

View file

@ -156,6 +156,8 @@ public class MaybeSendSignContractRequest extends TradeTask {
trade.getSelf().setDepositTx(depositTx);
trade.getSelf().setDepositTxHash(depositTx.getHash());
trade.getSelf().setDepositTxFee(depositTx.getFee());
trade.getSelf().setDepositTxHex(depositTx.getFullHex());
trade.getSelf().setDepositTxKey(depositTx.getKey());
trade.getSelf().setReserveTxKeyImages(HavenoUtils.getInputKeyImages(depositTx));
}
}

View file

@ -48,6 +48,13 @@ public class ProcessDepositResponse extends TradeTask {
return;
}
// publish deposit transaction for redundancy
try {
model.getXmrWalletService().getDaemon().submitTxHex(trade.getSelf().getDepositTxHex());
} catch (Exception e) {
log.error("Failed to redundantly publish deposit transaction for {} {}", trade.getClass().getSimpleName(), trade.getShortId(), e);
}
// record security deposits
trade.getBuyer().setSecurityDeposit(BigInteger.valueOf(message.getBuyerSecurityDeposit()));
trade.getSeller().setSecurityDeposit(BigInteger.valueOf(message.getSellerSecurityDeposit()));

View file

@ -82,8 +82,8 @@ public class SendDepositRequest extends TradeTask {
Version.getP2PMessageVersion(),
new Date().getTime(),
trade.getSelf().getContractSignature(),
trade.getSelf().getDepositTx() == null ? null : trade.getSelf().getDepositTx().getFullHex(),
trade.getSelf().getDepositTx() == null ? null : trade.getSelf().getDepositTx().getKey(),
trade.getSelf().getDepositTxHex(),
trade.getSelf().getDepositTxKey(),
trade.getSelf().getPaymentAccountKey());
// update trade state