mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-06-24 23:00:36 -04:00
improve error message when offer's arbitrator is not registered
This commit is contained in:
parent
050e6b907a
commit
4c30e4625b
5 changed files with 25 additions and 21 deletions
|
@ -127,6 +127,9 @@ public class OfferFilterService {
|
||||||
if (isMyInsufficientTradeLimit(offer)) {
|
if (isMyInsufficientTradeLimit(offer)) {
|
||||||
return Result.IS_MY_INSUFFICIENT_TRADE_LIMIT;
|
return Result.IS_MY_INSUFFICIENT_TRADE_LIMIT;
|
||||||
}
|
}
|
||||||
|
if (!hasValidArbitrator(offer)) {
|
||||||
|
return Result.ARBITRATOR_NOT_VALIDATED;
|
||||||
|
}
|
||||||
if (!hasValidSignature(offer)) {
|
if (!hasValidSignature(offer)) {
|
||||||
return Result.SIGNATURE_NOT_VALIDATED;
|
return Result.SIGNATURE_NOT_VALIDATED;
|
||||||
}
|
}
|
||||||
|
@ -215,27 +218,28 @@ public class OfferFilterService {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasValidSignature(Offer offer) {
|
private boolean hasValidArbitrator(Offer offer) {
|
||||||
|
Arbitrator arbitrator = getArbitrator(offer);
|
||||||
|
return arbitrator != null;
|
||||||
|
}
|
||||||
|
|
||||||
// get accepted arbitrator by address
|
private Arbitrator getArbitrator(Offer offer) {
|
||||||
|
|
||||||
|
// get arbitrator by address
|
||||||
Arbitrator arbitrator = user.getAcceptedArbitratorByAddress(offer.getOfferPayload().getArbitratorSigner());
|
Arbitrator arbitrator = user.getAcceptedArbitratorByAddress(offer.getOfferPayload().getArbitratorSigner());
|
||||||
|
if (arbitrator != null) return arbitrator;
|
||||||
|
|
||||||
// accepted arbitrator is null if we are the signing arbitrator
|
// check if we are the signing arbitrator
|
||||||
if (arbitrator == null && offer.getOfferPayload().getArbitratorSigner() != null) {
|
Arbitrator thisArbitrator = user.getRegisteredArbitrator();
|
||||||
Arbitrator thisArbitrator = user.getRegisteredArbitrator();
|
if (thisArbitrator != null && thisArbitrator.getNodeAddress().equals(offer.getOfferPayload().getArbitratorSigner())) return thisArbitrator;
|
||||||
if (thisArbitrator != null && thisArbitrator.getNodeAddress().equals(offer.getOfferPayload().getArbitratorSigner())) {
|
|
||||||
if (thisArbitrator.getNodeAddress().equals(p2PService.getNetworkNode().getNodeAddress())) arbitrator = thisArbitrator; // TODO: unnecessary to compare arbitrator and p2pservice address?
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// // otherwise log warning that arbitrator is unregistered
|
// cannot get arbitrator
|
||||||
// List<NodeAddress> arbitratorAddresses = user.getAcceptedArbitrators().stream().map(Arbitrator::getNodeAddress).collect(Collectors.toList());
|
return null;
|
||||||
// if (!arbitratorAddresses.isEmpty()) {
|
}
|
||||||
// log.warn("No arbitrator is registered with offer's signer. offerId={}, arbitrator signer={}, accepted arbitrators={}", offer.getId(), offer.getOfferPayload().getArbitratorSigner(), arbitratorAddresses);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arbitrator == null) return false; // invalid arbitrator
|
private boolean hasValidSignature(Offer offer) {
|
||||||
|
Arbitrator arbitrator = getArbitrator(offer);
|
||||||
|
if (arbitrator == null) return false;
|
||||||
return HavenoUtils.isArbitratorSignatureValid(offer.getOfferPayload(), arbitrator);
|
return HavenoUtils.isArbitratorSignatureValid(offer.getOfferPayload(), arbitrator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1189,7 +1189,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe
|
||||||
} else if (openOffer.getOffer().getOfferPayload().getArbitratorSignature() == null) {
|
} else if (openOffer.getOffer().getOfferPayload().getArbitratorSignature() == null) {
|
||||||
throw new IllegalArgumentException("Offer " + openOffer.getId() + " has no arbitrator signature");
|
throw new IllegalArgumentException("Offer " + openOffer.getId() + " has no arbitrator signature");
|
||||||
} else if (arbitrator == null) {
|
} else if (arbitrator == null) {
|
||||||
throw new IllegalArgumentException("Offer " + openOffer.getId() + " signed by unavailable arbitrator");
|
throw new IllegalArgumentException("Offer " + openOffer.getId() + " signed by unregistered arbitrator");
|
||||||
} else if (!HavenoUtils.isArbitratorSignatureValid(openOffer.getOffer().getOfferPayload(), arbitrator)) {
|
} else if (!HavenoUtils.isArbitratorSignatureValid(openOffer.getOffer().getOfferPayload(), arbitrator)) {
|
||||||
throw new IllegalArgumentException("Offer " + openOffer.getId() + " has invalid arbitrator signature");
|
throw new IllegalArgumentException("Offer " + openOffer.getId() + " has invalid arbitrator signature");
|
||||||
} else if (openOffer.getOffer().getOfferPayload().getReserveTxKeyImages() == null || openOffer.getOffer().getOfferPayload().getReserveTxKeyImages().isEmpty() || openOffer.getReserveTxHash() == null || openOffer.getReserveTxHash().isEmpty()) {
|
} else if (openOffer.getOffer().getOfferPayload().getReserveTxKeyImages() == null || openOffer.getOffer().getOfferPayload().getReserveTxKeyImages().isEmpty() || openOffer.getReserveTxHash() == null || openOffer.getReserveTxHash().isEmpty()) {
|
||||||
|
|
|
@ -458,7 +458,7 @@ offerbook.warning.requireUpdateToNewVersion=Your version of Haveno is not compat
|
||||||
offerbook.warning.offerWasAlreadyUsedInTrade=You cannot take this offer because you already took it earlier. \
|
offerbook.warning.offerWasAlreadyUsedInTrade=You cannot take this offer because you already took it earlier. \
|
||||||
It could be that your previous take-offer attempt resulted in a failed trade.
|
It could be that your previous take-offer attempt resulted in a failed trade.
|
||||||
|
|
||||||
offerbook.warning.arbitratorNotValidated=This offer cannot be taken because the arbitrator is invalid.
|
offerbook.warning.arbitratorNotValidated=This offer cannot be taken because the arbitrator is not registered.
|
||||||
offerbook.warning.signatureNotValidated=This offer cannot be taken because the arbitrator's signature is invalid.
|
offerbook.warning.signatureNotValidated=This offer cannot be taken because the arbitrator's signature is invalid.
|
||||||
offerbook.warning.reserveFundsSpent=This offer cannot be taken because the reserved funds were already spent.
|
offerbook.warning.reserveFundsSpent=This offer cannot be taken because the reserved funds were already spent.
|
||||||
|
|
||||||
|
|
|
@ -442,7 +442,7 @@ offerbook.warning.requireUpdateToNewVersion=Vaše verze Haveno již není kompat
|
||||||
offerbook.warning.offerWasAlreadyUsedInTrade=Tuto nabídku nemůžete přijmout, protože jste ji již dříve využili. \
|
offerbook.warning.offerWasAlreadyUsedInTrade=Tuto nabídku nemůžete přijmout, protože jste ji již dříve využili. \
|
||||||
Je možné, že váš předchozí pokus o přijetí nabídky vyústil v neúspěšný obchod.
|
Je možné, že váš předchozí pokus o přijetí nabídky vyústil v neúspěšný obchod.
|
||||||
|
|
||||||
offerbook.warning.arbitratorNotValidated=Tuto nabídku nelze přijmout, protože rozhodce je neplatný
|
offerbook.warning.arbitratorNotValidated=Tuto nabídku nelze přijmout, protože arbitr není registrován.
|
||||||
offerbook.warning.signatureNotValidated=Tuto nabídku nelze přijmout, protože rozhodce má neplatný podpis
|
offerbook.warning.signatureNotValidated=Tuto nabídku nelze přijmout, protože rozhodce má neplatný podpis
|
||||||
|
|
||||||
offerbook.info.sellAtMarketPrice=Budete prodávat za tržní cenu (aktualizováno každou minutu).
|
offerbook.info.sellAtMarketPrice=Budete prodávat za tržní cenu (aktualizováno každou minutu).
|
||||||
|
|
|
@ -439,7 +439,7 @@ offerbook.warning.requireUpdateToNewVersion=Sizin Haveno sürümünüz artık ti
|
||||||
offerbook.warning.offerWasAlreadyUsedInTrade=Bu teklifi alamazsınız çünkü daha önce aldınız. \
|
offerbook.warning.offerWasAlreadyUsedInTrade=Bu teklifi alamazsınız çünkü daha önce aldınız. \
|
||||||
Önceki teklif alma girişiminiz başarısız bir ticaretle sonuçlanmış olabilir.
|
Önceki teklif alma girişiminiz başarısız bir ticaretle sonuçlanmış olabilir.
|
||||||
|
|
||||||
offerbook.warning.arbitratorNotValidated=Bu teklif, hakem geçersiz olduğu için alınamaz
|
offerbook.warning.arbitratorNotValidated=Bu teklif kabul edilemez çünkü hakem kayıtlı değil.
|
||||||
offerbook.warning.signatureNotValidated=Bu teklif, hakemin imzası geçersiz olduğu için alınamaz
|
offerbook.warning.signatureNotValidated=Bu teklif, hakemin imzası geçersiz olduğu için alınamaz
|
||||||
|
|
||||||
offerbook.info.sellAtMarketPrice=Piyasa fiyatından satış yapacaksınız (her dakika güncellenir).
|
offerbook.info.sellAtMarketPrice=Piyasa fiyatından satış yapacaksınız (her dakika güncellenir).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue