diff --git a/drongo b/drongo index b2f5f5ff..8a6d2da5 160000 --- a/drongo +++ b/drongo @@ -1 +1 @@ -Subproject commit b2f5f5ffebfc0ce9f0d992f3ac3b59965661491b +Subproject commit 8a6d2da5c911b3f63426c9e5331c55a36c27befc diff --git a/src/main/java/com/sparrowwallet/sparrow/wallet/KeystoreController.java b/src/main/java/com/sparrowwallet/sparrow/wallet/KeystoreController.java index 73b768c9..b240a9f2 100644 --- a/src/main/java/com/sparrowwallet/sparrow/wallet/KeystoreController.java +++ b/src/main/java/com/sparrowwallet/sparrow/wallet/KeystoreController.java @@ -238,7 +238,9 @@ public class KeystoreController extends WalletFormController implements Initiali validationSupport.registerValidator(xpub, Validator.combine( Validator.createEmptyValidator(Network.get().getXpubHeader().getDisplayName() + " is required"), - (Control c, String newValue) -> ValidationResult.fromErrorIf( c, Network.get().getXpubHeader().getDisplayName() + " is invalid", !ExtendedKey.isValid(newValue)) + (Control c, String newValue) -> ValidationResult.fromErrorIf( c, Network.get().getXpubHeader().getDisplayName() + " is invalid", !ExtendedKey.isValid(newValue)), + (Control c, String newValue) -> ValidationResult.fromErrorIf( c, "Extended key is not unique", ExtendedKey.isValid(newValue) && + walletForm.getWallet().getKeystores().stream().filter(k -> k != keystore && k.getExtendedPublicKey() != null).map(Keystore::getExtendedPublicKey).collect(Collectors.toList()).contains(ExtendedKey.fromDescriptor(newValue))) )); validationSupport.registerValidator(derivation, Validator.combine(