haskoin-node 0.16.0 → 0.17.0
raw patch · 3 files changed
+19/−9 lines, 3 filesdep ~haskoin-core
Dependency ranges changed: haskoin-core
Files
- CHANGELOG.md +5/−0
- haskoin-node.cabal +5/−5
- src/Haskoin/Node/Chain.hs +9/−4
CHANGELOG.md view
@@ -4,6 +4,11 @@ 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.17.0+### Added+- Support for Bitcoin Cash November 2020 hard fork.+- BlockHeaders instance for ReaderT Chain.+ ## 0.16.0 ### Changed - Add support for column families.
haskoin-node.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0.+-- This file has been generated from package.yaml by hpack version 0.34.2. -- -- see: https://github.com/sol/hpack ----- hash: b80c691ed899f492d1f0f3165f9f4a78f85253ba1a6bd61a3b4705075572ccae+-- hash: bfbf80f5bef5255eb74c1b030e32037fa23ac5c7e70f0fd73930bd675232580a name: haskoin-node-version: 0.16.0+version: 0.17.0 synopsis: P2P library for Bitcoin and Bitcoin Cash description: Please see the README on GitHub at <https://github.com/haskoin/haskoin-node#readme> category: Bitcoin, Finance, Network@@ -45,7 +45,7 @@ , containers , data-default , hashable- , haskoin-core >=0.15.0+ , haskoin-core >=0.17.0 , monad-logger , mtl , network@@ -81,7 +81,7 @@ , containers , data-default , hashable- , haskoin-core >=0.15.0+ , haskoin-core >=0.17.0 , haskoin-node , hspec , monad-logger
src/Haskoin/Node/Chain.hs view
@@ -29,7 +29,7 @@ import Control.Monad.Except (runExceptT, throwError) import Control.Monad.Logger (MonadLoggerIO, logDebugS, logErrorS, logInfoS)-import Control.Monad.Reader (MonadReader, ReaderT, asks,+import Control.Monad.Reader (MonadReader, ReaderT (..), asks, runReaderT) import Control.Monad.Trans (lift) import Control.Monad.Trans.Maybe (MaybeT (..), runMaybeT)@@ -169,8 +169,7 @@ return BestBlockKey put BestBlockKey = putWord8 0x91 -instance (Monad m, MonadIO m, MonadReader ChainConfig m) =>- BlockHeaders m where+instance MonadIO m => BlockHeaders (ReaderT ChainConfig m) where addBlockHeader bn = do db <- asks chainConfDB asks chainConfColumnFamily >>= \case@@ -202,12 +201,18 @@ f Nothing bn = insertOp (BlockHeaderKey (h bn)) bn f (Just cf) bn = insertOpCF cf (BlockHeaderKey (h bn)) bn +instance MonadIO m => BlockHeaders (ReaderT Chain m) where+ getBlockHeader bh = ReaderT $ chainGetBlock bh+ getBestBlockHeader = ReaderT chainGetBest+ addBlockHeader _ = undefined+ setBestBlockHeader _ = undefined+ addBlockHeaders _ = undefined+ withBlockHeaders :: MonadChain m => ReaderT ChainConfig m a -> m a withBlockHeaders f = do cfg <- asks myConfig runReaderT f cfg --- | Launch process to synchronize block headers in current thread. withChain :: (MonadUnliftIO m, MonadLoggerIO m) => ChainConfig