lnclient

package
v1.23.0 Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULT_INVOICE_EXPIRY = 86400

default invoice expiry in seconds (1 day)

Variables

View Source
var ErrUnknownCustomNodeCommand = errors.New("unknown custom node command")

Functions

func NewHoldInvoiceCanceledError added in v1.18.0

func NewHoldInvoiceCanceledError() error

Types

type BalancesResponse

type BalancesResponse struct {
	Onchain   OnchainBalanceResponse
	Lightning LightningBalanceResponse
}

type Channel

type Channel struct {
	LocalBalanceMsat                            int64
	LocalSpendableBalanceMsat                   int64
	RemoteBalanceMsat                           int64
	Id                                          string
	RemotePubkey                                string
	FundingTxId                                 string
	FundingTxVout                               uint32
	Active                                      bool
	Public                                      bool
	InternalChannel                             interface{}
	Confirmations                               *uint32
	ConfirmationsRequired                       *uint32
	ForwardingFeeBaseMsat                       uint32
	ForwardingFeeProportionalMillionths         uint32
	UnspendablePunishmentReserveSat             uint64
	CounterpartyUnspendablePunishmentReserveSat uint64
	Error                                       *string
	IsOutbound                                  bool
}

type CloseChannelRequest

type CloseChannelRequest struct {
	ChannelId string
	NodeId    string
	Force     bool
}

type ConnectPeerRequest

type ConnectPeerRequest struct {
	Pubkey  string
	Address string
	Port    uint16
}

type CustomNodeCommandArg added in v1.14.0

type CustomNodeCommandArg struct {
	Name  string
	Value string
}

type CustomNodeCommandArgDef added in v1.14.0

type CustomNodeCommandArgDef struct {
	Name        string
	Description string
}

type CustomNodeCommandDef added in v1.14.0

type CustomNodeCommandDef struct {
	Name        string
	Description string
	Args        []CustomNodeCommandArgDef
}

type CustomNodeCommandRequest added in v1.14.0

type CustomNodeCommandRequest struct {
	Name string
	Args []CustomNodeCommandArg
}

type CustomNodeCommandResponse added in v1.14.0

type CustomNodeCommandResponse struct {
	Response interface{}
}

func NewCustomNodeCommandResponseEmpty added in v1.14.0

func NewCustomNodeCommandResponseEmpty() *CustomNodeCommandResponse

type LNClient

type LNClient interface {
	SendPaymentSync(payReq string, amountMsat *uint64) (*PayInvoiceResponse, error)
	SendKeysend(amountMsat uint64, destination string, customRecords []TLVRecord, preimage string) (*PayKeysendResponse, error)
	GetPubkey() string
	GetInfo(ctx context.Context) (info *NodeInfo, err error)
	MakeInvoice(ctx context.Context, amountMsat int64, description string, descriptionHash string, expiry int64, throughNodePubkey *string) (transaction *Transaction, err error)
	MakeHoldInvoice(ctx context.Context, amountMsat int64, description string, descriptionHash string, expiry int64, paymentHash string, minCltvExpiryDelta *uint64) (transaction *Transaction, err error)
	SettleHoldInvoice(ctx context.Context, preimage string) (err error)
	CancelHoldInvoice(ctx context.Context, paymentHash string) (err error)
	LookupInvoice(ctx context.Context, paymentHash string) (transaction *Transaction, err error)
	ListOnchainTransactions(ctx context.Context) ([]OnchainTransaction, error)
	Shutdown() error
	ListChannels(ctx context.Context) (channels []Channel, err error)
	GetNodeConnectionInfo(ctx context.Context) (nodeConnectionInfo *NodeConnectionInfo, err error)
	GetNodeStatus(ctx context.Context) (nodeStatus *NodeStatus, err error)
	ConnectPeer(ctx context.Context, connectPeerRequest *ConnectPeerRequest) error
	OpenChannel(ctx context.Context, openChannelRequest *OpenChannelRequest) (*OpenChannelResponse, error)
	CloseChannel(ctx context.Context, closeChannelRequest *CloseChannelRequest) error
	UpdateChannel(ctx context.Context, updateChannelRequest *UpdateChannelRequest) error
	DisconnectPeer(ctx context.Context, peerId string) error
	MakeOffer(ctx context.Context, description string) (string, error)
	GetNewOnchainAddress(ctx context.Context) (string, error)
	ResetRouter(key string) error
	GetOnchainBalance(ctx context.Context) (*OnchainBalanceResponse, error)
	GetBalances(ctx context.Context, includeInactiveChannels bool) (*BalancesResponse, error)
	RedeemOnchainFunds(ctx context.Context, toAddress string, amountSat uint64, feeRate *uint64, sendAll bool) (txId string, err error)
	ListPeers(ctx context.Context) ([]PeerDetails, error)
	GetLogOutput(ctx context.Context, maxLen int) ([]byte, error)
	SignMessage(ctx context.Context, message string) (string, error)
	GetStorageDir() (string, error)
	GetNetworkGraph(ctx context.Context, nodeIds []string) (NetworkGraphResponse, error)
	UpdateLastWalletSyncRequest()
	GetSupportedNIP47Methods() []string
	GetSupportedNIP47NotificationTypes() []string
	GetCustomNodeCommandDefinitions() []CustomNodeCommandDef
	ExecuteCustomNodeCommand(ctx context.Context, command *CustomNodeCommandRequest) (*CustomNodeCommandResponse, error)
}

