Novice, Paragon, Master

    lightning-rpc
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0 • Public • Published

    Lightning RPC

    Statically generated Lightning gRPC library for Node.js, written in TypeScript.

    Enviroment Variables

    • LND_HOST
    • LND_PORT
    • LND_CERT_PATH
    • LND_MACAROON_PATH
    • LND_WALLET_PASSWORD

    Useage

    import {
      GetInfoRequest,
      GetInfoResponse,
      Invoice,
      InvoiceSubscription,
      LightningRpcConfig,
      UnlockWalletRequest,
      UnlockWalletResponse,
      WalletBalanceRequest,
      WalletBalanceResponse,
      createLightning,
      createWalletUnlocker,
    } from 'lightning-rpc';
     
    const config = {
      host: String(process.env.LND_HOST),
      port: String(process.env.LND_PORT),
      certPath: String(process.env.LND_CERT_PATH),
      macaroonPath: String(process.env.LND_MACAROON_PATH),
    };
     
    const walletUnlocker = createWalletUnlocker(config);
     
    walletUnlocker.waitForReady(Infinity, (error: Error | null) => {
      if (error) {
        console.error(error);
      }
     
      const unlockWalletRequest = new UnlockWalletRequest();
     
      if (!process.env.LND_WALLET_PASSWORD) {
        throw 'No wallet password. Set the LND_WALLET_PASSWORD enviroment variable.';
      }
     
      unlockWalletRequest.setWalletPassword(
        Buffer.from(process.env.LND_WALLET_PASSWORD),
      );
     
      walletUnlocker.unlockWallet(
        unlockWalletRequest,
        (error: ServiceError | null, response: UnlockWalletResponse) => {
          if (error) {
            console.error(error);
          }
          console.log('Wallet unlocked')
          const lightning = await createLightning(config);
     
          lightning.waitForReady(Infinity, (error: Error | null) => {
            if (error) {
              throw error;
            }
            const getInfoRequest = new GetInfoRequest();
            lightning.getInfo(
              getInfoRequest,
              (error: ServiceError | null, response: GetInfoResponse) => {
                if (error) {
                  console.error(error);
                }
                console.log(response);
              },
            );
     
            const invoiceSubscription = new InvoiceSubscription();
            const stream: ClientReadableStream<Invoice> = lightning.subscribeInvoices(
              invoiceSubscription,
            );
            stream.on('data', (invoice: Invoice) => {
              console.log('invoice', invoice);
            })
          })
        }
      )
    });
     

    Compile from source

    Requirements: protoc

    git clone https://github.com/matthewlilley/lightning-rpc.git
     
    cd lightning-rpc
     
    yarn generate

    Docs

    https://matthewlilley.github.io/lightning-rpc

    Contributing

    Want to contribute? Awesome! Feel free to create an issue and/or pull request.

    Licence

    MIT

    Install

    npm i lightning-rpc

    DownloadsWeekly Downloads

    2

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    1.52 MB

    Total Files

    14

    Last publish

    Collaborators

    • matthewlilley