1 // Copyright (c) 2009-2018 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 <checkpoints.h> 6 7 #include <chain.h> 8 #include <chainparams.h> 9 #include <reverse_iterator.h> 10 #include <validation.h> 11 12 #include <stdint.h> 13 14 15 namespace Checkpoints { 16 GetLastCheckpoint(const CCheckpointData & data)17 CBlockIndex* GetLastCheckpoint(const CCheckpointData& data) 18 { 19 const MapCheckpoints& checkpoints = data.mapCheckpoints; 20 21 for (const MapCheckpoints::value_type& i : reverse_iterate(checkpoints)) 22 { 23 const uint256& hash = i.second; 24 CBlockIndex* pindex = LookupBlockIndex(hash); 25 if (pindex) { 26 return pindex; 27 } 28 } 29 return nullptr; 30 } 31 32 } // namespace Checkpoints 33