nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 # dependencies
7 eth-typing,
8 eth-utils,
9 parsimonious,
10 # nativeCheckInputs
11 hypothesis,
12 pytestCheckHook,
13 pytest-xdist,
14 eth-hash,
15 pydantic,
16}:
17
18buildPythonPackage rec {
19 pname = "eth-abi";
20 version = "5.2.0";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "ethereum";
25 repo = "eth-abi";
26 tag = "v${version}";
27 hash = "sha256-/tyGm/lH72oZEKfTd25t+k0y3TuAZQg+hUABT4YCP2g=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 eth-typing
34 eth-utils
35 parsimonious
36 ];
37
38 pythonRelaxDeps = [ "parsimonious" ];
39
40 nativeCheckInputs = [
41 hypothesis
42 pytestCheckHook
43 pytest-xdist
44 pydantic
45 ]
46 ++ eth-hash.optional-dependencies.pycryptodome;
47
48 disabledTests = [
49 # boolean list representation changed
50 "test_get_abi_strategy_returns_certain_strategies_for_known_type_strings"
51 "test_install_local_wheel"
52 ];
53
54 pythonImportsCheck = [ "eth_abi" ];
55
56 meta = {
57 description = "Ethereum ABI utilities";
58 homepage = "https://github.com/ethereum/eth-abi";
59 changelog = "https://github.com/ethereum/eth-abi/blob/v${version}/docs/release_notes.rst";
60 license = lib.licenses.mit;
61 maintainers = with lib.maintainers; [ hellwolf ];
62 };
63}