Documentation
¶
Index ¶
- Constants
- func UseLogger(logger btclog.Logger)
- type Manager
- func (m *Manager) GetStaticAddress(ctx context.Context) (*script.StaticAddress, error)
- func (m *Manager) GetStaticAddressParameters(ctx context.Context) (*Parameters, error)
- func (m *Manager) GetTaprootAddress(clientPubkey, serverPubkey *btcec.PublicKey, expiry int64) (*btcutil.AddressTaproot, error)
- func (m *Manager) ListUnspent(ctx context.Context, minConfs, maxConfs int32) ([]*lnwallet.Utxo, error)
- func (m *Manager) ListUnspentRaw(ctx context.Context, minConfs, maxConfs int32) (*btcutil.AddressTaproot, []*lnwallet.Utxo, error)
- func (m *Manager) NewAddress(ctx context.Context) (*btcutil.AddressTaproot, int64, error)
- func (m *Manager) Run(ctx context.Context, initChan chan struct{}) error
- type ManagerConfig
- type Parameters
- type SqlStore
- type Store
Constants ¶
const Subsystem = "SADDR"
Subsystem defines the sub system name of this package.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Manager ¶
Manager manages the address state machines.
func NewManager ¶
func NewManager(cfg *ManagerConfig, currentHeight int32) *Manager
NewManager creates a new address manager.
func (*Manager) GetStaticAddress ¶
GetStaticAddress returns a taproot address for the given client and server public keys and expiry.
func (*Manager) GetStaticAddressParameters ¶
func (m *Manager) GetStaticAddressParameters(ctx context.Context) (*Parameters, error)
GetStaticAddressParameters returns the parameters of the static address.
func (*Manager) GetTaprootAddress ¶
func (m *Manager) GetTaprootAddress(clientPubkey, serverPubkey *btcec.PublicKey, expiry int64) (*btcutil.AddressTaproot, error)
GetTaprootAddress returns a taproot address for the given client and server public keys and expiry.
func (*Manager) ListUnspent ¶
func (m *Manager) ListUnspent(ctx context.Context, minConfs, maxConfs int32) ([]*lnwallet.Utxo, error)
ListUnspent returns a list of utxos at the static address.
func (*Manager) ListUnspentRaw ¶
func (m *Manager) ListUnspentRaw(ctx context.Context, minConfs, maxConfs int32) (*btcutil.AddressTaproot, []*lnwallet.Utxo, error)
ListUnspentRaw returns a list of utxos at the static address.
func (*Manager) NewAddress ¶
NewAddress creates a new static address with the server or returns an existing one.
type ManagerConfig ¶
type ManagerConfig struct { // AddressClient is the client that communicates with the loop server // to manage static addresses. AddressClient staticaddressrpc.StaticAddressServerClient // FetchL402 is the function used to fetch the l402 token. FetchL402 func(context.Context) error // Store is the database store that is used to store static address // related records. Store Store // WalletKit is the wallet client that is used to derive new keys from // lnd's wallet. WalletKit lndclient.WalletKitClient // ChainParams is the chain configuration(mainnet, testnet...) this // manager uses. ChainParams *chaincfg.Params // ChainNotifier is the chain notifier that is used to listen for new // blocks. ChainNotifier lndclient.ChainNotifierClient }
ManagerConfig holds the configuration for the address manager.
type Parameters ¶
type Parameters struct { // ClientPubkey is the client's pubkey for the static address. It is // used for the 2-of-2 funding output as well as for the client's // timeout path. ClientPubkey *btcec.PublicKey // ClientPubkey is the client's pubkey for the static address. It is // used for the 2-of-2 funding output. ServerPubkey *btcec.PublicKey // Expiry is the CSV timout value at which the client can claim the // static address's timout path. Expiry uint32 // PkScript is the unique static address's output script. PkScript []byte // KeyLocator is the locator of the client's key. KeyLocator keychain.KeyLocator // ProtocolVersion is the protocol version of the static address. ProtocolVersion version.AddressProtocolVersion // InitiationHeight is the height at which the address was initiated. InitiationHeight int32 }
Parameters holds all the necessary information for the 2-of-2 multisig address.
type SqlStore ¶
type SqlStore struct {
// contains filtered or unexported fields
}
SqlStore is the backing store for static addresses.
func NewSqlStore ¶
NewSqlStore constructs a new SQLStore from a BaseDB. The BaseDB is agnostic to the underlying driver which can be postgres or sqlite.
func (*SqlStore) CreateStaticAddress ¶
func (s *SqlStore) CreateStaticAddress(ctx context.Context, addrParams *Parameters) error
CreateStaticAddress creates a static address record in the database.
func (*SqlStore) GetAllStaticAddresses ¶
func (s *SqlStore) GetAllStaticAddresses(ctx context.Context) ([]*Parameters, error)
GetAllStaticAddresses returns all address known to the server.
func (*SqlStore) GetStaticAddress ¶
GetStaticAddress retrieves static address parameters for a given pkScript.
type Store ¶
type Store interface { // CreateStaticAddress inserts a new static address with its parameters // into the store. CreateStaticAddress(ctx context.Context, addrParams *Parameters) error // GetStaticAddress fetches static address parameters for a given // address ID. GetStaticAddress(ctx context.Context, pkScript []byte) (*Parameters, error) // GetAllStaticAddresses retrieves all static addresses from the store. GetAllStaticAddresses(ctx context.Context) ([]*Parameters, error) }
Store is the database interface that is used to store and retrieve static addresses.