side_proto/prost/side/
side.lending.tonic.rs

1// @generated
2/// Generated client implementations.
3#[cfg(feature = "grpc")]
4pub mod query_client {
5    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
6    use tonic::codegen::http::Uri;
7    use tonic::codegen::*;
8    #[derive(Debug, Clone)]
9    pub struct QueryClient<T> {
10        inner: tonic::client::Grpc<T>,
11    }
12    #[cfg(feature = "grpc-transport")]
13    impl QueryClient<tonic::transport::Channel> {
14        /// Attempt to create a new client by connecting to a given endpoint.
15        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
16        where
17            D: TryInto<tonic::transport::Endpoint>,
18            D::Error: Into<StdError>,
19        {
20            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
21            Ok(Self::new(conn))
22        }
23    }
24    impl<T> QueryClient<T>
25    where
26        T: tonic::client::GrpcService<tonic::body::BoxBody>,
27        T::Error: Into<StdError>,
28        T::ResponseBody: Body<Data = Bytes> + Send + 'static,
29        <T::ResponseBody as Body>::Error: Into<StdError> + Send,
30    {
31        pub fn new(inner: T) -> Self {
32            let inner = tonic::client::Grpc::new(inner);
33            Self { inner }
34        }
35        pub fn with_origin(inner: T, origin: Uri) -> Self {
36            let inner = tonic::client::Grpc::with_origin(inner, origin);
37            Self { inner }
38        }
39        pub fn with_interceptor<F>(
40            inner: T,
41            interceptor: F,
42        ) -> QueryClient<InterceptedService<T, F>>
43        where
44            F: tonic::service::Interceptor,
45            T::ResponseBody: Default,
46            T: tonic::codegen::Service<
47                http::Request<tonic::body::BoxBody>,
48                Response = http::Response<
49                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
50                >,
51            >,
52            <T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
53                Into<StdError> + Send + Sync,
54        {
55            QueryClient::new(InterceptedService::new(inner, interceptor))
56        }
57        /// Compress requests with the given encoding.
58        ///
59        /// This requires the server to support it otherwise it might respond with an
60        /// error.
61        #[must_use]
62        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
63            self.inner = self.inner.send_compressed(encoding);
64            self
65        }
66        /// Enable decompressing responses.
67        #[must_use]
68        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
69            self.inner = self.inner.accept_compressed(encoding);
70            self
71        }
72        /// Limits the maximum size of a decoded message.
73        ///
74        /// Default: `4MB`
75        #[must_use]
76        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
77            self.inner = self.inner.max_decoding_message_size(limit);
78            self
79        }
80        /// Limits the maximum size of an encoded message.
81        ///
82        /// Default: `usize::MAX`
83        #[must_use]
84        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
85            self.inner = self.inner.max_encoding_message_size(limit);
86            self
87        }
88        pub async fn params(
89            &mut self,
90            request: impl tonic::IntoRequest<super::QueryParamsRequest>,
91        ) -> core::result::Result<tonic::Response<super::QueryParamsResponse>, tonic::Status>
92        {
93            self.inner.ready().await.map_err(|e| {
94                tonic::Status::new(
95                    tonic::Code::Unknown,
96                    alloc::format!("Service was not ready: {}", e.into()),
97                )
98            })?;
99            let codec = tonic::codec::ProstCodec::default();
100            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/Params");
101            let mut req = request.into_request();
102            req.extensions_mut()
103                .insert(GrpcMethod::new("side.lending.Query", "Params"));
104            self.inner.unary(req, path, codec).await
105        }
106        pub async fn collateral_address(
107            &mut self,
108            request: impl tonic::IntoRequest<super::QueryCollateralAddressRequest>,
109        ) -> core::result::Result<
110            tonic::Response<super::QueryCollateralAddressResponse>,
111            tonic::Status,
112        > {
113            self.inner.ready().await.map_err(|e| {
114                tonic::Status::new(
115                    tonic::Code::Unknown,
116                    alloc::format!("Service was not ready: {}", e.into()),
117                )
118            })?;
119            let codec = tonic::codec::ProstCodec::default();
120            let path =
121                http::uri::PathAndQuery::from_static("/side.lending.Query/CollateralAddress");
122            let mut req = request.into_request();
123            req.extensions_mut()
124                .insert(GrpcMethod::new("side.lending.Query", "CollateralAddress"));
125            self.inner.unary(req, path, codec).await
126        }
127        pub async fn liquidation_event(
128            &mut self,
129            request: impl tonic::IntoRequest<super::QueryLiquidationEventRequest>,
130        ) -> core::result::Result<
131            tonic::Response<super::QueryLiquidationEventResponse>,
132            tonic::Status,
133        > {
134            self.inner.ready().await.map_err(|e| {
135                tonic::Status::new(
136                    tonic::Code::Unknown,
137                    alloc::format!("Service was not ready: {}", e.into()),
138                )
139            })?;
140            let codec = tonic::codec::ProstCodec::default();
141            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/LiquidationEvent");
142            let mut req = request.into_request();
143            req.extensions_mut()
144                .insert(GrpcMethod::new("side.lending.Query", "LiquidationEvent"));
145            self.inner.unary(req, path, codec).await
146        }
147        pub async fn liquidation_cet(
148            &mut self,
149            request: impl tonic::IntoRequest<super::QueryLiquidationCetRequest>,
150        ) -> core::result::Result<tonic::Response<super::QueryLiquidationCetResponse>, tonic::Status>
151        {
152            self.inner.ready().await.map_err(|e| {
153                tonic::Status::new(
154                    tonic::Code::Unknown,
155                    alloc::format!("Service was not ready: {}", e.into()),
156                )
157            })?;
158            let codec = tonic::codec::ProstCodec::default();
159            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/LiquidationCet");
160            let mut req = request.into_request();
161            req.extensions_mut()
162                .insert(GrpcMethod::new("side.lending.Query", "LiquidationCet"));
163            self.inner.unary(req, path, codec).await
164        }
165        pub async fn loan(
166            &mut self,
167            request: impl tonic::IntoRequest<super::QueryLoanRequest>,
168        ) -> core::result::Result<tonic::Response<super::QueryLoanResponse>, tonic::Status>
169        {
170            self.inner.ready().await.map_err(|e| {
171                tonic::Status::new(
172                    tonic::Code::Unknown,
173                    alloc::format!("Service was not ready: {}", e.into()),
174                )
175            })?;
176            let codec = tonic::codec::ProstCodec::default();
177            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/Loan");
178            let mut req = request.into_request();
179            req.extensions_mut()
180                .insert(GrpcMethod::new("side.lending.Query", "Loan"));
181            self.inner.unary(req, path, codec).await
182        }
183        pub async fn loans(
184            &mut self,
185            request: impl tonic::IntoRequest<super::QueryLoansRequest>,
186        ) -> core::result::Result<tonic::Response<super::QueryLoansResponse>, tonic::Status>
187        {
188            self.inner.ready().await.map_err(|e| {
189                tonic::Status::new(
190                    tonic::Code::Unknown,
191                    alloc::format!("Service was not ready: {}", e.into()),
192                )
193            })?;
194            let codec = tonic::codec::ProstCodec::default();
195            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/Loans");
196            let mut req = request.into_request();
197            req.extensions_mut()
198                .insert(GrpcMethod::new("side.lending.Query", "Loans"));
199            self.inner.unary(req, path, codec).await
200        }
201        pub async fn loan_dlc_meta(
202            &mut self,
203            request: impl tonic::IntoRequest<super::QueryLoanDlcMetaRequest>,
204        ) -> core::result::Result<tonic::Response<super::QueryLoanDlcMetaResponse>, tonic::Status>
205        {
206            self.inner.ready().await.map_err(|e| {
207                tonic::Status::new(
208                    tonic::Code::Unknown,
209                    alloc::format!("Service was not ready: {}", e.into()),
210                )
211            })?;
212            let codec = tonic::codec::ProstCodec::default();
213            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/LoanDlcMeta");
214            let mut req = request.into_request();
215            req.extensions_mut()
216                .insert(GrpcMethod::new("side.lending.Query", "LoanDlcMeta"));
217            self.inner.unary(req, path, codec).await
218        }
219        pub async fn repayment(
220            &mut self,
221            request: impl tonic::IntoRequest<super::QueryRepaymentRequest>,
222        ) -> core::result::Result<tonic::Response<super::QueryRepaymentResponse>, tonic::Status>
223        {
224            self.inner.ready().await.map_err(|e| {
225                tonic::Status::new(
226                    tonic::Code::Unknown,
227                    alloc::format!("Service was not ready: {}", e.into()),
228                )
229            })?;
230            let codec = tonic::codec::ProstCodec::default();
231            let path = http::uri::PathAndQuery::from_static("/side.lending.Query/Repayment");
232            let mut req = request.into_request();
233            req.extensions_mut()
234                .insert(GrpcMethod::new("side.lending.Query", "Repayment"));
235            self.inner.unary(req, path, codec).await
236        }
237    }
238}
239/// Generated server implementations.
240#[cfg(feature = "grpc")]
241pub mod query_server {
242    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
243    use tonic::codegen::*;
244    /// Generated trait containing gRPC methods that should be implemented for use with QueryServer.
245    #[async_trait]
246    pub trait Query: Send + Sync + 'static {
247        async fn params(
248            &self,
249            request: tonic::Request<super::QueryParamsRequest>,
250        ) -> core::result::Result<tonic::Response<super::QueryParamsResponse>, tonic::Status>;
251        async fn collateral_address(
252            &self,
253            request: tonic::Request<super::QueryCollateralAddressRequest>,
254        ) -> core::result::Result<
255            tonic::Response<super::QueryCollateralAddressResponse>,
256            tonic::Status,
257        >;
258        async fn liquidation_event(
259            &self,
260            request: tonic::Request<super::QueryLiquidationEventRequest>,
261        ) -> core::result::Result<
262            tonic::Response<super::QueryLiquidationEventResponse>,
263            tonic::Status,
264        >;
265        async fn liquidation_cet(
266            &self,
267            request: tonic::Request<super::QueryLiquidationCetRequest>,
268        ) -> core::result::Result<tonic::Response<super::QueryLiquidationCetResponse>, tonic::Status>;
269        async fn loan(
270            &self,
271            request: tonic::Request<super::QueryLoanRequest>,
272        ) -> core::result::Result<tonic::Response<super::QueryLoanResponse>, tonic::Status>;
273        async fn loans(
274            &self,
275            request: tonic::Request<super::QueryLoansRequest>,
276        ) -> core::result::Result<tonic::Response<super::QueryLoansResponse>, tonic::Status>;
277        async fn loan_dlc_meta(
278            &self,
279            request: tonic::Request<super::QueryLoanDlcMetaRequest>,
280        ) -> core::result::Result<tonic::Response<super::QueryLoanDlcMetaResponse>, tonic::Status>;
281        async fn repayment(
282            &self,
283            request: tonic::Request<super::QueryRepaymentRequest>,
284        ) -> core::result::Result<tonic::Response<super::QueryRepaymentResponse>, tonic::Status>;
285    }
286    #[derive(Debug)]
287    pub struct QueryServer<T: Query> {
288        inner: _Inner<T>,
289        accept_compression_encodings: EnabledCompressionEncodings,
290        send_compression_encodings: EnabledCompressionEncodings,
291        max_decoding_message_size: Option<usize>,
292        max_encoding_message_size: Option<usize>,
293    }
294    struct _Inner<T>(Arc<T>);
295    impl<T: Query> QueryServer<T> {
296        pub fn new(inner: T) -> Self {
297            Self::from_arc(Arc::new(inner))
298        }
299        pub fn from_arc(inner: Arc<T>) -> Self {
300            let inner = _Inner(inner);
301            Self {
302                inner,
303                accept_compression_encodings: Default::default(),
304                send_compression_encodings: Default::default(),
305                max_decoding_message_size: None,
306                max_encoding_message_size: None,
307            }
308        }
309        pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
310        where
311            F: tonic::service::Interceptor,
312        {
313            InterceptedService::new(Self::new(inner), interceptor)
314        }
315        /// Enable decompressing requests with the given encoding.
316        #[must_use]
317        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
318            self.accept_compression_encodings.enable(encoding);
319            self
320        }
321        /// Compress responses with the given encoding, if the client supports it.
322        #[must_use]
323        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
324            self.send_compression_encodings.enable(encoding);
325            self
326        }
327        /// Limits the maximum size of a decoded message.
328        ///
329        /// Default: `4MB`
330        #[must_use]
331        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
332            self.max_decoding_message_size = Some(limit);
333            self
334        }
335        /// Limits the maximum size of an encoded message.
336        ///
337        /// Default: `usize::MAX`
338        #[must_use]
339        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
340            self.max_encoding_message_size = Some(limit);
341            self
342        }
343    }
344    impl<T, B> tonic::codegen::Service<http::Request<B>> for QueryServer<T>
345    where
346        T: Query,
347        B: Body + Send + 'static,
348        B::Error: Into<StdError> + Send + 'static,
349    {
350        type Response = http::Response<tonic::body::BoxBody>;
351        type Error = std::convert::Infallible;
352        type Future = BoxFuture<Self::Response, Self::Error>;
353        fn poll_ready(
354            &mut self,
355            _cx: &mut Context<'_>,
356        ) -> Poll<core::result::Result<(), Self::Error>> {
357            Poll::Ready(Ok(()))
358        }
359        fn call(&mut self, req: http::Request<B>) -> Self::Future {
360            let inner = self.inner.clone();
361            match req.uri().path() {
362                "/side.lending.Query/Params" => {
363                    #[allow(non_camel_case_types)]
364                    struct ParamsSvc<T: Query>(pub Arc<T>);
365                    impl<T: Query> tonic::server::UnaryService<super::QueryParamsRequest> for ParamsSvc<T> {
366                        type Response = super::QueryParamsResponse;
367                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
368                        fn call(
369                            &mut self,
370                            request: tonic::Request<super::QueryParamsRequest>,
371                        ) -> Self::Future {
372                            let inner = Arc::clone(&self.0);
373                            let fut = async move { (*inner).params(request).await };
374                            Box::pin(fut)
375                        }
376                    }
377                    let accept_compression_encodings = self.accept_compression_encodings;
378                    let send_compression_encodings = self.send_compression_encodings;
379                    let max_decoding_message_size = self.max_decoding_message_size;
380                    let max_encoding_message_size = self.max_encoding_message_size;
381                    let inner = self.inner.clone();
382                    let fut = async move {
383                        let inner = inner.0;
384                        let method = ParamsSvc(inner);
385                        let codec = tonic::codec::ProstCodec::default();
386                        let mut grpc = tonic::server::Grpc::new(codec)
387                            .apply_compression_config(
388                                accept_compression_encodings,
389                                send_compression_encodings,
390                            )
391                            .apply_max_message_size_config(
392                                max_decoding_message_size,
393                                max_encoding_message_size,
394                            );
395                        let res = grpc.unary(method, req).await;
396                        Ok(res)
397                    };
398                    Box::pin(fut)
399                }
400                "/side.lending.Query/CollateralAddress" => {
401                    #[allow(non_camel_case_types)]
402                    struct CollateralAddressSvc<T: Query>(pub Arc<T>);
403                    impl<T: Query> tonic::server::UnaryService<super::QueryCollateralAddressRequest>
404                        for CollateralAddressSvc<T>
405                    {
406                        type Response = super::QueryCollateralAddressResponse;
407                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
408                        fn call(
409                            &mut self,
410                            request: tonic::Request<super::QueryCollateralAddressRequest>,
411                        ) -> Self::Future {
412                            let inner = Arc::clone(&self.0);
413                            let fut = async move { (*inner).collateral_address(request).await };
414                            Box::pin(fut)
415                        }
416                    }
417                    let accept_compression_encodings = self.accept_compression_encodings;
418                    let send_compression_encodings = self.send_compression_encodings;
419                    let max_decoding_message_size = self.max_decoding_message_size;
420                    let max_encoding_message_size = self.max_encoding_message_size;
421                    let inner = self.inner.clone();
422                    let fut = async move {
423                        let inner = inner.0;
424                        let method = CollateralAddressSvc(inner);
425                        let codec = tonic::codec::ProstCodec::default();
426                        let mut grpc = tonic::server::Grpc::new(codec)
427                            .apply_compression_config(
428                                accept_compression_encodings,
429                                send_compression_encodings,
430                            )
431                            .apply_max_message_size_config(
432                                max_decoding_message_size,
433                                max_encoding_message_size,
434                            );
435                        let res = grpc.unary(method, req).await;
436                        Ok(res)
437                    };
438                    Box::pin(fut)
439                }
440                "/side.lending.Query/LiquidationEvent" => {
441                    #[allow(non_camel_case_types)]
442                    struct LiquidationEventSvc<T: Query>(pub Arc<T>);
443                    impl<T: Query> tonic::server::UnaryService<super::QueryLiquidationEventRequest>
444                        for LiquidationEventSvc<T>
445                    {
446                        type Response = super::QueryLiquidationEventResponse;
447                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
448                        fn call(
449                            &mut self,
450                            request: tonic::Request<super::QueryLiquidationEventRequest>,
451                        ) -> Self::Future {
452                            let inner = Arc::clone(&self.0);
453                            let fut = async move { (*inner).liquidation_event(request).await };
454                            Box::pin(fut)
455                        }
456                    }
457                    let accept_compression_encodings = self.accept_compression_encodings;
458                    let send_compression_encodings = self.send_compression_encodings;
459                    let max_decoding_message_size = self.max_decoding_message_size;
460                    let max_encoding_message_size = self.max_encoding_message_size;
461                    let inner = self.inner.clone();
462                    let fut = async move {
463                        let inner = inner.0;
464                        let method = LiquidationEventSvc(inner);
465                        let codec = tonic::codec::ProstCodec::default();
466                        let mut grpc = tonic::server::Grpc::new(codec)
467                            .apply_compression_config(
468                                accept_compression_encodings,
469                                send_compression_encodings,
470                            )
471                            .apply_max_message_size_config(
472                                max_decoding_message_size,
473                                max_encoding_message_size,
474                            );
475                        let res = grpc.unary(method, req).await;
476                        Ok(res)
477                    };
478                    Box::pin(fut)
479                }
480                "/side.lending.Query/LiquidationCet" => {
481                    #[allow(non_camel_case_types)]
482                    struct LiquidationCetSvc<T: Query>(pub Arc<T>);
483                    impl<T: Query> tonic::server::UnaryService<super::QueryLiquidationCetRequest>
484                        for LiquidationCetSvc<T>
485                    {
486                        type Response = super::QueryLiquidationCetResponse;
487                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
488                        fn call(
489                            &mut self,
490                            request: tonic::Request<super::QueryLiquidationCetRequest>,
491                        ) -> Self::Future {
492                            let inner = Arc::clone(&self.0);
493                            let fut = async move { (*inner).liquidation_cet(request).await };
494                            Box::pin(fut)
495                        }
496                    }
497                    let accept_compression_encodings = self.accept_compression_encodings;
498                    let send_compression_encodings = self.send_compression_encodings;
499                    let max_decoding_message_size = self.max_decoding_message_size;
500                    let max_encoding_message_size = self.max_encoding_message_size;
501                    let inner = self.inner.clone();
502                    let fut = async move {
503                        let inner = inner.0;
504                        let method = LiquidationCetSvc(inner);
505                        let codec = tonic::codec::ProstCodec::default();
506                        let mut grpc = tonic::server::Grpc::new(codec)
507                            .apply_compression_config(
508                                accept_compression_encodings,
509                                send_compression_encodings,
510                            )
511                            .apply_max_message_size_config(
512                                max_decoding_message_size,
513                                max_encoding_message_size,
514                            );
515                        let res = grpc.unary(method, req).await;
516                        Ok(res)
517                    };
518                    Box::pin(fut)
519                }
520                "/side.lending.Query/Loan" => {
521                    #[allow(non_camel_case_types)]
522                    struct LoanSvc<T: Query>(pub Arc<T>);
523                    impl<T: Query> tonic::server::UnaryService<super::QueryLoanRequest> for LoanSvc<T> {
524                        type Response = super::QueryLoanResponse;
525                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
526                        fn call(
527                            &mut self,
528                            request: tonic::Request<super::QueryLoanRequest>,
529                        ) -> Self::Future {
530                            let inner = Arc::clone(&self.0);
531                            let fut = async move { (*inner).loan(request).await };
532                            Box::pin(fut)
533                        }
534                    }
535                    let accept_compression_encodings = self.accept_compression_encodings;
536                    let send_compression_encodings = self.send_compression_encodings;
537                    let max_decoding_message_size = self.max_decoding_message_size;
538                    let max_encoding_message_size = self.max_encoding_message_size;
539                    let inner = self.inner.clone();
540                    let fut = async move {
541                        let inner = inner.0;
542                        let method = LoanSvc(inner);
543                        let codec = tonic::codec::ProstCodec::default();
544                        let mut grpc = tonic::server::Grpc::new(codec)
545                            .apply_compression_config(
546                                accept_compression_encodings,
547                                send_compression_encodings,
548                            )
549                            .apply_max_message_size_config(
550                                max_decoding_message_size,
551                                max_encoding_message_size,
552                            );
553                        let res = grpc.unary(method, req).await;
554                        Ok(res)
555                    };
556                    Box::pin(fut)
557                }
558                "/side.lending.Query/Loans" => {
559                    #[allow(non_camel_case_types)]
560                    struct LoansSvc<T: Query>(pub Arc<T>);
561                    impl<T: Query> tonic::server::UnaryService<super::QueryLoansRequest> for LoansSvc<T> {
562                        type Response = super::QueryLoansResponse;
563                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
564                        fn call(
565                            &mut self,
566                            request: tonic::Request<super::QueryLoansRequest>,
567                        ) -> Self::Future {
568                            let inner = Arc::clone(&self.0);
569                            let fut = async move { (*inner).loans(request).await };
570                            Box::pin(fut)
571                        }
572                    }
573                    let accept_compression_encodings = self.accept_compression_encodings;
574                    let send_compression_encodings = self.send_compression_encodings;
575                    let max_decoding_message_size = self.max_decoding_message_size;
576                    let max_encoding_message_size = self.max_encoding_message_size;
577                    let inner = self.inner.clone();
578                    let fut = async move {
579                        let inner = inner.0;
580                        let method = LoansSvc(inner);
581                        let codec = tonic::codec::ProstCodec::default();
582                        let mut grpc = tonic::server::Grpc::new(codec)
583                            .apply_compression_config(
584                                accept_compression_encodings,
585                                send_compression_encodings,
586                            )
587                            .apply_max_message_size_config(
588                                max_decoding_message_size,
589                                max_encoding_message_size,
590                            );
591                        let res = grpc.unary(method, req).await;
592                        Ok(res)
593                    };
594                    Box::pin(fut)
595                }
596                "/side.lending.Query/LoanDlcMeta" => {
597                    #[allow(non_camel_case_types)]
598                    struct LoanDlcMetaSvc<T: Query>(pub Arc<T>);
599                    impl<T: Query> tonic::server::UnaryService<super::QueryLoanDlcMetaRequest> for LoanDlcMetaSvc<T> {
600                        type Response = super::QueryLoanDlcMetaResponse;
601                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
602                        fn call(
603                            &mut self,
604                            request: tonic::Request<super::QueryLoanDlcMetaRequest>,
605                        ) -> Self::Future {
606                            let inner = Arc::clone(&self.0);
607                            let fut = async move { (*inner).loan_dlc_meta(request).await };
608                            Box::pin(fut)
609                        }
610                    }
611                    let accept_compression_encodings = self.accept_compression_encodings;
612                    let send_compression_encodings = self.send_compression_encodings;
613                    let max_decoding_message_size = self.max_decoding_message_size;
614                    let max_encoding_message_size = self.max_encoding_message_size;
615                    let inner = self.inner.clone();
616                    let fut = async move {
617                        let inner = inner.0;
618                        let method = LoanDlcMetaSvc(inner);
619                        let codec = tonic::codec::ProstCodec::default();
620                        let mut grpc = tonic::server::Grpc::new(codec)
621                            .apply_compression_config(
622                                accept_compression_encodings,
623                                send_compression_encodings,
624                            )
625                            .apply_max_message_size_config(
626                                max_decoding_message_size,
627                                max_encoding_message_size,
628                            );
629                        let res = grpc.unary(method, req).await;
630                        Ok(res)
631                    };
632                    Box::pin(fut)
633                }
634                "/side.lending.Query/Repayment" => {
635                    #[allow(non_camel_case_types)]
636                    struct RepaymentSvc<T: Query>(pub Arc<T>);
637                    impl<T: Query> tonic::server::UnaryService<super::QueryRepaymentRequest> for RepaymentSvc<T> {
638                        type Response = super::QueryRepaymentResponse;
639                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
640                        fn call(
641                            &mut self,
642                            request: tonic::Request<super::QueryRepaymentRequest>,
643                        ) -> Self::Future {
644                            let inner = Arc::clone(&self.0);
645                            let fut = async move { (*inner).repayment(request).await };
646                            Box::pin(fut)
647                        }
648                    }
649                    let accept_compression_encodings = self.accept_compression_encodings;
650                    let send_compression_encodings = self.send_compression_encodings;
651                    let max_decoding_message_size = self.max_decoding_message_size;
652                    let max_encoding_message_size = self.max_encoding_message_size;
653                    let inner = self.inner.clone();
654                    let fut = async move {
655                        let inner = inner.0;
656                        let method = RepaymentSvc(inner);
657                        let codec = tonic::codec::ProstCodec::default();
658                        let mut grpc = tonic::server::Grpc::new(codec)
659                            .apply_compression_config(
660                                accept_compression_encodings,
661                                send_compression_encodings,
662                            )
663                            .apply_max_message_size_config(
664                                max_decoding_message_size,
665                                max_encoding_message_size,
666                            );
667                        let res = grpc.unary(method, req).await;
668                        Ok(res)
669                    };
670                    Box::pin(fut)
671                }
672                _ => Box::pin(async move {
673                    Ok(http::Response::builder()
674                        .status(200)
675                        .header("grpc-status", "12")
676                        .header("content-type", "application/grpc")
677                        .body(empty_body())
678                        .unwrap())
679                }),
680            }
681        }
682    }
683    impl<T: Query> Clone for QueryServer<T> {
684        fn clone(&self) -> Self {
685            let inner = self.inner.clone();
686            Self {
687                inner,
688                accept_compression_encodings: self.accept_compression_encodings,
689                send_compression_encodings: self.send_compression_encodings,
690                max_decoding_message_size: self.max_decoding_message_size,
691                max_encoding_message_size: self.max_encoding_message_size,
692            }
693        }
694    }
695    impl<T: Query> Clone for _Inner<T> {
696        fn clone(&self) -> Self {
697            Self(Arc::clone(&self.0))
698        }
699    }
700    impl<T: core::fmt::Debug> core::fmt::Debug for _Inner<T> {
701        fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
702            write!(f, "{:?}", self.0)
703        }
704    }
705    impl<T: Query> tonic::server::NamedService for QueryServer<T> {
706        const NAME: &'static str = "side.lending.Query";
707    }
708}
709/// Generated client implementations.
710#[cfg(feature = "grpc")]
711pub mod msg_client {
712    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
713    use tonic::codegen::http::Uri;
714    use tonic::codegen::*;
715    #[derive(Debug, Clone)]
716    pub struct MsgClient<T> {
717        inner: tonic::client::Grpc<T>,
718    }
719    #[cfg(feature = "grpc-transport")]
720    impl MsgClient<tonic::transport::Channel> {
721        /// Attempt to create a new client by connecting to a given endpoint.
722        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
723        where
724            D: TryInto<tonic::transport::Endpoint>,
725            D::Error: Into<StdError>,
726        {
727            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
728            Ok(Self::new(conn))
729        }
730    }
731    impl<T> MsgClient<T>
732    where
733        T: tonic::client::GrpcService<tonic::body::BoxBody>,
734        T::Error: Into<StdError>,
735        T::ResponseBody: Body<Data = Bytes> + Send + 'static,
736        <T::ResponseBody as Body>::Error: Into<StdError> + Send,
737    {
738        pub fn new(inner: T) -> Self {
739            let inner = tonic::client::Grpc::new(inner);
740            Self { inner }
741        }
742        pub fn with_origin(inner: T, origin: Uri) -> Self {
743            let inner = tonic::client::Grpc::with_origin(inner, origin);
744            Self { inner }
745        }
746        pub fn with_interceptor<F>(inner: T, interceptor: F) -> MsgClient<InterceptedService<T, F>>
747        where
748            F: tonic::service::Interceptor,
749            T::ResponseBody: Default,
750            T: tonic::codegen::Service<
751                http::Request<tonic::body::BoxBody>,
752                Response = http::Response<
753                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
754                >,
755            >,
756            <T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
757                Into<StdError> + Send + Sync,
758        {
759            MsgClient::new(InterceptedService::new(inner, interceptor))
760        }
761        /// Compress requests with the given encoding.
762        ///
763        /// This requires the server to support it otherwise it might respond with an
764        /// error.
765        #[must_use]
766        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
767            self.inner = self.inner.send_compressed(encoding);
768            self
769        }
770        /// Enable decompressing responses.
771        #[must_use]
772        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
773            self.inner = self.inner.accept_compressed(encoding);
774            self
775        }
776        /// Limits the maximum size of a decoded message.
777        ///
778        /// Default: `4MB`
779        #[must_use]
780        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
781            self.inner = self.inner.max_decoding_message_size(limit);
782            self
783        }
784        /// Limits the maximum size of an encoded message.
785        ///
786        /// Default: `usize::MAX`
787        #[must_use]
788        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
789            self.inner = self.inner.max_encoding_message_size(limit);
790            self
791        }
792        pub async fn create_pool(
793            &mut self,
794            request: impl tonic::IntoRequest<super::MsgCreatePool>,
795        ) -> core::result::Result<tonic::Response<super::MsgCreatePoolResponse>, tonic::Status>
796        {
797            self.inner.ready().await.map_err(|e| {
798                tonic::Status::new(
799                    tonic::Code::Unknown,
800                    alloc::format!("Service was not ready: {}", e.into()),
801                )
802            })?;
803            let codec = tonic::codec::ProstCodec::default();
804            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/CreatePool");
805            let mut req = request.into_request();
806            req.extensions_mut()
807                .insert(GrpcMethod::new("side.lending.Msg", "CreatePool"));
808            self.inner.unary(req, path, codec).await
809        }
810        pub async fn add_liquidity(
811            &mut self,
812            request: impl tonic::IntoRequest<super::MsgAddLiquidity>,
813        ) -> core::result::Result<tonic::Response<super::MsgAddLiquidityResponse>, tonic::Status>
814        {
815            self.inner.ready().await.map_err(|e| {
816                tonic::Status::new(
817                    tonic::Code::Unknown,
818                    alloc::format!("Service was not ready: {}", e.into()),
819                )
820            })?;
821            let codec = tonic::codec::ProstCodec::default();
822            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/AddLiquidity");
823            let mut req = request.into_request();
824            req.extensions_mut()
825                .insert(GrpcMethod::new("side.lending.Msg", "AddLiquidity"));
826            self.inner.unary(req, path, codec).await
827        }
828        pub async fn remove_liquidity(
829            &mut self,
830            request: impl tonic::IntoRequest<super::MsgRemoveLiquidity>,
831        ) -> core::result::Result<tonic::Response<super::MsgRemoveLiquidityResponse>, tonic::Status>
832        {
833            self.inner.ready().await.map_err(|e| {
834                tonic::Status::new(
835                    tonic::Code::Unknown,
836                    alloc::format!("Service was not ready: {}", e.into()),
837                )
838            })?;
839            let codec = tonic::codec::ProstCodec::default();
840            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/RemoveLiquidity");
841            let mut req = request.into_request();
842            req.extensions_mut()
843                .insert(GrpcMethod::new("side.lending.Msg", "RemoveLiquidity"));
844            self.inner.unary(req, path, codec).await
845        }
846        pub async fn apply(
847            &mut self,
848            request: impl tonic::IntoRequest<super::MsgApply>,
849        ) -> core::result::Result<tonic::Response<super::MsgApplyResponse>, tonic::Status> {
850            self.inner.ready().await.map_err(|e| {
851                tonic::Status::new(
852                    tonic::Code::Unknown,
853                    alloc::format!("Service was not ready: {}", e.into()),
854                )
855            })?;
856            let codec = tonic::codec::ProstCodec::default();
857            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/Apply");
858            let mut req = request.into_request();
859            req.extensions_mut()
860                .insert(GrpcMethod::new("side.lending.Msg", "Apply"));
861            self.inner.unary(req, path, codec).await
862        }
863        pub async fn approve(
864            &mut self,
865            request: impl tonic::IntoRequest<super::MsgApprove>,
866        ) -> core::result::Result<tonic::Response<super::MsgApproveResponse>, tonic::Status>
867        {
868            self.inner.ready().await.map_err(|e| {
869                tonic::Status::new(
870                    tonic::Code::Unknown,
871                    alloc::format!("Service was not ready: {}", e.into()),
872                )
873            })?;
874            let codec = tonic::codec::ProstCodec::default();
875            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/Approve");
876            let mut req = request.into_request();
877            req.extensions_mut()
878                .insert(GrpcMethod::new("side.lending.Msg", "Approve"));
879            self.inner.unary(req, path, codec).await
880        }
881        pub async fn redeem(
882            &mut self,
883            request: impl tonic::IntoRequest<super::MsgRedeem>,
884        ) -> core::result::Result<tonic::Response<super::MsgRedeemResponse>, tonic::Status>
885        {
886            self.inner.ready().await.map_err(|e| {
887                tonic::Status::new(
888                    tonic::Code::Unknown,
889                    alloc::format!("Service was not ready: {}", e.into()),
890                )
891            })?;
892            let codec = tonic::codec::ProstCodec::default();
893            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/Redeem");
894            let mut req = request.into_request();
895            req.extensions_mut()
896                .insert(GrpcMethod::new("side.lending.Msg", "Redeem"));
897            self.inner.unary(req, path, codec).await
898        }
899        pub async fn repay(
900            &mut self,
901            request: impl tonic::IntoRequest<super::MsgRepay>,
902        ) -> core::result::Result<tonic::Response<super::MsgRepayResponse>, tonic::Status> {
903            self.inner.ready().await.map_err(|e| {
904                tonic::Status::new(
905                    tonic::Code::Unknown,
906                    alloc::format!("Service was not ready: {}", e.into()),
907                )
908            })?;
909            let codec = tonic::codec::ProstCodec::default();
910            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/Repay");
911            let mut req = request.into_request();
912            req.extensions_mut()
913                .insert(GrpcMethod::new("side.lending.Msg", "Repay"));
914            self.inner.unary(req, path, codec).await
915        }
916        pub async fn submit_repayment_adaptor_signature(
917            &mut self,
918            request: impl tonic::IntoRequest<super::MsgSubmitRepaymentAdaptorSignature>,
919        ) -> core::result::Result<
920            tonic::Response<super::MsgSubmitRepaymentAdaptorSignatureResponse>,
921            tonic::Status,
922        > {
923            self.inner.ready().await.map_err(|e| {
924                tonic::Status::new(
925                    tonic::Code::Unknown,
926                    alloc::format!("Service was not ready: {}", e.into()),
927                )
928            })?;
929            let codec = tonic::codec::ProstCodec::default();
930            let path = http::uri::PathAndQuery::from_static(
931                "/side.lending.Msg/SubmitRepaymentAdaptorSignature",
932            );
933            let mut req = request.into_request();
934            req.extensions_mut().insert(GrpcMethod::new(
935                "side.lending.Msg",
936                "SubmitRepaymentAdaptorSignature",
937            ));
938            self.inner.unary(req, path, codec).await
939        }
940        pub async fn submit_liquidation_cet_signatures(
941            &mut self,
942            request: impl tonic::IntoRequest<super::MsgSubmitLiquidationCetSignatures>,
943        ) -> core::result::Result<
944            tonic::Response<super::MsgSubmitLiquidationCetSignaturesResponse>,
945            tonic::Status,
946        > {
947            self.inner.ready().await.map_err(|e| {
948                tonic::Status::new(
949                    tonic::Code::Unknown,
950                    alloc::format!("Service was not ready: {}", e.into()),
951                )
952            })?;
953            let codec = tonic::codec::ProstCodec::default();
954            let path = http::uri::PathAndQuery::from_static(
955                "/side.lending.Msg/SubmitLiquidationCetSignatures",
956            );
957            let mut req = request.into_request();
958            req.extensions_mut().insert(GrpcMethod::new(
959                "side.lending.Msg",
960                "SubmitLiquidationCetSignatures",
961            ));
962            self.inner.unary(req, path, codec).await
963        }
964        pub async fn close(
965            &mut self,
966            request: impl tonic::IntoRequest<super::MsgClose>,
967        ) -> core::result::Result<tonic::Response<super::MsgCloseResponse>, tonic::Status> {
968            self.inner.ready().await.map_err(|e| {
969                tonic::Status::new(
970                    tonic::Code::Unknown,
971                    alloc::format!("Service was not ready: {}", e.into()),
972                )
973            })?;
974            let codec = tonic::codec::ProstCodec::default();
975            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/Close");
976            let mut req = request.into_request();
977            req.extensions_mut()
978                .insert(GrpcMethod::new("side.lending.Msg", "Close"));
979            self.inner.unary(req, path, codec).await
980        }
981        pub async fn submit_price(
982            &mut self,
983            request: impl tonic::IntoRequest<super::MsgSubmitPrice>,
984        ) -> core::result::Result<tonic::Response<super::MsgSubmitPriceResponse>, tonic::Status>
985        {
986            self.inner.ready().await.map_err(|e| {
987                tonic::Status::new(
988                    tonic::Code::Unknown,
989                    alloc::format!("Service was not ready: {}", e.into()),
990                )
991            })?;
992            let codec = tonic::codec::ProstCodec::default();
993            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/SubmitPrice");
994            let mut req = request.into_request();
995            req.extensions_mut()
996                .insert(GrpcMethod::new("side.lending.Msg", "SubmitPrice"));
997            self.inner.unary(req, path, codec).await
998        }
999        pub async fn update_params(
1000            &mut self,
1001            request: impl tonic::IntoRequest<super::MsgUpdateParams>,
1002        ) -> core::result::Result<tonic::Response<super::MsgUpdateParamsResponse>, tonic::Status>
1003        {
1004            self.inner.ready().await.map_err(|e| {
1005                tonic::Status::new(
1006                    tonic::Code::Unknown,
1007                    alloc::format!("Service was not ready: {}", e.into()),
1008                )
1009            })?;
1010            let codec = tonic::codec::ProstCodec::default();
1011            let path = http::uri::PathAndQuery::from_static("/side.lending.Msg/UpdateParams");
1012            let mut req = request.into_request();
1013            req.extensions_mut()
1014                .insert(GrpcMethod::new("side.lending.Msg", "UpdateParams"));
1015            self.inner.unary(req, path, codec).await
1016        }
1017    }
1018}
1019/// Generated server implementations.
1020#[cfg(feature = "grpc")]
1021pub mod msg_server {
1022    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
1023    use tonic::codegen::*;
1024    /// Generated trait containing gRPC methods that should be implemented for use with MsgServer.
1025    #[async_trait]
1026    pub trait Msg: Send + Sync + 'static {
1027        async fn create_pool(
1028            &self,
1029            request: tonic::Request<super::MsgCreatePool>,
1030        ) -> core::result::Result<tonic::Response<super::MsgCreatePoolResponse>, tonic::Status>;
1031        async fn add_liquidity(
1032            &self,
1033            request: tonic::Request<super::MsgAddLiquidity>,
1034        ) -> core::result::Result<tonic::Response<super::MsgAddLiquidityResponse>, tonic::Status>;
1035        async fn remove_liquidity(
1036            &self,
1037            request: tonic::Request<super::MsgRemoveLiquidity>,
1038        ) -> core::result::Result<tonic::Response<super::MsgRemoveLiquidityResponse>, tonic::Status>;
1039        async fn apply(
1040            &self,
1041            request: tonic::Request<super::MsgApply>,
1042        ) -> core::result::Result<tonic::Response<super::MsgApplyResponse>, tonic::Status>;
1043        async fn approve(
1044            &self,
1045            request: tonic::Request<super::MsgApprove>,
1046        ) -> core::result::Result<tonic::Response<super::MsgApproveResponse>, tonic::Status>;
1047        async fn redeem(
1048            &self,
1049            request: tonic::Request<super::MsgRedeem>,
1050        ) -> core::result::Result<tonic::Response<super::MsgRedeemResponse>, tonic::Status>;
1051        async fn repay(
1052            &self,
1053            request: tonic::Request<super::MsgRepay>,
1054        ) -> core::result::Result<tonic::Response<super::MsgRepayResponse>, tonic::Status>;
1055        async fn submit_repayment_adaptor_signature(
1056            &self,
1057            request: tonic::Request<super::MsgSubmitRepaymentAdaptorSignature>,
1058        ) -> core::result::Result<
1059            tonic::Response<super::MsgSubmitRepaymentAdaptorSignatureResponse>,
1060            tonic::Status,
1061        >;
1062        async fn submit_liquidation_cet_signatures(
1063            &self,
1064            request: tonic::Request<super::MsgSubmitLiquidationCetSignatures>,
1065        ) -> core::result::Result<
1066            tonic::Response<super::MsgSubmitLiquidationCetSignaturesResponse>,
1067            tonic::Status,
1068        >;
1069        async fn close(
1070            &self,
1071            request: tonic::Request<super::MsgClose>,
1072        ) -> core::result::Result<tonic::Response<super::MsgCloseResponse>, tonic::Status>;
1073        async fn submit_price(
1074            &self,
1075            request: tonic::Request<super::MsgSubmitPrice>,
1076        ) -> core::result::Result<tonic::Response<super::MsgSubmitPriceResponse>, tonic::Status>;
1077        async fn update_params(
1078            &self,
1079            request: tonic::Request<super::MsgUpdateParams>,
1080        ) -> core::result::Result<tonic::Response<super::MsgUpdateParamsResponse>, tonic::Status>;
1081    }
1082    #[derive(Debug)]
1083    pub struct MsgServer<T: Msg> {
1084        inner: _Inner<T>,
1085        accept_compression_encodings: EnabledCompressionEncodings,
1086        send_compression_encodings: EnabledCompressionEncodings,
1087        max_decoding_message_size: Option<usize>,
1088        max_encoding_message_size: Option<usize>,
1089    }
1090    struct _Inner<T>(Arc<T>);
1091    impl<T: Msg> MsgServer<T> {
1092        pub fn new(inner: T) -> Self {
1093            Self::from_arc(Arc::new(inner))
1094        }
1095        pub fn from_arc(inner: Arc<T>) -> Self {
1096            let inner = _Inner(inner);
1097            Self {
1098                inner,
1099                accept_compression_encodings: Default::default(),
1100                send_compression_encodings: Default::default(),
1101                max_decoding_message_size: None,
1102                max_encoding_message_size: None,
1103            }
1104        }
1105        pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
1106        where
1107            F: tonic::service::Interceptor,
1108        {
1109            InterceptedService::new(Self::new(inner), interceptor)
1110        }
1111        /// Enable decompressing requests with the given encoding.
1112        #[must_use]
1113        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1114            self.accept_compression_encodings.enable(encoding);
1115            self
1116        }
1117        /// Compress responses with the given encoding, if the client supports it.
1118        #[must_use]
1119        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1120            self.send_compression_encodings.enable(encoding);
1121            self
1122        }
1123        /// Limits the maximum size of a decoded message.
1124        ///
1125        /// Default: `4MB`
1126        #[must_use]
1127        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1128            self.max_decoding_message_size = Some(limit);
1129            self
1130        }
1131        /// Limits the maximum size of an encoded message.
1132        ///
1133        /// Default: `usize::MAX`
1134        #[must_use]
1135        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1136            self.max_encoding_message_size = Some(limit);
1137            self
1138        }
1139    }
1140    impl<T, B> tonic::codegen::Service<http::Request<B>> for MsgServer<T>
1141    where
1142        T: Msg,
1143        B: Body + Send + 'static,
1144        B::Error: Into<StdError> + Send + 'static,
1145    {
1146        type Response = http::Response<tonic::body::BoxBody>;
1147        type Error = std::convert::Infallible;
1148        type Future = BoxFuture<Self::Response, Self::Error>;
1149        fn poll_ready(
1150            &mut self,
1151            _cx: &mut Context<'_>,
1152        ) -> Poll<core::result::Result<(), Self::Error>> {
1153            Poll::Ready(Ok(()))
1154        }
1155        fn call(&mut self, req: http::Request<B>) -> Self::Future {
1156            let inner = self.inner.clone();
1157            match req.uri().path() {
1158                "/side.lending.Msg/CreatePool" => {
1159                    #[allow(non_camel_case_types)]
1160                    struct CreatePoolSvc<T: Msg>(pub Arc<T>);
1161                    impl<T: Msg> tonic::server::UnaryService<super::MsgCreatePool> for CreatePoolSvc<T> {
1162                        type Response = super::MsgCreatePoolResponse;
1163                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1164                        fn call(
1165                            &mut self,
1166                            request: tonic::Request<super::MsgCreatePool>,
1167                        ) -> Self::Future {
1168                            let inner = Arc::clone(&self.0);
1169                            let fut = async move { (*inner).create_pool(request).await };
1170                            Box::pin(fut)
1171                        }
1172                    }
1173                    let accept_compression_encodings = self.accept_compression_encodings;
1174                    let send_compression_encodings = self.send_compression_encodings;
1175                    let max_decoding_message_size = self.max_decoding_message_size;
1176                    let max_encoding_message_size = self.max_encoding_message_size;
1177                    let inner = self.inner.clone();
1178                    let fut = async move {
1179                        let inner = inner.0;
1180                        let method = CreatePoolSvc(inner);
1181                        let codec = tonic::codec::ProstCodec::default();
1182                        let mut grpc = tonic::server::Grpc::new(codec)
1183                            .apply_compression_config(
1184                                accept_compression_encodings,
1185                                send_compression_encodings,
1186                            )
1187                            .apply_max_message_size_config(
1188                                max_decoding_message_size,
1189                                max_encoding_message_size,
1190                            );
1191                        let res = grpc.unary(method, req).await;
1192                        Ok(res)
1193                    };
1194                    Box::pin(fut)
1195                }
1196                "/side.lending.Msg/AddLiquidity" => {
1197                    #[allow(non_camel_case_types)]
1198                    struct AddLiquiditySvc<T: Msg>(pub Arc<T>);
1199                    impl<T: Msg> tonic::server::UnaryService<super::MsgAddLiquidity> for AddLiquiditySvc<T> {
1200                        type Response = super::MsgAddLiquidityResponse;
1201                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1202                        fn call(
1203                            &mut self,
1204                            request: tonic::Request<super::MsgAddLiquidity>,
1205                        ) -> Self::Future {
1206                            let inner = Arc::clone(&self.0);
1207                            let fut = async move { (*inner).add_liquidity(request).await };
1208                            Box::pin(fut)
1209                        }
1210                    }
1211                    let accept_compression_encodings = self.accept_compression_encodings;
1212                    let send_compression_encodings = self.send_compression_encodings;
1213                    let max_decoding_message_size = self.max_decoding_message_size;
1214                    let max_encoding_message_size = self.max_encoding_message_size;
1215                    let inner = self.inner.clone();
1216                    let fut = async move {
1217                        let inner = inner.0;
1218                        let method = AddLiquiditySvc(inner);
1219                        let codec = tonic::codec::ProstCodec::default();
1220                        let mut grpc = tonic::server::Grpc::new(codec)
1221                            .apply_compression_config(
1222                                accept_compression_encodings,
1223                                send_compression_encodings,
1224                            )
1225                            .apply_max_message_size_config(
1226                                max_decoding_message_size,
1227                                max_encoding_message_size,
1228                            );
1229                        let res = grpc.unary(method, req).await;
1230                        Ok(res)
1231                    };
1232                    Box::pin(fut)
1233                }
1234                "/side.lending.Msg/RemoveLiquidity" => {
1235                    #[allow(non_camel_case_types)]
1236                    struct RemoveLiquiditySvc<T: Msg>(pub Arc<T>);
1237                    impl<T: Msg> tonic::server::UnaryService<super::MsgRemoveLiquidity> for RemoveLiquiditySvc<T> {
1238                        type Response = super::MsgRemoveLiquidityResponse;
1239                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1240                        fn call(
1241                            &mut self,
1242                            request: tonic::Request<super::MsgRemoveLiquidity>,
1243                        ) -> Self::Future {
1244                            let inner = Arc::clone(&self.0);
1245                            let fut = async move { (*inner).remove_liquidity(request).await };
1246                            Box::pin(fut)
1247                        }
1248                    }
1249                    let accept_compression_encodings = self.accept_compression_encodings;
1250                    let send_compression_encodings = self.send_compression_encodings;
1251                    let max_decoding_message_size = self.max_decoding_message_size;
1252                    let max_encoding_message_size = self.max_encoding_message_size;
1253                    let inner = self.inner.clone();
1254                    let fut = async move {
1255                        let inner = inner.0;
1256                        let method = RemoveLiquiditySvc(inner);
1257                        let codec = tonic::codec::ProstCodec::default();
1258                        let mut grpc = tonic::server::Grpc::new(codec)
1259                            .apply_compression_config(
1260                                accept_compression_encodings,
1261                                send_compression_encodings,
1262                            )
1263                            .apply_max_message_size_config(
1264                                max_decoding_message_size,
1265                                max_encoding_message_size,
1266                            );
1267                        let res = grpc.unary(method, req).await;
1268                        Ok(res)
1269                    };
1270                    Box::pin(fut)
1271                }
1272                "/side.lending.Msg/Apply" => {
1273                    #[allow(non_camel_case_types)]
1274                    struct ApplySvc<T: Msg>(pub Arc<T>);
1275                    impl<T: Msg> tonic::server::UnaryService<super::MsgApply> for ApplySvc<T> {
1276                        type Response = super::MsgApplyResponse;
1277                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1278                        fn call(
1279                            &mut self,
1280                            request: tonic::Request<super::MsgApply>,
1281                        ) -> Self::Future {
1282                            let inner = Arc::clone(&self.0);
1283                            let fut = async move { (*inner).apply(request).await };
1284                            Box::pin(fut)
1285                        }
1286                    }
1287                    let accept_compression_encodings = self.accept_compression_encodings;
1288                    let send_compression_encodings = self.send_compression_encodings;
1289                    let max_decoding_message_size = self.max_decoding_message_size;
1290                    let max_encoding_message_size = self.max_encoding_message_size;
1291                    let inner = self.inner.clone();
1292                    let fut = async move {
1293                        let inner = inner.0;
1294                        let method = ApplySvc(inner);
1295                        let codec = tonic::codec::ProstCodec::default();
1296                        let mut grpc = tonic::server::Grpc::new(codec)
1297                            .apply_compression_config(
1298                                accept_compression_encodings,
1299                                send_compression_encodings,
1300                            )
1301                            .apply_max_message_size_config(
1302                                max_decoding_message_size,
1303                                max_encoding_message_size,
1304                            );
1305                        let res = grpc.unary(method, req).await;
1306                        Ok(res)
1307                    };
1308                    Box::pin(fut)
1309                }
1310                "/side.lending.Msg/Approve" => {
1311                    #[allow(non_camel_case_types)]
1312                    struct ApproveSvc<T: Msg>(pub Arc<T>);
1313                    impl<T: Msg> tonic::server::UnaryService<super::MsgApprove> for ApproveSvc<T> {
1314                        type Response = super::MsgApproveResponse;
1315                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1316                        fn call(
1317                            &mut self,
1318                            request: tonic::Request<super::MsgApprove>,
1319                        ) -> Self::Future {
1320                            let inner = Arc::clone(&self.0);
1321                            let fut = async move { (*inner).approve(request).await };
1322                            Box::pin(fut)
1323                        }
1324                    }
1325                    let accept_compression_encodings = self.accept_compression_encodings;
1326                    let send_compression_encodings = self.send_compression_encodings;
1327                    let max_decoding_message_size = self.max_decoding_message_size;
1328                    let max_encoding_message_size = self.max_encoding_message_size;
1329                    let inner = self.inner.clone();
1330                    let fut = async move {
1331                        let inner = inner.0;
1332                        let method = ApproveSvc(inner);
1333                        let codec = tonic::codec::ProstCodec::default();
1334                        let mut grpc = tonic::server::Grpc::new(codec)
1335                            .apply_compression_config(
1336                                accept_compression_encodings,
1337                                send_compression_encodings,
1338                            )
1339                            .apply_max_message_size_config(
1340                                max_decoding_message_size,
1341                                max_encoding_message_size,
1342                            );
1343                        let res = grpc.unary(method, req).await;
1344                        Ok(res)
1345                    };
1346                    Box::pin(fut)
1347                }
1348                "/side.lending.Msg/Redeem" => {
1349                    #[allow(non_camel_case_types)]
1350                    struct RedeemSvc<T: Msg>(pub Arc<T>);
1351                    impl<T: Msg> tonic::server::UnaryService<super::MsgRedeem> for RedeemSvc<T> {
1352                        type Response = super::MsgRedeemResponse;
1353                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1354                        fn call(
1355                            &mut self,
1356                            request: tonic::Request<super::MsgRedeem>,
1357                        ) -> Self::Future {
1358                            let inner = Arc::clone(&self.0);
1359                            let fut = async move { (*inner).redeem(request).await };
1360                            Box::pin(fut)
1361                        }
1362                    }
1363                    let accept_compression_encodings = self.accept_compression_encodings;
1364                    let send_compression_encodings = self.send_compression_encodings;
1365                    let max_decoding_message_size = self.max_decoding_message_size;
1366                    let max_encoding_message_size = self.max_encoding_message_size;
1367                    let inner = self.inner.clone();
1368                    let fut = async move {
1369                        let inner = inner.0;
1370                        let method = RedeemSvc(inner);
1371                        let codec = tonic::codec::ProstCodec::default();
1372                        let mut grpc = tonic::server::Grpc::new(codec)
1373                            .apply_compression_config(
1374                                accept_compression_encodings,
1375                                send_compression_encodings,
1376                            )
1377                            .apply_max_message_size_config(
1378                                max_decoding_message_size,
1379                                max_encoding_message_size,
1380                            );
1381                        let res = grpc.unary(method, req).await;
1382                        Ok(res)
1383                    };
1384                    Box::pin(fut)
1385                }
1386                "/side.lending.Msg/Repay" => {
1387                    #[allow(non_camel_case_types)]
1388                    struct RepaySvc<T: Msg>(pub Arc<T>);
1389                    impl<T: Msg> tonic::server::UnaryService<super::MsgRepay> for RepaySvc<T> {
1390                        type Response = super::MsgRepayResponse;
1391                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1392                        fn call(
1393                            &mut self,
1394                            request: tonic::Request<super::MsgRepay>,
1395                        ) -> Self::Future {
1396                            let inner = Arc::clone(&self.0);
1397                            let fut = async move { (*inner).repay(request).await };
1398                            Box::pin(fut)
1399                        }
1400                    }
1401                    let accept_compression_encodings = self.accept_compression_encodings;
1402                    let send_compression_encodings = self.send_compression_encodings;
1403                    let max_decoding_message_size = self.max_decoding_message_size;
1404                    let max_encoding_message_size = self.max_encoding_message_size;
1405                    let inner = self.inner.clone();
1406                    let fut = async move {
1407                        let inner = inner.0;
1408                        let method = RepaySvc(inner);
1409                        let codec = tonic::codec::ProstCodec::default();
1410                        let mut grpc = tonic::server::Grpc::new(codec)
1411                            .apply_compression_config(
1412                                accept_compression_encodings,
1413                                send_compression_encodings,
1414                            )
1415                            .apply_max_message_size_config(
1416                                max_decoding_message_size,
1417                                max_encoding_message_size,
1418                            );
1419                        let res = grpc.unary(method, req).await;
1420                        Ok(res)
1421                    };
1422                    Box::pin(fut)
1423                }
1424                "/side.lending.Msg/SubmitRepaymentAdaptorSignature" => {
1425                    #[allow(non_camel_case_types)]
1426                    struct SubmitRepaymentAdaptorSignatureSvc<T: Msg>(pub Arc<T>);
1427                    impl<T: Msg>
1428                        tonic::server::UnaryService<super::MsgSubmitRepaymentAdaptorSignature>
1429                        for SubmitRepaymentAdaptorSignatureSvc<T>
1430                    {
1431                        type Response = super::MsgSubmitRepaymentAdaptorSignatureResponse;
1432                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1433                        fn call(
1434                            &mut self,
1435                            request: tonic::Request<super::MsgSubmitRepaymentAdaptorSignature>,
1436                        ) -> Self::Future {
1437                            let inner = Arc::clone(&self.0);
1438                            let fut = async move {
1439                                (*inner).submit_repayment_adaptor_signature(request).await
1440                            };
1441                            Box::pin(fut)
1442                        }
1443                    }
1444                    let accept_compression_encodings = self.accept_compression_encodings;
1445                    let send_compression_encodings = self.send_compression_encodings;
1446                    let max_decoding_message_size = self.max_decoding_message_size;
1447                    let max_encoding_message_size = self.max_encoding_message_size;
1448                    let inner = self.inner.clone();
1449                    let fut = async move {
1450                        let inner = inner.0;
1451                        let method = SubmitRepaymentAdaptorSignatureSvc(inner);
1452                        let codec = tonic::codec::ProstCodec::default();
1453                        let mut grpc = tonic::server::Grpc::new(codec)
1454                            .apply_compression_config(
1455                                accept_compression_encodings,
1456                                send_compression_encodings,
1457                            )
1458                            .apply_max_message_size_config(
1459                                max_decoding_message_size,
1460                                max_encoding_message_size,
1461                            );
1462                        let res = grpc.unary(method, req).await;
1463                        Ok(res)
1464                    };
1465                    Box::pin(fut)
1466                }
1467                "/side.lending.Msg/SubmitLiquidationCetSignatures" => {
1468                    #[allow(non_camel_case_types)]
1469                    struct SubmitLiquidationCetSignaturesSvc<T: Msg>(pub Arc<T>);
1470                    impl<T: Msg>
1471                        tonic::server::UnaryService<super::MsgSubmitLiquidationCetSignatures>
1472                        for SubmitLiquidationCetSignaturesSvc<T>
1473                    {
1474                        type Response = super::MsgSubmitLiquidationCetSignaturesResponse;
1475                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1476                        fn call(
1477                            &mut self,
1478                            request: tonic::Request<super::MsgSubmitLiquidationCetSignatures>,
1479                        ) -> Self::Future {
1480                            let inner = Arc::clone(&self.0);
1481                            let fut = async move {
1482                                (*inner).submit_liquidation_cet_signatures(request).await
1483                            };
1484                            Box::pin(fut)
1485                        }
1486                    }
1487                    let accept_compression_encodings = self.accept_compression_encodings;
1488                    let send_compression_encodings = self.send_compression_encodings;
1489                    let max_decoding_message_size = self.max_decoding_message_size;
1490                    let max_encoding_message_size = self.max_encoding_message_size;
1491                    let inner = self.inner.clone();
1492                    let fut = async move {
1493                        let inner = inner.0;
1494                        let method = SubmitLiquidationCetSignaturesSvc(inner);
1495                        let codec = tonic::codec::ProstCodec::default();
1496                        let mut grpc = tonic::server::Grpc::new(codec)
1497                            .apply_compression_config(
1498                                accept_compression_encodings,
1499                                send_compression_encodings,
1500                            )
1501                            .apply_max_message_size_config(
1502                                max_decoding_message_size,
1503                                max_encoding_message_size,
1504                            );
1505                        let res = grpc.unary(method, req).await;
1506                        Ok(res)
1507                    };
1508                    Box::pin(fut)
1509                }
1510                "/side.lending.Msg/Close" => {
1511                    #[allow(non_camel_case_types)]
1512                    struct CloseSvc<T: Msg>(pub Arc<T>);
1513                    impl<T: Msg> tonic::server::UnaryService<super::MsgClose> for CloseSvc<T> {
1514                        type Response = super::MsgCloseResponse;
1515                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1516                        fn call(
1517                            &mut self,
1518                            request: tonic::Request<super::MsgClose>,
1519                        ) -> Self::Future {
1520                            let inner = Arc::clone(&self.0);
1521                            let fut = async move { (*inner).close(request).await };
1522                            Box::pin(fut)
1523                        }
1524                    }
1525                    let accept_compression_encodings = self.accept_compression_encodings;
1526                    let send_compression_encodings = self.send_compression_encodings;
1527                    let max_decoding_message_size = self.max_decoding_message_size;
1528                    let max_encoding_message_size = self.max_encoding_message_size;
1529                    let inner = self.inner.clone();
1530                    let fut = async move {
1531                        let inner = inner.0;
1532                        let method = CloseSvc(inner);
1533                        let codec = tonic::codec::ProstCodec::default();
1534                        let mut grpc = tonic::server::Grpc::new(codec)
1535                            .apply_compression_config(
1536                                accept_compression_encodings,
1537                                send_compression_encodings,
1538                            )
1539                            .apply_max_message_size_config(
1540                                max_decoding_message_size,
1541                                max_encoding_message_size,
1542                            );
1543                        let res = grpc.unary(method, req).await;
1544                        Ok(res)
1545                    };
1546                    Box::pin(fut)
1547                }
1548                "/side.lending.Msg/SubmitPrice" => {
1549                    #[allow(non_camel_case_types)]
1550                    struct SubmitPriceSvc<T: Msg>(pub Arc<T>);
1551                    impl<T: Msg> tonic::server::UnaryService<super::MsgSubmitPrice> for SubmitPriceSvc<T> {
1552                        type Response = super::MsgSubmitPriceResponse;
1553                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1554                        fn call(
1555                            &mut self,
1556                            request: tonic::Request<super::MsgSubmitPrice>,
1557                        ) -> Self::Future {
1558                            let inner = Arc::clone(&self.0);
1559                            let fut = async move { (*inner).submit_price(request).await };
1560                            Box::pin(fut)
1561                        }
1562                    }
1563                    let accept_compression_encodings = self.accept_compression_encodings;
1564                    let send_compression_encodings = self.send_compression_encodings;
1565                    let max_decoding_message_size = self.max_decoding_message_size;
1566                    let max_encoding_message_size = self.max_encoding_message_size;
1567                    let inner = self.inner.clone();
1568                    let fut = async move {
1569                        let inner = inner.0;
1570                        let method = SubmitPriceSvc(inner);
1571                        let codec = tonic::codec::ProstCodec::default();
1572                        let mut grpc = tonic::server::Grpc::new(codec)
1573                            .apply_compression_config(
1574                                accept_compression_encodings,
1575                                send_compression_encodings,
1576                            )
1577                            .apply_max_message_size_config(
1578                                max_decoding_message_size,
1579                                max_encoding_message_size,
1580                            );
1581                        let res = grpc.unary(method, req).await;
1582                        Ok(res)
1583                    };
1584                    Box::pin(fut)
1585                }
1586                "/side.lending.Msg/UpdateParams" => {
1587                    #[allow(non_camel_case_types)]
1588                    struct UpdateParamsSvc<T: Msg>(pub Arc<T>);
1589                    impl<T: Msg> tonic::server::UnaryService<super::MsgUpdateParams> for UpdateParamsSvc<T> {
1590                        type Response = super::MsgUpdateParamsResponse;
1591                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
1592                        fn call(
1593                            &mut self,
1594                            request: tonic::Request<super::MsgUpdateParams>,
1595                        ) -> Self::Future {
1596                            let inner = Arc::clone(&self.0);
1597                            let fut = async move { (*inner).update_params(request).await };
1598                            Box::pin(fut)
1599                        }
1600                    }
1601                    let accept_compression_encodings = self.accept_compression_encodings;
1602                    let send_compression_encodings = self.send_compression_encodings;
1603                    let max_decoding_message_size = self.max_decoding_message_size;
1604                    let max_encoding_message_size = self.max_encoding_message_size;
1605                    let inner = self.inner.clone();
1606                    let fut = async move {
1607                        let inner = inner.0;
1608                        let method = UpdateParamsSvc(inner);
1609                        let codec = tonic::codec::ProstCodec::default();
1610                        let mut grpc = tonic::server::Grpc::new(codec)
1611                            .apply_compression_config(
1612                                accept_compression_encodings,
1613                                send_compression_encodings,
1614                            )
1615                            .apply_max_message_size_config(
1616                                max_decoding_message_size,
1617                                max_encoding_message_size,
1618                            );
1619                        let res = grpc.unary(method, req).await;
1620                        Ok(res)
1621                    };
1622                    Box::pin(fut)
1623                }
1624                _ => Box::pin(async move {
1625                    Ok(http::Response::builder()
1626                        .status(200)
1627                        .header("grpc-status", "12")
1628                        .header("content-type", "application/grpc")
1629                        .body(empty_body())
1630                        .unwrap())
1631                }),
1632            }
1633        }
1634    }
1635    impl<T: Msg> Clone for MsgServer<T> {
1636        fn clone(&self) -> Self {
1637            let inner = self.inner.clone();
1638            Self {
1639                inner,
1640                accept_compression_encodings: self.accept_compression_encodings,
1641                send_compression_encodings: self.send_compression_encodings,
1642                max_decoding_message_size: self.max_decoding_message_size,
1643                max_encoding_message_size: self.max_encoding_message_size,
1644            }
1645        }
1646    }
1647    impl<T: Msg> Clone for _Inner<T> {
1648        fn clone(&self) -> Self {
1649            Self(Arc::clone(&self.0))
1650        }
1651    }
1652    impl<T: core::fmt::Debug> core::fmt::Debug for _Inner<T> {
1653        fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1654            write!(f, "{:?}", self.0)
1655        }
1656    }
1657    impl<T: Msg> tonic::server::NamedService for MsgServer<T> {
1658        const NAME: &'static str = "side.lending.Msg";
1659    }
1660}