Raven Core  3.0.0
P2P Digital Currency
checkpoints.cpp
Go to the documentation of this file.
1 // Copyright (c) 2009-2016 The Bitcoin Core developers
2 // Copyright (c) 2017-2019 The Raven Core developers
3 // Distributed under the MIT software license, see the accompanying
4 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
5 
6 #include "checkpoints.h"
7 
8 #include "chain.h"
9 #include "chainparams.h"
10 #include "reverse_iterator.h"
11 #include "validation.h"
12 #include "uint256.h"
13 
14 #include <stdint.h>
15 
16 
17 namespace Checkpoints {
18 
20  {
21  const MapCheckpoints& checkpoints = data.mapCheckpoints;
22 
23  for (const MapCheckpoints::value_type& i : reverse_iterate(checkpoints))
24  {
25  const uint256& hash = i.second;
26  BlockMap::const_iterator t = mapBlockIndex.find(hash);
27  if (t != mapBlockIndex.end())
28  return t->second;
29  }
30  return nullptr;
31  }
32 
33 } // namespace Checkpoints
std::map< int, uint256 > MapCheckpoints
Definition: chainparams.h:29
reverse_range< T > reverse_iterate(T &x)
Block-chain checkpoints are compiled-in sanity checks.
Definition: checkpoints.cpp:17
CBlockIndex * GetLastCheckpoint(const CCheckpointData &data)
Returns last CBlockIndex* in mapBlockIndex that is a checkpoint.
Definition: checkpoints.cpp:19
256-bit opaque blob.
Definition: uint256.h:123
MapCheckpoints mapCheckpoints
Definition: chainparams.h:32
The block chain is a tree shaped structure starting with the genesis block at the root...
Definition: chain.h:172
BlockMap mapBlockIndex
Definition: validation.cpp:74