commando.html5/node_modules/lnsocket
Captain Nick Lucifer* a0bc2d79de dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
..
dist/node dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
examples dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
go dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
tools dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
.envrc dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
.gitmodules dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
LICENSE dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
Makefile dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
README.md dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
TODO dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
bech32.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
bech32.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
bigsize.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
bigsize.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
commando.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
commando.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
compiler.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
configurator.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
crypto.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
crypto.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
cursor.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
endian.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
error.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
error.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
export.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
handshake.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
handshake.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
hkdf.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
hkdf.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
hmac.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
hmac.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
index.js dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnrpc.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnsocket.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnsocket.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnsocket_internal.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnsocket_lib.js dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnsocket_pre.js dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
lnsocket_wasm.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
package.json dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
sha256.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
sha256.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
sha512.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
sha512.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
shell.nix dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
test.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
typedefs.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
varint.c dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
varint.h dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45

README.md

lnsocket

A simple C library for sending messages over the lightning network

Thanks to Rusty and the clightning project for much of this code, I have adapted it to be more library friendly.

Motivation

I wanted a way to send custom messages to my lightning node, such as RPC. Building this as a simple C library will allow you to speak the lightning network in native applications, like on mobile.

Dependencies

You'll need libtool, autoconf, and automake for the libsodium & secp256k1 submodules, but otherwise there are no dependencies.

You'll need emscripten for the wasm build.

Building

$ make

iOS

$ make ios

This will build lnsocket.a, libsodium.a and libsecp256k1.a under target/ios for arm64 and ios-sim-x86.

WASM/JS/Web

$ make js

This will build lnsocket.js and lnsocket.wasm in target/js so that you can connect to the lightning network from your browser via websockets. See examples/websockets.js for a demo.

NodeJS

$ npm install --save lnsocket

See examples/node.js

Go

There is a Go version of lnsocket written using lnd's brontide1.

You can import it via:

import "github.com/jb55/lnsocket/go"

It is currently used in fiatjaf's makeinvoice go library2 if you want an example of its usage.

C Examples

  • See test.c for a ping/pong example

  • See lnrpc.c for an RPC example

Contributing

Send patches to jb55@jb55.com

$ git config format.subjectPrefix 'PATCH lnsocket'
$ git config sendemail.to 'William Casarin <jb55@jb55.com>'
$ git send-email --annotate HEAD^

See git-send-email.io3 for configuring your mailer

You can open a PR on github4 as well