Bugfix: actor withdraw CLI should depend on network version

This commit is contained in:
Aayush Rajasekaran 2021-10-09 20:11:49 -04:00
parent c776811ea9
commit e158b1d1e4
3 changed files with 43 additions and 15 deletions

View File

@ -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

View File

@ -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

View File

@ -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