module Network.Haskoin.Node.Checkpoints
( checkpointMap
, checkpointList
, verifyCheckpoint
) where
import qualified Data.IntMap.Strict as M (IntMap, fromList, lookup)
import Network.Haskoin.Block
import Network.Haskoin.Constants
checkpointMap :: M.IntMap BlockHash
checkpointMap = M.fromList checkpointList
checkpointList :: [(Int, BlockHash)]
checkpointList = checkpoints
verifyCheckpoint :: Int -> BlockHash -> Bool
verifyCheckpoint height hash = case M.lookup height checkpointMap of
Just value -> hash == value
Nothing -> True