lnd.xprv/lnwallet/btcwallet/config.go
Olaoluwa Osuntokun 6a1d8d0682
lnwallet: add a BtcWallet implementation of WalletController
This commit adds the first concrete implementation of the
WalletController interface: BtcWallet. This implementation is simply a
series of wrapper functions are the base btcwallet struct.

Additionally, for ease of use both the BlockChain IO and Signer
interface are also implemented by BtcWallet. Finally a new WalletDriver
implementation has been implemented, and will be register by the init()
method within this new package.
2016-09-08 12:25:32 -07:00

95 lines
2.8 KiB
Go

package btcwallet
import (
"path/filepath"
"github.com/roasbeef/btcd/chaincfg"
"github.com/roasbeef/btcd/wire"
"github.com/roasbeef/btcutil"
_ "github.com/roasbeef/btcwallet/walletdb/bdb"
)
var (
lnwalletHomeDir = btcutil.AppDataDir("lnwallet", false)
defaultDataDir = lnwalletHomeDir
defaultLogFilename = "lnwallet.log"
defaultLogDirname = "logs"
defaultLogDir = filepath.Join(lnwalletHomeDir, defaultLogDirname)
btcdHomeDir = btcutil.AppDataDir("btcd", false)
btcdHomedirCAFile = filepath.Join(btcdHomeDir, "rpc.cert")
defaultRPCKeyFile = filepath.Join(lnwalletHomeDir, "rpc.key")
defaultRPCCertFile = filepath.Join(lnwalletHomeDir, "rpc.cert")
// defaultPubPassphrase is the default public wallet passphrase which is
// used when the user indicates they do not want additional protection
// provided by having all public data in the wallet encrypted by a
// passphrase only known to them.
defaultPubPassphrase = []byte("public")
walletDbName = "lnwallet.db"
)
// Config is a struct which houses configuration paramters which modify the
// instance of BtcWallet generated by the New() function.
type Config struct {
// DataDir is the name of the directory where the wallet's persistent
// state should be sotred.
DataDir string
// LogDir is the name of the directory which should be used to store
// 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 []byte
PublicPass []byte
HdSeed []byte
NetParams *chaincfg.Params
}
// networkDir returns the directory name of a network directory to hold wallet
// files.
func networkDir(dataDir string, chainParams *chaincfg.Params) string {
netname := chainParams.Name
// For now, we must always name the testnet data directory as "testnet"
// and not "testnet3" or any other version, as the chaincfg testnet3
// paramaters will likely be switched to being named "testnet3" in the
// future. This is done to future proof that change, and an upgrade
// plan to move the testnet3 data directory can be worked out later.
if chainParams.Net == wire.TestNet3 {
netname = "testnet"
}
return filepath.Join(dataDir, netname)
}