1#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct EventGrant {
5 #[prost(string, tag = "2")]
7 pub msg_type_url: ::prost::alloc::string::String,
8 #[prost(string, tag = "3")]
10 pub granter: ::prost::alloc::string::String,
11 #[prost(string, tag = "4")]
13 pub grantee: ::prost::alloc::string::String,
14}
15#[allow(clippy::derive_partial_eq_without_eq)]
17#[derive(Clone, PartialEq, ::prost::Message)]
18pub struct EventRevoke {
19 #[prost(string, tag = "2")]
21 pub msg_type_url: ::prost::alloc::string::String,
22 #[prost(string, tag = "3")]
24 pub granter: ::prost::alloc::string::String,
25 #[prost(string, tag = "4")]
27 pub grantee: ::prost::alloc::string::String,
28}
29#[allow(clippy::derive_partial_eq_without_eq)]
32#[derive(Clone, PartialEq, ::prost::Message)]
33pub struct GenericAuthorization {
34 #[prost(string, tag = "1")]
36 pub msg: ::prost::alloc::string::String,
37}
38#[allow(clippy::derive_partial_eq_without_eq)]
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct Grant {
43 #[prost(message, optional, tag = "1")]
44 pub authorization: ::core::option::Option<::prost_types::Any>,
45 #[prost(message, optional, tag = "2")]
46 pub expiration: ::core::option::Option<::prost_types::Timestamp>,
47}
48#[allow(clippy::derive_partial_eq_without_eq)]
53#[derive(Clone, PartialEq, ::prost::Message)]
54pub struct GrantAuthorization {
55 #[prost(string, tag = "1")]
56 pub granter: ::prost::alloc::string::String,
57 #[prost(string, tag = "2")]
58 pub grantee: ::prost::alloc::string::String,
59 #[prost(message, optional, tag = "3")]
60 pub authorization: ::core::option::Option<::prost_types::Any>,
61 #[prost(message, optional, tag = "4")]
62 pub expiration: ::core::option::Option<::prost_types::Timestamp>,
63}
64#[allow(clippy::derive_partial_eq_without_eq)]
67#[derive(Clone, PartialEq, ::prost::Message)]
68pub struct MsgGrant {
69 #[prost(string, tag = "1")]
70 pub granter: ::prost::alloc::string::String,
71 #[prost(string, tag = "2")]
72 pub grantee: ::prost::alloc::string::String,
73 #[prost(message, optional, tag = "3")]
74 pub grant: ::core::option::Option<Grant>,
75}
76#[allow(clippy::derive_partial_eq_without_eq)]
78#[derive(Clone, PartialEq, ::prost::Message)]
79pub struct MsgExecResponse {
80 #[prost(bytes = "vec", repeated, tag = "1")]
81 pub results: ::prost::alloc::vec::Vec<::prost::alloc::vec::Vec<u8>>,
82}
83#[allow(clippy::derive_partial_eq_without_eq)]
87#[derive(Clone, PartialEq, ::prost::Message)]
88pub struct MsgExec {
89 #[prost(string, tag = "1")]
90 pub grantee: ::prost::alloc::string::String,
91 #[prost(message, repeated, tag = "2")]
95 pub msgs: ::prost::alloc::vec::Vec<::prost_types::Any>,
96}
97#[allow(clippy::derive_partial_eq_without_eq)]
99#[derive(Clone, PartialEq, ::prost::Message)]
100pub struct MsgGrantResponse {}
101#[allow(clippy::derive_partial_eq_without_eq)]
104#[derive(Clone, PartialEq, ::prost::Message)]
105pub struct MsgRevoke {
106 #[prost(string, tag = "1")]
107 pub granter: ::prost::alloc::string::String,
108 #[prost(string, tag = "2")]
109 pub grantee: ::prost::alloc::string::String,
110 #[prost(string, tag = "3")]
111 pub msg_type_url: ::prost::alloc::string::String,
112}
113#[allow(clippy::derive_partial_eq_without_eq)]
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct MsgRevokeResponse {}
117#[cfg(feature = "grpc")]
119#[cfg_attr(docsrs, doc(cfg(feature = "grpc")))]
120pub mod msg_client {
121 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
122 use tonic::codegen::http::Uri;
123 use tonic::codegen::*;
124 #[derive(Debug, Clone)]
126 pub struct MsgClient<T> {
127 inner: tonic::client::Grpc<T>,
128 }
129 #[cfg(feature = "grpc-transport")]
130 #[cfg_attr(docsrs, doc(cfg(feature = "grpc-transport")))]
131 impl MsgClient<tonic::transport::Channel> {
132 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
134 where
135 D: std::convert::TryInto<tonic::transport::Endpoint>,
136 D::Error: Into<StdError>,
137 {
138 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
139 Ok(Self::new(conn))
140 }
141 }
142 impl<T> MsgClient<T>
143 where
144 T: tonic::client::GrpcService<tonic::body::BoxBody>,
145 T::Error: Into<StdError>,
146 T::ResponseBody: Body<Data = Bytes> + Send + 'static,
147 <T::ResponseBody as Body>::Error: Into<StdError> + Send,
148 {
149 pub fn new(inner: T) -> Self {
150 let inner = tonic::client::Grpc::new(inner);
151 Self { inner }
152 }
153 pub fn with_origin(inner: T, origin: Uri) -> Self {
154 let inner = tonic::client::Grpc::with_origin(inner, origin);
155 Self { inner }
156 }
157 pub fn with_interceptor<F>(inner: T, interceptor: F) -> MsgClient<InterceptedService<T, F>>
158 where
159 F: tonic::service::Interceptor,
160 T::ResponseBody: Default,
161 T: tonic::codegen::Service<
162 http::Request<tonic::body::BoxBody>,
163 Response = http::Response<
164 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
165 >,
166 >,
167 <T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
168 Into<StdError> + Send + Sync,
169 {
170 MsgClient::new(InterceptedService::new(inner, interceptor))
171 }
172 #[must_use]
177 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
178 self.inner = self.inner.send_compressed(encoding);
179 self
180 }
181 #[must_use]
183 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
184 self.inner = self.inner.accept_compressed(encoding);
185 self
186 }
187 pub async fn grant(
192 &mut self,
193 request: impl tonic::IntoRequest<super::MsgGrant>,
194 ) -> Result<tonic::Response<super::MsgGrantResponse>, tonic::Status> {
195 self.inner.ready().await.map_err(|e| {
196 tonic::Status::new(
197 tonic::Code::Unknown,
198 format!("Service was not ready: {}", e.into()),
199 )
200 })?;
201 let codec = tonic::codec::ProstCodec::default();
202 let path = http::uri::PathAndQuery::from_static("/cosmos.authz.v1beta1.Msg/Grant");
203 self.inner.unary(request.into_request(), path, codec).await
204 }
205 pub async fn exec(
209 &mut self,
210 request: impl tonic::IntoRequest<super::MsgExec>,
211 ) -> Result<tonic::Response<super::MsgExecResponse>, tonic::Status> {
212 self.inner.ready().await.map_err(|e| {
213 tonic::Status::new(
214 tonic::Code::Unknown,
215 format!("Service was not ready: {}", e.into()),
216 )
217 })?;
218 let codec = tonic::codec::ProstCodec::default();
219 let path = http::uri::PathAndQuery::from_static("/cosmos.authz.v1beta1.Msg/Exec");
220 self.inner.unary(request.into_request(), path, codec).await
221 }
222 pub async fn revoke(
225 &mut self,
226 request: impl tonic::IntoRequest<super::MsgRevoke>,
227 ) -> Result<tonic::Response<super::MsgRevokeResponse>, tonic::Status> {
228 self.inner.ready().await.map_err(|e| {
229 tonic::Status::new(
230 tonic::Code::Unknown,
231 format!("Service was not ready: {}", e.into()),
232 )
233 })?;
234 let codec = tonic::codec::ProstCodec::default();
235 let path = http::uri::PathAndQuery::from_static("/cosmos.authz.v1beta1.Msg/Revoke");
236 self.inner.unary(request.into_request(), path, codec).await
237 }
238 }
239}
240#[cfg(feature = "grpc")]
242#[cfg_attr(docsrs, doc(cfg(feature = "grpc")))]
243pub mod msg_server {
244 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
245 use tonic::codegen::*;
246 #[async_trait]
248 pub trait Msg: Send + Sync + 'static {
249 async fn grant(
254 &self,
255 request: tonic::Request<super::MsgGrant>,
256 ) -> Result<tonic::Response<super::MsgGrantResponse>, tonic::Status>;
257 async fn exec(
261 &self,
262 request: tonic::Request<super::MsgExec>,
263 ) -> Result<tonic::Response<super::MsgExecResponse>, tonic::Status>;
264 async fn revoke(
267 &self,
268 request: tonic::Request<super::MsgRevoke>,
269 ) -> Result<tonic::Response<super::MsgRevokeResponse>, tonic::Status>;
270 }
271 #[derive(Debug)]
273 pub struct MsgServer<T: Msg> {
274 inner: _Inner<T>,
275 accept_compression_encodings: EnabledCompressionEncodings,
276 send_compression_encodings: EnabledCompressionEncodings,
277 }
278 struct _Inner<T>(Arc<T>);
279 impl<T: Msg> MsgServer<T> {
280 pub fn new(inner: T) -> Self {
281 Self::from_arc(Arc::new(inner))
282 }
283 pub fn from_arc(inner: Arc<T>) -> Self {
284 let inner = _Inner(inner);
285 Self {
286 inner,
287 accept_compression_encodings: Default::default(),
288 send_compression_encodings: Default::default(),
289 }
290 }
291 pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
292 where
293 F: tonic::service::Interceptor,
294 {
295 InterceptedService::new(Self::new(inner), interceptor)
296 }
297 #[must_use]
299 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
300 self.accept_compression_encodings.enable(encoding);
301 self
302 }
303 #[must_use]
305 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
306 self.send_compression_encodings.enable(encoding);
307 self
308 }
309 }
310 impl<T, B> tonic::codegen::Service<http::Request<B>> for MsgServer<T>
311 where
312 T: Msg,
313 B: Body + Send + 'static,
314 B::Error: Into<StdError> + Send + 'static,
315 {
316 type Response = http::Response<tonic::body::BoxBody>;
317 type Error = std::convert::Infallible;
318 type Future = BoxFuture<Self::Response, Self::Error>;
319 fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
320 Poll::Ready(Ok(()))
321 }
322 fn call(&mut self, req: http::Request<B>) -> Self::Future {
323 let inner = self.inner.clone();
324 match req.uri().path() {
325 "/cosmos.authz.v1beta1.Msg/Grant" => {
326 #[allow(non_camel_case_types)]
327 struct GrantSvc<T: Msg>(pub Arc<T>);
328 impl<T: Msg> tonic::server::UnaryService<super::MsgGrant> for GrantSvc<T> {
329 type Response = super::MsgGrantResponse;
330 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
331 fn call(
332 &mut self,
333 request: tonic::Request<super::MsgGrant>,
334 ) -> Self::Future {
335 let inner = self.0.clone();
336 let fut = async move { (*inner).grant(request).await };
337 Box::pin(fut)
338 }
339 }
340 let accept_compression_encodings = self.accept_compression_encodings;
341 let send_compression_encodings = self.send_compression_encodings;
342 let inner = self.inner.clone();
343 let fut = async move {
344 let inner = inner.0;
345 let method = GrantSvc(inner);
346 let codec = tonic::codec::ProstCodec::default();
347 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
348 accept_compression_encodings,
349 send_compression_encodings,
350 );
351 let res = grpc.unary(method, req).await;
352 Ok(res)
353 };
354 Box::pin(fut)
355 }
356 "/cosmos.authz.v1beta1.Msg/Exec" => {
357 #[allow(non_camel_case_types)]
358 struct ExecSvc<T: Msg>(pub Arc<T>);
359 impl<T: Msg> tonic::server::UnaryService<super::MsgExec> for ExecSvc<T> {
360 type Response = super::MsgExecResponse;
361 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
362 fn call(
363 &mut self,
364 request: tonic::Request<super::MsgExec>,
365 ) -> Self::Future {
366 let inner = self.0.clone();
367 let fut = async move { (*inner).exec(request).await };
368 Box::pin(fut)
369 }
370 }
371 let accept_compression_encodings = self.accept_compression_encodings;
372 let send_compression_encodings = self.send_compression_encodings;
373 let inner = self.inner.clone();
374 let fut = async move {
375 let inner = inner.0;
376 let method = ExecSvc(inner);
377 let codec = tonic::codec::ProstCodec::default();
378 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
379 accept_compression_encodings,
380 send_compression_encodings,
381 );
382 let res = grpc.unary(method, req).await;
383 Ok(res)
384 };
385 Box::pin(fut)
386 }
387 "/cosmos.authz.v1beta1.Msg/Revoke" => {
388 #[allow(non_camel_case_types)]
389 struct RevokeSvc<T: Msg>(pub Arc<T>);
390 impl<T: Msg> tonic::server::UnaryService<super::MsgRevoke> for RevokeSvc<T> {
391 type Response = super::MsgRevokeResponse;
392 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
393 fn call(
394 &mut self,
395 request: tonic::Request<super::MsgRevoke>,
396 ) -> Self::Future {
397 let inner = self.0.clone();
398 let fut = async move { (*inner).revoke(request).await };
399 Box::pin(fut)
400 }
401 }
402 let accept_compression_encodings = self.accept_compression_encodings;
403 let send_compression_encodings = self.send_compression_encodings;
404 let inner = self.inner.clone();
405 let fut = async move {
406 let inner = inner.0;
407 let method = RevokeSvc(inner);
408 let codec = tonic::codec::ProstCodec::default();
409 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
410 accept_compression_encodings,
411 send_compression_encodings,
412 );
413 let res = grpc.unary(method, req).await;
414 Ok(res)
415 };
416 Box::pin(fut)
417 }
418 _ => Box::pin(async move {
419 Ok(http::Response::builder()
420 .status(200)
421 .header("grpc-status", "12")
422 .header("content-type", "application/grpc")
423 .body(empty_body())
424 .unwrap())
425 }),
426 }
427 }
428 }
429 impl<T: Msg> Clone for MsgServer<T> {
430 fn clone(&self) -> Self {
431 let inner = self.inner.clone();
432 Self {
433 inner,
434 accept_compression_encodings: self.accept_compression_encodings,
435 send_compression_encodings: self.send_compression_encodings,
436 }
437 }
438 }
439 impl<T: Msg> Clone for _Inner<T> {
440 fn clone(&self) -> Self {
441 Self(self.0.clone())
442 }
443 }
444 impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
445 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
446 write!(f, "{:?}", self.0)
447 }
448 }
449 impl<T: Msg> tonic::server::NamedService for MsgServer<T> {
450 const NAME: &'static str = "cosmos.authz.v1beta1.Msg";
451 }
452}
453#[allow(clippy::derive_partial_eq_without_eq)]
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct QueryGrantsRequest {
457 #[prost(string, tag = "1")]
458 pub granter: ::prost::alloc::string::String,
459 #[prost(string, tag = "2")]
460 pub grantee: ::prost::alloc::string::String,
461 #[prost(string, tag = "3")]
463 pub msg_type_url: ::prost::alloc::string::String,
464 #[prost(message, optional, tag = "4")]
466 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
467}
468#[allow(clippy::derive_partial_eq_without_eq)]
470#[derive(Clone, PartialEq, ::prost::Message)]
471pub struct QueryGrantsResponse {
472 #[prost(message, repeated, tag = "1")]
474 pub grants: ::prost::alloc::vec::Vec<Grant>,
475 #[prost(message, optional, tag = "2")]
477 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageResponse>,
478}
479#[allow(clippy::derive_partial_eq_without_eq)]
481#[derive(Clone, PartialEq, ::prost::Message)]
482pub struct QueryGranterGrantsRequest {
483 #[prost(string, tag = "1")]
484 pub granter: ::prost::alloc::string::String,
485 #[prost(message, optional, tag = "2")]
487 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
488}
489#[allow(clippy::derive_partial_eq_without_eq)]
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct QueryGranterGrantsResponse {
493 #[prost(message, repeated, tag = "1")]
495 pub grants: ::prost::alloc::vec::Vec<GrantAuthorization>,
496 #[prost(message, optional, tag = "2")]
498 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageResponse>,
499}
500#[allow(clippy::derive_partial_eq_without_eq)]
502#[derive(Clone, PartialEq, ::prost::Message)]
503pub struct QueryGranteeGrantsRequest {
504 #[prost(string, tag = "1")]
505 pub grantee: ::prost::alloc::string::String,
506 #[prost(message, optional, tag = "2")]
508 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageRequest>,
509}
510#[allow(clippy::derive_partial_eq_without_eq)]
512#[derive(Clone, PartialEq, ::prost::Message)]
513pub struct QueryGranteeGrantsResponse {
514 #[prost(message, repeated, tag = "1")]
516 pub grants: ::prost::alloc::vec::Vec<GrantAuthorization>,
517 #[prost(message, optional, tag = "2")]
519 pub pagination: ::core::option::Option<super::super::base::query::v1beta1::PageResponse>,
520}
521#[cfg(feature = "grpc")]
523#[cfg_attr(docsrs, doc(cfg(feature = "grpc")))]
524pub mod query_client {
525 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
526 use tonic::codegen::http::Uri;
527 use tonic::codegen::*;
528 #[derive(Debug, Clone)]
530 pub struct QueryClient<T> {
531 inner: tonic::client::Grpc<T>,
532 }
533 #[cfg(feature = "grpc-transport")]
534 #[cfg_attr(docsrs, doc(cfg(feature = "grpc-transport")))]
535 impl QueryClient<tonic::transport::Channel> {
536 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
538 where
539 D: std::convert::TryInto<tonic::transport::Endpoint>,
540 D::Error: Into<StdError>,
541 {
542 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
543 Ok(Self::new(conn))
544 }
545 }
546 impl<T> QueryClient<T>
547 where
548 T: tonic::client::GrpcService<tonic::body::BoxBody>,
549 T::Error: Into<StdError>,
550 T::ResponseBody: Body<Data = Bytes> + Send + 'static,
551 <T::ResponseBody as Body>::Error: Into<StdError> + Send,
552 {
553 pub fn new(inner: T) -> Self {
554 let inner = tonic::client::Grpc::new(inner);
555 Self { inner }
556 }
557 pub fn with_origin(inner: T, origin: Uri) -> Self {
558 let inner = tonic::client::Grpc::with_origin(inner, origin);
559 Self { inner }
560 }
561 pub fn with_interceptor<F>(
562 inner: T,
563 interceptor: F,
564 ) -> QueryClient<InterceptedService<T, F>>
565 where
566 F: tonic::service::Interceptor,
567 T::ResponseBody: Default,
568 T: tonic::codegen::Service<
569 http::Request<tonic::body::BoxBody>,
570 Response = http::Response<
571 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
572 >,
573 >,
574 <T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
575 Into<StdError> + Send + Sync,
576 {
577 QueryClient::new(InterceptedService::new(inner, interceptor))
578 }
579 #[must_use]
584 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
585 self.inner = self.inner.send_compressed(encoding);
586 self
587 }
588 #[must_use]
590 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
591 self.inner = self.inner.accept_compressed(encoding);
592 self
593 }
594 pub async fn grants(
596 &mut self,
597 request: impl tonic::IntoRequest<super::QueryGrantsRequest>,
598 ) -> Result<tonic::Response<super::QueryGrantsResponse>, tonic::Status> {
599 self.inner.ready().await.map_err(|e| {
600 tonic::Status::new(
601 tonic::Code::Unknown,
602 format!("Service was not ready: {}", e.into()),
603 )
604 })?;
605 let codec = tonic::codec::ProstCodec::default();
606 let path = http::uri::PathAndQuery::from_static("/cosmos.authz.v1beta1.Query/Grants");
607 self.inner.unary(request.into_request(), path, codec).await
608 }
609 pub async fn granter_grants(
613 &mut self,
614 request: impl tonic::IntoRequest<super::QueryGranterGrantsRequest>,
615 ) -> Result<tonic::Response<super::QueryGranterGrantsResponse>, tonic::Status> {
616 self.inner.ready().await.map_err(|e| {
617 tonic::Status::new(
618 tonic::Code::Unknown,
619 format!("Service was not ready: {}", e.into()),
620 )
621 })?;
622 let codec = tonic::codec::ProstCodec::default();
623 let path =
624 http::uri::PathAndQuery::from_static("/cosmos.authz.v1beta1.Query/GranterGrants");
625 self.inner.unary(request.into_request(), path, codec).await
626 }
627 pub async fn grantee_grants(
631 &mut self,
632 request: impl tonic::IntoRequest<super::QueryGranteeGrantsRequest>,
633 ) -> Result<tonic::Response<super::QueryGranteeGrantsResponse>, tonic::Status> {
634 self.inner.ready().await.map_err(|e| {
635 tonic::Status::new(
636 tonic::Code::Unknown,
637 format!("Service was not ready: {}", e.into()),
638 )
639 })?;
640 let codec = tonic::codec::ProstCodec::default();
641 let path =
642 http::uri::PathAndQuery::from_static("/cosmos.authz.v1beta1.Query/GranteeGrants");
643 self.inner.unary(request.into_request(), path, codec).await
644 }
645 }
646}
647#[cfg(feature = "grpc")]
649#[cfg_attr(docsrs, doc(cfg(feature = "grpc")))]
650pub mod query_server {
651 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
652 use tonic::codegen::*;
653 #[async_trait]
655 pub trait Query: Send + Sync + 'static {
656 async fn grants(
658 &self,
659 request: tonic::Request<super::QueryGrantsRequest>,
660 ) -> Result<tonic::Response<super::QueryGrantsResponse>, tonic::Status>;
661 async fn granter_grants(
665 &self,
666 request: tonic::Request<super::QueryGranterGrantsRequest>,
667 ) -> Result<tonic::Response<super::QueryGranterGrantsResponse>, tonic::Status>;
668 async fn grantee_grants(
672 &self,
673 request: tonic::Request<super::QueryGranteeGrantsRequest>,
674 ) -> Result<tonic::Response<super::QueryGranteeGrantsResponse>, tonic::Status>;
675 }
676 #[derive(Debug)]
678 pub struct QueryServer<T: Query> {
679 inner: _Inner<T>,
680 accept_compression_encodings: EnabledCompressionEncodings,
681 send_compression_encodings: EnabledCompressionEncodings,
682 }
683 struct _Inner<T>(Arc<T>);
684 impl<T: Query> QueryServer<T> {
685 pub fn new(inner: T) -> Self {
686 Self::from_arc(Arc::new(inner))
687 }
688 pub fn from_arc(inner: Arc<T>) -> Self {
689 let inner = _Inner(inner);
690 Self {
691 inner,
692 accept_compression_encodings: Default::default(),
693 send_compression_encodings: Default::default(),
694 }
695 }
696 pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
697 where
698 F: tonic::service::Interceptor,
699 {
700 InterceptedService::new(Self::new(inner), interceptor)
701 }
702 #[must_use]
704 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
705 self.accept_compression_encodings.enable(encoding);
706 self
707 }
708 #[must_use]
710 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
711 self.send_compression_encodings.enable(encoding);
712 self
713 }
714 }
715 impl<T, B> tonic::codegen::Service<http::Request<B>> for QueryServer<T>
716 where
717 T: Query,
718 B: Body + Send + 'static,
719 B::Error: Into<StdError> + Send + 'static,
720 {
721 type Response = http::Response<tonic::body::BoxBody>;
722 type Error = std::convert::Infallible;
723 type Future = BoxFuture<Self::Response, Self::Error>;
724 fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
725 Poll::Ready(Ok(()))
726 }
727 fn call(&mut self, req: http::Request<B>) -> Self::Future {
728 let inner = self.inner.clone();
729 match req.uri().path() {
730 "/cosmos.authz.v1beta1.Query/Grants" => {
731 #[allow(non_camel_case_types)]
732 struct GrantsSvc<T: Query>(pub Arc<T>);
733 impl<T: Query> tonic::server::UnaryService<super::QueryGrantsRequest> for GrantsSvc<T> {
734 type Response = super::QueryGrantsResponse;
735 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
736 fn call(
737 &mut self,
738 request: tonic::Request<super::QueryGrantsRequest>,
739 ) -> Self::Future {
740 let inner = self.0.clone();
741 let fut = async move { (*inner).grants(request).await };
742 Box::pin(fut)
743 }
744 }
745 let accept_compression_encodings = self.accept_compression_encodings;
746 let send_compression_encodings = self.send_compression_encodings;
747 let inner = self.inner.clone();
748 let fut = async move {
749 let inner = inner.0;
750 let method = GrantsSvc(inner);
751 let codec = tonic::codec::ProstCodec::default();
752 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
753 accept_compression_encodings,
754 send_compression_encodings,
755 );
756 let res = grpc.unary(method, req).await;
757 Ok(res)
758 };
759 Box::pin(fut)
760 }
761 "/cosmos.authz.v1beta1.Query/GranterGrants" => {
762 #[allow(non_camel_case_types)]
763 struct GranterGrantsSvc<T: Query>(pub Arc<T>);
764 impl<T: Query> tonic::server::UnaryService<super::QueryGranterGrantsRequest>
765 for GranterGrantsSvc<T>
766 {
767 type Response = super::QueryGranterGrantsResponse;
768 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
769 fn call(
770 &mut self,
771 request: tonic::Request<super::QueryGranterGrantsRequest>,
772 ) -> Self::Future {
773 let inner = self.0.clone();
774 let fut = async move { (*inner).granter_grants(request).await };
775 Box::pin(fut)
776 }
777 }
778 let accept_compression_encodings = self.accept_compression_encodings;
779 let send_compression_encodings = self.send_compression_encodings;
780 let inner = self.inner.clone();
781 let fut = async move {
782 let inner = inner.0;
783 let method = GranterGrantsSvc(inner);
784 let codec = tonic::codec::ProstCodec::default();
785 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
786 accept_compression_encodings,
787 send_compression_encodings,
788 );
789 let res = grpc.unary(method, req).await;
790 Ok(res)
791 };
792 Box::pin(fut)
793 }
794 "/cosmos.authz.v1beta1.Query/GranteeGrants" => {
795 #[allow(non_camel_case_types)]
796 struct GranteeGrantsSvc<T: Query>(pub Arc<T>);
797 impl<T: Query> tonic::server::UnaryService<super::QueryGranteeGrantsRequest>
798 for GranteeGrantsSvc<T>
799 {
800 type Response = super::QueryGranteeGrantsResponse;
801 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
802 fn call(
803 &mut self,
804 request: tonic::Request<super::QueryGranteeGrantsRequest>,
805 ) -> Self::Future {
806 let inner = self.0.clone();
807 let fut = async move { (*inner).grantee_grants(request).await };
808 Box::pin(fut)
809 }
810 }
811 let accept_compression_encodings = self.accept_compression_encodings;
812 let send_compression_encodings = self.send_compression_encodings;
813 let inner = self.inner.clone();
814 let fut = async move {
815 let inner = inner.0;
816 let method = GranteeGrantsSvc(inner);
817 let codec = tonic::codec::ProstCodec::default();
818 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
819 accept_compression_encodings,
820 send_compression_encodings,
821 );
822 let res = grpc.unary(method, req).await;
823 Ok(res)
824 };
825 Box::pin(fut)
826 }
827 _ => Box::pin(async move {
828 Ok(http::Response::builder()
829 .status(200)
830 .header("grpc-status", "12")
831 .header("content-type", "application/grpc")
832 .body(empty_body())
833 .unwrap())
834 }),
835 }
836 }
837 }
838 impl<T: Query> Clone for QueryServer<T> {
839 fn clone(&self) -> Self {
840 let inner = self.inner.clone();
841 Self {
842 inner,
843 accept_compression_encodings: self.accept_compression_encodings,
844 send_compression_encodings: self.send_compression_encodings,
845 }
846 }
847 }
848 impl<T: Query> Clone for _Inner<T> {
849 fn clone(&self) -> Self {
850 Self(self.0.clone())
851 }
852 }
853 impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
854 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
855 write!(f, "{:?}", self.0)
856 }
857 }
858 impl<T: Query> tonic::server::NamedService for QueryServer<T> {
859 const NAME: &'static str = "cosmos.authz.v1beta1.Query";
860 }
861}
862#[allow(clippy::derive_partial_eq_without_eq)]
864#[derive(Clone, PartialEq, ::prost::Message)]
865pub struct GenesisState {
866 #[prost(message, repeated, tag = "1")]
867 pub authorization: ::prost::alloc::vec::Vec<GrantAuthorization>,
868}