package main import ( "bytes" "encoding/hex" "encoding/json" "fmt" "github.com/urfave/cli/v2" "github.com/filecoin-project/lotus/chain/types" lcli "github.com/filecoin-project/lotus/cli" ) var blockCmd = &cli.Command{ Name: "block", Usage: "Output decoded block header in readeble form", ArgsUsage: "[block header hex]", Action: func(cctx *cli.Context) error { if cctx.NArg() != 1 { return lcli.IncorrectNumArgs(cctx) } b, err := hex.DecodeString(cctx.Args().First()) if err != nil { return err } var blk types.BlockHeader if err := blk.UnmarshalCBOR(bytes.NewReader(b)); err != nil { return err } jb, err := json.MarshalIndent(blk, "", " ") if err != nil { return err } fmt.Println(string(jb)) return nil }, }