// cleanAndExpandPath expands environement variables and leading ~ in the // passed path, cleans the result, and returns it. func cleanAndExpandPath(path string) string { // Expand initial ~ to OS specific home directory. if strings.HasPrefix(path, "~") { appHomeDir := btcutil.AppDataDir("gencerts", false) homeDir := filepath.Dir(appHomeDir) path = strings.Replace(path, "~", homeDir, 1) } // NOTE: The os.ExpandEnv doesn't work with Windows-style %VARIABLE%, // but they variables can still be expanded via POSIX-style $VARIABLE. return filepath.Clean(os.ExpandEnv(path)) }
import ( "bufio" "fmt" "os" "path/filepath" "github.com/btcsuite/go-flags" "github.com/roasbeef/btcutil" "github.com/roasbeef/btcwallet/walletdb" _ "github.com/roasbeef/btcwallet/walletdb/bdb" ) const defaultNet = "mainnet" var datadir = btcutil.AppDataDir("btcwallet", false) // Flags. var opts = struct { Force bool `short:"f" description:"Force removal without prompt"` DbPath string `long:"db" description:"Path to wallet database"` }{ Force: false, DbPath: filepath.Join(datadir, defaultNet, "wallet.db"), } func init() { _, err := flags.Parse(&opts) if err != nil { os.Exit(1) }
"github.com/roasbeef/btcd/chaincfg" "github.com/roasbeef/btcd/database" _ "github.com/roasbeef/btcd/database/ffldb" "github.com/roasbeef/btcd/wire" "github.com/roasbeef/btcutil" ) const ( minCandidates = 1 maxCandidates = 20 defaultNumCandidates = 5 defaultDbType = "ffldb" ) var ( btcdHomeDir = btcutil.AppDataDir("btcd", false) defaultDataDir = filepath.Join(btcdHomeDir, "data") knownDbTypes = database.SupportedDrivers() activeNetParams = &chaincfg.MainNetParams ) // config defines the configuration options for findcheckpoint. // // See loadConfig for details on the configuration load process. type config struct { DataDir string `short:"b" long:"datadir" description:"Location of the btcd data directory"` DbType string `long:"dbtype" description:"Database backend to use for the Block Chain"` TestNet3 bool `long:"testnet" description:"Use the test network"` RegressionTest bool `long:"regtest" description:"Use the regression test network"` SimNet bool `long:"simnet" description:"Use the simulation test network"` NumCandidates int `short:"n" long:"numcandidates" description:"Max num of checkpoint candidates to show {1-20}"`
"strings" flags "github.com/btcsuite/go-flags" "github.com/roasbeef/btcd/btcjson" "github.com/roasbeef/btcutil" ) const ( // unusableFlags are the command usage flags which this utility are not // able to use. In particular it doesn't support websockets and // consequently notifications. unusableFlags = btcjson.UFWebsocketOnly | btcjson.UFNotification ) var ( btcdHomeDir = btcutil.AppDataDir("btcd", false) btcctlHomeDir = btcutil.AppDataDir("btcctl", false) btcwalletHomeDir = btcutil.AppDataDir("btcwallet", false) defaultConfigFile = filepath.Join(btcctlHomeDir, "btcctl.conf") defaultRPCServer = "localhost" defaultRPCCertFile = filepath.Join(btcdHomeDir, "rpc.cert") defaultWalletCertFile = filepath.Join(btcwalletHomeDir, "rpc.cert") ) // listCommands categorizes and lists all of the usable commands along with // their one-line usage. func listCommands() { const ( categoryChain uint8 = iota categoryWallet numCategories
"github.com/btcsuite/go-flags" "github.com/btcsuite/golangcrypto/ssh/terminal" "github.com/roasbeef/btcd/btcjson" "github.com/roasbeef/btcd/txscript" "github.com/roasbeef/btcd/wire" "github.com/roasbeef/btcrpcclient" "github.com/roasbeef/btcutil" "github.com/roasbeef/btcwallet/internal/cfgutil" "github.com/roasbeef/btcwallet/netparams" "github.com/roasbeef/btcwallet/wallet/txauthor" "github.com/roasbeef/btcwallet/wallet/txrules" ) var ( walletDataDirectory = btcutil.AppDataDir("btcwallet", false) newlineBytes = []byte{'\n'} ) func fatalf(format string, args ...interface{}) { fmt.Fprintf(os.Stderr, format, args...) os.Stderr.Write(newlineBytes) os.Exit(1) } func errContext(err error, context string) error { return fmt.Errorf("%s: %v", context, err) } // Flags. var opts = struct {
) const ( defaultCAFilename = "btcd.cert" defaultConfigFilename = "btcwallet.conf" defaultLogLevel = "info" defaultLogDirname = "logs" defaultLogFilename = "btcwallet.log" defaultRPCMaxClients = 10 defaultRPCMaxWebsockets = 25 walletDbName = "wallet.db" ) var ( btcdDefaultCAFile = filepath.Join(btcutil.AppDataDir("btcd", false), "rpc.cert") defaultAppDataDir = btcutil.AppDataDir("btcwallet", false) defaultConfigFile = filepath.Join(defaultAppDataDir, defaultConfigFilename) defaultRPCKeyFile = filepath.Join(defaultAppDataDir, "rpc.key") defaultRPCCertFile = filepath.Join(defaultAppDataDir, "rpc.cert") defaultLogDir = filepath.Join(defaultAppDataDir, defaultLogDirname) ) type config struct { // General application behavior ConfigFile string `short:"C" long:"configfile" description:"Path to configuration file"` ShowVersion bool `short:"V" long:"version" description:"Display version information and exit"` Create bool `long:"create" description:"Create the wallet if it does not exist"` CreateTemp bool `long:"createtemp" description:"Create a temporary simulation wallet (pass=password) in the data directory indicated; must call with --datadir"` AppDataDir string `short:"A" long:"appdata" description:"Application data directory to save wallet database and logs"` TestNet3 bool `long:"testnet" description:"Use the test Bitcoin network (version 3) (default mainnet)"`
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"