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
|
|
|
}
|