bolt4

Onion routing protocol, per BOLT #4 (docs.ppad.tech/bolt4).
git clone git://git.ppad.tech/bolt4.git
Log | Files | Refs | README | LICENSE

commit b5939c2e8d40e1a2a840b87dd2859ea836c664fb
parent 5b27e4f7f1e70b0530d51e635c4333a497317027
Author: Jared Tobin <jared@jtobin.io>
Date:   Sun, 19 Apr 2026 12:25:08 +0800

lib: add ppad-bolt1 dependency

Wire ppad-bolt1 into the flake and cabal file to enable importing
shared Lightning types from BOLT1.Prim.

Diffstat:
Mflake.lock | 81++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mflake.nix | 15++++++++++++---
Mppad-bolt4.cabal | 1+
3 files changed, 87 insertions(+), 10 deletions(-)

diff --git a/flake.lock b/flake.lock @@ -138,6 +138,40 @@ "ppad-base16_3": { "inputs": { "flake-utils": [ + "ppad-bolt1", + "ppad-base16", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-bolt1", + "ppad-base16", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-nixpkgs": [ + "ppad-bolt1", + "ppad-nixpkgs" + ] + }, + "locked": { + "lastModified": 1766934151, + "narHash": "sha256-BUFpuLfrGXE2xi3Wa9TYCEhhRhFp175Ghxnr0JRbG2I=", + "ref": "master", + "rev": "58dfb7922401a60d5de76825fcd5f6ecbcd7afe0", + "revCount": 26, + "type": "git", + "url": "git://git.ppad.tech/base16.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/base16.git" + } + }, + "ppad-base16_4": { + "inputs": { + "flake-utils": [ "ppad-chacha", "ppad-base16", "ppad-nixpkgs", @@ -169,7 +203,7 @@ "url": "git://git.ppad.tech/base16.git" } }, - "ppad-base16_4": { + "ppad-base16_5": { "inputs": { "flake-utils": [ "ppad-hmac-drbg", @@ -203,7 +237,7 @@ "url": "git://git.ppad.tech/base16.git" } }, - "ppad-base16_5": { + "ppad-base16_6": { "inputs": { "flake-utils": [ "ppad-secp256k1", @@ -237,7 +271,7 @@ "url": "git://git.ppad.tech/base16.git" } }, - "ppad-base16_6": { + "ppad-base16_7": { "inputs": { "flake-utils": [ "ppad-sha256", @@ -271,6 +305,38 @@ "url": "git://git.ppad.tech/base16.git" } }, + "ppad-bolt1": { + "inputs": { + "flake-utils": [ + "ppad-bolt1", + "ppad-nixpkgs", + "flake-utils" + ], + "nixpkgs": [ + "ppad-bolt1", + "ppad-nixpkgs", + "nixpkgs" + ], + "ppad-base16": "ppad-base16_3", + "ppad-nixpkgs": [ + "ppad-nixpkgs" + ] + }, + "locked": { + "lastModified": 1776570879, + "narHash": "sha256-XsgGBvYWL+sD7pDZoPPi4l39DE7GH7maNnhm8iUeB/E=", + "ref": "master", + "rev": "20ea43188d781368e5e64c7c646285a6b0aaeb94", + "revCount": 27, + "type": "git", + "url": "git://git.ppad.tech/bolt1.git" + }, + "original": { + "ref": "master", + "type": "git", + "url": "git://git.ppad.tech/bolt1.git" + } + }, "ppad-chacha": { "inputs": { "flake-utils": [ @@ -283,7 +349,7 @@ "ppad-nixpkgs", "nixpkgs" ], - "ppad-base16": "ppad-base16_3", + "ppad-base16": "ppad-base16_4", "ppad-nixpkgs": [ "ppad-nixpkgs" ] @@ -383,7 +449,7 @@ "ppad-nixpkgs", "nixpkgs" ], - "ppad-base16": "ppad-base16_4", + "ppad-base16": "ppad-base16_5", "ppad-nixpkgs": [ "ppad-nixpkgs" ], @@ -478,7 +544,7 @@ "ppad-nixpkgs", "nixpkgs" ], - "ppad-base16": "ppad-base16_5", + "ppad-base16": "ppad-base16_6", "ppad-fixed": [ "ppad-fixed" ], @@ -520,7 +586,7 @@ "ppad-nixpkgs", "nixpkgs" ], - "ppad-base16": "ppad-base16_6", + "ppad-base16": "ppad-base16_7", "ppad-nixpkgs": [ "ppad-nixpkgs" ] @@ -628,6 +694,7 @@ ], "ppad-aead": "ppad-aead", "ppad-base16": "ppad-base16_2", + "ppad-bolt1": "ppad-bolt1", "ppad-chacha": "ppad-chacha", "ppad-fixed": "ppad-fixed_2", "ppad-hmac-drbg": "ppad-hmac-drbg", diff --git a/flake.nix b/flake.nix @@ -9,6 +9,12 @@ inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; inputs.ppad-chacha.follows = "ppad-chacha"; }; + ppad-bolt1 = { + type = "git"; + url = "git://git.ppad.tech/bolt1.git"; + ref = "master"; + inputs.ppad-nixpkgs.follows = "ppad-nixpkgs"; + }; ppad-base16 = { type = "git"; url = "git://git.ppad.tech/base16.git"; @@ -59,9 +65,9 @@ }; outputs = { self, nixpkgs, flake-utils, ppad-nixpkgs - , ppad-aead, ppad-base16, ppad-chacha, ppad-fixed - , ppad-hmac-drbg, ppad-secp256k1, ppad-sha256 - }: + , ppad-aead, ppad-bolt1, ppad-base16, ppad-chacha + , ppad-fixed, ppad-hmac-drbg, ppad-secp256k1 + , ppad-sha256 }: flake-utils.lib.eachDefaultSystem (system: let lib = "ppad-bolt4"; @@ -113,7 +119,10 @@ (hlib.enableCabalFlag sha256 "llvm") [ llvm clang ]; + bolt1 = ppad-bolt1.packages.${system}.default; + hpkgs = pkgs.haskell.packages.ghc910.extend (new: old: { + ppad-bolt1 = bolt1; ppad-aead = aead-llvm; ppad-base16 = base16-llvm; ppad-chacha = chacha-llvm; diff --git a/ppad-bolt4.cabal b/ppad-bolt4.cabal @@ -36,6 +36,7 @@ library base >= 4.9 && < 5 , bytestring >= 0.9 && < 0.13 , ppad-aead >= 0.3 && < 0.4 + , ppad-bolt1 >= 0.0.1 && < 0.1 , ppad-chacha >= 0.2 && < 0.3 , ppad-fixed >= 0.1 && < 0.2 , ppad-secp256k1 >= 0.5 && < 0.6