api

package
v1.24.0 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2026 License: Apache-2.0 Imports: 50 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LogTypeNode = "node"
	LogTypeApp  = "app"
)

Variables

View Source
var ErrLNClientNotStarted = errors.New("LNClient not started")

Functions

func NewAPI

func NewAPI(svc service.Service, gormDB *gorm.DB, config config.Config, keys keys.Keys, albySvc alby.AlbyService, albyOAuthSvc alby.AlbyOAuthService, eventPublisher events.EventPublisher) *api

func ResolveToMsat added in v1.22.0

func ResolveToMsat(satValue *uint64, msatValue *uint64, legacyValueSat *uint64, legacyValueMsat *uint64) (resolvedMsatValue *uint64)

func ResolveToSat added in v1.22.0

func ResolveToSat(satValue *uint64, msatValue *uint64, legacyValueSat *uint64, legacyValueMsat *uint64) (resolvedSatValue *uint64)

Types

type API

type API interface {
	CreateApp(createAppRequest *CreateAppRequest) (*CreateAppResponse, error)
	UpdateApp(app *db.App, updateAppRequest *UpdateAppRequest) error
	Transfer(ctx context.Context, fromAppId *uint, toAppId *uint, amountMsat uint64, description string) error
	DeleteApp(app *db.App) error
	GetApp(app *db.App) (*App, error)
	ListApps(limit uint64, offset uint64, filters ListAppsFilters, orderBy string) (*ListAppsResponse, error)
	CreateLightningAddress(ctx context.Context, createLightningAddressRequest *CreateLightningAddressRequest) error
	DeleteLightningAddress(ctx context.Context, appId uint) error
	ListChannels(ctx context.Context) ([]Channel, error)
	GetChannelPeerSuggestions(ctx context.Context) ([]alby.ChannelPeerSuggestion, error)
	GetStories(ctx context.Context) ([]alby.Story, error)
	GetLSPChannelOffer(ctx context.Context) (*alby.LSPChannelOffer, error)
	ResetRouter(key string) error
	ChangeUnlockPassword(changeUnlockPasswordRequest *ChangeUnlockPasswordRequest) error
	SetAutoUnlockPassword(unlockPassword string) error
	Stop() error
	GetNodeConnectionInfo(ctx context.Context) (*NodeConnectionInfo, error)
	GetNodeStatus(ctx context.Context) (*NodeStatus, error)
	ListPeers(ctx context.Context) ([]PeerDetails, error)
	ConnectPeer(ctx context.Context, connectPeerRequest *ConnectPeerRequest) error
	DisconnectPeer(ctx context.Context, peerId string) error
	OpenChannel(ctx context.Context, openChannelRequest *OpenChannelRequest) (*OpenChannelResponse, error)
	RebalanceChannel(ctx context.Context, rebalanceChannelRequest *RebalanceChannelRequest) (*RebalanceChannelResponse, error)
	CloseChannel(ctx context.Context, peerId, channelId string, force bool) (*CloseChannelResponse, error)
	UpdateChannel(ctx context.Context, updateChannelRequest *UpdateChannelRequest) error
	MakeOffer(ctx context.Context, description string) (string, error)
	GetNewOnchainAddress(ctx context.Context) (string, error)
	GetUnusedOnchainAddress(ctx context.Context) (string, error)
	SignMessage(ctx context.Context, message string) (*SignMessageResponse, error)
	RedeemOnchainFunds(ctx context.Context, toAddress string, amountSat uint64, feeRate *uint64, sendAll bool) (*RedeemOnchainFundsResponse, error)
	GetBalances(ctx context.Context) (*BalancesResponse, error)
	ListTransactions(ctx context.Context, appId *uint, limit uint64, offset uint64, filters ListTransactionsFilters) (*ListTransactionsResponse, error)
	ListOnchainTransactions(ctx context.Context) ([]OnchainTransaction, error)
	SendPayment(ctx context.Context, invoice string, amountMsat *uint64, metadata map[string]interface{}, fromAppId *uint) (*SendPaymentResponse, error)
	CreateInvoice(ctx context.Context, amountMsat uint64, description string, toAppId *uint) (*MakeInvoiceResponse, error)
	LookupInvoice(ctx context.Context, paymentHash string) (*LookupInvoiceResponse, error)
	SetTransactionUserLabels(ctx context.Context, id uint, labels map[string]string) error
	RequestMempoolApi(ctx context.Context, endpoint string) (interface{}, error)
	GetInfo(ctx context.Context) (*InfoResponse, error)
	GetMnemonic(unlockPassword string) (*MnemonicResponse, error)
	SetNextBackupReminder(backupReminderRequest *BackupReminderRequest) error
	Start(startRequest *StartRequest)
	Setup(ctx context.Context, setupRequest *SetupRequest) error
	GetNetworkGraph(ctx context.Context, nodeIds []string) (NetworkGraphResponse, error)
	SyncWallet() error
	GetLogOutput(ctx context.Context, logType string, getLogRequest *GetLogOutputRequest) (*GetLogOutputResponse, error)
	RequestLSPOrder(ctx context.Context, request *LSPOrderRequest) (*LSPOrderResponse, error)
	CreateBackup(unlockPassword string, w io.Writer) error
	RestoreBackup(unlockPassword string, r io.Reader) error
	MigrateNodeStorage(ctx context.Context, to string) error
	GetWalletCapabilities(ctx context.Context) (*WalletCapabilitiesResponse, error)
	Health(ctx context.Context) (*HealthResponse, error)
	UpdateSettings(updateSettingsRequest *UpdateSettingsRequest) error
	LookupSwap(swapId string) (*LookupSwapResponse, error)
	ListSwaps() (*ListSwapsResponse, error)
	GetSwapInInfo() (*SwapInfoResponse, error)
	GetSwapOutInfo() (*SwapInfoResponse, error)
	InitiateSwapIn(ctx context.Context, initiateSwapInRequest *InitiateSwapRequest) (*swaps.SwapResponse, error)
	InitiateSwapOut(ctx context.Context, initiateSwapOutRequest *InitiateSwapRequest) (*swaps.SwapResponse, error)
	RefundSwap(refundSwapRequest *RefundSwapRequest) error
	GetSwapMnemonic() string
	GetAutoSwapConfig() (*GetAutoSwapConfigResponse, error)
	EnableAutoSwapOut(ctx context.Context, autoSwapRequest *EnableAutoSwapRequest) error
	DisableAutoSwap() error
	SetNodeAlias(nodeAlias string) error
	GetCustomNodeCommands() (*CustomNodeCommandsResponse, error)
	ExecuteCustomNodeCommand(ctx context.Context, command string) (interface{}, error)
	SendEvent(event string, properties interface{})
	GetForwards() (*GetForwardsResponse, error)
}

