nixpkgs/pkgs/by-name/ec/echidna/package.nix
hellwolf 47f4b53ed3 echidna: 2.2.3 -> 2.2.6
- move to by-name folder
- fix: runtime depends on slither-analyzer through wrapProgram
2025-01-25 22:57:02 +01:00

121 lines
2.1 KiB
Nix

{
lib,
stdenv,
makeWrapper,
haskellPackages,
fetchFromGitHub,
# dependencies
slither-analyzer,
}:
haskellPackages.mkDerivation rec {
pname = "echidna";
version = "2.2.6";
src = fetchFromGitHub {
owner = "crytic";
repo = "echidna";
tag = "v${version}";
sha256 = "sha256-5nzis7MXOqs0bhx2jrEexjZYZI2qY6D0D7AWO+SPs+A=";
};
isExecutable = true;
buildTools = with haskellPackages; [
hpack
];
executableHaskellDepends = with haskellPackages; [
# base dependencies
aeson
base
containers
directory
hevm
MonadRandom
mtl
text
# library dependencies
ansi-terminal
async
base16-bytestring
binary
brick
bytestring
data-bword
data-dword
deepseq
exceptions
extra
filepath
hashable
html-conduit
html-entities
http-conduit
ListLike
optics
optics-core
process
random
rosezipper
semver
signal
split
strip-ansi-escape
time
unliftio
utf8-string
vector
vty
vty-crossplatform
wai-extra
warp
word-wrap
xml-conduit
yaml
# executable dependencies
code-page
filepath
hashable
optparse-applicative
time
with-utf8
];
executableToolDepends = [
makeWrapper
];
preConfigure = ''
hpack
'';
postInstall =
with haskellPackages;
# https://github.com/NixOS/nixpkgs/pull/304352
lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
remove-references-to -t ${warp.out} "$out/bin/echidna"
remove-references-to -t ${wreq.out} "$out/bin/echidna"
''
# make slither-analyzer a runtime dependency
+ ''
wrapProgram $out/bin/echidna \
--prefix PATH : ${lib.makeBinPath [ slither-analyzer ]}
'';
doHaddock = false;
# tests depend on a specific version of solc
doCheck = false;
homepage = "https://github.com/crytic/echidna";
description = "Ethereum smart contract fuzzer";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [
arturcygan
hellwolf
];
platforms = lib.platforms.unix;
mainProgram = "echidna";
}