database

package
v2.8.2 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2025 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultTenantName string = "admin"

Variables

View Source
var DefaultTenant = Tenant{Id: DefaultTenantId, Name: DefaultTenantName}
View Source
var PendingSwapQuery = SwapQuery{
	States: []boltzrpc.SwapState{boltzrpc.SwapState_PENDING},
}

Functions

func FormatTime

func FormatTime(t time.Time) int64

func ParsePrivateKey

func ParsePrivateKey(privateKeyHex string) (*btcec.PrivateKey, error)

func ParsePublicKey

func ParsePublicKey(publicKeyHex string) (*btcec.PublicKey, error)

Types

type AnySwap

type AnySwap struct {
	Id                  string
	Type                boltz.SwapType
	Pair                boltz.Pair
	State               boltzrpc.SwapState
	Error               string
	Status              boltz.SwapUpdateEvent
	Amount              uint64
	IsAuto              bool
	ServiceFee          *int64
	OnchainFee          *uint64
	CreatedAt           time.Time
	LockupTransactionid string
	ClaimTransactionid  string
	RefundTransactionid string
	TenantId            Id
}

type BudgetInterval

type BudgetInterval struct {
	StartDate time.Time
	EndDate   time.Time
	Name      string
	TenantId  Id
}

type ChainSwap

type ChainSwap struct {
	Id                string
	Pair              boltz.Pair
	State             boltzrpc.SwapState
	Error             string
	Status            boltz.SwapUpdateEvent
	AcceptZeroConf    bool
	Preimage          []byte
	IsAuto            bool
	ServiceFee        *int64
	ServiceFeePercent boltz.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            boltz.Currency
	PrivateKey          *btcec.PrivateKey
	TheirPublicKey      *btcec.PublicKey
	BlindingKey         *btcec.PrivateKey
	Tree                *boltz.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 ChainSwapDataSerialized struct {
	Id                  string
	Currency            string
	PrivateKey          string
	TheirPublicKey      string
	BlindingKey         string
	Tree                string
	Amount              uint64
	TimeoutBlockHeight  uint32
	LockupTransactionId string
	TransactionId       string
	WalletId            *Id
	Address             string
	LockupAddress       string
}

type ChainSwapSerialized

type ChainSwapSerialized struct {
	Id                string
	FromCurrency      string
	ToCurrency        string
	State             int
	Error             string
	Status            string
	AcceptZeroConf    bool
	Preimage          string
	IsAuto            bool
	ServiceFee        *int64
	ServiceFeePercent boltz.Percentage
	OnchainFee        *uint64
	CreatedAt         int64
	TenantId          Id
}

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 *Database) AddChainSwapOnchainFee(chainSwap *ChainSwap, onchainFee uint64) error

func (*Database) BeginTx

func (database *Database) BeginTx() (*Transaction, error)

func (*Database) Connect

func (database *Database) Connect() error

func (*Database) CreateBudget

func (database *Database) CreateBudget(period BudgetInterval) error

func (*Database) CreateChainSwap

func (database *Database) CreateChainSwap(swap ChainSwap) error

func (*Database) CreateDefaultTenant

func (d *Database) CreateDefaultTenant() error

func (*Database) CreateMacaroon

func (database *Database) CreateMacaroon(macaroon Macaroon) error

func (*Database) CreateReverseSwap

func (database *Database) CreateReverseSwap(reverseSwap ReverseSwap) error

func (*Database) CreateSwap

func (database *Database) CreateSwap(swap Swap) error

func (*Database) CreateTenant

func (d *Database) CreateTenant(tenant *Tenant) error

func (*Database) CreateWallet

func (d *Database) CreateWallet(wallet *Wallet) error

func (*Database) DeleteTenant

func (d *Database) DeleteTenant(id int64) error

func (*Database) DeleteWallet

func (d *Database) DeleteWallet(id Id) error

func (*Database) Exec

func (database *Database) Exec(query string, args ...any) (sql.Result, error)

func (*Database) GetAnySwap

func (database *Database) GetAnySwap(id string) (*AnySwap, error)

func (*Database) GetNodeWallet

func (d *Database) GetNodeWallet(nodePubkey string) (*Wallet, error)

func (*Database) GetSwapMnemonic added in v2.8.1

func (db *Database) GetSwapMnemonic() (*SwapMnemonic, error)

func (*Database) GetTenant

func (d *Database) GetTenant(id Id) (*Tenant, error)

func (*Database) GetTenantByName

func (d *Database) GetTenantByName(name string) (*Tenant, error)

func (*Database) GetWallet

func (d *Database) GetWallet(id Id) (*Wallet, error)

func (*Database) GetWalletByName

func (d *Database) GetWalletByName(name string, tenant Id) (*Wallet, error)

func (*Database) IncrementSwapMnemonicKey added in v2.8.1

func (db *Database) IncrementSwapMnemonicKey(mnemonic string) error

func (*Database) Query

func (database *Database) Query(query string, args ...any) (*sql.Rows, error)

func (*Database) QueryAllClaimableSwaps