type App

type App struct {
	ID                       uint       `json:"id"`
	Name                     string     `json:"name"`
	Description              string     `json:"description"`
	AppPubkey                string     `json:"appPubkey"`
	CreatedAt                time.Time  `json:"createdAt"`
	UpdatedAt                time.Time  `json:"updatedAt"`
	LastUsedAt               *time.Time `json:"lastUsedAt"`
	LastSettledTransactionAt *time.Time `json:"lastSettledTransactionAt"`
	ExpiresAt                *time.Time `json:"expiresAt"`
	Scopes                   []string   `json:"scopes"`
	MaxAmount                uint64     `json:"maxAmount"` // deprecated
	MaxAmountSat             uint64     `json:"maxAmountSat"`
	MaxAmountMsat            uint64     `json:"maxAmountMsat"`
	BudgetUsage              uint64     `json:"budgetUsage"` // deprecated
	BudgetUsageSat           uint64     `json:"budgetUsageSat"`
	BudgetUsageMsat          uint64     `json:"budgetUsageMsat"`
	BudgetRenewal            string     `json:"budgetRenewal"`
	Isolated                 bool       `json:"isolated"`
	WalletPubkey             string     `json:"walletPubkey"`
	UniqueWalletPubkey       bool       `json:"uniqueWalletPubkey"`
	Balance                  int64      `json:"balance"` // deprecated
	BalanceSat               int64      `json:"balanceSat"`
	BalanceMsat              int64      `json:"balanceMsat"`
	Metadata                 Metadata   `json:"metadata,omitempty"`
}

type AutoUnlockRequest added in v1.13.0

type AutoUnlockRequest struct {
	UnlockPassword string `json:"unlockPassword"`
}

type BackupReminderRequest

type BackupReminderRequest struct {
	NextBackupReminder string `json:"nextBackupReminder"`
}

type BalancesResponse

type BalancesResponse struct {
	Onchain   OnchainBalanceResponse   `json:"onchain"`
	Lightning LightningBalanceResponse `json:"lightning"`
}

type BasicBackupRequest

type BasicBackupRequest struct {
	UnlockPassword string `json:"unlockPassword"`
}

type BasicRestoreWailsRequest

type BasicRestoreWailsRequest struct {
	UnlockPassword string `json:"unlockPassword"`
}

type Boostagram added in v1.5.0

