diff --git a/core/src/main/java/org/bitcoinj/core/BloomFilter.java b/core/src/main/java/org/bitcoinj/core/BloomFilter.java index 8ccd6e9c..52bfc1db 100644 --- a/core/src/main/java/org/bitcoinj/core/BloomFilter.java +++ b/core/src/main/java/org/bitcoinj/core/BloomFilter.java @@ -247,6 +247,11 @@ public class BloomFilter extends Message { insert(key.getPubKeyHash()); } + /** Inserts the given transaction outpoint. */ + public synchronized void insert(TransactionOutPoint outpoint) { + insert(outpoint.unsafeBitcoinSerialize()); + } + /** * Sets this filter to match all objects. A Bloom filter which matches everything may seem pointless, however, * it is useful in order to reduce steady state bandwidth usage when you want full blocks. Instead of receiving @@ -339,7 +344,7 @@ public class BloomFilter extends Message { if (contains(chunk.data)) { boolean isSendingToPubKeys = ScriptPattern.isPayToPubKey(script) || ScriptPattern.isSentToMultisig(script); if (flag == BloomUpdate.UPDATE_ALL || (flag == BloomUpdate.UPDATE_P2PUBKEY_ONLY && isSendingToPubKeys)) - insert(output.getOutPointFor().unsafeBitcoinSerialize()); + insert(output.getOutPointFor()); found = true; } } diff --git a/core/src/main/java/org/bitcoinj/wallet/Wallet.java b/core/src/main/java/org/bitcoinj/wallet/Wallet.java index 4de7d244..50a7c73f 100644 --- a/core/src/main/java/org/bitcoinj/wallet/Wallet.java +++ b/core/src/main/java/org/bitcoinj/wallet/Wallet.java @@ -4649,7 +4649,7 @@ public class Wallet extends BaseTaggableObject } } for (TransactionOutPoint point : bloomOutPoints) - filter.insert(point.unsafeBitcoinSerialize()); + filter.insert(point); return filter; } finally { endBloomFilterCalculation();