type LightningBalanceResponse

type LightningBalanceResponse struct {
	TotalSpendableMsat       int64
	TotalReceivableMsat      int64
	NextMaxSpendableMsat     int64
	NextMaxReceivableMsat    int64
	NextMaxSpendableMPPMsat  int64
	NextMaxReceivableMPPMsat int64
}

type Metadata added in v1.5.0

type Metadata = map[string]interface{}

type NetworkGraphResponse

type NetworkGraphResponse = interface{}

type NodeConnectionInfo

type NodeConnectionInfo struct {
	Pubkey  string
	Address string
	Port    int
}

type NodeInfo

type NodeInfo struct {
	Alias       string
	Color       string
	Pubkey      string
	Network     string
	BlockHeight uint32
	BlockHash   string
}

type NodeStatus

type NodeStatus struct {
	IsReady            bool
	InternalNodeStatus interface{}
}

type OnchainBalanceResponse

type OnchainBalanceResponse struct {
	SpendableSat                          int64
	TotalSat                              int64
	ReservedSat                           int64
	PendingBalancesFromChannelClosuresSat uint64
	PendingBalancesDetails                []PendingBalanceDetails
	PendingSweepBalancesDetails           []PendingBalanceDetails
	InternalBalances                      interface{}
}

type OnchainTransaction added in v1.17.0

type OnchainTransaction struct {
	AmountSat        uint64
	CreatedAt        uint64
	State            string
	Type             string
	NumConfirmations uint32
	TxId             string
}

type OpenChannelRequest

type OpenChannelRequest struct {
	Pubkey     string
	AmountSats int64
	Public     bool
}

type OpenChannelResponse

type OpenChannelResponse struct {
	FundingTxId string
}

type PayInvoiceResponse

type PayInvoiceResponse struct {
	Preimage string
	FeeMsat  uint64
}

type PayKeysendResponse added in v1.4.1

type PayKeysendResponse struct {
	FeeMsat uint64
}

type PayOfferResponse added in v1.18.0

type PayOfferResponse = struct {
	Preimage    string
	FeeMsat     uint64
	PaymentHash string
}

type PaymentFailedEventProperties added in v1.6.0

type PaymentFailedEventProperties struct {
	Transaction *Transaction
	Reason      string
}

type PaymentForwardedEventProperties added in v1.19.0

type PaymentForwardedEventProperties struct {
	TotalFeeEarnedMsat          uint64
	OutboundAmountForwardedMsat uint64
}

type PeerDetails

type PeerDetails struct {
	NodeId      string
	Address     string
	IsPersisted bool
	IsConnected bool
}

type PendingBalanceDetails added in v1.13.0

type PendingBalanceDetails struct {
	ChannelId     string
	NodeId        string
	AmountSat     uint64
	FundingTxId   string
	FundingTxVout uint32
}

type TLVRecord

type TLVRecord struct {
	Type uint64 `json:"type"`
	// hex-encoded value
	Value string `json:"value"`
}

TLVRecord JSON tags are kept because values flow through the freeform transaction Metadata blob and are surfaced to NIP-47 clients via lookup_invoice / list_transactions.

type Transaction

type Transaction struct {
	Type            string
	Invoice         string
	Description     string
	DescriptionHash string
	Preimage        string
	PaymentHash     string
	AmountMsat      int64
	FeesPaidMsat    int64
	CreatedAt       int64
	ExpiresAt       *int64
	SettledAt       *int64
	Metadata        Metadata
	SettleDeadline  *uint32 // block number for accepted hold invoices
}

TODO: use uint for fields that cannot be negative

type UpdateChannelRequest

type UpdateChannelRequest struct {
	ChannelId                                string
	NodeId                                   string
	ForwardingFeeBaseMsat                    uint32
	ForwardingFeeProportionalMillionths      uint32
	MaxDustHtlcExposureFromFeeRateMultiplier uint64
}

Directories

Path Synopsis
cln
lnd

Jump to

Keyboard shortcuts

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