type Boostagram struct {
	AppName        string `json:"appName"`
	Name           string `json:"name"`
	Podcast        string `json:"podcast"`
	URL            string `json:"url"`
	Episode        string `json:"episode,omitempty"`
	FeedId         string `json:"feedId,omitempty"`
	ItemId         string `json:"itemId,omitempty"`
	Timestamp      int64  `json:"ts,omitempty"`
	Message        string `json:"message,omitempty"`
	SenderId       string `json:"senderId"`
	SenderName     string `json:"senderName"`
	Time           string `json:"time"`
	Action         string `json:"action"`
	ValueSatTotal  int64  `json:"valueSatTotal"`
	ValueMsatTotal int64  `json:"valueMsatTotal"`
}

type ChangeUnlockPasswordRequest

type ChangeUnlockPasswordRequest struct {
	CurrentUnlockPassword string `json:"currentUnlockPassword"`
	NewUnlockPassword     string `json:"newUnlockPassword"`
}

type Channel added in v1.4.0

type Channel struct {
	LocalBalance                                int64       `json:"localBalance"` // deprecated
	LocalBalanceSat                             int64       `json:"localBalanceSat"`
	LocalBalanceMsat                            int64       `json:"localBalanceMsat"`
	LocalSpendableBalance                       int64       `json:"localSpendableBalance"` // deprecated
	LocalSpendableBalanceSat                    int64       `json:"localSpendableBalanceSat"`
	LocalSpendableBalanceMsat                   int64       `json:"localSpendableBalanceMsat"`
	RemoteBalance                               int64       `json:"remoteBalance"` // deprecated
	RemoteBalanceSat                            int64       `json:"remoteBalanceSat"`
	RemoteBalanceMsat                           int64       `json:"remoteBalanceMsat"`
	Id                                          string      `json:"id"`
	RemotePubkey                                string      `json:"remotePubkey"`
	FundingTxId                                 string      `json:"fundingTxId"`
	FundingTxVout                               uint32      `json:"fundingTxVout"`
	Active                                      bool        `json:"active"`
	Public                                      bool        `json:"public"`
	InternalChannel                             interface{} `json:"internalChannel"`
	Confirmations                               *uint32     `json:"confirmations"`
	ConfirmationsRequired                       *uint32     `json:"confirmationsRequired"`
	ForwardingFeeBaseMsat                       uint32      `json:"forwardingFeeBaseMsat"` // expressed only in msat as per Lightning spec
	ForwardingFeeProportionalMillionths         uint32      `json:"forwardingFeeProportionalMillionths"`
	UnspendablePunishmentReserve                uint64      `json:"unspendablePunishmentReserve"` // deprecated
	UnspendablePunishmentReserveSat             uint64      `json:"unspendablePunishmentReserveSat"`
	CounterpartyUnspendablePunishmentReserve    uint64      `json:"counterpartyUnspendablePunishmentReserve"` // deprecated
	CounterpartyUnspendablePunishmentReserveSat uint64      `json:"counterpartyUnspendablePunishmentReserveSat"`
	Error                                       *string     `json:"error"`
	Status                                      string      `json:"status"`
	IsOutbound                                  bool        `json:"isOutbound"`
}

type CloseChannelResponse

type CloseChannelResponse struct {
}

type ConnectPeerRequest

type ConnectPeerRequest struct {
	Pubkey  string `json:"pubkey"`
	Address string `json:"address"`
	Port    uint16 `json:"port"`
}

type CreateAppRequest

type CreateAppRequest struct {
	Name           string   `json:"name"`
	Pubkey         string   `json:"pubkey"`
	MaxAmount      *uint64  `json:"maxAmount"` // deprecated
	MaxAmountSat   *uint64  `json:"maxAmountSat"`
	MaxAmountMsat  *uint64  `json:"maxAmountMsat"`
	BudgetRenewal  string   `json:"budgetRenewal"`
	ExpiresAt      string   `json:"expiresAt"`
	Scopes         []string `json:"scopes"`
	ReturnTo       string   `json:"returnTo"`
	Isolated       bool     `json:"isolated"`
	Metadata       Metadata `json:"metadata,omitempty"`
	UnlockPassword string   `json:"unlockPassword"`
}

type CreateAppResponse

type CreateAppResponse struct {
	PairingUri    string   `json:"pairingUri"`
	PairingSecret string   `json:"pairingSecretKey"`
	Pubkey        string   `json:"pairingPublicKey"`
	RelayUrls     []string `json:"relayUrls"`
	WalletPubkey  string   `json:"walletPubkey"`
	Lud16         string   `json:"lud16"`
	Id            uint     `json:"id"`
	Name          string   `json:"name"`
	ReturnTo      string   `json:"returnTo"`
}

type CreateLightningAddressRequest added in v1.18.0

type CreateLightningAddressRequest struct {
	Address string `json:"address"`
	AppId   uint   `json:"appId"`
}

type CustomNodeCommandArgDef added in v1.14.0

type CustomNodeCommandArgDef struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

type CustomNodeCommandDef added in v1.14.0

