diff --git a/src/main/java/com/sparrowwallet/sparrow/net/Bwt.java b/src/main/java/com/sparrowwallet/sparrow/net/Bwt.java index 0725a14ea..a259917af 100644 --- a/src/main/java/com/sparrowwallet/sparrow/net/Bwt.java +++ b/src/main/java/com/sparrowwallet/sparrow/net/Bwt.java @@ -6,6 +6,7 @@ import com.sparrowwallet.drongo.KeyPurpose; import com.sparrowwallet.drongo.Network; import com.sparrowwallet.drongo.OutputDescriptor; +import com.sparrowwallet.drongo.protocol.ScriptType; import com.sparrowwallet.drongo.wallet.BlockTransactionHash; import com.sparrowwallet.drongo.wallet.Wallet; import com.sparrowwallet.drongo.wallet.WalletNode; @@ -360,6 +361,10 @@ public void onReady() { if(!useWallets) { Bwt.this.start(notifier); } 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); } diff --git a/src/main/java/com/sparrowwallet/sparrow/net/ElectrumServer.java b/src/main/java/com/sparrowwallet/sparrow/net/ElectrumServer.java index 62e58645f..9532c1f60 100644 --- a/src/main/java/com/sparrowwallet/sparrow/net/ElectrumServer.java +++ b/src/main/java/com/sparrowwallet/sparrow/net/ElectrumServer.java @@ -1105,6 +1105,8 @@ protected FeeRatesUpdatedEvent call() throws ServerException { Matcher walletLoadingMatcher = RPC_WALLET_LOADING_PATTERN.matcher(bwtStartException.getMessage()); if(bwtStartException.getMessage().contains("Wallet file not specified")) { 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) { throw new ServerException(walletLoadingMatcher.group(1)); }