Skip to content

Commit

Permalink
fix: command line: list miner control addresses get an error if owner…
Browse files Browse the repository at this point in the history
… is multi-sig (#5118)

* fix: command line: list miner control addresses get an error if owner/worker is robust(not account)
  • Loading branch information
zl03jsj authored Jul 21, 2022
1 parent 182971a commit 260680b
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions cmd/miner_actor.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"github.com/filecoin-project/venus/cmd/tablewriter"
"github.com/filecoin-project/venus/venus-shared/actors"
"github.com/filecoin-project/venus/venus-shared/actors/adt"
"github.com/filecoin-project/venus/venus-shared/actors/builtin"
"github.com/filecoin-project/venus/venus-shared/actors/builtin/miner"
"github.com/filecoin-project/venus/venus-shared/types"
)
Expand Down Expand Up @@ -492,18 +493,27 @@ var actorControlList = &cmds.Command{
}

printKey := func(name string, a address.Address) {
b, err := env.(*node.Env).WalletAPI.WalletBalance(ctx, a)
api := env.(*node.Env).ChainAPI
actor, err := api.StateGetActor(ctx, a, types.EmptyTSK)
if err != nil {
_ = re.Emit(fmt.Sprintf("%s %s: error getting balance: %s", name, a, err))
_ = re.Emit(fmt.Sprintf("get actor(%s) failed: %s", a, err))
return
}

k, err := env.(*node.Env).ChainAPI.StateAccountKey(ctx, a, types.EmptyTSK)
if err != nil {
_ = re.Emit(fmt.Sprintf("%s %s: error getting account key: %s", name, a, err))
return
b := actor.Balance

var k address.Address
// param 'a` maybe a 'robust', in that case, 'StateAccountKey' returns an error.
if builtin.IsAccountActor(actor.Code) {
if k, err = api.StateAccountKey(ctx, a, types.EmptyTSK); err != nil {
_ = re.Emit(fmt.Sprintf("%s %s: error getting account key: %s", name, a, err))
return
}
} else { // if builtin.IsMultisigActor(actor.Code)
if k, err = api.StateLookupRobustAddress(ctx, a, types.EmptyTSK); err != nil {
_ = re.Emit(fmt.Sprintf("%s %s: error getting robust address: %s", name, a, err))
return
}
}

kstr := k.String()
if !req.Options["verbose"].(bool) {
kstr = kstr[:9] + "..."
Expand Down

0 comments on commit 260680b

Please sign in to comment.