Skip to content

Commit 55baf52

Browse files
millkendustinxie
andcommitted
[ioctl] node reward unclaimed support name query (#4150)
Co-authored-by: dustinxie <dahuaxie@gmail.com>
1 parent bbe637a commit 55baf52

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

ioctl/cmd/node/nodedelegate.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,3 +365,20 @@ func getAllStakingCandidates(chainClient iotexapi.APIServiceClient) (candidateLi
365365
}
366366
return
367367
}
368+
369+
func getCandidateRewardAddressByAddressOrName(cli iotexapi.APIServiceClient, name string) (string, error) {
370+
address, err1 := util.Address(name)
371+
if err1 == nil {
372+
return address, nil
373+
}
374+
cl, err := getAllStakingCandidates(cli)
375+
if err != nil {
376+
return "", err
377+
}
378+
for _, candidate := range cl.Candidates {
379+
if candidate.Name == name {
380+
return candidate.RewardAddress, nil
381+
}
382+
}
383+
return "", err1
384+
}

ioctl/cmd/node/nodereward.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import (
2424
// Multi-language support
2525
var (
2626
_rewardCmdUses = map[config.Language]string{
27-
config.English: "reward unclaimed|pool [ALIAS|DELEGATE_ADDRESS]",
28-
config.Chinese: "reward 未支取|奖金池 [别名|委托地址]",
27+
config.English: "reward unclaimed|pool [ALIAS|REWARD_ADDRESS|NAME]",
28+
config.Chinese: "reward 未支取|奖金池 [别名|奖励地址|名称]",
2929
}
3030
_rewardCmdShorts = map[config.Language]string{
3131
config.English: "Query rewards",
@@ -155,16 +155,18 @@ func rewardPool() error {
155155
}
156156

157157
func reward(arg string) error {
158-
address, err := util.Address(arg)
159-
if err != nil {
160-
return output.NewError(output.AddressError, "failed to get address", err)
161-
}
162158
conn, err := util.ConnectToEndpoint(config.ReadConfig.SecureConnect && !config.Insecure)
163159
if err != nil {
164160
return output.NewError(output.NetworkError, "failed to connect to endpoint", err)
165161
}
166162
defer conn.Close()
167163
cli := iotexapi.NewAPIServiceClient(conn)
164+
165+
address, err := getCandidateRewardAddressByAddressOrName(cli, arg)
166+
if err != nil {
167+
return output.NewError(output.AddressError, "failed to get address", err)
168+
}
169+
168170
ctx := context.Background()
169171

170172
jwtMD, err := util.JwtAuth()

0 commit comments

Comments
 (0)