Skip to content

Commit

Permalink
Merge pull request #5079 from zgfzgf/feat-shed-commp
Browse files Browse the repository at this point in the history
add commp-to-cid base64 decode
  • Loading branch information
magik6k committed Dec 1, 2020
2 parents 614f45d + ec08e27 commit 4b1d6bf
Showing 1 changed file with 32 additions and 4 deletions.
36 changes: 32 additions & 4 deletions cmd/lotus-shed/commp.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,55 @@
package main

import (
"encoding/base64"
"encoding/hex"
"fmt"

commcid "github.com/filecoin-project/go-fil-commcid"
"github.com/urfave/cli/v2"
"golang.org/x/xerrors"
)

var commpToCidCmd = &cli.Command{
Name: "commp-to-cid",
Usage: "Convert commP to Cid",
Description: "Convert a raw commP to a piece-Cid",
ArgsUsage: "[data]",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "encoding",
Value: "base64",
Usage: "specify input encoding to parse",
},
},
Action: func(cctx *cli.Context) error {
if !cctx.Args().Present() {
return fmt.Errorf("must specify commP to convert")
}

dec, err := hex.DecodeString(cctx.Args().First())
if err != nil {
return fmt.Errorf("failed to decode input as hex string: %w", err)
var dec []byte
switch cctx.String("encoding") {
case "base64":
data, err := base64.StdEncoding.DecodeString(cctx.Args().First())
if err != nil {
return xerrors.Errorf("decoding base64 value: %w", err)
}
dec = data
case "hex":
data, err := hex.DecodeString(cctx.Args().First())
if err != nil {
return xerrors.Errorf("decoding hex value: %w", err)
}
dec = data
default:
return xerrors.Errorf("unrecognized encoding: %s", cctx.String("encoding"))
}

fmt.Println(commcid.PieceCommitmentV1ToCID(dec))
cid, err := commcid.PieceCommitmentV1ToCID(dec)
if err != nil {
return err
}
fmt.Println(cid)
return nil
},
}

0 comments on commit 4b1d6bf

Please sign in to comment.