cmd

package
v0.0.0-...-7b8327f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 20, 2019 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Fetch = &cli.Command{
	Name:  "fetch",
	Usage: "fetch connects to a server and downloads requested data",
	Flags: []cli.Flag{basePath, ethClientURL},
	Action: func(c *cli.Context) error {

		log.Info("starting fetch")

		var args []interface{}
		a := c.Args().Slice()
		switch len(a) {
		case 0:
			log.Fatal("no method given")
		case 1:
			args = []interface{}{}
		case 2:
			err := json.Unmarshal([]byte(a[1]), &args)
			if err != nil {
				log.Fatalf("invalid params json: %s", err)
			}
		default:
			log.Fatal("invalid number of arguments")
		}

		method := a[0]

		rpc, err := client.New(c.String(ethClientURL.Name))
		if err != nil {
			log.Fatal(err)
		}

		req := types.NewJSONRPCRequest(method, args)

		request, err := json.MarshalIndent(req, "", "  ")
		if err != nil {
			log.Fatal(err)
		}

		response, err := rpc.Request(request)
		if err != nil {
			log.Fatal(err)
		}
		var out bytes.Buffer
		err = json.Indent(&out, response, "", "  ")
		if err != nil {
			log.Fatal(err)
		}
		response = out.Bytes()

		base := c.String(basePath.Name)
		folder := filepath.Join(base, req.Path())
		os.MkdirAll(folder, os.ModePerm)

		err = ioutil.WriteFile(filepath.Join(folder, "request.json"), request, 0644)
		if err != nil {
			log.Fatal(err)
		}
		err = ioutil.WriteFile(filepath.Join(folder, "response.json"), response, 0644)
		if err != nil {
			log.Fatal(err)
		}
		log.Infof("wrote request.json(%s), response.json(%s) to %s",
			bytefmt.ByteSize(uint64(len(request))),
			bytefmt.ByteSize(uint64(len(response))),
			folder,
		)

		return nil
	},
}

Fetch connects to a server and downloads requested data

View Source
var Serve = &cli.Command{
	Name:  "serve",
	Usage: "serve starts a mocked ethereum rpc server",
	Flags: []cli.Flag{basePath, httpPort},
	Action: func(c *cli.Context) error {
		log.SetLevel(log.DebugLevel)
		srv, err := server.New(c.Int("http-port"), "./testdata/")
		if err != nil {
			log.Fatal(err)
		}

		return srv.Serve()
	},
}

Serve starts a mockup ethereum rpc server

View Source
var Verbose = &cli.BoolFlag{
	Name:  "verbose, v",
	Value: false,
	Usage: "prints debug messages if set",
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL