1{ lib, buildPythonPackage, fetchPypi, makeWrapper, pythonOlder
2, prettytable
3, setuptools
4, solc
5}:
6
7buildPythonPackage rec {
8 pname = "slither-analyzer";
9 version = "0.6.9";
10
11 disabled = pythonOlder "3.6";
12
13 # No Python tests
14 doCheck = false;
15
16 src = fetchPypi {
17 inherit pname version;
18 sha256 = "fb057eb7f5416ac76b6ab03bb5c20c39cb7b97c7689ce1e7244c9088bd28f513";
19 };
20
21 nativeBuildInputs = [ makeWrapper ];
22 propagatedBuildInputs = [ prettytable setuptools ];
23
24 postFixup = ''
25 wrapProgram $out/bin/slither \
26 --prefix PATH : "${lib.makeBinPath [ solc ]}"
27 '';
28
29 meta = with lib; {
30 description = "Static Analyzer for Solidity";
31 longDescription = ''
32 Slither is a Solidity static analysis framework written in Python 3. It
33 runs a suite of vulnerability detectors, prints visual information about
34 contract details, and provides an API to easily write custom analyses.
35 '';
36 homepage = https://github.com/trailofbits/slither;
37 license = licenses.agpl3;
38 maintainers = [ maintainers.asymmetric ];
39 broken = true;
40 };
41}