type CustomNodeCommandDef struct {
	Name        string                    `json:"name"`
	Description string                    `json:"description"`
	Args        []CustomNodeCommandArgDef `json:"args"`
}

type CustomNodeCommandsResponse added in v1.14.0

type CustomNodeCommandsResponse struct {
	Commands []CustomNodeCommandDef `json:"commands"`
}

type EnableAutoSwapRequest added in v1.18.0

type EnableAutoSwapRequest struct {
	BalanceThreshold    *uint64 `json:"balanceThreshold"` // deprecated
	BalanceThresholdSat *uint64 `json:"balanceThresholdSat"`
	SwapAmount          *uint64 `json:"swapAmount"` // deprecated
	SwapAmountSat       *uint64 `json:"swapAmountSat"`
	Destination         string  `json:"destination"`
	DestinationType     string  `json:"destinationType"`
	UnlockPassword      string  `json:"unlockPassword"`
}

type ExecuteCustomNodeCommandRequest added in v1.14.0

type ExecuteCustomNodeCommandRequest struct {
	Command string `json:"command"`
}

type GetAutoSwapConfigResponse added in v1.18.0

type GetAutoSwapConfigResponse struct {
	Type                string `json:"type"`
	Enabled             bool   `json:"enabled"`
	BalanceThreshold    uint64 `json:"balanceThreshold"` // deprecated
	BalanceThresholdSat uint64 `json:"balanceThresholdSat"`
	SwapAmount          uint64 `json:"swapAmount"` // deprecated
	SwapAmountSat       uint64 `json:"swapAmountSat"`
	Destination         string `json:"destination"`
}

type GetForwardsResponse added in v1.19.0

type GetForwardsResponse struct {
	OutboundAmountForwardedSat  uint64 `json:"outboundAmountForwardedSat"`
	OutboundAmountForwardedMsat uint64 `json:"outboundAmountForwardedMsat"`
	TotalFeeEarnedSat           uint64 `json:"totalFeeEarnedSat"`
	TotalFeeEarnedMsat          uint64 `json:"totalFeeEarnedMsat"`
	NumForwards                 uint64 `json:"numForwards"`
}

type GetLogOutputRequest

type GetLogOutputRequest struct {
	MaxLen int `query:"maxLen"`
}

type GetLogOutputResponse

type GetLogOutputResponse struct {
	Log string `json:"logs"`
}

type HealthAlarm added in v1.14.0

type HealthAlarm struct {
	Kind       HealthAlarmKind `json:"kind"`
	RawDetails any             `json:"rawDetails,omitempty"`
}

func NewHealthAlarm added in v1.14.0

func NewHealthAlarm(kind HealthAlarmKind, rawDetails any) HealthAlarm

type HealthAlarmKind added in v1.14.0

type HealthAlarmKind string
const (
	HealthAlarmKindAlbyService       HealthAlarmKind = "alby_service"
	HealthAlarmKindNodeNotReady      HealthAlarmKind = "node_not_ready"
	HealthAlarmKindChannelsOffline   HealthAlarmKind = "channels_offline"
	HealthAlarmKindNostrRelayOffline HealthAlarmKind = "nostr_relay_offline"
	HealthAlarmKindVssNoSubscription HealthAlarmKind = "vss_no_subscription"
)

type HealthResponse added in v1.14.0

type HealthResponse struct {
	Alarms []HealthAlarm `json:"alarms,omitempty"`
}

type InfoResponse

type InfoResponse struct {
	BackendType                   string              `json:"backendType"`
	SetupCompleted                bool                `json:"setupCompleted"`
	OAuthRedirect                 bool                `json:"oauthRedirect"`
	Running                       bool                `json:"running"`
	Unlocked                      bool                `json:"unlocked"`
	AlbyAuthUrl                   string              `json:"albyAuthUrl"`
	NextBackupReminder            string              `json:"nextBackupReminder"`
	AlbyUserIdentifier            string              `json:"albyUserIdentifier"`
	AlbyAccountConnected          bool                `json:"albyAccountConnected"`
	Version                       string              `json:"version"`
	Network                       string              `json:"network"`
	EnableAdvancedSetup           bool                `json:"enableAdvancedSetup"`
	LdkVssEnabled                 bool                `json:"ldkVssEnabled"`
	LdkVssUrl                     string              `json:"ldkVssUrl"`
	VssSupported                  bool                `json:"vssSupported"`
	DatabaseType                  string              `json:"databaseType"`
	StartupState                  string              `json:"startupState"`
	StartupError                  string              `json:"startupError"`
	StartupErrorTime              time.Time           `json:"startupErrorTime"`
	AutoUnlockPasswordSupported   bool                `json:"autoUnlockPasswordSupported"`
	AutoUnlockPasswordEnabled     bool                `json:"autoUnlockPasswordEnabled"`
	Currency                      string              `json:"currency"`
	BitcoinDisplayFormat          string              `json:"bitcoinDisplayFormat"`
	Relays                        []InfoResponseRelay `json:"relays"`
	NodeAlias                     string              `json:"nodeAlias"`
	MempoolUrl                    string              `json:"mempoolUrl"`
	ChainDataSourceType           string              `json:"chainDataSourceType,omitempty"`
	ChainDataSourceAddress        string              `json:"chainDataSourceAddress,omitempty"`
	JitChannelsLiquiditySource    string              `json:"jitChannelsLiquiditySource,omitempty"`
	JitChannelsMinPaymentSizeMsat *uint64             `json:"jitChannelsMinPaymentSizeMsat,omitempty"`
	JitChannelsMaxPaymentSizeMsat *uint64             `json:"jitChannelsMaxPaymentSizeMsat,omitempty"`
	JitChannelsEnabled            bool                `json:"jitChannelsEnabled"`
	HideUpdateBanner              bool                `json:"hideUpdateBanner"`
	SupportsBolt12                bool                `json:"supportsBolt12"`
	NodeMigrationFileCreated      bool                `json:"nodeMigrationFileCreated"`
}

