cabal-version: 2.2
name:
  hevm
version:
  0.48.0
synopsis:
  Ethereum virtual machine evaluator
description:
  Hevm implements the Ethereum virtual machine semantics.
  .
  It can be used as a library, and it also comes with an executable
  that can run unit test suites, optionally with a visual TTY debugger.
homepage:
  https://github.com/dapphub/dapptools
license:
  AGPL-3.0-only
license-file:
  COPYING
author:
  Mikael Brockman, Martin Lundfall
maintainer:
  mikael@brockman.se, martin.lundfall@gmail.com
category:
  Ethereum
build-type:
  Simple
data-files:
  run-blockchain-tests
  run-consensus-tests
extra-source-files:
  CHANGELOG.md

library
  exposed-modules:
    EVM,
    EVM.ABI,
    EVM.Concrete,
    EVM.Dapp,
    EVM.Dev,
    EVM.Debug,
    EVM.Demand,
    EVM.Emacs,
    EVM.Exec,
    EVM.Facts,
    EVM.Facts.Git,
    EVM.Flatten,
    EVM.Format,
    EVM.Fetch,
    EVM.FeeSchedule,
    EVM.Hexdump,
    EVM.Op,
    EVM.Patricia,
    EVM.Precompiled,
    EVM.RLP,
    EVM.Solidity,
    EVM.Stepper,
    EVM.StorageLayout,
    EVM.Symbolic,
    EVM.SymExec
    EVM.Transaction,
    EVM.TTY,
    EVM.TTYCenteredList,
    EVM.Types,
    EVM.UnitTest,
    EVM.VMTest
  other-modules:
    Paths_hevm
  autogen-modules:
    Paths_hevm
  ghc-options:
    -Wall -Wno-deprecations
  extra-libraries:
    secp256k1, ff
  c-sources:
    ethjet/tinykeccak.c, ethjet/ethjet.c
  cxx-sources:
    ethjet/ethjet-ff.cc, ethjet/blake2.cc
  cxx-options:
    -std=c++0x
  install-includes:
    ethjet/tinykeccak.h, ethjet/ethjet.h, ethjet/ethjet-ff.h, ethjet/blake2.h
  build-depends:
    QuickCheck                        >= 2.13.2 && < 2.15,
    async                             == 2.2.3,
    Decimal                           >= 0.5.1 && < 0.6,
    containers                        >= 0.6.0 && < 0.7,
    deepseq                           >= 1.4.4 && < 1.5,
    time                              >= 1.8.0 && < 1.11,
    transformers                      >= 0.5.6 && < 0.6,
    tree-view                         >= 0.5 && < 0.6,
    abstract-par                      >= 0.3.3 && < 0.4,
    aeson                             >= 1.5.6 && < 1.6,
    bytestring                        >= 0.10.8 && < 0.11,
    scientific                        >= 0.3.6 && < 0.4,
    binary                            >= 0.8.6 && < 0.9,
    text                              >= 1.2.3 && < 1.3,
    unordered-containers              >= 0.2.10 && < 0.3,
    vector                            >= 0.12.1 && < 0.13,
    ansi-wl-pprint                    >= 0.6.9 && < 0.7,
    base16-bytestring                 >= 1.0.0 && < 2.0,
    brick                             >= 0.58 && < 0.63,
    megaparsec                        >= 9.0.0 && < 10.0,
    mtl                               >= 2.2.2 && < 2.3,
    directory                         >= 1.3.3 && < 1.4,
    filepath                          >= 1.4.2 && < 1.5,
    vty                               >= 5.25.1 && < 5.34,
    cereal                            >= 0.5.8 && < 0.6,
    cryptonite                        >= 0.27 && <= 0.29,
    memory                            >= 0.14.18 && < 0.16,
    data-dword                        >= 0.3.1 && < 0.4,
    fgl                               >= 5.7.0 && < 5.8,
    free                              >= 5.1.3 && < 5.2,
    haskeline                         >= 0.8.0 && < 0.9,
    process                           >= 1.6.5 && < 1.7,
    lens                              >= 4.17.1 && < 4.20,
    lens-aeson                        >= 1.0.2 && < 1.2,
    monad-par                         >= 0.3.5 && < 0.4,
    multiset                          >= 0.3.4 && < 0.4,
    operational                       >= 0.2.3 && < 0.3,
    optparse-generic                  >= 1.3.1 && < 1.5,
    quickcheck-text                   >= 0.1.2 && < 0.2,
    restless-git                      >= 0.7 && < 0.8,
    rosezipper                        >= 0.2 && < 0.3,
    s-cargot                          >= 0.1.4 && < 0.2,
    sbv                               >= 8.9,
    semver-range                      >= 0.2.7 && < 0.3,
    temporary                         >= 1.3 && < 1.4,
    text-format                       >= 0.3.2 && < 0.4,
    witherable                        >= 0.3.5 && < 0.5,
    wreq                              >= 0.5.3 && < 0.6,
    regex-tdfa                        >= 1.2.3 && < 1.4,
    base                              >= 4.9 && < 5,
    here                              >= 1.2.13 && < 1.3,
  hs-source-dirs:
    src
  default-language:
    Haskell2010
  default-extensions:
    BangPatterns,
    DeriveDataTypeable,
    DeriveGeneric,
    FlexibleContexts,
    GeneralizedNewtypeDeriving,
    LambdaCase,
    OverloadedStrings,
    Rank2Types,
    RecordWildCards,
    TypeFamilies,
    ViewPatterns

executable hevm
  default-language:
    Haskell2010
  hs-source-dirs:
    hevm-cli
  main-is:
    hevm-cli.hs
  ghc-options:
    -Wall -threaded -with-rtsopts=-N
  other-modules:
    Paths_hevm
  if os(darwin)
    ld-options: -Wl,-keep_dwarf_unwind
  build-depends:
    QuickCheck,
    aeson,
    ansi-wl-pprint,
    async,
    base,
    base16-bytestring,
    binary,
    brick,
    bytestring,
    containers,
    cryptonite,
    data-dword,
    deepseq,
    directory,
    filepath,
    free,
    hevm,
    lens,
    lens-aeson,
    memory,
    mtl,
    optparse-generic,
    operational,
    process,
    quickcheck-text,
    regex-tdfa,
    sbv,
    temporary,
    text,
    text-format,
    unordered-containers,
    vector,
    vty

test-suite test
  default-language:
    Haskell2010
  ghc-options:
    -Wall
  type:
    exitcode-stdio-1.0
  hs-source-dirs:
    test
  main-is:
    test.hs
  extra-libraries:
    secp256k1
  build-depends:
    HUnit >= 1.6,
    QuickCheck,
    base,
    base16-bytestring,
    binary,
    containers,
    bytestring,
    free,
    here,
    hevm,
    lens,
    mtl,
    tasty >= 1.0,
    tasty-hunit >= 0.10,
    tasty-quickcheck >= 0.9,
    text,
    vector,
    sbv