gpu-compute-chain/x/colinearcore/keeper/grpc_query_locked_funds.go

41 lines
930 B
Go
Raw Normal View History

2022-09-08 14:52:01 -07:00
package keeper
import (
"context"
2022-09-08 15:12:08 -07:00
"errors"
"fmt"
2022-09-08 14:52:01 -07:00
"colinear/x/colinearcore/types"
2022-09-08 15:12:08 -07:00
2022-09-08 14:52:01 -07:00
sdk "github.com/cosmos/cosmos-sdk/types"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func (k Keeper) LockedFunds(goCtx context.Context, req *types.QueryLockedFundsRequest) (*types.QueryLockedFundsResponse, error) {
if req == nil {
return nil, status.Error(codes.InvalidArgument, "invalid request")
}
ctx := sdk.UnwrapSDKContext(goCtx)
2022-09-08 15:12:08 -07:00
if err := sdk.VerifyAddressFormat([]byte(req.Owner)); err != nil {
return nil, fmt.Errorf("address %s is not valid", req.Owner)
}
lockedUsers, ok := k.GetLockedUsers(ctx)
if !ok {
return nil, errors.New("unable to get locked users")
}
var userAmtStr string
userAmtStr, ok = lockedUsers.Users[req.Owner]
if !ok {
return nil, fmt.Errorf("user %s has not locked any funds", req.Owner)
}
2022-09-08 14:52:01 -07:00
2022-09-08 15:12:08 -07:00
return &types.QueryLockedFundsResponse{
Amount: userAmtStr,
}, nil
2022-09-08 14:52:01 -07:00
}