lnd-client: Lightning Network Daemon (LND) client library for Haskell

[ bitcoin, bsd3, finance, library, lightning, network, payments, program ] [ Propose Tags ]

Modules

[Index] [Quick Jump]

  • LndClient
    • LndClient.Class
    • Data
      • LndClient.Data.AddHodlInvoice
      • LndClient.Data.AddInvoice
      • LndClient.Data.Channel
      • LndClient.Data.ChannelBackup
      • LndClient.Data.ChannelPoint
      • LndClient.Data.CloseChannel
      • LndClient.Data.ClosedChannel
      • LndClient.Data.ClosedChannels
      • LndClient.Data.FinalizePsbt
      • LndClient.Data.ForceClosedChannel
      • LndClient.Data.FundPsbt
      • LndClient.Data.FundingPsbtFinalize
      • LndClient.Data.FundingPsbtVerify
      • LndClient.Data.FundingShim
      • LndClient.Data.FundingShimCancel
      • LndClient.Data.FundingStateStep
      • LndClient.Data.GetInfo
      • LndClient.Data.HtlcEvent
      • LndClient.Data.InitWallet
      • LndClient.Data.Invoice
      • LndClient.Data.Kind
      • LndClient.Data.LeaseOutput
      • LndClient.Data.ListChannels
      • LndClient.Data.ListInvoices
      • LndClient.Data.ListLeases
      • LndClient.Data.ListUnspent
      • LndClient.Data.LndEnv
      • LndClient.Data.NewAddress
      • LndClient.Data.Newtype
      • LndClient.Data.OpenChannel
      • LndClient.Data.OutPoint
      • LndClient.Data.PayReq
      • LndClient.Data.Payment
      • LndClient.Data.Peer
      • LndClient.Data.PendingChannel
      • LndClient.Data.PendingChannels
      • LndClient.Data.PendingOpenChannel
      • LndClient.Data.PsbtShim
      • LndClient.Data.PublishTransaction
      • LndClient.Data.ReleaseOutput
      • LndClient.Data.SendCoins
      • LndClient.Data.SendPayment
      • LndClient.Data.SignMessage
      • LndClient.Data.SubscribeChannelEvents
      • LndClient.Data.SubscribeInvoices
      • LndClient.Data.TrackPayment
      • LndClient.Data.Type
      • LndClient.Data.UnlockWallet
      • LndClient.Data.VerifyMessage
      • LndClient.Data.WaitingCloseChannel
      • LndClient.Data.WalletBalance
    • LndClient.Import
      • LndClient.Import.External
    • LndClient.LndTest
    • LndClient.Log
    • LndClient.Orphan
    • LndClient.QRCode
    • RPC
      • LndClient.RPC.Generic
      • LndClient.RPC.Katip
      • LndClient.RPC.Silent
      • LndClient.RPC.TH
    • LndClient.Util
    • LndClient.Watcher
  • LndGrpc
    • LndGrpc.Client
  • Proto
    • Autopilotrpc
      • Proto.Autopilotrpc.Autopilot
      • Proto.Autopilotrpc.Autopilot_Fields
    • Chainrpc
      • Proto.Chainrpc.Chainnotifier
      • Proto.Chainrpc.Chainnotifier_Fields
    • Invoicesrpc
      • Proto.Invoicesrpc.Invoices
      • Proto.Invoicesrpc.Invoices_Fields
    • Proto.Lightning
    • Proto.Lightning_Fields
    • Lnclipb
      • Proto.Lnclipb.Lncli
      • Proto.Lnclipb.Lncli_Fields
    • Lnrpc
      • Proto.Lnrpc.Ln0
      • Proto.Lnrpc.Ln0_Fields
      • Proto.Lnrpc.Ln1
      • Proto.Lnrpc.Ln1_Fields
    • Routerrpc
      • Proto.Routerrpc.Router
      • Proto.Routerrpc.Router_Fields
    • Signrpc
      • Proto.Signrpc.Signer
      • Proto.Signrpc.Signer_Fields
    • Proto.Stateservice
    • Proto.Stateservice_Fields
    • Verrpc
      • Proto.Verrpc.Verrpc
      • Proto.Verrpc.Verrpc_Fields
    • Walletrpc
      • Proto.Walletrpc.Walletkit
      • Proto.Walletrpc.Walletkit_Fields
    • Proto.Walletunlocker
    • Proto.Walletunlocker_Fields
    • Watchtowerrpc
      • Proto.Watchtowerrpc.Watchtower
      • Proto.Watchtowerrpc.Watchtower_Fields
    • Wtclientrpc
      • Proto.Wtclientrpc.Wtclient
      • Proto.Wtclientrpc.Wtclient_Fields

Flags

Manual Flags

NameDescriptionDefault
ghcidDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1
Change log ChangeLog.md
Dependencies aeson (>=1.4.4.0), async (>=2.2.2 && <2.3), base (>=4.7 && <5), base16-bytestring (>=1.0.1.0 && <1.1), base64-bytestring (>=1.0.0.2 && <1.3), bytestring (>=0.10.8.2 && <0.13), chronos (>=1.0.7 && <1.2), containers (>=0.6.0.1 && <0.6.6), cryptohash-sha256 (>=0.11.101.0 && <0.12), cryptonite (>=0.25 && <0.31), envparse (>=0.4.1 && <0.4.2), extra (>=1.6.18 && <1.8), generic-pretty-instances, GenericPretty, http2 (>=3.0.3), http2-client, http2-client-grpc (>=0.8.0.0), http2-grpc-proto-lens (>=0.1.0.0), http2-grpc-types (>=0.5.0.0), JuicyPixels (>=3.3.3 && <3.4), katip (>=0.8.3.0 && <0.9), lnd-client, microlens (>=0.4.10), network-bitcoin (>=1.8.3), pem (>=0.2.4 && <0.3), persistent (>=2.11.0.2), proto-lens (>=0.7.0), proto-lens-runtime (>=0.7.0), qrcode-core (>=0.9 && <0.10), qrcode-juicypixels (>=0.8.0 && <0.9), scientific (>=0.3.6.2 && <0.3.7), stm (>=2.5.0.0 && <2.5.1), template-haskell (>=2.14.0.0 && <2.19), text (>=1.2.3.1 && <2.1), time, tls, unbounded-delays (>=0.1.1.0 && <0.1.2), universum (>=1.5.0 && <1.8), unliftio (>=0.2.12), x509 (>=1.7.5 && <1.7.6), x509-store [details]
License BSD-3-Clause
Copyright 2022 Yolo <hello@coingaming.io>
Author 21it <21it@tuta.io>, Mikhail Prushinskiy <mprushinsky@gmail.com>, Artem Markov <drownbes@gmail.com>
Maintainer 21it <21it@tuta.io>, Mikhail Prushinskiy <mprushinsky@gmail.com>, Artem Markov <drownbes@gmail.com>
Category Lightning, Bitcoin, Finance, Network, Payments
Home page https://github.com/coingaming/lnd-client#readme
Bug tracker https://github.com/coingaming/lnd-client/issues
Source repo head: git clone https://github.com/coingaming/lnd-client
Uploaded by coingaming at 2022-07-22T13:39:54Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Executables lnd-client-prof
Downloads 180 total (7 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for lnd-client-0.1.0.1

[back to package description]

lnd-client

Lightning Network Daemon (LND) client library for Haskell. Nix is the only thing required to get started. Development environment is packed into nix-shell.

Quickstart

Spawn shell:

./nix/shell.sh

Develop in shell:

vi .

Run all tests with hot code reloading:

ghcid

Run specific tests with hot code reloading:

ghcid --setup ":set args -m fromJSON"

Optional environment variables:

vi ~/.profile

export VIM_BACKGROUND="light" # or "dark"
export VIM_COLOR_SCHEME="PaperColor" # or "jellybeans"
export NIX_EXTRA_BUILD_INPUTS='[(import (fetchTarball "https://github.com/21it/ultimate-haskell-ide/tarball/ebfcd25eeac74ba813efa0b5929174cd59c4f4d2") {bundle = "haskell"; withGit = false;})]'
export NIX_WITH_SHELL_HOOK="true"

gRPC schema upgrade

  • We are using lnd version 0.14.1-beta
  • Run ./script/update-protobuf.sh (This will download latest proto files from github, so make sure that lnd version is consistent with latest protobufs)
  • Manually split lightning.proto into 3 smaller files, because at the single file is way too big and GHC-8.10.7 requires too much RAM to compile it. The issue might disappear with GHC-9.X.X.
  • Run ./script/generate-protoc.sh (This will generate haskell types and instances for downloaded protos)