1#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct SetBlockRetainHeightRequest {
5 #[prost(uint64, tag = "1")]
6 pub height: u64,
7}
8#[allow(clippy::derive_partial_eq_without_eq)]
10#[derive(Clone, PartialEq, ::prost::Message)]
11pub struct SetBlockRetainHeightResponse {}
12#[allow(clippy::derive_partial_eq_without_eq)]
14#[derive(Clone, PartialEq, ::prost::Message)]
15pub struct GetBlockRetainHeightRequest {}
16#[allow(clippy::derive_partial_eq_without_eq)]
18#[derive(Clone, PartialEq, ::prost::Message)]
19pub struct GetBlockRetainHeightResponse {
20 #[prost(uint64, tag = "1")]
22 pub app_retain_height: u64,
23 #[prost(uint64, tag = "2")]
26 pub pruning_service_retain_height: u64,
27}
28#[allow(clippy::derive_partial_eq_without_eq)]
30#[derive(Clone, PartialEq, ::prost::Message)]
31pub struct SetBlockResultsRetainHeightRequest {
32 #[prost(uint64, tag = "1")]
33 pub height: u64,
34}
35#[allow(clippy::derive_partial_eq_without_eq)]
37#[derive(Clone, PartialEq, ::prost::Message)]
38pub struct SetBlockResultsRetainHeightResponse {}
39#[allow(clippy::derive_partial_eq_without_eq)]
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct GetBlockResultsRetainHeightRequest {}
43#[allow(clippy::derive_partial_eq_without_eq)]
45#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct GetBlockResultsRetainHeightResponse {
47 #[prost(uint64, tag = "1")]
50 pub pruning_service_retain_height: u64,
51}
52#[allow(clippy::derive_partial_eq_without_eq)]
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct SetTxIndexerRetainHeightRequest {
56 #[prost(uint64, tag = "1")]
57 pub height: u64,
58}
59#[allow(clippy::derive_partial_eq_without_eq)]
61#[derive(Clone, PartialEq, ::prost::Message)]
62pub struct SetTxIndexerRetainHeightResponse {}
63#[allow(clippy::derive_partial_eq_without_eq)]
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct GetTxIndexerRetainHeightRequest {}
67#[allow(clippy::derive_partial_eq_without_eq)]
69#[derive(Clone, PartialEq, ::prost::Message)]
70pub struct GetTxIndexerRetainHeightResponse {
71 #[prost(uint64, tag = "1")]
72 pub height: u64,
73}
74#[allow(clippy::derive_partial_eq_without_eq)]
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct SetBlockIndexerRetainHeightRequest {
78 #[prost(uint64, tag = "1")]
79 pub height: u64,
80}
81#[allow(clippy::derive_partial_eq_without_eq)]
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct SetBlockIndexerRetainHeightResponse {}
85#[allow(clippy::derive_partial_eq_without_eq)]
87#[derive(Clone, PartialEq, ::prost::Message)]
88pub struct GetBlockIndexerRetainHeightRequest {}
89#[allow(clippy::derive_partial_eq_without_eq)]
91#[derive(Clone, PartialEq, ::prost::Message)]
92pub struct GetBlockIndexerRetainHeightResponse {
93 #[prost(uint64, tag = "1")]
94 pub height: u64,
95}
96#[cfg(feature = "grpc-server")]
98pub mod pruning_service_server {
99 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
100 use tonic::codegen::*;
101 #[async_trait]
103 pub trait PruningService: Send + Sync + 'static {
104 async fn set_block_retain_height(
111 &self,
112 request: tonic::Request<super::SetBlockRetainHeightRequest>,
113 ) -> std::result::Result<
114 tonic::Response<super::SetBlockRetainHeightResponse>,
115 tonic::Status,
116 >;
117 async fn get_block_retain_height(
120 &self,
121 request: tonic::Request<super::GetBlockRetainHeightRequest>,
122 ) -> std::result::Result<
123 tonic::Response<super::GetBlockRetainHeightResponse>,
124 tonic::Status,
125 >;
126 async fn set_block_results_retain_height(
132 &self,
133 request: tonic::Request<super::SetBlockResultsRetainHeightRequest>,
134 ) -> std::result::Result<
135 tonic::Response<super::SetBlockResultsRetainHeightResponse>,
136 tonic::Status,
137 >;
138 async fn get_block_results_retain_height(
141 &self,
142 request: tonic::Request<super::GetBlockResultsRetainHeightRequest>,
143 ) -> std::result::Result<
144 tonic::Response<super::GetBlockResultsRetainHeightResponse>,
145 tonic::Status,
146 >;
147 async fn set_tx_indexer_retain_height(
150 &self,
151 request: tonic::Request<super::SetTxIndexerRetainHeightRequest>,
152 ) -> std::result::Result<
153 tonic::Response<super::SetTxIndexerRetainHeightResponse>,
154 tonic::Status,
155 >;
156 async fn get_tx_indexer_retain_height(
159 &self,
160 request: tonic::Request<super::GetTxIndexerRetainHeightRequest>,
161 ) -> std::result::Result<
162 tonic::Response<super::GetTxIndexerRetainHeightResponse>,
163 tonic::Status,
164 >;
165 async fn set_block_indexer_retain_height(
168 &self,
169 request: tonic::Request<super::SetBlockIndexerRetainHeightRequest>,
170 ) -> std::result::Result<
171 tonic::Response<super::SetBlockIndexerRetainHeightResponse>,
172 tonic::Status,
173 >;
174 async fn get_block_indexer_retain_height(
177 &self,
178 request: tonic::Request<super::GetBlockIndexerRetainHeightRequest>,
179 ) -> std::result::Result<
180 tonic::Response<super::GetBlockIndexerRetainHeightResponse>,
181 tonic::Status,
182 >;
183 }
184 #[derive(Debug)]
187 pub struct PruningServiceServer<T: PruningService> {
188 inner: _Inner<T>,
189 accept_compression_encodings: EnabledCompressionEncodings,
190 send_compression_encodings: EnabledCompressionEncodings,
191 max_decoding_message_size: Option<usize>,
192 max_encoding_message_size: Option<usize>,
193 }
194 struct _Inner<T>(Arc<T>);
195 impl<T: PruningService> PruningServiceServer<T> {
196 pub fn new(inner: T) -> Self {
197 Self::from_arc(Arc::new(inner))
198 }
199 pub fn from_arc(inner: Arc<T>) -> Self {
200 let inner = _Inner(inner);
201 Self {
202 inner,
203 accept_compression_encodings: Default::default(),
204 send_compression_encodings: Default::default(),
205 max_decoding_message_size: None,
206 max_encoding_message_size: None,
207 }
208 }
209 pub fn with_interceptor<F>(
210 inner: T,
211 interceptor: F,
212 ) -> InterceptedService<Self, F>
213 where
214 F: tonic::service::Interceptor,
215 {
216 InterceptedService::new(Self::new(inner), interceptor)
217 }
218 #[must_use]
220 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
221 self.accept_compression_encodings.enable(encoding);
222 self
223 }
224 #[must_use]
226 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
227 self.send_compression_encodings.enable(encoding);
228 self
229 }
230 #[must_use]
234 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
235 self.max_decoding_message_size = Some(limit);
236 self
237 }
238 #[must_use]
242 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
243 self.max_encoding_message_size = Some(limit);
244 self
245 }
246 }
247 impl<T, B> tonic::codegen::Service<http::Request<B>> for PruningServiceServer<T>
248 where
249 T: PruningService,
250 B: Body + Send + 'static,
251 B::Error: Into<StdError> + Send + 'static,
252 {
253 type Response = http::Response<tonic::body::BoxBody>;
254 type Error = std::convert::Infallible;
255 type Future = BoxFuture<Self::Response, Self::Error>;
256 fn poll_ready(
257 &mut self,
258 _cx: &mut Context<'_>,
259 ) -> Poll<std::result::Result<(), Self::Error>> {
260 Poll::Ready(Ok(()))
261 }
262 fn call(&mut self, req: http::Request<B>) -> Self::Future {
263 let inner = self.inner.clone();
264 match req.uri().path() {
265 "/cometbft.services.pruning.v1.PruningService/SetBlockRetainHeight" => {
266 #[allow(non_camel_case_types)]
267 struct SetBlockRetainHeightSvc<T: PruningService>(pub Arc<T>);
268 impl<
269 T: PruningService,
270 > tonic::server::UnaryService<super::SetBlockRetainHeightRequest>
271 for SetBlockRetainHeightSvc<T> {
272 type Response = super::SetBlockRetainHeightResponse;
273 type Future = BoxFuture<
274 tonic::Response<Self::Response>,
275 tonic::Status,
276 >;
277 fn call(
278 &mut self,
279 request: tonic::Request<super::SetBlockRetainHeightRequest>,
280 ) -> Self::Future {
281 let inner = Arc::clone(&self.0);
282 let fut = async move {
283 <T as PruningService>::set_block_retain_height(
284 &inner,
285 request,
286 )
287 .await
288 };
289 Box::pin(fut)
290 }
291 }
292 let accept_compression_encodings = self.accept_compression_encodings;
293 let send_compression_encodings = self.send_compression_encodings;
294 let max_decoding_message_size = self.max_decoding_message_size;
295 let max_encoding_message_size = self.max_encoding_message_size;
296 let inner = self.inner.clone();
297 let fut = async move {
298 let inner = inner.0;
299 let method = SetBlockRetainHeightSvc(inner);
300 let codec = tonic::codec::ProstCodec::default();
301 let mut grpc = tonic::server::Grpc::new(codec)
302 .apply_compression_config(
303 accept_compression_encodings,
304 send_compression_encodings,
305 )
306 .apply_max_message_size_config(
307 max_decoding_message_size,
308 max_encoding_message_size,
309 );
310 let res = grpc.unary(method, req).await;
311 Ok(res)
312 };
313 Box::pin(fut)
314 }
315 "/cometbft.services.pruning.v1.PruningService/GetBlockRetainHeight" => {
316 #[allow(non_camel_case_types)]
317 struct GetBlockRetainHeightSvc<T: PruningService>(pub Arc<T>);
318 impl<
319 T: PruningService,
320 > tonic::server::UnaryService<super::GetBlockRetainHeightRequest>
321 for GetBlockRetainHeightSvc<T> {
322 type Response = super::GetBlockRetainHeightResponse;
323 type Future = BoxFuture<
324 tonic::Response<Self::Response>,
325 tonic::Status,
326 >;
327 fn call(
328 &mut self,
329 request: tonic::Request<super::GetBlockRetainHeightRequest>,
330 ) -> Self::Future {
331 let inner = Arc::clone(&self.0);
332 let fut = async move {
333 <T as PruningService>::get_block_retain_height(
334 &inner,
335 request,
336 )
337 .await
338 };
339 Box::pin(fut)
340 }
341 }
342 let accept_compression_encodings = self.accept_compression_encodings;
343 let send_compression_encodings = self.send_compression_encodings;
344 let max_decoding_message_size = self.max_decoding_message_size;
345 let max_encoding_message_size = self.max_encoding_message_size;
346 let inner = self.inner.clone();
347 let fut = async move {
348 let inner = inner.0;
349 let method = GetBlockRetainHeightSvc(inner);
350 let codec = tonic::codec::ProstCodec::default();
351 let mut grpc = tonic::server::Grpc::new(codec)
352 .apply_compression_config(
353 accept_compression_encodings,
354 send_compression_encodings,
355 )
356 .apply_max_message_size_config(
357 max_decoding_message_size,
358 max_encoding_message_size,
359 );
360 let res = grpc.unary(method, req).await;
361 Ok(res)
362 };
363 Box::pin(fut)
364 }
365 "/cometbft.services.pruning.v1.PruningService/SetBlockResultsRetainHeight" => {
366 #[allow(non_camel_case_types)]
367 struct SetBlockResultsRetainHeightSvc<T: PruningService>(pub Arc<T>);
368 impl<
369 T: PruningService,
370 > tonic::server::UnaryService<
371 super::SetBlockResultsRetainHeightRequest,
372 > for SetBlockResultsRetainHeightSvc<T> {
373 type Response = super::SetBlockResultsRetainHeightResponse;
374 type Future = BoxFuture<
375 tonic::Response<Self::Response>,
376 tonic::Status,
377 >;
378 fn call(
379 &mut self,
380 request: tonic::Request<
381 super::SetBlockResultsRetainHeightRequest,
382 >,
383 ) -> Self::Future {
384 let inner = Arc::clone(&self.0);
385 let fut = async move {
386 <T as PruningService>::set_block_results_retain_height(
387 &inner,
388 request,
389 )
390 .await
391 };
392 Box::pin(fut)
393 }
394 }
395 let accept_compression_encodings = self.accept_compression_encodings;
396 let send_compression_encodings = self.send_compression_encodings;
397 let max_decoding_message_size = self.max_decoding_message_size;
398 let max_encoding_message_size = self.max_encoding_message_size;
399 let inner = self.inner.clone();
400 let fut = async move {
401 let inner = inner.0;
402 let method = SetBlockResultsRetainHeightSvc(inner);
403 let codec = tonic::codec::ProstCodec::default();
404 let mut grpc = tonic::server::Grpc::new(codec)
405 .apply_compression_config(
406 accept_compression_encodings,
407 send_compression_encodings,
408 )
409 .apply_max_message_size_config(
410 max_decoding_message_size,
411 max_encoding_message_size,
412 );
413 let res = grpc.unary(method, req).await;
414 Ok(res)
415 };
416 Box::pin(fut)
417 }
418 "/cometbft.services.pruning.v1.PruningService/GetBlockResultsRetainHeight" => {
419 #[allow(non_camel_case_types)]
420 struct GetBlockResultsRetainHeightSvc<T: PruningService>(pub Arc<T>);
421 impl<
422 T: PruningService,
423 > tonic::server::UnaryService<
424 super::GetBlockResultsRetainHeightRequest,
425 > for GetBlockResultsRetainHeightSvc<T> {
426 type Response = super::GetBlockResultsRetainHeightResponse;
427 type Future = BoxFuture<
428 tonic::Response<Self::Response>,
429 tonic::Status,
430 >;
431 fn call(
432 &mut self,
433 request: tonic::Request<
434 super::GetBlockResultsRetainHeightRequest,
435 >,
436 ) -> Self::Future {
437 let inner = Arc::clone(&self.0);
438 let fut = async move {
439 <T as PruningService>::get_block_results_retain_height(
440 &inner,
441 request,
442 )
443 .await
444 };
445 Box::pin(fut)
446 }
447 }
448 let accept_compression_encodings = self.accept_compression_encodings;
449 let send_compression_encodings = self.send_compression_encodings;
450 let max_decoding_message_size = self.max_decoding_message_size;
451 let max_encoding_message_size = self.max_encoding_message_size;
452 let inner = self.inner.clone();
453 let fut = async move {
454 let inner = inner.0;
455 let method = GetBlockResultsRetainHeightSvc(inner);
456 let codec = tonic::codec::ProstCodec::default();
457 let mut grpc = tonic::server::Grpc::new(codec)
458 .apply_compression_config(
459 accept_compression_encodings,
460 send_compression_encodings,
461 )
462 .apply_max_message_size_config(
463 max_decoding_message_size,
464 max_encoding_message_size,
465 );
466 let res = grpc.unary(method, req).await;
467 Ok(res)
468 };
469 Box::pin(fut)
470 }
471 "/cometbft.services.pruning.v1.PruningService/SetTxIndexerRetainHeight" => {
472 #[allow(non_camel_case_types)]
473 struct SetTxIndexerRetainHeightSvc<T: PruningService>(pub Arc<T>);
474 impl<
475 T: PruningService,
476 > tonic::server::UnaryService<super::SetTxIndexerRetainHeightRequest>
477 for SetTxIndexerRetainHeightSvc<T> {
478 type Response = super::SetTxIndexerRetainHeightResponse;
479 type Future = BoxFuture<
480 tonic::Response<Self::Response>,
481 tonic::Status,
482 >;
483 fn call(
484 &mut self,
485 request: tonic::Request<
486 super::SetTxIndexerRetainHeightRequest,
487 >,
488 ) -> Self::Future {
489 let inner = Arc::clone(&self.0);
490 let fut = async move {
491 <T as PruningService>::set_tx_indexer_retain_height(
492 &inner,
493 request,
494 )
495 .await
496 };
497 Box::pin(fut)
498 }
499 }
500 let accept_compression_encodings = self.accept_compression_encodings;
501 let send_compression_encodings = self.send_compression_encodings;
502 let max_decoding_message_size = self.max_decoding_message_size;
503 let max_encoding_message_size = self.max_encoding_message_size;
504 let inner = self.inner.clone();
505 let fut = async move {
506 let inner = inner.0;
507 let method = SetTxIndexerRetainHeightSvc(inner);
508 let codec = tonic::codec::ProstCodec::default();
509 let mut grpc = tonic::server::Grpc::new(codec)
510 .apply_compression_config(
511 accept_compression_encodings,
512 send_compression_encodings,
513 )
514 .apply_max_message_size_config(
515 max_decoding_message_size,
516 max_encoding_message_size,
517 );
518 let res = grpc.unary(method, req).await;
519 Ok(res)
520 };
521 Box::pin(fut)
522 }
523 "/cometbft.services.pruning.v1.PruningService/GetTxIndexerRetainHeight" => {
524 #[allow(non_camel_case_types)]
525 struct GetTxIndexerRetainHeightSvc<T: PruningService>(pub Arc<T>);
526 impl<
527 T: PruningService,
528 > tonic::server::UnaryService<super::GetTxIndexerRetainHeightRequest>
529 for GetTxIndexerRetainHeightSvc<T> {
530 type Response = super::GetTxIndexerRetainHeightResponse;
531 type Future = BoxFuture<
532 tonic::Response<Self::Response>,
533 tonic::Status,
534 >;
535 fn call(
536 &mut self,
537 request: tonic::Request<
538 super::GetTxIndexerRetainHeightRequest,
539 >,
540 ) -> Self::Future {
541 let inner = Arc::clone(&self.0);
542 let fut = async move {
543 <T as PruningService>::get_tx_indexer_retain_height(
544 &inner,
545 request,
546 )
547 .await
548 };
549 Box::pin(fut)
550 }
551 }
552 let accept_compression_encodings = self.accept_compression_encodings;
553 let send_compression_encodings = self.send_compression_encodings;
554 let max_decoding_message_size = self.max_decoding_message_size;
555 let max_encoding_message_size = self.max_encoding_message_size;
556 let inner = self.inner.clone();
557 let fut = async move {
558 let inner = inner.0;
559 let method = GetTxIndexerRetainHeightSvc(inner);
560 let codec = tonic::codec::ProstCodec::default();
561 let mut grpc = tonic::server::Grpc::new(codec)
562 .apply_compression_config(
563 accept_compression_encodings,
564 send_compression_encodings,
565 )
566 .apply_max_message_size_config(
567 max_decoding_message_size,
568 max_encoding_message_size,
569 );
570 let res = grpc.unary(method, req).await;
571 Ok(res)
572 };
573 Box::pin(fut)
574 }
575 "/cometbft.services.pruning.v1.PruningService/SetBlockIndexerRetainHeight" => {
576 #[allow(non_camel_case_types)]
577 struct SetBlockIndexerRetainHeightSvc<T: PruningService>(pub Arc<T>);
578 impl<
579 T: PruningService,
580 > tonic::server::UnaryService<
581 super::SetBlockIndexerRetainHeightRequest,
582 > for SetBlockIndexerRetainHeightSvc<T> {
583 type Response = super::SetBlockIndexerRetainHeightResponse;
584 type Future = BoxFuture<
585 tonic::Response<Self::Response>,
586 tonic::Status,
587 >;
588 fn call(
589 &mut self,
590 request: tonic::Request<
591 super::SetBlockIndexerRetainHeightRequest,
592 >,
593 ) -> Self::Future {
594 let inner = Arc::clone(&self.0);
595 let fut = async move {
596 <T as PruningService>::set_block_indexer_retain_height(
597 &inner,
598 request,
599 )
600 .await
601 };
602 Box::pin(fut)
603 }
604 }
605 let accept_compression_encodings = self.accept_compression_encodings;
606 let send_compression_encodings = self.send_compression_encodings;
607 let max_decoding_message_size = self.max_decoding_message_size;
608 let max_encoding_message_size = self.max_encoding_message_size;
609 let inner = self.inner.clone();
610 let fut = async move {
611 let inner = inner.0;
612 let method = SetBlockIndexerRetainHeightSvc(inner);
613 let codec = tonic::codec::ProstCodec::default();
614 let mut grpc = tonic::server::Grpc::new(codec)
615 .apply_compression_config(
616 accept_compression_encodings,
617 send_compression_encodings,
618 )
619 .apply_max_message_size_config(
620 max_decoding_message_size,
621 max_encoding_message_size,
622 );
623 let res = grpc.unary(method, req).await;
624 Ok(res)
625 };
626 Box::pin(fut)
627 }
628 "/cometbft.services.pruning.v1.PruningService/GetBlockIndexerRetainHeight" => {
629 #[allow(non_camel_case_types)]
630 struct GetBlockIndexerRetainHeightSvc<T: PruningService>(pub Arc<T>);
631 impl<
632 T: PruningService,
633 > tonic::server::UnaryService<
634 super::GetBlockIndexerRetainHeightRequest,
635 > for GetBlockIndexerRetainHeightSvc<T> {
636 type Response = super::GetBlockIndexerRetainHeightResponse;
637 type Future = BoxFuture<
638 tonic::Response<Self::Response>,
639 tonic::Status,
640 >;
641 fn call(
642 &mut self,
643 request: tonic::Request<
644 super::GetBlockIndexerRetainHeightRequest,
645 >,
646 ) -> Self::Future {
647 let inner = Arc::clone(&self.0);
648 let fut = async move {
649 <T as PruningService>::get_block_indexer_retain_height(
650 &inner,
651 request,
652 )
653 .await
654 };
655 Box::pin(fut)
656 }
657 }
658 let accept_compression_encodings = self.accept_compression_encodings;
659 let send_compression_encodings = self.send_compression_encodings;
660 let max_decoding_message_size = self.max_decoding_message_size;
661 let max_encoding_message_size = self.max_encoding_message_size;
662 let inner = self.inner.clone();
663 let fut = async move {
664 let inner = inner.0;
665 let method = GetBlockIndexerRetainHeightSvc(inner);
666 let codec = tonic::codec::ProstCodec::default();
667 let mut grpc = tonic::server::Grpc::new(codec)
668 .apply_compression_config(
669 accept_compression_encodings,
670 send_compression_encodings,
671 )
672 .apply_max_message_size_config(
673 max_decoding_message_size,
674 max_encoding_message_size,
675 );
676 let res = grpc.unary(method, req).await;
677 Ok(res)
678 };
679 Box::pin(fut)
680 }
681 _ => {
682 Box::pin(async move {
683 Ok(
684 http::Response::builder()
685 .status(200)
686 .header("grpc-status", "12")
687 .header("content-type", "application/grpc")
688 .body(empty_body())
689 .unwrap(),
690 )
691 })
692 }
693 }
694 }
695 }
696 impl<T: PruningService> Clone for PruningServiceServer<T> {
697 fn clone(&self) -> Self {
698 let inner = self.inner.clone();
699 Self {
700 inner,
701 accept_compression_encodings: self.accept_compression_encodings,
702 send_compression_encodings: self.send_compression_encodings,
703 max_decoding_message_size: self.max_decoding_message_size,
704 max_encoding_message_size: self.max_encoding_message_size,
705 }
706 }
707 }
708 impl<T: PruningService> Clone for _Inner<T> {
709 fn clone(&self) -> Self {
710 Self(Arc::clone(&self.0))
711 }
712 }
713 impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
714 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
715 write!(f, "{:?}", self.0)
716 }
717 }
718 impl<T: PruningService> tonic::server::NamedService for PruningServiceServer<T> {
719 const NAME: &'static str = "cometbft.services.pruning.v1.PruningService";
720 }
721}