Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/mint: gRPC query service #6535

Merged
merged 19 commits into from
Jul 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
162dfce
Added grpc for mint
atheeshp Jun 26, 2020
0a41301
changed unused params
atheeshp Jun 26, 2020
2a9fd2e
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jun 29, 2020
8dcc12e
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jun 29, 2020
73c3826
updated tests
atheeshp Jun 29, 2020
9c24587
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jul 2, 2020
80e66aa
removed empty query request
atheeshp Jul 2, 2020
7fabfc5
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jul 2, 2020
eef42b0
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jul 3, 2020
c66d762
fixed lint issues
atheeshp Jul 3, 2020
6917f82
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jul 5, 2020
e50ceda
review changes
atheeshp Jul 5, 2020
e8ba72c
Merge branch 'master' into atheesh/5921-grpc-x-mint
sahith-narahari Jul 5, 2020
7a910db
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jul 6, 2020
10f18ad
Merge branch 'atheesh/5921-grpc-x-mint' of github.com:cosmos/cosmos-s…
atheeshp Jul 6, 2020
541f175
review changes
atheeshp Jul 6, 2020
6680c5c
Merge branch 'master' of github.com:cosmos/cosmos-sdk into atheesh/59…
atheeshp Jul 7, 2020
5d45c36
migrated to use test suite
atheeshp Jul 7, 2020
1868c5c
Update x/mint/keeper/grpc_query_test.go
fedekunze Jul 7, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions proto/cosmos/mint/query.proto
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];
}
34 changes: 34 additions & 0 deletions x/mint/keeper/grpc_query.go
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
}
55 changes: 55 additions & 0 deletions x/mint/keeper/grpc_query_test.go
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))
}
Loading