lotus/cli/mpool.go

79 lines
1.2 KiB
Go
Raw Normal View History

2019-07-09 22:58:51 +00:00
package cli
import (
"encoding/json"
2019-07-09 22:58:51 +00:00
"fmt"
"gopkg.in/urfave/cli.v2"
)
var mpoolCmd = &cli.Command{
Name: "mpool",
Usage: "Manage message pool",
Subcommands: []*cli.Command{
mpoolPending,
2019-11-17 07:44:06 +00:00
mpoolSub,
2019-07-09 22:58:51 +00:00
},
}
var mpoolPending = &cli.Command{
Name: "pending",
Usage: "Get pending messages",
Action: func(cctx *cli.Context) error {
2019-10-03 18:12:30 +00:00
api, closer, err := GetFullNodeAPI(cctx)
2019-07-12 04:09:04 +00:00
if err != nil {
return err
}
2019-10-03 18:12:30 +00:00
defer closer()
2019-07-12 04:09:04 +00:00
2019-07-18 23:16:23 +00:00
ctx := ReqContext(cctx)
2019-07-09 22:58:51 +00:00
2019-07-11 02:36:43 +00:00
msgs, err := api.MpoolPending(ctx, nil)
2019-07-09 22:58:51 +00:00
if err != nil {
return err
}
for _, msg := range msgs {
out, err := json.MarshalIndent(msg, "", " ")
if err != nil {
return err
}
fmt.Println(string(out))
2019-07-09 22:58:51 +00:00
}
return nil
},
}
2019-11-17 07:44:06 +00:00
var mpoolSub = &cli.Command{
Name: "sub",
Usage: "Subscibe to mpool changes",
Action: func(cctx *cli.Context) error {
api, closer, err := GetFullNodeAPI(cctx)
if err != nil {
return err
}
defer closer()
ctx := ReqContext(cctx)
sub, err := api.MpoolSub(ctx)
if err != nil {
return err
}
for {
select {
case update := <-sub:
out, err := json.MarshalIndent(update, "", " ")
if err != nil {
return err
}
fmt.Println(string(out))
case <-ctx.Done():
return nil
}
}
},
}