Documentation ¶
Index ¶
- Variables
- func AccountCreateEx(datadir string, keydir string, password string) error
- func DefaultDataDir() string
- func DefaultKeystoreDir() string
- func FromECDSA(priv *ecdsa.PrivateKey) []byte
- func FromECDSAPub(pub *ecdsa.PublicKey) []byte
- func GetAccount() string
- func GetPriKey() string
- func GetPubKey() string
- func GetUUID() string
- func MakePasswordList(ctx *cli.Context) []string
- func StoreKey(dir, auth string, scryptN, scryptP int) (aes.UUID, error)
- type Account
- type NodeConfig
- type URL
- type UserPrompter
- type WordCompleter
Constants ¶
This section is empty.
Variables ¶
var DefaultConfig = NodeConfig{ DataDir: DefaultDataDir(), KeyStoreDir: DefaultKeystoreDir(), }
DefaultConfig is DefaultConfig
var (
//KeyStoreScheme is KeyStoreScheme
KeyStoreScheme = "keystore"
)
var PasswordFileFlag = cli.StringFlag{
Name: "password_filepath",
Usage: "Password path file to use for non-interactive password input",
Value: "",
}
PasswordFileFlag is PasswordFileFlag
var Stdin = newTerminalPrompter()
Stdin is Stdin
var (
//UserPwd is UserPwd
UserPwd = ""
)
Functions ¶
func AccountCreateEx ¶
AccountCreateEx is to AccountCreateEx
func FromECDSA ¶
func FromECDSA(priv *ecdsa.PrivateKey) []byte
FromECDSA exports a private key into a binary dump.
func MakePasswordList ¶
func MakePasswordList(ctx *cli.Context) []string
MakePasswordList is to MakePasswordList
Types ¶
type Account ¶
type Account struct { UUID aes.UUID `json:"address"` // Ethereum account address derived from the key URL URL `json:"url"` // Optional resource locator within a backend }
Account represents an Ethereum account located at a specific location defined by the optional URL field. Account struct
type NodeConfig ¶
type NodeConfig struct { // Name sets the instance name of the node. It must not contain the / character and is // used in the devp2p node identifier. The instance name of geth is "geth". If no // value is specified, the basename of the current executable is used. Name string `toml:"-"` // UserIdent, if set, is used as an additional component in the devp2p node identifier. UserIdent string `toml:",omitempty"` // Version should be set to the version number of the program. It is used // in the devp2p node identifier. Version string `toml:"-"` // DataDir is the file system folder the node should use for any data storage // requirements. The configured data directory will not be directly shared with // registered services, instead those can use utility methods to create/access // databases or flat files. This enables ephemeral nodes which can fully reside // in memory. DataDir string // KeyStoreDir is the file system folder that contains private keys. The directory can // be specified as a relative path, in which case it is resolved relative to the // current directory. // // If KeyStoreDir is empty, the default location is the "keystore" subdirectory of // DataDir. If DataDir is unspecified and KeyStoreDir is empty, an ephemeral directory // is created by New and destroyed when the node is stopped. KeyStoreDir string `toml:",omitempty"` // UseLightweightKDF lowers the memory and CPU requirements of the key store // scrypt KDF at the expense of security. UseLightweightKDF bool `toml:",omitempty"` // NoUSB disables hardware wallet monitoring and connectivity. NoUSB bool `toml:",omitempty"` // IPCPath is the requested location to place the IPC endpoint. If the path is // a simple file name, it is placed inside the data directory (or on the root // pipe path on Windows), whereas if it's a resolvable path name (absolute or // relative), then that specific path is enforced. An empty path disables IPC. IPCPath string `toml:",omitempty"` // HTTPHost is the host interface on which to start the HTTP RPC server. If this // field is empty, no HTTP API endpoint will be started. HTTPHost string `toml:",omitempty"` // HTTPPort is the TCP port number on which to start the HTTP RPC server. The // default zero value is/ valid and will pick a port number randomly (useful // for ephemeral nodes). HTTPPort int `toml:",omitempty"` // HTTPCors is the Cross-Origin Resource Sharing header to send to requesting // clients. Please be aware that CORS is a browser enforced security, it's fully // useless for custom HTTP clients. HTTPCors []string `toml:",omitempty"` // HTTPVirtualHosts is the list of virtual hostnames which are allowed on incoming requests. // This is by default {'localhost'}. Using this prevents attacks like // DNS rebinding, which bypasses SOP by simply masquerading as being within the same // origin. These attacks do not utilize CORS, since they are not cross-domain. // By explicitly checking the Host-header, the server will not allow requests // made against the server with a malicious host domain. // Requests using ip address directly are not affected HTTPVirtualHosts []string `toml:",omitempty"` // HTTPModules is a list of API modules to expose via the HTTP RPC interface. // If the module list is empty, all RPC API endpoints designated public will be // exposed. HTTPModules []string `toml:",omitempty"` // WSHost is the host interface on which to start the websocket RPC server. If // this field is empty, no websocket API endpoint will be started. WSHost string `toml:",omitempty"` // WSPort is the TCP port number on which to start the websocket RPC server. The // default zero value is/ valid and will pick a port number randomly (useful for // ephemeral nodes). WSPort int `toml:",omitempty"` // WSOrigins is the list of domain to accept websocket requests from. Please be // aware that the server can only act upon the HTTP request the client sends and // cannot verify the validity of the request header. WSOrigins []string `toml:",omitempty"` // WSModules is a list of API modules to expose via the websocket RPC interface. // If the module list is empty, all RPC API endpoints designated public will be // exposed. WSModules []string `toml:",omitempty"` // WSExposeAll exposes all API modules via the WebSocket RPC interface rather // than just the public ones. // // *WARNING* Only set this if the node is running in a trusted network, exposing // private APIs to untrusted users is a major security risk. WSExposeAll bool `toml:",omitempty"` // Logger is a custom logger to use with the p2p.Server. Logger log.Logger `toml:",omitempty"` }
NodeConfig struct
func (*NodeConfig) AccountConfig ¶
func (c *NodeConfig) AccountConfig() (int, int, string)
AccountConfig is AccountConfig
type URL ¶
type URL struct { Scheme string // Protocol scheme to identify a capable account backend Path string // Path for the backend to identify a unique entity }
URL struct
type UserPrompter ¶
type UserPrompter interface { // PromptInput displays the given prompt to the user and requests some textual // data to be entered, returning the input of the user. PromptInput(prompt string) (string, error) // PromptPassword displays the given prompt to the user and requests some textual // data to be entered, but one which must not be echoed out into the terminal. // The method returns the input provided by the user. PromptPassword(prompt string) (string, error) // PromptConfirm displays the given prompt to the user and requests a boolean // choice to be made, returning that choice. PromptConfirm(prompt string) (bool, error) // SetHistory sets the the input scrollback history that the prompter will allow // the user to scroll back to. SetHistory(history []string) // AppendHistory appends an entry to the scrollback history. It should be called // if and only if the prompt to append was a valid command. AppendHistory(command string) // ClearHistory clears the entire history ClearHistory() // SetWordCompleter sets the completion function that the prompter will call to // fetch completion candidates when the user presses tab. SetWordCompleter(completer WordCompleter) }
UserPrompter defines the methods needed by the console to promt the user for various types of inputs.
type WordCompleter ¶
WordCompleter takes the currently edited line with the cursor position and returns the completion candidates for the partial word to be completed. If the line is "Hello, wo!!!" and the cursor is before the first '!', ("Hello, wo!!!", 9) is passed to the completer which may returns ("Hello, ", {"world", "Word"}, "!!!") to have "Hello, world!!!".