type InfoResponseRelay added in v1.21.0

type InfoResponseRelay struct {
	Url    string `json:"url"`
	Online bool   `json:"online"`
}

type InitiateSwapRequest added in v1.18.0

type InitiateSwapRequest struct {
	SwapAmount    *uint64 `json:"swapAmount"` // deprecated
	SwapAmountSat *uint64 `json:"swapAmountSat"`
	Destination   string  `json:"destination"`
}

type LSPOrderRequest added in v1.3.0

type LSPOrderRequest struct {
	Amount        *uint64 `json:"amount"` // deprecated
	AmountSat     *uint64 `json:"amountSat"`
	LSPType       string  `json:"lspType"`
	LSPIdentifier string  `json:"lspIdentifier"`
	Public        bool    `json:"public"`
}

type LSPOrderResponse added in v1.3.0

type LSPOrderResponse struct {
	Invoice              string `json:"invoice"`
	Fee                  uint64 `json:"fee"` // deprecated
	FeeSat               uint64 `json:"feeSat"`
	InvoiceAmount        uint64 `json:"invoiceAmount"` // deprecated
	InvoiceAmountSat     uint64 `json:"invoiceAmountSat"`
	IncomingLiquidity    uint64 `json:"incomingLiquidity"` // deprecated
	IncomingLiquiditySat uint64 `json:"incomingLiquiditySat"`
	OutgoingLiquidity    uint64 `json:"outgoingLiquidity"` // deprecated
	OutgoingLiquiditySat uint64 `json:"outgoingLiquiditySat"`
}

type LightningBalanceResponse added in v1.23.0

type LightningBalanceResponse struct {
	TotalSpendable           int64 `json:"totalSpendable"` // deprecated
	TotalSpendableSat        int64 `json:"totalSpendableSat"`
	TotalSpendableMsat       int64 `json:"totalSpendableMsat"`
	TotalReceivable          int64 `json:"totalReceivable"` // deprecated
	TotalReceivableSat       int64 `json:"totalReceivableSat"`
	TotalReceivableMsat      int64 `json:"totalReceivableMsat"`
	NextMaxSpendable         int64 `json:"nextMaxSpendable"` // deprecated
	NextMaxSpendableSat      int64 `json:"nextMaxSpendableSat"`
	NextMaxSpendableMsat     int64 `json:"nextMaxSpendableMsat"`
	NextMaxReceivable        int64 `json:"nextMaxReceivable"` // deprecated
	NextMaxReceivableSat     int64 `json:"nextMaxReceivableSat"`
	NextMaxReceivableMsat    int64 `json:"nextMaxReceivableMsat"`
	NextMaxSpendableMPP      int64 `json:"nextMaxSpendableMPP"` // deprecated
	NextMaxSpendableMPPSat   int64 `json:"nextMaxSpendableMPPSat"`
	NextMaxSpendableMPPMsat  int64 `json:"nextMaxSpendableMPPMsat"`
	NextMaxReceivableMPP     int64 `json:"nextMaxReceivableMPP"` // deprecated
	NextMaxReceivableMPPSat  int64 `json:"nextMaxReceivableMPPSat"`
	NextMaxReceivableMPPMsat int64 `json:"nextMaxReceivableMPPMsat"`
}

type ListAppsFilters added in v1.18.5

type ListAppsFilters struct {
	Name          string `json:"name"`
	AppStoreAppId string `json:"appStoreAppId"`
	Unused        bool   `json:"unused"`
	SubWallets    *bool  `json:"subWallets"`
}

