What changed, and why it matters
This commit removes one of several ways Sparrow Wallet can broadcast Bitcoin transactions to the network. The deleted code supported broadcasting through Bisq's market service (both a clearnet website and a Tor onion address). It is a simple feature removal with no obvious security bug being fixed in the code itself.
Treat as a routine feature-removal commit. If the Bisq broadcast source was removed due to reliability, trust, or security concerns, users should ensure they are on a version that no longer offers it and consider reviewing remaining broadcast sources for equivalent risks. No urgent action is indicated by the diff alone.
Security signals we found
Removal of a third-party broadcast endpoint reduces trust/dependency on an external service
No patch of an obvious vulnerability in the deleted code
No advisory, CVE, or security-relevant commit message supplied
Evidence from the diff
The patch deletes the MEMPOOL_BISQ_SERVERS enum constant from BroadcastSource.java. This constant provided a transaction-broadcast endpoint for mainnet and testnet via markets.bisq.network and its Tor mirror. The removal eliminates this broadcast source from the wallet’s available broadcast options. The diff shows only deletion of this source; no vulnerability, input validation flaw, or exploit mechanism is visible in the removed code.
Changed components
src/main/java/com/sparrowwallet/sparrow/net/BroadcastSource.javaInspect captured patch +0 / −21
diff --git a/src/main/java/com/sparrowwallet/sparrow/net/BroadcastSource.java b/src/main/java/com/sparrowwallet/sparrow/net/BroadcastSource.java
index 773909c..756d1b6 100644
--- a/src/main/java/com/sparrowwallet/sparrow/net/BroadcastSource.java
+++ b/src/main/java/com/sparrowwallet/sparrow/net/BroadcastSource.java
@@ -86,27 +86,6 @@ public enum BroadcastSource {
throw new IllegalStateException("Cannot broadcast transaction to " + getName() + " on network " + Network.get());
}
}
- },
- MEMPOOL_BISQ_SERVICES("markets.bisq.network", "https://markets.bisq.network", "http://runbtcxzz4v2haszypwbrn2baqdo7tlwt6dw7g27cwwaootd4gktwayd.onion/") {
- public Sha256Hash broadcastTransaction(Transaction transaction) throws BroadcastException {
- String data = Utils.bytesToHex(transaction.bitcoinSerialize());
- return postTransactionData(data);
- }
-
- @Override
- public List<Network> getSupportedNetworks() {
- return List.of(Network.MAINNET);
- }
-
- protected URL getURL(HostAndPort proxy) throws MalformedURLException, URISyntaxException {
- if(Network.get() == Network.MAINNET) {
- return new URI(getBaseUrl(proxy) + "/api/tx").toURL();
- } else if(Network.get() == Network.TESTNET) {
- return new URI(getBaseUrl(proxy) + "/testnet/api/tx").toURL();
- } else {
- throw new IllegalStateException("Cannot broadcast transaction to " + getName() + " on network " + Network.get());
- }
- }
};
private final String name;
Why this scored 19/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.