bip32

Pure Haskell BIP32 hierarchical deterministic wallets (docs.ppad.tech/bip32).
git clone git://git.ppad.tech/bip32.git
Log | Files | Refs | README | LICENSE

commit dc56efbecf8a78413c32234f1d6926d4fdca5f60
parent 1917afc9f432e2c32c964635ff2348075a675d38
Author: Jared Tobin <jared@jtobin.io>
Date:   Sun, 21 Dec 2025 19:13:23 -0330

meta: secp256k1 v0.5

Diffstat:
Mflake.lock | 136+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
Mflake.nix | 7+++++--
Mppad-bip32.cabal | 2+-
3 files changed, 118 insertions(+), 27 deletions(-)

diff --git a/flake.lock b/flake.lock @@ -65,6 +65,43 @@ "url": "git://git.ppad.tech/base16.git" } }, + "ppad-base16_2": { + "inputs": { + "flake-utils": [ + "ppad-secp256k1", + "ppad-hmac-drbg", + "ppad-base16", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-secp256k1", + "ppad-hmac-drbg", + "ppad-base16", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-nixpkgs": [ + "ppad-secp256k1", + "ppad-hmac-drbg", + "ppad-nixpkgs" + ] + }, + "locked": { + "lastModified": 1741625558, + "narHash": "sha256-ZBDXRD5fsVqA5bGrAlcnhiu67Eo50q0M9614nR3NBwY=", + "ref": "master", + "rev": "fb63457f2e894eda28250dfe65d0fcd1d195ac2f", + "revCount": 24, + "type": "git", + "url": "git://git.ppad.tech/base16.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/base16.git" + } + }, "ppad-base58": { "inputs": { "flake-utils": [ @@ -77,6 +114,9 @@ "ppad-nixpkgs", "nixpkgs" ], + "ppad-base16": [ + "ppad-base16" + ], "ppad-nixpkgs": [ "ppad-nixpkgs" ], @@ -85,11 +125,11 @@ ] }, "locked": { - "lastModified": 1750500456, - "narHash": "sha256-9N1EzWyT4QknMjRvE+RUjs1klOxvTlU5vRl+mzDKZfE=", + "lastModified": 1750582288, + "narHash": "sha256-scwPuowiX2/+o4cgxEtmKTZjpSi/E9IMX72aKB3ylkk=", "ref": "master", - "rev": "f40766056e463a82a06eec66d7b08cba1dbcf2d4", - "revCount": 28, + "rev": "e36b0a81145b163bdf103d43e31392b272417cbe", + "revCount": 29, "type": "git", "url": "git://git.ppad.tech/base58.git" }, @@ -99,6 +139,40 @@ "url": "git://git.ppad.tech/base58.git" } }, + "ppad-fixed": { + "inputs": { + "flake-utils": [ + "ppad-secp256k1", + "ppad-fixed", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-secp256k1", + "ppad-fixed", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-nixpkgs": [ + "ppad-secp256k1", + "ppad-nixpkgs" + ] + }, + "locked": { + "lastModified": 1766353466, + "narHash": "sha256-uQ2PW6AuO5ihjQuaedKUjpCzXBNd+yrZWxQl7kz6QwE=", + "ref": "master", + "rev": "602f5fbd031106b89b31bea5eddf1c0dc3b07148", + "revCount": 253, + "type": "git", + "url": "git://git.ppad.tech/fixed.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/fixed.git" + } + }, "ppad-hmac-drbg": { "inputs": { "flake-utils": [ @@ -113,6 +187,7 @@ "ppad-nixpkgs", "nixpkgs" ], + "ppad-base16": "ppad-base16_2", "ppad-nixpkgs": [ "ppad-secp256k1", "ppad-nixpkgs" @@ -127,11 +202,11 @@ ] }, "locked": { - "lastModified": 1740802952, - "narHash": "sha256-rYWQAzoXmxWQqBA2iPiRkSnb3xDjDt5aq3Fe0UyoS38=", + "lastModified": 1750582815, + "narHash": "sha256-m9Ynf6rCAGrGU8bPil2apUC5nwPNfJSkak4GOVPj9ok=", "ref": "master", - "rev": "567288a1f3a558a69a6ee10a26e44f00310692f9", - "revCount": 51, + "rev": "d49f5c7c03c82d4d8321f2932b19160822715ebc", + "revCount": 52, "type": "git", "url": "git://git.ppad.tech/hmac-drbg.git" }, @@ -173,16 +248,19 @@ "ppad-nixpkgs", "nixpkgs" ], + "ppad-base16": [ + "ppad-base16" + ], "ppad-nixpkgs": [ "ppad-nixpkgs" ] }, "locked": { - "lastModified": 1740802961, - "narHash": "sha256-sEW9RGhoWs8BmsQ+FHowMaWgSEjJc68qB7Bg33c0yKw=", + "lastModified": 1750583200, + "narHash": "sha256-nVW/anVOzCiMcRmqQlbmT0LRmT6XjCKSH6DxubhL/sI=", "ref": "master", - "rev": "d703a7a58bad51f8271cfb9b1731e37c05202eeb", - "revCount": 26, + "rev": "84eaa4264fe5e638004ea42d2dedbc2d12b1df91", + "revCount": 27, "type": "git", "url": "git://git.ppad.tech/ripemd160.git" }, @@ -204,6 +282,10 @@ "ppad-nixpkgs", "nixpkgs" ], + "ppad-base16": [ + "ppad-base16" + ], + "ppad-fixed": "ppad-fixed", "ppad-hmac-drbg": "ppad-hmac-drbg", "ppad-nixpkgs": [ "ppad-nixpkgs" @@ -216,11 +298,11 @@ ] }, "locked": { - "lastModified": 1750503268, - "narHash": "sha256-DYpCW4dfqLTyV2ACFVH8gzKl1PNYYxcg6xfgT5aWBfg=", + "lastModified": 1766355085, + "narHash": "sha256-Kvl8C9GXN6BMgPpahfBF0Emq2BH318McldU1k2L/K0k=", "ref": "master", - "rev": "6b6e784010ba5b6ddb938e62a90eccb07bf5a3fb", - "revCount": 173, + "rev": "50faf718771e0577b6ac13f5c7a0391abf1376f7", + "revCount": 215, "type": "git", "url": "git://git.ppad.tech/secp256k1.git" }, @@ -242,16 +324,19 @@ "ppad-nixpkgs", "nixpkgs" ], + "ppad-base16": [ + "ppad-base16" + ], "ppad-nixpkgs": [ "ppad-nixpkgs" ] }, "locked": { - "lastModified": 1740802974, - "narHash": "sha256-GTD9UrxwMa5zY7hxzDSXjKXKUwMK4r3FBHLG0nvgapk=", + "lastModified": 1750583530, + "narHash": "sha256-elc+wo2v26SW9WWqZ+36nlrEHTCIotUbbPU0eeMaKLc=", "ref": "master", - "rev": "ab0957e305dff0243dcab11e381470585849fd20", - "revCount": 94, + "rev": "282fa90825bbc04c324c58186da473cb380d0fc2", + "revCount": 95, "type": "git", "url": "git://git.ppad.tech/sha256.git" }, @@ -273,16 +358,19 @@ "ppad-nixpkgs", "nixpkgs" ], + "ppad-base16": [ + "ppad-base16" + ], "ppad-nixpkgs": [ "ppad-nixpkgs" ] }, "locked": { - "lastModified": 1740802979, - "narHash": "sha256-6VAXmA1XiIT/WFcP+eFb6uK3YyfgVqIgDv3ASNIoCMs=", + "lastModified": 1750736173, + "narHash": "sha256-7AGv9HktdslIaVDO8IQUMrcBewmFngHlwqEUaYsI6kw=", "ref": "master", - "rev": "ff165b29fb21b99749460ae7e3fdca42a85c822b", - "revCount": 28, + "rev": "ba7757cf61132cf3c3d79960f51ddaf4801f7aec", + "revCount": 30, "type": "git", "url": "git://git.ppad.tech/sha512.git" }, diff --git a/flake.nix b/flake.nix @@ -18,6 +18,7 @@ url = "git://git.ppad.tech/base58.git"; ref = "master"; inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + inputs.ppad-base16.follows = "ppad-base16"; inputs.ppad-sha256.follows = "ppad-sha256"; }; ppad-sha256 = { @@ -25,24 +26,28 @@ url = "git://git.ppad.tech/sha256.git"; ref = "master"; inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + inputs.ppad-base16.follows = "ppad-base16"; }; ppad-sha512 = { type = "git"; url = "git://git.ppad.tech/sha512.git"; ref = "master"; inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + inputs.ppad-base16.follows = "ppad-base16"; }; ppad-ripemd160 = { type = "git"; url = "git://git.ppad.tech/ripemd160.git"; ref = "master"; inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + inputs.ppad-base16.follows = "ppad-base16"; }; ppad-secp256k1 = { type = "git"; url = "git://git.ppad.tech/secp256k1.git"; ref = "master"; inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + inputs.ppad-base16.follows = "ppad-base16"; inputs.ppad-sha256.follows = "ppad-sha256"; inputs.ppad-sha512.follows = "ppad-sha512"; }; @@ -88,8 +93,6 @@ cc ]; - inputsFrom = builtins.attrValues self.packages.${system}; - doBenchmark = true; shellHook = '' diff --git a/ppad-bip32.cabal b/ppad-bip32.cabal @@ -31,7 +31,7 @@ library , bytestring >= 0.9 && < 0.13 , ppad-base58 >= 0.2 && < 0.3 , ppad-ripemd160 >= 0.1.3 && < 0.2 - , ppad-secp256k1 >= 0.4 && < 0.5 + , ppad-secp256k1 >= 0.5 && < 0.6 , ppad-sha256 >= 0.2.3 && < 0.3 , ppad-sha512 >= 0.1.3 && < 0.2