share dispute opener's updated multisig info on dispute opened

This commit is contained in:
woodser 2025-03-15 06:45:40 -04:00 committed by woodser
parent b19724e33d
commit 1b31dc24b8
3 changed files with 10 additions and 9 deletions
core/src/main/java/haveno/core/support/dispute
proto/src/main/proto

View file

@ -578,8 +578,9 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
trade.advanceState(Trade.State.BUYER_SENT_PAYMENT_SENT_MSG);
}
// update multisig hex
if (message.getUpdatedMultisigHex() != null) sender.setUpdatedMultisigHex(message.getUpdatedMultisigHex());
// update opener's multisig hex
TradePeer opener = sender == trade.getArbitrator() ? trade.getTradePeer() : sender;
if (message.getOpenerUpdatedMultisigHex() != null) opener.setUpdatedMultisigHex(message.getOpenerUpdatedMultisigHex());
// add chat message with price info
if (trade instanceof ArbitratorTrade) addPriceInfoMessage(dispute, 0);
@ -605,7 +606,7 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
if (trade.isArbitrator()) {
TradePeer senderPeer = sender == trade.getMaker() ? trade.getTaker() : trade.getMaker();
if (senderPeer != trade.getMaker() && senderPeer != trade.getTaker()) throw new RuntimeException("Sender peer is not maker or taker, address=" + senderPeer.getNodeAddress());
sendDisputeOpenedMessageToPeer(dispute, contract, senderPeer.getPubKeyRing(), trade.getSelf().getUpdatedMultisigHex());
sendDisputeOpenedMessageToPeer(dispute, contract, senderPeer.getPubKeyRing(), opener.getUpdatedMultisigHex());
}
tradeManager.requestPersistence();
errorMessage = null;

View file

@ -34,7 +34,7 @@ import java.util.Optional;
public final class DisputeOpenedMessage extends DisputeMessage {
private final Dispute dispute;
private final NodeAddress senderNodeAddress;
private final String updatedMultisigHex;
private final String openerUpdatedMultisigHex;
private final PaymentSentMessage paymentSentMessage;
public DisputeOpenedMessage(Dispute dispute,
@ -67,7 +67,7 @@ public final class DisputeOpenedMessage extends DisputeMessage {
super(messageVersion, uid, supportType);
this.dispute = dispute;
this.senderNodeAddress = senderNodeAddress;
this.updatedMultisigHex = updatedMultisigHex;
this.openerUpdatedMultisigHex = updatedMultisigHex;
this.paymentSentMessage = paymentSentMessage;
}
@ -78,7 +78,7 @@ public final class DisputeOpenedMessage extends DisputeMessage {
.setDispute(dispute.toProtoMessage())
.setSenderNodeAddress(senderNodeAddress.toProtoMessage())
.setType(SupportType.toProtoMessage(supportType))
.setUpdatedMultisigHex(updatedMultisigHex);
.setOpenerUpdatedMultisigHex(openerUpdatedMultisigHex);
Optional.ofNullable(paymentSentMessage).ifPresent(e -> builder.setPaymentSentMessage(paymentSentMessage.toProtoNetworkEnvelope().getPaymentSentMessage()));
return getNetworkEnvelopeBuilder().setDisputeOpenedMessage(builder).build();
}
@ -91,7 +91,7 @@ public final class DisputeOpenedMessage extends DisputeMessage {
proto.getUid(),
messageVersion,
SupportType.fromProto(proto.getType()),
ProtoUtil.stringOrNullFromProto(proto.getUpdatedMultisigHex()),
ProtoUtil.stringOrNullFromProto(proto.getOpenerUpdatedMultisigHex()),
proto.hasPaymentSentMessage() ? PaymentSentMessage.fromProto(proto.getPaymentSentMessage(), messageVersion) : null);
}
@ -108,7 +108,7 @@ public final class DisputeOpenedMessage extends DisputeMessage {
",\n DisputeOpenedMessage.uid='" + uid + '\'' +
",\n messageVersion=" + messageVersion +
",\n supportType=" + supportType +
",\n updatedMultisigHex=" + updatedMultisigHex +
",\n openerUpdatedMultisigHex=" + openerUpdatedMultisigHex +
",\n paymentSentMessage=" + paymentSentMessage +
"\n} " + super.toString();
}

View file

@ -385,7 +385,7 @@ message DisputeOpenedMessage {
NodeAddress sender_node_address = 2;
string uid = 3;
SupportType type = 4;
string updated_multisig_hex = 5;
string opener_updated_multisig_hex = 5;
PaymentSentMessage payment_sent_message = 6;
}