2022-12-09 21:24:35 +00:00
|
|
|
package keeper
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
2023-09-22 16:05:12 +00:00
|
|
|
"google.golang.org/grpc/codes"
|
|
|
|
"google.golang.org/grpc/status"
|
|
|
|
|
2022-12-09 21:24:35 +00:00
|
|
|
"github.com/kava-labs/kava/x/community/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
type queryServer struct {
|
|
|
|
keeper Keeper
|
|
|
|
}
|
|
|
|
|
|
|
|
var _ types.QueryServer = queryServer{}
|
|
|
|
|
|
|
|
// NewQueryServerImpl creates a new server for handling gRPC queries.
|
|
|
|
func NewQueryServerImpl(k Keeper) types.QueryServer {
|
|
|
|
return &queryServer{keeper: k}
|
|
|
|
}
|
|
|
|
|
2023-09-22 16:05:12 +00:00
|
|
|
// Params implements the gRPC service handler for querying x/community params.
|
|
|
|
func (s queryServer) Params(c context.Context, req *types.QueryParamsRequest) (*types.QueryParamsResponse, error) {
|
|
|
|
ctx := sdk.UnwrapSDKContext(c)
|
|
|
|
|
|
|
|
params, found := s.keeper.GetParams(ctx)
|
|
|
|
if !found {
|
|
|
|
return nil, status.Error(codes.NotFound, "params not found")
|
|
|
|
}
|
|
|
|
|
|
|
|
return &types.QueryParamsResponse{
|
|
|
|
Params: params,
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
2022-12-19 21:56:46 +00:00
|
|
|
// Balance implements the gRPC service handler for querying x/community balance.
|
2022-12-09 21:24:35 +00:00
|
|
|
func (s queryServer) Balance(c context.Context, _ *types.QueryBalanceRequest) (*types.QueryBalanceResponse, error) {
|
|
|
|
ctx := sdk.UnwrapSDKContext(c)
|
|
|
|
return &types.QueryBalanceResponse{
|
|
|
|
Coins: s.keeper.GetModuleAccountBalance(ctx),
|
|
|
|
}, nil
|
|
|
|
}
|
2023-04-17 19:54:13 +00:00
|
|
|
|
|
|
|
// CommunityPool queries the community pool coins
|
|
|
|
func (s queryServer) TotalBalance(
|
|
|
|
c context.Context,
|
|
|
|
req *types.QueryTotalBalanceRequest,
|
|
|
|
) (*types.QueryTotalBalanceResponse, error) {
|
|
|
|
ctx := sdk.UnwrapSDKContext(c)
|
|
|
|
|
|
|
|
// x/distribution community pool balance
|
|
|
|
nativePoolBalance := s.keeper.distrKeeper.GetFeePoolCommunityCoins(ctx)
|
|
|
|
|
|
|
|
// x/community pool balance
|
|
|
|
communityPoolBalance := s.keeper.GetModuleAccountBalance(ctx)
|
|
|
|
|
|
|
|
totalBalance := nativePoolBalance.Add(sdk.NewDecCoinsFromCoins(communityPoolBalance...)...)
|
|
|
|
|
|
|
|
return &types.QueryTotalBalanceResponse{
|
|
|
|
Pool: totalBalance,
|
|
|
|
}, nil
|
|
|
|
}
|