verify arbitrator signature when dispute closed

This commit is contained in:
woodser 2023-01-15 11:23:46 -05:00
parent 435fc164b2
commit 9260cf53ee
15 changed files with 76 additions and 88 deletions

View File

@ -174,10 +174,12 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
@Override @Override
public List<ChatMessage> getAllChatMessages() { public List<ChatMessage> getAllChatMessages() {
synchronized (getDisputeList()) {
return getDisputeList().stream() return getDisputeList().stream()
.flatMap(dispute -> dispute.getChatMessages().stream()) .flatMap(dispute -> dispute.getChatMessages().stream())
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
}
@Override @Override
public boolean channelOpen(ChatMessage message) { public boolean channelOpen(ChatMessage message) {
@ -294,6 +296,7 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
} }
public Optional<Dispute> findOwnDispute(String tradeId) { public Optional<Dispute> findOwnDispute(String tradeId) {
synchronized (getDisputeList()) {
T disputeList = getDisputeList(); T disputeList = getDisputeList();
if (disputeList == null) { if (disputeList == null) {
log.warn("disputes is null"); log.warn("disputes is null");
@ -301,6 +304,7 @@ public abstract class DisputeManager<T extends DisputeList<Dispute>> extends Sup
} }
return disputeList.stream().filter(e -> e.getTradeId().equals(tradeId)).findAny(); return disputeList.stream().filter(e -> e.getTradeId().equals(tradeId)).findAny();
} }
}
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Dispute handling // Dispute handling

View File

@ -25,6 +25,8 @@ import bisq.common.util.Utilities;
import org.bitcoinj.core.Coin; import org.bitcoinj.core.Coin;
import com.google.protobuf.ByteString;
import javafx.beans.property.BooleanProperty; import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
@ -159,6 +161,8 @@ public final class DisputeResult implements NetworkPayload {
.setSellerPayoutAmount(sellerPayoutAmount) .setSellerPayoutAmount(sellerPayoutAmount)
.setCloseDate(closeDate); .setCloseDate(closeDate);
Optional.ofNullable(arbitratorSignature).ifPresent(arbitratorSignature -> builder.setArbitratorSignature(ByteString.copyFrom(arbitratorSignature)));
Optional.ofNullable(arbitratorPubKey).ifPresent(arbitratorPubKey -> builder.setArbitratorPubKey(ByteString.copyFrom(arbitratorPubKey)));
Optional.ofNullable(winner).ifPresent(result -> builder.setWinner(protobuf.DisputeResult.Winner.valueOf(winner.name()))); Optional.ofNullable(winner).ifPresent(result -> builder.setWinner(protobuf.DisputeResult.Winner.valueOf(winner.name())));
Optional.ofNullable(chatMessage).ifPresent(chatMessage -> Optional.ofNullable(chatMessage).ifPresent(chatMessage ->
builder.setChatMessage(chatMessage.toProtoNetworkEnvelope().getChatMessage())); builder.setChatMessage(chatMessage.toProtoNetworkEnvelope().getChatMessage()));

View File

@ -19,8 +19,7 @@ package bisq.core.support.dispute;
import bisq.core.locale.Res; import bisq.core.locale.Res;
import bisq.core.support.dispute.agent.DisputeAgent; import bisq.core.support.dispute.agent.DisputeAgent;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.network.p2p.NodeAddress; import bisq.network.p2p.NodeAddress;
@ -64,18 +63,14 @@ public class DisputeSummaryVerification {
SEPARATOR2); SEPARATOR2);
} }
public static String verifySignature(String input, public static void verifySignature(String input,
MediatorManager mediatorManager, ArbitratorManager arbitratorMediator) {
RefundAgentManager refundAgentManager) {
try { try {
String[] parts = input.split(SEPARATOR1); String[] parts = input.split(SEPARATOR1);
String textToSign = parts[0]; String textToSign = parts[0];
String fullAddress = textToSign.split("\n")[1].split(": ")[1]; String fullAddress = textToSign.split("\n")[1].split(": ")[1];
NodeAddress nodeAddress = new NodeAddress(fullAddress); NodeAddress nodeAddress = new NodeAddress(fullAddress);
DisputeAgent disputeAgent = mediatorManager.getDisputeAgentByNodeAddress(nodeAddress).orElse(null); DisputeAgent disputeAgent = arbitratorMediator.getDisputeAgentByNodeAddress(nodeAddress).orElse(null);
if (disputeAgent == null) {
disputeAgent = refundAgentManager.getDisputeAgentByNodeAddress(nodeAddress).orElse(null);
}
checkNotNull(disputeAgent); checkNotNull(disputeAgent);
PublicKey pubKey = disputeAgent.getPubKeyRing().getSignaturePubKey(); PublicKey pubKey = disputeAgent.getPubKeyRing().getSignaturePubKey();
@ -85,15 +80,15 @@ public class DisputeSummaryVerification {
try { try {
boolean result = Sig.verify(pubKey, hash, sig); boolean result = Sig.verify(pubKey, hash, sig);
if (result) { if (result) {
return Res.get("support.sigCheck.popup.success"); return;
} else { } else {
return Res.get("support.sigCheck.popup.failed"); throw new IllegalArgumentException(Res.get("support.sigCheck.popup.failed"));
} }
} catch (CryptoException e) { } catch (CryptoException e) {
return Res.get("support.sigCheck.popup.failed"); throw new IllegalArgumentException(Res.get("support.sigCheck.popup.failed"));
} }
} catch (Throwable e) { } catch (Throwable e) {
return Res.get("support.sigCheck.popup.invalidFormat"); throw new IllegalArgumentException(Res.get("support.sigCheck.popup.invalidFormat"));
} }
} }
} }

