lotus/cmd/lotus-shed/nonce-fix.go

66 lines
1.2 KiB
Go
Raw Normal View History

package main
import (
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/lotus/chain/types"
lcli "github.com/filecoin-project/lotus/cli"
"gopkg.in/urfave/cli.v2"
)
var noncefix = &cli.Command{
Name: "noncefix",
Flags: []cli.Flag{
&cli.StringFlag{
Name: "repo",
EnvVars: []string{"LOTUS_PATH"},
Hidden: true,
Value: "~/.lotus", // TODO: Consider XDG_DATA_HOME
},
&cli.Uint64Flag{
Name: "start",
},
&cli.Uint64Flag{
Name: "end",
},
&cli.StringFlag{
Name: "addr",
},
},
Action: func(cctx *cli.Context) error {
api, closer, err := lcli.GetFullNodeAPI(cctx)
if err != nil {
return err
}
defer closer()
ctx := lcli.ReqContext(cctx)
addr, err := address.NewFromString(cctx.String("addr"))
if err != nil {
return err
}
for i := cctx.Uint64("start"); i < cctx.Uint64("end"); i++ {
msg := &types.Message{
From: addr,
To: addr,
Value: types.NewInt(1),
GasLimit: types.NewInt(1000),
GasPrice: types.NewInt(1),
Nonce: i,
}
smsg, err := api.WalletSignMessage(ctx, addr, msg)
if err != nil {
return err
}
err = api.MpoolPush(ctx, smsg)
if err != nil {
return err
}
}
return nil
},
}