packages feed

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 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 @@ [![Build Status](https://travis-ci.org/airalab/hs-web3.svg?branch=master)](https://travis-ci.org/airalab/hs-web3) [![Hackage Matrix](https://matrix.hackage.haskell.org/api/v2/packages/web3/badge)](https://matrix.hackage.haskell.org/package/web3) [![Hackage](https://img.shields.io/hackage/v/web3.svg)](http://hackage.haskell.org/package/web3)-[![LTS-13](http://stackage.org/package/web3/badge/lts-13)](http://stackage.org/lts-13/package/web3)+[![LTS-14](http://stackage.org/package/web3/badge/lts-14)](http://stackage.org/lts-14/package/web3) [![nightly](http://stackage.org/package/web3/badge/nightly)](http://stackage.org/nightly/package/web3) [![Code Triagers](https://www.codetriage.com/airalab/hs-web3/badges/users.svg)](https://www.codetriage.com/airalab/hs-web3) ![BSD3 License](http://img.shields.io/badge/license-BSD3-brightgreen.svg)
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