blockfilter.cpp
1 // Copyright (c) 2019-present The Bitcoin Core developers 2 // Distributed under the MIT software license, see the accompanying 3 // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 5 #include <test/util/blockfilter.h> 6 7 #include <chainparams.h> 8 #include <node/blockstorage.h> 9 #include <primitives/block.h> 10 #include <undo.h> 11 #include <validation.h> 12 13 using node::BlockManager; 14 15 bool ComputeFilter(BlockFilterType filter_type, const CBlockIndex& block_index, BlockFilter& filter, const BlockManager& blockman) 16 { 17 LOCK(::cs_main); 18 19 CBlock block; 20 if (!blockman.ReadBlock(block, block_index)) { 21 return false; 22 } 23 24 CBlockUndo block_undo; 25 if (block_index.nHeight > 0 && !blockman.ReadBlockUndo(block_undo, block_index)) { 26 return false; 27 } 28 29 filter = BlockFilter(filter_type, block, block_undo); 30 return true; 31 }