New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

lnsocket

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lnsocket

Connect to the lightning network

latest
Source
npmnpm
Version
0.3.3
Version published
Maintainers
1
Created
Source

lnsocket

A simple C, JS and Go 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

Building manually:

$ 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.

There are packaged versions of the js build under dist/js

If you are in a web environment that supports npm modules, you can import lnsocket using npm:

const LNSocket = require('lnsocket')

async function makeRequest(method, params, rune) {
  const ln = await LNSocket()
  ln.genkey()
  await ln.connect_and_init(node_id, host)
  // ... etc
}

The plain js file under dist/js declares an lnsocket_init() function like so:

const LNSocket = await lnsocket_init()
const ln = LNSocket()

ln.genkey()

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.

Rust

There are some initial rust bindings which you can build via: make rust

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

Footnotes

FAQs

Package last updated on 11 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts