95 lines
2.8 KiB
Go
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)
|
||
|
}
|