View File

@ -28,7 +28,9 @@ import bisq.core.support.SupportType;
import bisq.core.support.dispute.Dispute; import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeManager; import bisq.core.support.dispute.DisputeManager;
import bisq.core.support.dispute.DisputeResult; import bisq.core.support.dispute.DisputeResult;
import bisq.core.support.dispute.DisputeSummaryVerification;
import bisq.core.support.dispute.DisputeResult.Winner; import bisq.core.support.dispute.DisputeResult.Winner;
import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.messages.DisputeClosedMessage; import bisq.core.support.dispute.messages.DisputeClosedMessage;
import bisq.core.support.dispute.messages.DisputeOpenedMessage; import bisq.core.support.dispute.messages.DisputeOpenedMessage;
import bisq.core.support.messages.ChatMessage; import bisq.core.support.messages.ChatMessage;
@ -73,6 +75,8 @@ import monero.wallet.model.MoneroTxWallet;
@Singleton @Singleton
public final class ArbitrationManager extends DisputeManager<ArbitrationDisputeList> { public final class ArbitrationManager extends DisputeManager<ArbitrationDisputeList> {
private final ArbitratorManager arbitratorManager;
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
// Constructor // Constructor
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////
@ -83,6 +87,7 @@ public final class ArbitrationManager extends DisputeManager<ArbitrationDisputeL
XmrWalletService walletService, XmrWalletService walletService,
CoreMoneroConnectionsService connectionService, CoreMoneroConnectionsService connectionService,
CoreNotificationService notificationService, CoreNotificationService notificationService,
ArbitratorManager arbitratorManager,
TradeManager tradeManager, TradeManager tradeManager,
ClosedTradableManager closedTradableManager, ClosedTradableManager closedTradableManager,
OpenOfferManager openOfferManager, OpenOfferManager openOfferManager,
@ -92,7 +97,8 @@ public final class ArbitrationManager extends DisputeManager<ArbitrationDisputeL
PriceFeedService priceFeedService) { PriceFeedService priceFeedService) {
super(p2PService, tradeWalletService, walletService, connectionService, notificationService, tradeManager, closedTradableManager, super(p2PService, tradeWalletService, walletService, connectionService, notificationService, tradeManager, closedTradableManager,
openOfferManager, keyRing, arbitrationDisputeListService, config, priceFeedService); openOfferManager, keyRing, arbitrationDisputeListService, config, priceFeedService);
HavenoUtils.arbitrationManager = this; // store static reference this.arbitratorManager = arbitratorManager;
HavenoUtils.arbitrationManager = this; // TODO: storing static reference, better way?
} }
@ -181,6 +187,10 @@ public final class ArbitrationManager extends DisputeManager<ArbitrationDisputeL
log.info("Processing {} for {} {}", disputeClosedMessage.getClass().getSimpleName(), trade.getClass().getSimpleName(), disputeResult.getTradeId()); log.info("Processing {} for {} {}", disputeClosedMessage.getClass().getSimpleName(), trade.getClass().getSimpleName(), disputeResult.getTradeId());
// verify arbitrator signature
String summaryText = chatMessage.getMessage();
DisputeSummaryVerification.verifySignature(summaryText, arbitratorManager);
// get dispute // get dispute
Optional<Dispute> disputeOptional = findDispute(disputeResult); Optional<Dispute> disputeOptional = findDispute(disputeResult);
String uid = disputeClosedMessage.getUid(); String uid = disputeClosedMessage.getUid();

