add error message when connecting to bitcoin core with a taproot wallet

This commit is contained in:
Craig Raw 2022-11-08 10:36:56 +02:00
parent 871c503bc9
commit a25b53bd44
2 changed files with 7 additions and 0 deletions

View file

@ -6,6 +6,7 @@ import com.google.gson.annotations.SerializedName;
import com.sparrowwallet.drongo.KeyPurpose; import com.sparrowwallet.drongo.KeyPurpose;
import com.sparrowwallet.drongo.Network; import com.sparrowwallet.drongo.Network;
import com.sparrowwallet.drongo.OutputDescriptor; import com.sparrowwallet.drongo.OutputDescriptor;
import com.sparrowwallet.drongo.protocol.ScriptType;
import com.sparrowwallet.drongo.wallet.BlockTransactionHash; import com.sparrowwallet.drongo.wallet.BlockTransactionHash;
import com.sparrowwallet.drongo.wallet.Wallet; import com.sparrowwallet.drongo.wallet.Wallet;
import com.sparrowwallet.drongo.wallet.WalletNode; import com.sparrowwallet.drongo.wallet.WalletNode;
@ -360,6 +361,10 @@ public class Bwt {
if(!useWallets) { if(!useWallets) {
Bwt.this.start(notifier); Bwt.this.start(notifier);
} else { } else {
if(AppServices.get().getOpenWallets().keySet().stream().anyMatch(wallet -> wallet.getScriptType() == ScriptType.P2TR)) {
throw new IllegalStateException("Taproot wallets are not yet supported when connecting to Bitcoin Core");
}
Bwt.this.start(AppServices.get().getOpenWallets().keySet(), notifier); Bwt.this.start(AppServices.get().getOpenWallets().keySet(), notifier);
} }

View file

@ -1105,6 +1105,8 @@ public class ElectrumServer {
Matcher walletLoadingMatcher = RPC_WALLET_LOADING_PATTERN.matcher(bwtStartException.getMessage()); Matcher walletLoadingMatcher = RPC_WALLET_LOADING_PATTERN.matcher(bwtStartException.getMessage());
if(bwtStartException.getMessage().contains("Wallet file not specified")) { if(bwtStartException.getMessage().contains("Wallet file not specified")) {
throw new ServerException("Bitcoin Core requires Multi-Wallet to be enabled in the Server Preferences"); throw new ServerException("Bitcoin Core requires Multi-Wallet to be enabled in the Server Preferences");
} else if(bwtStartException.getMessage().contains("Taproot wallets are not supported")) {
throw new ServerException(bwtStartException.getMessage());
} else if(walletLoadingMatcher.matches() && walletLoadingMatcher.group(1) != null) { } else if(walletLoadingMatcher.matches() && walletLoadingMatcher.group(1) != null) {
throw new ServerException(walletLoadingMatcher.group(1)); throw new ServerException(walletLoadingMatcher.group(1));
} }