cmd

package
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2024 License: MIT, Apache-2.0, MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RunCmd = &cli.Command{
	Name:  "run",
	Usage: "Start a venus wallet process",
	Flags: []cli.Flag{

		&cli.StringFlag{Name: cmdPwd, Value: "", Aliases: []string{"pwd"}},
		&cli.StringSliceFlag{Name: cmdGatewayAPI},
		&cli.StringFlag{Name: cmdGatewayToken, Value: ""},
		&cli.StringSliceFlag{Name: cmdSupportAccounts},
	},
	Action: func(cctx *cli.Context) error {
		ctx, _ := tag.New(context.Background(), tag.Insert(middleware.Version, version.BuildVersion))
		dir, err := homedir.Expand(cctx.String(cmdRepo))
		if err != nil {
			log.Warnw("could not expand repo location", "error", err)
		} else {
			log.Infof("wallet repo: %s", dir)
		}
		op := &filemgr.OverrideParams{
			GatewayAPI:      cctx.StringSlice(cmdGatewayAPI),
			GatewayToken:    cctx.String(cmdGatewayToken),
			SupportAccounts: cctx.StringSlice(cmdSupportAccounts),
		}
		r, err := filemgr.NewFS(cctx.String(cmdRepo), op)
		if err != nil {
			return fmt.Errorf("opening fs repo: %w", err)
		}
		secret, err := r.APISecret()
		if err != nil {
			return fmt.Errorf("read secret failed: %w", err)
		}
		var fullAPI api.IFullAPI

		stop, err := build.New(ctx,
			build.FullAPIOpt(&fullAPI),
			build.WalletOpt(r, cctx.String(cmdPwd)),
			build.CommonOpt(secret),
			build.ApplyIf(func(s *build.Settings) bool { return cctx.IsSet(cmdNetType) },
				build.Override(new(types.NetworkName), types.NetworkName(cctx.String(cmdNetType)))),
		)
		if err != nil {
			return fmt.Errorf("initializing node: %w", err)
		}

		if err = view.Register(
			middleware.DefaultViews...,
		); err != nil {
			log.Fatalf("Cannot register the view: %v", err)
		}

		stats.Record(ctx, middleware.VenusInfo.M(1))

		endpoint, err := r.APIEndpoint()
		if err != nil {
			return fmt.Errorf("getting api endpoint: %w", err)
		}

		return ServeRPC(fullAPI, stop, endpoint, nil)
	},
}

DaemonCmd is the `go-lotus daemon` command

Functions

func CorsMiddleWare

func CorsMiddleWare(next http.Handler) http.Handler

httpparse cors setting

func ServeRPC

func ServeRPC(a api.IFullAPI, stop build.StopFunc, addr string, sigChan chan os.Signal) error

ServeRPC Start the interface service and bind the address

Types

type Handler

type Handler struct {
	Verify func(ctx context.Context, token string) ([]auth.Permission, error)
	Next   http.HandlerFunc
}

JWT verify

func (*Handler) ServeHTTP

func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)

JWT verify

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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