// NewRemoteRPCClient returns a RPC client which connects to a running gexp instance. // Depending on the given context this can either be a IPC or a HTTP client. func NewRemoteRPCClient(ctx *cli.Context) (rpc.Client, error) { if ctx.Args().Present() { endpoint := ctx.Args().First() return NewRemoteRPCClientFromString(endpoint) } // use IPC by default return rpc.NewIPCClient(node.DefaultIPCEndpoint()) }
// MakeSystemNode configures a protocol stack for the RPC tests based on a given // keystore path and initial pre-state. func MakeSystemNode(keydir string, privkey string, test *tests.BlockTest) (*node.Node, error) { // Create a networkless protocol stack stack, err := node.New(&node.Config{ IPCPath: node.DefaultIPCEndpoint(), HTTPHost: common.DefaultHTTPHost, HTTPPort: common.DefaultHTTPPort, HTTPModules: []string{"admin", "db", "exp", "debug", "miner", "net", "shh", "txpool", "personal", "web3"}, WSHost: common.DefaultWSHost, WSPort: common.DefaultWSPort, WSModules: []string{"admin", "db", "exp", "debug", "miner", "net", "shh", "txpool", "personal", "web3"}, NoDiscovery: true, }) if err != nil { return nil, err } // Create the keystore and inject an unlocked account if requested accman := accounts.NewPlaintextManager(keydir) if len(privkey) > 0 { key, err := crypto.HexToECDSA(privkey) if err != nil { return nil, err } a, err := accman.ImportECDSA(key, "") if err != nil { return nil, err } if err := accman.Unlock(a, ""); err != nil { return nil, err } } // Initialize and register the Expanse protocol db, _ := ethdb.NewMemDatabase() if _, err := test.InsertPreState(db); err != nil { return nil, err } ethConf := &exp.Config{ TestGenesisState: db, TestGenesisBlock: test.Genesis, ChainConfig: &core.ChainConfig{HomesteadBlock: params.MainNetHomesteadBlock}, AccountManager: accman, } if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) { return exp.New(ctx, ethConf) }); err != nil { return nil, err } // Initialize and register the Whisper protocol if err := stack.Register(func(*node.ServiceContext) (node.Service, error) { return whisper.New(), nil }); err != nil { return nil, err } return stack, nil }
"strings" "time" "sort" "github.com/expanse-project/go-expanse/cmd/utils" "github.com/expanse-project/go-expanse/node" "github.com/expanse-project/go-expanse/rpc" "github.com/gizak/termui" "gopkg.in/urfave/cli.v1" ) var ( monitorCommandAttachFlag = cli.StringFlag{ Name: "attach", Value: "ipc:" + node.DefaultIPCEndpoint(), Usage: "API endpoint to attach to", } monitorCommandRowsFlag = cli.IntFlag{ Name: "rows", Value: 5, Usage: "Maximum rows in the chart grid", } monitorCommandRefreshFlag = cli.IntFlag{ Name: "refresh", Value: 3, Usage: "Refresh interval in seconds", } monitorCommand = cli.Command{ Action: monitor, Name: "monitor",