func (database *Database) QueryAllClaimableSwaps(tenantId *Id, currency boltz.Currency) ([]*ReverseSwap, []*ChainSwap, error)

func (*Database) QueryAllRefundableSwaps

func (database *Database) QueryAllRefundableSwaps(tenantId *Id, currency boltz.Currency, currentHeight uint32) ([]*Swap, []*ChainSwap, error)

func (*Database) QueryAllSwaps

func (database *Database) QueryAllSwaps(args SwapQuery) ([]*AnySwap, error)

func (*Database) QueryAnySwap

func (database *Database) QueryAnySwap(id string) (*Swap, *ReverseSwap, *ChainSwap, error)

func (*Database) QueryChainSwap

func (database *Database) QueryChainSwap(id string) (swap *ChainSwap, err error)

func (*Database) QueryChainSwaps

func (database *Database) QueryChainSwaps(args SwapQuery) ([]*ChainSwap, error)

func (*Database) QueryClaimableChainSwaps

func (database *Database) QueryClaimableChainSwaps(tenantId *Id, currency boltz.Currency) ([]*ChainSwap, error)

func (*Database) QueryClaimableReverseSwaps

func (database *Database) QueryClaimableReverseSwaps(tenantId *Id, currency boltz.Currency) ([]*ReverseSwap, error)

func (*Database) QueryCurrentBudgetInterval

func (database *Database) QueryCurrentBudgetInterval(name string, tenantId Id) (*BudgetInterval, error)

func (*Database) QueryMacaroon

func (database *Database) QueryMacaroon(id []byte) (macaroon *Macaroon, err error)

func (*Database) QueryPendingReverseSwaps

func (database *Database) QueryPendingReverseSwaps() ([]*ReverseSwap, error)

func (*Database) QueryPendingSwaps

func (database *Database) QueryPendingSwaps() ([]*Swap, error)

func (*Database) QueryRefundableChainSwaps

func (database *Database) QueryRefundableChainSwaps(tenantId *Id, currency boltz.Currency, currentBlockHeight uint32) ([]*ChainSwap, error)

func (*Database) QueryRefundableSwaps

func (database *Database) QueryRefundableSwaps(tenantId *Id, currency boltz.Currency, currentBlockHeight uint32) ([]*Swap, error)

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) QueryRow

func (database *Database) QueryRow(query string, args ...any) *sql.Row

func (*Database) QueryStats

func (database *Database) QueryStats(args SwapQuery, swapTypes []boltz.SwapType) (*boltzrpc.SwapStats, error)

func (*Database) QuerySwap

func (database *Database) QuerySwap(id string) (swap *Swap, err error)

func (*Database) QuerySwapByInvoice

func (database *Database) QuerySwapByInvoice(invoice string) (swap *Swap, err error)

func (*Database) QuerySwapByPaymentHash added in v2.3.6

func (database *Database) QuerySwapByPaymentHash(paymentHash []byte) (swap *Swap, err error)

func (*Database) QuerySwaps

func (database *Database) QuerySwaps(args SwapQuery) ([]*Swap, error)

func (*Database) QuerySwapsByTransactions

func (database *Database) QuerySwapsByTransactions(args SwapQuery, transactionIds []string) ([]*AnySwap, error)

func (*Database) QueryTenants

func (d *Database) QueryTenants() ([]*Tenant, error)

func (*Database) QueryWalletCredentials

func (d *Database) QueryWalletCredentials() ([]*onchain.WalletCredentials, error)

func (*Database) RunTx

func (database *Database) RunTx(run func(tx *Transaction) error) 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 *Database) SetChainSwapServiceFee(chainSwap *ChainSwap, serviceFee int64) error

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 *Database) SetSwapExpectedAmount(swap *Swap, expectedAmount uint64) error

func (*Database) SetSwapInvoice

func (database *Database) SetSwapInvoice(swap *Swap, invoice string) error

func (*Database) SetSwapLockupTransactionId

func (database *Database) SetSwapLockupTransactionId(swap *Swap, lockupTransactionId string) error

func (*Database) SetSwapOnchainFee

func (database *Database) SetSwapOnchainFee(swap *Swap, onchainFee uint64) error

func (*Database) SetSwapPreimage added in v2.6.1

func (database *Database) SetSwapPreimage(swap *Swap, preimage []byte) error

func (*Database) SetSwapRefundAddress

func (database *Database) SetSwapRefundAddress(swap *Swap, refundAddress string) error

func (*Database) SetSwapRefundTransactionId

func (database *Database) SetSwapRefundTransactionId(swap *Swap, refundTransactionId string, fee uint64) error

func (*Database) SetSwapRefundWallet

func (database *Database) SetSwapRefundWallet(swap *Swap, walletId Id) error

func (*Database) SetSwapServiceFee

func (database *Database) SetSwapServiceFee(swap *Swap, serviceFee int64, onchainFee uint64) error

func (*Database) SetWalletSubaccount

func (d *Database) SetWalletSubaccount(id Id, subaccount uint64) error

func (*Database) UpdateChainSwapState

