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.setUpdatedMultisigHex(null);
peer.setDisputeClosedMessage(null); peer.setDisputeClosedMessage(null);
peer.setPaymentSentMessage(null); peer.setPaymentSentMessage(null);
peer.setDepositTxHex(null);
peer.setDepositTxKey(null);
if (peer.isPaymentReceivedMessageReceived()) peer.setPaymentReceivedMessage(null); if (peer.isPaymentReceivedMessageReceived()) peer.setPaymentReceivedMessage(null);
} }
} }

View file

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

View file

@ -48,6 +48,13 @@ public class ProcessDepositResponse extends TradeTask {
return; 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 // record security deposits
trade.getBuyer().setSecurityDeposit(BigInteger.valueOf(message.getBuyerSecurityDeposit())); trade.getBuyer().setSecurityDeposit(BigInteger.valueOf(message.getBuyerSecurityDeposit()));
trade.getSeller().setSecurityDeposit(BigInteger.valueOf(message.getSellerSecurityDeposit())); trade.getSeller().setSecurityDeposit(BigInteger.valueOf(message.getSellerSecurityDeposit()));

View file

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