Skip to content

Commit

Permalink
Updated the user userstake rpc endpiont works
Browse files Browse the repository at this point in the history
  • Loading branch information
kpachhai committed Jun 18, 2024
1 parent dc5e4fd commit 9acbbcc
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 30 deletions.
6 changes: 4 additions & 2 deletions cmd/nuklai-cli/cmd/action.go
Original file line number Diff line number Diff line change
Expand Up @@ -852,7 +852,8 @@ var claimUserStakeRewardCmd = &cobra.Command{
nodeID := validatorChosen.NodeID

// Get stake info
_, _, stakedAmount, _, _, err := ncli.UserStake(ctx, priv.Address, nodeID)
privAddress, _ := codec.AddressBech32(nconsts.HRP, priv.Address)
_, _, stakedAmount, _, _, err := ncli.UserStake(ctx, privAddress, nodeID.String())
if err != nil {
return err
}
Expand Down Expand Up @@ -914,7 +915,8 @@ var undelegateUserStakeCmd = &cobra.Command{
nodeID := validatorChosen.NodeID

// Get stake info
_, _, stakedAmount, _, _, err := ncli.UserStake(ctx, priv.Address, nodeID)
privAddress, _ := codec.AddressBech32(nconsts.HRP, priv.Address)
_, _, stakedAmount, _, _, err := ncli.UserStake(ctx, privAddress, nodeID.String())
if err != nil {
return err
}
Expand Down
21 changes: 6 additions & 15 deletions cmd/nuklai-cli/cmd/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,33 +302,24 @@ func (*Handler) GetValidatorStake(
func (*Handler) GetUserStake(ctx context.Context,
cli *nrpc.JSONRPCClient, owner codec.Address, nodeID ids.NodeID,
) (uint64, uint64, uint64, string, string, error) {
stakeStartBlock, stakeEndBlock, stakedAmount, rewardAddress, ownerAddress, err := cli.UserStake(ctx, owner, nodeID)
stakeStartBlock, stakeEndBlock, stakedAmount, rewardAddress, ownerAddress, err := cli.UserStake(ctx, codec.MustAddressBech32(nconsts.HRP, owner), nodeID.String())
if err != nil {
return 0, 0, 0, "", "", err
}

rewardAddressString, err := codec.AddressBech32(nconsts.HRP, rewardAddress)
if err != nil {
return 0, 0, 0, "", "", err
}
ownerAddressString, err := codec.AddressBech32(nconsts.HRP, ownerAddress)
if err != nil {
return 0, 0, 0, "", "", err
}

hutils.Outf(
"{{yellow}}user stake: {{/}}\nStakeStartBlock=%d StakeEndBlock=%d StakedAmount=%d RewardAddress=%s OwnerAddress=%s\n",
stakeStartBlock,
stakeEndBlock,
stakedAmount,
rewardAddressString,
ownerAddressString,
rewardAddress,
ownerAddress,
)
return stakeStartBlock,
stakeEndBlock,
stakedAmount,
rewardAddressString,
ownerAddressString, err
rewardAddress,
ownerAddress,
err
}

type Controller struct {
Expand Down
5 changes: 2 additions & 3 deletions rpc/jsonrpc_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/ava-labs/avalanchego/ids"

"github.com/ava-labs/hypersdk/chain"
"github.com/ava-labs/hypersdk/codec"
"github.com/ava-labs/hypersdk/requester"
"github.com/ava-labs/hypersdk/rpc"
"github.com/ava-labs/hypersdk/utils"
Expand Down Expand Up @@ -193,7 +192,7 @@ func (cli *JSONRPCClient) ValidatorStake(ctx context.Context, nodeID ids.NodeID)
return resp.StakeStartBlock, resp.StakeEndBlock, resp.StakedAmount, resp.DelegationFeeRate, resp.RewardAddress, resp.OwnerAddress, err
}

func (cli *JSONRPCClient) UserStake(ctx context.Context, owner codec.Address, nodeID ids.NodeID) (uint64, uint64, uint64, codec.Address, codec.Address, error) {
func (cli *JSONRPCClient) UserStake(ctx context.Context, owner string, nodeID string) (uint64, uint64, uint64, string, string, error) {
resp := new(UserStakeReply)
err := cli.requester.SendRequest(
ctx,
Expand All @@ -205,7 +204,7 @@ func (cli *JSONRPCClient) UserStake(ctx context.Context, owner codec.Address, no
resp,
)
if err != nil {
return 0, 0, 0, codec.EmptyAddress, codec.EmptyAddress, err
return 0, 0, 0, "", "", err
}
return resp.StakeStartBlock, resp.StakeEndBlock, resp.StakedAmount, resp.RewardAddress, resp.OwnerAddress, err
}
Expand Down
29 changes: 19 additions & 10 deletions rpc/jsonrpc_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,23 +231,32 @@ func (j *JSONRPCServer) ValidatorStake(req *http.Request, args *ValidatorStakeAr
}

type UserStakeArgs struct {
Owner codec.Address `json:"owner"`
NodeID ids.NodeID `json:"nodeID"`
Owner string `json:"owner"`
NodeID string `json:"nodeID"`
}

type UserStakeReply struct {
StakeStartBlock uint64 `json:"stakeStartBlock"` // Start block of the stake
StakeEndBlock uint64 `json:"stakeEndBlock"` // End block of the stake
StakedAmount uint64 `json:"stakedAmount"` // Amount of NAI staked
RewardAddress codec.Address `json:"rewardAddress"` // Address to receive rewards
OwnerAddress codec.Address `json:"ownerAddress"` // Address of the owner who delegated
StakeStartBlock uint64 `json:"stakeStartBlock"` // Start block of the stake
StakeEndBlock uint64 `json:"stakeEndBlock"` // End block of the stake
StakedAmount uint64 `json:"stakedAmount"` // Amount of NAI staked
RewardAddress string `json:"rewardAddress"` // Address to receive rewards
OwnerAddress string `json:"ownerAddress"` // Address of the owner who delegated
}

func (j *JSONRPCServer) UserStake(req *http.Request, args *UserStakeArgs, reply *UserStakeReply) (err error) {
ctx, span := j.c.Tracer().Start(req.Context(), "Server.UserStake")
defer span.End()

exists, stakeStartBlock, stakeEndBlock, stakedAmount, rewardAddress, ownerAddress, err := j.c.GetDelegatedUserStakeFromState(ctx, args.Owner, args.NodeID)
ownerID, err := codec.ParseAddressBech32(nconsts.HRP, args.Owner)
if err != nil {
return err
}
nodeID, err := ids.NodeIDFromString(args.NodeID)
if err != nil {
return err
}

exists, stakeStartBlock, stakeEndBlock, stakedAmount, rewardAddress, ownerAddress, err := j.c.GetDelegatedUserStakeFromState(ctx, ownerID, nodeID)
if err != nil {
return err
}
Expand All @@ -258,7 +267,7 @@ func (j *JSONRPCServer) UserStake(req *http.Request, args *UserStakeArgs, reply
reply.StakeStartBlock = stakeStartBlock
reply.StakeEndBlock = stakeEndBlock
reply.StakedAmount = stakedAmount
reply.RewardAddress = rewardAddress
reply.OwnerAddress = ownerAddress
reply.RewardAddress = codec.MustAddressBech32(nconsts.HRP, rewardAddress)
reply.OwnerAddress = codec.MustAddressBech32(nconsts.HRP, ownerAddress)
return nil
}

0 comments on commit 9acbbcc

Please sign in to comment.