View File

@ -289,7 +289,7 @@ public class HavenoUtils {
message.setBuyerSignature(signature); message.setBuyerSignature(signature);
// verify signature // verify signature
String errMessage = "The buyer signature is invalid for the " + message.getClass().getSimpleName() + " for trade " + trade.getId(); String errMessage = "The buyer signature is invalid for the " + message.getClass().getSimpleName() + " for " + trade.getClass().getSimpleName() + " " + trade.getId();
try { try {
if (!Sig.verify(trade.getBuyer().getPubKeyRing().getSignaturePubKey(), unsignedMessageAsJson.getBytes(Charsets.UTF_8), signature)) throw new RuntimeException(errMessage); if (!Sig.verify(trade.getBuyer().getPubKeyRing().getSignaturePubKey(), unsignedMessageAsJson.getBytes(Charsets.UTF_8), signature)) throw new RuntimeException(errMessage);
} catch (Exception e) { } catch (Exception e) {
@ -320,7 +320,7 @@ public class HavenoUtils {
message.setSellerSignature(signature); message.setSellerSignature(signature);
// verify signature // verify signature
String errMessage = "The seller signature is invalid for the " + message.getClass().getSimpleName() + " for trade " + trade.getId(); String errMessage = "The seller signature is invalid for the " + message.getClass().getSimpleName() + " for " + trade.getClass().getSimpleName() + " " + trade.getId();
try { try {
if (!Sig.verify(trade.getSeller().getPubKeyRing().getSignaturePubKey(), unsignedMessageAsJson.getBytes(Charsets.UTF_8), signature)) throw new RuntimeException(errMessage); if (!Sig.verify(trade.getSeller().getPubKeyRing().getSignaturePubKey(), unsignedMessageAsJson.getBytes(Charsets.UTF_8), signature)) throw new RuntimeException(errMessage);
} catch (Exception e) { } catch (Exception e) {

View File

@ -21,8 +21,7 @@ import bisq.desktop.main.overlays.Overlay;
import bisq.core.locale.Res; import bisq.core.locale.Res;
import bisq.core.support.dispute.DisputeSummaryVerification; import bisq.core.support.dispute.DisputeSummaryVerification;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import javafx.scene.control.TextArea; import javafx.scene.control.TextArea;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
@ -43,12 +42,10 @@ import static bisq.desktop.util.FormBuilder.addTopLabelTextField;
public class VerifyDisputeResultSignatureWindow extends Overlay<VerifyDisputeResultSignatureWindow> { public class VerifyDisputeResultSignatureWindow extends Overlay<VerifyDisputeResultSignatureWindow> {
private TextArea textArea; private TextArea textArea;
private TextField resultTextField; private TextField resultTextField;
private final MediatorManager mediatorManager; private final ArbitratorManager arbitratorManager;
private final RefundAgentManager refundAgentManager;
public VerifyDisputeResultSignatureWindow(MediatorManager mediatorManager, RefundAgentManager refundAgentManager) { public VerifyDisputeResultSignatureWindow(ArbitratorManager arbitratorManager) {
this.mediatorManager = mediatorManager; this.arbitratorManager = arbitratorManager;
this.refundAgentManager = refundAgentManager;
type = Type.Attention; type = Type.Attention;
} }
@ -68,9 +65,12 @@ public class VerifyDisputeResultSignatureWindow extends Overlay<VerifyDisputeRes
display(); display();
textArea.textProperty().addListener((observable, oldValue, newValue) -> { textArea.textProperty().addListener((observable, oldValue, newValue) -> {
resultTextField.setText(DisputeSummaryVerification.verifySignature(newValue, try {
mediatorManager, DisputeSummaryVerification.verifySignature(newValue, arbitratorManager);
refundAgentManager)); resultTextField.setText(Res.get("support.sigCheck.popup.success"));
} catch (Exception e) {
resultTextField.setText(e.getMessage());
}
}); });
} }

View File

@ -44,9 +44,8 @@ import bisq.core.support.dispute.DisputeManager;
import bisq.core.support.dispute.DisputeResult; import bisq.core.support.dispute.DisputeResult;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.agent.DisputeAgentLookupMap; import bisq.core.support.dispute.agent.DisputeAgentLookupMap;
import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.mediation.MediationManager; import bisq.core.support.dispute.mediation.MediationManager;
import bisq.core.support.dispute.mediation.mediator.MediatorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.support.messages.ChatMessage; import bisq.core.support.messages.ChatMessage;
import bisq.core.trade.Contract; import bisq.core.trade.Contract;
import bisq.core.trade.Trade; import bisq.core.trade.Trade;
@ -157,8 +156,7 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> {
private final TradeDetailsWindow tradeDetailsWindow; private final TradeDetailsWindow tradeDetailsWindow;
private final AccountAgeWitnessService accountAgeWitnessService; private final AccountAgeWitnessService accountAgeWitnessService;
private final MediatorManager mediatorManager; private final ArbitratorManager arbitratorManager;
private final RefundAgentManager refundAgentManager;
private final boolean useDevPrivilegeKeys; private final boolean useDevPrivilegeKeys;
protected TableView<Dispute> tableView; protected TableView<Dispute> tableView;
@ -198,8 +196,7 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
boolean useDevPrivilegeKeys) { boolean useDevPrivilegeKeys) {
this.disputeManager = disputeManager; this.disputeManager = disputeManager;
this.keyRing = keyRing; this.keyRing = keyRing;
@ -211,8 +208,7 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> {
this.contractWindow = contractWindow; this.contractWindow = contractWindow;
this.tradeDetailsWindow = tradeDetailsWindow; this.tradeDetailsWindow = tradeDetailsWindow;
this.accountAgeWitnessService = accountAgeWitnessService; this.accountAgeWitnessService = accountAgeWitnessService;
this.mediatorManager = mediatorManager; this.arbitratorManager = arbitratorManager;
this.refundAgentManager = refundAgentManager;
this.useDevPrivilegeKeys = useDevPrivilegeKeys; this.useDevPrivilegeKeys = useDevPrivilegeKeys;
DisputeChatPopup.ChatCallback chatCallback = this::handleOnProcessDispute; DisputeChatPopup.ChatCallback chatCallback = this::handleOnProcessDispute;
chatPopup = new DisputeChatPopup(disputeManager, formatter, preferences, chatCallback); chatPopup = new DisputeChatPopup(disputeManager, formatter, preferences, chatCallback);
@ -286,7 +282,7 @@ public abstract class DisputeView extends ActivatableView<VBox, Void> {
sigCheckButton = new AutoTooltipButton(Res.get("support.sigCheck.button")); sigCheckButton = new AutoTooltipButton(Res.get("support.sigCheck.button"));
HBox.setHgrow(sigCheckButton, Priority.NEVER); HBox.setHgrow(sigCheckButton, Priority.NEVER);
sigCheckButton.setOnAction(e -> { sigCheckButton.setOnAction(e -> {
new VerifyDisputeResultSignatureWindow(mediatorManager, refundAgentManager).show(); new VerifyDisputeResultSignatureWindow(arbitratorManager).show();
}); });
Pane spacer = new Pane(); Pane spacer = new Pane();

View File

@ -31,8 +31,7 @@ import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeList; import bisq.core.support.dispute.DisputeList;
import bisq.core.support.dispute.DisputeManager; import bisq.core.support.dispute.DisputeManager;
import bisq.core.support.dispute.agent.MultipleHolderNameDetection; import bisq.core.support.dispute.agent.MultipleHolderNameDetection;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.TradeDataValidation; import bisq.core.trade.TradeDataValidation;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.DontShowAgainLookup; import bisq.core.user.DontShowAgainLookup;
@ -79,8 +78,7 @@ public abstract class DisputeAgentView extends DisputeView implements MultipleHo
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
boolean useDevPrivilegeKeys) { boolean useDevPrivilegeKeys) {
super(disputeManager, super(disputeManager,
keyRing, keyRing,
@ -92,8 +90,7 @@ public abstract class DisputeAgentView extends DisputeView implements MultipleHo
contractWindow, contractWindow,
tradeDetailsWindow, tradeDetailsWindow,
accountAgeWitnessService, accountAgeWitnessService,
mediatorManager, arbitratorManager,
refundAgentManager,
useDevPrivilegeKeys); useDevPrivilegeKeys);
multipleHolderNameDetection = new MultipleHolderNameDetection(disputeManager); multipleHolderNameDetection = new MultipleHolderNameDetection(disputeManager);

View File

@ -30,8 +30,7 @@ import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.arbitration.ArbitrationManager; import bisq.core.support.dispute.arbitration.ArbitrationManager;
import bisq.core.support.dispute.arbitration.ArbitrationSession; import bisq.core.support.dispute.arbitration.ArbitrationSession;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
import bisq.core.util.FormattingUtils; import bisq.core.util.FormattingUtils;
@ -57,8 +56,7 @@ public class ArbitratorView extends DisputeAgentView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
@Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) { @Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) {
super(arbitrationManager, super(arbitrationManager,
keyRing, keyRing,
@ -70,8 +68,7 @@ public class ArbitratorView extends DisputeAgentView {
contractWindow, contractWindow,
tradeDetailsWindow, tradeDetailsWindow,
accountAgeWitnessService, accountAgeWitnessService,
mediatorManager, arbitratorManager,
refundAgentManager,
useDevPrivilegeKeys); useDevPrivilegeKeys);
} }

View File

@ -28,10 +28,9 @@ import bisq.core.alert.PrivateNotificationManager;
import bisq.core.support.SupportType; import bisq.core.support.SupportType;
import bisq.core.support.dispute.Dispute; import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.mediation.MediationManager; import bisq.core.support.dispute.mediation.MediationManager;
import bisq.core.support.dispute.mediation.MediationSession; import bisq.core.support.dispute.mediation.MediationSession;
import bisq.core.support.dispute.mediation.mediator.MediatorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
import bisq.core.util.FormattingUtils; import bisq.core.util.FormattingUtils;
@ -57,8 +56,7 @@ public class MediatorView extends DisputeAgentView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
@Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) { @Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) {
super(mediationManager, super(mediationManager,
keyRing, keyRing,
@ -70,8 +68,7 @@ public class MediatorView extends DisputeAgentView {
contractWindow, contractWindow,
tradeDetailsWindow, tradeDetailsWindow,
accountAgeWitnessService, accountAgeWitnessService,
mediatorManager, arbitratorManager,
refundAgentManager,
useDevPrivilegeKeys); useDevPrivilegeKeys);
} }

View File

@ -30,10 +30,9 @@ import bisq.core.locale.Res;
import bisq.core.support.SupportType; import bisq.core.support.SupportType;
import bisq.core.support.dispute.Dispute; import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.RefundManager; import bisq.core.support.dispute.refund.RefundManager;
import bisq.core.support.dispute.refund.RefundSession; import bisq.core.support.dispute.refund.RefundSession;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
import bisq.core.util.FormattingUtils; import bisq.core.util.FormattingUtils;
@ -59,8 +58,7 @@ public class RefundAgentView extends DisputeAgentView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorService,
RefundAgentManager refundAgentManager,
@Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) { @Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) {
super(refundManager, super(refundManager,
keyRing, keyRing,
@ -72,8 +70,7 @@ public class RefundAgentView extends DisputeAgentView {
contractWindow, contractWindow,
tradeDetailsWindow, tradeDetailsWindow,
accountAgeWitnessService, accountAgeWitnessService,
mediatorManager, arbitratorService,
refundAgentManager,
useDevPrivilegeKeys); useDevPrivilegeKeys);
} }

View File

@ -27,8 +27,7 @@ import bisq.core.alert.PrivateNotificationManager;
import bisq.core.support.dispute.Dispute; import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeList; import bisq.core.support.dispute.DisputeList;
import bisq.core.support.dispute.DisputeManager; import bisq.core.support.dispute.DisputeManager;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
import bisq.core.util.coin.CoinFormatter; import bisq.core.util.coin.CoinFormatter;
@ -46,12 +45,10 @@ public abstract class DisputeClientView extends DisputeView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
boolean useDevPrivilegeKeys) { boolean useDevPrivilegeKeys) {
super(DisputeManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow, privateNotificationManager, super(DisputeManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow, privateNotificationManager,
contractWindow, tradeDetailsWindow, accountAgeWitnessService, contractWindow, tradeDetailsWindow, accountAgeWitnessService, arbitratorManager, useDevPrivilegeKeys);
mediatorManager, refundAgentManager, useDevPrivilegeKeys);
} }
@Override @Override

View File

@ -30,8 +30,7 @@ import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.arbitration.ArbitrationManager; import bisq.core.support.dispute.arbitration.ArbitrationManager;
import bisq.core.support.dispute.arbitration.ArbitrationSession; import bisq.core.support.dispute.arbitration.ArbitrationSession;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
import bisq.core.util.FormattingUtils; import bisq.core.util.FormattingUtils;
@ -56,12 +55,11 @@ public class ArbitrationClientView extends DisputeClientView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
@Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) { @Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) {
super(arbitrationManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow, super(arbitrationManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow,
privateNotificationManager, contractWindow, tradeDetailsWindow, accountAgeWitnessService, privateNotificationManager, contractWindow, tradeDetailsWindow, accountAgeWitnessService,
mediatorManager, refundAgentManager, useDevPrivilegeKeys); arbitratorManager, useDevPrivilegeKeys);
} }
@Override @Override

View File

@ -30,10 +30,9 @@ import bisq.core.locale.Res;
import bisq.core.support.SupportType; import bisq.core.support.SupportType;
import bisq.core.support.dispute.Dispute; import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.mediation.MediationManager; import bisq.core.support.dispute.mediation.MediationManager;
import bisq.core.support.dispute.mediation.MediationSession; import bisq.core.support.dispute.mediation.MediationSession;
import bisq.core.support.dispute.mediation.mediator.MediatorManager;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.Contract; import bisq.core.trade.Contract;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
@ -61,12 +60,11 @@ public class MediationClientView extends DisputeClientView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
@Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) { @Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) {
super(mediationManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow, super(mediationManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow,
privateNotificationManager, contractWindow, tradeDetailsWindow, accountAgeWitnessService, privateNotificationManager, contractWindow, tradeDetailsWindow, accountAgeWitnessService,
mediatorManager, refundAgentManager, useDevPrivilegeKeys); arbitratorManager, useDevPrivilegeKeys);
} }
@Override @Override

