|
|
@ -4,7 +4,9 @@ import com.google.gson.*; |
|
|
|
import com.google.gson.reflect.TypeToken; |
|
|
|
import com.sparrowwallet.drongo.ExtendedKey; |
|
|
|
import com.sparrowwallet.drongo.KeyDerivation; |
|
|
|
import com.sparrowwallet.drongo.KeyPurpose; |
|
|
|
import com.sparrowwallet.drongo.Utils; |
|
|
|
import com.sparrowwallet.drongo.address.Address; |
|
|
|
import com.sparrowwallet.drongo.crypto.*; |
|
|
|
import com.sparrowwallet.drongo.policy.Policy; |
|
|
|
import com.sparrowwallet.drongo.policy.PolicyType; |
|
|
@ -91,6 +93,10 @@ public class Electrum implements KeystoreFileImport, WalletImport, WalletExport |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if(key.equals("addresses")) { |
|
|
|
ew.addresses = gson.fromJson(map.get(key), ElectrumAddresses.class); |
|
|
|
} |
|
|
|
|
|
|
|
if(key.equals("verified_tx3")) { |
|
|
|
JsonObject jsonObject = (JsonObject)map.get(key); |
|
|
|
for(String txKey : jsonObject.keySet()) { |
|
|
@ -195,7 +201,24 @@ public class Electrum implements KeystoreFileImport, WalletImport, WalletExport |
|
|
|
blockTransaction.setLabel(ew.labels.get(key)); |
|
|
|
} |
|
|
|
} catch(Exception e) { |
|
|
|
//not a tx, probably an address
|
|
|
|
//not a tx - try an address
|
|
|
|
if(ew.addresses != null) { |
|
|
|
try { |
|
|
|
Address address = Address.fromString(key); |
|
|
|
Map<KeyPurpose, List<String>> keyPurposes = Map.of(KeyPurpose.RECEIVE, ew.addresses.receiving, KeyPurpose.CHANGE, ew.addresses.change); |
|
|
|
for(KeyPurpose keyPurpose : keyPurposes.keySet()) { |
|
|
|
WalletNode purposeNode = wallet.getNode(keyPurpose); |
|
|
|
purposeNode.fillToIndex(keyPurposes.get(keyPurpose).size() - 1); |
|
|
|
for(WalletNode addressNode : purposeNode.getChildren()) { |
|
|
|
if(address.equals(wallet.getAddress(addressNode))) { |
|
|
|
addressNode.setLabel(ew.labels.get(key)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} catch(Exception ex) { |
|
|
|
//not an address
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -342,6 +365,7 @@ public class Electrum implements KeystoreFileImport, WalletImport, WalletExport |
|
|
|
public String wallet_type; |
|
|
|
public String seed_type; |
|
|
|
public Boolean use_encryption; |
|
|
|
public ElectrumAddresses addresses; |
|
|
|
public Map<String, String> labels = new LinkedHashMap<>(); |
|
|
|
public Map<Sha256Hash, BlockTransaction> transactions = new HashMap<>(); |
|
|
|
} |
|
|
@ -360,4 +384,9 @@ public class Electrum implements KeystoreFileImport, WalletImport, WalletExport |
|
|
|
public String passphrase; |
|
|
|
public Integer pw_hash_version; |
|
|
|
} |
|
|
|
|
|
|
|
public static class ElectrumAddresses { |
|
|
|
public List<String> receiving; |
|
|
|
public List<String> change; |
|
|
|
} |
|
|
|
} |
|
|
|