package keeper import ( "context" "errors" "fmt" "colinear/x/colinearcore/types" 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) 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 { // doesn't exist in dict -> 0 funds locked userAmtStr = "0" // return nil, fmt.Errorf("user %s has not locked any funds", req.Owner) } return &types.QueryLockedFundsResponse{ Amount: userAmtStr, }, nil }