packages feed

web3 0.5.0.0 → 0.5.1.0

raw patch · 9 files changed

+59/−36 lines, 9 filesdep ~web3PVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: web3

API changes (from Hackage documentation)

- Network.Ethereum.Web3.Types: class Provider a where runWeb3' = liftIO . try . unWeb3 forkWeb3 = Web3 . forkIO . unWeb3
- Network.Ethereum.Web3.Types: data DefaultProvider
- Network.Ethereum.Web3.Types: forkWeb3 :: Provider a => Web3 a () -> Web3 a ThreadId
- Network.Ethereum.Web3.Types: instance Network.Ethereum.Web3.Types.Provider Network.Ethereum.Web3.Types.DefaultProvider
- Network.Ethereum.Web3.Types: rpcUri :: Provider a => Web3 a String
- Network.Ethereum.Web3.Types: runWeb3 :: MonadIO m => Web3 DefaultProvider b -> m (Either Web3Error b)
- Network.Ethereum.Web3.Types: runWeb3' :: (Provider a, MonadIO m) => Web3 a b -> m (Either Web3Error b)
+ Network.Ethereum.Web3.Provider: class Provider a
+ Network.Ethereum.Web3.Provider: data DefaultProvider
+ Network.Ethereum.Web3.Provider: forkWeb3 :: Web3 a () -> Web3 a ThreadId
+ Network.Ethereum.Web3.Provider: instance Network.Ethereum.Web3.Provider.Provider Network.Ethereum.Web3.Provider.DefaultProvider
+ Network.Ethereum.Web3.Provider: rpcUri :: Provider a => Web3 a String
+ Network.Ethereum.Web3.Provider: runWeb3 :: MonadIO m => Web3 DefaultProvider b -> m (Either Web3Error b)
+ Network.Ethereum.Web3.Provider: runWeb3' :: MonadIO m => Web3 a b -> m (Either Web3Error b)
- Network.Ethereum.Web3: class Provider a where runWeb3' = liftIO . try . unWeb3 forkWeb3 = Web3 . forkIO . unWeb3
+ Network.Ethereum.Web3: class Provider a
- Network.Ethereum.Web3: forkWeb3 :: Provider a => Web3 a () -> Web3 a ThreadId
+ Network.Ethereum.Web3: forkWeb3 :: Web3 a () -> Web3 a ThreadId
- Network.Ethereum.Web3: runWeb3' :: (Provider a, MonadIO m) => Web3 a b -> m (Either Web3Error b)
+ Network.Ethereum.Web3: runWeb3' :: MonadIO m => Web3 a b -> m (Either Web3Error b)

Files

