@@ -84,13 +84,18 @@ func (q QueryHandler) GasConsumed() uint64 {
8484
8585type CustomQuerier func (ctx sdk.Context , request json.RawMessage ) ([]byte , error )
8686
87+ type (
88+ stargateQuerierFn func (ctx sdk.Context , request * wasmvmtypes.StargateQuery ) ([]byte , error )
89+ grpcQuerierFn func (ctx sdk.Context , request * wasmvmtypes.GrpcQuery ) (proto.Message , error )
90+ )
91+
8792type QueryPlugins struct {
8893 Bank func (ctx sdk.Context , request * wasmvmtypes.BankQuery ) ([]byte , error )
8994 Custom CustomQuerier
9095 IBC func (ctx sdk.Context , caller sdk.AccAddress , request * wasmvmtypes.IBCQuery ) ([]byte , error )
9196 Staking func (ctx sdk.Context , request * wasmvmtypes.StakingQuery ) ([]byte , error )
92- Stargate func ( ctx sdk. Context , request * wasmvmtypes. StargateQuery ) ([] byte , error )
93- Grpc func ( ctx sdk. Context , request * wasmvmtypes. GrpcQuery ) (proto. Message , error )
97+ Stargate stargateQuerierFn
98+ Grpc grpcQuerierFn
9499 Wasm func (ctx sdk.Context , request * wasmvmtypes.WasmQuery ) ([]byte , error )
95100 Distribution func (ctx sdk.Context , request * wasmvmtypes.DistributionQuery ) ([]byte , error )
96101}
@@ -121,7 +126,7 @@ func DefaultQueryPlugins(
121126 Custom : NoCustomQuerier ,
122127 IBC : IBCQuerier (wasm , channelKeeper ),
123128 Staking : StakingQuerier (staking , distKeeper ),
124- Stargate : RejectStargateQuerier () ,
129+ Stargate : RejectStargateQuerier ,
125130 Grpc : RejectGrpcQuerier ,
126131 Wasm : WasmQuerier (wasm ),
127132 Distribution : DistributionQuerier (distKeeper ),
@@ -332,10 +337,15 @@ func IBCQuerier(wasm contractMetaDataSource, channelKeeper types.ChannelKeeper)
332337 }
333338}
334339
340+ // RejectGrpcQuerier is a querier that rejects all gRPC queries.
341+ //
342+ // Use AcceptListGrpcQuerier instead to create a list of accepted query types.
335343func RejectGrpcQuerier (ctx sdk.Context , request * wasmvmtypes.GrpcQuery ) (proto.Message , error ) {
336- return nil , wasmvmtypes.UnsupportedRequest {Kind : "gRPC queries are disabled" }
344+ return nil , wasmvmtypes.UnsupportedRequest {Kind : "gRPC queries are disabled on this chain " }
337345}
338346
347+ var _ grpcQuerierFn = RejectGrpcQuerier // just a type check
348+
339349// AcceptListGrpcQuerier supports a preconfigured set of gRPC queries only.
340350// All arguments must be non nil.
341351//
@@ -344,7 +354,7 @@ func RejectGrpcQuerier(ctx sdk.Context, request *wasmvmtypes.GrpcQuery) (proto.M
344354//
345355// These queries can be set via WithQueryPlugins option in the wasm keeper constructor:
346356// WithQueryPlugins(&QueryPlugins{Grpc: AcceptListGrpcQuerier(acceptList, queryRouter, codec)})
347- func AcceptListGrpcQuerier (acceptList AcceptedQueries , queryRouter GRPCQueryRouter , codec codec.Codec ) func ( ctx sdk. Context , request * wasmvmtypes. GrpcQuery ) (proto. Message , error ) {
357+ func AcceptListGrpcQuerier (acceptList AcceptedQueries , queryRouter GRPCQueryRouter , codec codec.Codec ) grpcQuerierFn {
348358 return func (ctx sdk.Context , request * wasmvmtypes.GrpcQuery ) (proto.Message , error ) {
349359 protoResponseFn , accepted := acceptList [request .Path ]
350360 if ! accepted {
@@ -375,13 +385,15 @@ func AcceptListGrpcQuerier(acceptList AcceptedQueries, queryRouter GRPCQueryRout
375385 }
376386}
377387
378- // RejectStargateQuerier rejects all stargate queries
379- func RejectStargateQuerier () func ( ctx sdk. Context , request * wasmvmtypes. StargateQuery ) ([] byte , error ) {
380- return func ( ctx sdk. Context , request * wasmvmtypes. StargateQuery ) ([] byte , error ) {
381- return nil , wasmvmtypes.UnsupportedRequest { Kind : "Stargate queries are disabled" }
382- }
388+ // RejectStargateQuerier is a querier that rejects all stargate queries.
389+ //
390+ // Use AcceptListStargateQuerier instead to create a list of accepted query types.
391+ func RejectStargateQuerier ( ctx sdk. Context , request * wasmvmtypes.StargateQuery ) ([] byte , error ) {
392+ return nil , wasmvmtypes. UnsupportedRequest { Kind : "Stargate queries are disabled on this chain" }
383393}
384394
395+ var _ stargateQuerierFn = RejectStargateQuerier // just a type check
396+
385397// AcceptedQueries defines accepted Stargate or gRPC queries as a map where the key is the query path
386398// and the value is a function returning a proto.Message.
387399//
@@ -400,7 +412,7 @@ type AcceptedQueries map[string]func() proto.Message
400412//
401413// These queries can be set via WithQueryPlugins option in the wasm keeper constructor:
402414// WithQueryPlugins(&QueryPlugins{Stargate: AcceptListStargateQuerier(acceptList, queryRouter, codec)})
403- func AcceptListStargateQuerier (acceptList AcceptedQueries , queryRouter GRPCQueryRouter , codec codec.Codec ) func ( ctx sdk. Context , request * wasmvmtypes. StargateQuery ) ([] byte , error ) {
415+ func AcceptListStargateQuerier (acceptList AcceptedQueries , queryRouter GRPCQueryRouter , codec codec.Codec ) stargateQuerierFn {
404416 return func (ctx sdk.Context , request * wasmvmtypes.StargateQuery ) ([]byte , error ) {
405417 protoResponseFn , accepted := acceptList [request .Path ]
406418 if ! accepted {
0 commit comments