Merge pull request #5656 from filecoin-project/feat/state-search-replaced

Show replacing message CID is state search-msg cli
This commit is contained in:
Łukasz Magiera 2021-02-24 12:59:39 +01:00 committed by GitHub
commit 3c9e376474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1403,34 +1403,10 @@ var stateWaitMsgCmd = &cli.Command{
return err return err
} }
fmt.Printf("message was executed in tipset: %s\n", mw.TipSet.Cids()) return printMsg(ctx, api, msg, mw, m)
fmt.Printf("Exit Code: %d\n", mw.Receipt.ExitCode)
fmt.Printf("Gas Used: %d\n", mw.Receipt.GasUsed)
fmt.Printf("Return: %x\n", mw.Receipt.Return)
if err := printReceiptReturn(ctx, api, m, mw.Receipt); err != nil {
return err
}
return nil
}, },
} }
func printReceiptReturn(ctx context.Context, api api.FullNode, m *types.Message, r types.MessageReceipt) error {
act, err := api.StateGetActor(ctx, m.To, types.EmptyTSK)
if err != nil {
return err
}
jret, err := jsonReturn(act.Code, m.Method, r.Return)
if err != nil {
return err
}
fmt.Println(jret)
return nil
}
var stateSearchMsgCmd = &cli.Command{ var stateSearchMsgCmd = &cli.Command{
Name: "search-msg", Name: "search-msg",
Usage: "Search to see whether a message has appeared on chain", Usage: "Search to see whether a message has appeared on chain",
@ -1458,18 +1434,56 @@ var stateSearchMsgCmd = &cli.Command{
return err return err
} }
if mw != nil { m, err := api.ChainGetMessage(ctx, msg)
fmt.Printf("message was executed in tipset: %s", mw.TipSet.Cids()) if err != nil {
fmt.Printf("\nExit Code: %d", mw.Receipt.ExitCode) return err
fmt.Printf("\nGas Used: %d", mw.Receipt.GasUsed)
fmt.Printf("\nReturn: %x", mw.Receipt.Return)
} else {
fmt.Print("message was not found on chain")
} }
return nil
return printMsg(ctx, api, msg, mw, m)
}, },
} }
func printReceiptReturn(ctx context.Context, api api.FullNode, m *types.Message, r types.MessageReceipt) error {
if len(r.Return) == 0 {
return nil
}
act, err := api.StateGetActor(ctx, m.To, types.EmptyTSK)
if err != nil {
return err
}
jret, err := jsonReturn(act.Code, m.Method, r.Return)
if err != nil {
return err
}
fmt.Println("Decoded return value: ", jret)
return nil
}
func printMsg(ctx context.Context, api api.FullNode, msg cid.Cid, mw *lapi.MsgLookup, m *types.Message) error {
if mw != nil {
if mw.Message != msg {
fmt.Printf("Message was replaced: %s\n", mw.Message)
}
fmt.Printf("Executed in tipset: %s\n", mw.TipSet.Cids())
fmt.Printf("Exit Code: %d\n", mw.Receipt.ExitCode)
fmt.Printf("Gas Used: %d\n", mw.Receipt.GasUsed)
fmt.Printf("Return: %x\n", mw.Receipt.Return)
} else {
fmt.Println("message was not found on chain")
}
if err := printReceiptReturn(ctx, api, m, mw.Receipt); err != nil {
return err
}
return nil
}
var stateCallCmd = &cli.Command{ var stateCallCmd = &cli.Command{
Name: "call", Name: "call",
Usage: "Invoke a method on an actor locally", Usage: "Invoke a method on an actor locally",