2021-08-05 21:33:18 +00:00
|
|
|
{ lib
|
|
|
|
, fetchFromGitHub
|
|
|
|
# Haskell deps
|
2022-11-27 09:42:12 +00:00
|
|
|
, mkDerivation, aeson, base, base16-bytestring, binary, brick, bytestring
|
|
|
|
, containers, data-dword, data-has, directory, exceptions, extra, filepath
|
|
|
|
, hashable, hevm, hpack, html-entities, lens, ListLike, MonadRandom, mtl
|
|
|
|
, optparse-applicative, process, random, semver, tasty, tasty-hunit
|
|
|
|
, tasty-quickcheck, text, transformers, unix, unliftio, unordered-containers
|
|
|
|
, vector, vector-instances, vty, yaml
|
2021-08-05 21:33:18 +00:00
|
|
|
}:
|
|
|
|
mkDerivation rec {
|
|
|
|
pname = "echidna";
|
2023-02-02 18:25:31 +00:00
|
|
|
version = "2.0.5";
|
2021-08-05 21:33:18 +00:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
|
|
|
owner = "crytic";
|
|
|
|
repo = "echidna";
|
|
|
|
rev = "v${version}";
|
2023-02-02 18:25:31 +00:00
|
|
|
sha256 = "sha256-8bChe+qA4DowfuwsR5wLckb56fXi102g8vL2gAH/kYE=";
|
2021-08-05 21:33:18 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
isLibrary = true;
|
|
|
|
isExecutable = true;
|
|
|
|
libraryHaskellDepends = [
|
2022-11-27 09:42:12 +00:00
|
|
|
aeson base base16-bytestring binary brick bytestring containers data-dword
|
|
|
|
data-has directory exceptions extra filepath hashable hevm html-entities
|
|
|
|
lens ListLike MonadRandom mtl optparse-applicative process random semver
|
|
|
|
text transformers unix unliftio unordered-containers vector vector-instances
|
|
|
|
vty yaml
|
2021-08-05 21:33:18 +00:00
|
|
|
];
|
|
|
|
libraryToolDepends = [ hpack ];
|
|
|
|
executableHaskellDepends = libraryHaskellDepends;
|
|
|
|
testHaskellDepends = [
|
|
|
|
tasty tasty-hunit tasty-quickcheck
|
|
|
|
];
|
|
|
|
preConfigure = ''
|
|
|
|
hpack
|
|
|
|
# re-enable dynamic build for Linux
|
|
|
|
sed -i -e 's/os(linux)/false/' echidna.cabal
|
|
|
|
'';
|
|
|
|
shellHook = "hpack";
|
|
|
|
doHaddock = false;
|
|
|
|
# tests depend on a specific version of solc
|
|
|
|
doCheck = false;
|
|
|
|
|
|
|
|
description = "Ethereum smart contract fuzzer";
|
|
|
|
homepage = "https://github.com/crytic/echidna";
|
|
|
|
license = lib.licenses.agpl3Plus;
|
|
|
|
maintainers = with lib.maintainers; [ arturcygan ];
|
|
|
|
platforms = lib.platforms.unix;
|
2022-09-11 15:47:08 +00:00
|
|
|
mainProgram = "echidna-test";
|
2021-08-05 21:33:18 +00:00
|
|
|
}
|