1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 # dependencies
7 eth-keys,
8 eth-utils,
9 pycryptodome,
10 py-ecc,
11 # nativeCheckInputs
12 pytestCheckHook,
13 pydantic,
14}:
15
16buildPythonPackage rec {
17 pname = "eth-keyfile";
18 version = "0.9.1";
19 pyproject = true;
20
21 src = fetchFromGitHub {
22 owner = "ethereum";
23 repo = "eth-keyfile";
24 tag = "v${version}";
25 fetchSubmodules = true;
26 hash = "sha256-DR17EupRDnviN6OXF+B+RlCVdG8cfcvnIgIEKxrXFKs=";
27 };
28
29 build-system = [ setuptools ];
30
31 dependencies = [
32 eth-keys
33 eth-utils
34 pycryptodome
35 py-ecc
36 ];
37
38 nativeCheckInputs = [
39 pytestCheckHook
40 pydantic
41 ];
42
43 pythonImportsCheck = [ "eth_keyfile" ];
44
45 disabledTests = [
46 "test_install_local_wheel"
47 ];
48
49 meta = {
50 description = "Tools for handling the encrypted keyfile format used to store private keys";
51 homepage = "https://github.com/ethereum/eth-keyfile";
52 changelog = "https://github.com/ethereum/eth-keyfile/blob/v${version}/CHANGELOG.rst";
53 license = lib.licenses.mit;
54 maintainers = with lib.maintainers; [ hellwolf ];
55 };
56}