mirror of
https://github.com/haveno-dex/haveno.git
synced 2024-11-17 08:17:57 +00:00
dispute agent registration uses host name and prevents re-registration
This commit is contained in:
parent
2ed664c8cf
commit
253ef8fabe
1 changed files with 14 additions and 3 deletions
|
@ -22,7 +22,7 @@ import bisq.core.support.dispute.mediation.mediator.Mediator;
|
||||||
import bisq.core.support.dispute.mediation.mediator.MediatorManager;
|
import bisq.core.support.dispute.mediation.mediator.MediatorManager;
|
||||||
import bisq.core.support.dispute.refund.refundagent.RefundAgent;
|
import bisq.core.support.dispute.refund.refundagent.RefundAgent;
|
||||||
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
|
import bisq.core.support.dispute.refund.refundagent.RefundAgentManager;
|
||||||
|
import bisq.core.user.User;
|
||||||
import bisq.network.p2p.NodeAddress;
|
import bisq.network.p2p.NodeAddress;
|
||||||
import bisq.network.p2p.P2PService;
|
import bisq.network.p2p.P2PService;
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@ import static java.util.Arrays.asList;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
class CoreDisputeAgentsService {
|
class CoreDisputeAgentsService {
|
||||||
|
|
||||||
|
private final User user;
|
||||||
private final Config config;
|
private final Config config;
|
||||||
private final KeyRing keyRing;
|
private final KeyRing keyRing;
|
||||||
private final MediatorManager mediatorManager;
|
private final MediatorManager mediatorManager;
|
||||||
|
@ -63,17 +64,19 @@ class CoreDisputeAgentsService {
|
||||||
private final List<String> languageCodes;
|
private final List<String> languageCodes;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public CoreDisputeAgentsService(Config config,
|
public CoreDisputeAgentsService(User user,
|
||||||
|
Config config,
|
||||||
KeyRing keyRing,
|
KeyRing keyRing,
|
||||||
MediatorManager mediatorManager,
|
MediatorManager mediatorManager,
|
||||||
RefundAgentManager refundAgentManager,
|
RefundAgentManager refundAgentManager,
|
||||||
P2PService p2PService) {
|
P2PService p2PService) {
|
||||||
|
this.user = user;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.keyRing = keyRing;
|
this.keyRing = keyRing;
|
||||||
this.mediatorManager = mediatorManager;
|
this.mediatorManager = mediatorManager;
|
||||||
this.refundAgentManager = refundAgentManager;
|
this.refundAgentManager = refundAgentManager;
|
||||||
this.p2PService = p2PService;
|
this.p2PService = p2PService;
|
||||||
this.nodeAddress = new NodeAddress(getLoopbackAddress().getHostAddress(), config.nodePort);
|
this.nodeAddress = new NodeAddress(getLoopbackAddress().getHostName(), config.nodePort);
|
||||||
this.languageCodes = asList("de", "en", "es", "fr");
|
this.languageCodes = asList("de", "en", "es", "fr");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,11 +99,19 @@ class CoreDisputeAgentsService {
|
||||||
case ARBITRATION:
|
case ARBITRATION:
|
||||||
throw new IllegalArgumentException("arbitrators must be registered in a Bisq UI");
|
throw new IllegalArgumentException("arbitrators must be registered in a Bisq UI");
|
||||||
case MEDIATION:
|
case MEDIATION:
|
||||||
|
if (user.getRegisteredMediator() != null) {
|
||||||
|
log.warn("ignoring request to re-register as mediator");
|
||||||
|
return;
|
||||||
|
}
|
||||||
ecKey = mediatorManager.getRegistrationKey(registrationKey);
|
ecKey = mediatorManager.getRegistrationKey(registrationKey);
|
||||||
signature = mediatorManager.signStorageSignaturePubKey(Objects.requireNonNull(ecKey));
|
signature = mediatorManager.signStorageSignaturePubKey(Objects.requireNonNull(ecKey));
|
||||||
registerMediator(nodeAddress, languageCodes, ecKey, signature);
|
registerMediator(nodeAddress, languageCodes, ecKey, signature);
|
||||||
return;
|
return;
|
||||||
case REFUND:
|
case REFUND:
|
||||||
|
if (user.getRegisteredRefundAgent() != null) {
|
||||||
|
log.warn("ignoring request to re-register as refund agent");
|
||||||
|
return;
|
||||||
|
}
|
||||||
ecKey = refundAgentManager.getRegistrationKey(registrationKey);
|
ecKey = refundAgentManager.getRegistrationKey(registrationKey);
|
||||||
signature = refundAgentManager.signStorageSignaturePubKey(Objects.requireNonNull(ecKey));
|
signature = refundAgentManager.signStorageSignaturePubKey(Objects.requireNonNull(ecKey));
|
||||||
registerRefundAgent(nodeAddress, languageCodes, ecKey, signature);
|
registerRefundAgent(nodeAddress, languageCodes, ecKey, signature);
|
||||||
|
|
Loading…
Reference in a new issue