add mix config to wallet

This commit is contained in:
Craig Raw 2021-09-01 13:08:18 +02:00
parent 71b5778226
commit 67836b2b55
2 changed files with 87 additions and 0 deletions

View file

@ -0,0 +1,66 @@
package com.sparrowwallet.drongo.wallet;
import java.io.File;
public class MixConfig extends Persistable {
private String scode;
private Boolean mixOnStartup;
private File mixToWalletFile;
private String mixToWalletName;
private Integer minMixes;
public MixConfig() {
}
public MixConfig(String scode, Boolean mixOnStartup, File mixToWalletFile, String mixToWalletName, Integer minMixes) {
this.scode = scode;
this.mixOnStartup = mixOnStartup;
this.mixToWalletFile = mixToWalletFile;
this.mixToWalletName = mixToWalletName;
this.minMixes = minMixes;
}
public String getScode() {
return scode;
}
public void setScode(String scode) {
this.scode = scode;
}
public Boolean getMixOnStartup() {
return mixOnStartup;
}
public void setMixOnStartup(Boolean mixOnStartup) {
this.mixOnStartup = mixOnStartup;
}
public File getMixToWalletFile() {
return mixToWalletFile;
}
public void setMixToWalletFile(File mixToWalletFile) {
this.mixToWalletFile = mixToWalletFile;
}
public String getMixToWalletName() {
return mixToWalletName;
}
public void setMixToWalletName(String mixToWalletName) {
this.mixToWalletName = mixToWalletName;
}
public Integer getMinMixes() {
return minMixes;
}
public void setMinMixes(Integer minMixes) {
this.minMixes = minMixes;
}
public MixConfig copy() {
return new MixConfig(scode, mixOnStartup, mixToWalletFile, mixToWalletName, minMixes);
}
}

View file

@ -36,6 +36,7 @@ public class Wallet extends Persistable {
private List<Keystore> keystores = new ArrayList<>();
private final TreeSet<WalletNode> purposeNodes = new TreeSet<>();
private final Map<Sha256Hash, BlockTransaction> transactions = new HashMap<>();
private MixConfig mixConfig;
private final Map<Sha256Hash, UtxoMixData> utxoMixes = new HashMap<>();
private Integer storedBlockHeight;
private Integer gapLimit;
@ -230,6 +231,22 @@ public class Wallet extends Persistable {
}
}
public MixConfig getMixConfig() {
return mixConfig;
}
public MixConfig getOrCreateMixConfig() {
if(mixConfig == null) {
mixConfig = new MixConfig();
}
return mixConfig;
}
public void setMixConfig(MixConfig mixConfig) {
this.mixConfig = mixConfig;
}
public UtxoMixData getUtxoMixData(BlockTransactionHashIndex utxo) {
return getUtxoMixData(Sha256Hash.of(utxo.toString().getBytes(StandardCharsets.UTF_8)));
}
@ -1339,6 +1356,10 @@ public class Wallet extends Persistable {
for(Sha256Hash hash : transactions.keySet()) {
copy.transactions.put(hash, transactions.get(hash));
}
copy.setMixConfig(mixConfig == null ? null : mixConfig.copy());
for(Sha256Hash hash : utxoMixes.keySet()) {
copy.utxoMixes.put(hash, utxoMixes.get(hash));
}
copy.setStoredBlockHeight(getStoredBlockHeight());
copy.gapLimit = gapLimit;
copy.birthDate = birthDate;