core: Implement RegtestWalletAppKit

The RegtestWalletAppKit sets up BitcoinJ and loads the given wallets.
This commit is contained in:
Alva Swanson 2024-11-10 22:17:59 +00:00
parent ba28806d74
commit 33a968a6d5
No known key found for this signature in database
GPG Key ID: 004760E77F753090
2 changed files with 46 additions and 0 deletions

View File

@ -1,6 +1,7 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.java-conventions'
id 'bisq.javafx' id 'bisq.javafx'
id 'bisq.java-integration-tests'
} }
javafx { javafx {
@ -61,6 +62,10 @@ dependencies {
testAnnotationProcessor libs.lombok testAnnotationProcessor libs.lombok
testCompileOnly libs.lombok testCompileOnly libs.lombok
testImplementation libs.natpryce.make.it.easy testImplementation libs.natpryce.make.it.easy
integrationTestImplementation libs.junit.jupiter
integrationTestAnnotationProcessor libs.lombok
integrationTestCompileOnly libs.lombok
} }
test { test {

View File

@ -0,0 +1,41 @@
package bisq.core;
import bisq.core.btc.wallet.WalletFactory;
import org.bitcoinj.core.NetworkParameters;
import org.bitcoinj.kits.WalletAppKit;
import org.bitcoinj.wallet.Wallet;
import java.nio.file.Path;
import java.util.List;
import lombok.Getter;
@Getter
public class RegtestWalletAppKit {
private final WalletAppKit walletAppKit;
public RegtestWalletAppKit(NetworkParameters networkParams, Path dataDirPath, List<Wallet> wallets) {
walletAppKit = new WalletAppKit(networkParams, dataDirPath.toFile(), "dataDirFilePrefix") {
@Override
protected void onSetupCompleted() {
super.onSetupCompleted();
wallets.forEach(wallet -> {
vChain.addWallet(wallet);
vPeerGroup.addWallet(wallet);
});
}
};
}
public void initialize() {
walletAppKit.connectToLocalHost();
var walletFactory = new WalletFactory(walletAppKit.params());
walletAppKit.setWalletFactory((params, keyChainGroup) -> walletFactory.createBsqWallet());
walletAppKit.startAsync();
walletAppKit.awaitRunning();
}
}