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

43 lines
997 B
Go

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
}