1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, ecdsa
6, coincurve
7, pynacl
8, crcmod
9, ed25519-blake2b
10, py-sr25519-bindings
11, cbor2
12, pycryptodome
13, pytestCheckHook
14}:
15
16buildPythonPackage rec {
17 pname = "bip-utils";
18 version = "2.7.1";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.6";
22
23 src = fetchFromGitHub {
24 owner = "ebellocchia";
25 repo = "bip_utils";
26 rev = "refs/tags/v${version}";
27 hash = "sha256-QrCkLiGBdZTQCnbWSTN0PeoAsQfg2CoSGdZcbhqTvOk=";
28 };
29
30 postPatch = ''
31 substituteInPlace requirements.txt \
32 --replace "coincurve>=15.0.1,<18.0.0" "coincurve"
33 '';
34
35 propagatedBuildInputs = [
36 ecdsa
37 cbor2
38 pynacl
39 coincurve
40 crcmod
41 ed25519-blake2b
42 py-sr25519-bindings
43 pycryptodome
44 ];
45
46 nativeCheckInputs = [
47 pytestCheckHook
48 ];
49
50 pythonImportsCheck = [
51 "bip_utils"
52 ];
53
54 meta = with lib; {
55 description = "Implementation of BIP39, BIP32, BIP44, BIP49 and BIP84 for wallet seeds, keys and addresses generation";
56 homepage = "https://github.com/ebellocchia/bip_utils";
57 changelog = "https://github.com/ebellocchia/bip_utils/blob/v${version}/CHANGELOG.md";
58 license = with licenses; [ mit ];
59 maintainers = with maintainers; [ prusnak stargate01 ];
60 };
61}