include some other changes

This commit is contained in:
whyrusleeping 2020-09-10 17:32:30 -07:00
parent 0e3dd3cb3b
commit 0efe5ee7d5

View File

@ -27,6 +27,7 @@ import (
"github.com/filecoin-project/go-address" "github.com/filecoin-project/go-address"
"github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/abi"
"github.com/filecoin-project/go-state-types/big"
"github.com/filecoin-project/go-state-types/exitcode" "github.com/filecoin-project/go-state-types/exitcode"
"github.com/filecoin-project/specs-actors/actors/builtin" "github.com/filecoin-project/specs-actors/actors/builtin"
"github.com/filecoin-project/specs-actors/actors/builtin/exported" "github.com/filecoin-project/specs-actors/actors/builtin/exported"
@ -122,7 +123,7 @@ var stateMinerInfo = &cli.Command{
}, },
} }
func parseTipSetString(ts string) ([]cid.Cid, error) { func ParseTipSetString(ts string) ([]cid.Cid, error) {
strs := strings.Split(ts, ",") strs := strings.Split(ts, ",")
var cids []cid.Cid var cids []cid.Cid
@ -160,7 +161,7 @@ func ParseTipSetRef(ctx context.Context, api api.FullNode, tss string) (*types.T
return api.ChainGetTipSetByHeight(ctx, abi.ChainEpoch(h), types.EmptyTSK) return api.ChainGetTipSetByHeight(ctx, abi.ChainEpoch(h), types.EmptyTSK)
} }
cids, err := parseTipSetString(tss) cids, err := ParseTipSetString(tss)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -1384,7 +1385,7 @@ var stateCallCmd = &cli.Command{
} }
if ret.MsgRct.ExitCode != 0 { if ret.MsgRct.ExitCode != 0 {
return fmt.Errorf("invocation failed (exit: %d): %s", ret.MsgRct.ExitCode, ret.Error) return fmt.Errorf("invocation failed (exit: %d, gasUsed: %d): %s", ret.MsgRct.ExitCode, ret.MsgRct.GasUsed, ret.Error)
} }
s, err := formatOutput(cctx.String("ret"), ret.MsgRct.Return) s, err := formatOutput(cctx.String("ret"), ret.MsgRct.Return)
@ -1392,6 +1393,7 @@ var stateCallCmd = &cli.Command{
return fmt.Errorf("failed to format output: %s", err) return fmt.Errorf("failed to format output: %s", err)
} }
fmt.Printf("gas used: %d\n", ret.MsgRct.GasUsed)
fmt.Printf("return: %s\n", s) fmt.Printf("return: %s\n", s)
return nil return nil
@ -1465,11 +1467,11 @@ func parseParamsForMethod(act cid.Cid, method uint64, args []string) ([]byte, er
f := methods[method] f := methods[method]
rf := reflect.TypeOf(f) rf := reflect.TypeOf(f)
if rf.NumIn() != 3 { if rf.NumIn() != 2 {
return nil, fmt.Errorf("expected referenced method to have three arguments") return nil, fmt.Errorf("expected referenced method to have three arguments")
} }
paramObj := rf.In(2).Elem() paramObj := rf.In(1).Elem()
if paramObj.NumField() != len(args) { if paramObj.NumField() != len(args) {
return nil, fmt.Errorf("not enough arguments given to call that method (expecting %d)", paramObj.NumField()) return nil, fmt.Errorf("not enough arguments given to call that method (expecting %d)", paramObj.NumField())
} }
@ -1489,6 +1491,18 @@ func parseParamsForMethod(act cid.Cid, method uint64, args []string) ([]byte, er
return nil, err return nil, err
} }
p.Elem().Field(i).Set(reflect.ValueOf(val)) p.Elem().Field(i).Set(reflect.ValueOf(val))
case reflect.TypeOf(abi.ChainEpoch(0)):
val, err := strconv.ParseInt(args[i], 10, 64)
if err != nil {
return nil, err
}
p.Elem().Field(i).Set(reflect.ValueOf(abi.ChainEpoch(val)))
case reflect.TypeOf(big.Int{}):
val, err := big.FromString(args[i])
if err != nil {
return nil, err
}
p.Elem().Field(i).Set(reflect.ValueOf(val))
case reflect.TypeOf(peer.ID("")): case reflect.TypeOf(peer.ID("")):
pid, err := peer.Decode(args[i]) pid, err := peer.Decode(args[i])
if err != nil { if err != nil {