haskoin-store-data 0.34.0 → 0.34.1
raw patch · 3 files changed
+61/−9 lines, 3 filesdep ~haskoin-store-data
Dependency ranges changed: haskoin-store-data
Files
haskoin-store-data.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 673e35a73b453ce8509ef026e9e11a225eca239ddd5cfc6301f96b21b702b6dc+-- hash: 2cebcf80600babffafe1b3f7d67748d1c9968a0f52836452b1c2d89f2dc250f3 name: haskoin-store-data-version: 0.34.0+version: 0.34.1 synopsis: Data for Haskoin Store description: Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme> category: Bitcoin, Finance, Network@@ -74,7 +74,7 @@ , deepseq >=1.4.4.0 , hashable >=1.3.0.0 , haskoin-core >=0.13.6- , haskoin-store-data ==0.34.0+ , haskoin-store-data ==0.34.1 , hspec >=2.7.1 , http-client >=0.6.4.1 , http-types >=0.12.3
src/Haskoin/Store/Data.hs view
@@ -76,6 +76,7 @@ , BlockHealth(..) , TimeHealth(..) , CountHealth(..)+ , MaxHealth(..) , HealthCheck(..) , Event(..) , Except(..)@@ -1236,11 +1237,50 @@ countHealthMin <- o .: "min" return CountHealth {..} +data MaxHealth =+ MaxHealth+ { maxHealthNum :: !Int+ , maxHealthMax :: !Int+ }+ deriving (Show, Eq, Generic, NFData)++instance Serialize MaxHealth where+ put h@MaxHealth {..} = do+ put $ isOK h+ put maxHealthNum+ put maxHealthMax+ get = do+ k <- get+ maxHealthNum <- get+ maxHealthMax <- get+ let h = MaxHealth {..}+ guard (k == isOK h)+ return h++instance Healthy MaxHealth where+ isOK MaxHealth {..} = maxHealthNum <= maxHealthMax++instance ToJSON MaxHealth where+ toJSON h@MaxHealth {..} =+ object+ [ "count" .= maxHealthNum+ , "max" .= maxHealthMax+ , "ok" .= isOK h+ ]++instance FromJSON MaxHealth where+ parseJSON =+ A.withObject "MaxHealth" $ \o -> do+ maxHealthNum <- o .: "count"+ maxHealthMax <- o .: "max"+ return MaxHealth {..}+ data HealthCheck = HealthCheck { healthBlocks :: !BlockHealth , healthLastBlock :: !TimeHealth , healthLastTx :: !TimeHealth+ , healthPendingTxs :: !MaxHealth , healthPeers :: !CountHealth , healthNetwork :: !String , healthVersion :: !String@@ -1253,6 +1293,7 @@ put healthBlocks put healthLastBlock put healthLastTx+ put healthPendingTxs put healthPeers put healthNetwork put healthVersion@@ -1261,6 +1302,7 @@ healthBlocks <- get healthLastBlock <- get healthLastTx <- get+ healthPendingTxs <- get healthPeers <- get healthNetwork <- get healthVersion <- get@@ -1273,6 +1315,7 @@ isOK healthBlocks && isOK healthLastBlock && isOK healthLastTx &&+ isOK healthPendingTxs && isOK healthPeers instance ToJSON HealthCheck where@@ -1281,6 +1324,7 @@ [ "blocks" .= healthBlocks , "last-block" .= healthLastBlock , "last-tx" .= healthLastTx+ , "pending-txs" .= healthPendingTxs , "peers" .= healthPeers , "net" .= healthNetwork , "version" .= healthVersion@@ -1290,12 +1334,13 @@ instance FromJSON HealthCheck where parseJSON = A.withObject "HealthCheck" $ \o -> do- healthBlocks <- o .: "blocks"- healthLastBlock <- o .: "last-block"- healthLastTx <- o .: "last-tx"- healthPeers <- o .: "peers"- healthNetwork <- o .: "net"- healthVersion <- o .: "version"+ healthBlocks <- o .: "blocks"+ healthLastBlock <- o .: "last-block"+ healthLastTx <- o .: "last-tx"+ healthPendingTxs <- o .: "pending-txs"+ healthPeers <- o .: "peers"+ healthNetwork <- o .: "net"+ healthVersion <- o .: "version" return HealthCheck {..} data Event
test/Haskoin/Store/DataSpec.hs view
@@ -218,10 +218,17 @@ <$> arbitrary <*> arbitrary +instance Arbitrary MaxHealth where+ arbitrary =+ MaxHealth+ <$> arbitrary+ <*> arbitrary+ instance Arbitrary HealthCheck where arbitrary = HealthCheck <$> arbitrary+ <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary