highest used index

This commit is contained in:
Craig Raw 2020-05-30 13:15:28 +02:00
parent 60a0d450e0
commit d0a75fd268
2 changed files with 16 additions and 3 deletions

View file

@ -105,7 +105,7 @@ public class Wallet {
public int getLookAhead(WalletNode node) { public int getLookAhead(WalletNode node) {
//TODO: Calculate using seen transactions //TODO: Calculate using seen transactions
int lookAhead = DEFAULT_LOOKAHEAD; int lookAhead = DEFAULT_LOOKAHEAD;
Integer maxIndex = node.getHighestIndex(); Integer maxIndex = node.getHighestUsedIndex();
if(maxIndex != null) { if(maxIndex != null) {
lookAhead = Math.max(maxIndex + lookAhead/2, lookAhead); lookAhead = Math.max(maxIndex + lookAhead/2, lookAhead);
} }
@ -193,6 +193,17 @@ public class Wallet {
} }
} }
public void clearHistory() {
for(WalletNode purposeNode : purposeNodes) {
purposeNode.getHistory().clear();
for(WalletNode addressNode : purposeNode.getChildren()) {
addressNode.getHistory().clear();
}
}
transactions.clear();
}
public boolean isValid() { public boolean isValid() {
if(policyType == null || scriptType == null || defaultPolicy == null || keystores.isEmpty()) { if(policyType == null || scriptType == null || defaultPolicy == null || keystores.isEmpty()) {
return false; return false;

View file

@ -112,10 +112,12 @@ public class WalletNode implements Comparable<WalletNode> {
} }
} }
public Integer getHighestIndex() { public Integer getHighestUsedIndex() {
WalletNode highestNode = null; WalletNode highestNode = null;
for(WalletNode childNode : getChildren()) { for(WalletNode childNode : getChildren()) {
highestNode = childNode; if(!childNode.getHistory().isEmpty()) {
highestNode = childNode;
}
} }
return highestNode == null ? null : highestNode.index; return highestNode == null ? null : highestNode.index;