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) {
//TODO: Calculate using seen transactions
int lookAhead = DEFAULT_LOOKAHEAD;
Integer maxIndex = node.getHighestIndex();
Integer maxIndex = node.getHighestUsedIndex();
if(maxIndex != null) {
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() {
if(policyType == null || scriptType == null || defaultPolicy == null || keystores.isEmpty()) {
return false;

View file

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