src/Network/Ethereum/Unit.hs view
@@ -54,12 +54,11 @@   , KEther   ) where -import Data.Text.Lazy.Builder (toLazyText)-import Data.Text.Lazy.Builder.RealFloat import Text.ParserCombinators.ReadPrec import Data.Text.Lazy (Text, unpack) import qualified Text.Read.Lex as L import Data.Monoid ((<>))+import Text.Printf import GHC.Read  -- | Ethereum value unit@@ -110,9 +109,8 @@     fromRational = mkValue  instance UnitSpec a => Show (Value a) where-    show val = unpack (toLazyText floatValue <> " " <> name val)+    show val = printf "%F %s" (x / d :: Double) (name val)       where-        floatValue = formatRealFloat Fixed (Just 2) (x / d)         x = fromIntegral (unValue val)         d = divider val 
src/Network/Ethereum/Web3.hs view
@@ -22,6 +22,8 @@   , Provider(..)   , DefaultProvider   , Web3Error(..)+  , forkWeb3+  , runWeb3'   , runWeb3   -- ** Contract actions   , EventAction(..)@@ -40,6 +42,7 @@ import Network.Ethereum.Web3.Encoding.Tuple import Network.Ethereum.Web3.Contract import Network.Ethereum.Web3.Encoding+import Network.Ethereum.Web3.Provider import Network.Ethereum.Web3.Address import Network.Ethereum.Web3.Types import Network.Ethereum.Unit
src/Network/Ethereum/Web3/Api.hs view
@@ -11,6 +11,7 @@ -- module Network.Ethereum.Web3.Api where +import Network.Ethereum.Web3.Provider import Network.Ethereum.Web3.Address import Network.Ethereum.Web3.JsonRpc import Network.Ethereum.Web3.Types
src/Network/Ethereum/Web3/Contract.hs view
@@ -36,11 +36,13 @@ import qualified Data.Text.Lazy.Builder     as B import Control.Concurrent (ThreadId, threadDelay) import Control.Monad.IO.Class (liftIO)+import Control.Exception (throwIO) import Data.Text.Lazy (toStrict) import qualified Data.Text as T import Data.Maybe (catMaybes) import Data.Monoid ((<>)) +import Network.Ethereum.Web3.Provider import Network.Ethereum.Web3.Encoding import Network.Ethereum.Web3.Address import Network.Ethereum.Web3.Types@@ -133,7 +135,7 @@ _call to mode dat = do     res <- eth_call txdata mode     case fromData (T.drop 2 res) of-        Nothing -> fail $+        Nothing -> liftIO $ throwIO $ ParserFail $             "Unable to parse result on `" ++ T.unpack res             ++ "` from `" ++ show to ++ "`"         Just x -> return x
src/Network/Ethereum/Web3/JsonRpc.hs view
@@ -18,6 +18,7 @@   , ServerUri   ) where +import Network.Ethereum.Web3.Provider import Network.Ethereum.Web3.Types  import Network.HTTP.Client (httpLbs, newManager, requestBody,
+ src/Network/Ethereum/Web3/Provider.hs view
@@ -0,0 +1,43 @@+-- |+-- Module      :  Network.Ethereum.Web3.Provider+-- Copyright   :  Alexander Krupenkin 2016+-- License     :  BSD3+--+-- Maintainer  :  mail@akru.me+-- Stability   :  experimental+-- Portability :  portable+--+-- Web3 service provider.+--+module Network.Ethereum.Web3.Provider where++import Control.Concurrent (forkIO, ThreadId)+import Control.Monad.IO.Class (MonadIO(..))+import Network.Ethereum.Web3.Types+import Control.Exception (try)++-- | Ethereum node service provider+class Provider a where+    -- | JSON-RPC provider URI, default: localhost:8545+    rpcUri :: Web3 a String++-- | Default 'Web3' service provider+data DefaultProvider++instance Provider DefaultProvider where+    rpcUri = return "http://localhost:8545"++-- | 'Web3' monad runner+runWeb3' :: MonadIO m => Web3 a b -> m (Either Web3Error b)+{-# INLINE runWeb3' #-}+runWeb3' = liftIO . try . unWeb3++-- | 'Web3' runner for default provider+runWeb3 :: MonadIO m => Web3 DefaultProvider b -> m (Either Web3Error b)+{-# INLINE runWeb3 #-}+runWeb3 = runWeb3'++-- | Fork 'Web3' with the same 'Provider'+forkWeb3 :: Web3 a () -> Web3 a ThreadId+{-# INLINE forkWeb3 #-}+forkWeb3 = Web3 . forkIO . unWeb3
src/Network/Ethereum/Web3/TH.hs view
@@ -44,6 +44,7 @@ import Network.Ethereum.Web3.Address (Address) import Network.Ethereum.Web3.Encoding.Tuple import Network.Ethereum.Web3.Encoding+import Network.Ethereum.Web3.Provider import Network.Ethereum.Web3.Internal import Network.Ethereum.Web3.Contract import Network.Ethereum.Web3.JsonAbi
src/Network/Ethereum/Web3/Types.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE DefaultSignatures          #-} {-# LANGUAGE TemplateHaskell            #-} -- | -- Module      :  Network.Ethereum.Web3.Types@@ -20,9 +19,8 @@ import qualified Data.Text.Lazy.Builder     as B import qualified Data.Text.Read             as R import Network.Ethereum.Web3.Address (Address)-import Control.Monad.IO.Class (MonadIO(..))-import Control.Concurrent (forkIO, ThreadId)-import Control.Exception (Exception, try)+import Control.Monad.IO.Class (MonadIO)+import Control.Exception (Exception) import Data.Typeable (Typeable) import Data.Monoid ((<>)) import Data.Text (Text)@@ -32,31 +30,6 @@ -- | Any communication with Ethereum node wrapped with 'Web3' monad newtype Web3 a b = Web3 { unWeb3 :: IO b }   deriving (Functor, Applicative, Monad, MonadIO)---- | Ethereum node service provider-class Provider a where-    -- | JSON-RPC provider URI, default: localhost:8545-    rpcUri :: Web3 a String--    -- | 'Web3' monad runner-    runWeb3' :: MonadIO m => Web3 a b -> m (Either Web3Error b)-    {-# INLINE runWeb3' #-}-    runWeb3' = liftIO . try . unWeb3--    -- | Fork 'Web3' with the same 'Provider'-    forkWeb3 :: Web3 a () -> Web3 a ThreadId-    {-# INLINE forkWeb3 #-}-    forkWeb3 = Web3 . forkIO . unWeb3---- | Default 'Web3' service provider-data DefaultProvider-instance Provider DefaultProvider where-    rpcUri = return "http://localhost:8545"---- | 'Web3' runner for default provider-runWeb3 :: MonadIO m => Web3 DefaultProvider b -> m (Either Web3Error b)-{-# INLINE runWeb3 #-}-runWeb3 = runWeb3'  -- | Some peace of error response data Web3Error
web3.cabal view
@@ -1,5 +1,5 @@ name: web3-version: 0.5.0.0+version: 0.5.1.0 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -29,6 +29,7 @@         Network.Ethereum.Web3.Types         Network.Ethereum.Web3.Address         Network.Ethereum.Web3.JsonAbi+        Network.Ethereum.Web3.Provider         Network.Ethereum.Web3.Encoding         Network.Ethereum.Web3.Contract         Network.Ethereum.Web3.Encoding.Bytes@@ -63,7 +64,7 @@         base >=4.9.0.0 && <4.10,         memory ==0.13.*,         text >=1.2.2.1 && <1.3,-        web3 >=0.5.0.0 && <0.6+        web3 >=0.5.1.0 && <0.6     default-language: Haskell2010     default-extensions: OverloadedStrings     hs-source-dirs: test