type ListAppsResponse

type ListAppsResponse struct {
	Apps             []App  `json:"apps"`
	TotalCount       uint64 `json:"totalCount"`
	TotalBalance     *int64 `json:"totalBalance,omitempty"` // deprecated
	TotalBalanceSat  *int64 `json:"totalBalanceSat,omitempty"`
	TotalBalanceMsat *int64 `json:"totalBalanceMsat,omitempty"`
}

type ListSwapsResponse added in v1.18.0

type ListSwapsResponse struct {
	Swaps []Swap `json:"swaps"`
}

type ListTransactionsFilters added in v1.24.0

type ListTransactionsFilters struct {
	Type          *string
	MinAmountMsat *uint64
	HideFailed    bool
	SearchTerm    string
}

func ParseListTransactionsFilters added in v1.24.0

func ParseListTransactionsFilters(query url.Values) (ListTransactionsFilters, error)

ParseListTransactionsFilters parses transaction filter query parameters shared by the HTTP and Wails transports. Invalid values return an error.

type ListTransactionsResponse

type ListTransactionsResponse struct {
	TotalCount   uint64        `json:"totalCount"`
	Transactions []Transaction `json:"transactions"`
}

type LookupInvoiceResponse

type LookupInvoiceResponse = Transaction

type LookupSwapResponse added in v1.18.0

type LookupSwapResponse = Swap

type MakeInvoiceRequest

type MakeInvoiceRequest struct {
	Amount      *uint64 `json:"amount"` // deprecated
	AmountSat   *uint64 `json:"amountSat"`
	AmountMsat  *uint64 `json:"amountMsat"`
	Description string  `json:"description"`
	ToAppID     *uint   `json:"toAppId"`
}

type MakeInvoiceResponse

type MakeInvoiceResponse = Transaction

type MakeOfferRequest added in v1.18.0

type MakeOfferRequest struct {
	Description string `json:"description"`
}

type Metadata added in v1.5.0

type Metadata = map[string]interface{}

type MigrateNodeStorageRequest added in v1.12.0

type MigrateNodeStorageRequest struct {
	To string `json:"to"`
}

type MnemonicRequest added in v1.5.0

type MnemonicRequest struct {
	UnlockPassword string `json:"unlockPassword"`
}

type MnemonicResponse added in v1.5.0

type MnemonicResponse struct {
	Mnemonic string `json:"mnemonic"`
}

type NetworkGraphResponse

type NetworkGraphResponse = interface{}

type NodeConnectionInfo added in v1.23.0

type NodeConnectionInfo struct {
	Pubkey  string `json:"pubkey"`
	Address string `json:"address"`
	Port    int    `json:"port"`
}

type NodeStatus added in v1.23.0

type NodeStatus struct {
	IsReady            bool        `json:"isReady"`
	InternalNodeStatus interface{} `json:"internalNodeStatus"`
}

type OnchainBalanceResponse

type OnchainBalanceResponse struct {
	Spendable                             int64                   `json:"spendable"` // deprecated
	SpendableSat                          int64                   `json:"spendableSat"`
	Total                                 int64                   `json:"total"` // deprecated
	TotalSat                              int64                   `json:"totalSat"`
	Reserved                              int64                   `json:"reserved"` // deprecated
	ReservedSat                           int64                   `json:"reservedSat"`
	PendingBalancesFromChannelClosures    uint64                  `json:"pendingBalancesFromChannelClosures"` // deprecated
	PendingBalancesFromChannelClosuresSat uint64                  `json:"pendingBalancesFromChannelClosuresSat"`
	PendingBalancesDetails                []PendingBalanceDetails `json:"pendingBalancesDetails"`
	PendingSweepBalancesDetails           []PendingBalanceDetails `json:"pendingSweepBalancesDetails"`
	InternalBalances                      interface{}             `json:"internalBalances"`
}

type OnchainTransaction added in v1.23.0

type OnchainTransaction struct {
	AmountSat        uint64 `json:"amountSat"`
	CreatedAt        uint64 `json:"createdAt"`
	State            string `json:"state"`
	Type             string `json:"type"`
	NumConfirmations uint32 `json:"numConfirmations"`
	TxId             string `json:"txId"`
}

type OpenChannelRequest

type OpenChannelRequest struct {
	Pubkey     string `json:"pubkey"`
	AmountSats int64  `json:"amountSats"`
	Public     bool   `json:"public"`
}

type OpenChannelResponse

type OpenChannelResponse struct {
	FundingTxId string `json:"fundingTxId"`
}

type PayInvoiceRequest added in v1.12.0

type PayInvoiceRequest struct {
	Amount     *uint64  `json:"amount"` // deprecated
	AmountSat  *uint64  `json:"amountSat"`
	AmountMsat *uint64  `json:"amountMsat"`
	Metadata   Metadata `json:"metadata"`
	FromAppID  *uint    `json:"fromAppId"`
}

type PeerDetails added in v1.23.0

type PeerDetails struct {
	NodeId      string `json:"nodeId"`
	Address     string `json:"address"`
	IsPersisted bool   `json:"isPersisted"`
	IsConnected bool   `json:"isConnected"`
}

type PendingBalanceDetails added in v1.23.0

type PendingBalanceDetails struct {
	ChannelId     string `json:"channelId"`
	NodeId        string `json:"nodeId"`
	Amount        uint64 `json:"amount"` // deprecated
	AmountSat     uint64 `json:"amountSat"`
	FundingTxId   string `json:"fundingTxId"`
	FundingTxVout uint32 `json:"fundingTxVout"`
}

type RebalanceChannelRequest added in v1.18.0

type RebalanceChannelRequest struct {
	ReceiveThroughNodePubkey string  `json:"receiveThroughNodePubkey"`
	AmountSat                *uint64 `json:"amountSat"`
	AmountMsat               *uint64 `json:"amountMsat"`
}

type RebalanceChannelResponse added in v1.18.0

type RebalanceChannelResponse struct {
	TotalFeeSat  uint64 `json:"totalFeeSat"`
	TotalFeeMsat uint64 `json:"totalFeeMsat"`
}

type RedeemOnchainFundsRequest

type RedeemOnchainFundsRequest struct {
	ToAddress string  `json:"toAddress"`
	Amount    *uint64 `json:"amount"` // deprecated
	AmountSat *uint64 `json:"amountSat"`
	FeeRate   *uint64 `json:"feeRate"`
	SendAll   bool    `json:"sendAll"`
}

type RedeemOnchainFundsResponse

type RedeemOnchainFundsResponse struct {
	TxId string `json:"txId"`
}

type RefundSwapRequest added in v1.18.0

type RefundSwapRequest struct {
	SwapId  string `json:"swapId"`
	Address string `json:"address"`
}

type ResetRouterRequest

type ResetRouterRequest struct {
	Key string `json:"key"`
}

type SendEventRequest added in v1.18.0

type SendEventRequest struct {
	Event      string      `json:"event"`
	Properties interface{} `json:"properties"`
}

type SendPaymentResponse

type SendPaymentResponse = Transaction

type SetNodeAliasRequest added in v1.18.0

type SetNodeAliasRequest struct {
	NodeAlias string `json:"nodeAlias"`
}

type SetTransactionUserLabelsRequest added in v1.22.0

type SetTransactionUserLabelsRequest struct {
	Labels map[string]string `json:"labels"`
}

type SetupRequest

type SetupRequest struct {
	LNBackendType  string `json:"backendType"`
	UnlockPassword string `json:"unlockPassword"`

	Mnemonic           string `json:"mnemonic"`
	NextBackupReminder string `json:"nextBackupReminder"`

	// LND fields
	LNDAddress      string `json:"lndAddress"`
	LNDCertFile     string `json:"lndCertFile"`
	LNDMacaroonFile string `json:"lndMacaroonFile"`

	// Phoenixd fields
	PhoenixdAddress       string `json:"phoenixdAddress"`
	PhoenixdAuthorization string `json:"phoenixdAuthorization"`

	// Cashu fields
	CashuMintUrl string `json:"cashuMintUrl"`

	// CLN fields
	CLNAddress      string `json:"clnAddress"`
	CLNLightningDir string `json:"clnLightningDir"`
	CLNAddressHold  string `json:"clnAddressHold"`
}

type SignMessageRequest

type SignMessageRequest struct {
	Message string `json:"message"`
}

type SignMessageResponse

type SignMessageResponse struct {
	Message   string `json:"message"`
	Signature string `json:"signature"`
}

type StartRequest

type StartRequest struct {
	UnlockPassword string `json:"unlockPassword"`
}

type Swap added in v1.18.0

type Swap struct {
	Id                 string `json:"id"`
	Type               string `json:"type"`
	State              string `json:"state"`
	Invoice            string `json:"invoice"`
	SendAmount         uint64 `json:"sendAmount"` // deprecated
	SendAmountSat      uint64 `json:"sendAmountSat"`
	ReceiveAmount      uint64 `json:"receiveAmount"` // deprecated
	ReceiveAmountSat   uint64 `json:"receiveAmountSat"`
	PaymentHash        string `json:"paymentHash"`
	DestinationAddress string `json:"destinationAddress"`
	RefundAddress      string `json:"refundAddress"`
	LockupAddress      string `json:"lockupAddress"`
	LockupTxId         string `json:"lockupTxId"`
	ClaimTxId          string `json:"claimTxId"`
	AutoSwap           bool   `json:"autoSwap"`
	BoltzPubkey        string `json:"boltzPubkey"`
	CreatedAt          string `json:"createdAt"`
	UpdatedAt          string `json:"updatedAt"`
	UsedXpub           bool   `json:"usedXpub"`
}

