at 22.05-pre 62 lines 2.2 kB view raw
1{ lib 2, fetchpatch 3, fetchFromGitHub 4# Haskell deps 5, mkDerivation, aeson, ansi-terminal, base, base16-bytestring, binary, brick 6, bytestring, cborg, containers, data-dword, data-has, deepseq, directory 7, exceptions, filepath, hashable, hevm, hpack, lens, lens-aeson, megaparsec 8, MonadRandom, mtl, optparse-applicative, process, random, stm, tasty 9, tasty-hunit, tasty-quickcheck, temporary, text, transformers , unix, unliftio 10, unliftio-core, unordered-containers, vector, vector-instances, vty 11, wl-pprint-annotated, word8, yaml , extra, ListLike, semver 12}: 13mkDerivation rec { 14 pname = "echidna"; 15 version = "1.7.2"; 16 17 src = fetchFromGitHub { 18 owner = "crytic"; 19 repo = "echidna"; 20 rev = "v${version}"; 21 sha256 = "sha256-eFhL8Zn8204JRrF69ibPtd7VpFW63i1iVXoGwXHlqps="; 22 }; 23 24 patches = [ 25 (fetchpatch { 26 name = "update-hevm-to-0.47.0.patch"; 27 url = "https://github.com/crytic/echidna/commit/25dfdad93d0e0dd822f22a1c1e63a0ecf2b22a23.patch"; 28 sha256 = "sha256-dj3Ie+Z4zE1fgROE/KuWZXaH9knsXJi1ai3gu5zyw/E="; 29 }) 30 ]; 31 32 isLibrary = true; 33 isExecutable = true; 34 libraryHaskellDepends = [ 35 aeson ansi-terminal base base16-bytestring binary brick bytestring cborg 36 containers data-dword data-has deepseq directory exceptions filepath 37 hashable hevm lens lens-aeson megaparsec MonadRandom mtl 38 optparse-applicative process random stm temporary text transformers unix 39 unliftio unliftio-core unordered-containers vector vector-instances vty 40 wl-pprint-annotated word8 yaml extra ListLike semver 41 ]; 42 libraryToolDepends = [ hpack ]; 43 executableHaskellDepends = libraryHaskellDepends; 44 testHaskellDepends = [ 45 tasty tasty-hunit tasty-quickcheck 46 ]; 47 preConfigure = '' 48 hpack 49 # re-enable dynamic build for Linux 50 sed -i -e 's/os(linux)/false/' echidna.cabal 51 ''; 52 shellHook = "hpack"; 53 doHaddock = false; 54 # tests depend on a specific version of solc 55 doCheck = false; 56 57 description = "Ethereum smart contract fuzzer"; 58 homepage = "https://github.com/crytic/echidna"; 59 license = lib.licenses.agpl3Plus; 60 maintainers = with lib.maintainers; [ arturcygan ]; 61 platforms = lib.platforms.unix; 62}