diff --git a/core/src/main/java/com/google/bitcoin/store/WalletProtobufSerializer.java b/core/src/main/java/com/google/bitcoin/store/WalletProtobufSerializer.java index 434bd260..975c951e 100644 --- a/core/src/main/java/com/google/bitcoin/store/WalletProtobufSerializer.java +++ b/core/src/main/java/com/google/bitcoin/store/WalletProtobufSerializer.java @@ -74,8 +74,24 @@ public class WalletProtobufSerializer { private boolean requireMandatoryExtensions = true; + public interface WalletFactory { + Wallet create(NetworkParameters params, KeyChainGroup keyChainGroup); + } + + private final WalletFactory factory; + public WalletProtobufSerializer() { + this(new WalletFactory() { + @Override + public Wallet create(NetworkParameters params, KeyChainGroup keyChainGroup) { + return new Wallet(params, keyChainGroup); + } + }); + } + + public WalletProtobufSerializer(WalletFactory factory) { txMap = new HashMap(); + this.factory = factory; } /** @@ -374,7 +390,7 @@ public class WalletProtobufSerializer { } else { chain = KeyChainGroup.fromProtobufUnencrypted(walletProto.getKeyList()); } - Wallet wallet = new Wallet(params, chain); + Wallet wallet = factory.create(params, chain); List