lnwallet/btcwallet: update btcwallet config to be aware of new chain interface
This commit is contained in:
parent
392a8180dd
commit
aca729abfe
@ -39,8 +39,7 @@ type BtcWallet struct {
|
||||
// wallet is an active instance of btcwallet.
|
||||
wallet *base.Wallet
|
||||
|
||||
// rpc is an an active RPC connection to btcd full-node.
|
||||
rpc *chain.RPCClient
|
||||
chain chain.Interface
|
||||
|
||||
db walletdb.DB
|
||||
|
||||
@ -94,14 +93,6 @@ func New(cfg Config) (*BtcWallet, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Create a special websockets rpc client for btcd which will be used
|
||||
// by the wallet for notifications, calls, etc.
|
||||
rpcc, err := chain.NewRPCClient(cfg.NetParams, cfg.RPCHost,
|
||||
cfg.RPCUser, cfg.RPCPass, cfg.CACert, false, 20)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Create a bucket within the wallet's database dedicated to storing
|
||||
// our LN specific data.
|
||||
db := wallet.Database()
|
||||
@ -121,7 +112,7 @@ func New(cfg Config) (*BtcWallet, error) {
|
||||
cfg: &cfg,
|
||||
wallet: wallet,
|
||||
db: db,
|
||||
rpc: rpcc,
|
||||
chain: cfg.ChainSource,
|
||||
netParams: cfg.NetParams,
|
||||
utxoCache: make(map[wire.OutPoint]*wire.TxOut),
|
||||
}, nil
|
||||
@ -134,7 +125,7 @@ func New(cfg Config) (*BtcWallet, error) {
|
||||
func (b *BtcWallet) Start() error {
|
||||
// Establish an RPC connection in additino to starting the goroutines
|
||||
// in the underlying wallet.
|
||||
if err := b.rpc.Start(); err != nil {
|
||||
if err := b.chain.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -143,7 +134,7 @@ func (b *BtcWallet) Start() error {
|
||||
|
||||
// Pass the rpc client into the wallet so it can sync up to the
|
||||
// current main chain.
|
||||
b.wallet.SynchronizeRPC(b.rpc)
|
||||
b.wallet.SynchronizeRPC(b.chain)
|
||||
|
||||
if err := b.wallet.Unlock(b.cfg.PrivatePass, nil); err != nil {
|
||||
return err
|
||||
@ -161,7 +152,7 @@ func (b *BtcWallet) Stop() error {
|
||||
|
||||
b.wallet.WaitForShutdown()
|
||||
|
||||
b.rpc.Shutdown()
|
||||
b.chain.Stop()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import (
|
||||
// init function of the package, it registers itself. The import is used
|
||||
// to activate the side effects w/o actually binding the package name to
|
||||
// a file-level variable.
|
||||
"github.com/roasbeef/btcwallet/chain"
|
||||
_ "github.com/roasbeef/btcwallet/walletdb/bdb"
|
||||
)
|
||||
|
||||
@ -47,37 +48,25 @@ type Config struct {
|
||||
// generated log files.
|
||||
LogDir string
|
||||
|
||||
// DebugLevel is a string representing the level of verbosity the
|
||||
// logger should use.
|
||||
DebugLevel string
|
||||
|
||||
// RPCHost is the host and port to use to reach the rpc sever.
|
||||
RPCHost string // localhost:18334
|
||||
|
||||
// RPCUser is the username which should be used to authentiate with the
|
||||
// rpc server.
|
||||
RPCUser string
|
||||
|
||||
// RPCPass is the password which should be used to authenticate the
|
||||
// connection with the RPC server.
|
||||
RPCPass string
|
||||
|
||||
// RPCNoTLS denotes if a TLS connection should be attempted when
|
||||
// connecting to the RPC server.
|
||||
RPCNoTLS bool
|
||||
|
||||
// RPCCert directory where the TLS certificate of the RPC sever is
|
||||
// stored. If the RPCNoTLS is false, then this value will be unused.
|
||||
RPCCert string
|
||||
RPCKey string
|
||||
|
||||
// CACert is the raw RPC cert for btcd.
|
||||
CACert []byte
|
||||
|
||||
// PrivatePass is the private password to the underlying btcwallet
|
||||
// instance. Without this, the wallet cannot be decrypted and operated.
|
||||
PrivatePass []byte
|
||||
|
||||
// PublicPass is the optional public password to btcwallet. This is
|
||||
// optionally used to encrypt public material such as public keys and
|
||||
// scripts.
|
||||
PublicPass []byte
|
||||
|
||||
// HdSeed is an optional seed to feed into the wallet. If this is
|
||||
// unspecified, a new seed will be generated.
|
||||
HdSeed []byte
|
||||
|
||||
// ChainSource is the primary chain interface. This is used to operate
|
||||
// the wallet and do things such as rescanning, sending transactions,
|
||||
// notifications for received funds, etc.
|
||||
ChainSource chain.Interface
|
||||
|
||||
// NetParams is the net parameters for the target chain.
|
||||
NetParams *chaincfg.Params
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user