diff --git a/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/BitcoindDaemon.java b/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/BitcoindDaemon.java index b56fc8d07c..bdf86368f1 100644 --- a/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/BitcoindDaemon.java +++ b/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/BitcoindDaemon.java @@ -39,16 +39,20 @@ public BitcoindDaemon(DaemonRpcClient rpcClient) { } public void createOrLoadWallet(String walletName, Optional passphrase) { - createOrLoadWallet(walletName, passphrase, false, false); + createOrLoadWallet(walletName, passphrase, true, false, false); + } + + public void createOrLoadLegacyWallet(String walletName, Optional passphrase) { + createOrLoadWallet(walletName, passphrase, false, false, false); } public void createOrLoadWatchOnlyWallet(String walletName) { - createOrLoadWallet(walletName, Optional.empty(), true, true); + createOrLoadWallet(walletName, Optional.empty(), true, true, true); } - private void createOrLoadWallet(String walletName, Optional passphrase, boolean disablePrivateKeys, boolean blank) { + private void createOrLoadWallet(String walletName, Optional passphrase, boolean descriptors, boolean disablePrivateKeys, boolean blank) { try { - createWallet(walletName, passphrase.orElse(""), disablePrivateKeys, blank); + createWallet(walletName, passphrase.orElse(""), descriptors, disablePrivateKeys, blank); } catch (RpcCallFailureException e) { if (doesWalletExist(e)) { List loadedWallets = listWallets(); @@ -146,9 +150,10 @@ private boolean doesWalletExist(RpcCallFailureException e) { return e.getCause().getMessage().contains("Database already exists."); } - private void createWallet(String walletName, String passphrase, boolean disablePrivateKeys, boolean blank) { + private void createWallet(String walletName, String passphrase, boolean descriptors, boolean disablePrivateKeys, boolean blank) { var request = BitcoindCreateWalletRpcCall.Request.builder() .walletName(walletName) + .descriptors(descriptors) .disablePrivateKeys(disablePrivateKeys) .blank(blank) .passphrase(passphrase) diff --git a/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/calls/BitcoindCreateWalletRpcCall.java b/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/calls/BitcoindCreateWalletRpcCall.java index cde0da94be..aab2ff81df 100644 --- a/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/calls/BitcoindCreateWalletRpcCall.java +++ b/wallets/bitcoind/src/main/java/bisq/wallets/bitcoind/rpc/calls/BitcoindCreateWalletRpcCall.java @@ -39,7 +39,7 @@ public static class Request { private String passphrase; @JsonProperty("avoid_reuse") private Boolean avoidReuse; - private final boolean descriptors = true; + private boolean descriptors; } public BitcoindCreateWalletRpcCall(Request request) { diff --git a/wallets/elementsd/src/main/java/bisq/wallets/elementsd/rpc/ElementsdDaemon.java b/wallets/elementsd/src/main/java/bisq/wallets/elementsd/rpc/ElementsdDaemon.java index b1fda3cf15..8b07a7cde3 100644 --- a/wallets/elementsd/src/main/java/bisq/wallets/elementsd/rpc/ElementsdDaemon.java +++ b/wallets/elementsd/src/main/java/bisq/wallets/elementsd/rpc/ElementsdDaemon.java @@ -39,7 +39,7 @@ public ElementsdDaemon(DaemonRpcClient rpcClient) { } public void createOrLoadWallet(String walletName, Optional passphrase) { - bitcoindDaemon.createOrLoadWallet(walletName, passphrase); + bitcoindDaemon.createOrLoadLegacyWallet(walletName, passphrase); } public ElementsdDecodeRawTransactionResponse decodeRawTransaction(String txInHex) {