cabal-version: 3.0 name: hevm version: 0.51.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 author: Mikael Brockman, Martin Lundfall, dxo maintainer: mikael@brockman.se, martin.lundfall@gmail.com, git@d-xo.org category: Ethereum build-type: Simple extra-source-files: CHANGELOG.md bench/contracts/erc20.sol test/contracts/lib/test.sol test/contracts/lib/erc20.sol test/contracts/pass/trivial.sol test/contracts/pass/abstract.sol test/contracts/pass/cheatCodes.sol test/contracts/pass/constantinople.sol test/contracts/pass/dsProvePass.sol test/contracts/pass/invariants.sol test/contracts/pass/libraries.sol test/contracts/pass/loops.sol test/contracts/pass/rpc.sol test/contracts/fail/trivial.sol test/contracts/fail/cheatCodes.sol test/contracts/fail/dsProveFail.sol test/contracts/fail/invariantFail.sol test/scripts/convert_trace_to_json.sh flag ci description: Sets flags for compilation in CI default: False manual: True flag devel description: Sets flag for compilation during development default: False manual: True source-repository head type: git location: https://github.com/ethereum/hevm.git common shared if flag(ci) ghc-options: -Werror if flag(devel) ghc-options: -j ghc-options: -Wall -Wno-unticked-promoted-constructors -Wno-orphans -Wno-ambiguous-fields default-language: GHC2021 default-extensions: DuplicateRecordFields LambdaCase NoFieldSelectors OverloadedRecordDot OverloadedStrings OverloadedLabels RecordWildCards TypeFamilies ViewPatterns library import: shared exposed-modules: EVM, EVM.ABI, EVM.Assembler, EVM.Concrete, EVM.Dapp, EVM.Debug, EVM.Dev, EVM.Expr, EVM.SMT, EVM.Solvers, EVM.Exec, EVM.Facts, EVM.Facts.Git, EVM.Format, EVM.Fetch, EVM.FeeSchedule, EVM.Hexdump, EVM.Op, EVM.Patricia, EVM.Precompiled, EVM.RLP, EVM.Solidity, EVM.Stepper, EVM.StorageLayout, EVM.SymExec, EVM.Traversals, EVM.CSE, EVM.Keccak, EVM.Transaction, EVM.Types, EVM.UnitTest, EVM.Sign, if !os(windows) exposed-modules: EVM.TTY, EVM.TTYCenteredList other-modules: Paths_hevm autogen-modules: Paths_hevm if os(linux) || os(windows) extra-libraries: stdc++ extra-libraries: secp256k1, ff, gmp 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, Decimal >= 0.5.1 && < 0.6, containers >= 0.6.0 && < 0.7, deepseq >= 1.4.4 && < 1.5, time >= 1.11.1.1 && < 1.12, transformers >= 0.5.6 && < 0.6, tree-view >= 0.5 && < 0.6, abstract-par >= 0.3.3 && < 0.4, aeson >= 2.0.0 && < 2.1, bytestring >= 0.11.3.1 && < 0.12, 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 >= 0.3.2.0 && < 0.3.3.0, megaparsec >= 9.0.0 && < 10.0, mtl >= 2.2.2 && < 2.3, directory >= 1.3.3 && < 1.4, filepath >= 1.4.2 && < 1.5, cereal >= 0.5.8 && < 0.6, cryptonite >= 0.30 && < 0.31, memory >= 0.16.0 && < 0.20, data-dword >= 0.3.1 && < 0.4, free >= 5.1.3 && < 5.2, haskeline >= 0.8.0 && < 0.9, process >= 1.6.5 && < 1.7, optics-core >= 0.4.1 && < 0.5, optics-extra >= 0.4.2.1 && < 0.5, optics-th >= 0.4.1 && < 0.5, aeson-optics >= 1.2.0.1 && < 1.3, monad-par >= 0.3.5 && < 0.4, async >= 2.2.4 && < 2.3, 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, temporary >= 1.3 && < 1.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, tuple >= 0.3.0.2 && < 0.4, smt2-parser >= 0.1.0.1, word-wrap >= 0.5 && < 0.6, spool >= 0.1 && < 0.2, stm >= 2.5.0 && < 2.6.0, spawn >= 0.3 && < 0.4, filepattern >= 0.1.2 && < 0.2 if !os(windows) build-depends: brick >= 1.4 && < 1.5, vty >= 5.37 && < 5.38 hs-source-dirs: src executable hevm import: shared hs-source-dirs: hevm-cli main-is: hevm-cli.hs ghc-options: -threaded -with-rtsopts=-N other-modules: Paths_hevm if os(darwin) extra-libraries: c++ ld-options: -Wl,-keep_dwarf_unwind else extra-libraries: stdc++ build-depends: QuickCheck, aeson, ansi-wl-pprint, async, base, base16, binary, brick, bytestring, containers, cryptonite, data-dword, deepseq, directory, filepath, free, hevm, memory, mtl, optparse-generic, operational, process, quickcheck-text, regex-tdfa, temporary, text, unordered-containers, vector, vty, stm, spawn, optics-core if os(windows) buildable: False --- Test Helpers --- common test-base import: shared hs-source-dirs: test extra-libraries: secp256k1 other-modules: Paths_hevm autogen-modules: Paths_hevm build-depends: HUnit >= 1.6, QuickCheck, quickcheck-instances, aeson, base, base16, binary, containers, directory, bytestring, filemanip, filepath, here, hevm, mtl, data-dword, process, tasty >= 1.0, tasty-hunit >= 0.10, tasty-quickcheck >= 0.9, tasty-expected-failure >= 0.12, temporary, text, regex-tdfa, regex, time, array, vector, tasty-bench, stm >= 2.5.0, spawn >= 0.3, witherable, smt2-parser >= 0.1.0.1, operational, optics-core, optics-extra library test-utils import: test-base exposed-modules: EVM.Test.Utils EVM.Test.Tracing EVM.Test.BlockchainTests if os(windows) buildable: False common test-common import: test-base if flag(devel) ghc-options: -threaded -with-rtsopts=-N build-depends: test-utils other-modules: EVM.Test.Utils EVM.Test.Tracing EVM.Test.BlockchainTests if os(windows) buildable: False if os(darwin) extra-libraries: c++ -- https://gitlab.haskell.org/ghc/ghc/-/issues/11829 ld-options: -Wl,-keep_dwarf_unwind else extra-libraries: stdc++ --- Test Suites --- test-suite test import: test-common type: exitcode-stdio-1.0 main-is: test.hs -- these tests require network access so we split them into a seperate test -- suite to make it easy to skip them when running nix-build test-suite rpc-tests import: test-common type: exitcode-stdio-1.0 main-is: rpc.hs test-suite ethereum-tests import: test-common type: exitcode-stdio-1.0 main-is: BlockchainTests.hs --- Benchmarks --- benchmark bench import: shared type: exitcode-stdio-1.0 main-is: bench.hs hs-source-dirs: bench ghc-options: -O2 if os(darwin) extra-libraries: c++ else extra-libraries: stdc++ other-modules: Paths_hevm autogen-modules: Paths_hevm build-depends: base, tasty-bench, tasty, bytestring, text, hevm, here, test-utils, filemanip, filepath, containers, mtl