packages feed

haskoin-store-data 0.52.6 → 0.52.9

raw patch · 4 files changed

+106/−2 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Haskoin.Store.Data: BinfoBlocks :: [BinfoBlockInfo] -> BinfoBlocks
+ Haskoin.Store.Data: BinfoHeader :: !BlockHash -> !Timestamp -> !Word32 -> !BlockHeight -> ![BinfoTxId] -> BinfoHeader
+ Haskoin.Store.Data: BinfoMempool :: [BinfoTx] -> BinfoMempool
+ Haskoin.Store.Data: [binfoBlocks] :: BinfoBlocks -> [BinfoBlockInfo]
+ Haskoin.Store.Data: [binfoHeaderHash] :: BinfoHeader -> !BlockHash
+ Haskoin.Store.Data: [binfoHeaderHeight] :: BinfoHeader -> !BlockHeight
+ Haskoin.Store.Data: [binfoHeaderIndex] :: BinfoHeader -> !Word32
+ Haskoin.Store.Data: [binfoHeaderTime] :: BinfoHeader -> !Timestamp
+ Haskoin.Store.Data: [binfoTxIndices] :: BinfoHeader -> ![BinfoTxId]
+ Haskoin.Store.Data: [getBinfoMempool] :: BinfoMempool -> [BinfoTx]
+ Haskoin.Store.Data: binfoMempoolParseJSON :: Network -> Value -> Parser BinfoMempool
+ Haskoin.Store.Data: binfoMempoolToEncoding :: Network -> BinfoMempool -> Encoding
+ Haskoin.Store.Data: binfoMempoolToJSON :: Network -> BinfoMempool -> Value
+ Haskoin.Store.Data: data BinfoHeader
+ Haskoin.Store.Data: instance Control.DeepSeq.NFData Haskoin.Store.Data.BinfoBlocks
+ Haskoin.Store.Data: instance Control.DeepSeq.NFData Haskoin.Store.Data.BinfoHeader
+ Haskoin.Store.Data: instance Control.DeepSeq.NFData Haskoin.Store.Data.BinfoMempool
+ Haskoin.Store.Data: instance Data.Aeson.Types.FromJSON.FromJSON Haskoin.Store.Data.BinfoBlocks
+ Haskoin.Store.Data: instance Data.Aeson.Types.FromJSON.FromJSON Haskoin.Store.Data.BinfoHeader
+ Haskoin.Store.Data: instance Data.Aeson.Types.ToJSON.ToJSON Haskoin.Store.Data.BinfoBlocks
+ Haskoin.Store.Data: instance Data.Aeson.Types.ToJSON.ToJSON Haskoin.Store.Data.BinfoHeader
+ Haskoin.Store.Data: instance GHC.Classes.Eq Haskoin.Store.Data.BinfoBlocks
+ Haskoin.Store.Data: instance GHC.Classes.Eq Haskoin.Store.Data.BinfoHeader
+ Haskoin.Store.Data: instance GHC.Classes.Eq Haskoin.Store.Data.BinfoMempool
+ Haskoin.Store.Data: instance GHC.Generics.Generic Haskoin.Store.Data.BinfoBlocks
+ Haskoin.Store.Data: instance GHC.Generics.Generic Haskoin.Store.Data.BinfoHeader
+ Haskoin.Store.Data: instance GHC.Generics.Generic Haskoin.Store.Data.BinfoMempool
+ Haskoin.Store.Data: instance GHC.Show.Show Haskoin.Store.Data.BinfoBlocks
+ Haskoin.Store.Data: instance GHC.Show.Show Haskoin.Store.Data.BinfoHeader
+ Haskoin.Store.Data: instance GHC.Show.Show Haskoin.Store.Data.BinfoMempool
+ Haskoin.Store.Data: newtype BinfoBlocks
+ Haskoin.Store.Data: newtype BinfoMempool
+ Haskoin.Store.Data: toBinfoBlockInfo :: BlockData -> BinfoBlockInfo

Files

CHANGELOG.md view
@@ -4,6 +4,20 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) +## 0.52.9+### Added+- Add Blockchain.info latest block endpoint.+- Add Blockchain.info unconfirmed-transactions endpoint.+- Add Blockchain.info blocks for one day endpoint.++## 0.52.8+### Fixed+- Fix special case for zero limit.++## 0.52.7+### Fixed+- Fix cache bug when too many transactions in mempool.+ ## 0.52.6 ### Changed - Use rationals for Blockchain.info export-history endpoint arithmetics.
haskoin-store-data.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 9e77d20377455e8ad001eb7c7c5a39002f65f14e46954075ce6dba24f521cd96+-- hash: 4068f11ea0427ac6c0846205b45263f5142f7cd3f8055993078495e8c1bd16e1  name:           haskoin-store-data-version:        0.52.6+version:        0.52.9 synopsis:       Data for Haskoin Store description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme> category:       Bitcoin, Finance, Network
src/Haskoin/Store/Data.hs view
@@ -144,12 +144,19 @@     , binfoXPubPathParseJSON     , BinfoInfo(..)     , BinfoBlockInfo(..)+    , toBinfoBlockInfo     , BinfoSymbol(..)     , BinfoTicker(..)     , BinfoRate(..)     , BinfoHistory(..)     , toBinfoHistory     , BinfoDate(..)+    , BinfoHeader(..)+    , BinfoMempool(..)+    , binfoMempoolToJSON+    , binfoMempoolToEncoding+    , binfoMempoolParseJSON+    , BinfoBlocks(..)     )  where@@ -3036,6 +3043,15 @@         getBinfoBlockInfoIndex <- o .: "block_index"         return BinfoBlockInfo {..} +toBinfoBlockInfo :: BlockData -> BinfoBlockInfo+toBinfoBlockInfo BlockData {..} =+    BinfoBlockInfo+    { getBinfoBlockInfoHash = headerHash blockDataHeader+    , getBinfoBlockInfoHeight = blockDataHeight+    , getBinfoBlockInfoTime = blockTimestamp blockDataHeader+    , getBinfoBlockInfoIndex = blockDataHeight+    }+ data BinfoRate     = BinfoRate       { binfoRateTime  :: !Word64@@ -3468,3 +3484,56 @@     concatMap (T.splitOn ",") (T.splitOn "|" s)   where     f x = BinfoAddr <$> textToAddr net x <|> BinfoXpub <$> xPubImport net x++data BinfoHeader+    = BinfoHeader+      { binfoHeaderHash   :: !BlockHash+      , binfoHeaderTime   :: !Timestamp+      , binfoHeaderIndex  :: !Word32+      , binfoHeaderHeight :: !BlockHeight+      , binfoTxIndices    :: ![BinfoTxId]+      } deriving (Eq, Show, Generic, NFData)++instance ToJSON BinfoHeader where+    toJSON BinfoHeader{..} =+        A.object+        [ "hash" .= binfoHeaderHash+        , "time" .= binfoHeaderTime+        , "block_index" .= binfoHeaderIndex+        , "height" .= binfoHeaderHeight+        , "txIndexes" .= binfoTxIndices+        ]++instance FromJSON BinfoHeader where+    parseJSON = A.withObject "header" $ \o -> do+        binfoHeaderHash <- o .: "hash"+        binfoHeaderTime <- o .: "time"+        binfoHeaderIndex <- o .: "block_index"+        binfoHeaderHeight <-  o .: "height"+        binfoTxIndices <- o .: "txIndexes"+        return BinfoHeader{..}++newtype BinfoMempool = BinfoMempool { getBinfoMempool :: [BinfoTx] }+    deriving (Eq, Show, Generic, NFData)++binfoMempoolToJSON :: Network -> BinfoMempool -> Value+binfoMempoolToJSON net (BinfoMempool txs) =+    A.object ["txs" .= map (binfoTxToJSON net) txs]++binfoMempoolToEncoding :: Network -> BinfoMempool -> Encoding+binfoMempoolToEncoding net (BinfoMempool txs) =+    AE.pairs $ AE.pair "txs" (AE.list (binfoTxToEncoding net) txs)++binfoMempoolParseJSON :: Network -> Value -> Parser BinfoMempool+binfoMempoolParseJSON net =+    A.withObject "mempool" $ \o ->+    BinfoMempool <$> (mapM (binfoTxParseJSON net) =<< o .: "txs")++newtype BinfoBlocks = BinfoBlocks { binfoBlocks :: [BinfoBlockInfo] }+    deriving (Eq, Show, Generic, NFData)++instance ToJSON BinfoBlocks where+    toJSON BinfoBlocks {..} = A.object [ "blocks" .= binfoBlocks ]++instance FromJSON BinfoBlocks where+    parseJSON = A.withObject "blocks" $ \o -> BinfoBlocks <$> o .: "blocks"
test/Haskoin/Store/DataSpec.hs view
@@ -73,6 +73,8 @@     , JsonBox (arbitrary :: Gen BinfoTxId)     , JsonBox (arbitrary :: Gen BinfoShortBal)     , JsonBox (arbitrary :: Gen BinfoHistory)+    , JsonBox (arbitrary :: Gen BinfoHeader)+    , JsonBox (arbitrary :: Gen BinfoBlocks)     ]  netVals :: [NetBox]@@ -149,6 +151,10 @@              , binfoRawAddrToEncoding              , binfoRawAddrParseJSON              , arbitraryNetData)+    , NetBox ( binfoMempoolToJSON+             , binfoMempoolToEncoding+             , binfoMempoolParseJSON+             , arbitraryNetData)     ]  spec :: Spec@@ -590,3 +596,18 @@  instance Arbitrary BinfoUnspents where     arbitrary = BinfoUnspents <$> arbitrary++instance Arbitrary BinfoHeader where+    arbitrary =+        BinfoHeader+        <$> arbitraryBlockHash+        <*> arbitrary+        <*> arbitrary+        <*> arbitrary+        <*> arbitrary++instance Arbitrary BinfoMempool where+    arbitrary = BinfoMempool <$> arbitrary++instance Arbitrary BinfoBlocks where+    arbitrary = BinfoBlocks <$> arbitrary