View File

@ -28,10 +28,9 @@ import bisq.core.alert.PrivateNotificationManager;
import bisq.core.support.SupportType; import bisq.core.support.SupportType;
import bisq.core.support.dispute.Dispute; import bisq.core.support.dispute.Dispute;
import bisq.core.support.dispute.DisputeSession; import bisq.core.support.dispute.DisputeSession;
import bisq.core.support.dispute.mediation.mediator.MediatorManager; import bisq.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import bisq.core.support.dispute.refund.RefundManager; import bisq.core.support.dispute.refund.RefundManager;
import bisq.core.support.dispute.refund.RefundSession; import bisq.core.support.dispute.refund.RefundSession;
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
import bisq.core.trade.Contract; import bisq.core.trade.Contract;
import bisq.core.trade.TradeManager; import bisq.core.trade.TradeManager;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
@ -59,12 +58,11 @@ public class RefundClientView extends DisputeClientView {
ContractWindow contractWindow, ContractWindow contractWindow,
TradeDetailsWindow tradeDetailsWindow, TradeDetailsWindow tradeDetailsWindow,
AccountAgeWitnessService accountAgeWitnessService, AccountAgeWitnessService accountAgeWitnessService,
MediatorManager mediatorManager, ArbitratorManager arbitratorManager,
RefundAgentManager refundAgentManager,
@Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) { @Named(Config.USE_DEV_PRIVILEGE_KEYS) boolean useDevPrivilegeKeys) {
super(refundManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow, super(refundManager, keyRing, tradeManager, formatter, preferences, disputeSummaryWindow,
privateNotificationManager, contractWindow, tradeDetailsWindow, accountAgeWitnessService, privateNotificationManager, contractWindow, tradeDetailsWindow, accountAgeWitnessService,
mediatorManager, refundAgentManager, useDevPrivilegeKeys); arbitratorManager, useDevPrivilegeKeys);
} }
@Override @Override