bolt7

Routing gossip protocol, per BOLT #7 (docs.ppad.tech/bolt7).
git clone git://git.ppad.tech/bolt7.git
Log | Files | Refs | README | LICENSE

commit 46f82d21843c81f2efe0b63576e8f785f11bac56
parent bfb5c7c0bd6434bfd57613440f98c8ea68109590
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 10 Oct 2026 13:32:16 +0400

flake: add ppad-secp256k1 as a test dependency

Used by the test suite to verify real gossip signatures against the
library's signature hashes. Requires >= 0.5.5 for
_verify_ecdsa_no_hash.

Diffstat:
Mflake.lock | 192++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Mflake.nix | 17++++++++++++++++-
Mppad-bolt7.cabal | 1+
3 files changed, 208 insertions(+), 2 deletions(-)

diff --git a/flake.lock b/flake.lock @@ -71,6 +71,40 @@ "ppad-base16_2": { "inputs": { "flake-utils": [ + "ppad-secp256k1", + "ppad-base16", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-secp256k1", + "ppad-base16", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-nixpkgs": [ + "ppad-secp256k1", + "ppad-nixpkgs" + ] + }, + "locked": { + "lastModified": 1780597900, + "narHash": "sha256-wI9ME6gE+DP+7vLYuWBff3Q9mOM/xX/N0keqJj7dKJQ=", + "ref": "master", + "rev": "881ca5128665d5e2207803751054d7d32c4c864c", + "revCount": 38, + "type": "git", + "url": "git://git.ppad.tech/base16.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/base16.git" + } + }, + "ppad-base16_3": { + "inputs": { + "flake-utils": [ "ppad-sha256", "ppad-base16", "ppad-nixpkgs", @@ -134,6 +168,85 @@ "url": "git://git.ppad.tech/bolt1.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": 1785603497, + "narHash": "sha256-rF8KdVJ+VwUT2bEfCLZMPc05rUclr0wN2uOTYvd3z7g=", + "ref": "master", + "rev": "e303bda7578385f488c2f23baa2e1a6a2b0b2aaf", + "revCount": 305, + "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": [ + "ppad-secp256k1", + "ppad-hmac-drbg", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-secp256k1", + "ppad-hmac-drbg", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-base16": [ + "ppad-secp256k1", + "ppad-base16" + ], + "ppad-nixpkgs": [ + "ppad-secp256k1", + "ppad-nixpkgs" + ], + "ppad-sha256": [ + "ppad-secp256k1", + "ppad-sha256" + ], + "ppad-sha512": [ + "ppad-secp256k1", + "ppad-sha512" + ] + }, + "locked": { + "lastModified": 1783709384, + "narHash": "sha256-NuIDRrjy8gmJ22CvXU1JpNIEZ+pmo9ZScifieJApAxM=", + "owner": "ppad-tech", + "repo": "hmac-drbg", + "rev": "ff4f884296297eb7fa62f7e9326c094cdaf5f9cd", + "type": "github" + }, + "original": { + "owner": "ppad-tech", + "repo": "hmac-drbg", + "type": "github" + } + }, "ppad-nixpkgs": { "inputs": { "flake-utils": "flake-utils", @@ -154,6 +267,44 @@ "url": "git://git.ppad.tech/nixpkgs.git" } }, + "ppad-secp256k1": { + "inputs": { + "flake-utils": [ + "ppad-secp256k1", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-secp256k1", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-base16": "ppad-base16_2", + "ppad-fixed": "ppad-fixed", + "ppad-hmac-drbg": "ppad-hmac-drbg", + "ppad-nixpkgs": [ + "ppad-nixpkgs" + ], + "ppad-sha256": [ + "ppad-sha256" + ], + "ppad-sha512": "ppad-sha512" + }, + "locked": { + "lastModified": 1785605654, + "narHash": "sha256-VDNnKXmJIZZ/3u7Tf1rK93GR4x7OiAadqykhqCwkHb4=", + "ref": "master", + "rev": "fdb80d54b86c61bd1a15e2e8db351091d02c89ee", + "revCount": 280, + "type": "git", + "url": "git://git.ppad.tech/secp256k1.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/secp256k1.git" + } + }, "ppad-sha256": { "inputs": { "flake-utils": [ @@ -166,7 +317,7 @@ "ppad-nixpkgs", "nixpkgs" ], - "ppad-base16": "ppad-base16_2", + "ppad-base16": "ppad-base16_3", "ppad-nixpkgs": [ "ppad-nixpkgs" ] @@ -186,6 +337,44 @@ "url": "git://git.ppad.tech/sha256.git" } }, + "ppad-sha512": { + "inputs": { + "flake-utils": [ + "ppad-secp256k1", + "ppad-sha512", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-secp256k1", + "ppad-sha512", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-base16": [ + "ppad-secp256k1", + "ppad-base16" + ], + "ppad-nixpkgs": [ + "ppad-secp256k1", + "ppad-nixpkgs" + ] + }, + "locked": { + "lastModified": 1783709328, + "narHash": "sha256-M7Ts5a6600sauWlQZ2NHR+qpQMv0DCEPoCrNpcZAqVo=", + "ref": "master", + "rev": "287fb14136592acd6c510ae69b645e77335a214c", + "revCount": 58, + "type": "git", + "url": "git://git.ppad.tech/sha512.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/sha512.git" + } + }, "root": { "inputs": { "flake-utils": [ @@ -198,6 +387,7 @@ ], "ppad-bolt1": "ppad-bolt1", "ppad-nixpkgs": "ppad-nixpkgs", + "ppad-secp256k1": "ppad-secp256k1", "ppad-sha256": "ppad-sha256" } }, diff --git a/flake.nix b/flake.nix @@ -8,6 +8,13 @@ ref = "master"; inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; }; + ppad-secp256k1 = { + type = "git"; + url = "git://git.ppad.tech/secp256k1.git"; + ref = "master"; + inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + inputs.ppad-sha256.follows = "ppad-sha256"; + }; ppad-sha256 = { type = "git"; url = "git://git.ppad.tech/sha256.git"; @@ -24,7 +31,7 @@ }; outputs = { self, nixpkgs, flake-utils, ppad-nixpkgs - , ppad-bolt1, ppad-sha256 }: + , ppad-bolt1, ppad-secp256k1, ppad-sha256 }: flake-utils.lib.eachDefaultSystem (system: let lib = "ppad-bolt7"; @@ -40,6 +47,12 @@ (hlib.enableCabalFlag bolt1 "llvm") [ llvm clang ]; + secp256k1 = ppad-secp256k1.packages.${system}.default; + secp256k1-llvm = + hlib.addBuildTools + (hlib.enableCabalFlag secp256k1 "llvm") + [ llvm clang ]; + sha256 = ppad-sha256.packages.${system}.default; sha256-llvm = hlib.addBuildTools @@ -48,9 +61,11 @@ hpkgs = pkgs.haskell.packages.ghc910.extend (new: old: { ppad-bolt1 = bolt1-llvm; + ppad-secp256k1 = secp256k1-llvm; ppad-sha256 = sha256-llvm; ${lib} = new.callCabal2nix lib ./. { ppad-bolt1 = new.ppad-bolt1; + ppad-secp256k1 = new.ppad-secp256k1; ppad-sha256 = new.ppad-sha256; }; }); diff --git a/ppad-bolt7.cabal b/ppad-bolt7.cabal @@ -53,6 +53,7 @@ test-suite bolt7-tests , ppad-base16 , ppad-bolt1 >= 0.0.1 && < 0.1 , ppad-bolt7 + , ppad-secp256k1 >= 0.5.5 && < 0.6 , tasty , tasty-hunit , tasty-quickcheck