forked from cosmos/cosmos-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
x/mint: gRPC query service (cosmos#6535)
* Added grpc for mint * changed unused params * updated tests * removed empty query request * fixed lint issues * review changes * review changes * migrated to use test suite * Update x/mint/keeper/grpc_query_test.go Co-authored-by: SaReN <sahithnarahari@gmail.com> Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
- Loading branch information
1 parent
a0daec2
commit 58dcef1
Showing
4 changed files
with
1,338 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
syntax = "proto3"; | ||
package cosmos.mint; | ||
|
||
import "gogoproto/gogo.proto"; | ||
import "cosmos/mint/mint.proto"; | ||
|
||
option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; | ||
|
||
// Query provides defines the gRPC querier service | ||
service Query { | ||
// Params returns the total set of minting parameters. | ||
rpc Params (QueryParamsRequest) returns (QueryParamsResponse) {} | ||
|
||
// Inflation returns the current minting inflation value. | ||
rpc Inflation (QueryInflationRequest) returns (QueryInflationResponse) {} | ||
|
||
// AnnualProvisions current minting annual provisions value. | ||
rpc AnnualProvisions (QueryAnnualProvisionsRequest) returns (QueryAnnualProvisionsResponse) {} | ||
} | ||
|
||
// QueryParamsRequest is the request type for the Query/Params RPC method | ||
message QueryParamsRequest { } | ||
|
||
// QueryParamsResponse is the response type for the Query/Params RPC method | ||
message QueryParamsResponse { | ||
Params params = 1 [(gogoproto.nullable) = false]; | ||
} | ||
|
||
// QueryInflationRequest is the request type for the Query/Inflation RPC method | ||
message QueryInflationRequest { } | ||
|
||
// QueryInflationResponse is the response type for the Query/Inflation RPC method | ||
message QueryInflationResponse { | ||
bytes inflation = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; | ||
} | ||
|
||
// QueryAnnualProvisionsRequest is the request type for the Query/AnnualProvisions RPC method | ||
message QueryAnnualProvisionsRequest { } | ||
|
||
// QueryAnnualProvisionsResponse is the response type for the Query/AnnualProvisions RPC method | ||
message QueryAnnualProvisionsResponse { | ||
bytes annual_provisions = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
package keeper | ||
|
||
import ( | ||
"context" | ||
|
||
sdk "github.com/cosmos/cosmos-sdk/types" | ||
"github.com/cosmos/cosmos-sdk/x/mint/types" | ||
) | ||
|
||
var _ types.QueryServer = Keeper{} | ||
|
||
// Params returns params of the mint module. | ||
func (k Keeper) Params(c context.Context, _ *types.QueryParamsRequest) (*types.QueryParamsResponse, error) { | ||
ctx := sdk.UnwrapSDKContext(c) | ||
params := k.GetParams(ctx) | ||
|
||
return &types.QueryParamsResponse{Params: params}, nil | ||
} | ||
|
||
// Inflation returns minter.Inflation of the mint module. | ||
func (k Keeper) Inflation(c context.Context, _ *types.QueryInflationRequest) (*types.QueryInflationResponse, error) { | ||
ctx := sdk.UnwrapSDKContext(c) | ||
minter := k.GetMinter(ctx) | ||
|
||
return &types.QueryInflationResponse{Inflation: minter.Inflation}, nil | ||
} | ||
|
||
// AnnualProvisions returns minter.AnnualProvisions of the mint module. | ||
func (k Keeper) AnnualProvisions(c context.Context, _ *types.QueryAnnualProvisionsRequest) (*types.QueryAnnualProvisionsResponse, error) { | ||
ctx := sdk.UnwrapSDKContext(c) | ||
minter := k.GetMinter(ctx) | ||
|
||
return &types.QueryAnnualProvisionsResponse{AnnualProvisions: minter.AnnualProvisions}, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
package keeper_test | ||
|
||
import ( | ||
gocontext "context" | ||
"testing" | ||
|
||
"github.com/cosmos/cosmos-sdk/baseapp" | ||
"github.com/cosmos/cosmos-sdk/simapp" | ||
sdk "github.com/cosmos/cosmos-sdk/types" | ||
"github.com/cosmos/cosmos-sdk/x/mint/types" | ||
"github.com/stretchr/testify/suite" | ||
abci "github.com/tendermint/tendermint/abci/types" | ||
) | ||
|
||
type MintTestSuite struct { | ||
suite.Suite | ||
|
||
app *simapp.SimApp | ||
ctx sdk.Context | ||
queryClient types.QueryClient | ||
} | ||
|
||
func (suite *MintTestSuite) SetupTest() { | ||
app := simapp.Setup(false) | ||
ctx := app.BaseApp.NewContext(false, abci.Header{}) | ||
|
||
queryHelper := baseapp.NewQueryServerTestHelper(ctx, app.InterfaceRegistry()) | ||
types.RegisterQueryServer(queryHelper, app.MintKeeper) | ||
queryClient := types.NewQueryClient(queryHelper) | ||
|
||
suite.app = app | ||
suite.ctx = ctx | ||
|
||
suite.queryClient = queryClient | ||
} | ||
|
||
func (suite *MintTestSuite) TestGRPCParams() { | ||
app, ctx, queryClient := suite.app, suite.ctx, suite.queryClient | ||
|
||
params, err := queryClient.Params(gocontext.Background(), &types.QueryParamsRequest{}) | ||
suite.Require().NoError(err) | ||
suite.Require().Equal(params.Params, app.MintKeeper.GetParams(ctx)) | ||
|
||
inflation, err := queryClient.Inflation(gocontext.Background(), &types.QueryInflationRequest{}) | ||
suite.Require().NoError(err) | ||
suite.Require().Equal(inflation.Inflation, app.MintKeeper.GetMinter(ctx).Inflation) | ||
|
||
annualProvisions, err := queryClient.AnnualProvisions(gocontext.Background(), &types.QueryAnnualProvisionsRequest{}) | ||
suite.Require().NoError(err) | ||
suite.Require().Equal(annualProvisions.AnnualProvisions, app.MintKeeper.GetMinter(ctx).AnnualProvisions) | ||
} | ||
|
||
func TestMintTestSuite(t *testing.T) { | ||
suite.Run(t, new(MintTestSuite)) | ||
} |
Oops, something went wrong.