haskoin-store 1.5.14 → 1.5.16
raw patch · 4 files changed
+154/−155 lines, 4 filesdep ~haskoin-store-dataPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: haskoin-store-data
API changes (from Hackage documentation)
- Haskoin.Store: [$sel:block:Store] :: Store -> !BlockStore
- Haskoin.Store: [$sel:bloom:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store: [$sel:cache:Store] :: Store -> !Maybe CacheConfig
- Haskoin.Store: [$sel:chain:CacheConfig] :: CacheConfig -> !Chain
- Haskoin.Store: [$sel:chain:Store] :: Store -> !Chain
- Haskoin.Store: [$sel:connect:StoreConfig] :: StoreConfig -> !SockAddr -> WithConnection
- Haskoin.Store: [$sel:ctx:StoreConfig] :: StoreConfig -> !Ctx
- Haskoin.Store: [$sel:ctx:Store] :: Store -> !Ctx
- Haskoin.Store: [$sel:db:StoreConfig] :: StoreConfig -> !FilePath
- Haskoin.Store: [$sel:db:Store] :: Store -> !DatabaseReader
- Haskoin.Store: [$sel:discover:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store: [$sel:gap:StoreConfig] :: StoreConfig -> !Word32
- Haskoin.Store: [$sel:initGap:StoreConfig] :: StoreConfig -> !Word32
- Haskoin.Store: [$sel:initPeers:StoreConfig] :: StoreConfig -> ![String]
- Haskoin.Store: [$sel:limit:Limits] :: Limits -> !Word32
- Haskoin.Store: [$sel:maxKeys:CacheConfig] :: CacheConfig -> !Integer
- Haskoin.Store: [$sel:maxPeerLife:StoreConfig] :: StoreConfig -> !NominalDiffTime
- Haskoin.Store: [$sel:maxPeers:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store: [$sel:mempoolTimeout:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store: [$sel:metrics:CacheConfig] :: CacheConfig -> !Maybe CacheMetrics
- Haskoin.Store: [$sel:minAddrs:CacheConfig] :: CacheConfig -> !Int
- Haskoin.Store: [$sel:net:StoreConfig] :: StoreConfig -> !Network
- Haskoin.Store: [$sel:net:Store] :: Store -> !Network
- Haskoin.Store: [$sel:noMempool:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store: [$sel:offset:Limits] :: Limits -> !Word32
- Haskoin.Store: [$sel:peerMgr:Store] :: Store -> !PeerMgr
- Haskoin.Store: [$sel:peerTimeout:StoreConfig] :: StoreConfig -> !NominalDiffTime
- Haskoin.Store: [$sel:pub:Store] :: Store -> !Publisher StoreEvent
- Haskoin.Store: [$sel:redis:CacheConfig] :: CacheConfig -> !Connection
- Haskoin.Store: [$sel:redis:StoreConfig] :: StoreConfig -> !Maybe String
- Haskoin.Store: [$sel:redisMaxKeys:StoreConfig] :: StoreConfig -> !Integer
- Haskoin.Store: [$sel:redisMinAddrs:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store: [$sel:redisSyncInterval:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store: [$sel:start:Limits] :: Limits -> !Maybe Start
- Haskoin.Store: [$sel:stats:StoreConfig] :: StoreConfig -> !Maybe Stats
- Haskoin.Store: [$sel:syncMempool:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store: [$sel:wipeMempool:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store.BlockStore: [$sel:chain:BlockStoreConfig] :: BlockStoreConfig -> !Chain
- Haskoin.Store.BlockStore: [$sel:ctx:BlockStoreConfig] :: BlockStoreConfig -> !Ctx
- Haskoin.Store.BlockStore: [$sel:db:BlockStoreConfig] :: BlockStoreConfig -> !DatabaseReader
- Haskoin.Store.BlockStore: [$sel:mempoolTimeout:BlockStoreConfig] :: BlockStoreConfig -> !Int
- Haskoin.Store.BlockStore: [$sel:net:BlockStoreConfig] :: BlockStoreConfig -> !Network
- Haskoin.Store.BlockStore: [$sel:noMempool:BlockStoreConfig] :: BlockStoreConfig -> !Bool
- Haskoin.Store.BlockStore: [$sel:peerMgr:BlockStoreConfig] :: BlockStoreConfig -> !PeerMgr
- Haskoin.Store.BlockStore: [$sel:peerTimeout:BlockStoreConfig] :: BlockStoreConfig -> !NominalDiffTime
- Haskoin.Store.BlockStore: [$sel:pub:BlockStoreConfig] :: BlockStoreConfig -> !Publisher StoreEvent
- Haskoin.Store.BlockStore: [$sel:stats:BlockStoreConfig] :: BlockStoreConfig -> !Maybe Stats
- Haskoin.Store.BlockStore: [$sel:syncMempool:BlockStoreConfig] :: BlockStoreConfig -> !Bool
- Haskoin.Store.BlockStore: [$sel:wipeMempool:BlockStoreConfig] :: BlockStoreConfig -> !Bool
- Haskoin.Store.Cache: [$sel:chain:CacheConfig] :: CacheConfig -> !Chain
- Haskoin.Store.Cache: [$sel:maxKeys:CacheConfig] :: CacheConfig -> !Integer
- Haskoin.Store.Cache: [$sel:metrics:CacheConfig] :: CacheConfig -> !Maybe CacheMetrics
- Haskoin.Store.Cache: [$sel:minAddrs:CacheConfig] :: CacheConfig -> !Int
- Haskoin.Store.Cache: [$sel:redis:CacheConfig] :: CacheConfig -> !Connection
- Haskoin.Store.Common: [$sel:limit:Limits] :: Limits -> !Word32
- Haskoin.Store.Common: [$sel:offset:Limits] :: Limits -> !Word32
- Haskoin.Store.Common: [$sel:start:Limits] :: Limits -> !Maybe Start
- Haskoin.Store.Database.Reader: [$sel:ctx:DatabaseReader] :: DatabaseReader -> !Ctx
- Haskoin.Store.Database.Reader: [$sel:db:DatabaseReader] :: DatabaseReader -> !DB
- Haskoin.Store.Database.Reader: [$sel:initGap:DatabaseReader] :: DatabaseReader -> !Word32
- Haskoin.Store.Database.Reader: [$sel:maxGap:DatabaseReader] :: DatabaseReader -> !Word32
- Haskoin.Store.Database.Reader: [$sel:metrics:DatabaseReader] :: DatabaseReader -> !Maybe DataMetrics
- Haskoin.Store.Database.Reader: [$sel:net:DatabaseReader] :: DatabaseReader -> !Network
- Haskoin.Store.Database.Types: [$sel:address:AddrOutKey] :: AddrOutKey -> !Address
- Haskoin.Store.Database.Types: [$sel:address:AddrTxKey] :: AddrTxKey -> !Address
- Haskoin.Store.Database.Types: [$sel:address:BalKey] :: BalKey -> !Address
- Haskoin.Store.Database.Types: [$sel:block:AddrOutKey] :: AddrOutKey -> !BlockRef
- Haskoin.Store.Database.Types: [$sel:block:AddrTxKey] :: AddrTxKey -> !BlockRef
- Haskoin.Store.Database.Types: [$sel:block:UnspentVal] :: UnspentVal -> !BlockRef
- Haskoin.Store.Database.Types: [$sel:confirmed:BalVal] :: BalVal -> !Word64
- Haskoin.Store.Database.Types: [$sel:hash:BlockKey] :: BlockKey -> BlockHash
- Haskoin.Store.Database.Types: [$sel:height:HeightKey] :: HeightKey -> BlockHeight
- Haskoin.Store.Database.Types: [$sel:outpoint:AddrOutKey] :: AddrOutKey -> !OutPoint
- Haskoin.Store.Database.Types: [$sel:outpoint:UnspentKey] :: UnspentKey -> !OutPoint
- Haskoin.Store.Database.Types: [$sel:received:BalVal] :: BalVal -> !Word64
- Haskoin.Store.Database.Types: [$sel:script:OutVal] :: OutVal -> !ByteString
- Haskoin.Store.Database.Types: [$sel:script:UnspentVal] :: UnspentVal -> !ByteString
- Haskoin.Store.Database.Types: [$sel:short:TxKey] :: TxKey -> (Word32, Word16)
- Haskoin.Store.Database.Types: [$sel:tx:AddrTxKey] :: AddrTxKey -> !TxRef
- Haskoin.Store.Database.Types: [$sel:txid:TxKey] :: TxKey -> TxHash
- Haskoin.Store.Database.Types: [$sel:txid:UnspentKey] :: UnspentKey -> !TxHash
- Haskoin.Store.Database.Types: [$sel:txs:BalVal] :: BalVal -> !Word64
- Haskoin.Store.Database.Types: [$sel:unconfirmed:BalVal] :: BalVal -> !Word64
- Haskoin.Store.Database.Types: [$sel:utxo:BalVal] :: BalVal -> !Word64
- Haskoin.Store.Database.Types: [$sel:value:OutVal] :: OutVal -> !Word64
- Haskoin.Store.Database.Types: [$sel:value:UnspentVal] :: UnspentVal -> !Word64
- Haskoin.Store.Manager: [$sel:block:Store] :: Store -> !BlockStore
- Haskoin.Store.Manager: [$sel:bloom:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store.Manager: [$sel:cache:Store] :: Store -> !Maybe CacheConfig
- Haskoin.Store.Manager: [$sel:chain:Store] :: Store -> !Chain
- Haskoin.Store.Manager: [$sel:connect:StoreConfig] :: StoreConfig -> !SockAddr -> WithConnection
- Haskoin.Store.Manager: [$sel:ctx:StoreConfig] :: StoreConfig -> !Ctx
- Haskoin.Store.Manager: [$sel:ctx:Store] :: Store -> !Ctx
- Haskoin.Store.Manager: [$sel:db:StoreConfig] :: StoreConfig -> !FilePath
- Haskoin.Store.Manager: [$sel:db:Store] :: Store -> !DatabaseReader
- Haskoin.Store.Manager: [$sel:discover:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store.Manager: [$sel:gap:StoreConfig] :: StoreConfig -> !Word32
- Haskoin.Store.Manager: [$sel:initGap:StoreConfig] :: StoreConfig -> !Word32
- Haskoin.Store.Manager: [$sel:initPeers:StoreConfig] :: StoreConfig -> ![String]
- Haskoin.Store.Manager: [$sel:maxPeerLife:StoreConfig] :: StoreConfig -> !NominalDiffTime
- Haskoin.Store.Manager: [$sel:maxPeers:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store.Manager: [$sel:mempoolTimeout:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store.Manager: [$sel:net:StoreConfig] :: StoreConfig -> !Network
- Haskoin.Store.Manager: [$sel:net:Store] :: Store -> !Network
- Haskoin.Store.Manager: [$sel:noMempool:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store.Manager: [$sel:peerMgr:Store] :: Store -> !PeerMgr
- Haskoin.Store.Manager: [$sel:peerTimeout:StoreConfig] :: StoreConfig -> !NominalDiffTime
- Haskoin.Store.Manager: [$sel:pub:Store] :: Store -> !Publisher StoreEvent
- Haskoin.Store.Manager: [$sel:redis:StoreConfig] :: StoreConfig -> !Maybe String
- Haskoin.Store.Manager: [$sel:redisMaxKeys:StoreConfig] :: StoreConfig -> !Integer
- Haskoin.Store.Manager: [$sel:redisMinAddrs:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store.Manager: [$sel:redisSyncInterval:StoreConfig] :: StoreConfig -> !Int
- Haskoin.Store.Manager: [$sel:stats:StoreConfig] :: StoreConfig -> !Maybe Stats
- Haskoin.Store.Manager: [$sel:syncMempool:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store.Manager: [$sel:wipeMempool:StoreConfig] :: StoreConfig -> !Bool
- Haskoin.Store.Web: [$sel:blockTimeout:WebLimits] :: WebLimits -> !Word64
- Haskoin.Store.Web: [$sel:defItemCount:WebLimits] :: WebLimits -> !Word32
- Haskoin.Store.Web: [$sel:healthCheckInterval:WebConfig] :: WebConfig -> !Int
- Haskoin.Store.Web: [$sel:host:WebConfig] :: WebConfig -> !String
- Haskoin.Store.Web: [$sel:limits:WebConfig] :: WebConfig -> !WebLimits
- Haskoin.Store.Web: [$sel:maxFullItemCount:WebLimits] :: WebLimits -> !Word32
- Haskoin.Store.Web: [$sel:maxItemCount:WebLimits] :: WebLimits -> !Word32
- Haskoin.Store.Web: [$sel:maxLaggingBlocks:WebConfig] :: WebConfig -> !Int
- Haskoin.Store.Web: [$sel:maxOffset:WebLimits] :: WebLimits -> !Word32
- Haskoin.Store.Web: [$sel:maxPendingTxs:WebConfig] :: WebConfig -> !Int
- Haskoin.Store.Web: [$sel:minPeers:WebConfig] :: WebConfig -> !Int
- Haskoin.Store.Web: [$sel:noBlockchainInfo:WebConfig] :: WebConfig -> !Bool
- Haskoin.Store.Web: [$sel:noMempool:WebConfig] :: WebConfig -> !Bool
- Haskoin.Store.Web: [$sel:noSlow:WebConfig] :: WebConfig -> !Bool
- Haskoin.Store.Web: [$sel:port:WebConfig] :: WebConfig -> !Int
- Haskoin.Store.Web: [$sel:priceHistoryURL:WebConfig] :: WebConfig -> !String
- Haskoin.Store.Web: [$sel:stats:WebConfig] :: WebConfig -> !Maybe Stats
- Haskoin.Store.Web: [$sel:store:WebConfig] :: WebConfig -> !Store
- Haskoin.Store.Web: [$sel:tickerRefresh:WebConfig] :: WebConfig -> !Int
- Haskoin.Store.Web: [$sel:tickerURL:WebConfig] :: WebConfig -> !String
- Haskoin.Store.Web: [$sel:txTimeout:WebLimits] :: WebLimits -> !Word64
- Haskoin.Store.Web: [$sel:version:WebConfig] :: WebConfig -> !String
- Haskoin.Store.Web: [$sel:xpubGap:WebLimits] :: WebLimits -> !Word32
- Haskoin.Store.Web: [$sel:xpubGapInit:WebLimits] :: WebLimits -> !Word32
+ Haskoin.Store: [block] :: Store -> !BlockStore
+ Haskoin.Store: [bloom] :: StoreConfig -> !Bool
+ Haskoin.Store: [cache] :: Store -> !Maybe CacheConfig
+ Haskoin.Store: [chain] :: CacheConfig -> !Chain
+ Haskoin.Store: [connect] :: StoreConfig -> !SockAddr -> WithConnection
+ Haskoin.Store: [ctx] :: StoreConfig -> !Ctx
+ Haskoin.Store: [db] :: StoreConfig -> !FilePath
+ Haskoin.Store: [discover] :: StoreConfig -> !Bool
+ Haskoin.Store: [gap] :: StoreConfig -> !Word32
+ Haskoin.Store: [initGap] :: StoreConfig -> !Word32
+ Haskoin.Store: [initPeers] :: StoreConfig -> ![String]
+ Haskoin.Store: [limit] :: Limits -> !Word32
+ Haskoin.Store: [maxKeys] :: CacheConfig -> !Integer
+ Haskoin.Store: [maxPeerLife] :: StoreConfig -> !NominalDiffTime
+ Haskoin.Store: [maxPeers] :: StoreConfig -> !Int
+ Haskoin.Store: [mempoolTimeout] :: StoreConfig -> !Int
+ Haskoin.Store: [metrics] :: CacheConfig -> !Maybe CacheMetrics
+ Haskoin.Store: [minAddrs] :: CacheConfig -> !Int
+ Haskoin.Store: [net] :: StoreConfig -> !Network
+ Haskoin.Store: [noMempool] :: StoreConfig -> !Bool
+ Haskoin.Store: [offset] :: Limits -> !Word32
+ Haskoin.Store: [peerMgr] :: Store -> !PeerMgr
+ Haskoin.Store: [peerTimeout] :: StoreConfig -> !NominalDiffTime
+ Haskoin.Store: [pub] :: Store -> !Publisher StoreEvent
+ Haskoin.Store: [redisMaxKeys] :: StoreConfig -> !Integer
+ Haskoin.Store: [redisMinAddrs] :: StoreConfig -> !Int
+ Haskoin.Store: [redisSyncInterval] :: StoreConfig -> !Int
+ Haskoin.Store: [redis] :: CacheConfig -> !Connection
+ Haskoin.Store: [start] :: Limits -> !Maybe Start
+ Haskoin.Store: [stats] :: StoreConfig -> !Maybe Stats
+ Haskoin.Store: [syncMempool] :: StoreConfig -> !Bool
+ Haskoin.Store: [wipeMempool] :: StoreConfig -> !Bool
+ Haskoin.Store.BlockStore: [chain] :: BlockStoreConfig -> !Chain
+ Haskoin.Store.BlockStore: [ctx] :: BlockStoreConfig -> !Ctx
+ Haskoin.Store.BlockStore: [db] :: BlockStoreConfig -> !DatabaseReader
+ Haskoin.Store.BlockStore: [mempoolTimeout] :: BlockStoreConfig -> !Int
+ Haskoin.Store.BlockStore: [net] :: BlockStoreConfig -> !Network
+ Haskoin.Store.BlockStore: [noMempool] :: BlockStoreConfig -> !Bool
+ Haskoin.Store.BlockStore: [peerMgr] :: BlockStoreConfig -> !PeerMgr
+ Haskoin.Store.BlockStore: [peerTimeout] :: BlockStoreConfig -> !NominalDiffTime
+ Haskoin.Store.BlockStore: [pub] :: BlockStoreConfig -> !Publisher StoreEvent
+ Haskoin.Store.BlockStore: [stats] :: BlockStoreConfig -> !Maybe Stats
+ Haskoin.Store.BlockStore: [syncMempool] :: BlockStoreConfig -> !Bool
+ Haskoin.Store.BlockStore: [wipeMempool] :: BlockStoreConfig -> !Bool
+ Haskoin.Store.Cache: [chain] :: CacheConfig -> !Chain
+ Haskoin.Store.Cache: [maxKeys] :: CacheConfig -> !Integer
+ Haskoin.Store.Cache: [metrics] :: CacheConfig -> !Maybe CacheMetrics
+ Haskoin.Store.Cache: [minAddrs] :: CacheConfig -> !Int
+ Haskoin.Store.Cache: [redis] :: CacheConfig -> !Connection
+ Haskoin.Store.Common: [limit] :: Limits -> !Word32
+ Haskoin.Store.Common: [offset] :: Limits -> !Word32
+ Haskoin.Store.Common: [start] :: Limits -> !Maybe Start
+ Haskoin.Store.Database.Reader: [ctx] :: DatabaseReader -> !Ctx
+ Haskoin.Store.Database.Reader: [db] :: DatabaseReader -> !DB
+ Haskoin.Store.Database.Reader: [initGap] :: DatabaseReader -> !Word32
+ Haskoin.Store.Database.Reader: [maxGap] :: DatabaseReader -> !Word32
+ Haskoin.Store.Database.Reader: [metrics] :: DatabaseReader -> !Maybe DataMetrics
+ Haskoin.Store.Database.Reader: [net] :: DatabaseReader -> !Network
+ Haskoin.Store.Database.Types: [address] :: BalKey -> !Address
+ Haskoin.Store.Database.Types: [block] :: UnspentVal -> !BlockRef
+ Haskoin.Store.Database.Types: [confirmed] :: BalVal -> !Word64
+ Haskoin.Store.Database.Types: [hash] :: BlockKey -> BlockHash
+ Haskoin.Store.Database.Types: [height] :: HeightKey -> BlockHeight
+ Haskoin.Store.Database.Types: [outpoint] :: UnspentKey -> !OutPoint
+ Haskoin.Store.Database.Types: [received] :: BalVal -> !Word64
+ Haskoin.Store.Database.Types: [script] :: OutVal -> !ByteString
+ Haskoin.Store.Database.Types: [short] :: TxKey -> (Word32, Word16)
+ Haskoin.Store.Database.Types: [tx] :: AddrTxKey -> !TxRef
+ Haskoin.Store.Database.Types: [txid] :: UnspentKey -> !TxHash
+ Haskoin.Store.Database.Types: [txs] :: BalVal -> !Word64
+ Haskoin.Store.Database.Types: [unconfirmed] :: BalVal -> !Word64
+ Haskoin.Store.Database.Types: [utxo] :: BalVal -> !Word64
+ Haskoin.Store.Database.Types: [value] :: OutVal -> !Word64
+ Haskoin.Store.Manager: [block] :: Store -> !BlockStore
+ Haskoin.Store.Manager: [bloom] :: StoreConfig -> !Bool
+ Haskoin.Store.Manager: [cache] :: Store -> !Maybe CacheConfig
+ Haskoin.Store.Manager: [chain] :: Store -> !Chain
+ Haskoin.Store.Manager: [connect] :: StoreConfig -> !SockAddr -> WithConnection
+ Haskoin.Store.Manager: [ctx] :: Store -> !Ctx
+ Haskoin.Store.Manager: [db] :: Store -> !DatabaseReader
+ Haskoin.Store.Manager: [discover] :: StoreConfig -> !Bool
+ Haskoin.Store.Manager: [gap] :: StoreConfig -> !Word32
+ Haskoin.Store.Manager: [initGap] :: StoreConfig -> !Word32
+ Haskoin.Store.Manager: [initPeers] :: StoreConfig -> ![String]
+ Haskoin.Store.Manager: [maxPeerLife] :: StoreConfig -> !NominalDiffTime
+ Haskoin.Store.Manager: [maxPeers] :: StoreConfig -> !Int
+ Haskoin.Store.Manager: [mempoolTimeout] :: StoreConfig -> !Int
+ Haskoin.Store.Manager: [net] :: Store -> !Network
+ Haskoin.Store.Manager: [noMempool] :: StoreConfig -> !Bool
+ Haskoin.Store.Manager: [peerMgr] :: Store -> !PeerMgr
+ Haskoin.Store.Manager: [peerTimeout] :: StoreConfig -> !NominalDiffTime
+ Haskoin.Store.Manager: [pub] :: Store -> !Publisher StoreEvent
+ Haskoin.Store.Manager: [redisMaxKeys] :: StoreConfig -> !Integer
+ Haskoin.Store.Manager: [redisMinAddrs] :: StoreConfig -> !Int
+ Haskoin.Store.Manager: [redisSyncInterval] :: StoreConfig -> !Int
+ Haskoin.Store.Manager: [redis] :: StoreConfig -> !Maybe String
+ Haskoin.Store.Manager: [stats] :: StoreConfig -> !Maybe Stats
+ Haskoin.Store.Manager: [syncMempool] :: StoreConfig -> !Bool
+ Haskoin.Store.Manager: [wipeMempool] :: StoreConfig -> !Bool
+ Haskoin.Store.Web: [blockTimeout] :: WebLimits -> !Word64
+ Haskoin.Store.Web: [defItemCount] :: WebLimits -> !Word32
+ Haskoin.Store.Web: [healthCheckInterval] :: WebConfig -> !Int
+ Haskoin.Store.Web: [host] :: WebConfig -> !String
+ Haskoin.Store.Web: [limits] :: WebConfig -> !WebLimits
+ Haskoin.Store.Web: [maxFullItemCount] :: WebLimits -> !Word32
+ Haskoin.Store.Web: [maxItemCount] :: WebLimits -> !Word32
+ Haskoin.Store.Web: [maxLaggingBlocks] :: WebConfig -> !Int
+ Haskoin.Store.Web: [maxOffset] :: WebLimits -> !Word32
+ Haskoin.Store.Web: [maxPendingTxs] :: WebConfig -> !Int
+ Haskoin.Store.Web: [minPeers] :: WebConfig -> !Int
+ Haskoin.Store.Web: [noBlockchainInfo] :: WebConfig -> !Bool
+ Haskoin.Store.Web: [noMempool] :: WebConfig -> !Bool
+ Haskoin.Store.Web: [noXPub] :: WebConfig -> !Bool
+ Haskoin.Store.Web: [port] :: WebConfig -> !Int
+ Haskoin.Store.Web: [priceHistoryURL] :: WebConfig -> !String
+ Haskoin.Store.Web: [stats] :: WebConfig -> !Maybe Stats
+ Haskoin.Store.Web: [store] :: WebConfig -> !Store
+ Haskoin.Store.Web: [tickerRefresh] :: WebConfig -> !Int
+ Haskoin.Store.Web: [tickerURL] :: WebConfig -> !String
+ Haskoin.Store.Web: [txTimeout] :: WebLimits -> !Word64
+ Haskoin.Store.Web: [version] :: WebConfig -> !String
+ Haskoin.Store.Web: [xpubGapInit] :: WebLimits -> !Word32
+ Haskoin.Store.Web: [xpubGap] :: WebLimits -> !Word32
- Haskoin.Store: class (Monad m) => StoreReadBase m
+ Haskoin.Store: class Monad m => StoreReadBase (m :: Type -> Type)
- Haskoin.Store: class (StoreReadBase m) => StoreReadExtra m
+ Haskoin.Store: class StoreReadBase m => StoreReadExtra (m :: Type -> Type)
- Haskoin.Store: isInCache :: MonadLoggerIO m => XPubSpec -> CacheT m Bool
+ Haskoin.Store: isInCache :: forall (m :: Type -> Type). MonadLoggerIO m => XPubSpec -> CacheT m Bool
- Haskoin.Store: type CacheT = ReaderT (Maybe CacheConfig)
+ Haskoin.Store: type CacheT = ReaderT Maybe CacheConfig
- Haskoin.Store.Cache: cacheDelXPubs :: (MonadLoggerIO m, StoreReadBase m) => [XPubSpec] -> CacheT m Integer
+ Haskoin.Store.Cache: cacheDelXPubs :: forall (m :: Type -> Type). (MonadLoggerIO m, StoreReadBase m) => [XPubSpec] -> CacheT m Integer
- Haskoin.Store.Cache: isInCache :: MonadLoggerIO m => XPubSpec -> CacheT m Bool
+ Haskoin.Store.Cache: isInCache :: forall (m :: Type -> Type). MonadLoggerIO m => XPubSpec -> CacheT m Bool
- Haskoin.Store.Cache: type CacheT = ReaderT (Maybe CacheConfig)
+ Haskoin.Store.Cache: type CacheT = ReaderT Maybe CacheConfig
- Haskoin.Store.Common: applyLimitC :: Monad m => Limit -> ConduitT i i m ()
+ Haskoin.Store.Common: applyLimitC :: forall (m :: Type -> Type) i. Monad m => Limit -> ConduitT i i m ()
- Haskoin.Store.Common: applyLimitsC :: Monad m => Limits -> ConduitT i i m ()
+ Haskoin.Store.Common: applyLimitsC :: forall (m :: Type -> Type) i. Monad m => Limits -> ConduitT i i m ()
- Haskoin.Store.Common: class (Monad m) => StoreReadBase m
+ Haskoin.Store.Common: class Monad m => StoreReadBase (m :: Type -> Type)
- Haskoin.Store.Common: class (StoreReadBase m) => StoreReadExtra m
+ Haskoin.Store.Common: class StoreReadBase m => StoreReadExtra (m :: Type -> Type)
- Haskoin.Store.Common: class StoreWrite m
+ Haskoin.Store.Common: class StoreWrite (m :: Type -> Type)
- Haskoin.Store.Common: joinDescStreams :: (Monad m, Ord a) => [ConduitT () a m ()] -> ConduitT () a m ()
+ Haskoin.Store.Common: joinDescStreams :: forall (m :: Type -> Type) a. (Monad m, Ord a) => [ConduitT () a m ()] -> ConduitT () a m ()
- Haskoin.Store.Logic: type MonadImport m = (MonadError ImportException m, MonadLoggerIO m, StoreReadBase m, StoreWrite m)
+ Haskoin.Store.Logic: type MonadImport (m :: Type -> Type) = (MonadError ImportException m, MonadLoggerIO m, StoreReadBase m, StoreWrite m)
- Haskoin.Store.Web: data () => Except
+ Haskoin.Store.Web: data Except
Files
- app/Main.hs +8/−8
- haskoin-store.cabal +10/−10
- src/Haskoin/Store/Cache.hs +3/−4
- src/Haskoin/Store/Web.hs +133/−133
app/Main.hs view
@@ -127,7 +127,7 @@ tickerURL :: !String, priceHistoryURL :: !String, noBlockchainInfo :: !Bool,- noSlow :: !Bool,+ noXPub :: !Bool, healthCheckInterval :: !Int, bloom :: !Bool }@@ -205,8 +205,8 @@ env "PRICE_HISTORY_URL" priceHistoryString pure noBlockchainInfo <- env "NO_BLOCKCHAIN_INFO" False parseBool- noSlow <-- env "NO_SLOW" False parseBool+ noXPub <-+ env "NO_XPUB" False parseBool healthCheckInterval <- env "HEALTH_CHECK_INTERVAL" 30 readMaybe bloom <-@@ -516,10 +516,10 @@ flag c.noBlockchainInfo True $ long "no-blockchain-info" <> help "Disable Blockchain.info-style API endpoints"- noSlow <-- flag c.noSlow True $- long "no-slow"- <> help "Disable potentially slow API endpoints"+ noXPub <-+ flag c.noXPub True $+ long "no-xpub"+ <> help "Disable extended public key support" healthCheckInterval <- option auto $ metavar "SECONDS"@@ -608,7 +608,7 @@ tickerRefresh = cfg.tickerRefresh, tickerURL = cfg.tickerURL, priceHistoryURL = cfg.priceHistoryURL,- noSlow = cfg.noSlow,+ noXPub = cfg.noXPub, noBlockchainInfo = cfg.noBlockchainInfo, healthCheckInterval = cfg.healthCheckInterval }
haskoin-store.cabal view
@@ -1,17 +1,17 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.37.0.+-- This file has been generated from package.yaml by hpack version 0.38.0. -- -- see: https://github.com/sol/hpack name: haskoin-store-version: 1.5.14+version: 1.5.16 synopsis: Storage and index for Bitcoin and Bitcoin Cash-description: Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme>+description: Please see the README on GitHub at <https://github.com/jprupp/haskoin-store#readme> category: Bitcoin, Finance, Network-homepage: http://github.com/haskoin/haskoin-store#readme-bug-reports: http://github.com/haskoin/haskoin-store/issues-author: Jean-Pierre Rupp+homepage: http://github.com/jprupp/haskoin-store#readme+bug-reports: http://github.com/jprupp/haskoin-store/issues+author: JP Rupp maintainer: jprupp@protonmail.ch license: MIT license-file: LICENSE@@ -19,7 +19,7 @@ source-repository head type: git- location: https://github.com/haskoin/haskoin-store.git+ location: https://github.com/jprupp/haskoin-store.git library exposed-modules:@@ -54,7 +54,7 @@ , hashtables >=1.2.4.2 , haskoin-core >=1.0.0 , haskoin-node >=1.0.0- , haskoin-store-data ==1.4.0+ , haskoin-store-data ==1.5.16 , hedis >=0.12.13 , http-types >=0.12.3 , lens >=4.18.1@@ -108,7 +108,7 @@ , haskoin-core >=1.0.0 , haskoin-node >=1.0.0 , haskoin-store- , haskoin-store-data ==1.4.0+ , haskoin-store-data ==1.5.16 , hedis >=0.12.13 , http-types >=0.12.3 , lens >=4.18.1@@ -167,7 +167,7 @@ , haskoin-core >=1.0.0 , haskoin-node >=1.0.0 , haskoin-store- , haskoin-store-data ==1.4.0+ , haskoin-store-data ==1.5.16 , hedis >=0.12.13 , hspec >=2.7.1 , http-types >=0.12.3
src/Haskoin/Store/Cache.hs view
@@ -732,9 +732,8 @@ } Redis.setOpts l "locked" opts -unlockIt :: (MonadLoggerIO m) => ByteString -> Bool -> CacheX m ()-unlockIt l False = return ()-unlockIt l True = void $ runRedis (Redis.del [l])+unlockIt :: (MonadLoggerIO m) => ByteString -> CacheX m ()+unlockIt l = void $ runRedis (Redis.del [l]) withLock :: (MonadLoggerIO m, MonadUnliftIO m) =>@@ -742,7 +741,7 @@ CacheX m a -> CacheX m (Maybe a) withLock l f =- bracket (lockIt l) (unlockIt l) $ \case+ bracket (lockIt l) (`when` unlockIt l) $ \case True -> Just <$> go False -> return Nothing where
src/Haskoin/Store/Web.hs view
@@ -254,7 +254,7 @@ tickerRefresh :: !Int, tickerURL :: !String, priceHistoryURL :: !String,- noSlow :: !Bool,+ noXPub :: !Bool, noBlockchainInfo :: !Bool, healthCheckInterval :: !Int }@@ -516,7 +516,7 @@ S.notFound $ raise ThingNotFound where priceUpdater session =- unless (config.noSlow || config.noBlockchainInfo)+ unless config.noBlockchainInfo . price config.store.net session@@ -673,104 +673,104 @@ scottyHealth toEncoding toJSON+ pathCompact+ (GetMempool <$> paramOptional <*> parseOffset)+ (fmap SerialList . scottyMempool)+ toEncoding+ toJSON+ pathCompact+ (GetBlocks <$> paramRequired <*> paramDef)+ (fmap SerialList . scottyBlocks)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetBlockRaw <$> paramCapture)+ scottyBlockRaw+ toEncoding+ toJSON+ pathCompact+ (GetBlockBestRaw & return)+ scottyBlockBestRaw+ toEncoding+ toJSON+ pathCompact+ (GetBlockLatest <$> paramDef)+ (fmap SerialList . scottyBlockLatest)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetBlockHeights <$> paramRequired <*> paramDef)+ (fmap SerialList . scottyBlockHeights)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetBlockHeightRaw <$> paramCapture)+ scottyBlockHeightRaw+ toEncoding+ toJSON+ pathCompact+ (GetBlockTimeRaw <$> paramCapture)+ scottyBlockTimeRaw+ toEncoding+ toJSON+ pathCompact+ (GetBlockMTPRaw <$> paramCapture)+ scottyBlockMTPRaw+ toEncoding+ toJSON+ pathCompact+ (GetTxs <$> paramRequired)+ (fmap SerialList . scottyTxs)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetTxsRaw <$> paramRequired)+ scottyTxsRaw+ toEncoding+ toJSON+ pathCompact+ (GetTxsBlock <$> paramCapture)+ (fmap SerialList . scottyTxsBlock)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetTxsBlockRaw <$> paramCapture)+ scottyTxsBlockRaw+ toEncoding+ toJSON+ pathCompact+ (GetTxAfter <$> paramCapture <*> paramCapture)+ scottyTxAfter+ toEncoding+ toJSON+ pathCompact+ (GetAddrsTxs <$> paramRequired <*> parseLimits)+ (fmap SerialList . scottyAddrsTxs)+ toEncoding+ toJSON+ pathCompact+ (GetAddrTxsFull <$> paramCapture <*> parseLimits)+ (fmap SerialList . scottyAddrTxsFull)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetAddrsTxsFull <$> paramRequired <*> parseLimits)+ (fmap SerialList . scottyAddrsTxsFull)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetAddrsBalance <$> paramRequired)+ (fmap SerialList . scottyAddrsBalance)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get))+ pathCompact+ (GetAddrsUnspent <$> paramRequired <*> parseLimits)+ (fmap SerialList . scottyAddrsUnspent)+ (list (marshalEncoding net) . (.get))+ (json_list (marshalValue net) . (.get)) S.get "/events" scottyEvents- unless cfg.noSlow $ do- S.get "/dbstats" scottyDbStats- pathCompact- (GetMempool <$> paramOptional <*> parseOffset)- (fmap SerialList . scottyMempool)- toEncoding- toJSON- pathCompact- (GetBlocks <$> paramRequired <*> paramDef)- (fmap SerialList . scottyBlocks)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetBlockRaw <$> paramCapture)- scottyBlockRaw- toEncoding- toJSON- pathCompact- (GetBlockBestRaw & return)- scottyBlockBestRaw- toEncoding- toJSON- pathCompact- (GetBlockLatest <$> paramDef)- (fmap SerialList . scottyBlockLatest)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetBlockHeights <$> paramRequired <*> paramDef)- (fmap SerialList . scottyBlockHeights)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetBlockHeightRaw <$> paramCapture)- scottyBlockHeightRaw- toEncoding- toJSON- pathCompact- (GetBlockTimeRaw <$> paramCapture)- scottyBlockTimeRaw- toEncoding- toJSON- pathCompact- (GetBlockMTPRaw <$> paramCapture)- scottyBlockMTPRaw- toEncoding- toJSON- pathCompact- (GetTxs <$> paramRequired)- (fmap SerialList . scottyTxs)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetTxsRaw <$> paramRequired)- scottyTxsRaw- toEncoding- toJSON- pathCompact- (GetTxsBlock <$> paramCapture)- (fmap SerialList . scottyTxsBlock)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetTxsBlockRaw <$> paramCapture)- scottyTxsBlockRaw- toEncoding- toJSON- pathCompact- (GetTxAfter <$> paramCapture <*> paramCapture)- scottyTxAfter- toEncoding- toJSON- pathCompact- (GetAddrsTxs <$> paramRequired <*> parseLimits)- (fmap SerialList . scottyAddrsTxs)- toEncoding- toJSON- pathCompact- (GetAddrTxsFull <$> paramCapture <*> parseLimits)- (fmap SerialList . scottyAddrTxsFull)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetAddrsTxsFull <$> paramRequired <*> parseLimits)- (fmap SerialList . scottyAddrsTxsFull)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetAddrsBalance <$> paramRequired)- (fmap SerialList . scottyAddrsBalance)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))- pathCompact- (GetAddrsUnspent <$> paramRequired <*> parseLimits)- (fmap SerialList . scottyAddrsUnspent)- (list (marshalEncoding net) . (.get))- (json_list (marshalValue net) . (.get))+ S.get "/dbstats" scottyDbStats+ unless cfg.noXPub $ do pathCompact (GetXPub <$> paramCapture <*> paramDef <*> paramDef) scottyXPub@@ -801,40 +801,40 @@ scottyDelXPub toEncoding toJSON- unless cfg.noBlockchainInfo $ do- S.post "/blockchain/multiaddr" scottyMultiAddr- S.get "/blockchain/multiaddr" scottyMultiAddr- S.get "/blockchain/balance" scottyShortBal- S.post "/blockchain/balance" scottyShortBal- S.get "/blockchain/rawaddr/:addr" scottyRawAddr- S.get "/blockchain/address/:addr" scottyRawAddr- S.get "/blockchain/xpub/:addr" scottyRawAddr- S.post "/blockchain/unspent" scottyBinfoUnspent- S.get "/blockchain/unspent" scottyBinfoUnspent- S.get "/blockchain/rawtx/:txid" scottyBinfoTx- S.get "/blockchain/rawblock/:block" scottyBinfoBlock- S.get "/blockchain/latestblock" scottyBinfoLatest- S.get "/blockchain/unconfirmed-transactions" scottyBinfoMempool- S.get "/blockchain/block-height/:height" scottyBinfoBlockHeight- S.get "/blockchain/blocks/:milliseconds" scottyBinfoBlocksDay- S.get "/blockchain/export-history" scottyBinfoHistory- S.post "/blockchain/export-history" scottyBinfoHistory- S.get "/blockchain/q/addresstohash/:addr" scottyBinfoAddrToHash- S.get "/blockchain/q/hashtoaddress/:hash" scottyBinfoHashToAddr- S.get "/blockchain/q/addrpubkey/:pubkey" scottyBinfoAddrPubkey- S.get "/blockchain/q/pubkeyaddr/:addr" scottyBinfoPubKeyAddr- S.get "/blockchain/q/hashpubkey/:pubkey" scottyBinfoHashPubkey- S.get "/blockchain/q/getblockcount" scottyBinfoGetBlockCount- S.get "/blockchain/q/latesthash" scottyBinfoLatestHash- S.get "/blockchain/q/bcperblock" scottyBinfoSubsidy- S.get "/blockchain/q/txtotalbtcoutput/:txid" scottyBinfoTotalOut- S.get "/blockchain/q/txtotalbtcinput/:txid" scottyBinfoTotalInput- S.get "/blockchain/q/txfee/:txid" scottyBinfoTxFees- S.get "/blockchain/q/txresult/:txid/:addr" scottyBinfoTxResult- S.get "/blockchain/q/getreceivedbyaddress/:addr" scottyBinfoReceived- S.get "/blockchain/q/getsentbyaddress/:addr" scottyBinfoSent- S.get "/blockchain/q/addressbalance/:addr" scottyBinfoAddrBalance- S.get "/blockchain/q/addressfirstseen/:addr" scottyFirstSeen+ unless cfg.noBlockchainInfo $ do+ S.post "/blockchain/multiaddr" scottyMultiAddr+ S.get "/blockchain/multiaddr" scottyMultiAddr+ S.get "/blockchain/balance" scottyShortBal+ S.post "/blockchain/balance" scottyShortBal+ S.get "/blockchain/rawaddr/:addr" scottyRawAddr+ S.get "/blockchain/address/:addr" scottyRawAddr+ S.get "/blockchain/xpub/:addr" scottyRawAddr+ S.post "/blockchain/unspent" scottyBinfoUnspent+ S.get "/blockchain/unspent" scottyBinfoUnspent+ S.get "/blockchain/rawtx/:txid" scottyBinfoTx+ S.get "/blockchain/rawblock/:block" scottyBinfoBlock+ S.get "/blockchain/latestblock" scottyBinfoLatest+ S.get "/blockchain/unconfirmed-transactions" scottyBinfoMempool+ S.get "/blockchain/block-height/:height" scottyBinfoBlockHeight+ S.get "/blockchain/blocks/:milliseconds" scottyBinfoBlocksDay+ S.get "/blockchain/export-history" scottyBinfoHistory+ S.post "/blockchain/export-history" scottyBinfoHistory+ S.get "/blockchain/q/addresstohash/:addr" scottyBinfoAddrToHash+ S.get "/blockchain/q/hashtoaddress/:hash" scottyBinfoHashToAddr+ S.get "/blockchain/q/addrpubkey/:pubkey" scottyBinfoAddrPubkey+ S.get "/blockchain/q/pubkeyaddr/:addr" scottyBinfoPubKeyAddr+ S.get "/blockchain/q/hashpubkey/:pubkey" scottyBinfoHashPubkey+ S.get "/blockchain/q/getblockcount" scottyBinfoGetBlockCount+ S.get "/blockchain/q/latesthash" scottyBinfoLatestHash+ S.get "/blockchain/q/bcperblock" scottyBinfoSubsidy+ S.get "/blockchain/q/txtotalbtcoutput/:txid" scottyBinfoTotalOut+ S.get "/blockchain/q/txtotalbtcinput/:txid" scottyBinfoTotalInput+ S.get "/blockchain/q/txfee/:txid" scottyBinfoTxFees+ S.get "/blockchain/q/txresult/:txid/:addr" scottyBinfoTxResult+ S.get "/blockchain/q/getreceivedbyaddress/:addr" scottyBinfoReceived+ S.get "/blockchain/q/getsentbyaddress/:addr" scottyBinfoSent+ S.get "/blockchain/q/addressbalance/:addr" scottyBinfoAddrBalance+ S.get "/blockchain/q/addressfirstseen/:addr" scottyFirstSeen where json_list f = toJSONList . map f net = cfg.store.net