diff --git a/src/main/java/com/sparrowwallet/sparrow/control/PrivateKeySweepDialog.java b/src/main/java/com/sparrowwallet/sparrow/control/PrivateKeySweepDialog.java index 12d1c572..0b30390b 100644 --- a/src/main/java/com/sparrowwallet/sparrow/control/PrivateKeySweepDialog.java +++ b/src/main/java/com/sparrowwallet/sparrow/control/PrivateKeySweepDialog.java @@ -190,6 +190,7 @@ public class PrivateKeySweepDialog extends Dialog { boolean isValidKey = isValidKey(); createButton.setDisable(!isValidKey || !isValidToAddress()); + setScriptTypes(isValidKey); if(isValidKey) { setFromAddress(); } @@ -289,6 +290,16 @@ public class PrivateKeySweepDialog extends Dialog { keyAddress.setText(address.toString()); } + private void setScriptTypes(boolean isValidKey) { + boolean compressed = !isValidKey || getPrivateKey().getKey().isCompressed(); + if(compressed && !keyScriptType.getItems().equals(ScriptType.getAddressableScriptTypes(PolicyType.SINGLE))) { + keyScriptType.getItems().addAll(ScriptType.getAddressableScriptTypes(PolicyType.SINGLE).stream().filter(s -> !keyScriptType.getItems().contains(s)).collect(Collectors.toList())); + } else if(!compressed && !keyScriptType.getItems().equals(List.of(ScriptType.P2PKH))) { + keyScriptType.getSelectionModel().select(0); + keyScriptType.getItems().removeIf(scriptType -> scriptType != ScriptType.P2PKH); + } + } + private void scanPrivateKey() { QRScanDialog qrScanDialog = new QRScanDialog(); qrScanDialog.initOwner(getDialogPane().getScene().getWindow());