mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-25 13:16:44 +00:00
fall back to coldcard singlesig import if multisig format import fails
This commit is contained in:
parent
9ec5b6ce26
commit
c9b40b1973
1 changed files with 25 additions and 0 deletions
|
@ -36,6 +36,31 @@ public class ColdcardMultisig implements WalletImport, KeystoreFileImport, Walle
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Keystore getKeystore(ScriptType scriptType, InputStream inputStream, String password) throws ImportException {
|
public Keystore getKeystore(ScriptType scriptType, InputStream inputStream, String password) throws ImportException {
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
|
inputStream.transferTo(baos);
|
||||||
|
InputStream firstClone = new ByteArrayInputStream(baos.toByteArray());
|
||||||
|
InputStream secondClone = new ByteArrayInputStream(baos.toByteArray());
|
||||||
|
|
||||||
|
Keystore keystore;
|
||||||
|
try {
|
||||||
|
keystore = getKeystoreMultisig(scriptType, firstClone, password);
|
||||||
|
} catch(Exception e) {
|
||||||
|
keystore = getKeystoreSinglesig(scriptType, secondClone, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
return keystore;
|
||||||
|
} catch(IOException e) {
|
||||||
|
throw new ImportException("Error importing keystore for " + scriptType, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Keystore getKeystoreSinglesig(ScriptType scriptType, InputStream inputStream, String password) throws ImportException {
|
||||||
|
ColdcardSinglesig coldcardSinglesig = new ColdcardSinglesig();
|
||||||
|
return coldcardSinglesig.getKeystore(scriptType, inputStream, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Keystore getKeystoreMultisig(ScriptType scriptType, InputStream inputStream, String password) throws ImportException {
|
||||||
InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
|
InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
|
||||||
ColdcardKeystore cck = JsonPersistence.getGson().fromJson(reader, ColdcardKeystore.class);
|
ColdcardKeystore cck = JsonPersistence.getGson().fromJson(reader, ColdcardKeystore.class);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue