haskoin-store-data 0.47.0 → 0.47.1
raw patch · 5 files changed
+66/−35 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsBalance [Haskoin.Store.Data.Balance]
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsTxs [Haskoin.Store.Data.TxRef]
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsTxsFull [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsUnspent [Haskoin.Store.Data.Unspent]
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetBlockHeights [Haskoin.Store.Data.BlockData]
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetBlocks [Haskoin.Store.Data.BlockData]
- Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetTxs [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrTxs [Haskoin.Store.Data.TxRef]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrTxsFull [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrUnspent [Haskoin.Store.Data.Unspent]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsBalance [Haskoin.Store.Data.Balance]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsTxs [Haskoin.Store.Data.TxRef]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsTxsFull [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsUnspent [Haskoin.Store.Data.Unspent]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlockHeight [Haskoin.Store.Data.BlockData]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlockHeights [Haskoin.Store.Data.BlockData]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlockLatest [Haskoin.Store.Data.BlockData]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlocks [Haskoin.Store.Data.BlockData]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetEvents [Haskoin.Store.Data.Event]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetMempool [Haskoin.Transaction.Common.TxHash]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetPeers [Haskoin.Store.Data.PeerInformation]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetTxs [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetTxsBlock [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubBalances [Haskoin.Store.Data.XPubBal]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubTxs [Haskoin.Store.Data.TxRef]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubTxsFull [Haskoin.Store.Data.Transaction]
- Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubUnspent [Haskoin.Store.Data.XPubUnspent]
+ Haskoin.Store.Data: SerialList :: [a] -> SerialList a
+ Haskoin.Store.Data: [getSerialList] :: SerialList a -> [a]
+ Haskoin.Store.Data: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance Data.Aeson.Types.FromJSON.FromJSON a => Data.Aeson.Types.FromJSON.FromJSON (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance Data.Aeson.Types.ToJSON.ToJSON a => Data.Aeson.Types.ToJSON.ToJSON (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance Data.Bytes.Serial.Serial a => Data.Bytes.Serial.Serial (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance GHC.Base.Monoid (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance GHC.Base.Semigroup (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance GHC.Classes.Eq a => GHC.Classes.Eq (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance GHC.Generics.Generic (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: instance GHC.Show.Show a => GHC.Show.Show (Haskoin.Store.Data.SerialList a)
+ Haskoin.Store.Data: newtype SerialList a
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsBalance (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Balance)
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsTxs (Haskoin.Store.Data.SerialList Haskoin.Store.Data.TxRef)
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsTxsFull (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetAddrsUnspent (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Unspent)
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetBlockHeights (Haskoin.Store.Data.SerialList Haskoin.Store.Data.BlockData)
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetBlocks (Haskoin.Store.Data.SerialList Haskoin.Store.Data.BlockData)
+ Haskoin.Store.WebClient: instance Haskoin.Store.WebClient.Batchable Haskoin.Store.WebCommon.GetTxs (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrTxs (Haskoin.Store.Data.SerialList Haskoin.Store.Data.TxRef)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrTxsFull (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrUnspent (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Unspent)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsBalance (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Balance)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsTxs (Haskoin.Store.Data.SerialList Haskoin.Store.Data.TxRef)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsTxsFull (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetAddrsUnspent (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Unspent)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlockHeight (Haskoin.Store.Data.SerialList Haskoin.Store.Data.BlockData)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlockHeights (Haskoin.Store.Data.SerialList Haskoin.Store.Data.BlockData)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlockLatest (Haskoin.Store.Data.SerialList Haskoin.Store.Data.BlockData)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetBlocks (Haskoin.Store.Data.SerialList Haskoin.Store.Data.BlockData)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetEvents (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Event)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetMempool (Haskoin.Store.Data.SerialList Haskoin.Transaction.Common.TxHash)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetPeers (Haskoin.Store.Data.SerialList Haskoin.Store.Data.PeerInformation)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetTxs (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetTxsBlock (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubBalances (Haskoin.Store.Data.SerialList Haskoin.Store.Data.XPubBal)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubTxs (Haskoin.Store.Data.SerialList Haskoin.Store.Data.TxRef)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubTxsFull (Haskoin.Store.Data.SerialList Haskoin.Store.Data.Transaction)
+ Haskoin.Store.WebCommon: instance Haskoin.Store.WebCommon.ApiResource Haskoin.Store.WebCommon.GetXPubUnspent (Haskoin.Store.Data.SerialList Haskoin.Store.Data.XPubUnspent)
Files
- CHANGELOG.md +4/−0
- haskoin-store-data.cabal +2/−2
- src/Haskoin/Store/Data.hs +21/−0
- src/Haskoin/Store/WebClient.hs +19/−13
- src/Haskoin/Store/WebCommon.hs +20/−20
CHANGELOG.md view
@@ -4,6 +4,10 @@ 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.47.1+### Fixed+- Fix serialization bugs for web data types.+ ## 0.47.0 ### Added - Support for legacy block endpoints.
haskoin-store-data.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 6f2e5dde9b64bcd3bb34b392fed519697f053ce2ad24890820c4c016339837f1+-- hash: eee57844ddf308325bf17f93eb3f4c839c3b3f45c37030619e4d592e98ed5349 name: haskoin-store-data-version: 0.47.0+version: 0.47.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
src/Haskoin/Store/Data.hs view
@@ -70,6 +70,7 @@ -- * Other Data , TxId(..) , GenericResult(..)+ , SerialList(..) , RawResult(..) , RawResultList(..) , PeerInformation(..)@@ -1989,6 +1990,26 @@ let m = eitherToMaybe . Bytes.Get.runGetS deserialize =<< decodeHex res maybe mzero (return . RawResult) m++newtype SerialList a = SerialList{ getSerialList :: [a] }+ deriving (Show, Eq, Generic, NFData)++instance Semigroup (SerialList a) where+ SerialList a <> SerialList b = SerialList (a <> b)++instance Monoid (SerialList a) where+ mempty = SerialList mempty++instance Serial a => Serial (SerialList a) where+ serialize (SerialList ls) = putList serialize ls+ deserialize = SerialList <$> getList deserialize++instance ToJSON a => ToJSON (SerialList a) where+ toJSON (SerialList ls) = toJSON ls+ toEncoding (SerialList ls) = toEncoding ls++instance FromJSON a => FromJSON (SerialList a) where+ parseJSON = fmap SerialList . parseJSON newtype RawResultList a = RawResultList
src/Haskoin/Store/WebClient.hs view
@@ -150,30 +150,36 @@ class (ApiResource a b, Monoid b) => Batchable a b where resourceBatch :: Natural -> a -> [a] -instance Batchable GetBlocks [Store.BlockData] where- resourceBatch i (GetBlocks hs t) = (`GetBlocks` t) <$> chunksOf i hs+instance Batchable GetBlocks (Store.SerialList Store.BlockData) where+ resourceBatch i (GetBlocks hs t) =+ (`GetBlocks` t) <$> chunksOf i hs -instance Batchable GetBlockHeights [Store.BlockData] where+instance Batchable GetBlockHeights (Store.SerialList Store.BlockData) where resourceBatch i (GetBlockHeights (HeightsParam hs) n) =- (`GetBlockHeights` n) <$> (HeightsParam <$> chunksOf i hs)+ (`GetBlockHeights` n) <$>+ (HeightsParam <$> chunksOf i hs) -instance Batchable GetTxs [Store.Transaction] where- resourceBatch i (GetTxs ts) = GetTxs <$> chunksOf i ts+instance Batchable GetTxs (Store.SerialList Store.Transaction) where+ resourceBatch i (GetTxs ts) =+ GetTxs <$> chunksOf i ts instance Batchable GetTxsRaw (Store.RawResultList Tx) where- resourceBatch i (GetTxsRaw ts) = GetTxsRaw <$> chunksOf i ts+ resourceBatch i (GetTxsRaw ts) =+ GetTxsRaw <$> chunksOf i ts -instance Batchable GetAddrsTxs [Store.TxRef] where- resourceBatch i (GetAddrsTxs as l) = (`GetAddrsTxs` l) <$> chunksOf i as+instance Batchable GetAddrsTxs (Store.SerialList Store.TxRef) where+ resourceBatch i (GetAddrsTxs as l) =+ (`GetAddrsTxs` l) <$> chunksOf i as -instance Batchable GetAddrsTxsFull [Store.Transaction] where+instance Batchable GetAddrsTxsFull (Store.SerialList Store.Transaction) where resourceBatch i (GetAddrsTxsFull as l) = (`GetAddrsTxsFull` l) <$> chunksOf i as -instance Batchable GetAddrsBalance [Store.Balance] where- resourceBatch i (GetAddrsBalance as) = GetAddrsBalance <$> chunksOf i as+instance Batchable GetAddrsBalance (Store.SerialList Store.Balance) where+ resourceBatch i (GetAddrsBalance as) =+ GetAddrsBalance <$> chunksOf i as -instance Batchable GetAddrsUnspent [Store.Unspent] where+instance Batchable GetAddrsUnspent (Store.SerialList Store.Unspent) where resourceBatch i (GetAddrsUnspent as l) = (`GetAddrsUnspent` l) <$> chunksOf i as
src/Haskoin/Store/WebCommon.hs view
@@ -112,7 +112,7 @@ queryParams (GetBlock h t) = ([ParamBox h], noDefBox t) captureParams _ = [ProxyBox (Proxy :: Proxy BlockHash)] -instance ApiResource GetBlocks [Store.BlockData] where+instance ApiResource GetBlocks (Store.SerialList Store.BlockData) where resourcePath _ _ = "/blocks" queryParams (GetBlocks hs t) = ([], [ParamBox hs] <> noDefBox t) @@ -128,16 +128,16 @@ instance ApiResource GetBlockBestRaw (Store.RawResult Block) where resourcePath _ _ = "/block/best/raw" -instance ApiResource GetBlockLatest [Store.BlockData] where+instance ApiResource GetBlockLatest (Store.SerialList Store.BlockData) where resourcePath _ _ = "/block/latest" queryParams (GetBlockLatest t) = ([], noDefBox t) -instance ApiResource GetBlockHeight [Store.BlockData] where+instance ApiResource GetBlockHeight (Store.SerialList Store.BlockData) where resourcePath _ = ("/block/height/" <:>) queryParams (GetBlockHeight h t) = ([ParamBox h], noDefBox t) captureParams _ = [ProxyBox (Proxy :: Proxy HeightParam)] -instance ApiResource GetBlockHeights [Store.BlockData] where+instance ApiResource GetBlockHeights (Store.SerialList Store.BlockData) where resourcePath _ _ = "/block/heights" queryParams (GetBlockHeights hs t) = ([], [ParamBox hs] <> noDefBox t) @@ -175,7 +175,7 @@ queryParams (GetTx h) = ([ParamBox h], []) captureParams _ = [ProxyBox (Proxy :: Proxy TxHash)] -instance ApiResource GetTxs [Store.Transaction] where+instance ApiResource GetTxs (Store.SerialList Store.Transaction) where resourcePath _ _ = "/transactions" queryParams (GetTxs hs) = ([], [ParamBox hs]) @@ -188,7 +188,7 @@ resourcePath _ _ = "/transactions/raw" queryParams (GetTxsRaw hs) = ([], [ParamBox hs]) -instance ApiResource GetTxsBlock [Store.Transaction] where+instance ApiResource GetTxsBlock (Store.SerialList Store.Transaction) where resourcePath _ = ("/transactions/block/" <:>) queryParams (GetTxsBlock h) = ([ParamBox h], []) captureParams _ = [ProxyBox (Proxy :: Proxy BlockHash)]@@ -211,35 +211,35 @@ resourcePath _ _ = "/transactions" resourceBody (PostTx tx) = Just $ PostBox tx -instance ApiResource GetMempool [TxHash] where+instance ApiResource GetMempool (Store.SerialList TxHash) where resourcePath _ _ = "/mempool" queryParams (GetMempool l o) = ([], noMaybeBox l <> noDefBox o) -instance ApiResource GetEvents [Store.Event] where+instance ApiResource GetEvents (Store.SerialList Store.Event) where resourcePath _ _ = "/events" ------------- -- Address -- ------------- -instance ApiResource GetAddrTxs [Store.TxRef] where+instance ApiResource GetAddrTxs (Store.SerialList Store.TxRef) where resourcePath _ = "/address/" <+> "/transactions" queryParams (GetAddrTxs a (LimitsParam l o sM)) = ([ParamBox a], noMaybeBox l <> noDefBox o <> noMaybeBox sM) captureParams _ = [ProxyBox (Proxy :: Proxy Address)] -instance ApiResource GetAddrsTxs [Store.TxRef] where+instance ApiResource GetAddrsTxs (Store.SerialList Store.TxRef) where resourcePath _ _ = "/address/transactions" queryParams (GetAddrsTxs as (LimitsParam l o sM)) = ([] , [ParamBox as] <> noMaybeBox l <> noDefBox o <> noMaybeBox sM) -instance ApiResource GetAddrTxsFull [Store.Transaction] where+instance ApiResource GetAddrTxsFull (Store.SerialList Store.Transaction) where resourcePath _ = "/address/" <+> "/transactions/full" queryParams (GetAddrTxsFull a (LimitsParam l o sM)) = ([ParamBox a], noMaybeBox l <> noDefBox o <> noMaybeBox sM) captureParams _ = [ProxyBox (Proxy :: Proxy Address)] -instance ApiResource GetAddrsTxsFull [Store.Transaction] where+instance ApiResource GetAddrsTxsFull (Store.SerialList Store.Transaction) where resourcePath _ _ = "/address/transactions/full" queryParams (GetAddrsTxsFull as (LimitsParam l o sM)) = ([] , [ParamBox as] <> noMaybeBox l <> noDefBox o <> noMaybeBox sM)@@ -249,17 +249,17 @@ queryParams (GetAddrBalance a) = ([ParamBox a], []) captureParams _ = [ProxyBox (Proxy :: Proxy Address)] -instance ApiResource GetAddrsBalance [Store.Balance] where+instance ApiResource GetAddrsBalance (Store.SerialList Store.Balance) where resourcePath _ _ = "/address/balances" queryParams (GetAddrsBalance as) = ([] , [ParamBox as]) -instance ApiResource GetAddrUnspent [Store.Unspent] where+instance ApiResource GetAddrUnspent (Store.SerialList Store.Unspent) where resourcePath _ = "/address/" <+> "/unspent" queryParams (GetAddrUnspent a (LimitsParam l o sM)) = ([ParamBox a], noMaybeBox l <> noDefBox o <> noMaybeBox sM) captureParams _ = [ProxyBox (Proxy :: Proxy Address)] -instance ApiResource GetAddrsUnspent [Store.Unspent] where+instance ApiResource GetAddrsUnspent (Store.SerialList Store.Unspent) where resourcePath _ _ = "/address/unspent" queryParams (GetAddrsUnspent as (LimitsParam l o sM)) = ([] , [ParamBox as] <> noMaybeBox l <> noDefBox o <> noMaybeBox sM)@@ -273,7 +273,7 @@ queryParams (GetXPub p d n) = ([ParamBox p], noDefBox d <> noDefBox n) captureParams _ = [ProxyBox (Proxy :: Proxy XPubKey)] -instance ApiResource GetXPubTxs [Store.TxRef] where+instance ApiResource GetXPubTxs (Store.SerialList Store.TxRef) where resourcePath _ = "/xpub/" <+> "/transactions" queryParams (GetXPubTxs p d (LimitsParam l o sM) n) = ( [ParamBox p]@@ -281,7 +281,7 @@ ) captureParams _ = [ProxyBox (Proxy :: Proxy XPubKey)] -instance ApiResource GetXPubTxsFull [Store.Transaction] where+instance ApiResource GetXPubTxsFull (Store.SerialList Store.Transaction) where resourcePath _ = "/xpub/" <+> "/transactions/full" queryParams (GetXPubTxsFull p d (LimitsParam l o sM) n) = ( [ParamBox p]@@ -289,12 +289,12 @@ ) captureParams _ = [ProxyBox (Proxy :: Proxy XPubKey)] -instance ApiResource GetXPubBalances [Store.XPubBal] where+instance ApiResource GetXPubBalances (Store.SerialList Store.XPubBal) where resourcePath _ = "/xpub/" <+> "/balances" queryParams (GetXPubBalances p d n) = ([ParamBox p], noDefBox d <> noDefBox n) captureParams _ = [ProxyBox (Proxy :: Proxy XPubKey)] -instance ApiResource GetXPubUnspent [Store.XPubUnspent] where+instance ApiResource GetXPubUnspent (Store.SerialList Store.XPubUnspent) where resourcePath _ = "/xpub/" <+> "/unspent" queryParams (GetXPubUnspent p d (LimitsParam l o sM) n) = ( [ParamBox p]@@ -306,7 +306,7 @@ -- Network -- ------------- -instance ApiResource GetPeers [Store.PeerInformation] where+instance ApiResource GetPeers (Store.SerialList Store.PeerInformation) where resourcePath _ _ = "/peers" instance ApiResource GetHealth Store.HealthCheck where