Skip to content

Commit bb44948

Browse files
committed
remove potentially stale multisig info on payment received nack
1 parent 4041533 commit bb44948

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

core/src/main/java/haveno/core/trade/protocol/TradeProtocol.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import haveno.common.handlers.ErrorMessageHandler;
4343
import haveno.common.proto.network.NetworkEnvelope;
4444
import haveno.common.taskrunner.Task;
45+
import haveno.core.network.MessageState;
4546
import haveno.core.offer.OpenOffer;
4647
import haveno.core.trade.ArbitratorTrade;
4748
import haveno.core.trade.BuyerTrade;
@@ -838,6 +839,12 @@ private void onAckMessage(AckMessage ackMessage, NodeAddress sender) {
838839
else {
839840
log.warn("We received a NACK for our PaymentReceivedMessage to the buyer for {} {}", trade.getClass().getSimpleName(), trade.getId());
840841

842+
// remove arbitrator's multisig which can be stale unless nacked
843+
if (trade.getArbitrator().getPaymentReceivedMessageStateProperty().get() != MessageState.NACKED) {
844+
trade.getArbitrator().setUpdatedMultisigHex(null);
845+
}
846+
trade.getArbitrator().setUpdatedMultisigHex(null);
847+
841848
// nack includes updated multisig hex since v1.1.1
842849
if (ackMessage.getUpdatedMultisigHex() != null) {
843850
trade.getBuyer().setUpdatedMultisigHex(ackMessage.getUpdatedMultisigHex());
@@ -857,6 +864,11 @@ else if (peer == trade.getArbitrator()) {
857864
if (!ackMessage.isSuccess()) {
858865
log.warn("We received a NACK for our PaymentReceivedMessage to the arbitrator for {} {}", trade.getClass().getSimpleName(), trade.getId());
859866

867+
// remove buyer's multisig which can be stale unless nacked
868+
if (trade.getBuyer().getPaymentReceivedMessageStateProperty().get() != MessageState.NACKED) {
869+
trade.getBuyer().setUpdatedMultisigHex(null);
870+
}
871+
860872
// nack includes updated multisig hex since v1.1.1
861873
if (ackMessage.getUpdatedMultisigHex() != null) {
862874
trade.getArbitrator().setUpdatedMultisigHex(ackMessage.getUpdatedMultisigHex());

0 commit comments

Comments
 (0)