dash/src
Konstantin Akimov d914bf2b6e
feat: add bloom filter for Asset Lock transactions (#5521)
## Issue being fixed or feature implemented
There's one type of output that potentially can be useful for bloom
filter.
It's follow-up for TODO for dashpay/dash#4857.

Asset  Lock transactions have:
 - standard inputs (covered by regular bloom filter implementation)
 - standard outputs (covered by regular bloom filter implementation)
- special outputs that have public key to proof owing this credits on
platform and claiming it.

Asset Unlock transactions have:
 - no inputs (no need bloom)
 - standard outputs (covered by regular bloom filter implementation)

So far as there's only one special case, let's have this data in the
bloom filter because it can potentially help to show information such as
"Deposit to platform" on mobile clients.

## What was done?
 - added special case for Asset Lock transactions for bloom filter

## How Has This Been Tested?
Run unit/functional tests. Doesn't actually tested how bloom filter
works.


## Breaking Changes
N/A

## Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [ ] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2023-08-02 10:08:39 -05:00
..
bench partial bitcoin#21843: enable GetAddr, GetAddresses, and getnodeaddresses by network 2023-07-24 20:45:49 +03:00
bls feat: mnlistdiff v20 CL sig quorums (#5377) 2023-07-10 11:23:09 -05:00
coinjoin fix: Process dsq messages even when CJ is disabled locally or disk space is low (#5498) 2023-07-24 10:05:27 -05:00
compat merge bitcoin#22930: remove glibc back compat 2023-08-01 12:07:31 -05:00
config
consensus feat: v20 evonodes payment adjustment (#5493) 2023-07-31 23:52:48 -05:00
crc32c
crypto
dashbls build: stop tracking cmake dependency relic_conf.h.in 2023-06-28 23:44:03 +03:00
evo feat: v20 evonodes payment adjustment (#5493) 2023-07-31 23:52:48 -05:00
governance fix: resolve cppcheck shadow variable warning 2023-07-28 00:18:27 -05:00
immer build: fix gitian builds 2023-01-03 14:51:16 +03:00
index merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
interfaces Merge #18278: interfaces: Describe and follow some code conventions 2023-05-31 12:01:04 -05:00
leveldb Merge bitcoin/bitcoin#25739: Update leveldb subtree (#5005) 2022-09-23 18:43:39 +04:00
llmq feat: v20 evonodes payment adjustment (#5493) 2023-07-31 23:52:48 -05:00
logging Merge #18088: build: ensure we aren't using GNU extensions 2023-03-03 23:07:16 +05:30
masternode merge bitcoin#21387: Refactor sock to add I2P fuzz and unit tests 2023-07-24 20:45:49 +03:00
node Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
policy Merge #11413: [wallet] [rpc] sendtoaddress/sendmany: Add explicit feerate option 2023-07-21 16:03:00 -05:00
primitives feat!: add an implementation of DIP 0027 Credit Asset Locks (#5026) 2023-07-24 11:39:38 -05:00
qt (Partial) Merge #20566: refactor: Use C++17 std::array where possible 2023-08-01 12:24:36 -05:00
rpc Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
script Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
secp256k1
support fix: Fix missing includes (#5295) 2023-04-05 21:20:41 -05:00
test Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
univalue
util Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
wallet Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
zmq merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
.clang-format
addrdb.cpp merge bitcoin#19314: Use uint16_t instead of unsigned short 2022-10-20 16:08:45 -05:00
addrdb.h
addressindex.h Merge #16908: txmempool: Make entry time type-safe (std::chrono) 2022-10-03 16:08:31 -04:00
addrman.cpp merge bitcoin#22112: Force port 0 in I2P 2023-07-24 20:45:49 +03:00
addrman.h merge bitcoin#22112: Force port 0 in I2P 2023-07-24 20:45:49 +03:00
amount.h
arith_uint256.cpp
arith_uint256.h
attributes.h
banman.cpp feat(rpc): Added RPC cleardiscouraged (#5273) 2023-03-29 11:23:45 -05:00
banman.h Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
base58.cpp Merge #19706: refactor: make EncodeBase58{Check} consume Spans 2023-04-19 01:12:28 +03:00
base58.h Merge #19706: refactor: make EncodeBase58{Check} consume Spans 2023-04-19 01:12:28 +03:00
batchedlogger.cpp chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
batchedlogger.h chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
bech32.cpp
bech32.h
bip39_english.h
bip39.cpp feat(wallet): make mnemonic bits tweakable, default to 128 bit / 12 words (#5457) 2023-06-28 19:01:24 +03:00
bip39.h fix(wallet): truncate mnemonic passphrase instead of crashing 2023-06-12 10:56:10 +03:00
bitcoin-cli.cpp Merge #16680: Preparations for more testchains 2023-04-25 23:41:20 -05:00
bitcoin-tx.cpp Merge #20468: build: warn when generating man pages for binaries built from a dirty branch 2023-08-01 12:21:16 -05:00
bitcoin-wallet.cpp Merge #20468: build: warn when generating man pages for binaries built from a dirty branch 2023-08-01 12:21:16 -05:00
bitcoind.cpp Merge #20468: build: warn when generating man pages for binaries built from a dirty branch 2023-08-01 12:21:16 -05:00
blockencodings.cpp Merge #15921: validation: Tidy up ValidationState interface 2023-04-17 10:42:25 -05:00
blockencodings.h
blockfilter.cpp Merge bitcoin/bitcoin#23760: util: move MapIntoRange() for reuse in fuzz tests 2023-04-17 11:17:34 -05:00
blockfilter.h
bloom.cpp feat: add bloom filter for Asset Lock transactions (#5521) 2023-08-02 10:08:39 -05:00
bloom.h feat: add bloom filter for Asset Lock transactions (#5521) 2023-08-02 10:08:39 -05:00
cachemap.h chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
cachemultimap.h chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
chain.cpp
chain.h merge bitcoin#19806: UTXO snapshot activation 2023-06-06 22:38:56 +05:30
chainparams.cpp feat: v20 evonodes payment adjustment (#5493) 2023-07-31 23:52:48 -05:00
chainparams.h merge bitcoin#22112: Force port 0 in I2P 2023-07-24 20:45:49 +03:00
chainparamsbase.cpp Merge #16680: Preparations for more testchains 2023-04-25 23:41:20 -05:00
chainparamsbase.h merge bitcoin#19991: Use alternative port for incoming Tor connections 2023-04-17 08:30:49 +00:00
chainparamsseeds.h
checkqueue.h
clientversion.cpp
clientversion.h
coins.cpp merge bitcoin#19806: UTXO snapshot activation 2023-06-06 22:38:56 +05:30
coins.h merge bitcoin#21584: Fix assumeutxo crash due to invalid base_blockhash 2023-06-06 22:38:56 +05:30
compat.h Merge #20221: net: compat.h related cleanup 2023-08-01 12:24:36 -05:00
compressor.cpp Merge bitcoin/bitcoin#18847: compressor: use a prevector in CompressScript serialization [ZAP1] 2023-04-14 23:34:13 -05:00
compressor.h Merge bitcoin/bitcoin#18847: compressor: use a prevector in CompressScript serialization [ZAP1] 2023-04-14 23:34:13 -05:00
context.h trivial: consistently use context as the argument name for CoreContext 2023-07-28 00:18:27 -05:00
core_io.h merge bitcoin#15508: Refactor analyzepsbt for use outside RPC code 2022-09-24 08:51:04 +05:30
core_memusage.h
core_read.cpp Merge #19851: refactor: Extract ParseOpCode from ParseScript 2023-07-25 10:45:09 -05:00
core_write.cpp feat!: add an implementation of DIP 0027 Credit Asset Locks (#5026) 2023-07-24 11:39:38 -05:00
ctpl_stl.h
cuckoocache.h
cxxtimer.hpp test/refactor: upgrade to cppcheck 2.9 and fix warnings (#5049) 2022-10-18 13:24:00 +03:00
dash-cli-res.rc
dash-tx-res.rc
dash-wallet-res.rc
dashd-res.rc
dbwrapper.cpp Merge bitcoin/bitcoin#23214: Replace stoul with ToIntegral in dbwrapper 2023-04-17 11:17:34 -05:00
dbwrapper.h fix: CDBTransaction::GetMemoryUsage() logging 2023-07-17 01:00:48 +03:00
dsnotificationinterface.cpp refactor: using reference instead reference to unique_ptr with object (#5381) 2023-06-04 15:26:23 -05:00
dsnotificationinterface.h refactor: using reference instead reference to unique_ptr with object (#5381) 2023-06-04 15:26:23 -05:00
dummywallet.cpp Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
flat-database.h chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
flatfile.cpp
flatfile.h Merge #18087: Get rid of VARINT default argument 2023-05-24 12:43:57 -05:00
fs.cpp Merge #19299: refactor: Remove unused vars, Add missing includes 2023-01-22 00:27:52 -06:00
fs.h
hash.cpp
hash.h
hdchain.cpp feat(wallet): make mnemonic bits tweakable, default to 128 bit / 12 words (#5457) 2023-06-28 19:01:24 +03:00
hdchain.h feat(wallet): make mnemonic bits tweakable, default to 128 bit / 12 words (#5457) 2023-06-28 19:01:24 +03:00
httprpc.cpp merge bitcoin#25057: replace remaining boost::split with SplitString 2023-01-19 03:49:04 +00:00
httprpc.h refactor: replace util::Ref with CoreContext (std::variant) (#5055) 2022-10-22 12:18:03 -05:00
httpserver.cpp Merge #20221: net: compat.h related cleanup 2023-08-01 12:24:36 -05:00
httpserver.h
i2p.cpp merge bitcoin#22112: Force port 0 in I2P 2023-07-24 20:45:49 +03:00
i2p.h merge bitcoin#21387: Refactor sock to add I2P fuzz and unit tests 2023-07-24 20:45:49 +03:00
indirectmap.h
init.cpp merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
init.h refactor: replace util::Ref with CoreContext (std::variant) (#5055) 2022-10-22 12:18:03 -05:00
key_io.cpp Merge #15452: Replace CScriptID and CKeyID in CTxDestination with dedicated types 2023-02-10 23:34:57 +03:00
key_io.h
key.cpp
key.h partial Merge #17212: refactor: Remove unused CExt{Pub,}Key (de)serialization methods 2023-04-17 10:42:25 -05:00
limitedmap.h chore: Drop unused unordered_limitedmap::insert_or_update() 2023-07-17 01:00:48 +03:00
logging.cpp merge bitcoin#20685: Add I2P support using I2P SAM 2023-07-24 20:45:49 +03:00
logging.h merge bitcoin#20685: Add I2P support using I2P SAM 2023-07-24 20:45:49 +03:00
Makefile.am merge bitcoin#22930: remove glibc back compat 2023-08-01 12:07:31 -05:00
Makefile.bench.include Merge #18397: build: Fix libevent linking for bench_bitcoin binary 2023-05-31 12:01:04 -05:00
Makefile.crc32c.include
Makefile.leveldb.include
Makefile.qt_locale.include
Makefile.qt.include merge bitcoin#17513: Nuke some circular dependencies 2023-04-15 12:12:30 -05:00
Makefile.qttest.include partial bitcoin#19077: Add sqlite as an alternative wallet database and use it for new descriptor wallets 2023-02-07 10:53:33 -06:00
Makefile.test_fuzz.include merge bitcoin#20995: Avoid initializing version to less than MIN_PEER_PROTO_VERSION 2023-07-24 20:45:49 +03:00
Makefile.test_util.include Merge #17593: test: move more utility functions into test utility library 2023-04-25 23:14:25 +03:00
Makefile.test.include fix!: making MnEhfTx to comply DIP-0023 (#5505) 2023-07-25 21:46:55 +03:00
Makefile.univalue.include
mapport.cpp
mapport.h
memusage.h
merkleblock.cpp feat!: add an implementation of DIP 0027 Credit Asset Locks (#5026) 2023-07-24 11:39:38 -05:00
merkleblock.h
messagesigner.cpp chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
messagesigner.h chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
miner.cpp refactor: improved initialization of members of LLMQContext and related changes (#5150) 2023-07-29 20:23:02 -05:00
miner.h refactor: improved initialization of members of LLMQContext and related changes (#5150) 2023-07-29 20:23:02 -05:00
net_permissions.cpp merge bitcoin#18991: Cache responses to GETADDR to prevent topology leaks 2023-06-05 10:11:03 -05:00
net_permissions.h merge bitcoin#18991: Cache responses to GETADDR to prevent topology leaks 2023-06-05 10:11:03 -05:00
net_processing.cpp Merge #19832: p2p: Put disconnecting logs into BCLog::NET category 2023-08-01 12:24:36 -05:00
net_processing.h refactor: using reference instead reference to unique_ptr with object (#5381) 2023-06-04 15:26:23 -05:00
net_types.h
net.cpp Merge #20432: net: Treat raw message bytes as uint8_t 2023-07-25 10:45:09 -05:00
net.h Merge #20221: net: compat.h related cleanup 2023-08-01 12:24:36 -05:00
netaddress.cpp merge bitcoin#20685: Add I2P support using I2P SAM 2023-07-24 20:45:49 +03:00
netaddress.h merge bitcoin#22112: Force port 0 in I2P 2023-07-24 20:45:49 +03:00
netbase.cpp merge bitcoin#21387: Refactor sock to add I2P fuzz and unit tests 2023-07-24 20:45:49 +03:00
netbase.h merge bitcoin#21387: Refactor sock to add I2P fuzz and unit tests 2023-07-24 20:45:49 +03:00
netfulfilledman.cpp chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
netfulfilledman.h Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
netmessagemaker.h
noui.cpp
noui.h
outputtype.cpp Merge #18067: wallet: Improve LegacyScriptPubKeyMan::CanProvide script recognition 2023-03-19 11:08:31 -05:00
outputtype.h Merge #18034: Get the OutputType for a descriptor 2023-05-24 12:43:57 -05:00
pow.cpp fix: respect fPowNoRetargeting for post-btc algos 2023-06-12 10:56:10 +03:00
pow.h
prevector.h Merge #18088: build: ensure we aren't using GNU extensions 2023-03-03 23:07:16 +05:30
protocol.cpp Merge #20606: Remove unused bits from service flags enum 2023-08-01 12:21:16 -05:00
protocol.h Merge #20606: Remove unused bits from service flags enum 2023-08-01 12:21:16 -05:00
psbt.cpp partial Merge #18224: Make AnalyzePSBT next role calculation simple, correct 2023-05-31 18:14:23 -05:00
psbt.h Merge #17524: psbt: handle unspendable psbts 2023-02-04 10:02:37 -06:00
pubkey.cpp
pubkey.h Merge #19237: wallet: Check size after unserializing a pubkey 2023-04-15 12:14:35 -05:00
random.cpp merge bitcoin#20429: replace (sizeof(a)/sizeof(a[0])) with C++17 std::size 2022-11-01 00:28:53 -05:00
random.h
randomenv.cpp merge bitcoin#20602: Allow use of C++14 chrono literals 2022-10-20 16:08:45 -05:00
randomenv.h
rest.cpp merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
reverse_iterator.h
saltedhasher.cpp chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
saltedhasher.h chore: run copyright_header.py update 2023-01-13 00:49:04 +03:00
scheduler.cpp Merge bitcoin/bitcoin#21948: test: Fix off-by-one in mockscheduler test RPC 2023-07-25 10:45:09 -05:00
scheduler.h Merge bitcoin/bitcoin#24069: refactor: replace RecursiveMutex m_cs_callbacks_pending with Mutex (and rename) 2023-05-31 10:52:02 -05:00
serialize.h Merge #18087: Get rid of VARINT default argument 2023-05-24 12:43:57 -05:00
shutdown.cpp merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
shutdown.h merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
span.h Merge #19508: Work around memory-aliasing in descriptor ParsePubkey 2023-01-23 12:22:31 -06:00
spentindex.h
spork.cpp merge bitcoin#19791: Move Misbehaving() to PeerManager 2023-05-11 09:19:47 -05:00
spork.h merge bitcoin#19791: Move Misbehaving() to PeerManager 2023-05-11 09:19:47 -05:00
stacktraces.cpp ci: build TSan with clang 15 and add -Werror=thread-safety, fix-up stacktraces (#5375) 2023-05-26 13:49:29 -05:00
stacktraces.h
statsd_client.cpp refactor: resolve implicit-const-int-float-conversion warning in statsd_client 2022-10-21 21:51:35 +05:30
statsd_client.h chore: add missing copyrights via copyright_header.py insert 2023-01-13 00:49:04 +03:00
streams.h
sync.cpp Merge #21010: refactor: remove straggling boost::mutex usage 2023-07-25 10:45:09 -05:00
sync.h Merge #19337: sync: detect double lock from the same thread 2023-07-25 10:45:09 -05:00
threadinterrupt.cpp
threadinterrupt.h
threadsafety.h
timedata.cpp Merge #20141: Avoid the use of abs64 in timedata 2023-05-31 10:52:02 -05:00
timedata.h
tinyformat.h Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
torcontrol.cpp Merge #20221: net: compat.h related cleanup 2023-08-01 12:24:36 -05:00
torcontrol.h merge bitcoin#19991: Use alternative port for incoming Tor connections 2023-04-17 08:30:49 +00:00
txdb.cpp fix: implement missing logic for additional indexes, fix bugs and logging (#5477) 2023-07-24 20:54:24 +03:00
txdb.h fix: implement missing logic for additional indexes, fix bugs and logging (#5477) 2023-07-24 20:54:24 +03:00
txmempool.cpp fix!: making MnEhfTx to comply DIP-0023 (#5505) 2023-07-25 21:46:55 +03:00
txmempool.h Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
ui_interface.cpp Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
ui_interface.h Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
uint256.cpp uint256: add definition for constant 'ZERO' 2023-04-15 12:12:30 -05:00
uint256.h uint256: add definition for constant 'ZERO' 2023-04-15 12:12:30 -05:00
undo.h
unordered_lru_cache.h fix: off-by-1 in unordered_lru_cache 2023-06-12 10:56:10 +03:00
validation.cpp Merge #20530: lint, refactor: Update cppcheck linter to c++17 and improve explicit usage 2023-08-01 12:24:36 -05:00
validation.h merge bitcoin#21575: Create blockstorage module 2023-07-28 00:18:27 -05:00
validationinterface.cpp Merge #17399: validation: Templatize ValidationState instead of subclassing 2023-05-24 12:43:57 -05:00
validationinterface.h Merge #17891: scripted-diff: Replace CCriticalSection with RecursiveMutex 2023-05-24 12:43:57 -05:00
version.h feat: mnlistdiff v20 CL sig quorums (#5377) 2023-07-10 11:23:09 -05:00
versionbits.cpp fix: speed up GetStateFor (#5100) 2022-12-13 11:42:52 -06:00
versionbits.h merge bitcoin#21055: Prune remaining g_chainman usage in validation functions 2023-04-04 12:41:45 -05:00
versionbitsinfo.cpp feat: v20 evonodes payment adjustment (#5493) 2023-07-31 23:52:48 -05:00
versionbitsinfo.h refactor: cleanup CChainParams unused data and functions (#5474) 2023-07-04 12:25:36 -05:00
walletinitinterface.h
warnings.cpp merge bitcoin#19905: Remove dead CheckForkWarningConditionsOnNewFork 2023-04-04 12:41:45 -05:00
warnings.h merge bitcoin#19905: Remove dead CheckForkWarningConditionsOnNewFork 2023-04-04 12:41:45 -05:00