func (database *Database) UpdateChainSwapState(chainSwap *ChainSwap, state boltzrpc.SwapState, error string) error

func (*Database) UpdateChainSwapStatus

func (database *Database) UpdateChainSwapStatus(chainSwap *ChainSwap, status boltz.SwapUpdateEvent) error

func (*Database) UpdateReverseSwapState

func (database *Database) UpdateReverseSwapState(reverseSwap *ReverseSwap, state boltzrpc.SwapState, error string) error

func (*Database) UpdateReverseSwapStatus

func (database *Database) UpdateReverseSwapStatus(reverseSwap *ReverseSwap, status boltz.SwapUpdateEvent) error

func (*Database) UpdateSwapState

func (database *Database) UpdateSwapState(swap *Swap, state boltzrpc.SwapState, error string) error

func (*Database) UpdateSwapStatus

func (database *Database) UpdateSwapStatus(swap *Swap, status boltz.SwapUpdateEvent) error

func (*Database) UpdateWalletCredentials

func (d *Database) UpdateWalletCredentials(credentials *onchain.WalletCredentials) error

type Id

type Id = uint64
const DefaultTenantId Id = 1

type JsonScanner

type JsonScanner[T any] struct {
	Value    T
	Nullable bool
}

func (*JsonScanner[T]) Scan

func (j *JsonScanner[T]) Scan(src any) error

type Macaroon

type Macaroon struct {
	Id      []byte
	RootKey []byte
}

type PrivateKeyScanner

type PrivateKeyScanner struct {
	Value    *btcec.PrivateKey
	Nullable bool
}

func (*PrivateKeyScanner) Scan

func (s *PrivateKeyScanner) Scan(src any) (err error)

type PublicKeyScanner

type PublicKeyScanner struct {
	Value    *btcec.PublicKey
	Nullable bool
}

func (*PublicKeyScanner) Scan

func (s *PublicKeyScanner) Scan(src any) (err error)

type ReverseSwap

type ReverseSwap struct {
	Id                  string
	Pair                boltz.Pair
	ChanIds             []lightning.ChanId
	State               boltzrpc.SwapState
	Error               string
	CreatedAt           time.Time
	PaidAt              time.Time
	Status              boltz.SwapUpdateEvent
	AcceptZeroConf      bool
	PrivateKey          *btcec.PrivateKey
	RefundPubKey        *btcec.PublicKey
	SwapTree            *boltz.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   boltz.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   boltz.Percentage
	OnchainFee          *uint64
	ExternalPay         bool
	WalletId            *Id
	TenantId            Id
	RoutingFeeLimitPpm  *uint64
}

type Swap

type Swap struct {
	Id                  string
	Pair                boltz.Pair
	ChanIds             []lightning.ChanId
	State               boltzrpc.SwapState
	CreatedAt           time.Time
	Error               string
	Status              boltz.SwapUpdateEvent
	PrivateKey          *btcec.PrivateKey
	SwapTree            *boltz.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   boltz.Percentage
	OnchainFee          *uint64
	WalletId            *Id
	TenantId            Id
}

func (*Swap) BlindingPubKey

func (swap *Swap) BlindingPubKey() *btcec.PublicKey

func (*Swap) InitTree

func (swap *Swap) InitTree() error

func (*Swap) Serialize

func (swap *Swap) Serialize() SwapSerialized

type SwapMnemonic added in v2.8.1

type SwapMnemonic struct {
	Mnemonic     string
	LastKeyIndex uint32
}

type SwapQuery

type SwapQuery struct {
	From     *boltz.Currency
	To       *boltz.Currency
	States   []boltzrpc.SwapState
	Include  boltzrpc.IncludeSwaps
	Since    time.Time
	TenantId *Id
	Limit    *uint64
	Offset   *uint64
}

func (*SwapQuery) ToWhereClause

func (query *SwapQuery) ToWhereClause() (string, []any)

func (*SwapQuery) ToWhereClauseWithExisting

func (query *SwapQuery) ToWhereClauseWithExisting(conditions []string, values []any) (string, []any)

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   boltz.Percentage
	OnchainFee          *uint64
	WalletId            *Id
	TenantId            Id
}

type Tenant

type Tenant struct {
	Id   Id
	Name string
}

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 added in v2.8.1

func (tx *Transaction) SetSwapMnemonic(mnemonic string) error

type Wallet

type Wallet struct {
	*onchain.WalletCredentials
	NodePubkey *string
	LastIndex  *uint32
}

type WalletPersister added in v2.8.0

type WalletPersister struct {
	// contains filtered or unexported fields
}

WalletPersister implements the liquid_wallet.Persister interface using the database

func NewWalletPersister added in v2.8.0

func NewWalletPersister(db *Database) *WalletPersister

NewWalletPersister creates a new database persister

func (*WalletPersister) LoadLastIndex added in v2.8.0

func (p *WalletPersister) LoadLastIndex(walletId uint64) (*uint32, error)

func (*WalletPersister) PersistLastIndex added in v2.8.0

func (p *WalletPersister) PersistLastIndex(walletId uint64, index uint32) error

Jump to

Keyboard shortcuts

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