type SwapInfoResponse added in v1.19.0

type SwapInfoResponse struct {
	AlbyServiceFee     float64 `json:"albyServiceFee"`
	BoltzServiceFee    float64 `json:"boltzServiceFee"`
	BoltzNetworkFee    uint64  `json:"boltzNetworkFee"` // deprecated
	BoltzNetworkFeeSat uint64  `json:"boltzNetworkFeeSat"`
	MinAmount          uint64  `json:"minAmount"` // deprecated
	MinAmountSat       uint64  `json:"minAmountSat"`
	MaxAmount          uint64  `json:"maxAmount"` // deprecated
	MaxAmountSat       uint64  `json:"maxAmountSat"`
}

type Transaction added in v1.2.0

type Transaction struct {
	ID              uint        `json:"id"`
	Type            string      `json:"type"`
	State           string      `json:"state"`
	Invoice         string      `json:"invoice"`
	Description     string      `json:"description"`
	DescriptionHash string      `json:"descriptionHash"`
	Preimage        *string     `json:"preimage"`
	PaymentHash     string      `json:"paymentHash"`
	Amount          uint64      `json:"amount"` // deprecated
	AmountSat       uint64      `json:"amountSat"`
	AmountMsat      uint64      `json:"amountMsat"`
	FeesPaid        uint64      `json:"feesPaid"` // deprecated
	FeesPaidSat     uint64      `json:"feesPaidSat"`
	FeesPaidMsat    uint64      `json:"feesPaidMsat"`
	UpdatedAt       string      `json:"updatedAt"`
	CreatedAt       string      `json:"createdAt"`
	SettledAt       *string     `json:"settledAt"`
	AppId           *uint       `json:"appId"`
	Metadata        Metadata    `json:"metadata,omitempty"`
	Boostagram      *Boostagram `json:"boostagram,omitempty"`
	FailureReason   string      `json:"failureReason"`
}

TODO: camelCase

type TransferRequest added in v1.19.0

type TransferRequest struct {
	AmountSat   *uint64 `json:"amountSat"`
	AmountMsat  *uint64 `json:"amountMsat"`
	FromAppId   *uint   `json:"fromAppId"`
	ToAppId     *uint   `json:"toAppId"`
	Description string  `json:"description"`
}

type UnlockRequest

type UnlockRequest struct {
	UnlockPassword  string  `json:"unlockPassword"`
	TokenExpiryDays *uint64 `json:"tokenExpiryDays"`
	Permission      string  `json:"permission,omitempty"` // "full" or "readonly"
}

type UpdateAppRequest

type UpdateAppRequest struct {
	Name            *string   `json:"name"`
	MaxAmount       *uint64   `json:"maxAmount"` // deprecated
	MaxAmountSat    *uint64   `json:"maxAmountSat"`
	MaxAmountMsat   *uint64   `json:"maxAmountMsat"`
	BudgetRenewal   *string   `json:"budgetRenewal"`
	ExpiresAt       *string   `json:"expiresAt"`
	UpdateExpiresAt bool      `json:"updateExpiresAt"`
	Scopes          []string  `json:"scopes"`
	Metadata        *Metadata `json:"metadata"`
	Isolated        *bool     `json:"isolated"`
}

type UpdateChannelRequest

type UpdateChannelRequest struct {
	ChannelId                                string `json:"channelId"`
	NodeId                                   string `json:"nodeId"`
	ForwardingFeeBaseMsat                    uint32 `json:"forwardingFeeBaseMsat"`
	ForwardingFeeProportionalMillionths      uint32 `json:"forwardingFeeProportionalMillionths"`
	MaxDustHtlcExposureFromFeeRateMultiplier uint64 `json:"maxDustHtlcExposureFromFeeRateMultiplier"`
}

type UpdateSettingsRequest added in v1.14.0

type UpdateSettingsRequest struct {
	Currency             string `json:"currency"`
	BitcoinDisplayFormat string `json:"bitcoinDisplayFormat"`
	JitChannelsEnabled   *bool  `json:"jitChannelsEnabled"`
}

type User

type User struct {
	Email string `json:"email"`
}

type WalletCapabilitiesResponse

type WalletCapabilitiesResponse struct {
	Scopes            []string `json:"scopes"`
	Methods           []string `json:"methods"`
	NotificationTypes []string `json:"notificationTypes"`
}

Jump to

Keyboard shortcuts

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