42
42
import haveno .common .handlers .ErrorMessageHandler ;
43
43
import haveno .common .proto .network .NetworkEnvelope ;
44
44
import haveno .common .taskrunner .Task ;
45
+ import haveno .core .network .MessageState ;
45
46
import haveno .core .offer .OpenOffer ;
46
47
import haveno .core .trade .ArbitratorTrade ;
47
48
import haveno .core .trade .BuyerTrade ;
@@ -838,6 +839,12 @@ private void onAckMessage(AckMessage ackMessage, NodeAddress sender) {
838
839
else {
839
840
log .warn ("We received a NACK for our PaymentReceivedMessage to the buyer for {} {}" , trade .getClass ().getSimpleName (), trade .getId ());
840
841
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
+
841
848
// nack includes updated multisig hex since v1.1.1
842
849
if (ackMessage .getUpdatedMultisigHex () != null ) {
843
850
trade .getBuyer ().setUpdatedMultisigHex (ackMessage .getUpdatedMultisigHex ());
@@ -857,6 +864,11 @@ else if (peer == trade.getArbitrator()) {
857
864
if (!ackMessage .isSuccess ()) {
858
865
log .warn ("We received a NACK for our PaymentReceivedMessage to the arbitrator for {} {}" , trade .getClass ().getSimpleName (), trade .getId ());
859
866
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
+
860
872
// nack includes updated multisig hex since v1.1.1
861
873
if (ackMessage .getUpdatedMultisigHex () != null ) {
862
874
trade .getArbitrator ().setUpdatedMultisigHex (ackMessage .getUpdatedMultisigHex ());
0 commit comments