mirror of
https://github.com/sparrowwallet/drongo.git
synced 2024-12-26 18:16:45 +00:00
add wallet birth date and network default ports
This commit is contained in:
parent
68f7c6850e
commit
6ad3f53731
2 changed files with 29 additions and 4 deletions
|
@ -1,11 +1,11 @@
|
|||
package com.sparrowwallet.drongo;
|
||||
|
||||
public enum Network {
|
||||
MAINNET("mainnet", 0, "1", 5, "3", "bc", ExtendedKey.Header.xprv, ExtendedKey.Header.xpub),
|
||||
TESTNET("testnet", 111, "mn", 196, "2", "tb", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub),
|
||||
REGTEST("regtest", 111, "mn", 196, "2", "bcrt", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub);
|
||||
MAINNET("mainnet", 0, "1", 5, "3", "bc", ExtendedKey.Header.xprv, ExtendedKey.Header.xpub, 8332),
|
||||
TESTNET("testnet", 111, "mn", 196, "2", "tb", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 18332),
|
||||
REGTEST("regtest", 111, "mn", 196, "2", "bcrt", ExtendedKey.Header.tprv, ExtendedKey.Header.tpub, 18443);
|
||||
|
||||
Network(String name, int p2pkhAddressHeader, String p2pkhAddressPrefix, int p2shAddressHeader, String p2shAddressPrefix, String bech32AddressHrp, ExtendedKey.Header xprvHeader, ExtendedKey.Header xpubHeader) {
|
||||
Network(String name, int p2pkhAddressHeader, String p2pkhAddressPrefix, int p2shAddressHeader, String p2shAddressPrefix, String bech32AddressHrp, ExtendedKey.Header xprvHeader, ExtendedKey.Header xpubHeader, int defaultPort) {
|
||||
this.name = name;
|
||||
this.p2pkhAddressHeader = p2pkhAddressHeader;
|
||||
this.p2pkhAddressPrefix = p2pkhAddressPrefix;
|
||||
|
@ -14,6 +14,7 @@ public enum Network {
|
|||
this.bech32AddressHrp = bech32AddressHrp;
|
||||
this.xprvHeader = xprvHeader;
|
||||
this.xpubHeader = xpubHeader;
|
||||
this.defaultPort = defaultPort;
|
||||
}
|
||||
|
||||
private final String name;
|
||||
|
@ -24,6 +25,7 @@ public enum Network {
|
|||
private final String bech32AddressHrp;
|
||||
private final ExtendedKey.Header xprvHeader;
|
||||
private final ExtendedKey.Header xpubHeader;
|
||||
private final int defaultPort;
|
||||
|
||||
private static Network currentNetwork;
|
||||
|
||||
|
@ -51,6 +53,10 @@ public enum Network {
|
|||
return xpubHeader;
|
||||
}
|
||||
|
||||
public int getDefaultPort() {
|
||||
return defaultPort;
|
||||
}
|
||||
|
||||
public boolean hasP2PKHAddressPrefix(String address) {
|
||||
for(String prefix : p2pkhAddressPrefix.split("")) {
|
||||
if(address.startsWith(prefix)) {
|
||||
|
|
|
@ -31,6 +31,7 @@ public class Wallet {
|
|||
private final Map<Sha256Hash, BlockTransaction> transactions = new HashMap<>();
|
||||
private Integer storedBlockHeight;
|
||||
private Integer gapLimit;
|
||||
private Date birthDate;
|
||||
|
||||
public Wallet() {
|
||||
}
|
||||
|
@ -40,9 +41,14 @@ public class Wallet {
|
|||
}
|
||||
|
||||
public Wallet(String name, PolicyType policyType, ScriptType scriptType) {
|
||||
this(name, policyType, scriptType, null);
|
||||
}
|
||||
|
||||
public Wallet(String name, PolicyType policyType, ScriptType scriptType, Date birthDate) {
|
||||
this.name = name;
|
||||
this.policyType = policyType;
|
||||
this.scriptType = scriptType;
|
||||
this.birthDate = birthDate;
|
||||
this.keystores = Collections.singletonList(new Keystore());
|
||||
this.defaultPolicy = Policy.getPolicy(policyType, scriptType, keystores, null);
|
||||
}
|
||||
|
@ -102,6 +108,10 @@ public class Wallet {
|
|||
}
|
||||
|
||||
transactions.putAll(updatedTransactions);
|
||||
|
||||
if(!transactions.isEmpty()) {
|
||||
birthDate = transactions.values().stream().map(BlockTransactionHash::getDate).filter(Objects::nonNull).min(Date::compareTo).orElse(birthDate);
|
||||
}
|
||||
}
|
||||
|
||||
public Integer getStoredBlockHeight() {
|
||||
|
@ -120,6 +130,14 @@ public class Wallet {
|
|||
this.gapLimit = gapLimit;
|
||||
}
|
||||
|
||||
public Date getBirthDate() {
|
||||
return birthDate;
|
||||
}
|
||||
|
||||
public void setBirthDate(Date birthDate) {
|
||||
this.birthDate = birthDate;
|
||||
}
|
||||
|
||||
public synchronized WalletNode getNode(KeyPurpose keyPurpose) {
|
||||
WalletNode purposeNode;
|
||||
Optional<WalletNode> optionalPurposeNode = purposeNodes.stream().filter(node -> node.getKeyPurpose().equals(keyPurpose)).findFirst();
|
||||
|
@ -933,6 +951,7 @@ public class Wallet {
|
|||
}
|
||||
copy.setStoredBlockHeight(getStoredBlockHeight());
|
||||
copy.gapLimit = gapLimit;
|
||||
copy.birthDate = birthDate;
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue