lnd

package
v0.0.0-...-5abcb53 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2024 License: GPL-3.0 Imports: 18 Imported by: 1

Documentation

Index

Constants

View Source
const (
	LND_CLIENT_TYPE         = "lnd"
	LND_CLUSTER_CLIENT_TYPE = "lnd_cluster"
	ECLAIR_CLIENT_TYPE      = "eclair"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	LNClientType                 string  `envconfig:"LN_CLIENT_TYPE" default:"lnd"` //lnd, lnd_cluster, eclair
	LNDAddress                   string  `envconfig:"LND_ADDRESS" required:"true"`
	LNDMacaroonFile              string  `envconfig:"LND_MACAROON_FILE"`
	LNDCertFile                  string  `envconfig:"LND_CERT_FILE"`
	LNDMacaroonHex               string  `envconfig:"LND_MACAROON_HEX"`
	LNDCertHex                   string  `envconfig:"LND_CERT_HEX"`
	LNDClusterLivenessPeriod     int     `envconfig:"LND_CLUSTER_LIVENESS_PERIOD" default:"10"`
	LNDClusterActiveChannelRatio float64 `envconfig:"LND_CLUSTER_ACTIVE_CHANNEL_RATIO" default:"0.5"`
	LNDClusterPubkeys            string  `envconfig:"LND_CLUSTER_PUBKEYS"` //comma-seperated list of public keys of the cluster
}

func LoadConfig

func LoadConfig() (c *Config, err error)

type LNDCluster

type LNDCluster struct {
	Nodes               []LightningClientWrapper
	ActiveNode          LightningClientWrapper
	ActiveChannelRatio  float64
	Logger              *lecho.Logger
	LivenessCheckPeriod int
}

func (*LNDCluster) AddInvoice

func (cluster *LNDCluster) AddInvoice(ctx context.Context, req *lnrpc.Invoice, options ...grpc.CallOption) (*lnrpc.AddInvoiceResponse, error)

func (*LNDCluster) DecodeBolt11

func (cluster *LNDCluster) DecodeBolt11(ctx context.Context, bolt11 string, options ...grpc.CallOption) (*lnrpc.PayReq, error)

func (*LNDCluster) GetInfo

func (cluster *LNDCluster) GetInfo(ctx context.Context, req *lnrpc.GetInfoRequest, options ...grpc.CallOption) (*lnrpc.GetInfoResponse, error)

func (*LNDCluster) GetMainPubkey

func (cluster *LNDCluster) GetMainPubkey() (pubkey string)

func (*LNDCluster) IsIdentityPubkey

func (cluster *LNDCluster) IsIdentityPubkey(pubkey string) (isOurPubkey bool)

func (*LNDCluster) ListChannels

func (cluster *LNDCluster) ListChannels(ctx context.Context, req *lnrpc.ListChannelsRequest, options ...grpc.CallOption) (*lnrpc.ListChannelsResponse, error)

func (*LNDCluster) SendPaymentSync

func (cluster *LNDCluster) SendPaymentSync(ctx context.Context, req *lnrpc.SendRequest, options ...grpc.CallOption) (*lnrpc.SendResponse, error)

func (*LNDCluster) StartLivenessLoop

func (cluster *LNDCluster) StartLivenessLoop(ctx context.Context)

func (*LNDCluster) SubscribeInvoices

func (cluster *LNDCluster) SubscribeInvoices(ctx context.Context, req *lnrpc.InvoiceSubscription, options ...grpc.CallOption) (SubscribeInvoicesWrapper, error)

func (*LNDCluster) SubscribePayment

func (cluster *LNDCluster) SubscribePayment(ctx context.Context, req *routerrpc.TrackPaymentRequest, options ...grpc.CallOption) (SubscribePaymentWrapper, error)

type LNDWrapper

type LNDWrapper struct {
	IdentityPubkey string
	// contains filtered or unexported fields
}

func NewLNDclient

func NewLNDclient(lndOptions LNDoptions, ctx context.Context) (result *LNDWrapper, err error)

func (*LNDWrapper) AddInvoice

func (wrapper *LNDWrapper) AddInvoice(ctx context.Context, req *lnrpc.Invoice, options ...grpc.CallOption) (*lnrpc.AddInvoiceResponse, error)

