packages feed

bitcoin-api-extra 0.9.0 → 0.9.1

raw patch · 4 files changed

+28/−33 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

README.md view
@@ -1,10 +1,13 @@-haskell-bitcoin-script
-==================
+haskell-bitcoin-api-extra
+=========================
 
-[![Build Status](https://travis-ci.org/solatis/haskell-bitcoin-script.png?branch=master)](https://travis-ci.org/solatis/haskell-bitcoin-script)
-[![Coverage Status](https://coveralls.io/repos/solatis/haskell-bitcoin-script/badge.svg?branch=master)](https://coveralls.io/r/solatis/haskell-bitcoin-script?branch=master)
+[![Build Status](https://travis-ci.org/solatis/haskell-bitcoin-api-extra.png?branch=master)](https://travis-ci.org/solatis/haskell-bitcoin-api-extra)
+[![Coverage Status](https://coveralls.io/repos/solatis/haskell-bitcoin-api-extra/badge.svg?branch=master)](https://coveralls.io/r/solatis/haskell-bitcoin-api-extra?branch=master)
 [![MIT](http://b.repl.ca/v1/license-MIT-blue.png)](http://en.wikipedia.org/wiki/MIT_License)
 [![Haskell](http://b.repl.ca/v1/language-haskell-lightgrey.png)](http://haskell.org)
 
-This library provides utilities for compiling, manipulation and decompiling of
-Bitcoin scripts.
+Where `bitcoin-api` focusses solely on interacting with the Bitcoin Core client,
+this library attempts to provide higher level constructs on top of that API.
+
+It provides a collection of algorithms and useful interfaces for communicating
+with Bitcoin.
bitcoin-api-extra.cabal view
@@ -1,6 +1,6 @@ name: bitcoin-api-extra
 category: Network, Finance
-version: 0.9.0
+version: 0.9.1
 license: MIT
 license-file: LICENSE
 copyright: (c) 2015 Leon Mergen
@@ -33,6 +33,7 @@                      , text
                      , bytestring
                      , binary
+                     , lens
 
                      , conduit
                      , transformers
src/Control/Bitcoin/Api/Transaction.hs view
@@ -1,35 +1,24 @@ {-# LANGUAGE OverloadedStrings #-}
 
--- | This module provides functionality to manipulate raw transaction. It
---   automatically interprets transactions using the `bitcoin-tx` package, so
---   you can work with actual 'Btc.Transaction' objects rather than their
---   serialized format.
-
 module Control.Bitcoin.Api.Transaction where
 
-import           Data.Maybe                                   (fromMaybe)
-
-import qualified Data.Conduit                                 as C (Source)
-
-import           Control.Concurrent                           (forkIO,
-                                                               killThread,
-                                                               myThreadId,
-                                                               threadDelay)
-import           Control.Concurrent.STM.TBMQueue              (isClosedTBMQueue,
-                                                               newTBMQueue,
-                                                               writeTBMQueue)
-import           Control.Monad                                (unless)
-import           Control.Monad.IO.Class                       (liftIO)
-import           Control.Monad.STM                            (atomically)
-import           Data.Conduit.TQueue                          (sourceTBMQueue)
+import qualified Data.Conduit                    as C (Source)
 
-import qualified Data.Bitcoin.Transaction                     as Btc
-import qualified Data.Bitcoin.Block                           as Btc
+import           Control.Concurrent              (forkIO, killThread,
+                                                  myThreadId, threadDelay)
+import           Control.Concurrent.STM.TBMQueue (isClosedTBMQueue, newTBMQueue,
+                                                  writeTBMQueue)
+import           Control.Lens                    ((^.))
+import           Control.Monad                   (unless)
+import           Control.Monad.IO.Class          (liftIO)
+import           Control.Monad.STM               (atomically)
+import           Data.Conduit.TQueue             (sourceTBMQueue)
 
-import qualified Network.Bitcoin.Api.Blockchain               as Blockchain
-import qualified Network.Bitcoin.Api.Types                    as T
+import qualified Data.Bitcoin.Block              as Btc
+import qualified Data.Bitcoin.Transaction        as Btc
 
-import           Network.Bitcoin.Api.Types.UnspentTransaction hiding (confirmations)
+import qualified Network.Bitcoin.Api.Blockchain  as Blockchain
+import qualified Network.Bitcoin.Api.Types       as T
 
 -- | Watches incoming transactions and yields new transactions as soon as they
 --   are are inside a block. This is modelled as a Conduit 'C.Source', which means
@@ -71,7 +60,7 @@       tid   <- myThreadId
 
 
-      result <- mapM (insert chan) (Btc.blockTxns block)
+      result <- mapM (insert chan) (block ^. Btc.blockTxns)
       let isClosed = False `elem` result
 
       if isClosed
test/Control/Bitcoin/Api/TransactionSpec.hs view
@@ -13,6 +13,7 @@ import           Network.Bitcoin.Api.Types.UnspentTransaction (amount)
 import qualified Network.Bitcoin.Api.Wallet                   as Wallet
 
+import qualified Control.Bitcoin.Api.Transaction              as Transaction
 import           Control.Bitcoin.Api.TestUtil                 (testClient)
 import           Test.Hspec
 
@@ -22,6 +23,7 @@     it "can watch for new transactions" $ do
       testClient $ \client -> do
 
+        _                <- Mining.generate client 10
         result <- newEmptyMVar
 
         -- This forks a thread, consumes a single transaction from the conduit,