Documentation
¶
Index ¶
- Constants
- Variables
- func FormatTime(t time.Time) int64
- func ParsePrivateKey(privateKeyHex string) (*btcec.PrivateKey, error)
- func ParsePublicKey(publicKeyHex string) (*btcec.PublicKey, error)
- type AnySwap
- type BudgetInterval
- type ChainSwap
- type ChainSwapData
- type ChainSwapDataSerialized
- type ChainSwapSerialized
- type Database
- func (database *Database) AddChainSwapOnchainFee(chainSwap *ChainSwap, onchainFee uint64) error
- func (database *Database) BeginTx() (*Transaction, error)
- func (database *Database) Connect() error
- func (database *Database) CreateBudget(period BudgetInterval) error
- func (database *Database) CreateChainSwap(swap ChainSwap) error
- func (d *Database) CreateDefaultTenant() error
- func (database *Database) CreateMacaroon(macaroon Macaroon) error
- func (database *Database) CreateReverseSwap(reverseSwap ReverseSwap) error
- func (database *Database) CreateSwap(swap Swap) error
- func (d *Database) CreateTenant(tenant *Tenant) error
- func (d *Database) CreateWallet(wallet *Wallet) error
- func (d *Database) DeleteTenant(id int64) error
- func (d *Database) DeleteWallet(id Id) error
- func (database *Database) Exec(query string, args ...any) (sql.Result, error)
- func (database *Database) GetAnySwap(id string) (*AnySwap, error)
- func (d *Database) GetNodeWallet(nodePubkey string) (*Wallet, error)
- func (db *Database) GetSwapMnemonic() (*SwapMnemonic, error)
- func (d *Database) GetTenant(id Id) (*Tenant, error)
- func (d *Database) GetTenantByName(name string) (*Tenant, error)
- func (d *Database) GetWallet(id Id) (*Wallet, error)
- func (d *Database) GetWalletByName(name string, tenant Id) (*Wallet, error)
- func (d *Database) HasTenantWallets(tenantId Id) (bool, error)
- func (db *Database) IncrementSwapMnemonicKey(mnemonic string) error
- func (database *Database) Query(query string, args ...any) (*sql.Rows, error)
- func (database *Database) QueryAllClaimableSwaps(tenantId *Id, currency lightz.Currency) ([]*ReverseSwap, []*ChainSwap, error)
- func (database *Database) QueryAllRefundableSwaps(tenantId *Id, currency lightz.Currency, currentHeight uint32) ([]*Swap, []*ChainSwap, error)
- func (database *Database) QueryAllSwaps(args SwapQuery) ([]*AnySwap, error)
- func (database *Database) QueryAnySwap(id string) (*Swap, *ReverseSwap, *ChainSwap, error)
- func (database *Database) QueryChainSwap(id string) (swap *ChainSwap, err error)
- func (database *Database) QueryChainSwaps(args SwapQuery) ([]*ChainSwap, error)
- func (database *Database) QueryClaimableChainSwaps(tenantId *Id, currency lightz.Currency) ([]*ChainSwap, error)
- func (database *Database) QueryClaimableReverseSwaps(tenantId *Id, currency lightz.Currency) ([]*ReverseSwap, error)
- func (database *Database) QueryCurrentBudgetInterval(name string, tenantId Id) (*BudgetInterval, error)
- func (database *Database) QueryMacaroon(id []byte) (macaroon *Macaroon, err error)
- func (database *Database) QueryPendingReverseSwaps() ([]*ReverseSwap, error)
- func (database *Database) QueryPendingSwaps() ([]*Swap, error)
- func (database *Database) QueryRefundableChainSwaps(tenantId *Id, currency lightz.Currency, currentBlockHeight uint32) ([]*ChainSwap, error)
- func (database *Database) QueryRefundableSwaps(tenantId *Id, currency lightz.Currency, currentBlockHeight uint32) ([]*Swap, error)
- func (database *Database) QueryReverseSwap(id string) (reverseSwap *ReverseSwap, err error)
- func (database *Database) QueryReverseSwapByClaimTransaction(txId string) (reverseSwap *ReverseSwap, err error)
- func (database *Database) QueryReverseSwaps(args SwapQuery) ([]*ReverseSwap, error)
- func (database *Database) QueryRow(query string, args ...any) *sql.Row
- func (database *Database) QueryStats(args SwapQuery, swapTypes []lightz.SwapType) (*lightzrpc.SwapStats, error)
- func (database *Database) QuerySwap(id string) (swap *Swap, err error)
- func (database *Database) QuerySwapByInvoice(invoice string) (swap *Swap, err error)
- func (database *Database) QuerySwapByPaymentHash(paymentHash []byte) (swap *Swap, err error)
- func (database *Database) QuerySwaps(args SwapQuery) ([]*Swap, error)
- func (database *Database) QuerySwapsByTransactions(args SwapQuery, transactionIds []string) ([]*AnySwap, error)
- func (d *Database) QueryTenants() ([]*Tenant, error)
- func (d *Database) QueryWalletCredentials() ([]*onchain.WalletCredentials, error)
- func (database *Database) RunTx(run func(tx *Transaction) error) error
- func (database *Database) SetChainSwapAddress(swapData *ChainSwapData, address string) error
- func (database *Database) SetChainSwapAmount(swapData *ChainSwapData, amount uint64) error
- func (database *Database) SetChainSwapLockupTransactionId(swapData *ChainSwapData, lockupTransactionId string) error
- func (database *Database) SetChainSwapServiceFee(chainSwap *ChainSwap, serviceFee int64) error
- func (database *Database) SetChainSwapTransactionId(swapData *ChainSwapData, transactionId string) error
- func (database *Database) SetChainSwapWallet(swapData *ChainSwapData, walletId Id) error
- func (database *Database) SetReverseSwapClaimAddress(reverseSwap *ReverseSwap, claimAddress string) error
- func (database *Database) SetReverseSwapClaimTransactionId(reverseSwap *ReverseSwap, claimTransactionId string, fee uint64) error
- func (database *Database) SetReverseSwapLockupTransactionId(reverseSwap *ReverseSwap, lockupTransactionId string) error
- func (database *Database) SetReverseSwapPaidAt(reverseSwap *ReverseSwap, paidAt time.Time) error
- func (database *Database) SetReverseSwapRoutingFee(reverseSwap *ReverseSwap, feeMsat uint64) error
- func (database *Database) SetReverseSwapServiceFee(reverseSwap *ReverseSwap, serviceFee int64, onchainFee uint64) error
- func (database *Database) SetReverseSwapWalletId(reverseSwap *ReverseSwap, walletId Id) error
- func (database *Database) SetSwapExpectedAmount(swap *Swap, expectedAmount uint64) error
- func (database *Database) SetSwapInvoice(swap *Swap, invoice string) error
- func (database *Database) SetSwapLockupTransactionId(swap *Swap, lockupTransactionId string) error
- func (database *Database) SetSwapOnchainFee(swap *Swap, onchainFee uint64) error
- func (database *Database) SetSwapPreimage(swap *Swap, preimage []byte) error
- func (database *Database) SetSwapRefundAddress(swap *Swap, refundAddress string) error
- func (database *Database) SetSwapRefundTransactionId(swap *Swap, refundTransactionId string, fee uint64) error
- func (database *Database) SetSwapRefundWallet(swap *Swap, walletId Id) error
- func (database *Database) SetSwapServiceFee(swap *Swap, serviceFee int64, onchainFee uint64) error
- func (d *Database) SetWalletSubaccount(id Id, subaccount uint64) error
- func (database *Database) UpdateChainSwapState(chainSwap *ChainSwap, state lightzrpc.SwapState, error string) error
- func (database *Database) UpdateChainSwapStatus(chainSwap *ChainSwap, status lightz.SwapUpdateEvent) error
- func (database *Database) UpdateReverseSwapState(reverseSwap *ReverseSwap, state lightzrpc.SwapState, error string) error
- func (database *Database) UpdateReverseSwapStatus(reverseSwap *ReverseSwap, status lightz.SwapUpdateEvent) error
- func (database *Database) UpdateSwapState(swap *Swap, state lightzrpc.SwapState, error string) error
- func (database *Database) UpdateSwapStatus(swap *Swap, status lightz.SwapUpdateEvent) error
- func (d *Database) UpdateWalletCredentials(credentials *onchain.WalletCredentials) error
- type Id
- type JsonScanner
- type Macaroon
- type PrivateKeyScanner
- type PublicKeyScanner
- type ReverseSwap
- type ReverseSwapSerialized
- type Swap
- type SwapMnemonic
- type SwapQuery
- type SwapSerialized
- type Tenant
- type Transaction
- type Wallet
- type WalletPersister
Constants ¶
const ( // DefaultTenantId is the ID of the default admin tenant. DefaultTenantId Id = 1 // DefaultTenantName is the name of the default admin tenant. DefaultTenantName string = "admin" )
Variables ¶
var DefaultTenant = Tenant{Id: DefaultTenantId, Name: DefaultTenantName}
DefaultTenant is the default admin tenant that is created on first startup.
var FailedSwapQuery = SwapQuery{ States: []lightzrpc.SwapState{lightzrpc.SwapState_ERROR, lightzrpc.SwapState_SERVER_ERROR, lightzrpc.SwapState_REFUNDED}, }
var PendingSwapQuery = SwapQuery{ States: []lightzrpc.SwapState{lightzrpc.SwapState_PENDING}, }
Functions ¶
func FormatTime ¶
func ParsePrivateKey ¶
func ParsePrivateKey(privateKeyHex string) (*btcec.PrivateKey, error)
Types ¶
type AnySwap ¶
type AnySwap struct {
Id string
Type lightz.SwapType
Pair lightz.Pair
State lightzrpc.SwapState
Error string
Status lightz.SwapUpdateEvent
Amount uint64
IsAuto bool
ServiceFee *int64
OnchainFee *uint64
CreatedAt time.Time
LockupTransactionid string
ClaimTransactionid string
RefundTransactionid string
TenantId Id
}
type BudgetInterval ¶
type ChainSwap ¶
type ChainSwap struct {
Id string
Pair lightz.Pair
State lightzrpc.SwapState
Error string
Status lightz.SwapUpdateEvent
AcceptZeroConf bool
Preimage []byte
IsAuto bool
ServiceFee *int64
ServiceFeePercent lightz.Percentage
OnchainFee *uint64
CreatedAt time.Time
TenantId Id
FromData *ChainSwapData
ToData *ChainSwapData
}
func (*ChainSwap) Serialize ¶
func (swap *ChainSwap) Serialize() ChainSwapSerialized
type ChainSwapData ¶
type ChainSwapData struct {
Id string
Currency lightz.Currency
PrivateKey *btcec.PrivateKey
TheirPublicKey *btcec.PublicKey
BlindingKey *btcec.PrivateKey
Tree *lightz.SwapTree
Amount uint64
TimeoutBlockHeight uint32
LockupTransactionId string
Transactionid string
RefundTransactionId string
WalletId *Id
Address string
LockupAddress string
}
func (*ChainSwapData) BlindingPubKey ¶
func (swapData *ChainSwapData) BlindingPubKey() *btcec.PublicKey
func (*ChainSwapData) InitTree ¶
func (swapData *ChainSwapData) InitTree(isClaim bool) error
func (*ChainSwapData) Serialize ¶
func (swapData *ChainSwapData) Serialize() ChainSwapDataSerialized
type ChainSwapDataSerialized ¶
type ChainSwapSerialized ¶
type Database ¶
type Database struct {
Path string `long:"database.path" description:"Path to the database file"`
// contains filtered or unexported fields
}
func (*Database) AddChainSwapOnchainFee ¶
func (*Database) BeginTx ¶
func (database *Database) BeginTx() (*Transaction, error)
func (*Database) CreateBudget ¶
func (database *Database) CreateBudget(period BudgetInterval) error
func (*Database) CreateChainSwap ¶
func (*Database) CreateDefaultTenant ¶
CreateDefaultTenant creates the default admin tenant if it doesn't exist.
func (*Database) CreateMacaroon ¶
func (*Database) CreateReverseSwap ¶
func (database *Database) CreateReverseSwap(reverseSwap ReverseSwap) error
func (*Database) CreateSwap ¶
func (*Database) CreateTenant ¶
CreateTenant creates a new tenant in the database. The tenant ID is automatically generated and assigned.
func (*Database) CreateWallet ¶
func (*Database) DeleteTenant ¶
DeleteTenant removes a tenant from the database by its ID. Returns an error if the tenant doesn't exist or deletion fails.
func (*Database) DeleteWallet ¶
func (*Database) GetNodeWallet ¶
func (*Database) GetSwapMnemonic ¶
func (db *Database) GetSwapMnemonic() (*SwapMnemonic, error)
func (*Database) GetTenantByName ¶
GetTenantByName retrieves a tenant by its name.
func (*Database) GetWalletByName ¶
func (*Database) HasTenantWallets ¶
HasTenantWallets checks if a tenant has any associated wallets.
func (*Database) IncrementSwapMnemonicKey ¶
func (*Database) QueryAllClaimableSwaps ¶
func (*Database) QueryAllRefundableSwaps ¶
func (*Database) QueryAllSwaps ¶
func (*Database) QueryAnySwap ¶
func (*Database) QueryChainSwap ¶
func (*Database) QueryChainSwaps ¶
func (*Database) QueryClaimableChainSwaps ¶
func (*Database) QueryClaimableReverseSwaps ¶
func (*Database) QueryCurrentBudgetInterval ¶
func (database *Database) QueryCurrentBudgetInterval(name string, tenantId Id) (*BudgetInterval, error)
func (*Database) QueryMacaroon ¶
func (*Database) QueryPendingReverseSwaps ¶
func (database *Database) QueryPendingReverseSwaps() ([]*ReverseSwap, error)
func (*Database) QueryPendingSwaps ¶
func (*Database) QueryRefundableChainSwaps ¶
func (*Database) QueryRefundableSwaps ¶
func (*Database) QueryReverseSwap ¶
func (database *Database) QueryReverseSwap(id string) (reverseSwap *ReverseSwap, err error)
func (*Database) QueryReverseSwapByClaimTransaction ¶
func (database *Database) QueryReverseSwapByClaimTransaction(txId string) (reverseSwap *ReverseSwap, err error)
func (*Database) QueryReverseSwaps ¶
func (database *Database) QueryReverseSwaps(args SwapQuery) ([]*ReverseSwap, error)
func (*Database) QueryStats ¶
func (*Database) QuerySwapByInvoice ¶
func (*Database) QuerySwapByPaymentHash ¶
func (*Database) QuerySwapsByTransactions ¶
func (*Database) QueryTenants ¶
QueryTenants retrieves all tenants from the database.
func (*Database) QueryWalletCredentials ¶
func (d *Database) QueryWalletCredentials() ([]*onchain.WalletCredentials, error)
func (*Database) SetChainSwapAddress ¶
func (database *Database) SetChainSwapAddress(swapData *ChainSwapData, address string) error
func (*Database) SetChainSwapAmount ¶
func (database *Database) SetChainSwapAmount(swapData *ChainSwapData, amount uint64) error
func (*Database) SetChainSwapLockupTransactionId ¶
func (database *Database) SetChainSwapLockupTransactionId(swapData *ChainSwapData, lockupTransactionId string) error
func (*Database) SetChainSwapServiceFee ¶
func (*Database) SetChainSwapTransactionId ¶
func (database *Database) SetChainSwapTransactionId(swapData *ChainSwapData, transactionId string) error
func (*Database) SetChainSwapWallet ¶
func (database *Database) SetChainSwapWallet(swapData *ChainSwapData, walletId Id) error
func (*Database) SetReverseSwapClaimAddress ¶
func (database *Database) SetReverseSwapClaimAddress(reverseSwap *ReverseSwap, claimAddress string) error
func (*Database) SetReverseSwapClaimTransactionId ¶
func (database *Database) SetReverseSwapClaimTransactionId(reverseSwap *ReverseSwap, claimTransactionId string, fee uint64) error
func (*Database) SetReverseSwapLockupTransactionId ¶
func (database *Database) SetReverseSwapLockupTransactionId(reverseSwap *ReverseSwap, lockupTransactionId string) error
func (*Database) SetReverseSwapPaidAt ¶
func (database *Database) SetReverseSwapPaidAt(reverseSwap *ReverseSwap, paidAt time.Time) error
func (*Database) SetReverseSwapRoutingFee ¶
func (database *Database) SetReverseSwapRoutingFee(reverseSwap *ReverseSwap, feeMsat uint64) error
func (*Database) SetReverseSwapServiceFee ¶
func (database *Database) SetReverseSwapServiceFee(reverseSwap *ReverseSwap, serviceFee int64, onchainFee uint64) error
func (*Database) SetReverseSwapWalletId ¶
func (database *Database) SetReverseSwapWalletId(reverseSwap *ReverseSwap, walletId Id) error
func (*Database) SetSwapExpectedAmount ¶
func (*Database) SetSwapInvoice ¶
func (*Database) SetSwapLockupTransactionId ¶
func (*Database) SetSwapOnchainFee ¶
func (*Database) SetSwapPreimage ¶
func (*Database) SetSwapRefundAddress ¶
func (*Database) SetSwapRefundTransactionId ¶
func (*Database) SetSwapRefundWallet ¶
func (*Database) SetSwapServiceFee ¶
func (*Database) SetWalletSubaccount ¶
func (*Database) UpdateChainSwapState ¶
func (*Database) UpdateChainSwapStatus ¶
func (database *Database) UpdateChainSwapStatus(chainSwap *ChainSwap, status lightz.SwapUpdateEvent) error
func (*Database) UpdateReverseSwapState ¶
func (*Database) UpdateReverseSwapStatus ¶
func (database *Database) UpdateReverseSwapStatus(reverseSwap *ReverseSwap, status lightz.SwapUpdateEvent) error
func (*Database) UpdateSwapState ¶
func (*Database) UpdateSwapStatus ¶
func (database *Database) UpdateSwapStatus(swap *Swap, status lightz.SwapUpdateEvent) error
func (*Database) UpdateWalletCredentials ¶
func (d *Database) UpdateWalletCredentials(credentials *onchain.WalletCredentials) error
type JsonScanner ¶
func (*JsonScanner[T]) Scan ¶
func (j *JsonScanner[T]) Scan(src any) error
type PrivateKeyScanner ¶
type PrivateKeyScanner struct {
Value *btcec.PrivateKey
Nullable bool
}
func (*PrivateKeyScanner) Scan ¶
func (s *PrivateKeyScanner) Scan(src any) (err error)
type PublicKeyScanner ¶
func (*PublicKeyScanner) Scan ¶
func (s *PublicKeyScanner) Scan(src any) (err error)
type ReverseSwap ¶
type ReverseSwap struct {
Id string
Pair lightz.Pair
ChanIds []lightning.ChanId
State lightzrpc.SwapState
Error string
CreatedAt time.Time
PaidAt time.Time
Status lightz.SwapUpdateEvent
AcceptZeroConf bool
PrivateKey *btcec.PrivateKey
RefundPubKey *btcec.PublicKey
SwapTree *lightz.SwapTree
Preimage []byte
RedeemScript []byte
Invoice string
ClaimAddress string
OnchainAmount uint64
InvoiceAmount uint64
TimeoutBlockHeight uint32
LockupTransactionId string
ClaimTransactionId string
BlindingKey *btcec.PrivateKey
IsAuto bool
RoutingFeeMsat *uint64
ServiceFee *int64
ServiceFeePercent lightz.Percentage
OnchainFee *uint64
ExternalPay bool
WalletId *Id
TenantId Id
RoutingFeeLimitPpm *uint64
}
func (*ReverseSwap) InitTree ¶
func (reverseSwap *ReverseSwap) InitTree() error
func (*ReverseSwap) PreimageHash ¶
func (reverseSwap *ReverseSwap) PreimageHash() []byte
func (*ReverseSwap) Serialize ¶
func (reverseSwap *ReverseSwap) Serialize() ReverseSwapSerialized
type ReverseSwapSerialized ¶
type ReverseSwapSerialized struct {
Id string
From string
To string
ChanIds string
State string
Error string
Status string
AcceptZeroConf bool
PrivateKey string
SwapTree string
Preimage string
RedeemScript string
Invoice string
ClaimAddress string
OnchainAmount uint64
InvoiceAmount uint64
TimeoutBlockHeight uint32
LockupTransactionId string
ClaimTransactionId string
BlindingKey string
IsAuto bool
RoutingFeeMsat *uint64
ServiceFee *int64
ServiceFeePercent lightz.Percentage
OnchainFee *uint64
ExternalPay bool
WalletId *Id
TenantId Id
RoutingFeeLimitPpm *uint64
}
type Swap ¶
type Swap struct {
Id string
Pair lightz.Pair
ChanIds []lightning.ChanId
State lightzrpc.SwapState
CreatedAt time.Time
Error string
Status lightz.SwapUpdateEvent
PrivateKey *btcec.PrivateKey
SwapTree *lightz.SwapTree
ClaimPubKey *btcec.PublicKey
Preimage []byte
RedeemScript []byte
Invoice string
PaymentHash []byte
Address string
ExpectedAmount uint64
TimoutBlockHeight uint32
LockupTransactionId string
RefundTransactionId string
RefundAddress string
BlindingKey *btcec.PrivateKey
IsAuto bool
ServiceFee *int64
ServiceFeePercent lightz.Percentage
OnchainFee *uint64
WalletId *Id
TenantId Id
}
func (*Swap) BlindingPubKey ¶
func (*Swap) Serialize ¶
func (swap *Swap) Serialize() SwapSerialized
type SwapMnemonic ¶
type SwapQuery ¶
type SwapQuery struct {
From *lightz.Currency
To *lightz.Currency
States []lightzrpc.SwapState
Include lightzrpc.IncludeSwaps
Since time.Time
TenantId *Id
Limit *uint64
Offset *uint64
}
func (*SwapQuery) ToWhereClause ¶
type SwapSerialized ¶
type SwapSerialized struct {
Id string
From string
To string
ChanIds string
State string
Error string
Status string
PrivateKey string
SwapTree string
Preimage string
RedeemScript string
Invoice string
PaymentHash string
Address string
ExpectedAmount uint64
TimeoutBlockHeight uint32
LockupTransactionId string
RefundTransactionId string
RefundAddress string
BlindingKey string
IsAuto bool
ServiceFee *int64
ServiceFeePercent lightz.Percentage
OnchainFee *uint64
WalletId *Id
TenantId Id
}
type Tenant ¶
Tenant represents a tenant in the multi-tenant system. Each tenant can have its own wallets, swaps, and autoswap configuration.
type Transaction ¶
type Transaction struct {
Database
}
func (*Transaction) Commit ¶
func (transaction *Transaction) Commit() error
func (*Transaction) Rollback ¶
func (transaction *Transaction) Rollback(cause error) error
func (*Transaction) SetSwapMnemonic ¶
func (tx *Transaction) SetSwapMnemonic(mnemonic string) error
type Wallet ¶
type Wallet struct {
*onchain.WalletCredentials
NodePubkey *string
LastIndex *uint32
}
type WalletPersister ¶
type WalletPersister struct {
// contains filtered or unexported fields
}
WalletPersister implements the liquid_wallet.Persister interface using the database
func NewWalletPersister ¶
func NewWalletPersister(db *Database) *WalletPersister
NewWalletPersister creates a new database persister
func (*WalletPersister) LoadLastIndex ¶
func (p *WalletPersister) LoadLastIndex(walletId uint64) (*uint32, error)
func (*WalletPersister) PersistLastIndex ¶
func (p *WalletPersister) PersistLastIndex(walletId uint64, index uint32) error