web3 0.8.3.2 → 0.8.4.0
raw patch · 13 files changed
+531/−421 lines, 13 filesdep ~aesondep ~basedep ~containers
Dependency ranges changed: aeson, base, containers, cryptonite, memory, microlens-mtl, template-haskell, time, vinyl
Files
- CHANGELOG.md +8/−0
- LICENSE +1/−1
- README.md +1/−1
- src/Language/Solidity/Abi.hs +25/−6
- src/Network/Ethereum/Account/LocalKey.hs +5/−2
- src/Network/Ethereum/Account/Personal.hs +8/−5
- src/Network/Ethereum/Api/Provider.hs +0/−1
- src/Network/Ethereum/Contract/TH.hs +24/−16
- src/Network/JsonRpc/TinyClient.hs +2/−2
- stack.yaml +3/−5
- unit/Language/Solidity/Test/AbiSpec.hs +63/−0
- unit/Network/Ethereum/Contract/Test/THSpec.hs +20/−0
- web3.cabal +371/−382
CHANGELOG.md view
@@ -1,6 +1,14 @@ # Changelog All notable changes to this project will be documented in this file. +## [0.8.4.0] 2020-05-03+### Added+- Tuple support for `pragma experimental ABIEncoderV2`+- Fixed dependencies bounds for stackage LTS-15++### Changed+- Fixed reusing of HTTP request Manager+ ## [0.8.3.2] 2019-05-13 ### Changed - Fixed dependencies bounds for stackage distribution
LICENSE view
@@ -1,4 +1,4 @@-Copyright Alexander Krupenkin (c) 2016-2018+Copyright Alexander Krupenkin (c) 2016-2020 All rights reserved.
README.md view
@@ -7,7 +7,7 @@ [](https://travis-ci.org/airalab/hs-web3) [](https://matrix.hackage.haskell.org/package/web3) [](http://hackage.haskell.org/package/web3)-[](http://stackage.org/lts-13/package/web3)+[](http://stackage.org/lts-14/package/web3) [](http://stackage.org/nightly/package/web3) [](https://www.codetriage.com/airalab/hs-web3) 
src/Language/Solidity/Abi.hs view
@@ -28,7 +28,8 @@ -- * Solidity type parser , SolidityType(..)- , parseSolidityType+ , parseSolidityFunctionArgType+ , parseSolidityEventArgType ) where import Control.Monad (void)@@ -54,6 +55,8 @@ -- ^ Argument name , funArgType :: Text -- ^ Argument type+ , funArgComponents :: Maybe [FunctionArg]+ -- ^ Argument components for tuples } deriving (Show, Eq, Ord) $(deriveJSON@@ -166,15 +169,22 @@ signature (DConstructor inputs) = "(" <> args inputs <> ")" where- args :: [FunctionArg] -> Text- args = T.dropEnd 1 . foldMap (<> ",") . fmap funArgType+ args [] = ""+ args [x] = funArgType x+ args (x:xs) = case funArgComponents x of+ Nothing -> funArgType x <> "," <> args xs+ Just cmps -> "(" <> args cmps <> ")," <> args xs signature (DFallback _) = "()" signature (DFunction name _ inputs _) = name <> "(" <> args inputs <> ")" where args :: [FunctionArg] -> Text- args = T.dropEnd 1 . foldMap (<> ",") . fmap funArgType+ args [] = ""+ args [x] = funArgType x+ args (x:xs) = case funArgComponents x of+ Nothing -> funArgType x <> "," <> args xs+ Just cmps -> "(" <> args cmps <> ")," <> args xs signature (DEvent name inputs _) = name <> "(" <> args inputs <> ")" where@@ -207,6 +217,7 @@ | SolidityString | SolidityBytesN Int | SolidityBytes+ | SolidityTuple Int [SolidityType] | SolidityVector [Int] SolidityType | SolidityArray SolidityType deriving (Eq, Show)@@ -280,5 +291,13 @@ , solidityBasicTypeParser ] -parseSolidityType :: Text -> Either ParseError SolidityType-parseSolidityType = parse solidityTypeParser "Solidity"+parseSolidityFunctionArgType :: FunctionArg -> Either ParseError SolidityType+parseSolidityFunctionArgType (FunctionArg _ typ mcmps) = case mcmps of+ Nothing -> parse solidityTypeParser "Solidity" typ+ Just cmps -> + SolidityTuple (length cmps) + <$> mapM parseSolidityFunctionArgType cmps+++parseSolidityEventArgType :: EventArg -> Either ParseError SolidityType+parseSolidityEventArgType (EventArg _ typ _) = parse solidityTypeParser "Solidity" typ
src/Network/Ethereum/Account/LocalKey.hs view
@@ -19,6 +19,7 @@ module Network.Ethereum.Account.LocalKey where +import Control.Monad.Catch (throwM) import Control.Monad.State.Strict (get, runStateT) import Control.Monad.Trans (lift) import Crypto.PubKey.ECC.ECDSA (PrivateKey)@@ -40,6 +41,7 @@ import qualified Network.Ethereum.Api.Eth as Eth (call, estimateGas, getTransactionCount, sendRawTransaction)+import Network.Ethereum.Api.Provider (Web3Error (ParserFail)) import Network.Ethereum.Api.Types (Call (..)) import Network.Ethereum.Chain (foundation) import Network.Ethereum.Contract.Method (selector)@@ -49,7 +51,8 @@ data LocalKey = LocalKey { localKeyPrivate :: !PrivateKey , localKeyChainId :: !Integer- } deriving (Eq, Show)+ }+ deriving (Eq, Show) instance Default LocalKey where def = LocalKey (importKey empty) foundation@@ -92,4 +95,4 @@ res <- lift $ Eth.call params _block case decode res of Right r -> return r- Left e -> fail e+ Left e -> lift $ throwM (ParserFail e)
src/Network/Ethereum/Account/Personal.hs view
@@ -19,6 +19,7 @@ module Network.Ethereum.Account.Personal where +import Control.Monad.Catch (throwM) import Control.Monad.State.Strict (get, runStateT) import Control.Monad.Trans (lift) import qualified Data.ByteArray as BA (convert)@@ -36,14 +37,16 @@ import qualified Network.Ethereum.Api.Eth as Eth (call, estimateGas) import Network.Ethereum.Api.Personal (Passphrase) import qualified Network.Ethereum.Api.Personal as Personal (sendTransaction)+import Network.Ethereum.Api.Provider (Web3Error (ParserFail)) import Network.Ethereum.Api.Types (Call (callData, callFrom, callGas)) import Network.Ethereum.Contract.Method (selector) -- | Unlockable node managed account params-data Personal = Personal {- personalAddress :: !Address- , personalPassphrase :: !Passphrase- } deriving (Eq, Show)+data Personal = Personal+ { personalAddress :: !Address+ , personalPassphrase :: !Passphrase+ }+ deriving (Eq, Show) instance Default Personal where def = Personal def ""@@ -80,4 +83,4 @@ res <- lift $ Eth.call params block case decode res of Right r -> return r- Left e -> fail e+ Left e -> lift $ throwM (ParserFail e)
src/Network/Ethereum/Api/Provider.hs view
@@ -1,7 +1,6 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-} -- | -- Module : Network.Ethereum.Api.Provider
src/Network/Ethereum/Contract/TH.hs view
@@ -74,7 +74,7 @@ EventArg (..), FunctionArg (..), SolidityType (..), eventId,- methodId, parseSolidityType)+ methodId, parseSolidityFunctionArgType, parseSolidityEventArgType) import Network.Ethereum.Account.Class (Account (..)) import Network.Ethereum.Api.Types (DefaultBlock (..), Filter (..), TxReceipt)@@ -118,6 +118,7 @@ SolidityString -> conT ''Text SolidityBytesN n -> appT (conT ''BytesN) (numLit n) SolidityBytes -> conT ''Bytes+ SolidityTuple n as -> foldl ( \b a -> appT b $ toHSType a ) ( tupleT n ) as SolidityVector ns a -> expandVector ns a SolidityArray a -> appT listT $ toHSType a where@@ -130,15 +131,21 @@ else conT ''ListN `appT` numLit n `appT` expandVector rest a _ -> error $ "Impossible Nothing branch in `expandVector`: " ++ show ns ++ " " ++ show a -typeQ :: Text -> TypeQ-typeQ t = case parseSolidityType t of+typeFuncQ :: FunctionArg -> TypeQ+typeFuncQ t = case parseSolidityFunctionArgType t of Left e -> error $ "Unable to parse solidity type: " ++ show e Right ty -> toHSType ty +typeEventQ :: EventArg -> TypeQ+typeEventQ t = case parseSolidityEventArgType t of+ Left e -> error $ "Unable to parse solidity type: " ++ show e+ Right ty -> toHSType ty++ -- | Function argument to TH type funBangType :: FunctionArg -> BangTypeQ-funBangType (FunctionArg _ typ) =- bangType (bang sourceNoUnpack sourceStrict) (typeQ typ)+funBangType fa =+ bangType (bang sourceNoUnpack sourceStrict) (typeFuncQ fa) funWrapper :: Bool -- ^ Is constant?@@ -159,11 +166,11 @@ let params = appsE $ conE dname : fmap varE vars- inputT = fmap (typeQ . funArgType) args+ inputT = fmap typeFuncQ args outputT = case result of Nothing -> [t|$t $m ()|]- Just [x] -> [t|$t $m $(typeQ $ funArgType x)|]- Just xs -> let outs = fmap (typeQ . funArgType) xs+ Just [x] -> [t|$t $m $(typeFuncQ x)|]+ Just xs -> let outs = fmap typeFuncQ xs in [t|$t $m $(foldl appT (tupleT (length xs)) outs)|] sequence [@@ -193,7 +200,7 @@ , instanceD' nonIndexedName (conT ''Generic) [] , instanceD' nonIndexedName (conT ''AbiType) [funD' 'isDynamic [] [|const False|]] , instanceD' nonIndexedName (conT ''AbiGet) []- , dataD' allName (recC allName (map (\(n, a) -> (\(b,t) -> return (n,b,t)) <=< toBang <=< typeQ $ a) allArgs)) derivingD+ , dataD' allName (recC allName (map (\(n, a) -> (\(b,t) -> return (n,b,t)) <=< toBang <=< typeEventQ $ a) allArgs)) derivingD , instanceD' allName (conT ''Generic) [] , instanceD (cxt []) (pure $ ConT ''IndexedEvent `AppT` ConT indexedName `AppT` ConT nonIndexedName `AppT` ConT allName)@@ -206,13 +213,14 @@ name = if Char.toLower (T.head uncheckedName) == Char.toUpper (T.head uncheckedName) then "EvT" <> uncheckedName else uncheckedName topics = [Just (T.unpack $ eventId ev)] <> replicate (length indexedArgs) Nothing toBang ty = bangType (bang sourceNoUnpack sourceStrict) (return ty)- tag (n, ty) = AppT (AppT (ConT ''Tagged) (LitT $ NumTyLit n)) <$> typeQ ty+ tag (n, ty) = AppT (AppT (ConT ''Tagged) (LitT $ NumTyLit n)) <$> typeEventQ ty labeledArgs = zip [1..] inputs- indexedArgs = map (\(n, ea) -> (n, eveArgType ea)) . filter (eveArgIndexed . snd) $ labeledArgs+ indexedArgs = map (\(n, ea) -> (n, ea)) . filter (eveArgIndexed . snd) $ labeledArgs indexedName = mkName $ toUpperFirst (T.unpack name) <> "Indexed"- nonIndexedArgs = map (\(n, ea) -> (n, eveArgType ea)) . filter (not . eveArgIndexed . snd) $ labeledArgs+ nonIndexedArgs = map (\(n, ea) -> (n, ea)) . filter (not . eveArgIndexed . snd) $ labeledArgs nonIndexedName = mkName $ toUpperFirst (T.unpack name) <> "NonIndexed"- allArgs = makeArgs name $ map (\i -> (eveArgName i, eveArgType i)) inputs+ allArgs :: [(Name, EventArg)]+ allArgs = makeArgs name $ map (\i -> (eveArgName i, i)) inputs allName = mkName $ toUpperFirst (T.unpack name) derivingD = [''Show, ''Eq, ''Ord, ''GHC.Generic] @@ -265,11 +273,11 @@ -- | arg_name -> evArg_name -- | _argName -> evArgName -- | "" -> evi , for example Transfer(address, address uint256) ~> Transfer {transfer1 :: address, transfer2 :: address, transfer3 :: Integer}-makeArgs :: Text -> [(Text, Text)] -> [(Name, Text)]+makeArgs :: Text -> [(Text, EventArg)] -> [(Name, EventArg)] makeArgs prefix ns = go 1 ns where prefixStr = toLowerFirst . T.unpack $ prefix- go :: Int -> [(Text, Text)] -> [(Name, Text)]+ go :: Int -> [(Text, EventArg)] -> [(Name, EventArg)] go _ [] = [] go i ((h, ty) : tail') | T.null h = (mkName $ prefixStr ++ show i, ty) : go (i + 1) tail'@@ -323,7 +331,7 @@ -- | Abi to declarations converter quoteAbiDec :: String -> DecsQ quoteAbiDec str =- case str ^? _JSON <|> str ^? key "abi" . _JSON of+ case str ^? _JSON <|> str ^? key "abi" . _JSON <|> str ^? key "compilerOutput" . key "abi" . _JSON of Nothing -> fail "Unable to decode contract ABI" Just (ContractAbi decs) -> do funEvDecs <- concat <$> mapM mkDecl (escape decs)
src/Network/JsonRpc/TinyClient.hs view
@@ -88,8 +88,8 @@ -- | JSON-RPC client state vars. data JsonRpcClient = JsonRpcClient- { _jsonRpcManager :: Manager -- ^ HTTP connection manager.- , _jsonRpcServer :: String -- ^ Remote server URI.+ { _jsonRpcManager :: !Manager -- ^ HTTP connection manager.+ , _jsonRpcServer :: !String -- ^ Remote server URI. } $(makeLenses ''JsonRpcClient)
stack.yaml view
@@ -1,5 +1,5 @@ # Resolver to choose a 'specific' stackage snapshot or a compiler version.-resolver: lts-13.21+resolver: lts-15.10 # User packages to be built. packages:@@ -8,6 +8,8 @@ # Extra package dependencies extra-deps: - relapse-1.0.0.0@sha256:b89ea23189e07f377be4e2a4deccf3d6ba7f547ed8ad77e27b35d78801efd81c+- vinyl-0.12.1@sha256:03f5e246fae2434250987bbfe708015dc6e23f60c20739c34738acde1383b96c+- time-1.8.0.4@sha256:3f6eddf238b828eb4f82683acce1c3afe64784f0d20114239b738c123316c85c # Dependencies bounds pvp-bounds: both@@ -16,9 +18,5 @@ nix: packages: - zlib- - boost- - jsoncpp- - solc- - solc.dev - haskellPackages.hlint - haskellPackages.stylish-haskell
+ unit/Language/Solidity/Test/AbiSpec.hs view
@@ -0,0 +1,63 @@+{-# LANGUAGE OverloadedStrings #-}+module Language.Solidity.Test.AbiSpec where+++import Test.Hspec+import Data.Either (isLeft)+import Language.Solidity.Abi+++spec :: Spec+spec = do+ describe "parseSolidityType" $ + describe "tuple type" $ do+ it "can parses a FunctionArg with tuple type" $ do+ let maa = FunctionArg "makerAssetAmount" "uint256" Nothing+ ma = FunctionArg "makeAddress" "address" Nothing+ tupleFA = FunctionArg "order" "tuple" (Just [maa, ma])+ eRes = parseSolidityFunctionArgType tupleFA+ eRes `shouldBe` Right (SolidityTuple 2 [SolidityUint 256, SolidityAddress])+ it "fails to parse a FunctionArg with invalid tuple" $ do+ let tupleFA = FunctionArg "order" "tuple" Nothing+ eRes = parseSolidityFunctionArgType tupleFA+ isLeft eRes `shouldBe` True + describe "signature" $ + it "can generate signature for fillOrder" $ do+ let fillOrderDec = buildFillOrderDec+ expected = "fillOrder((address,address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,bytes,bytes),uint256,bytes)"+ sig = signature fillOrderDec+ sig `shouldBe` expected+ describe "methodId" $ + it "can generate methodId for fillOrder" $ do+ let fillOrderDec = buildFillOrderDec+ expected = "0xb4be83d5"+ mId = methodId fillOrderDec+ mId `shouldBe` expected++buildFillOrderDec :: Declaration+buildFillOrderDec = DFunction "fillOrder" False funInputs' funOutputs'+ where+ funInputs' = + [ makeTupleFuncArg ("order", "tuple") tupleComponents+ , makeBasicFuncArg ("takerAssetFillAmount", "uint256")+ , makeBasicFuncArg ("signature", "bytes")+ ]+ tupleComponents = + [ ("makerAddress", "address") + , ("takerAddress", "address") + , ("feeRecipientAddress", "address") + , ("senderAddress", "address") + , ("makerAssetAmount", "uint256") + , ("takerAssetAmount", "uint256") + , ("makerFee", "uint256") + , ("takerFee", "uint256") + , ("expirationTimeSeconds", "uint256")+ , ("salt", "uint256") + , ("makerAssetData", "bytes")+ , ("takerAssetData", "bytes")+ ]+ funOutputs' = Nothing+ makeBasicFuncArg (n,t) = + FunctionArg n t Nothing+ makeTupleFuncArg (n,t) cmps = + FunctionArg n t (Just $ map makeBasicFuncArg cmps)
+ unit/Network/Ethereum/Contract/Test/THSpec.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+module Network.Ethereum.Contract.Test.THSpec where++import Network.Ethereum.Contract.TH+import Test.Hspec++-- 0x Exchange Contract that includes Tuples taken from:+-- https://raw.githubusercontent.com/0xProject/0x-monorepo/%400x/website%400.0.89/packages/contract-artifacts/artifacts/Exchange.json+[abiFrom|test/contracts/Exchange.json|]++spec :: Spec+spec =+ describe "quasi-quoter" $+ it "can compile contract with tuples" $+ True `shouldBe` True
web3.cabal view
@@ -1,18 +1,24 @@-cabal-version: 1.12-name: web3-version: 0.8.3.2-license: BSD3-license-file: LICENSE-copyright: (c) Alexander Krupenkin 2016-maintainer: mail@akru.me-author: Alexander Krupenkin-homepage: https://github.com/airalab/hs-web3#readme-bug-reports: https://github.com/airalab/hs-web3/issues-synopsis: Ethereum API for Haskell-description:- Web3 is a Haskell client library for Ethereum-category: Network-build-type: Simple+cabal-version: 2.4++-- This file has been generated from package.yaml by hpack version 0.33.0.+--+-- see: https://github.com/sol/hpack+--+-- hash: 52f53efab4c596377b85d0718660446c92da89530ee76214df53a18a0fdd589d++name: web3+version: 0.8.4.0+synopsis: Ethereum API for Haskell+description: Web3 is a Haskell client library for Ethereum+category: Network+homepage: https://github.com/airalab/hs-web3#readme+bug-reports: https://github.com/airalab/hs-web3/issues+author: Alexander Krupenkin+maintainer: mail@akru.me+copyright: (c) Alexander Krupenkin 2016+license: BSD-3-Clause+license-file: LICENSE+build-type: Simple extra-source-files: README.md CHANGELOG.md@@ -26,386 +32,369 @@ test/contracts/Linearization.json source-repository head- type: git- location: https://github.com/airalab/hs-web3+ type: git+ location: https://github.com/airalab/hs-web3 flag compiler- description:- Enable Solidity compiler- default: False- manual: True+ description: Enable Solidity compiler+ manual: True+ default: False flag debug- description:- Enable debug compiler options- default: False- manual: True+ description: Enable debug compiler options+ manual: True+ default: False library- exposed-modules:- Crypto.Ethereum- Crypto.Ethereum.Keyfile- Crypto.Ethereum.Signature- Crypto.Ethereum.Utils- Crypto.Random.HmacDrbg- Data.ByteArray.HexString- Data.Solidity.Abi- Data.Solidity.Abi.Codec- Data.Solidity.Abi.Generic- Data.Solidity.Event- Data.Solidity.Event.Internal- Data.Solidity.Prim- Data.Solidity.Prim.Address- Data.Solidity.Prim.Bool- Data.Solidity.Prim.Bytes- Data.Solidity.Prim.Int- Data.Solidity.Prim.List- Data.Solidity.Prim.String- Data.Solidity.Prim.Tagged- Data.Solidity.Prim.Tuple- Data.Solidity.Prim.Tuple.TH- Data.String.Extra- Language.Solidity.Abi- Network.Ethereum.Account- Network.Ethereum.Account.Class- Network.Ethereum.Account.Default- Network.Ethereum.Account.Internal- Network.Ethereum.Account.LocalKey- Network.Ethereum.Account.Personal- Network.Ethereum.Account.Safe- Network.Ethereum.Api.Eth- Network.Ethereum.Api.Net- Network.Ethereum.Api.Personal- Network.Ethereum.Api.Provider- Network.Ethereum.Api.Types- Network.Ethereum.Api.Web3- Network.Ethereum.Chain- Network.Ethereum.Contract- Network.Ethereum.Contract.Event- Network.Ethereum.Contract.Event.Common- Network.Ethereum.Contract.Event.MultiFilter- Network.Ethereum.Contract.Event.SingleFilter- Network.Ethereum.Contract.Method- Network.Ethereum.Contract.TH- Network.Ethereum.Ens- Network.Ethereum.Ens.PublicResolver- Network.Ethereum.Ens.Registry- Network.Ethereum.Transaction- Network.Ethereum.Unit- Network.Ethereum.Web3- Network.JsonRpc.TinyClient- hs-source-dirs: src+ exposed-modules:+ Crypto.Ethereum+ Crypto.Ethereum.Keyfile+ Crypto.Ethereum.Signature+ Crypto.Ethereum.Utils+ Crypto.Random.HmacDrbg+ Data.ByteArray.HexString+ Data.Solidity.Abi+ Data.Solidity.Abi.Codec+ Data.Solidity.Abi.Generic+ Data.Solidity.Event+ Data.Solidity.Event.Internal+ Data.Solidity.Prim+ Data.Solidity.Prim.Address+ Data.Solidity.Prim.Bool+ Data.Solidity.Prim.Bytes+ Data.Solidity.Prim.Int+ Data.Solidity.Prim.List+ Data.Solidity.Prim.String+ Data.Solidity.Prim.Tagged+ Data.Solidity.Prim.Tuple+ Data.Solidity.Prim.Tuple.TH+ Data.String.Extra+ Language.Solidity.Abi+ Network.Ethereum.Account+ Network.Ethereum.Account.Class+ Network.Ethereum.Account.Default+ Network.Ethereum.Account.Internal+ Network.Ethereum.Account.LocalKey+ Network.Ethereum.Account.Personal+ Network.Ethereum.Account.Safe+ Network.Ethereum.Api.Eth+ Network.Ethereum.Api.Net+ Network.Ethereum.Api.Personal+ Network.Ethereum.Api.Provider+ Network.Ethereum.Api.Types+ Network.Ethereum.Api.Web3+ Network.Ethereum.Chain+ Network.Ethereum.Contract+ Network.Ethereum.Contract.Event+ Network.Ethereum.Contract.Event.Common+ Network.Ethereum.Contract.Event.MultiFilter+ Network.Ethereum.Contract.Event.SingleFilter+ Network.Ethereum.Contract.Method+ Network.Ethereum.Contract.TH+ Network.Ethereum.Ens+ Network.Ethereum.Ens.PublicResolver+ Network.Ethereum.Ens.Registry+ Network.Ethereum.Transaction+ Network.Ethereum.Unit+ Network.Ethereum.Web3+ Network.JsonRpc.TinyClient+ other-modules:+ Paths_web3+ autogen-modules:+ Paths_web3+ hs-source-dirs:+ src+ ghc-options: -funbox-strict-fields -Wduplicate-exports -Whi-shadowing -Widentities -Woverlapping-patterns -Wpartial-type-signatures -Wunrecognised-pragmas -Wtyped-holes -Wincomplete-patterns -Wincomplete-uni-patterns -Wmissing-fields -Wmissing-methods -Wmissing-exported-signatures -Wmissing-monadfail-instances -Wmissing-signatures -Wname-shadowing -Wunused-binds -Wunused-top-binds -Wunused-local-binds -Wunused-pattern-binds -Wunused-imports -Wunused-matches -Wunused-foralls -Wtabs+ build-depends:+ OneTuple >=0.2.1 && <0.3+ , aeson >=1.2.2.0 && <1.5+ , async >=2.1.1.1 && <2.3+ , base >4.10 && <4.14+ , basement >=0.0.4 && <0.1+ , bytestring >=0.10.8.1 && <0.11+ , cereal >=0.5.4.0 && <0.6+ , cryptonite >=0.23 && <0.27+ , data-default >=0.7.1.1 && <0.8+ , exceptions >=0.8.3 && <0.11+ , generics-sop >=0.3.1.0 && <0.6+ , http-client >=0.5.7.1 && <0.7+ , http-client-tls >=0.3.5.1 && <0.4+ , machines >=0.6.3 && <0.8+ , memory >=0.14.11 && <0.16+ , microlens >=0.4.8.1 && <0.5+ , microlens-aeson >=2.2.0.2 && <2.4+ , microlens-mtl >=0.1.11.0 && <0.3+ , microlens-th >=0.4.1.1 && <0.5+ , mtl >=2.2.1 && <2.3+ , parsec >=3.1.11 && <3.2+ , relapse >=1.0.0.0 && <2.0+ , tagged >=0.8.5 && <0.9+ , template-haskell >=2.12 && <2.16+ , text >=1.2.2.2 && <1.3+ , transformers >=0.5.2.0 && <0.6+ , uuid-types >=1.0.3 && <1.1+ , vinyl >=0.5.3 && <0.13+ if flag(debug)+ ghc-options: -ddump-splices+ if flag(compiler) other-modules:- Paths_web3- default-language: Haskell2010- ghc-options: -funbox-strict-fields -Wduplicate-exports- -Whi-shadowing -Widentities -Woverlapping-patterns- -Wpartial-type-signatures -Wunrecognised-pragmas -Wtyped-holes- -Wincomplete-patterns -Wincomplete-uni-patterns -Wmissing-fields- -Wmissing-methods -Wmissing-exported-signatures- -Wmissing-monadfail-instances -Wmissing-signatures -Wname-shadowing- -Wunused-binds -Wunused-top-binds -Wunused-local-binds- -Wunused-pattern-binds -Wunused-imports -Wunused-matches- -Wunused-foralls -Wtabs+ Language.Solidity.Compiler+ Language.Solidity.Compiler.Foreign+ hs-source-dirs:+ compiler+ cpp-options: -DSOLIDITY_COMPILER+ include-dirs:+ ./compiler/cbits+ c-sources:+ ./compiler/cbits/solidity_lite.cpp+ extra-libraries:+ solidity build-depends:- OneTuple >=0.2.1 && <0.3,- aeson >=1.1.2.0 && <1.5,- async >=2.1.1.1 && <2.3,- base >4.10 && <4.13,- basement >=0.0.4 && <0.1,- bytestring >=0.10.8.1 && <0.11,- cereal >=0.5.4.0 && <0.6,- cryptonite >=0.23 && <0.26,- data-default >=0.7.1.1 && <0.8,- exceptions >=0.8.3 && <0.11,- generics-sop >=0.3.1.0 && <0.6,- http-client >=0.5.7.1 && <0.7,- http-client-tls >=0.3.5.1 && <0.4,- machines >=0.6.3 && <0.8,- memory >=0.14.11 && <0.15,- microlens >=0.4.8.1 && <0.5,- microlens-aeson >=2.2.0.2 && <2.4,- microlens-mtl >=0.1.11.0 && <0.2,- microlens-th >=0.4.1.1 && <0.5,- mtl >=2.2.1 && <2.3,- parsec >=3.1.11 && <3.2,- relapse >=1.0.0.0 && <2.0,- tagged >=0.8.5 && <0.9,- template-haskell >=2.12 && <2.15,- text >=1.2.2.2 && <1.3,- transformers >=0.5.2.0 && <0.6,- uuid-types >=1.0.3 && <1.1,- vinyl >=0.5.3 && <0.12- - if flag(debug)- ghc-options: -ddump-splices- - if flag(compiler)- cpp-options: -DSOLIDITY_COMPILER- c-sources:- ./compiler/cbits/solidity_lite.cpp- hs-source-dirs: compiler- other-modules:- Language.Solidity.Compiler- Language.Solidity.Compiler.Foreign- extra-libraries:- solidity- include-dirs: ./compiler/cbits- build-depends:- containers >=0.6.0.1 && <0.7+ containers+ default-language: Haskell2010 test-suite live- type: exitcode-stdio-1.0- main-is: Spec.hs- hs-source-dirs: test src+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ other-modules:+ Network.Ethereum.Web3.Test.ComplexStorageSpec+ Network.Ethereum.Web3.Test.ERC20Spec+ Network.Ethereum.Web3.Test.LinearizationSpec+ Network.Ethereum.Web3.Test.LocalAccountSpec+ Network.Ethereum.Web3.Test.RegistrySpec+ Network.Ethereum.Web3.Test.SimpleStorageSpec+ Network.Ethereum.Web3.Test.Utils+ Crypto.Ethereum+ Crypto.Ethereum.Keyfile+ Crypto.Ethereum.Signature+ Crypto.Ethereum.Utils+ Crypto.Random.HmacDrbg+ Data.ByteArray.HexString+ Data.Solidity.Abi+ Data.Solidity.Abi.Codec+ Data.Solidity.Abi.Generic+ Data.Solidity.Event+ Data.Solidity.Event.Internal+ Data.Solidity.Prim+ Data.Solidity.Prim.Address+ Data.Solidity.Prim.Bool+ Data.Solidity.Prim.Bytes+ Data.Solidity.Prim.Int+ Data.Solidity.Prim.List+ Data.Solidity.Prim.String+ Data.Solidity.Prim.Tagged+ Data.Solidity.Prim.Tuple+ Data.Solidity.Prim.Tuple.TH+ Data.String.Extra+ Language.Solidity.Abi+ Network.Ethereum.Account+ Network.Ethereum.Account.Class+ Network.Ethereum.Account.Default+ Network.Ethereum.Account.Internal+ Network.Ethereum.Account.LocalKey+ Network.Ethereum.Account.Personal+ Network.Ethereum.Account.Safe+ Network.Ethereum.Api.Eth+ Network.Ethereum.Api.Net+ Network.Ethereum.Api.Personal+ Network.Ethereum.Api.Provider+ Network.Ethereum.Api.Types+ Network.Ethereum.Api.Web3+ Network.Ethereum.Chain+ Network.Ethereum.Contract+ Network.Ethereum.Contract.Event+ Network.Ethereum.Contract.Event.Common+ Network.Ethereum.Contract.Event.MultiFilter+ Network.Ethereum.Contract.Event.SingleFilter+ Network.Ethereum.Contract.Method+ Network.Ethereum.Contract.TH+ Network.Ethereum.Ens+ Network.Ethereum.Ens.PublicResolver+ Network.Ethereum.Ens.Registry+ Network.Ethereum.Transaction+ Network.Ethereum.Unit+ Network.Ethereum.Web3+ Network.JsonRpc.TinyClient+ Paths_web3+ hs-source-dirs:+ test+ src+ ghc-options: -funbox-strict-fields -Wduplicate-exports -Whi-shadowing -Widentities -Woverlapping-patterns -Wpartial-type-signatures -Wunrecognised-pragmas -Wtyped-holes -Wincomplete-patterns -Wincomplete-uni-patterns -Wmissing-fields -Wmissing-methods -Wmissing-exported-signatures -Wmissing-monadfail-instances -Wmissing-signatures -Wname-shadowing -Wunused-binds -Wunused-top-binds -Wunused-local-binds -Wunused-pattern-binds -Wunused-imports -Wunused-matches -Wunused-foralls -Wtabs -threaded -rtsopts -with-rtsopts=-N+ build-depends:+ OneTuple >=0.2.1 && <0.3+ , aeson >=1.2.2.0 && <1.5+ , async >=2.1.1.1 && <2.3+ , base >4.10 && <4.14+ , basement >=0.0.4 && <0.1+ , bytestring >=0.10.8.1 && <0.11+ , cereal >=0.5.4.0 && <0.6+ , cryptonite >=0.23 && <0.27+ , data-default >=0.7.1.1 && <0.8+ , exceptions >=0.8.3 && <0.11+ , generics-sop >=0.3.1.0 && <0.6+ , hspec >=2.4.4 && <2.8+ , hspec-contrib >=0.4.0 && <0.6+ , hspec-discover >=2.4.4 && <2.8+ , hspec-expectations >=0.8.2 && <0.9+ , http-client >=0.5.7.1 && <0.7+ , http-client-tls >=0.3.5.1 && <0.4+ , machines >=0.6.3 && <0.8+ , memory >=0.14.11 && <0.16+ , microlens >=0.4.8.1 && <0.5+ , microlens-aeson >=2.2.0.2 && <2.4+ , microlens-mtl >=0.1.11.0 && <0.3+ , microlens-th >=0.4.1.1 && <0.5+ , mtl >=2.2.1 && <2.3+ , parsec >=3.1.11 && <3.2+ , random >=1.1 && <1.2+ , relapse >=1.0.0.0 && <2.0+ , split >=0.2.3 && <0.3+ , stm >=2.4.4 && <2.6+ , tagged >=0.8.5 && <0.9+ , template-haskell >=2.12 && <2.16+ , text >=1.2.2.2 && <1.3+ , time >=1.6.0 && <1.11+ , transformers >=0.5.2.0 && <0.6+ , uuid-types >=1.0.3 && <1.1+ , vinyl >=0.5.3 && <0.13+ if flag(debug)+ ghc-options: -ddump-splices+ if flag(compiler) other-modules:- Network.Ethereum.Web3.Test.ComplexStorageSpec- Network.Ethereum.Web3.Test.ERC20Spec- Network.Ethereum.Web3.Test.LinearizationSpec- Network.Ethereum.Web3.Test.LocalAccountSpec- Network.Ethereum.Web3.Test.RegistrySpec- Network.Ethereum.Web3.Test.SimpleStorageSpec- Network.Ethereum.Web3.Test.Utils- Crypto.Ethereum- Crypto.Ethereum.Keyfile- Crypto.Ethereum.Signature- Crypto.Ethereum.Utils- Crypto.Random.HmacDrbg- Data.ByteArray.HexString- Data.Solidity.Abi- Data.Solidity.Abi.Codec- Data.Solidity.Abi.Generic- Data.Solidity.Event- Data.Solidity.Event.Internal- Data.Solidity.Prim- Data.Solidity.Prim.Address- Data.Solidity.Prim.Bool- Data.Solidity.Prim.Bytes- Data.Solidity.Prim.Int- Data.Solidity.Prim.List- Data.Solidity.Prim.String- Data.Solidity.Prim.Tagged- Data.Solidity.Prim.Tuple- Data.Solidity.Prim.Tuple.TH- Data.String.Extra- Language.Solidity.Abi- Network.Ethereum.Account- Network.Ethereum.Account.Class- Network.Ethereum.Account.Default- Network.Ethereum.Account.Internal- Network.Ethereum.Account.LocalKey- Network.Ethereum.Account.Personal- Network.Ethereum.Account.Safe- Network.Ethereum.Api.Eth- Network.Ethereum.Api.Net- Network.Ethereum.Api.Personal- Network.Ethereum.Api.Provider- Network.Ethereum.Api.Types- Network.Ethereum.Api.Web3- Network.Ethereum.Chain- Network.Ethereum.Contract- Network.Ethereum.Contract.Event- Network.Ethereum.Contract.Event.Common- Network.Ethereum.Contract.Event.MultiFilter- Network.Ethereum.Contract.Event.SingleFilter- Network.Ethereum.Contract.Method- Network.Ethereum.Contract.TH- Network.Ethereum.Ens- Network.Ethereum.Ens.PublicResolver- Network.Ethereum.Ens.Registry- Network.Ethereum.Transaction- Network.Ethereum.Unit- Network.Ethereum.Web3- Network.JsonRpc.TinyClient- Paths_web3- default-language: Haskell2010- ghc-options: -funbox-strict-fields -Wduplicate-exports- -Whi-shadowing -Widentities -Woverlapping-patterns- -Wpartial-type-signatures -Wunrecognised-pragmas -Wtyped-holes- -Wincomplete-patterns -Wincomplete-uni-patterns -Wmissing-fields- -Wmissing-methods -Wmissing-exported-signatures- -Wmissing-monadfail-instances -Wmissing-signatures -Wname-shadowing- -Wunused-binds -Wunused-top-binds -Wunused-local-binds- -Wunused-pattern-binds -Wunused-imports -Wunused-matches- -Wunused-foralls -Wtabs -threaded -rtsopts -with-rtsopts=-N+ Language.Solidity.Compiler+ Language.Solidity.Compiler.Foreign+ hs-source-dirs:+ compiler+ cpp-options: -DSOLIDITY_COMPILER+ include-dirs:+ ./compiler/cbits+ c-sources:+ ./compiler/cbits/solidity_lite.cpp+ extra-libraries:+ solidity build-depends:- OneTuple >=0.2.1 && <0.3,- aeson >=1.1.2.0 && <1.5,- async >=2.1.1.1 && <2.3,- base >4.10 && <4.13,- basement >=0.0.4 && <0.1,- bytestring >=0.10.8.1 && <0.11,- cereal >=0.5.4.0 && <0.6,- cryptonite >=0.23 && <0.26,- data-default >=0.7.1.1 && <0.8,- exceptions >=0.8.3 && <0.11,- generics-sop >=0.3.1.0 && <0.6,- hspec >=2.4.4 && <2.8,- hspec-contrib >=0.4.0 && <0.6,- hspec-discover >=2.4.4 && <2.8,- hspec-expectations >=0.8.2 && <0.9,- http-client >=0.5.7.1 && <0.7,- http-client-tls >=0.3.5.1 && <0.4,- machines >=0.6.3 && <0.8,- memory >=0.14.11 && <0.15,- microlens >=0.4.8.1 && <0.5,- microlens-aeson >=2.2.0.2 && <2.4,- microlens-mtl >=0.1.11.0 && <0.2,- microlens-th >=0.4.1.1 && <0.5,- mtl >=2.2.1 && <2.3,- parsec >=3.1.11 && <3.2,- random ==1.1.*,- relapse >=1.0.0.0 && <2.0,- split >=0.2.3 && <0.3,- stm >=2.4.4 && <2.6,- tagged >=0.8.5 && <0.9,- template-haskell >=2.12 && <2.15,- text >=1.2.2.2 && <1.3,- time >=1.6.0 && <1.9,- transformers >=0.5.2.0 && <0.6,- uuid-types >=1.0.3 && <1.1,- vinyl >=0.5.3 && <0.12- - if flag(debug)- ghc-options: -ddump-splices- - if flag(compiler)- cpp-options: -DSOLIDITY_COMPILER- c-sources:- ./compiler/cbits/solidity_lite.cpp- hs-source-dirs: compiler- other-modules:- Language.Solidity.Compiler- Language.Solidity.Compiler.Foreign- extra-libraries:- solidity- include-dirs: ./compiler/cbits- build-depends:- containers >=0.6.0.1 && <0.7+ containers+ default-language: Haskell2010 test-suite unit- type: exitcode-stdio-1.0- main-is: Spec.hs- hs-source-dirs: unit src+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ other-modules:+ Crypto.Ethereum.Test.KeyfileSpec+ Crypto.Ethereum.Test.SignatureSpec+ Crypto.Random.Test.HmacDrbgSpec+ Data.Solidity.Test.AddressSpec+ Data.Solidity.Test.EncodingSpec+ Data.Solidity.Test.IntSpec+ Language.Solidity.Test.AbiSpec+ Language.Solidity.Test.CompilerSpec+ Network.Ethereum.Contract.Test.THSpec+ Network.Ethereum.Web3.Test.EventSpec+ Network.Ethereum.Web3.Test.MethodDumpSpec+ Crypto.Ethereum+ Crypto.Ethereum.Keyfile+ Crypto.Ethereum.Signature+ Crypto.Ethereum.Utils+ Crypto.Random.HmacDrbg+ Data.ByteArray.HexString+ Data.Solidity.Abi+ Data.Solidity.Abi.Codec+ Data.Solidity.Abi.Generic+ Data.Solidity.Event+ Data.Solidity.Event.Internal+ Data.Solidity.Prim+ Data.Solidity.Prim.Address+ Data.Solidity.Prim.Bool+ Data.Solidity.Prim.Bytes+ Data.Solidity.Prim.Int+ Data.Solidity.Prim.List+ Data.Solidity.Prim.String+ Data.Solidity.Prim.Tagged+ Data.Solidity.Prim.Tuple+ Data.Solidity.Prim.Tuple.TH+ Data.String.Extra+ Language.Solidity.Abi+ Network.Ethereum.Account+ Network.Ethereum.Account.Class+ Network.Ethereum.Account.Default+ Network.Ethereum.Account.Internal+ Network.Ethereum.Account.LocalKey+ Network.Ethereum.Account.Personal+ Network.Ethereum.Account.Safe+ Network.Ethereum.Api.Eth+ Network.Ethereum.Api.Net+ Network.Ethereum.Api.Personal+ Network.Ethereum.Api.Provider+ Network.Ethereum.Api.Types+ Network.Ethereum.Api.Web3+ Network.Ethereum.Chain+ Network.Ethereum.Contract+ Network.Ethereum.Contract.Event+ Network.Ethereum.Contract.Event.Common+ Network.Ethereum.Contract.Event.MultiFilter+ Network.Ethereum.Contract.Event.SingleFilter+ Network.Ethereum.Contract.Method+ Network.Ethereum.Contract.TH+ Network.Ethereum.Ens+ Network.Ethereum.Ens.PublicResolver+ Network.Ethereum.Ens.Registry+ Network.Ethereum.Transaction+ Network.Ethereum.Unit+ Network.Ethereum.Web3+ Network.JsonRpc.TinyClient+ Paths_web3+ hs-source-dirs:+ unit+ src+ ghc-options: -funbox-strict-fields -Wduplicate-exports -Whi-shadowing -Widentities -Woverlapping-patterns -Wpartial-type-signatures -Wunrecognised-pragmas -Wtyped-holes -Wincomplete-patterns -Wincomplete-uni-patterns -Wmissing-fields -Wmissing-methods -Wmissing-exported-signatures -Wmissing-monadfail-instances -Wmissing-signatures -Wname-shadowing -Wunused-binds -Wunused-top-binds -Wunused-local-binds -Wunused-pattern-binds -Wunused-imports -Wunused-matches -Wunused-foralls -Wtabs -threaded -rtsopts -with-rtsopts=-N+ build-depends:+ OneTuple >=0.2.1 && <0.3+ , aeson >=1.2.2.0 && <1.5+ , async >=2.1.1.1 && <2.3+ , base >4.10 && <4.14+ , basement >=0.0.4 && <0.1+ , bytestring >=0.10.8.1 && <0.11+ , cereal >=0.5.4.0 && <0.6+ , cryptonite >=0.23 && <0.27+ , data-default >=0.7.1.1 && <0.8+ , exceptions >=0.8.3 && <0.11+ , generics-sop >=0.3.1.0 && <0.6+ , hspec >=2.4.4 && <2.8+ , hspec-contrib >=0.4.0 && <0.6+ , hspec-discover >=2.4.4 && <2.8+ , hspec-expectations >=0.8.2 && <0.9+ , http-client >=0.5.7.1 && <0.7+ , http-client-tls >=0.3.5.1 && <0.4+ , machines >=0.6.3 && <0.8+ , memory >=0.14.11 && <0.16+ , microlens >=0.4.8.1 && <0.5+ , microlens-aeson >=2.2.0.2 && <2.4+ , microlens-mtl >=0.1.11.0 && <0.3+ , microlens-th >=0.4.1.1 && <0.5+ , mtl >=2.2.1 && <2.3+ , parsec >=3.1.11 && <3.2+ , relapse >=1.0.0.0 && <2.0+ , tagged >=0.8.5 && <0.9+ , template-haskell >=2.12 && <2.16+ , text >=1.2.2.2 && <1.3+ , transformers >=0.5.2.0 && <0.6+ , uuid-types >=1.0.3 && <1.1+ , vinyl >=0.5.3 && <0.13+ if flag(debug)+ ghc-options: -ddump-splices+ if flag(compiler) other-modules:- Crypto.Ethereum.Test.KeyfileSpec- Crypto.Ethereum.Test.SignatureSpec- Crypto.Random.Test.HmacDrbgSpec- Data.Solidity.Test.AddressSpec- Data.Solidity.Test.EncodingSpec- Data.Solidity.Test.IntSpec- Language.Solidity.Test.CompilerSpec- Network.Ethereum.Web3.Test.EventSpec- Network.Ethereum.Web3.Test.MethodDumpSpec- Crypto.Ethereum- Crypto.Ethereum.Keyfile- Crypto.Ethereum.Signature- Crypto.Ethereum.Utils- Crypto.Random.HmacDrbg- Data.ByteArray.HexString- Data.Solidity.Abi- Data.Solidity.Abi.Codec- Data.Solidity.Abi.Generic- Data.Solidity.Event- Data.Solidity.Event.Internal- Data.Solidity.Prim- Data.Solidity.Prim.Address- Data.Solidity.Prim.Bool- Data.Solidity.Prim.Bytes- Data.Solidity.Prim.Int- Data.Solidity.Prim.List- Data.Solidity.Prim.String- Data.Solidity.Prim.Tagged- Data.Solidity.Prim.Tuple- Data.Solidity.Prim.Tuple.TH- Data.String.Extra- Language.Solidity.Abi- Network.Ethereum.Account- Network.Ethereum.Account.Class- Network.Ethereum.Account.Default- Network.Ethereum.Account.Internal- Network.Ethereum.Account.LocalKey- Network.Ethereum.Account.Personal- Network.Ethereum.Account.Safe- Network.Ethereum.Api.Eth- Network.Ethereum.Api.Net- Network.Ethereum.Api.Personal- Network.Ethereum.Api.Provider- Network.Ethereum.Api.Types- Network.Ethereum.Api.Web3- Network.Ethereum.Chain- Network.Ethereum.Contract- Network.Ethereum.Contract.Event- Network.Ethereum.Contract.Event.Common- Network.Ethereum.Contract.Event.MultiFilter- Network.Ethereum.Contract.Event.SingleFilter- Network.Ethereum.Contract.Method- Network.Ethereum.Contract.TH- Network.Ethereum.Ens- Network.Ethereum.Ens.PublicResolver- Network.Ethereum.Ens.Registry- Network.Ethereum.Transaction- Network.Ethereum.Unit- Network.Ethereum.Web3- Network.JsonRpc.TinyClient- Paths_web3- default-language: Haskell2010- ghc-options: -funbox-strict-fields -Wduplicate-exports- -Whi-shadowing -Widentities -Woverlapping-patterns- -Wpartial-type-signatures -Wunrecognised-pragmas -Wtyped-holes- -Wincomplete-patterns -Wincomplete-uni-patterns -Wmissing-fields- -Wmissing-methods -Wmissing-exported-signatures- -Wmissing-monadfail-instances -Wmissing-signatures -Wname-shadowing- -Wunused-binds -Wunused-top-binds -Wunused-local-binds- -Wunused-pattern-binds -Wunused-imports -Wunused-matches- -Wunused-foralls -Wtabs -threaded -rtsopts -with-rtsopts=-N+ Language.Solidity.Compiler+ Language.Solidity.Compiler.Foreign+ hs-source-dirs:+ compiler+ cpp-options: -DSOLIDITY_COMPILER+ include-dirs:+ ./compiler/cbits+ c-sources:+ ./compiler/cbits/solidity_lite.cpp+ extra-libraries:+ solidity build-depends:- OneTuple >=0.2.1 && <0.3,- aeson >=1.1.2.0 && <1.5,- async >=2.1.1.1 && <2.3,- base >4.10 && <4.13,- basement >=0.0.4 && <0.1,- bytestring >=0.10.8.1 && <0.11,- cereal >=0.5.4.0 && <0.6,- cryptonite >=0.23 && <0.26,- data-default >=0.7.1.1 && <0.8,- exceptions >=0.8.3 && <0.11,- generics-sop >=0.3.1.0 && <0.6,- hspec >=2.4.4 && <2.8,- hspec-contrib >=0.4.0 && <0.6,- hspec-discover >=2.4.4 && <2.8,- hspec-expectations >=0.8.2 && <0.9,- http-client >=0.5.7.1 && <0.7,- http-client-tls >=0.3.5.1 && <0.4,- machines >=0.6.3 && <0.8,- memory >=0.14.11 && <0.15,- microlens >=0.4.8.1 && <0.5,- microlens-aeson >=2.2.0.2 && <2.4,- microlens-mtl >=0.1.11.0 && <0.2,- microlens-th >=0.4.1.1 && <0.5,- mtl >=2.2.1 && <2.3,- parsec >=3.1.11 && <3.2,- relapse >=1.0.0.0 && <2.0,- tagged >=0.8.5 && <0.9,- template-haskell >=2.12 && <2.15,- text >=1.2.2.2 && <1.3,- transformers >=0.5.2.0 && <0.6,- uuid-types >=1.0.3 && <1.1,- vinyl >=0.5.3 && <0.12- - if flag(debug)- ghc-options: -ddump-splices- - if flag(compiler)- cpp-options: -DSOLIDITY_COMPILER- c-sources:- ./compiler/cbits/solidity_lite.cpp- hs-source-dirs: compiler- other-modules:- Language.Solidity.Compiler- Language.Solidity.Compiler.Foreign- extra-libraries:- solidity- include-dirs: ./compiler/cbits- build-depends:- containers >=0.6.0.1 && <0.7+ containers+ default-language: Haskell2010