{-# OPTIONS_GHC -Wno-type-defaults #-}
module Test.Examples.Bip
( examples
) where
import Data.Aeson (eitherDecodeFileStrict)
import Data.Text (Text)
import Haskoin.Block (BlockHeight)
import Bitcoin.CompactFilter (filterHeaderFromHex)
import Paths_bitcoin_compact_filters (getDataFileName)
import Test.Util (Example (..), decodeFromHex,
parseHex)
examples :: IO [Example]
examples
= getDataFileName "examples/testnet-19.json"
>>= eitherDecodeFileStrict
>>= either error return . (>>= traverse interpretRawVector)
interpretRawVector
:: (BlockHeight, Text, Text, [Text], Text, Text, Text, Text)
-> Either String Example
interpretRawVector (n, h, b, ss, ph, f, fh, _)
= Example n <$> decodeFromHex h
<*> decodeFromHex b
<*> traverse parseHex ss
<*> decodeFromHex f
<*> filterHeaderFromHex ph
<*> filterHeaderFromHex fh