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