Search in sources :

Example 1 with WalletModel

use of com.sparrowwallet.drongo.wallet.WalletModel in project sparrow by sparrowwallet.

the class CaravanMultisig method importWallet.

@Override
public Wallet importWallet(InputStream inputStream, String password) throws ImportException {
    try {
        InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
        CaravanFile cf = JsonPersistence.getGson().fromJson(reader, CaravanFile.class);
        Wallet wallet = new Wallet();
        wallet.setName(cf.name);
        wallet.setPolicyType(PolicyType.MULTI);
        ScriptType scriptType = ScriptType.valueOf(cf.addressType.replace('-', '_'));
        for (ExtPublicKey extKey : cf.extendedPublicKeys) {
            Keystore keystore = new Keystore(extKey.name);
            try {
                keystore.setKeyDerivation(new KeyDerivation(extKey.xfp, extKey.bip32Path));
            } catch (NumberFormatException e) {
                keystore.setKeyDerivation(new KeyDerivation(extKey.xfp, scriptType.getDefaultDerivationPath()));
            }
            keystore.setExtendedPublicKey(ExtendedKey.fromDescriptor(extKey.xpub));
            WalletModel walletModel = WalletModel.fromType(extKey.method);
            if (walletModel == null) {
                keystore.setWalletModel(WalletModel.SPARROW);
                keystore.setSource(KeystoreSource.SW_WATCH);
            } else {
                keystore.setWalletModel(walletModel);
                keystore.setSource(KeystoreSource.HW_USB);
            }
            wallet.getKeystores().add(keystore);
        }
        wallet.setScriptType(scriptType);
        wallet.setDefaultPolicy(Policy.getPolicy(PolicyType.MULTI, scriptType, wallet.getKeystores(), cf.quorum.requiredSigners));
        return wallet;
    } catch (Exception e) {
        throw new ImportException("Error importing " + getName() + " wallet", e);
    }
}
Also used : Keystore(com.sparrowwallet.drongo.wallet.Keystore) ScriptType(com.sparrowwallet.drongo.protocol.ScriptType) WalletModel(com.sparrowwallet.drongo.wallet.WalletModel) InputStreamReader(java.io.InputStreamReader) Wallet(com.sparrowwallet.drongo.wallet.Wallet) KeyDerivation(com.sparrowwallet.drongo.KeyDerivation)

Example 2 with WalletModel

use of com.sparrowwallet.drongo.wallet.WalletModel in project sparrow by sparrowwallet.

the class KeystoreController method launchImportDialog.

private void launchImportDialog(KeystoreSource initialSource) {
    boolean restrictSource = keystoreSourceToggleGroup.getToggles().stream().anyMatch(toggle -> ((ToggleButton) toggle).isDisabled());
    KeyDerivation requiredDerivation = restrictSource ? keystore.getKeyDerivation() : null;
    WalletModel requiredModel = restrictSource ? keystore.getWalletModel() : null;
    KeystoreImportDialog dlg = new KeystoreImportDialog(getWalletForm().getWallet(), initialSource, requiredDerivation, requiredModel, restrictSource);
    Optional<Keystore> result = dlg.showAndWait();
    if (result.isPresent()) {
        selectSourcePane.setVisible(false);
        Keystore importedKeystore = result.get();
        walletForm.getWallet().makeLabelsUnique(importedKeystore);
        keystore.setSource(importedKeystore.getSource());
        keystore.setWalletModel(importedKeystore.getWalletModel());
        keystore.setLabel(importedKeystore.getLabel());
        keystore.setKeyDerivation(importedKeystore.getKeyDerivation());
        keystore.setExtendedPublicKey(importedKeystore.getExtendedPublicKey());
        keystore.setMasterPrivateExtendedKey(importedKeystore.getMasterPrivateExtendedKey());
        keystore.setSeed(importedKeystore.getSeed());
        keystore.setBip47ExtendedPrivateKey(importedKeystore.getBip47ExtendedPrivateKey());
        updateType();
        label.setText(keystore.getLabel());
        fingerprint.setText(keystore.getKeyDerivation().getMasterFingerprint());
        derivation.setText(keystore.getKeyDerivation().getDerivationPath());
        if (keystore.getExtendedPublicKey() != null) {
            xpub.setText(keystore.getExtendedPublicKey().toString());
            setXpubContext(keystore.getExtendedPublicKey());
        } else {
            xpub.setText("");
        }
    }
}
Also used : Keystore(com.sparrowwallet.drongo.wallet.Keystore) WalletModel(com.sparrowwallet.drongo.wallet.WalletModel) KeystoreImportDialog(com.sparrowwallet.sparrow.keystoreimport.KeystoreImportDialog)

Aggregations

Keystore (com.sparrowwallet.drongo.wallet.Keystore)2 WalletModel (com.sparrowwallet.drongo.wallet.WalletModel)2 KeyDerivation (com.sparrowwallet.drongo.KeyDerivation)1 ScriptType (com.sparrowwallet.drongo.protocol.ScriptType)1 Wallet (com.sparrowwallet.drongo.wallet.Wallet)1 KeystoreImportDialog (com.sparrowwallet.sparrow.keystoreimport.KeystoreImportDialog)1 InputStreamReader (java.io.InputStreamReader)1