func (*LNDWrapper) DecodeBolt11

func (wrapper *LNDWrapper) DecodeBolt11(ctx context.Context, bolt11 string, options ...grpc.CallOption) (*lnrpc.PayReq, error)

func (*LNDWrapper) GetInfo

func (wrapper *LNDWrapper) GetInfo(ctx context.Context, req *lnrpc.GetInfoRequest, options ...grpc.CallOption) (*lnrpc.GetInfoResponse, error)

func (*LNDWrapper) GetMainPubkey

func (wrapper *LNDWrapper) GetMainPubkey() (pubkey string)

func (*LNDWrapper) IsIdentityPubkey

func (wrapper *LNDWrapper) IsIdentityPubkey(pubkey string) (isOurPubkey bool)

func (*LNDWrapper) ListChannels

func (wrapper *LNDWrapper) ListChannels(ctx context.Context, req *lnrpc.ListChannelsRequest, options ...grpc.CallOption) (*lnrpc.ListChannelsResponse, error)

func (*LNDWrapper) SendPaymentSync

func (wrapper *LNDWrapper) SendPaymentSync(ctx context.Context, req *lnrpc.SendRequest, options ...grpc.CallOption) (*lnrpc.SendResponse, error)

func (*LNDWrapper) SubscribeInvoices

func (wrapper *LNDWrapper) SubscribeInvoices(ctx context.Context, req *lnrpc.InvoiceSubscription, options ...grpc.CallOption) (SubscribeInvoicesWrapper, error)

func (*LNDWrapper) SubscribePayment

func (wrapper *LNDWrapper) SubscribePayment(ctx context.Context, req *routerrpc.TrackPaymentRequest, options ...grpc.CallOption) (SubscribePaymentWrapper, error)

type LNDoptions

type LNDoptions struct {
	Address      string
	CertFile     string
	CertHex      string
	MacaroonFile string
	MacaroonHex  string
}

LNDoptions are the options for the connection to the lnd node.

type LNPayReq

type LNPayReq struct {
	PayReq  *lnrpc.PayReq
	Keysend bool
}

type LightningClientWrapper

type LightningClientWrapper interface {
	ListChannels(ctx context.Context, req *lnrpc.ListChannelsRequest, options ...grpc.CallOption) (*lnrpc.ListChannelsResponse, error)
	SendPaymentSync(ctx context.Context, req *lnrpc.SendRequest, options ...grpc.CallOption) (*lnrpc.SendResponse, error)
	AddInvoice(ctx context.Context, req *lnrpc.Invoice, options ...grpc.CallOption) (*lnrpc.AddInvoiceResponse, error)
	SubscribeInvoices(ctx context.Context, req *lnrpc.InvoiceSubscription, options ...grpc.CallOption) (SubscribeInvoicesWrapper, error)
	SubscribePayment(ctx context.Context, req *routerrpc.TrackPaymentRequest, options ...grpc.CallOption) (SubscribePaymentWrapper, error)
	GetInfo(ctx context.Context, req *lnrpc.GetInfoRequest, options ...grpc.CallOption) (*lnrpc.GetInfoResponse, error)
	DecodeBolt11(ctx context.Context, bolt11 string, options ...grpc.CallOption) (*lnrpc.PayReq, error)
	IsIdentityPubkey(pubkey string) (isOurPubkey bool)
	GetMainPubkey() (pubkey string)
}

func InitLNClient

func InitLNClient(c *Config, logger *lecho.Logger, ctx context.Context) (result LightningClientWrapper, err error)

func InitLNDCluster

func InitLNDCluster(c *Config, logger *lecho.Logger, ctx context.Context) (result LightningClientWrapper, err error)

func InitSingleLNDClient

func InitSingleLNDClient(c *Config, ctx context.Context) (result LightningClientWrapper, err error)

type SubscribeInvoicesWrapper

type SubscribeInvoicesWrapper interface {
	Recv() (*lnrpc.Invoice, error)
}

type SubscribePaymentWrapper

type SubscribePaymentWrapper interface {
	Recv() (*lnrpc.Payment, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL