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 nativeCheckInputs = [
39 hypothesis
40 pytestCheckHook
41 pytest-xdist
42 pydantic
43 ]
44 ++ eth-hash.optional-dependencies.pycryptodome;
45
46 disabledTests = [
47 # boolean list representation changed
48 "test_get_abi_strategy_returns_certain_strategies_for_known_type_strings"
49 "test_install_local_wheel"
50 ];
51
52 pythonImportsCheck = [ "eth_abi" ];
53
54 meta = {
55 description = "Ethereum ABI utilities";
56 homepage = "https://github.com/ethereum/eth-abi";
57 changelog = "https://github.com/ethereum/eth-abi/blob/v${version}/docs/release_notes.rst";
58 license = lib.licenses.mit;
59 maintainers = with lib.maintainers; [ hellwolf ];
60 };
61}