@@ -802,7 +802,7 @@ private void onAckMessage(AckMessage ackMessage, NodeAddress sender) {
802
802
}
803
803
804
804
// handle ack message for PaymentSentMessage, which automatically re-sends if not ACKed in a certain time
805
- if (ackMessage .getSourceMsgClassName ().equals (PaymentSentMessage .class .getSimpleName ())) {
805
+ if (trade . isPaymentMarkedSent () && ackMessage .getSourceMsgClassName ().equals (PaymentSentMessage .class .getSimpleName ())) {
806
806
if (peer == trade .getSeller ()) {
807
807
trade .getSeller ().setPaymentSentAckMessage (ackMessage );
808
808
if (ackMessage .isSuccess ()) trade .setStateIfValidTransitionTo (Trade .State .SELLER_RECEIVED_PAYMENT_SENT_MSG );
@@ -818,7 +818,7 @@ private void onAckMessage(AckMessage ackMessage, NodeAddress sender) {
818
818
}
819
819
820
820
// handle ack message for PaymentReceivedMessage, which automatically re-sends if not ACKed in a certain time
821
- if (ackMessage .getSourceMsgClassName ().equals (PaymentReceivedMessage .class .getSimpleName ())) {
821
+ if (trade . isPaymentMarkedReceived () && ackMessage .getSourceMsgClassName ().equals (PaymentReceivedMessage .class .getSimpleName ())) {
822
822
823
823
// ack message from buyer
824
824
if (peer == trade .getBuyer ()) {
@@ -835,6 +835,9 @@ private void onAckMessage(AckMessage ackMessage, NodeAddress sender) {
835
835
else {
836
836
log .warn ("We received a NACK for our PaymentReceivedMessage to the buyer for {} {}" , trade .getClass ().getSimpleName (), trade .getId ());
837
837
838
+ // remove arbitrator's multisig which can be stale
839
+ trade .getArbitrator ().setUpdatedMultisigHex (null );
840
+
838
841
// nack includes updated multisig hex since v1.1.1
839
842
if (ackMessage .getUpdatedMultisigHex () != null ) {
840
843
trade .getBuyer ().setUpdatedMultisigHex (ackMessage .getUpdatedMultisigHex ());
@@ -854,6 +857,9 @@ else if (peer == trade.getArbitrator()) {
854
857
if (!ackMessage .isSuccess ()) {
855
858
log .warn ("We received a NACK for our PaymentReceivedMessage to the arbitrator for {} {}" , trade .getClass ().getSimpleName (), trade .getId ());
856
859
860
+ // remove buyer's multisig which can be stale
861
+ trade .getArbitrator ().setUpdatedMultisigHex (null );
862
+
857
863
// nack includes updated multisig hex since v1.1.1
858
864
if (ackMessage .getUpdatedMultisigHex () != null ) {
859
865
trade .getArbitrator ().setUpdatedMultisigHex (ackMessage .getUpdatedMultisigHex ());
0 commit comments