From 2241f0262140007ef5bf3656e77bf092dd14d350 Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Sat, 9 Oct 2021 20:11:49 -0400 Subject: [PATCH] Bugfix: actor withdraw CLI should depend on network version --- cli/wallet.go | 19 ++++++++++++++----- cmd/lotus-miner/actor.go | 20 +++++++++++++++----- cmd/lotus-shed/actor.go | 19 ++++++++++++++----- 3 files changed, 43 insertions(+), 15 deletions(-) diff --git a/cli/wallet.go b/cli/wallet.go index f0f4e11f9..df526dc03 100644 --- a/cli/wallet.go +++ b/cli/wallet.go @@ -10,6 +10,8 @@ import ( "os" "strings" + "github.com/filecoin-project/go-state-types/network" + "github.com/filecoin-project/lotus/build" "github.com/urfave/cli/v2" @@ -634,14 +636,21 @@ var walletMarketWithdraw = &cli.Command{ return err } - var withdrawn abi.TokenAmount - if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { + nv, err := api.StateNetworkVersion(ctx, wait.TipSet) + if err != nil { return err } - fmt.Printf("Successfully withdrew %s FIL\n", withdrawn) - if withdrawn != amt { - fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amt) + if nv >= network.Version14 { + var withdrawn abi.TokenAmount + if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { + return err + } + + fmt.Printf("Successfully withdrew %s FIL\n", withdrawn) + if withdrawn != amt { + fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amt) + } } return nil diff --git a/cmd/lotus-miner/actor.go b/cmd/lotus-miner/actor.go index 88c5cbe67..70ca725ab 100644 --- a/cmd/lotus-miner/actor.go +++ b/cmd/lotus-miner/actor.go @@ -6,6 +6,8 @@ import ( "os" "strings" + "github.com/filecoin-project/go-state-types/network" + rlepluslazy "github.com/filecoin-project/go-bitfield/rle" cbor "github.com/ipfs/go-ipld-cbor" @@ -280,6 +282,7 @@ var actorWithdrawCmd = &cli.Command{ fmt.Printf("Requested rewards withdrawal in message %s\n", smsg.Cid()) // wait for it to get mined into a block + fmt.Println("using ", uint64(cctx.Int("confidence"))) wait, err := api.StateWaitMsg(ctx, smsg.Cid(), uint64(cctx.Int("confidence"))) if err != nil { return err @@ -291,14 +294,21 @@ var actorWithdrawCmd = &cli.Command{ return err } - var withdrawn abi.TokenAmount - if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { + nv, err := api.StateNetworkVersion(ctx, wait.TipSet) + if err != nil { return err } - fmt.Printf("Successfully withdrew %s FIL\n", withdrawn) - if withdrawn != amount { - fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amount) + if nv >= network.Version14 { + var withdrawn abi.TokenAmount + if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { + return err + } + + fmt.Printf("Successfully withdrew %s FIL\n", withdrawn) + if withdrawn != amount { + fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amount) + } } return nil diff --git a/cmd/lotus-shed/actor.go b/cmd/lotus-shed/actor.go index fd7410c24..91a23a4ee 100644 --- a/cmd/lotus-shed/actor.go +++ b/cmd/lotus-shed/actor.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "github.com/filecoin-project/go-state-types/network" + "github.com/fatih/color" "github.com/urfave/cli/v2" "golang.org/x/xerrors" @@ -138,14 +140,21 @@ var actorWithdrawCmd = &cli.Command{ return err } - var withdrawn abi.TokenAmount - if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { + nv, err := nodeAPI.StateNetworkVersion(ctx, wait.TipSet) + if err != nil { return err } - fmt.Printf("Successfully withdrew %s FIL\n", withdrawn) - if withdrawn != amount { - fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amount) + if nv >= network.Version14 { + var withdrawn abi.TokenAmount + if err := withdrawn.UnmarshalCBOR(bytes.NewReader(wait.Receipt.Return)); err != nil { + return err + } + + fmt.Printf("Successfully withdrew %s FIL\n", withdrawn) + if withdrawn != amount { + fmt.Printf("Note that this is less than the requested amount of %s FIL\n", amount) + } } return nil