{
lib,
rustPlatform,
fetchFromGitHub,
protobuf,
rustfmt,
stdenv,
darwin,
pkg-config,
openssl,
}:
let
version = "0.2.0";
src = fetchFromGitHub {
owner = "talaia-labs";
repo = "rust-teos";
rev = "v${version}";
hash = "sha256-UrzH9xmhVq12TcSUQ1AihCG1sNGcy/N8LDsZINVKFkY=";
};
meta = with lib; {
homepage = "https://github.com/talaia-labs/rust-teos";
license = licenses.mit;
maintainers = with maintainers; [ seberm ];
updateScript = ./update.sh;
in
teos = rustPlatform.buildRustPackage {
pname = "teos";
inherit version src;
useFetchCargoVendor = true;
cargoHash = "sha256-lod5I94T4wGwXEDtvh2AyaDYM0byCfaSBP8emKV7+3M=";
buildAndTestSubdir = "teos";
nativeBuildInputs = [
protobuf
rustfmt
];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.Security
passthru.updateScript = updateScript;
__darwinAllowLocalNetworking = true;
meta = meta // {
description = "Lightning watchtower compliant with BOLT13, written in Rust";
teos-watchtower-plugin = rustPlatform.buildRustPackage {
pname = "teos-watchtower-plugin";
buildAndTestSubdir = "watchtower-plugin";
pkg-config
buildInputs =
[
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
description = "Lightning watchtower plugin for clightning";
mainProgram = "watchtower-client";
}