lnd/lntest/neutrino.go

67 lines
1.9 KiB
Go
Raw Normal View History

//go:build neutrino
2019-05-24 14:17:49 +02:00
// +build neutrino
package lntest
import (
"fmt"
"github.com/btcsuite/btcd/chaincfg"
)
2019-05-24 14:17:49 +02:00
// NeutrinoBackendConfig is an implementation of the BackendConfig interface
// backed by a neutrino node.
type NeutrinoBackendConfig struct {
minerAddr string
}
// A compile time assertion to ensure NeutrinoBackendConfig meets the
// BackendConfig interface.
var _ BackendConfig = (*NeutrinoBackendConfig)(nil)
2019-05-24 14:17:49 +02:00
// GenArgs returns the arguments needed to be passed to LND at startup for
// using this node as a chain backend.
func (b NeutrinoBackendConfig) GenArgs() []string {
var args []string
args = append(args, "--bitcoin.node=neutrino")
args = append(args, "--neutrino.connect="+b.minerAddr)
// We enable validating channels so that we can obtain the outpoint for
// channels within the graph and make certain assertions based on them.
args = append(args, "--neutrino.validatechannels")
args = append(args, "--neutrino.broadcasttimeout=1s")
2019-05-24 14:17:49 +02:00
return args
}
// ConnectMiner is called to establish a connection to the test miner.
func (b NeutrinoBackendConfig) ConnectMiner() error {
return nil
2019-05-24 14:17:49 +02:00
}
// DisconnectMiner is called to disconnect the miner.
func (b NeutrinoBackendConfig) DisconnectMiner() error {
return fmt.Errorf("unimplemented")
}
// Credentials returns the rpc username, password and host for the backend.
// For neutrino, we return an error because there is no rpc client available.
func (b NeutrinoBackendConfig) Credentials() (string, string, string, error) {
return "", "", "", fmt.Errorf("unimplemented")
}
2019-05-24 14:17:49 +02:00
// Name returns the name of the backend type.
func (b NeutrinoBackendConfig) Name() string {
2021-02-20 02:42:20 +01:00
return NeutrinoBackendName
2019-05-24 14:17:49 +02:00
}
2019-05-24 14:17:49 +02:00
// NewBackend starts and returns a NeutrinoBackendConfig for the node.
func NewBackend(miner string, _ *chaincfg.Params) (
*NeutrinoBackendConfig, func() error, error) {
2019-05-24 14:17:49 +02:00
bd := &NeutrinoBackendConfig{
minerAddr: miner,
}
cleanUp := func() error { return nil }
2019-05-24 14:17:49 +02:00
return bd, cleanUp, nil
}