1{ lib
2, buildPythonPackage
3, cbor2
4, fetchFromGitHub
5, pycryptodome
6, pythonOlder
7, setuptools
8, solc-select
9, toml
10}:
11
12buildPythonPackage rec {
13 pname = "crytic-compile";
14 version = "0.3.5";
15 format = "setuptools";
16
17 disabled = pythonOlder "3.8";
18
19 src = fetchFromGitHub {
20 owner = "crytic";
21 repo = "crytic-compile";
22 rev = "refs/tags/${version}";
23 hash = "sha256-aO2K0lc3qjKK8CZAbu/lotI5QJ/R+8npSIRX4a6HdrI=";
24 };
25
26 propagatedBuildInputs = [
27 cbor2
28 pycryptodome
29 setuptools
30 solc-select
31 toml
32 ];
33
34 # Test require network access
35 doCheck = false;
36
37 # required for import check to work
38 # PermissionError: [Errno 13] Permission denied: '/homeless-shelter'
39 env.HOME = "/tmp";
40 pythonImportsCheck = [
41 "crytic_compile"
42 ];
43
44 meta = with lib; {
45 description = "Abstraction layer for smart contract build systems";
46 homepage = "https://github.com/crytic/crytic-compile";
47 changelog = "https://github.com/crytic/crytic-compile/releases/tag/${version}";
48 license = licenses.agpl3Plus;
49 maintainers = with maintainers; [ arturcygan hellwolf ];
50 };
51}