1#[derive(Clone, Copy, PartialEq, ::prost::Message)]
5pub struct TransparentAddressRequest {}
6impl ::prost::Name for TransparentAddressRequest {
7 const NAME: &'static str = "TransparentAddressRequest";
8 const PACKAGE: &'static str = "penumbra.view.v1";
9 fn full_name() -> ::prost::alloc::string::String {
10 "penumbra.view.v1.TransparentAddressRequest".into()
11 }
12 fn type_url() -> ::prost::alloc::string::String {
13 "/penumbra.view.v1.TransparentAddressRequest".into()
14 }
15}
16#[derive(Clone, PartialEq, ::prost::Message)]
17pub struct TransparentAddressResponse {
18 #[prost(message, optional, tag = "1")]
20 pub address: ::core::option::Option<super::super::core::keys::v1::Address>,
21 #[prost(string, tag = "2")]
23 pub encoding: ::prost::alloc::string::String,
24}
25impl ::prost::Name for TransparentAddressResponse {
26 const NAME: &'static str = "TransparentAddressResponse";
27 const PACKAGE: &'static str = "penumbra.view.v1";
28 fn full_name() -> ::prost::alloc::string::String {
29 "penumbra.view.v1.TransparentAddressResponse".into()
30 }
31 fn type_url() -> ::prost::alloc::string::String {
32 "/penumbra.view.v1.TransparentAddressResponse".into()
33 }
34}
35#[derive(Clone, PartialEq, ::prost::Message)]
38pub struct AuctionsRequest {
39 #[prost(message, optional, tag = "1")]
41 pub account_filter: ::core::option::Option<
42 super::super::core::keys::v1::AddressIndex,
43 >,
44 #[prost(bool, tag = "2")]
46 pub include_inactive: bool,
47 #[prost(bool, tag = "3")]
49 pub query_latest_state: bool,
50 #[prost(message, repeated, tag = "4")]
52 pub auction_ids_filter: ::prost::alloc::vec::Vec<
53 super::super::core::component::auction::v1::AuctionId,
54 >,
55}
56impl ::prost::Name for AuctionsRequest {
57 const NAME: &'static str = "AuctionsRequest";
58 const PACKAGE: &'static str = "penumbra.view.v1";
59 fn full_name() -> ::prost::alloc::string::String {
60 "penumbra.view.v1.AuctionsRequest".into()
61 }
62 fn type_url() -> ::prost::alloc::string::String {
63 "/penumbra.view.v1.AuctionsRequest".into()
64 }
65}
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct AuctionsResponse {
68 #[prost(message, optional, tag = "1")]
69 pub id: ::core::option::Option<
70 super::super::core::component::auction::v1::AuctionId,
71 >,
72 #[prost(message, optional, tag = "2")]
76 pub auction: ::core::option::Option<::pbjson_types::Any>,
77 #[prost(message, repeated, tag = "3")]
82 pub positions: ::prost::alloc::vec::Vec<
83 super::super::core::component::dex::v1::Position,
84 >,
85 #[prost(message, optional, tag = "4")]
87 pub note_record: ::core::option::Option<SpendableNoteRecord>,
88 #[prost(uint64, tag = "5")]
98 pub local_seq: u64,
99}
100impl ::prost::Name for AuctionsResponse {
101 const NAME: &'static str = "AuctionsResponse";
102 const PACKAGE: &'static str = "penumbra.view.v1";
103 fn full_name() -> ::prost::alloc::string::String {
104 "penumbra.view.v1.AuctionsResponse".into()
105 }
106 fn type_url() -> ::prost::alloc::string::String {
107 "/penumbra.view.v1.AuctionsResponse".into()
108 }
109}
110#[derive(Clone, PartialEq, ::prost::Message)]
111pub struct AuthorizeAndBuildRequest {
112 #[prost(message, optional, tag = "1")]
114 pub transaction_plan: ::core::option::Option<
115 super::super::core::transaction::v1::TransactionPlan,
116 >,
117}
118impl ::prost::Name for AuthorizeAndBuildRequest {
119 const NAME: &'static str = "AuthorizeAndBuildRequest";
120 const PACKAGE: &'static str = "penumbra.view.v1";
121 fn full_name() -> ::prost::alloc::string::String {
122 "penumbra.view.v1.AuthorizeAndBuildRequest".into()
123 }
124 fn type_url() -> ::prost::alloc::string::String {
125 "/penumbra.view.v1.AuthorizeAndBuildRequest".into()
126 }
127}
128#[derive(Clone, PartialEq, ::prost::Message)]
129pub struct AuthorizeAndBuildResponse {
130 #[prost(oneof = "authorize_and_build_response::Status", tags = "1, 2")]
131 pub status: ::core::option::Option<authorize_and_build_response::Status>,
132}
133pub mod authorize_and_build_response {
135 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
137 pub struct BuildProgress {
138 #[prost(float, tag = "1")]
140 pub progress: f32,
141 }
142 impl ::prost::Name for BuildProgress {
143 const NAME: &'static str = "BuildProgress";
144 const PACKAGE: &'static str = "penumbra.view.v1";
145 fn full_name() -> ::prost::alloc::string::String {
146 "penumbra.view.v1.AuthorizeAndBuildResponse.BuildProgress".into()
147 }
148 fn type_url() -> ::prost::alloc::string::String {
149 "/penumbra.view.v1.AuthorizeAndBuildResponse.BuildProgress".into()
150 }
151 }
152 #[derive(Clone, PartialEq, ::prost::Message)]
154 pub struct Complete {
155 #[prost(message, optional, tag = "1")]
157 pub transaction: ::core::option::Option<
158 super::super::super::core::transaction::v1::Transaction,
159 >,
160 }
161 impl ::prost::Name for Complete {
162 const NAME: &'static str = "Complete";
163 const PACKAGE: &'static str = "penumbra.view.v1";
164 fn full_name() -> ::prost::alloc::string::String {
165 "penumbra.view.v1.AuthorizeAndBuildResponse.Complete".into()
166 }
167 fn type_url() -> ::prost::alloc::string::String {
168 "/penumbra.view.v1.AuthorizeAndBuildResponse.Complete".into()
169 }
170 }
171 #[derive(Clone, PartialEq, ::prost::Oneof)]
172 pub enum Status {
173 #[prost(message, tag = "1")]
174 BuildProgress(BuildProgress),
175 #[prost(message, tag = "2")]
176 Complete(Complete),
177 }
178}
179impl ::prost::Name for AuthorizeAndBuildResponse {
180 const NAME: &'static str = "AuthorizeAndBuildResponse";
181 const PACKAGE: &'static str = "penumbra.view.v1";
182 fn full_name() -> ::prost::alloc::string::String {
183 "penumbra.view.v1.AuthorizeAndBuildResponse".into()
184 }
185 fn type_url() -> ::prost::alloc::string::String {
186 "/penumbra.view.v1.AuthorizeAndBuildResponse".into()
187 }
188}
189#[derive(Clone, PartialEq, ::prost::Message)]
190pub struct BroadcastTransactionRequest {
191 #[prost(message, optional, tag = "1")]
193 pub transaction: ::core::option::Option<
194 super::super::core::transaction::v1::Transaction,
195 >,
196 #[prost(bool, tag = "2")]
198 pub await_detection: bool,
199}
200impl ::prost::Name for BroadcastTransactionRequest {
201 const NAME: &'static str = "BroadcastTransactionRequest";
202 const PACKAGE: &'static str = "penumbra.view.v1";
203 fn full_name() -> ::prost::alloc::string::String {
204 "penumbra.view.v1.BroadcastTransactionRequest".into()
205 }
206 fn type_url() -> ::prost::alloc::string::String {
207 "/penumbra.view.v1.BroadcastTransactionRequest".into()
208 }
209}
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct BroadcastTransactionResponse {
212 #[prost(oneof = "broadcast_transaction_response::Status", tags = "1, 2")]
213 pub status: ::core::option::Option<broadcast_transaction_response::Status>,
214}
215pub mod broadcast_transaction_response {
217 #[derive(Clone, PartialEq, ::prost::Message)]
219 pub struct BroadcastSuccess {
220 #[prost(message, optional, tag = "1")]
222 pub id: ::core::option::Option<
223 super::super::super::core::txhash::v1::TransactionId,
224 >,
225 }
226 impl ::prost::Name for BroadcastSuccess {
227 const NAME: &'static str = "BroadcastSuccess";
228 const PACKAGE: &'static str = "penumbra.view.v1";
229 fn full_name() -> ::prost::alloc::string::String {
230 "penumbra.view.v1.BroadcastTransactionResponse.BroadcastSuccess".into()
231 }
232 fn type_url() -> ::prost::alloc::string::String {
233 "/penumbra.view.v1.BroadcastTransactionResponse.BroadcastSuccess".into()
234 }
235 }
236 #[derive(Clone, PartialEq, ::prost::Message)]
240 pub struct Confirmed {
241 #[prost(message, optional, tag = "1")]
243 pub id: ::core::option::Option<
244 super::super::super::core::txhash::v1::TransactionId,
245 >,
246 #[prost(uint64, tag = "2")]
248 pub detection_height: u64,
249 }
250 impl ::prost::Name for Confirmed {
251 const NAME: &'static str = "Confirmed";
252 const PACKAGE: &'static str = "penumbra.view.v1";
253 fn full_name() -> ::prost::alloc::string::String {
254 "penumbra.view.v1.BroadcastTransactionResponse.Confirmed".into()
255 }
256 fn type_url() -> ::prost::alloc::string::String {
257 "/penumbra.view.v1.BroadcastTransactionResponse.Confirmed".into()
258 }
259 }
260 #[derive(Clone, PartialEq, ::prost::Oneof)]
261 pub enum Status {
262 #[prost(message, tag = "1")]
263 BroadcastSuccess(BroadcastSuccess),
264 #[prost(message, tag = "2")]
265 Confirmed(Confirmed),
266 }
267}
268impl ::prost::Name for BroadcastTransactionResponse {
269 const NAME: &'static str = "BroadcastTransactionResponse";
270 const PACKAGE: &'static str = "penumbra.view.v1";
271 fn full_name() -> ::prost::alloc::string::String {
272 "penumbra.view.v1.BroadcastTransactionResponse".into()
273 }
274 fn type_url() -> ::prost::alloc::string::String {
275 "/penumbra.view.v1.BroadcastTransactionResponse".into()
276 }
277}
278#[derive(Clone, PartialEq, ::prost::Message)]
279pub struct TransactionPlannerRequest {
280 #[prost(uint64, tag = "1")]
282 pub expiry_height: u64,
283 #[prost(message, optional, tag = "3")]
286 pub memo: ::core::option::Option<super::super::core::transaction::v1::MemoPlaintext>,
287 #[prost(message, optional, tag = "4")]
289 pub source: ::core::option::Option<super::super::core::keys::v1::AddressIndex>,
290 #[prost(message, repeated, tag = "20")]
292 pub outputs: ::prost::alloc::vec::Vec<transaction_planner_request::Output>,
293 #[prost(message, repeated, tag = "21")]
294 pub spends: ::prost::alloc::vec::Vec<transaction_planner_request::Spend>,
295 #[prost(message, repeated, tag = "30")]
296 pub swaps: ::prost::alloc::vec::Vec<transaction_planner_request::Swap>,
297 #[prost(message, repeated, tag = "31")]
298 pub swap_claims: ::prost::alloc::vec::Vec<transaction_planner_request::SwapClaim>,
299 #[prost(message, repeated, tag = "40")]
300 pub delegations: ::prost::alloc::vec::Vec<transaction_planner_request::Delegate>,
301 #[prost(message, repeated, tag = "50")]
302 pub undelegations: ::prost::alloc::vec::Vec<transaction_planner_request::Undelegate>,
303 #[prost(message, repeated, tag = "51")]
304 pub undelegation_claims: ::prost::alloc::vec::Vec<
305 transaction_planner_request::UndelegateClaim,
306 >,
307 #[prost(message, repeated, tag = "60")]
308 pub ibc_relay_actions: ::prost::alloc::vec::Vec<
309 super::super::core::component::ibc::v1::IbcRelay,
310 >,
311 #[prost(message, repeated, tag = "61")]
312 pub ics20_withdrawals: ::prost::alloc::vec::Vec<
313 super::super::core::component::ibc::v1::Ics20Withdrawal,
314 >,
315 #[prost(message, repeated, tag = "70")]
316 pub position_opens: ::prost::alloc::vec::Vec<
317 transaction_planner_request::PositionOpen,
318 >,
319 #[prost(message, repeated, tag = "71")]
320 pub position_closes: ::prost::alloc::vec::Vec<
321 transaction_planner_request::PositionClose,
322 >,
323 #[prost(message, repeated, tag = "72")]
324 pub position_withdraws: ::prost::alloc::vec::Vec<
325 transaction_planner_request::PositionWithdraw,
326 >,
327 #[prost(message, repeated, tag = "73")]
328 pub dutch_auction_schedule_actions: ::prost::alloc::vec::Vec<
329 transaction_planner_request::ActionDutchAuctionSchedule,
330 >,
331 #[prost(message, repeated, tag = "74")]
332 pub dutch_auction_end_actions: ::prost::alloc::vec::Vec<
333 transaction_planner_request::ActionDutchAuctionEnd,
334 >,
335 #[prost(message, repeated, tag = "75")]
336 pub dutch_auction_withdraw_actions: ::prost::alloc::vec::Vec<
337 transaction_planner_request::ActionDutchAuctionWithdraw,
338 >,
339 #[prost(message, repeated, tag = "76")]
340 pub delegator_votes: ::prost::alloc::vec::Vec<
341 transaction_planner_request::DelegatorVote,
342 >,
343 #[deprecated]
345 #[prost(uint64, tag = "200")]
346 pub epoch_index: u64,
347 #[prost(message, optional, tag = "201")]
349 pub epoch: ::core::option::Option<super::super::core::component::sct::v1::Epoch>,
350 #[prost(oneof = "transaction_planner_request::FeeMode", tags = "100, 101")]
352 pub fee_mode: ::core::option::Option<transaction_planner_request::FeeMode>,
353}
354pub mod transaction_planner_request {
356 #[derive(Clone, PartialEq, ::prost::Message)]
358 pub struct Output {
359 #[prost(message, optional, tag = "1")]
361 pub value: ::core::option::Option<super::super::super::core::asset::v1::Value>,
362 #[prost(message, optional, tag = "2")]
364 pub address: ::core::option::Option<
365 super::super::super::core::keys::v1::Address,
366 >,
367 }
368 impl ::prost::Name for Output {
369 const NAME: &'static str = "Output";
370 const PACKAGE: &'static str = "penumbra.view.v1";
371 fn full_name() -> ::prost::alloc::string::String {
372 "penumbra.view.v1.TransactionPlannerRequest.Output".into()
373 }
374 fn type_url() -> ::prost::alloc::string::String {
375 "/penumbra.view.v1.TransactionPlannerRequest.Output".into()
376 }
377 }
378 #[derive(Clone, PartialEq, ::prost::Message)]
379 pub struct Spend {
380 #[prost(message, optional, tag = "1")]
382 pub value: ::core::option::Option<super::super::super::core::asset::v1::Value>,
383 #[prost(message, optional, tag = "2")]
385 pub address: ::core::option::Option<
386 super::super::super::core::keys::v1::Address,
387 >,
388 }
389 impl ::prost::Name for Spend {
390 const NAME: &'static str = "Spend";
391 const PACKAGE: &'static str = "penumbra.view.v1";
392 fn full_name() -> ::prost::alloc::string::String {
393 "penumbra.view.v1.TransactionPlannerRequest.Spend".into()
394 }
395 fn type_url() -> ::prost::alloc::string::String {
396 "/penumbra.view.v1.TransactionPlannerRequest.Spend".into()
397 }
398 }
399 #[derive(Clone, PartialEq, ::prost::Message)]
400 pub struct Swap {
401 #[prost(message, optional, tag = "1")]
403 pub value: ::core::option::Option<super::super::super::core::asset::v1::Value>,
404 #[prost(message, optional, tag = "2")]
406 pub target_asset: ::core::option::Option<
407 super::super::super::core::asset::v1::AssetId,
408 >,
409 #[prost(message, optional, tag = "3")]
411 pub fee: ::core::option::Option<
412 super::super::super::core::component::fee::v1::Fee,
413 >,
414 #[prost(message, optional, tag = "4")]
416 pub claim_address: ::core::option::Option<
417 super::super::super::core::keys::v1::Address,
418 >,
419 }
420 impl ::prost::Name for Swap {
421 const NAME: &'static str = "Swap";
422 const PACKAGE: &'static str = "penumbra.view.v1";
423 fn full_name() -> ::prost::alloc::string::String {
424 "penumbra.view.v1.TransactionPlannerRequest.Swap".into()
425 }
426 fn type_url() -> ::prost::alloc::string::String {
427 "/penumbra.view.v1.TransactionPlannerRequest.Swap".into()
428 }
429 }
430 #[derive(Clone, PartialEq, ::prost::Message)]
431 pub struct SwapClaim {
432 #[prost(message, optional, tag = "1")]
436 pub swap_commitment: ::core::option::Option<
437 super::super::super::crypto::tct::v1::StateCommitment,
438 >,
439 }
440 impl ::prost::Name for SwapClaim {
441 const NAME: &'static str = "SwapClaim";
442 const PACKAGE: &'static str = "penumbra.view.v1";
443 fn full_name() -> ::prost::alloc::string::String {
444 "penumbra.view.v1.TransactionPlannerRequest.SwapClaim".into()
445 }
446 fn type_url() -> ::prost::alloc::string::String {
447 "/penumbra.view.v1.TransactionPlannerRequest.SwapClaim".into()
448 }
449 }
450 #[derive(Clone, PartialEq, ::prost::Message)]
451 pub struct Delegate {
452 #[prost(message, optional, tag = "1")]
453 pub amount: ::core::option::Option<super::super::super::core::num::v1::Amount>,
454 #[prost(message, optional, tag = "3")]
455 pub rate_data: ::core::option::Option<
456 super::super::super::core::component::stake::v1::RateData,
457 >,
458 }
459 impl ::prost::Name for Delegate {
460 const NAME: &'static str = "Delegate";
461 const PACKAGE: &'static str = "penumbra.view.v1";
462 fn full_name() -> ::prost::alloc::string::String {
463 "penumbra.view.v1.TransactionPlannerRequest.Delegate".into()
464 }
465 fn type_url() -> ::prost::alloc::string::String {
466 "/penumbra.view.v1.TransactionPlannerRequest.Delegate".into()
467 }
468 }
469 #[derive(Clone, PartialEq, ::prost::Message)]
470 pub struct Undelegate {
471 #[prost(message, optional, tag = "1")]
472 pub value: ::core::option::Option<super::super::super::core::asset::v1::Value>,
473 #[prost(message, optional, tag = "2")]
474 pub rate_data: ::core::option::Option<
475 super::super::super::core::component::stake::v1::RateData,
476 >,
477 }
478 impl ::prost::Name for Undelegate {
479 const NAME: &'static str = "Undelegate";
480 const PACKAGE: &'static str = "penumbra.view.v1";
481 fn full_name() -> ::prost::alloc::string::String {
482 "penumbra.view.v1.TransactionPlannerRequest.Undelegate".into()
483 }
484 fn type_url() -> ::prost::alloc::string::String {
485 "/penumbra.view.v1.TransactionPlannerRequest.Undelegate".into()
486 }
487 }
488 #[derive(Clone, PartialEq, ::prost::Message)]
489 pub struct UndelegateClaim {
490 #[prost(message, optional, tag = "1")]
492 pub validator_identity: ::core::option::Option<
493 super::super::super::core::keys::v1::IdentityKey,
494 >,
495 #[deprecated]
497 #[prost(uint64, tag = "2")]
498 pub start_epoch_index: u64,
499 #[prost(message, optional, tag = "3")]
502 pub penalty: ::core::option::Option<
503 super::super::super::core::component::stake::v1::Penalty,
504 >,
505 #[prost(message, optional, tag = "4")]
508 pub unbonding_amount: ::core::option::Option<
509 super::super::super::core::num::v1::Amount,
510 >,
511 #[prost(uint64, tag = "5")]
513 pub unbonding_start_height: u64,
514 }
515 impl ::prost::Name for UndelegateClaim {
516 const NAME: &'static str = "UndelegateClaim";
517 const PACKAGE: &'static str = "penumbra.view.v1";
518 fn full_name() -> ::prost::alloc::string::String {
519 "penumbra.view.v1.TransactionPlannerRequest.UndelegateClaim".into()
520 }
521 fn type_url() -> ::prost::alloc::string::String {
522 "/penumbra.view.v1.TransactionPlannerRequest.UndelegateClaim".into()
523 }
524 }
525 #[derive(Clone, PartialEq, ::prost::Message)]
526 pub struct PositionOpen {
527 #[prost(message, optional, tag = "1")]
532 pub position: ::core::option::Option<
533 super::super::super::core::component::dex::v1::Position,
534 >,
535 }
536 impl ::prost::Name for PositionOpen {
537 const NAME: &'static str = "PositionOpen";
538 const PACKAGE: &'static str = "penumbra.view.v1";
539 fn full_name() -> ::prost::alloc::string::String {
540 "penumbra.view.v1.TransactionPlannerRequest.PositionOpen".into()
541 }
542 fn type_url() -> ::prost::alloc::string::String {
543 "/penumbra.view.v1.TransactionPlannerRequest.PositionOpen".into()
544 }
545 }
546 #[derive(Clone, PartialEq, ::prost::Message)]
547 pub struct PositionClose {
548 #[prost(message, optional, tag = "1")]
550 pub position_id: ::core::option::Option<
551 super::super::super::core::component::dex::v1::PositionId,
552 >,
553 }
554 impl ::prost::Name for PositionClose {
555 const NAME: &'static str = "PositionClose";
556 const PACKAGE: &'static str = "penumbra.view.v1";
557 fn full_name() -> ::prost::alloc::string::String {
558 "penumbra.view.v1.TransactionPlannerRequest.PositionClose".into()
559 }
560 fn type_url() -> ::prost::alloc::string::String {
561 "/penumbra.view.v1.TransactionPlannerRequest.PositionClose".into()
562 }
563 }
564 #[derive(Clone, PartialEq, ::prost::Message)]
565 pub struct PositionWithdraw {
566 #[prost(message, optional, tag = "1")]
568 pub position_id: ::core::option::Option<
569 super::super::super::core::component::dex::v1::PositionId,
570 >,
571 #[prost(message, optional, tag = "2")]
573 pub reserves: ::core::option::Option<
574 super::super::super::core::component::dex::v1::Reserves,
575 >,
576 #[prost(message, optional, tag = "3")]
578 pub trading_pair: ::core::option::Option<
579 super::super::super::core::component::dex::v1::TradingPair,
580 >,
581 }
582 impl ::prost::Name for PositionWithdraw {
583 const NAME: &'static str = "PositionWithdraw";
584 const PACKAGE: &'static str = "penumbra.view.v1";
585 fn full_name() -> ::prost::alloc::string::String {
586 "penumbra.view.v1.TransactionPlannerRequest.PositionWithdraw".into()
587 }
588 fn type_url() -> ::prost::alloc::string::String {
589 "/penumbra.view.v1.TransactionPlannerRequest.PositionWithdraw".into()
590 }
591 }
592 #[derive(Clone, PartialEq, ::prost::Message)]
593 pub struct ActionDutchAuctionSchedule {
594 #[prost(message, optional, tag = "1")]
596 pub description: ::core::option::Option<
597 super::super::super::core::component::auction::v1::DutchAuctionDescription,
598 >,
599 }
600 impl ::prost::Name for ActionDutchAuctionSchedule {
601 const NAME: &'static str = "ActionDutchAuctionSchedule";
602 const PACKAGE: &'static str = "penumbra.view.v1";
603 fn full_name() -> ::prost::alloc::string::String {
604 "penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionSchedule"
605 .into()
606 }
607 fn type_url() -> ::prost::alloc::string::String {
608 "/penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionSchedule"
609 .into()
610 }
611 }
612 #[derive(Clone, PartialEq, ::prost::Message)]
613 pub struct ActionDutchAuctionEnd {
614 #[prost(message, optional, tag = "1")]
616 pub auction_id: ::core::option::Option<
617 super::super::super::core::component::auction::v1::AuctionId,
618 >,
619 }
620 impl ::prost::Name for ActionDutchAuctionEnd {
621 const NAME: &'static str = "ActionDutchAuctionEnd";
622 const PACKAGE: &'static str = "penumbra.view.v1";
623 fn full_name() -> ::prost::alloc::string::String {
624 "penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionEnd".into()
625 }
626 fn type_url() -> ::prost::alloc::string::String {
627 "/penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionEnd".into()
628 }
629 }
630 #[derive(Clone, PartialEq, ::prost::Message)]
631 pub struct ActionDutchAuctionWithdraw {
632 #[prost(message, optional, tag = "1")]
634 pub auction_id: ::core::option::Option<
635 super::super::super::core::component::auction::v1::AuctionId,
636 >,
637 #[prost(uint64, tag = "2")]
639 pub seq: u64,
640 }
641 impl ::prost::Name for ActionDutchAuctionWithdraw {
642 const NAME: &'static str = "ActionDutchAuctionWithdraw";
643 const PACKAGE: &'static str = "penumbra.view.v1";
644 fn full_name() -> ::prost::alloc::string::String {
645 "penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionWithdraw"
646 .into()
647 }
648 fn type_url() -> ::prost::alloc::string::String {
649 "/penumbra.view.v1.TransactionPlannerRequest.ActionDutchAuctionWithdraw"
650 .into()
651 }
652 }
653 #[derive(Clone, PartialEq, ::prost::Message)]
654 pub struct DelegatorVote {
655 #[prost(uint64, tag = "1")]
657 pub proposal: u64,
658 #[prost(message, optional, tag = "2")]
660 pub vote: ::core::option::Option<
661 super::super::super::core::component::governance::v1::Vote,
662 >,
663 #[prost(uint64, tag = "3")]
665 pub start_block_height: u64,
666 #[prost(uint64, tag = "4")]
668 pub start_position: u64,
669 #[prost(message, repeated, tag = "5")]
671 pub rate_data: ::prost::alloc::vec::Vec<
672 super::super::super::core::component::stake::v1::RateData,
673 >,
674 }
675 impl ::prost::Name for DelegatorVote {
676 const NAME: &'static str = "DelegatorVote";
677 const PACKAGE: &'static str = "penumbra.view.v1";
678 fn full_name() -> ::prost::alloc::string::String {
679 "penumbra.view.v1.TransactionPlannerRequest.DelegatorVote".into()
680 }
681 fn type_url() -> ::prost::alloc::string::String {
682 "/penumbra.view.v1.TransactionPlannerRequest.DelegatorVote".into()
683 }
684 }
685 #[derive(Clone, PartialEq, ::prost::Oneof)]
687 pub enum FeeMode {
688 #[prost(message, tag = "100")]
690 AutoFee(super::super::super::core::component::fee::v1::FeeTier),
691 #[prost(message, tag = "101")]
693 ManualFee(super::super::super::core::component::fee::v1::Fee),
694 }
695}
696impl ::prost::Name for TransactionPlannerRequest {
697 const NAME: &'static str = "TransactionPlannerRequest";
698 const PACKAGE: &'static str = "penumbra.view.v1";
699 fn full_name() -> ::prost::alloc::string::String {
700 "penumbra.view.v1.TransactionPlannerRequest".into()
701 }
702 fn type_url() -> ::prost::alloc::string::String {
703 "/penumbra.view.v1.TransactionPlannerRequest".into()
704 }
705}
706#[derive(Clone, PartialEq, ::prost::Message)]
707pub struct TransactionPlannerResponse {
708 #[prost(message, optional, tag = "1")]
709 pub plan: ::core::option::Option<
710 super::super::core::transaction::v1::TransactionPlan,
711 >,
712}
713impl ::prost::Name for TransactionPlannerResponse {
714 const NAME: &'static str = "TransactionPlannerResponse";
715 const PACKAGE: &'static str = "penumbra.view.v1";
716 fn full_name() -> ::prost::alloc::string::String {
717 "penumbra.view.v1.TransactionPlannerResponse".into()
718 }
719 fn type_url() -> ::prost::alloc::string::String {
720 "/penumbra.view.v1.TransactionPlannerResponse".into()
721 }
722}
723#[derive(Clone, PartialEq, ::prost::Message)]
724pub struct AddressByIndexRequest {
725 #[prost(message, optional, tag = "1")]
726 pub address_index: ::core::option::Option<
727 super::super::core::keys::v1::AddressIndex,
728 >,
729}
730impl ::prost::Name for AddressByIndexRequest {
731 const NAME: &'static str = "AddressByIndexRequest";
732 const PACKAGE: &'static str = "penumbra.view.v1";
733 fn full_name() -> ::prost::alloc::string::String {
734 "penumbra.view.v1.AddressByIndexRequest".into()
735 }
736 fn type_url() -> ::prost::alloc::string::String {
737 "/penumbra.view.v1.AddressByIndexRequest".into()
738 }
739}
740#[derive(Clone, PartialEq, ::prost::Message)]
741pub struct AddressByIndexResponse {
742 #[prost(message, optional, tag = "1")]
743 pub address: ::core::option::Option<super::super::core::keys::v1::Address>,
744}
745impl ::prost::Name for AddressByIndexResponse {
746 const NAME: &'static str = "AddressByIndexResponse";
747 const PACKAGE: &'static str = "penumbra.view.v1";
748 fn full_name() -> ::prost::alloc::string::String {
749 "penumbra.view.v1.AddressByIndexResponse".into()
750 }
751 fn type_url() -> ::prost::alloc::string::String {
752 "/penumbra.view.v1.AddressByIndexResponse".into()
753 }
754}
755#[derive(Clone, Copy, PartialEq, ::prost::Message)]
756pub struct WalletIdRequest {}
757impl ::prost::Name for WalletIdRequest {
758 const NAME: &'static str = "WalletIdRequest";
759 const PACKAGE: &'static str = "penumbra.view.v1";
760 fn full_name() -> ::prost::alloc::string::String {
761 "penumbra.view.v1.WalletIdRequest".into()
762 }
763 fn type_url() -> ::prost::alloc::string::String {
764 "/penumbra.view.v1.WalletIdRequest".into()
765 }
766}
767#[derive(Clone, PartialEq, ::prost::Message)]
768pub struct WalletIdResponse {
769 #[prost(message, optional, tag = "1")]
770 pub wallet_id: ::core::option::Option<super::super::core::keys::v1::WalletId>,
771}
772impl ::prost::Name for WalletIdResponse {
773 const NAME: &'static str = "WalletIdResponse";
774 const PACKAGE: &'static str = "penumbra.view.v1";
775 fn full_name() -> ::prost::alloc::string::String {
776 "penumbra.view.v1.WalletIdResponse".into()
777 }
778 fn type_url() -> ::prost::alloc::string::String {
779 "/penumbra.view.v1.WalletIdResponse".into()
780 }
781}
782#[derive(Clone, PartialEq, ::prost::Message)]
783pub struct IndexByAddressRequest {
784 #[prost(message, optional, tag = "1")]
785 pub address: ::core::option::Option<super::super::core::keys::v1::Address>,
786}
787impl ::prost::Name for IndexByAddressRequest {
788 const NAME: &'static str = "IndexByAddressRequest";
789 const PACKAGE: &'static str = "penumbra.view.v1";
790 fn full_name() -> ::prost::alloc::string::String {
791 "penumbra.view.v1.IndexByAddressRequest".into()
792 }
793 fn type_url() -> ::prost::alloc::string::String {
794 "/penumbra.view.v1.IndexByAddressRequest".into()
795 }
796}
797#[derive(Clone, PartialEq, ::prost::Message)]
798pub struct IndexByAddressResponse {
799 #[prost(message, optional, tag = "1")]
801 pub address_index: ::core::option::Option<
802 super::super::core::keys::v1::AddressIndex,
803 >,
804}
805impl ::prost::Name for IndexByAddressResponse {
806 const NAME: &'static str = "IndexByAddressResponse";
807 const PACKAGE: &'static str = "penumbra.view.v1";
808 fn full_name() -> ::prost::alloc::string::String {
809 "penumbra.view.v1.IndexByAddressResponse".into()
810 }
811 fn type_url() -> ::prost::alloc::string::String {
812 "/penumbra.view.v1.IndexByAddressResponse".into()
813 }
814}
815#[derive(Clone, PartialEq, ::prost::Message)]
816pub struct EphemeralAddressRequest {
817 #[prost(message, optional, tag = "1")]
818 pub address_index: ::core::option::Option<
819 super::super::core::keys::v1::AddressIndex,
820 >,
821}
822impl ::prost::Name for EphemeralAddressRequest {
823 const NAME: &'static str = "EphemeralAddressRequest";
824 const PACKAGE: &'static str = "penumbra.view.v1";
825 fn full_name() -> ::prost::alloc::string::String {
826 "penumbra.view.v1.EphemeralAddressRequest".into()
827 }
828 fn type_url() -> ::prost::alloc::string::String {
829 "/penumbra.view.v1.EphemeralAddressRequest".into()
830 }
831}
832#[derive(Clone, PartialEq, ::prost::Message)]
833pub struct EphemeralAddressResponse {
834 #[prost(message, optional, tag = "1")]
835 pub address: ::core::option::Option<super::super::core::keys::v1::Address>,
836}
837impl ::prost::Name for EphemeralAddressResponse {
838 const NAME: &'static str = "EphemeralAddressResponse";
839 const PACKAGE: &'static str = "penumbra.view.v1";
840 fn full_name() -> ::prost::alloc::string::String {
841 "penumbra.view.v1.EphemeralAddressResponse".into()
842 }
843 fn type_url() -> ::prost::alloc::string::String {
844 "/penumbra.view.v1.EphemeralAddressResponse".into()
845 }
846}
847#[derive(Clone, PartialEq, ::prost::Message)]
848pub struct BalancesRequest {
849 #[prost(message, optional, tag = "1")]
851 pub account_filter: ::core::option::Option<
852 super::super::core::keys::v1::AddressIndex,
853 >,
854 #[prost(message, optional, tag = "2")]
856 pub asset_id_filter: ::core::option::Option<super::super::core::asset::v1::AssetId>,
857}
858impl ::prost::Name for BalancesRequest {
859 const NAME: &'static str = "BalancesRequest";
860 const PACKAGE: &'static str = "penumbra.view.v1";
861 fn full_name() -> ::prost::alloc::string::String {
862 "penumbra.view.v1.BalancesRequest".into()
863 }
864 fn type_url() -> ::prost::alloc::string::String {
865 "/penumbra.view.v1.BalancesRequest".into()
866 }
867}
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct BalancesResponse {
870 #[deprecated]
872 #[prost(message, optional, tag = "1")]
873 pub account: ::core::option::Option<super::super::core::keys::v1::AddressIndex>,
874 #[deprecated]
876 #[prost(message, optional, tag = "2")]
877 pub balance: ::core::option::Option<super::super::core::asset::v1::Value>,
878 #[prost(message, optional, tag = "3")]
883 pub account_address: ::core::option::Option<
884 super::super::core::keys::v1::AddressView,
885 >,
886 #[prost(message, optional, tag = "4")]
888 pub balance_view: ::core::option::Option<super::super::core::asset::v1::ValueView>,
889}
890impl ::prost::Name for BalancesResponse {
891 const NAME: &'static str = "BalancesResponse";
892 const PACKAGE: &'static str = "penumbra.view.v1";
893 fn full_name() -> ::prost::alloc::string::String {
894 "penumbra.view.v1.BalancesResponse".into()
895 }
896 fn type_url() -> ::prost::alloc::string::String {
897 "/penumbra.view.v1.BalancesResponse".into()
898 }
899}
900#[derive(Clone, Copy, PartialEq, ::prost::Message)]
902pub struct StatusRequest {}
903impl ::prost::Name for StatusRequest {
904 const NAME: &'static str = "StatusRequest";
905 const PACKAGE: &'static str = "penumbra.view.v1";
906 fn full_name() -> ::prost::alloc::string::String {
907 "penumbra.view.v1.StatusRequest".into()
908 }
909 fn type_url() -> ::prost::alloc::string::String {
910 "/penumbra.view.v1.StatusRequest".into()
911 }
912}
913#[derive(Clone, Copy, PartialEq, ::prost::Message)]
915pub struct StatusResponse {
916 #[prost(uint64, tag = "1")]
918 pub full_sync_height: u64,
919 #[prost(uint64, tag = "2")]
921 pub partial_sync_height: u64,
922 #[prost(bool, tag = "3")]
924 pub catching_up: bool,
925}
926impl ::prost::Name for StatusResponse {
927 const NAME: &'static str = "StatusResponse";
928 const PACKAGE: &'static str = "penumbra.view.v1";
929 fn full_name() -> ::prost::alloc::string::String {
930 "penumbra.view.v1.StatusResponse".into()
931 }
932 fn type_url() -> ::prost::alloc::string::String {
933 "/penumbra.view.v1.StatusResponse".into()
934 }
935}
936#[derive(Clone, Copy, PartialEq, ::prost::Message)]
938pub struct StatusStreamRequest {}
939impl ::prost::Name for StatusStreamRequest {
940 const NAME: &'static str = "StatusStreamRequest";
941 const PACKAGE: &'static str = "penumbra.view.v1";
942 fn full_name() -> ::prost::alloc::string::String {
943 "penumbra.view.v1.StatusStreamRequest".into()
944 }
945 fn type_url() -> ::prost::alloc::string::String {
946 "/penumbra.view.v1.StatusStreamRequest".into()
947 }
948}
949#[derive(Clone, Copy, PartialEq, ::prost::Message)]
951pub struct StatusStreamResponse {
952 #[prost(uint64, tag = "1")]
954 pub latest_known_block_height: u64,
955 #[prost(uint64, tag = "2")]
957 pub full_sync_height: u64,
958 #[prost(uint64, tag = "3")]
960 pub partial_sync_height: u64,
961}
962impl ::prost::Name for StatusStreamResponse {
963 const NAME: &'static str = "StatusStreamResponse";
964 const PACKAGE: &'static str = "penumbra.view.v1";
965 fn full_name() -> ::prost::alloc::string::String {
966 "penumbra.view.v1.StatusStreamResponse".into()
967 }
968 fn type_url() -> ::prost::alloc::string::String {
969 "/penumbra.view.v1.StatusStreamResponse".into()
970 }
971}
972#[derive(Clone, PartialEq, ::prost::Message)]
977pub struct NotesRequest {
978 #[prost(bool, tag = "2")]
980 pub include_spent: bool,
981 #[prost(message, optional, tag = "3")]
983 pub asset_id: ::core::option::Option<super::super::core::asset::v1::AssetId>,
984 #[prost(message, optional, tag = "4")]
986 pub address_index: ::core::option::Option<
987 super::super::core::keys::v1::AddressIndex,
988 >,
989 #[prost(message, optional, tag = "6")]
993 pub amount_to_spend: ::core::option::Option<super::super::core::num::v1::Amount>,
994}
995impl ::prost::Name for NotesRequest {
996 const NAME: &'static str = "NotesRequest";
997 const PACKAGE: &'static str = "penumbra.view.v1";
998 fn full_name() -> ::prost::alloc::string::String {
999 "penumbra.view.v1.NotesRequest".into()
1000 }
1001 fn type_url() -> ::prost::alloc::string::String {
1002 "/penumbra.view.v1.NotesRequest".into()
1003 }
1004}
1005#[derive(Clone, PartialEq, ::prost::Message)]
1007pub struct NotesForVotingRequest {
1008 #[prost(uint64, tag = "1")]
1010 pub votable_at_height: u64,
1011 #[prost(message, optional, tag = "3")]
1013 pub address_index: ::core::option::Option<
1014 super::super::core::keys::v1::AddressIndex,
1015 >,
1016}
1017impl ::prost::Name for NotesForVotingRequest {
1018 const NAME: &'static str = "NotesForVotingRequest";
1019 const PACKAGE: &'static str = "penumbra.view.v1";
1020 fn full_name() -> ::prost::alloc::string::String {
1021 "penumbra.view.v1.NotesForVotingRequest".into()
1022 }
1023 fn type_url() -> ::prost::alloc::string::String {
1024 "/penumbra.view.v1.NotesForVotingRequest".into()
1025 }
1026}
1027#[derive(Clone, PartialEq, ::prost::Message)]
1028pub struct WitnessRequest {
1029 #[prost(message, optional, tag = "3")]
1031 pub transaction_plan: ::core::option::Option<
1032 super::super::core::transaction::v1::TransactionPlan,
1033 >,
1034}
1035impl ::prost::Name for WitnessRequest {
1036 const NAME: &'static str = "WitnessRequest";
1037 const PACKAGE: &'static str = "penumbra.view.v1";
1038 fn full_name() -> ::prost::alloc::string::String {
1039 "penumbra.view.v1.WitnessRequest".into()
1040 }
1041 fn type_url() -> ::prost::alloc::string::String {
1042 "/penumbra.view.v1.WitnessRequest".into()
1043 }
1044}
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct WitnessResponse {
1047 #[prost(message, optional, tag = "1")]
1048 pub witness_data: ::core::option::Option<
1049 super::super::core::transaction::v1::WitnessData,
1050 >,
1051}
1052impl ::prost::Name for WitnessResponse {
1053 const NAME: &'static str = "WitnessResponse";
1054 const PACKAGE: &'static str = "penumbra.view.v1";
1055 fn full_name() -> ::prost::alloc::string::String {
1056 "penumbra.view.v1.WitnessResponse".into()
1057 }
1058 fn type_url() -> ::prost::alloc::string::String {
1059 "/penumbra.view.v1.WitnessResponse".into()
1060 }
1061}
1062#[derive(Clone, PartialEq, ::prost::Message)]
1063pub struct WitnessAndBuildRequest {
1064 #[prost(message, optional, tag = "1")]
1065 pub transaction_plan: ::core::option::Option<
1066 super::super::core::transaction::v1::TransactionPlan,
1067 >,
1068 #[prost(message, optional, tag = "2")]
1069 pub authorization_data: ::core::option::Option<
1070 super::super::core::transaction::v1::AuthorizationData,
1071 >,
1072}
1073impl ::prost::Name for WitnessAndBuildRequest {
1074 const NAME: &'static str = "WitnessAndBuildRequest";
1075 const PACKAGE: &'static str = "penumbra.view.v1";
1076 fn full_name() -> ::prost::alloc::string::String {
1077 "penumbra.view.v1.WitnessAndBuildRequest".into()
1078 }
1079 fn type_url() -> ::prost::alloc::string::String {
1080 "/penumbra.view.v1.WitnessAndBuildRequest".into()
1081 }
1082}
1083#[derive(Clone, PartialEq, ::prost::Message)]
1084pub struct WitnessAndBuildResponse {
1085 #[prost(oneof = "witness_and_build_response::Status", tags = "1, 2")]
1086 pub status: ::core::option::Option<witness_and_build_response::Status>,
1087}
1088pub mod witness_and_build_response {
1090 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1092 pub struct BuildProgress {
1093 #[prost(float, tag = "1")]
1095 pub progress: f32,
1096 }
1097 impl ::prost::Name for BuildProgress {
1098 const NAME: &'static str = "BuildProgress";
1099 const PACKAGE: &'static str = "penumbra.view.v1";
1100 fn full_name() -> ::prost::alloc::string::String {
1101 "penumbra.view.v1.WitnessAndBuildResponse.BuildProgress".into()
1102 }
1103 fn type_url() -> ::prost::alloc::string::String {
1104 "/penumbra.view.v1.WitnessAndBuildResponse.BuildProgress".into()
1105 }
1106 }
1107 #[derive(Clone, PartialEq, ::prost::Message)]
1109 pub struct Complete {
1110 #[prost(message, optional, tag = "1")]
1112 pub transaction: ::core::option::Option<
1113 super::super::super::core::transaction::v1::Transaction,
1114 >,
1115 }
1116 impl ::prost::Name for Complete {
1117 const NAME: &'static str = "Complete";
1118 const PACKAGE: &'static str = "penumbra.view.v1";
1119 fn full_name() -> ::prost::alloc::string::String {
1120 "penumbra.view.v1.WitnessAndBuildResponse.Complete".into()
1121 }
1122 fn type_url() -> ::prost::alloc::string::String {
1123 "/penumbra.view.v1.WitnessAndBuildResponse.Complete".into()
1124 }
1125 }
1126 #[derive(Clone, PartialEq, ::prost::Oneof)]
1127 pub enum Status {
1128 #[prost(message, tag = "1")]
1129 BuildProgress(BuildProgress),
1130 #[prost(message, tag = "2")]
1131 Complete(Complete),
1132 }
1133}
1134impl ::prost::Name for WitnessAndBuildResponse {
1135 const NAME: &'static str = "WitnessAndBuildResponse";
1136 const PACKAGE: &'static str = "penumbra.view.v1";
1137 fn full_name() -> ::prost::alloc::string::String {
1138 "penumbra.view.v1.WitnessAndBuildResponse".into()
1139 }
1140 fn type_url() -> ::prost::alloc::string::String {
1141 "/penumbra.view.v1.WitnessAndBuildResponse".into()
1142 }
1143}
1144#[derive(Clone, PartialEq, ::prost::Message)]
1146pub struct AssetsRequest {
1147 #[prost(bool, tag = "1")]
1150 pub filtered: bool,
1151 #[prost(message, repeated, tag = "2")]
1153 pub include_specific_denominations: ::prost::alloc::vec::Vec<
1154 super::super::core::asset::v1::Denom,
1155 >,
1156 #[prost(bool, tag = "3")]
1158 pub include_delegation_tokens: bool,
1159 #[prost(bool, tag = "4")]
1161 pub include_unbonding_tokens: bool,
1162 #[prost(bool, tag = "5")]
1164 pub include_lp_nfts: bool,
1165 #[prost(bool, tag = "6")]
1167 pub include_proposal_nfts: bool,
1168 #[prost(bool, tag = "7")]
1170 pub include_voting_receipt_tokens: bool,
1171}
1172impl ::prost::Name for AssetsRequest {
1173 const NAME: &'static str = "AssetsRequest";
1174 const PACKAGE: &'static str = "penumbra.view.v1";
1175 fn full_name() -> ::prost::alloc::string::String {
1176 "penumbra.view.v1.AssetsRequest".into()
1177 }
1178 fn type_url() -> ::prost::alloc::string::String {
1179 "/penumbra.view.v1.AssetsRequest".into()
1180 }
1181}
1182#[derive(Clone, PartialEq, ::prost::Message)]
1184pub struct AssetsResponse {
1185 #[prost(message, optional, tag = "2")]
1186 pub denom_metadata: ::core::option::Option<super::super::core::asset::v1::Metadata>,
1187}
1188impl ::prost::Name for AssetsResponse {
1189 const NAME: &'static str = "AssetsResponse";
1190 const PACKAGE: &'static str = "penumbra.view.v1";
1191 fn full_name() -> ::prost::alloc::string::String {
1192 "penumbra.view.v1.AssetsResponse".into()
1193 }
1194 fn type_url() -> ::prost::alloc::string::String {
1195 "/penumbra.view.v1.AssetsResponse".into()
1196 }
1197}
1198#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1200pub struct AppParametersRequest {}
1201impl ::prost::Name for AppParametersRequest {
1202 const NAME: &'static str = "AppParametersRequest";
1203 const PACKAGE: &'static str = "penumbra.view.v1";
1204 fn full_name() -> ::prost::alloc::string::String {
1205 "penumbra.view.v1.AppParametersRequest".into()
1206 }
1207 fn type_url() -> ::prost::alloc::string::String {
1208 "/penumbra.view.v1.AppParametersRequest".into()
1209 }
1210}
1211#[derive(Clone, PartialEq, ::prost::Message)]
1212pub struct AppParametersResponse {
1213 #[prost(message, optional, tag = "1")]
1214 pub parameters: ::core::option::Option<super::super::core::app::v1::AppParameters>,
1215}
1216impl ::prost::Name for AppParametersResponse {
1217 const NAME: &'static str = "AppParametersResponse";
1218 const PACKAGE: &'static str = "penumbra.view.v1";
1219 fn full_name() -> ::prost::alloc::string::String {
1220 "penumbra.view.v1.AppParametersResponse".into()
1221 }
1222 fn type_url() -> ::prost::alloc::string::String {
1223 "/penumbra.view.v1.AppParametersResponse".into()
1224 }
1225}
1226#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1228pub struct GasPricesRequest {}
1229impl ::prost::Name for GasPricesRequest {
1230 const NAME: &'static str = "GasPricesRequest";
1231 const PACKAGE: &'static str = "penumbra.view.v1";
1232 fn full_name() -> ::prost::alloc::string::String {
1233 "penumbra.view.v1.GasPricesRequest".into()
1234 }
1235 fn type_url() -> ::prost::alloc::string::String {
1236 "/penumbra.view.v1.GasPricesRequest".into()
1237 }
1238}
1239#[derive(Clone, PartialEq, ::prost::Message)]
1240pub struct GasPricesResponse {
1241 #[prost(message, optional, tag = "1")]
1243 pub gas_prices: ::core::option::Option<
1244 super::super::core::component::fee::v1::GasPrices,
1245 >,
1246 #[prost(message, repeated, tag = "2")]
1248 pub alt_gas_prices: ::prost::alloc::vec::Vec<
1249 super::super::core::component::fee::v1::GasPrices,
1250 >,
1251}
1252impl ::prost::Name for GasPricesResponse {
1253 const NAME: &'static str = "GasPricesResponse";
1254 const PACKAGE: &'static str = "penumbra.view.v1";
1255 fn full_name() -> ::prost::alloc::string::String {
1256 "penumbra.view.v1.GasPricesResponse".into()
1257 }
1258 fn type_url() -> ::prost::alloc::string::String {
1259 "/penumbra.view.v1.GasPricesResponse".into()
1260 }
1261}
1262#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1264pub struct FmdParametersRequest {}
1265impl ::prost::Name for FmdParametersRequest {
1266 const NAME: &'static str = "FMDParametersRequest";
1267 const PACKAGE: &'static str = "penumbra.view.v1";
1268 fn full_name() -> ::prost::alloc::string::String {
1269 "penumbra.view.v1.FMDParametersRequest".into()
1270 }
1271 fn type_url() -> ::prost::alloc::string::String {
1272 "/penumbra.view.v1.FMDParametersRequest".into()
1273 }
1274}
1275#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1276pub struct FmdParametersResponse {
1277 #[prost(message, optional, tag = "1")]
1278 pub parameters: ::core::option::Option<
1279 super::super::core::component::shielded_pool::v1::FmdParameters,
1280 >,
1281}
1282impl ::prost::Name for FmdParametersResponse {
1283 const NAME: &'static str = "FMDParametersResponse";
1284 const PACKAGE: &'static str = "penumbra.view.v1";
1285 fn full_name() -> ::prost::alloc::string::String {
1286 "penumbra.view.v1.FMDParametersResponse".into()
1287 }
1288 fn type_url() -> ::prost::alloc::string::String {
1289 "/penumbra.view.v1.FMDParametersResponse".into()
1290 }
1291}
1292#[derive(Clone, PartialEq, ::prost::Message)]
1293pub struct NoteByCommitmentRequest {
1294 #[prost(message, optional, tag = "2")]
1295 pub note_commitment: ::core::option::Option<
1296 super::super::crypto::tct::v1::StateCommitment,
1297 >,
1298 #[prost(bool, tag = "3")]
1300 pub await_detection: bool,
1301}
1302impl ::prost::Name for NoteByCommitmentRequest {
1303 const NAME: &'static str = "NoteByCommitmentRequest";
1304 const PACKAGE: &'static str = "penumbra.view.v1";
1305 fn full_name() -> ::prost::alloc::string::String {
1306 "penumbra.view.v1.NoteByCommitmentRequest".into()
1307 }
1308 fn type_url() -> ::prost::alloc::string::String {
1309 "/penumbra.view.v1.NoteByCommitmentRequest".into()
1310 }
1311}
1312#[derive(Clone, PartialEq, ::prost::Message)]
1313pub struct NoteByCommitmentResponse {
1314 #[prost(message, optional, tag = "1")]
1315 pub spendable_note: ::core::option::Option<SpendableNoteRecord>,
1316}
1317impl ::prost::Name for NoteByCommitmentResponse {
1318 const NAME: &'static str = "NoteByCommitmentResponse";
1319 const PACKAGE: &'static str = "penumbra.view.v1";
1320 fn full_name() -> ::prost::alloc::string::String {
1321 "penumbra.view.v1.NoteByCommitmentResponse".into()
1322 }
1323 fn type_url() -> ::prost::alloc::string::String {
1324 "/penumbra.view.v1.NoteByCommitmentResponse".into()
1325 }
1326}
1327#[derive(Clone, PartialEq, ::prost::Message)]
1328pub struct SwapByCommitmentRequest {
1329 #[prost(message, optional, tag = "2")]
1330 pub swap_commitment: ::core::option::Option<
1331 super::super::crypto::tct::v1::StateCommitment,
1332 >,
1333 #[prost(bool, tag = "3")]
1335 pub await_detection: bool,
1336}
1337impl ::prost::Name for SwapByCommitmentRequest {
1338 const NAME: &'static str = "SwapByCommitmentRequest";
1339 const PACKAGE: &'static str = "penumbra.view.v1";
1340 fn full_name() -> ::prost::alloc::string::String {
1341 "penumbra.view.v1.SwapByCommitmentRequest".into()
1342 }
1343 fn type_url() -> ::prost::alloc::string::String {
1344 "/penumbra.view.v1.SwapByCommitmentRequest".into()
1345 }
1346}
1347#[derive(Clone, PartialEq, ::prost::Message)]
1348pub struct SwapByCommitmentResponse {
1349 #[prost(message, optional, tag = "1")]
1350 pub swap: ::core::option::Option<SwapRecord>,
1351}
1352impl ::prost::Name for SwapByCommitmentResponse {
1353 const NAME: &'static str = "SwapByCommitmentResponse";
1354 const PACKAGE: &'static str = "penumbra.view.v1";
1355 fn full_name() -> ::prost::alloc::string::String {
1356 "penumbra.view.v1.SwapByCommitmentResponse".into()
1357 }
1358 fn type_url() -> ::prost::alloc::string::String {
1359 "/penumbra.view.v1.SwapByCommitmentResponse".into()
1360 }
1361}
1362#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1363pub struct UnclaimedSwapsRequest {}
1364impl ::prost::Name for UnclaimedSwapsRequest {
1365 const NAME: &'static str = "UnclaimedSwapsRequest";
1366 const PACKAGE: &'static str = "penumbra.view.v1";
1367 fn full_name() -> ::prost::alloc::string::String {
1368 "penumbra.view.v1.UnclaimedSwapsRequest".into()
1369 }
1370 fn type_url() -> ::prost::alloc::string::String {
1371 "/penumbra.view.v1.UnclaimedSwapsRequest".into()
1372 }
1373}
1374#[derive(Clone, PartialEq, ::prost::Message)]
1375pub struct UnclaimedSwapsResponse {
1376 #[prost(message, optional, tag = "1")]
1377 pub swap: ::core::option::Option<SwapRecord>,
1378}
1379impl ::prost::Name for UnclaimedSwapsResponse {
1380 const NAME: &'static str = "UnclaimedSwapsResponse";
1381 const PACKAGE: &'static str = "penumbra.view.v1";
1382 fn full_name() -> ::prost::alloc::string::String {
1383 "penumbra.view.v1.UnclaimedSwapsResponse".into()
1384 }
1385 fn type_url() -> ::prost::alloc::string::String {
1386 "/penumbra.view.v1.UnclaimedSwapsResponse".into()
1387 }
1388}
1389#[derive(Clone, PartialEq, ::prost::Message)]
1390pub struct NullifierStatusRequest {
1391 #[prost(message, optional, tag = "2")]
1392 pub nullifier: ::core::option::Option<
1393 super::super::core::component::sct::v1::Nullifier,
1394 >,
1395 #[prost(bool, tag = "3")]
1396 pub await_detection: bool,
1397}
1398impl ::prost::Name for NullifierStatusRequest {
1399 const NAME: &'static str = "NullifierStatusRequest";
1400 const PACKAGE: &'static str = "penumbra.view.v1";
1401 fn full_name() -> ::prost::alloc::string::String {
1402 "penumbra.view.v1.NullifierStatusRequest".into()
1403 }
1404 fn type_url() -> ::prost::alloc::string::String {
1405 "/penumbra.view.v1.NullifierStatusRequest".into()
1406 }
1407}
1408#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1409pub struct NullifierStatusResponse {
1410 #[prost(bool, tag = "1")]
1411 pub spent: bool,
1412}
1413impl ::prost::Name for NullifierStatusResponse {
1414 const NAME: &'static str = "NullifierStatusResponse";
1415 const PACKAGE: &'static str = "penumbra.view.v1";
1416 fn full_name() -> ::prost::alloc::string::String {
1417 "penumbra.view.v1.NullifierStatusResponse".into()
1418 }
1419 fn type_url() -> ::prost::alloc::string::String {
1420 "/penumbra.view.v1.NullifierStatusResponse".into()
1421 }
1422}
1423#[derive(Clone, PartialEq, ::prost::Message)]
1424pub struct TransactionInfoByHashRequest {
1425 #[prost(message, optional, tag = "2")]
1427 pub id: ::core::option::Option<super::super::core::txhash::v1::TransactionId>,
1428}
1429impl ::prost::Name for TransactionInfoByHashRequest {
1430 const NAME: &'static str = "TransactionInfoByHashRequest";
1431 const PACKAGE: &'static str = "penumbra.view.v1";
1432 fn full_name() -> ::prost::alloc::string::String {
1433 "penumbra.view.v1.TransactionInfoByHashRequest".into()
1434 }
1435 fn type_url() -> ::prost::alloc::string::String {
1436 "/penumbra.view.v1.TransactionInfoByHashRequest".into()
1437 }
1438}
1439#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1440pub struct TransactionInfoRequest {
1441 #[prost(uint64, tag = "1")]
1443 pub start_height: u64,
1444 #[prost(uint64, tag = "2")]
1446 pub end_height: u64,
1447}
1448impl ::prost::Name for TransactionInfoRequest {
1449 const NAME: &'static str = "TransactionInfoRequest";
1450 const PACKAGE: &'static str = "penumbra.view.v1";
1451 fn full_name() -> ::prost::alloc::string::String {
1452 "penumbra.view.v1.TransactionInfoRequest".into()
1453 }
1454 fn type_url() -> ::prost::alloc::string::String {
1455 "/penumbra.view.v1.TransactionInfoRequest".into()
1456 }
1457}
1458#[derive(Clone, PartialEq, ::prost::Message)]
1459pub struct TransactionInfo {
1460 #[prost(uint64, tag = "1")]
1462 pub height: u64,
1463 #[prost(message, optional, tag = "2")]
1465 pub id: ::core::option::Option<super::super::core::txhash::v1::TransactionId>,
1466 #[prost(message, optional, tag = "3")]
1468 pub transaction: ::core::option::Option<
1469 super::super::core::transaction::v1::Transaction,
1470 >,
1471 #[prost(message, optional, tag = "4")]
1473 pub perspective: ::core::option::Option<
1474 super::super::core::transaction::v1::TransactionPerspective,
1475 >,
1476 #[prost(message, optional, tag = "5")]
1478 pub view: ::core::option::Option<
1479 super::super::core::transaction::v1::TransactionView,
1480 >,
1481 #[prost(message, optional, tag = "6")]
1483 pub summary: ::core::option::Option<
1484 super::super::core::transaction::v1::TransactionSummary,
1485 >,
1486}
1487impl ::prost::Name for TransactionInfo {
1488 const NAME: &'static str = "TransactionInfo";
1489 const PACKAGE: &'static str = "penumbra.view.v1";
1490 fn full_name() -> ::prost::alloc::string::String {
1491 "penumbra.view.v1.TransactionInfo".into()
1492 }
1493 fn type_url() -> ::prost::alloc::string::String {
1494 "/penumbra.view.v1.TransactionInfo".into()
1495 }
1496}
1497#[derive(Clone, PartialEq, ::prost::Message)]
1498pub struct TransactionInfoResponse {
1499 #[prost(message, optional, tag = "1")]
1500 pub tx_info: ::core::option::Option<TransactionInfo>,
1501}
1502impl ::prost::Name for TransactionInfoResponse {
1503 const NAME: &'static str = "TransactionInfoResponse";
1504 const PACKAGE: &'static str = "penumbra.view.v1";
1505 fn full_name() -> ::prost::alloc::string::String {
1506 "penumbra.view.v1.TransactionInfoResponse".into()
1507 }
1508 fn type_url() -> ::prost::alloc::string::String {
1509 "/penumbra.view.v1.TransactionInfoResponse".into()
1510 }
1511}
1512#[derive(Clone, PartialEq, ::prost::Message)]
1513pub struct TransactionInfoByHashResponse {
1514 #[prost(message, optional, tag = "1")]
1515 pub tx_info: ::core::option::Option<TransactionInfo>,
1516}
1517impl ::prost::Name for TransactionInfoByHashResponse {
1518 const NAME: &'static str = "TransactionInfoByHashResponse";
1519 const PACKAGE: &'static str = "penumbra.view.v1";
1520 fn full_name() -> ::prost::alloc::string::String {
1521 "penumbra.view.v1.TransactionInfoByHashResponse".into()
1522 }
1523 fn type_url() -> ::prost::alloc::string::String {
1524 "/penumbra.view.v1.TransactionInfoByHashResponse".into()
1525 }
1526}
1527#[derive(Clone, PartialEq, ::prost::Message)]
1528pub struct NotesResponse {
1529 #[prost(message, optional, tag = "1")]
1530 pub note_record: ::core::option::Option<SpendableNoteRecord>,
1531}
1532impl ::prost::Name for NotesResponse {
1533 const NAME: &'static str = "NotesResponse";
1534 const PACKAGE: &'static str = "penumbra.view.v1";
1535 fn full_name() -> ::prost::alloc::string::String {
1536 "penumbra.view.v1.NotesResponse".into()
1537 }
1538 fn type_url() -> ::prost::alloc::string::String {
1539 "/penumbra.view.v1.NotesResponse".into()
1540 }
1541}
1542#[derive(Clone, PartialEq, ::prost::Message)]
1543pub struct NotesForVotingResponse {
1544 #[prost(message, optional, tag = "1")]
1545 pub note_record: ::core::option::Option<SpendableNoteRecord>,
1546 #[prost(message, optional, tag = "2")]
1547 pub identity_key: ::core::option::Option<super::super::core::keys::v1::IdentityKey>,
1548}
1549impl ::prost::Name for NotesForVotingResponse {
1550 const NAME: &'static str = "NotesForVotingResponse";
1551 const PACKAGE: &'static str = "penumbra.view.v1";
1552 fn full_name() -> ::prost::alloc::string::String {
1553 "penumbra.view.v1.NotesForVotingResponse".into()
1554 }
1555 fn type_url() -> ::prost::alloc::string::String {
1556 "/penumbra.view.v1.NotesForVotingResponse".into()
1557 }
1558}
1559#[derive(Clone, PartialEq, ::prost::Message)]
1561pub struct SpendableNoteRecord {
1562 #[prost(message, optional, tag = "1")]
1564 pub note_commitment: ::core::option::Option<
1565 super::super::crypto::tct::v1::StateCommitment,
1566 >,
1567 #[prost(message, optional, tag = "2")]
1569 pub note: ::core::option::Option<
1570 super::super::core::component::shielded_pool::v1::Note,
1571 >,
1572 #[prost(message, optional, tag = "3")]
1574 pub address_index: ::core::option::Option<
1575 super::super::core::keys::v1::AddressIndex,
1576 >,
1577 #[prost(message, optional, tag = "4")]
1579 pub nullifier: ::core::option::Option<
1580 super::super::core::component::sct::v1::Nullifier,
1581 >,
1582 #[prost(uint64, tag = "5")]
1584 pub height_created: u64,
1585 #[prost(uint64, tag = "6")]
1587 pub height_spent: u64,
1588 #[prost(uint64, tag = "7")]
1590 pub position: u64,
1591 #[prost(message, optional, tag = "8")]
1593 pub source: ::core::option::Option<
1594 super::super::core::component::sct::v1::CommitmentSource,
1595 >,
1596 #[prost(message, optional, tag = "9")]
1598 pub return_address: ::core::option::Option<
1599 super::super::core::keys::v1::AddressView,
1600 >,
1601}
1602impl ::prost::Name for SpendableNoteRecord {
1603 const NAME: &'static str = "SpendableNoteRecord";
1604 const PACKAGE: &'static str = "penumbra.view.v1";
1605 fn full_name() -> ::prost::alloc::string::String {
1606 "penumbra.view.v1.SpendableNoteRecord".into()
1607 }
1608 fn type_url() -> ::prost::alloc::string::String {
1609 "/penumbra.view.v1.SpendableNoteRecord".into()
1610 }
1611}
1612#[derive(Clone, PartialEq, ::prost::Message)]
1613pub struct SwapRecord {
1614 #[prost(message, optional, tag = "1")]
1615 pub swap_commitment: ::core::option::Option<
1616 super::super::crypto::tct::v1::StateCommitment,
1617 >,
1618 #[prost(message, optional, tag = "2")]
1619 pub swap: ::core::option::Option<
1620 super::super::core::component::dex::v1::SwapPlaintext,
1621 >,
1622 #[prost(uint64, tag = "3")]
1623 pub position: u64,
1624 #[prost(message, optional, tag = "4")]
1625 pub nullifier: ::core::option::Option<
1626 super::super::core::component::sct::v1::Nullifier,
1627 >,
1628 #[prost(message, optional, tag = "5")]
1629 pub output_data: ::core::option::Option<
1630 super::super::core::component::dex::v1::BatchSwapOutputData,
1631 >,
1632 #[prost(uint64, tag = "6")]
1633 pub height_claimed: u64,
1634 #[prost(message, optional, tag = "7")]
1635 pub source: ::core::option::Option<
1636 super::super::core::component::sct::v1::CommitmentSource,
1637 >,
1638}
1639impl ::prost::Name for SwapRecord {
1640 const NAME: &'static str = "SwapRecord";
1641 const PACKAGE: &'static str = "penumbra.view.v1";
1642 fn full_name() -> ::prost::alloc::string::String {
1643 "penumbra.view.v1.SwapRecord".into()
1644 }
1645 fn type_url() -> ::prost::alloc::string::String {
1646 "/penumbra.view.v1.SwapRecord".into()
1647 }
1648}
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct OwnedPositionIdsRequest {
1651 #[prost(message, optional, tag = "1")]
1653 pub position_state: ::core::option::Option<
1654 super::super::core::component::dex::v1::PositionState,
1655 >,
1656 #[prost(message, optional, tag = "2")]
1658 pub trading_pair: ::core::option::Option<
1659 super::super::core::component::dex::v1::TradingPair,
1660 >,
1661 #[prost(message, optional, tag = "3")]
1663 pub subaccount: ::core::option::Option<super::super::core::keys::v1::AddressIndex>,
1664}
1665impl ::prost::Name for OwnedPositionIdsRequest {
1666 const NAME: &'static str = "OwnedPositionIdsRequest";
1667 const PACKAGE: &'static str = "penumbra.view.v1";
1668 fn full_name() -> ::prost::alloc::string::String {
1669 "penumbra.view.v1.OwnedPositionIdsRequest".into()
1670 }
1671 fn type_url() -> ::prost::alloc::string::String {
1672 "/penumbra.view.v1.OwnedPositionIdsRequest".into()
1673 }
1674}
1675#[derive(Clone, PartialEq, ::prost::Message)]
1676pub struct OwnedPositionIdsResponse {
1677 #[prost(message, optional, tag = "1")]
1678 pub position_id: ::core::option::Option<
1679 super::super::core::component::dex::v1::PositionId,
1680 >,
1681 #[prost(message, optional, tag = "2")]
1683 pub subaccount: ::core::option::Option<super::super::core::keys::v1::AddressIndex>,
1684}
1685impl ::prost::Name for OwnedPositionIdsResponse {
1686 const NAME: &'static str = "OwnedPositionIdsResponse";
1687 const PACKAGE: &'static str = "penumbra.view.v1";
1688 fn full_name() -> ::prost::alloc::string::String {
1689 "penumbra.view.v1.OwnedPositionIdsResponse".into()
1690 }
1691 fn type_url() -> ::prost::alloc::string::String {
1692 "/penumbra.view.v1.OwnedPositionIdsResponse".into()
1693 }
1694}
1695#[derive(Clone, PartialEq, ::prost::Message)]
1697pub struct AssetMetadataByIdRequest {
1698 #[prost(message, optional, tag = "2")]
1700 pub asset_id: ::core::option::Option<super::super::core::asset::v1::AssetId>,
1701}
1702impl ::prost::Name for AssetMetadataByIdRequest {
1703 const NAME: &'static str = "AssetMetadataByIdRequest";
1704 const PACKAGE: &'static str = "penumbra.view.v1";
1705 fn full_name() -> ::prost::alloc::string::String {
1706 "penumbra.view.v1.AssetMetadataByIdRequest".into()
1707 }
1708 fn type_url() -> ::prost::alloc::string::String {
1709 "/penumbra.view.v1.AssetMetadataByIdRequest".into()
1710 }
1711}
1712#[derive(Clone, PartialEq, ::prost::Message)]
1713pub struct AssetMetadataByIdResponse {
1714 #[prost(message, optional, tag = "1")]
1718 pub denom_metadata: ::core::option::Option<super::super::core::asset::v1::Metadata>,
1719}
1720impl ::prost::Name for AssetMetadataByIdResponse {
1721 const NAME: &'static str = "AssetMetadataByIdResponse";
1722 const PACKAGE: &'static str = "penumbra.view.v1";
1723 fn full_name() -> ::prost::alloc::string::String {
1724 "penumbra.view.v1.AssetMetadataByIdResponse".into()
1725 }
1726 fn type_url() -> ::prost::alloc::string::String {
1727 "/penumbra.view.v1.AssetMetadataByIdResponse".into()
1728 }
1729}
1730#[derive(Clone, PartialEq, ::prost::Message)]
1734pub struct DelegationsByAddressIndexRequest {
1735 #[prost(message, optional, tag = "1")]
1737 pub address_index: ::core::option::Option<
1738 super::super::core::keys::v1::AddressIndex,
1739 >,
1740 #[prost(enumeration = "delegations_by_address_index_request::Filter", tag = "2")]
1741 pub filter: i32,
1742}
1743pub mod delegations_by_address_index_request {
1745 #[derive(
1746 Clone,
1747 Copy,
1748 Debug,
1749 PartialEq,
1750 Eq,
1751 Hash,
1752 PartialOrd,
1753 Ord,
1754 ::prost::Enumeration
1755 )]
1756 #[repr(i32)]
1757 pub enum Filter {
1758 Unspecified = 0,
1762 AllActiveWithNonzeroBalances = 1,
1765 All = 2,
1769 }
1770 impl Filter {
1771 pub fn as_str_name(&self) -> &'static str {
1776 match self {
1777 Self::Unspecified => "FILTER_UNSPECIFIED",
1778 Self::AllActiveWithNonzeroBalances => {
1779 "FILTER_ALL_ACTIVE_WITH_NONZERO_BALANCES"
1780 }
1781 Self::All => "FILTER_ALL",
1782 }
1783 }
1784 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1786 match value {
1787 "FILTER_UNSPECIFIED" => Some(Self::Unspecified),
1788 "FILTER_ALL_ACTIVE_WITH_NONZERO_BALANCES" => {
1789 Some(Self::AllActiveWithNonzeroBalances)
1790 }
1791 "FILTER_ALL" => Some(Self::All),
1792 _ => None,
1793 }
1794 }
1795 }
1796}
1797impl ::prost::Name for DelegationsByAddressIndexRequest {
1798 const NAME: &'static str = "DelegationsByAddressIndexRequest";
1799 const PACKAGE: &'static str = "penumbra.view.v1";
1800 fn full_name() -> ::prost::alloc::string::String {
1801 "penumbra.view.v1.DelegationsByAddressIndexRequest".into()
1802 }
1803 fn type_url() -> ::prost::alloc::string::String {
1804 "/penumbra.view.v1.DelegationsByAddressIndexRequest".into()
1805 }
1806}
1807#[derive(Clone, PartialEq, ::prost::Message)]
1811pub struct DelegationsByAddressIndexResponse {
1812 #[prost(message, optional, tag = "1")]
1813 pub value_view: ::core::option::Option<super::super::core::asset::v1::ValueView>,
1814}
1815impl ::prost::Name for DelegationsByAddressIndexResponse {
1816 const NAME: &'static str = "DelegationsByAddressIndexResponse";
1817 const PACKAGE: &'static str = "penumbra.view.v1";
1818 fn full_name() -> ::prost::alloc::string::String {
1819 "penumbra.view.v1.DelegationsByAddressIndexResponse".into()
1820 }
1821 fn type_url() -> ::prost::alloc::string::String {
1822 "/penumbra.view.v1.DelegationsByAddressIndexResponse".into()
1823 }
1824}
1825#[derive(Clone, PartialEq, ::prost::Message)]
1828pub struct UnbondingTokensByAddressIndexRequest {
1829 #[prost(
1830 enumeration = "unbonding_tokens_by_address_index_request::Filter",
1831 tag = "1"
1832 )]
1833 pub filter: i32,
1834 #[prost(message, optional, tag = "2")]
1836 pub address_index: ::core::option::Option<
1837 super::super::core::keys::v1::AddressIndex,
1838 >,
1839}
1840pub mod unbonding_tokens_by_address_index_request {
1842 #[derive(
1843 Clone,
1844 Copy,
1845 Debug,
1846 PartialEq,
1847 Eq,
1848 Hash,
1849 PartialOrd,
1850 Ord,
1851 ::prost::Enumeration
1852 )]
1853 #[repr(i32)]
1854 pub enum Filter {
1855 Unspecified = 0,
1858 Claimable = 1,
1863 NotYetClaimable = 2,
1866 }
1867 impl Filter {
1868 pub fn as_str_name(&self) -> &'static str {
1873 match self {
1874 Self::Unspecified => "FILTER_UNSPECIFIED",
1875 Self::Claimable => "FILTER_CLAIMABLE",
1876 Self::NotYetClaimable => "FILTER_NOT_YET_CLAIMABLE",
1877 }
1878 }
1879 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1881 match value {
1882 "FILTER_UNSPECIFIED" => Some(Self::Unspecified),
1883 "FILTER_CLAIMABLE" => Some(Self::Claimable),
1884 "FILTER_NOT_YET_CLAIMABLE" => Some(Self::NotYetClaimable),
1885 _ => None,
1886 }
1887 }
1888 }
1889}
1890impl ::prost::Name for UnbondingTokensByAddressIndexRequest {
1891 const NAME: &'static str = "UnbondingTokensByAddressIndexRequest";
1892 const PACKAGE: &'static str = "penumbra.view.v1";
1893 fn full_name() -> ::prost::alloc::string::String {
1894 "penumbra.view.v1.UnbondingTokensByAddressIndexRequest".into()
1895 }
1896 fn type_url() -> ::prost::alloc::string::String {
1897 "/penumbra.view.v1.UnbondingTokensByAddressIndexRequest".into()
1898 }
1899}
1900#[derive(Clone, PartialEq, ::prost::Message)]
1903pub struct UnbondingTokensByAddressIndexResponse {
1904 #[prost(message, optional, tag = "1")]
1906 pub value_view: ::core::option::Option<super::super::core::asset::v1::ValueView>,
1907 #[prost(bool, tag = "2")]
1911 pub claimable: bool,
1912}
1913impl ::prost::Name for UnbondingTokensByAddressIndexResponse {
1914 const NAME: &'static str = "UnbondingTokensByAddressIndexResponse";
1915 const PACKAGE: &'static str = "penumbra.view.v1";
1916 fn full_name() -> ::prost::alloc::string::String {
1917 "penumbra.view.v1.UnbondingTokensByAddressIndexResponse".into()
1918 }
1919 fn type_url() -> ::prost::alloc::string::String {
1920 "/penumbra.view.v1.UnbondingTokensByAddressIndexResponse".into()
1921 }
1922}
1923#[derive(Clone, PartialEq, ::prost::Message)]
1925pub struct LatestSwapsRequest {
1926 #[prost(message, optional, tag = "1")]
1928 pub account_filter: ::core::option::Option<
1929 super::super::core::keys::v1::AddressIndex,
1930 >,
1931 #[prost(message, optional, tag = "2")]
1933 pub pair: ::core::option::Option<
1934 super::super::core::component::dex::v1::DirectedTradingPair,
1935 >,
1936 #[prost(uint64, tag = "3")]
1938 pub after_height: u64,
1939 #[prost(uint64, tag = "4")]
1941 pub response_limit: u64,
1942}
1943impl ::prost::Name for LatestSwapsRequest {
1944 const NAME: &'static str = "LatestSwapsRequest";
1945 const PACKAGE: &'static str = "penumbra.view.v1";
1946 fn full_name() -> ::prost::alloc::string::String {
1947 "penumbra.view.v1.LatestSwapsRequest".into()
1948 }
1949 fn type_url() -> ::prost::alloc::string::String {
1950 "/penumbra.view.v1.LatestSwapsRequest".into()
1951 }
1952}
1953#[derive(Clone, PartialEq, ::prost::Message)]
1954pub struct LatestSwapsResponse {
1955 #[prost(message, optional, tag = "1")]
1957 pub pair: ::core::option::Option<
1958 super::super::core::component::dex::v1::DirectedTradingPair,
1959 >,
1960 #[prost(message, optional, tag = "2")]
1962 pub input: ::core::option::Option<super::super::core::asset::v1::Value>,
1963 #[prost(message, optional, tag = "3")]
1965 pub output: ::core::option::Option<super::super::core::asset::v1::Value>,
1966 #[prost(uint64, tag = "4")]
1968 pub block_height: u64,
1969 #[prost(message, optional, tag = "5")]
1971 pub id: ::core::option::Option<super::super::core::txhash::v1::TransactionId>,
1972}
1973impl ::prost::Name for LatestSwapsResponse {
1974 const NAME: &'static str = "LatestSwapsResponse";
1975 const PACKAGE: &'static str = "penumbra.view.v1";
1976 fn full_name() -> ::prost::alloc::string::String {
1977 "penumbra.view.v1.LatestSwapsResponse".into()
1978 }
1979 fn type_url() -> ::prost::alloc::string::String {
1980 "/penumbra.view.v1.LatestSwapsResponse".into()
1981 }
1982}
1983#[cfg(feature = "rpc")]
1985pub mod view_service_client {
1986 #![allow(
1987 unused_variables,
1988 dead_code,
1989 missing_docs,
1990 clippy::wildcard_imports,
1991 clippy::let_unit_value,
1992 )]
1993 use tonic::codegen::*;
1994 use tonic::codegen::http::Uri;
1995 #[derive(Debug, Clone)]
2000 pub struct ViewServiceClient<T> {
2001 inner: tonic::client::Grpc<T>,
2002 }
2003 impl ViewServiceClient<tonic::transport::Channel> {
2004 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2006 where
2007 D: TryInto<tonic::transport::Endpoint>,
2008 D::Error: Into<StdError>,
2009 {
2010 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2011 Ok(Self::new(conn))
2012 }
2013 }
2014 impl<T> ViewServiceClient<T>
2015 where
2016 T: tonic::client::GrpcService<tonic::body::BoxBody>,
2017 T::Error: Into<StdError>,
2018 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2019 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2020 {
2021 pub fn new(inner: T) -> Self {
2022 let inner = tonic::client::Grpc::new(inner);
2023 Self { inner }
2024 }
2025 pub fn with_origin(inner: T, origin: Uri) -> Self {
2026 let inner = tonic::client::Grpc::with_origin(inner, origin);
2027 Self { inner }
2028 }
2029 pub fn with_interceptor<F>(
2030 inner: T,
2031 interceptor: F,
2032 ) -> ViewServiceClient<InterceptedService<T, F>>
2033 where
2034 F: tonic::service::Interceptor,
2035 T::ResponseBody: Default,
2036 T: tonic::codegen::Service<
2037 http::Request<tonic::body::BoxBody>,
2038 Response = http::Response<
2039 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
2040 >,
2041 >,
2042 <T as tonic::codegen::Service<
2043 http::Request<tonic::body::BoxBody>,
2044 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2045 {
2046 ViewServiceClient::new(InterceptedService::new(inner, interceptor))
2047 }
2048 #[must_use]
2053 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2054 self.inner = self.inner.send_compressed(encoding);
2055 self
2056 }
2057 #[must_use]
2059 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2060 self.inner = self.inner.accept_compressed(encoding);
2061 self
2062 }
2063 #[must_use]
2067 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2068 self.inner = self.inner.max_decoding_message_size(limit);
2069 self
2070 }
2071 #[must_use]
2075 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2076 self.inner = self.inner.max_encoding_message_size(limit);
2077 self
2078 }
2079 pub async fn status(
2081 &mut self,
2082 request: impl tonic::IntoRequest<super::StatusRequest>,
2083 ) -> std::result::Result<tonic::Response<super::StatusResponse>, tonic::Status> {
2084 self.inner
2085 .ready()
2086 .await
2087 .map_err(|e| {
2088 tonic::Status::unknown(
2089 format!("Service was not ready: {}", e.into()),
2090 )
2091 })?;
2092 let codec = tonic::codec::ProstCodec::default();
2093 let path = http::uri::PathAndQuery::from_static(
2094 "/penumbra.view.v1.ViewService/Status",
2095 );
2096 let mut req = request.into_request();
2097 req.extensions_mut()
2098 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "Status"));
2099 self.inner.unary(req, path, codec).await
2100 }
2101 pub async fn status_stream(
2104 &mut self,
2105 request: impl tonic::IntoRequest<super::StatusStreamRequest>,
2106 ) -> std::result::Result<
2107 tonic::Response<tonic::codec::Streaming<super::StatusStreamResponse>>,
2108 tonic::Status,
2109 > {
2110 self.inner
2111 .ready()
2112 .await
2113 .map_err(|e| {
2114 tonic::Status::unknown(
2115 format!("Service was not ready: {}", e.into()),
2116 )
2117 })?;
2118 let codec = tonic::codec::ProstCodec::default();
2119 let path = http::uri::PathAndQuery::from_static(
2120 "/penumbra.view.v1.ViewService/StatusStream",
2121 );
2122 let mut req = request.into_request();
2123 req.extensions_mut()
2124 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "StatusStream"));
2125 self.inner.server_streaming(req, path, codec).await
2126 }
2127 pub async fn notes(
2130 &mut self,
2131 request: impl tonic::IntoRequest<super::NotesRequest>,
2132 ) -> std::result::Result<
2133 tonic::Response<tonic::codec::Streaming<super::NotesResponse>>,
2134 tonic::Status,
2135 > {
2136 self.inner
2137 .ready()
2138 .await
2139 .map_err(|e| {
2140 tonic::Status::unknown(
2141 format!("Service was not ready: {}", e.into()),
2142 )
2143 })?;
2144 let codec = tonic::codec::ProstCodec::default();
2145 let path = http::uri::PathAndQuery::from_static(
2146 "/penumbra.view.v1.ViewService/Notes",
2147 );
2148 let mut req = request.into_request();
2149 req.extensions_mut()
2150 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "Notes"));
2151 self.inner.server_streaming(req, path, codec).await
2152 }
2153 pub async fn notes_for_voting(
2155 &mut self,
2156 request: impl tonic::IntoRequest<super::NotesForVotingRequest>,
2157 ) -> std::result::Result<
2158 tonic::Response<tonic::codec::Streaming<super::NotesForVotingResponse>>,
2159 tonic::Status,
2160 > {
2161 self.inner
2162 .ready()
2163 .await
2164 .map_err(|e| {
2165 tonic::Status::unknown(
2166 format!("Service was not ready: {}", e.into()),
2167 )
2168 })?;
2169 let codec = tonic::codec::ProstCodec::default();
2170 let path = http::uri::PathAndQuery::from_static(
2171 "/penumbra.view.v1.ViewService/NotesForVoting",
2172 );
2173 let mut req = request.into_request();
2174 req.extensions_mut()
2175 .insert(
2176 GrpcMethod::new("penumbra.view.v1.ViewService", "NotesForVoting"),
2177 );
2178 self.inner.server_streaming(req, path, codec).await
2179 }
2180 pub async fn assets(
2183 &mut self,
2184 request: impl tonic::IntoRequest<super::AssetsRequest>,
2185 ) -> std::result::Result<
2186 tonic::Response<tonic::codec::Streaming<super::AssetsResponse>>,
2187 tonic::Status,
2188 > {
2189 self.inner
2190 .ready()
2191 .await
2192 .map_err(|e| {
2193 tonic::Status::unknown(
2194 format!("Service was not ready: {}", e.into()),
2195 )
2196 })?;
2197 let codec = tonic::codec::ProstCodec::default();
2198 let path = http::uri::PathAndQuery::from_static(
2199 "/penumbra.view.v1.ViewService/Assets",
2200 );
2201 let mut req = request.into_request();
2202 req.extensions_mut()
2203 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "Assets"));
2204 self.inner.server_streaming(req, path, codec).await
2205 }
2206 pub async fn asset_metadata_by_id(
2212 &mut self,
2213 request: impl tonic::IntoRequest<super::AssetMetadataByIdRequest>,
2214 ) -> std::result::Result<
2215 tonic::Response<super::AssetMetadataByIdResponse>,
2216 tonic::Status,
2217 > {
2218 self.inner
2219 .ready()
2220 .await
2221 .map_err(|e| {
2222 tonic::Status::unknown(
2223 format!("Service was not ready: {}", e.into()),
2224 )
2225 })?;
2226 let codec = tonic::codec::ProstCodec::default();
2227 let path = http::uri::PathAndQuery::from_static(
2228 "/penumbra.view.v1.ViewService/AssetMetadataById",
2229 );
2230 let mut req = request.into_request();
2231 req.extensions_mut()
2232 .insert(
2233 GrpcMethod::new("penumbra.view.v1.ViewService", "AssetMetadataById"),
2234 );
2235 self.inner.unary(req, path, codec).await
2236 }
2237 pub async fn app_parameters(
2239 &mut self,
2240 request: impl tonic::IntoRequest<super::AppParametersRequest>,
2241 ) -> std::result::Result<
2242 tonic::Response<super::AppParametersResponse>,
2243 tonic::Status,
2244 > {
2245 self.inner
2246 .ready()
2247 .await
2248 .map_err(|e| {
2249 tonic::Status::unknown(
2250 format!("Service was not ready: {}", e.into()),
2251 )
2252 })?;
2253 let codec = tonic::codec::ProstCodec::default();
2254 let path = http::uri::PathAndQuery::from_static(
2255 "/penumbra.view.v1.ViewService/AppParameters",
2256 );
2257 let mut req = request.into_request();
2258 req.extensions_mut()
2259 .insert(
2260 GrpcMethod::new("penumbra.view.v1.ViewService", "AppParameters"),
2261 );
2262 self.inner.unary(req, path, codec).await
2263 }
2264 pub async fn gas_prices(
2266 &mut self,
2267 request: impl tonic::IntoRequest<super::GasPricesRequest>,
2268 ) -> std::result::Result<
2269 tonic::Response<super::GasPricesResponse>,
2270 tonic::Status,
2271 > {
2272 self.inner
2273 .ready()
2274 .await
2275 .map_err(|e| {
2276 tonic::Status::unknown(
2277 format!("Service was not ready: {}", e.into()),
2278 )
2279 })?;
2280 let codec = tonic::codec::ProstCodec::default();
2281 let path = http::uri::PathAndQuery::from_static(
2282 "/penumbra.view.v1.ViewService/GasPrices",
2283 );
2284 let mut req = request.into_request();
2285 req.extensions_mut()
2286 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "GasPrices"));
2287 self.inner.unary(req, path, codec).await
2288 }
2289 pub async fn fmd_parameters(
2291 &mut self,
2292 request: impl tonic::IntoRequest<super::FmdParametersRequest>,
2293 ) -> std::result::Result<
2294 tonic::Response<super::FmdParametersResponse>,
2295 tonic::Status,
2296 > {
2297 self.inner
2298 .ready()
2299 .await
2300 .map_err(|e| {
2301 tonic::Status::unknown(
2302 format!("Service was not ready: {}", e.into()),
2303 )
2304 })?;
2305 let codec = tonic::codec::ProstCodec::default();
2306 let path = http::uri::PathAndQuery::from_static(
2307 "/penumbra.view.v1.ViewService/FMDParameters",
2308 );
2309 let mut req = request.into_request();
2310 req.extensions_mut()
2311 .insert(
2312 GrpcMethod::new("penumbra.view.v1.ViewService", "FMDParameters"),
2313 );
2314 self.inner.unary(req, path, codec).await
2315 }
2316 pub async fn address_by_index(
2318 &mut self,
2319 request: impl tonic::IntoRequest<super::AddressByIndexRequest>,
2320 ) -> std::result::Result<
2321 tonic::Response<super::AddressByIndexResponse>,
2322 tonic::Status,
2323 > {
2324 self.inner
2325 .ready()
2326 .await
2327 .map_err(|e| {
2328 tonic::Status::unknown(
2329 format!("Service was not ready: {}", e.into()),
2330 )
2331 })?;
2332 let codec = tonic::codec::ProstCodec::default();
2333 let path = http::uri::PathAndQuery::from_static(
2334 "/penumbra.view.v1.ViewService/AddressByIndex",
2335 );
2336 let mut req = request.into_request();
2337 req.extensions_mut()
2338 .insert(
2339 GrpcMethod::new("penumbra.view.v1.ViewService", "AddressByIndex"),
2340 );
2341 self.inner.unary(req, path, codec).await
2342 }
2343 pub async fn transparent_address(
2345 &mut self,
2346 request: impl tonic::IntoRequest<super::TransparentAddressRequest>,
2347 ) -> std::result::Result<
2348 tonic::Response<super::TransparentAddressResponse>,
2349 tonic::Status,
2350 > {
2351 self.inner
2352 .ready()
2353 .await
2354 .map_err(|e| {
2355 tonic::Status::unknown(
2356 format!("Service was not ready: {}", e.into()),
2357 )
2358 })?;
2359 let codec = tonic::codec::ProstCodec::default();
2360 let path = http::uri::PathAndQuery::from_static(
2361 "/penumbra.view.v1.ViewService/TransparentAddress",
2362 );
2363 let mut req = request.into_request();
2364 req.extensions_mut()
2365 .insert(
2366 GrpcMethod::new("penumbra.view.v1.ViewService", "TransparentAddress"),
2367 );
2368 self.inner.unary(req, path, codec).await
2369 }
2370 pub async fn wallet_id(
2372 &mut self,
2373 request: impl tonic::IntoRequest<super::WalletIdRequest>,
2374 ) -> std::result::Result<
2375 tonic::Response<super::WalletIdResponse>,
2376 tonic::Status,
2377 > {
2378 self.inner
2379 .ready()
2380 .await
2381 .map_err(|e| {
2382 tonic::Status::unknown(
2383 format!("Service was not ready: {}", e.into()),
2384 )
2385 })?;
2386 let codec = tonic::codec::ProstCodec::default();
2387 let path = http::uri::PathAndQuery::from_static(
2388 "/penumbra.view.v1.ViewService/WalletId",
2389 );
2390 let mut req = request.into_request();
2391 req.extensions_mut()
2392 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "WalletId"));
2393 self.inner.unary(req, path, codec).await
2394 }
2395 pub async fn index_by_address(
2397 &mut self,
2398 request: impl tonic::IntoRequest<super::IndexByAddressRequest>,
2399 ) -> std::result::Result<
2400 tonic::Response<super::IndexByAddressResponse>,
2401 tonic::Status,
2402 > {
2403 self.inner
2404 .ready()
2405 .await
2406 .map_err(|e| {
2407 tonic::Status::unknown(
2408 format!("Service was not ready: {}", e.into()),
2409 )
2410 })?;
2411 let codec = tonic::codec::ProstCodec::default();
2412 let path = http::uri::PathAndQuery::from_static(
2413 "/penumbra.view.v1.ViewService/IndexByAddress",
2414 );
2415 let mut req = request.into_request();
2416 req.extensions_mut()
2417 .insert(
2418 GrpcMethod::new("penumbra.view.v1.ViewService", "IndexByAddress"),
2419 );
2420 self.inner.unary(req, path, codec).await
2421 }
2422 pub async fn ephemeral_address(
2424 &mut self,
2425 request: impl tonic::IntoRequest<super::EphemeralAddressRequest>,
2426 ) -> std::result::Result<
2427 tonic::Response<super::EphemeralAddressResponse>,
2428 tonic::Status,
2429 > {
2430 self.inner
2431 .ready()
2432 .await
2433 .map_err(|e| {
2434 tonic::Status::unknown(
2435 format!("Service was not ready: {}", e.into()),
2436 )
2437 })?;
2438 let codec = tonic::codec::ProstCodec::default();
2439 let path = http::uri::PathAndQuery::from_static(
2440 "/penumbra.view.v1.ViewService/EphemeralAddress",
2441 );
2442 let mut req = request.into_request();
2443 req.extensions_mut()
2444 .insert(
2445 GrpcMethod::new("penumbra.view.v1.ViewService", "EphemeralAddress"),
2446 );
2447 self.inner.unary(req, path, codec).await
2448 }
2449 pub async fn balances(
2452 &mut self,
2453 request: impl tonic::IntoRequest<super::BalancesRequest>,
2454 ) -> std::result::Result<
2455 tonic::Response<tonic::codec::Streaming<super::BalancesResponse>>,
2456 tonic::Status,
2457 > {
2458 self.inner
2459 .ready()
2460 .await
2461 .map_err(|e| {
2462 tonic::Status::unknown(
2463 format!("Service was not ready: {}", e.into()),
2464 )
2465 })?;
2466 let codec = tonic::codec::ProstCodec::default();
2467 let path = http::uri::PathAndQuery::from_static(
2468 "/penumbra.view.v1.ViewService/Balances",
2469 );
2470 let mut req = request.into_request();
2471 req.extensions_mut()
2472 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "Balances"));
2473 self.inner.server_streaming(req, path, codec).await
2474 }
2475 pub async fn note_by_commitment(
2477 &mut self,
2478 request: impl tonic::IntoRequest<super::NoteByCommitmentRequest>,
2479 ) -> std::result::Result<
2480 tonic::Response<super::NoteByCommitmentResponse>,
2481 tonic::Status,
2482 > {
2483 self.inner
2484 .ready()
2485 .await
2486 .map_err(|e| {
2487 tonic::Status::unknown(
2488 format!("Service was not ready: {}", e.into()),
2489 )
2490 })?;
2491 let codec = tonic::codec::ProstCodec::default();
2492 let path = http::uri::PathAndQuery::from_static(
2493 "/penumbra.view.v1.ViewService/NoteByCommitment",
2494 );
2495 let mut req = request.into_request();
2496 req.extensions_mut()
2497 .insert(
2498 GrpcMethod::new("penumbra.view.v1.ViewService", "NoteByCommitment"),
2499 );
2500 self.inner.unary(req, path, codec).await
2501 }
2502 pub async fn swap_by_commitment(
2504 &mut self,
2505 request: impl tonic::IntoRequest<super::SwapByCommitmentRequest>,
2506 ) -> std::result::Result<
2507 tonic::Response<super::SwapByCommitmentResponse>,
2508 tonic::Status,
2509 > {
2510 self.inner
2511 .ready()
2512 .await
2513 .map_err(|e| {
2514 tonic::Status::unknown(
2515 format!("Service was not ready: {}", e.into()),
2516 )
2517 })?;
2518 let codec = tonic::codec::ProstCodec::default();
2519 let path = http::uri::PathAndQuery::from_static(
2520 "/penumbra.view.v1.ViewService/SwapByCommitment",
2521 );
2522 let mut req = request.into_request();
2523 req.extensions_mut()
2524 .insert(
2525 GrpcMethod::new("penumbra.view.v1.ViewService", "SwapByCommitment"),
2526 );
2527 self.inner.unary(req, path, codec).await
2528 }
2529 pub async fn unclaimed_swaps(
2531 &mut self,
2532 request: impl tonic::IntoRequest<super::UnclaimedSwapsRequest>,
2533 ) -> std::result::Result<
2534 tonic::Response<tonic::codec::Streaming<super::UnclaimedSwapsResponse>>,
2535 tonic::Status,
2536 > {
2537 self.inner
2538 .ready()
2539 .await
2540 .map_err(|e| {
2541 tonic::Status::unknown(
2542 format!("Service was not ready: {}", e.into()),
2543 )
2544 })?;
2545 let codec = tonic::codec::ProstCodec::default();
2546 let path = http::uri::PathAndQuery::from_static(
2547 "/penumbra.view.v1.ViewService/UnclaimedSwaps",
2548 );
2549 let mut req = request.into_request();
2550 req.extensions_mut()
2551 .insert(
2552 GrpcMethod::new("penumbra.view.v1.ViewService", "UnclaimedSwaps"),
2553 );
2554 self.inner.server_streaming(req, path, codec).await
2555 }
2556 pub async fn nullifier_status(
2558 &mut self,
2559 request: impl tonic::IntoRequest<super::NullifierStatusRequest>,
2560 ) -> std::result::Result<
2561 tonic::Response<super::NullifierStatusResponse>,
2562 tonic::Status,
2563 > {
2564 self.inner
2565 .ready()
2566 .await
2567 .map_err(|e| {
2568 tonic::Status::unknown(
2569 format!("Service was not ready: {}", e.into()),
2570 )
2571 })?;
2572 let codec = tonic::codec::ProstCodec::default();
2573 let path = http::uri::PathAndQuery::from_static(
2574 "/penumbra.view.v1.ViewService/NullifierStatus",
2575 );
2576 let mut req = request.into_request();
2577 req.extensions_mut()
2578 .insert(
2579 GrpcMethod::new("penumbra.view.v1.ViewService", "NullifierStatus"),
2580 );
2581 self.inner.unary(req, path, codec).await
2582 }
2583 pub async fn transaction_info_by_hash(
2585 &mut self,
2586 request: impl tonic::IntoRequest<super::TransactionInfoByHashRequest>,
2587 ) -> std::result::Result<
2588 tonic::Response<super::TransactionInfoByHashResponse>,
2589 tonic::Status,
2590 > {
2591 self.inner
2592 .ready()
2593 .await
2594 .map_err(|e| {
2595 tonic::Status::unknown(
2596 format!("Service was not ready: {}", e.into()),
2597 )
2598 })?;
2599 let codec = tonic::codec::ProstCodec::default();
2600 let path = http::uri::PathAndQuery::from_static(
2601 "/penumbra.view.v1.ViewService/TransactionInfoByHash",
2602 );
2603 let mut req = request.into_request();
2604 req.extensions_mut()
2605 .insert(
2606 GrpcMethod::new(
2607 "penumbra.view.v1.ViewService",
2608 "TransactionInfoByHash",
2609 ),
2610 );
2611 self.inner.unary(req, path, codec).await
2612 }
2613 pub async fn transaction_info(
2616 &mut self,
2617 request: impl tonic::IntoRequest<super::TransactionInfoRequest>,
2618 ) -> std::result::Result<
2619 tonic::Response<tonic::codec::Streaming<super::TransactionInfoResponse>>,
2620 tonic::Status,
2621 > {
2622 self.inner
2623 .ready()
2624 .await
2625 .map_err(|e| {
2626 tonic::Status::unknown(
2627 format!("Service was not ready: {}", e.into()),
2628 )
2629 })?;
2630 let codec = tonic::codec::ProstCodec::default();
2631 let path = http::uri::PathAndQuery::from_static(
2632 "/penumbra.view.v1.ViewService/TransactionInfo",
2633 );
2634 let mut req = request.into_request();
2635 req.extensions_mut()
2636 .insert(
2637 GrpcMethod::new("penumbra.view.v1.ViewService", "TransactionInfo"),
2638 );
2639 self.inner.server_streaming(req, path, codec).await
2640 }
2641 pub async fn owned_position_ids(
2643 &mut self,
2644 request: impl tonic::IntoRequest<super::OwnedPositionIdsRequest>,
2645 ) -> std::result::Result<
2646 tonic::Response<tonic::codec::Streaming<super::OwnedPositionIdsResponse>>,
2647 tonic::Status,
2648 > {
2649 self.inner
2650 .ready()
2651 .await
2652 .map_err(|e| {
2653 tonic::Status::unknown(
2654 format!("Service was not ready: {}", e.into()),
2655 )
2656 })?;
2657 let codec = tonic::codec::ProstCodec::default();
2658 let path = http::uri::PathAndQuery::from_static(
2659 "/penumbra.view.v1.ViewService/OwnedPositionIds",
2660 );
2661 let mut req = request.into_request();
2662 req.extensions_mut()
2663 .insert(
2664 GrpcMethod::new("penumbra.view.v1.ViewService", "OwnedPositionIds"),
2665 );
2666 self.inner.server_streaming(req, path, codec).await
2667 }
2668 pub async fn transaction_planner(
2670 &mut self,
2671 request: impl tonic::IntoRequest<super::TransactionPlannerRequest>,
2672 ) -> std::result::Result<
2673 tonic::Response<super::TransactionPlannerResponse>,
2674 tonic::Status,
2675 > {
2676 self.inner
2677 .ready()
2678 .await
2679 .map_err(|e| {
2680 tonic::Status::unknown(
2681 format!("Service was not ready: {}", e.into()),
2682 )
2683 })?;
2684 let codec = tonic::codec::ProstCodec::default();
2685 let path = http::uri::PathAndQuery::from_static(
2686 "/penumbra.view.v1.ViewService/TransactionPlanner",
2687 );
2688 let mut req = request.into_request();
2689 req.extensions_mut()
2690 .insert(
2691 GrpcMethod::new("penumbra.view.v1.ViewService", "TransactionPlanner"),
2692 );
2693 self.inner.unary(req, path, codec).await
2694 }
2695 pub async fn witness(
2702 &mut self,
2703 request: impl tonic::IntoRequest<super::WitnessRequest>,
2704 ) -> std::result::Result<
2705 tonic::Response<super::WitnessResponse>,
2706 tonic::Status,
2707 > {
2708 self.inner
2709 .ready()
2710 .await
2711 .map_err(|e| {
2712 tonic::Status::unknown(
2713 format!("Service was not ready: {}", e.into()),
2714 )
2715 })?;
2716 let codec = tonic::codec::ProstCodec::default();
2717 let path = http::uri::PathAndQuery::from_static(
2718 "/penumbra.view.v1.ViewService/Witness",
2719 );
2720 let mut req = request.into_request();
2721 req.extensions_mut()
2722 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "Witness"));
2723 self.inner.unary(req, path, codec).await
2724 }
2725 pub async fn witness_and_build(
2733 &mut self,
2734 request: impl tonic::IntoRequest<super::WitnessAndBuildRequest>,
2735 ) -> std::result::Result<
2736 tonic::Response<tonic::codec::Streaming<super::WitnessAndBuildResponse>>,
2737 tonic::Status,
2738 > {
2739 self.inner
2740 .ready()
2741 .await
2742 .map_err(|e| {
2743 tonic::Status::unknown(
2744 format!("Service was not ready: {}", e.into()),
2745 )
2746 })?;
2747 let codec = tonic::codec::ProstCodec::default();
2748 let path = http::uri::PathAndQuery::from_static(
2749 "/penumbra.view.v1.ViewService/WitnessAndBuild",
2750 );
2751 let mut req = request.into_request();
2752 req.extensions_mut()
2753 .insert(
2754 GrpcMethod::new("penumbra.view.v1.ViewService", "WitnessAndBuild"),
2755 );
2756 self.inner.server_streaming(req, path, codec).await
2757 }
2758 pub async fn authorize_and_build(
2770 &mut self,
2771 request: impl tonic::IntoRequest<super::AuthorizeAndBuildRequest>,
2772 ) -> std::result::Result<
2773 tonic::Response<tonic::codec::Streaming<super::AuthorizeAndBuildResponse>>,
2774 tonic::Status,
2775 > {
2776 self.inner
2777 .ready()
2778 .await
2779 .map_err(|e| {
2780 tonic::Status::unknown(
2781 format!("Service was not ready: {}", e.into()),
2782 )
2783 })?;
2784 let codec = tonic::codec::ProstCodec::default();
2785 let path = http::uri::PathAndQuery::from_static(
2786 "/penumbra.view.v1.ViewService/AuthorizeAndBuild",
2787 );
2788 let mut req = request.into_request();
2789 req.extensions_mut()
2790 .insert(
2791 GrpcMethod::new("penumbra.view.v1.ViewService", "AuthorizeAndBuild"),
2792 );
2793 self.inner.server_streaming(req, path, codec).await
2794 }
2795 pub async fn broadcast_transaction(
2799 &mut self,
2800 request: impl tonic::IntoRequest<super::BroadcastTransactionRequest>,
2801 ) -> std::result::Result<
2802 tonic::Response<
2803 tonic::codec::Streaming<super::BroadcastTransactionResponse>,
2804 >,
2805 tonic::Status,
2806 > {
2807 self.inner
2808 .ready()
2809 .await
2810 .map_err(|e| {
2811 tonic::Status::unknown(
2812 format!("Service was not ready: {}", e.into()),
2813 )
2814 })?;
2815 let codec = tonic::codec::ProstCodec::default();
2816 let path = http::uri::PathAndQuery::from_static(
2817 "/penumbra.view.v1.ViewService/BroadcastTransaction",
2818 );
2819 let mut req = request.into_request();
2820 req.extensions_mut()
2821 .insert(
2822 GrpcMethod::new(
2823 "penumbra.view.v1.ViewService",
2824 "BroadcastTransaction",
2825 ),
2826 );
2827 self.inner.server_streaming(req, path, codec).await
2828 }
2829 pub async fn delegations_by_address_index(
2834 &mut self,
2835 request: impl tonic::IntoRequest<super::DelegationsByAddressIndexRequest>,
2836 ) -> std::result::Result<
2837 tonic::Response<
2838 tonic::codec::Streaming<super::DelegationsByAddressIndexResponse>,
2839 >,
2840 tonic::Status,
2841 > {
2842 self.inner
2843 .ready()
2844 .await
2845 .map_err(|e| {
2846 tonic::Status::unknown(
2847 format!("Service was not ready: {}", e.into()),
2848 )
2849 })?;
2850 let codec = tonic::codec::ProstCodec::default();
2851 let path = http::uri::PathAndQuery::from_static(
2852 "/penumbra.view.v1.ViewService/DelegationsByAddressIndex",
2853 );
2854 let mut req = request.into_request();
2855 req.extensions_mut()
2856 .insert(
2857 GrpcMethod::new(
2858 "penumbra.view.v1.ViewService",
2859 "DelegationsByAddressIndex",
2860 ),
2861 );
2862 self.inner.server_streaming(req, path, codec).await
2863 }
2864 pub async fn unbonding_tokens_by_address_index(
2867 &mut self,
2868 request: impl tonic::IntoRequest<super::UnbondingTokensByAddressIndexRequest>,
2869 ) -> std::result::Result<
2870 tonic::Response<
2871 tonic::codec::Streaming<super::UnbondingTokensByAddressIndexResponse>,
2872 >,
2873 tonic::Status,
2874 > {
2875 self.inner
2876 .ready()
2877 .await
2878 .map_err(|e| {
2879 tonic::Status::unknown(
2880 format!("Service was not ready: {}", e.into()),
2881 )
2882 })?;
2883 let codec = tonic::codec::ProstCodec::default();
2884 let path = http::uri::PathAndQuery::from_static(
2885 "/penumbra.view.v1.ViewService/UnbondingTokensByAddressIndex",
2886 );
2887 let mut req = request.into_request();
2888 req.extensions_mut()
2889 .insert(
2890 GrpcMethod::new(
2891 "penumbra.view.v1.ViewService",
2892 "UnbondingTokensByAddressIndex",
2893 ),
2894 );
2895 self.inner.server_streaming(req, path, codec).await
2896 }
2897 pub async fn auctions(
2899 &mut self,
2900 request: impl tonic::IntoRequest<super::AuctionsRequest>,
2901 ) -> std::result::Result<
2902 tonic::Response<tonic::codec::Streaming<super::AuctionsResponse>>,
2903 tonic::Status,
2904 > {
2905 self.inner
2906 .ready()
2907 .await
2908 .map_err(|e| {
2909 tonic::Status::unknown(
2910 format!("Service was not ready: {}", e.into()),
2911 )
2912 })?;
2913 let codec = tonic::codec::ProstCodec::default();
2914 let path = http::uri::PathAndQuery::from_static(
2915 "/penumbra.view.v1.ViewService/Auctions",
2916 );
2917 let mut req = request.into_request();
2918 req.extensions_mut()
2919 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "Auctions"));
2920 self.inner.server_streaming(req, path, codec).await
2921 }
2922 pub async fn latest_swaps(
2924 &mut self,
2925 request: impl tonic::IntoRequest<super::LatestSwapsRequest>,
2926 ) -> std::result::Result<
2927 tonic::Response<tonic::codec::Streaming<super::LatestSwapsResponse>>,
2928 tonic::Status,
2929 > {
2930 self.inner
2931 .ready()
2932 .await
2933 .map_err(|e| {
2934 tonic::Status::unknown(
2935 format!("Service was not ready: {}", e.into()),
2936 )
2937 })?;
2938 let codec = tonic::codec::ProstCodec::default();
2939 let path = http::uri::PathAndQuery::from_static(
2940 "/penumbra.view.v1.ViewService/LatestSwaps",
2941 );
2942 let mut req = request.into_request();
2943 req.extensions_mut()
2944 .insert(GrpcMethod::new("penumbra.view.v1.ViewService", "LatestSwaps"));
2945 self.inner.server_streaming(req, path, codec).await
2946 }
2947 }
2948}
2949#[cfg(feature = "rpc")]
2951pub mod view_service_server {
2952 #![allow(
2953 unused_variables,
2954 dead_code,
2955 missing_docs,
2956 clippy::wildcard_imports,
2957 clippy::let_unit_value,
2958 )]
2959 use tonic::codegen::*;
2960 #[async_trait]
2962 pub trait ViewService: std::marker::Send + std::marker::Sync + 'static {
2963 async fn status(
2965 &self,
2966 request: tonic::Request<super::StatusRequest>,
2967 ) -> std::result::Result<tonic::Response<super::StatusResponse>, tonic::Status>;
2968 type StatusStreamStream: tonic::codegen::tokio_stream::Stream<
2970 Item = std::result::Result<super::StatusStreamResponse, tonic::Status>,
2971 >
2972 + std::marker::Send
2973 + 'static;
2974 async fn status_stream(
2977 &self,
2978 request: tonic::Request<super::StatusStreamRequest>,
2979 ) -> std::result::Result<
2980 tonic::Response<Self::StatusStreamStream>,
2981 tonic::Status,
2982 >;
2983 type NotesStream: tonic::codegen::tokio_stream::Stream<
2985 Item = std::result::Result<super::NotesResponse, tonic::Status>,
2986 >
2987 + std::marker::Send
2988 + 'static;
2989 async fn notes(
2992 &self,
2993 request: tonic::Request<super::NotesRequest>,
2994 ) -> std::result::Result<tonic::Response<Self::NotesStream>, tonic::Status>;
2995 type NotesForVotingStream: tonic::codegen::tokio_stream::Stream<
2997 Item = std::result::Result<super::NotesForVotingResponse, tonic::Status>,
2998 >
2999 + std::marker::Send
3000 + 'static;
3001 async fn notes_for_voting(
3003 &self,
3004 request: tonic::Request<super::NotesForVotingRequest>,
3005 ) -> std::result::Result<
3006 tonic::Response<Self::NotesForVotingStream>,
3007 tonic::Status,
3008 >;
3009 type AssetsStream: tonic::codegen::tokio_stream::Stream<
3011 Item = std::result::Result<super::AssetsResponse, tonic::Status>,
3012 >
3013 + std::marker::Send
3014 + 'static;
3015 async fn assets(
3018 &self,
3019 request: tonic::Request<super::AssetsRequest>,
3020 ) -> std::result::Result<tonic::Response<Self::AssetsStream>, tonic::Status>;
3021 async fn asset_metadata_by_id(
3027 &self,
3028 request: tonic::Request<super::AssetMetadataByIdRequest>,
3029 ) -> std::result::Result<
3030 tonic::Response<super::AssetMetadataByIdResponse>,
3031 tonic::Status,
3032 >;
3033 async fn app_parameters(
3035 &self,
3036 request: tonic::Request<super::AppParametersRequest>,
3037 ) -> std::result::Result<
3038 tonic::Response<super::AppParametersResponse>,
3039 tonic::Status,
3040 >;
3041 async fn gas_prices(
3043 &self,
3044 request: tonic::Request<super::GasPricesRequest>,
3045 ) -> std::result::Result<
3046 tonic::Response<super::GasPricesResponse>,
3047 tonic::Status,
3048 >;
3049 async fn fmd_parameters(
3051 &self,
3052 request: tonic::Request<super::FmdParametersRequest>,
3053 ) -> std::result::Result<
3054 tonic::Response<super::FmdParametersResponse>,
3055 tonic::Status,
3056 >;
3057 async fn address_by_index(
3059 &self,
3060 request: tonic::Request<super::AddressByIndexRequest>,
3061 ) -> std::result::Result<
3062 tonic::Response<super::AddressByIndexResponse>,
3063 tonic::Status,
3064 >;
3065 async fn transparent_address(
3067 &self,
3068 request: tonic::Request<super::TransparentAddressRequest>,
3069 ) -> std::result::Result<
3070 tonic::Response<super::TransparentAddressResponse>,
3071 tonic::Status,
3072 >;
3073 async fn wallet_id(
3075 &self,
3076 request: tonic::Request<super::WalletIdRequest>,
3077 ) -> std::result::Result<
3078 tonic::Response<super::WalletIdResponse>,
3079 tonic::Status,
3080 >;
3081 async fn index_by_address(
3083 &self,
3084 request: tonic::Request<super::IndexByAddressRequest>,
3085 ) -> std::result::Result<
3086 tonic::Response<super::IndexByAddressResponse>,
3087 tonic::Status,
3088 >;
3089 async fn ephemeral_address(
3091 &self,
3092 request: tonic::Request<super::EphemeralAddressRequest>,
3093 ) -> std::result::Result<
3094 tonic::Response<super::EphemeralAddressResponse>,
3095 tonic::Status,
3096 >;
3097 type BalancesStream: tonic::codegen::tokio_stream::Stream<
3099 Item = std::result::Result<super::BalancesResponse, tonic::Status>,
3100 >
3101 + std::marker::Send
3102 + 'static;
3103 async fn balances(
3106 &self,
3107 request: tonic::Request<super::BalancesRequest>,
3108 ) -> std::result::Result<tonic::Response<Self::BalancesStream>, tonic::Status>;
3109 async fn note_by_commitment(
3111 &self,
3112 request: tonic::Request<super::NoteByCommitmentRequest>,
3113 ) -> std::result::Result<
3114 tonic::Response<super::NoteByCommitmentResponse>,
3115 tonic::Status,
3116 >;
3117 async fn swap_by_commitment(
3119 &self,
3120 request: tonic::Request<super::SwapByCommitmentRequest>,
3121 ) -> std::result::Result<
3122 tonic::Response<super::SwapByCommitmentResponse>,
3123 tonic::Status,
3124 >;
3125 type UnclaimedSwapsStream: tonic::codegen::tokio_stream::Stream<
3127 Item = std::result::Result<super::UnclaimedSwapsResponse, tonic::Status>,
3128 >
3129 + std::marker::Send
3130 + 'static;
3131 async fn unclaimed_swaps(
3133 &self,
3134 request: tonic::Request<super::UnclaimedSwapsRequest>,
3135 ) -> std::result::Result<
3136 tonic::Response<Self::UnclaimedSwapsStream>,
3137 tonic::Status,
3138 >;
3139 async fn nullifier_status(
3141 &self,
3142 request: tonic::Request<super::NullifierStatusRequest>,
3143 ) -> std::result::Result<
3144 tonic::Response<super::NullifierStatusResponse>,
3145 tonic::Status,
3146 >;
3147 async fn transaction_info_by_hash(
3149 &self,
3150 request: tonic::Request<super::TransactionInfoByHashRequest>,
3151 ) -> std::result::Result<
3152 tonic::Response<super::TransactionInfoByHashResponse>,
3153 tonic::Status,
3154 >;
3155 type TransactionInfoStream: tonic::codegen::tokio_stream::Stream<
3157 Item = std::result::Result<super::TransactionInfoResponse, tonic::Status>,
3158 >
3159 + std::marker::Send
3160 + 'static;
3161 async fn transaction_info(
3164 &self,
3165 request: tonic::Request<super::TransactionInfoRequest>,
3166 ) -> std::result::Result<
3167 tonic::Response<Self::TransactionInfoStream>,
3168 tonic::Status,
3169 >;
3170 type OwnedPositionIdsStream: tonic::codegen::tokio_stream::Stream<
3172 Item = std::result::Result<
3173 super::OwnedPositionIdsResponse,
3174 tonic::Status,
3175 >,
3176 >
3177 + std::marker::Send
3178 + 'static;
3179 async fn owned_position_ids(
3181 &self,
3182 request: tonic::Request<super::OwnedPositionIdsRequest>,
3183 ) -> std::result::Result<
3184 tonic::Response<Self::OwnedPositionIdsStream>,
3185 tonic::Status,
3186 >;
3187 async fn transaction_planner(
3189 &self,
3190 request: tonic::Request<super::TransactionPlannerRequest>,
3191 ) -> std::result::Result<
3192 tonic::Response<super::TransactionPlannerResponse>,
3193 tonic::Status,
3194 >;
3195 async fn witness(
3202 &self,
3203 request: tonic::Request<super::WitnessRequest>,
3204 ) -> std::result::Result<tonic::Response<super::WitnessResponse>, tonic::Status>;
3205 type WitnessAndBuildStream: tonic::codegen::tokio_stream::Stream<
3207 Item = std::result::Result<super::WitnessAndBuildResponse, tonic::Status>,
3208 >
3209 + std::marker::Send
3210 + 'static;
3211 async fn witness_and_build(
3219 &self,
3220 request: tonic::Request<super::WitnessAndBuildRequest>,
3221 ) -> std::result::Result<
3222 tonic::Response<Self::WitnessAndBuildStream>,
3223 tonic::Status,
3224 >;
3225 type AuthorizeAndBuildStream: tonic::codegen::tokio_stream::Stream<
3227 Item = std::result::Result<
3228 super::AuthorizeAndBuildResponse,
3229 tonic::Status,
3230 >,
3231 >
3232 + std::marker::Send
3233 + 'static;
3234 async fn authorize_and_build(
3246 &self,
3247 request: tonic::Request<super::AuthorizeAndBuildRequest>,
3248 ) -> std::result::Result<
3249 tonic::Response<Self::AuthorizeAndBuildStream>,
3250 tonic::Status,
3251 >;
3252 type BroadcastTransactionStream: tonic::codegen::tokio_stream::Stream<
3254 Item = std::result::Result<
3255 super::BroadcastTransactionResponse,
3256 tonic::Status,
3257 >,
3258 >
3259 + std::marker::Send
3260 + 'static;
3261 async fn broadcast_transaction(
3265 &self,
3266 request: tonic::Request<super::BroadcastTransactionRequest>,
3267 ) -> std::result::Result<
3268 tonic::Response<Self::BroadcastTransactionStream>,
3269 tonic::Status,
3270 >;
3271 type DelegationsByAddressIndexStream: tonic::codegen::tokio_stream::Stream<
3273 Item = std::result::Result<
3274 super::DelegationsByAddressIndexResponse,
3275 tonic::Status,
3276 >,
3277 >
3278 + std::marker::Send
3279 + 'static;
3280 async fn delegations_by_address_index(
3285 &self,
3286 request: tonic::Request<super::DelegationsByAddressIndexRequest>,
3287 ) -> std::result::Result<
3288 tonic::Response<Self::DelegationsByAddressIndexStream>,
3289 tonic::Status,
3290 >;
3291 type UnbondingTokensByAddressIndexStream: tonic::codegen::tokio_stream::Stream<
3293 Item = std::result::Result<
3294 super::UnbondingTokensByAddressIndexResponse,
3295 tonic::Status,
3296 >,
3297 >
3298 + std::marker::Send
3299 + 'static;
3300 async fn unbonding_tokens_by_address_index(
3303 &self,
3304 request: tonic::Request<super::UnbondingTokensByAddressIndexRequest>,
3305 ) -> std::result::Result<
3306 tonic::Response<Self::UnbondingTokensByAddressIndexStream>,
3307 tonic::Status,
3308 >;
3309 type AuctionsStream: tonic::codegen::tokio_stream::Stream<
3311 Item = std::result::Result<super::AuctionsResponse, tonic::Status>,
3312 >
3313 + std::marker::Send
3314 + 'static;
3315 async fn auctions(
3317 &self,
3318 request: tonic::Request<super::AuctionsRequest>,
3319 ) -> std::result::Result<tonic::Response<Self::AuctionsStream>, tonic::Status>;
3320 type LatestSwapsStream: tonic::codegen::tokio_stream::Stream<
3322 Item = std::result::Result<super::LatestSwapsResponse, tonic::Status>,
3323 >
3324 + std::marker::Send
3325 + 'static;
3326 async fn latest_swaps(
3328 &self,
3329 request: tonic::Request<super::LatestSwapsRequest>,
3330 ) -> std::result::Result<
3331 tonic::Response<Self::LatestSwapsStream>,
3332 tonic::Status,
3333 >;
3334 }
3335 #[derive(Debug)]
3340 pub struct ViewServiceServer<T> {
3341 inner: Arc<T>,
3342 accept_compression_encodings: EnabledCompressionEncodings,
3343 send_compression_encodings: EnabledCompressionEncodings,
3344 max_decoding_message_size: Option<usize>,
3345 max_encoding_message_size: Option<usize>,
3346 }
3347 impl<T> ViewServiceServer<T> {
3348 pub fn new(inner: T) -> Self {
3349 Self::from_arc(Arc::new(inner))
3350 }
3351 pub fn from_arc(inner: Arc<T>) -> Self {
3352 Self {
3353 inner,
3354 accept_compression_encodings: Default::default(),
3355 send_compression_encodings: Default::default(),
3356 max_decoding_message_size: None,
3357 max_encoding_message_size: None,
3358 }
3359 }
3360 pub fn with_interceptor<F>(
3361 inner: T,
3362 interceptor: F,
3363 ) -> InterceptedService<Self, F>
3364 where
3365 F: tonic::service::Interceptor,
3366 {
3367 InterceptedService::new(Self::new(inner), interceptor)
3368 }
3369 #[must_use]
3371 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3372 self.accept_compression_encodings.enable(encoding);
3373 self
3374 }
3375 #[must_use]
3377 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3378 self.send_compression_encodings.enable(encoding);
3379 self
3380 }
3381 #[must_use]
3385 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3386 self.max_decoding_message_size = Some(limit);
3387 self
3388 }
3389 #[must_use]
3393 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3394 self.max_encoding_message_size = Some(limit);
3395 self
3396 }
3397 }
3398 impl<T, B> tonic::codegen::Service<http::Request<B>> for ViewServiceServer<T>
3399 where
3400 T: ViewService,
3401 B: Body + std::marker::Send + 'static,
3402 B::Error: Into<StdError> + std::marker::Send + 'static,
3403 {
3404 type Response = http::Response<tonic::body::BoxBody>;
3405 type Error = std::convert::Infallible;
3406 type Future = BoxFuture<Self::Response, Self::Error>;
3407 fn poll_ready(
3408 &mut self,
3409 _cx: &mut Context<'_>,
3410 ) -> Poll<std::result::Result<(), Self::Error>> {
3411 Poll::Ready(Ok(()))
3412 }
3413 fn call(&mut self, req: http::Request<B>) -> Self::Future {
3414 match req.uri().path() {
3415 "/penumbra.view.v1.ViewService/Status" => {
3416 #[allow(non_camel_case_types)]
3417 struct StatusSvc<T: ViewService>(pub Arc<T>);
3418 impl<
3419 T: ViewService,
3420 > tonic::server::UnaryService<super::StatusRequest>
3421 for StatusSvc<T> {
3422 type Response = super::StatusResponse;
3423 type Future = BoxFuture<
3424 tonic::Response<Self::Response>,
3425 tonic::Status,
3426 >;
3427 fn call(
3428 &mut self,
3429 request: tonic::Request<super::StatusRequest>,
3430 ) -> Self::Future {
3431 let inner = Arc::clone(&self.0);
3432 let fut = async move {
3433 <T as ViewService>::status(&inner, request).await
3434 };
3435 Box::pin(fut)
3436 }
3437 }
3438 let accept_compression_encodings = self.accept_compression_encodings;
3439 let send_compression_encodings = self.send_compression_encodings;
3440 let max_decoding_message_size = self.max_decoding_message_size;
3441 let max_encoding_message_size = self.max_encoding_message_size;
3442 let inner = self.inner.clone();
3443 let fut = async move {
3444 let method = StatusSvc(inner);
3445 let codec = tonic::codec::ProstCodec::default();
3446 let mut grpc = tonic::server::Grpc::new(codec)
3447 .apply_compression_config(
3448 accept_compression_encodings,
3449 send_compression_encodings,
3450 )
3451 .apply_max_message_size_config(
3452 max_decoding_message_size,
3453 max_encoding_message_size,
3454 );
3455 let res = grpc.unary(method, req).await;
3456 Ok(res)
3457 };
3458 Box::pin(fut)
3459 }
3460 "/penumbra.view.v1.ViewService/StatusStream" => {
3461 #[allow(non_camel_case_types)]
3462 struct StatusStreamSvc<T: ViewService>(pub Arc<T>);
3463 impl<
3464 T: ViewService,
3465 > tonic::server::ServerStreamingService<super::StatusStreamRequest>
3466 for StatusStreamSvc<T> {
3467 type Response = super::StatusStreamResponse;
3468 type ResponseStream = T::StatusStreamStream;
3469 type Future = BoxFuture<
3470 tonic::Response<Self::ResponseStream>,
3471 tonic::Status,
3472 >;
3473 fn call(
3474 &mut self,
3475 request: tonic::Request<super::StatusStreamRequest>,
3476 ) -> Self::Future {
3477 let inner = Arc::clone(&self.0);
3478 let fut = async move {
3479 <T as ViewService>::status_stream(&inner, request).await
3480 };
3481 Box::pin(fut)
3482 }
3483 }
3484 let accept_compression_encodings = self.accept_compression_encodings;
3485 let send_compression_encodings = self.send_compression_encodings;
3486 let max_decoding_message_size = self.max_decoding_message_size;
3487 let max_encoding_message_size = self.max_encoding_message_size;
3488 let inner = self.inner.clone();
3489 let fut = async move {
3490 let method = StatusStreamSvc(inner);
3491 let codec = tonic::codec::ProstCodec::default();
3492 let mut grpc = tonic::server::Grpc::new(codec)
3493 .apply_compression_config(
3494 accept_compression_encodings,
3495 send_compression_encodings,
3496 )
3497 .apply_max_message_size_config(
3498 max_decoding_message_size,
3499 max_encoding_message_size,
3500 );
3501 let res = grpc.server_streaming(method, req).await;
3502 Ok(res)
3503 };
3504 Box::pin(fut)
3505 }
3506 "/penumbra.view.v1.ViewService/Notes" => {
3507 #[allow(non_camel_case_types)]
3508 struct NotesSvc<T: ViewService>(pub Arc<T>);
3509 impl<
3510 T: ViewService,
3511 > tonic::server::ServerStreamingService<super::NotesRequest>
3512 for NotesSvc<T> {
3513 type Response = super::NotesResponse;
3514 type ResponseStream = T::NotesStream;
3515 type Future = BoxFuture<
3516 tonic::Response<Self::ResponseStream>,
3517 tonic::Status,
3518 >;
3519 fn call(
3520 &mut self,
3521 request: tonic::Request<super::NotesRequest>,
3522 ) -> Self::Future {
3523 let inner = Arc::clone(&self.0);
3524 let fut = async move {
3525 <T as ViewService>::notes(&inner, request).await
3526 };
3527 Box::pin(fut)
3528 }
3529 }
3530 let accept_compression_encodings = self.accept_compression_encodings;
3531 let send_compression_encodings = self.send_compression_encodings;
3532 let max_decoding_message_size = self.max_decoding_message_size;
3533 let max_encoding_message_size = self.max_encoding_message_size;
3534 let inner = self.inner.clone();
3535 let fut = async move {
3536 let method = NotesSvc(inner);
3537 let codec = tonic::codec::ProstCodec::default();
3538 let mut grpc = tonic::server::Grpc::new(codec)
3539 .apply_compression_config(
3540 accept_compression_encodings,
3541 send_compression_encodings,
3542 )
3543 .apply_max_message_size_config(
3544 max_decoding_message_size,
3545 max_encoding_message_size,
3546 );
3547 let res = grpc.server_streaming(method, req).await;
3548 Ok(res)
3549 };
3550 Box::pin(fut)
3551 }
3552 "/penumbra.view.v1.ViewService/NotesForVoting" => {
3553 #[allow(non_camel_case_types)]
3554 struct NotesForVotingSvc<T: ViewService>(pub Arc<T>);
3555 impl<
3556 T: ViewService,
3557 > tonic::server::ServerStreamingService<super::NotesForVotingRequest>
3558 for NotesForVotingSvc<T> {
3559 type Response = super::NotesForVotingResponse;
3560 type ResponseStream = T::NotesForVotingStream;
3561 type Future = BoxFuture<
3562 tonic::Response<Self::ResponseStream>,
3563 tonic::Status,
3564 >;
3565 fn call(
3566 &mut self,
3567 request: tonic::Request<super::NotesForVotingRequest>,
3568 ) -> Self::Future {
3569 let inner = Arc::clone(&self.0);
3570 let fut = async move {
3571 <T as ViewService>::notes_for_voting(&inner, request).await
3572 };
3573 Box::pin(fut)
3574 }
3575 }
3576 let accept_compression_encodings = self.accept_compression_encodings;
3577 let send_compression_encodings = self.send_compression_encodings;
3578 let max_decoding_message_size = self.max_decoding_message_size;
3579 let max_encoding_message_size = self.max_encoding_message_size;
3580 let inner = self.inner.clone();
3581 let fut = async move {
3582 let method = NotesForVotingSvc(inner);
3583 let codec = tonic::codec::ProstCodec::default();
3584 let mut grpc = tonic::server::Grpc::new(codec)
3585 .apply_compression_config(
3586 accept_compression_encodings,
3587 send_compression_encodings,
3588 )
3589 .apply_max_message_size_config(
3590 max_decoding_message_size,
3591 max_encoding_message_size,
3592 );
3593 let res = grpc.server_streaming(method, req).await;
3594 Ok(res)
3595 };
3596 Box::pin(fut)
3597 }
3598 "/penumbra.view.v1.ViewService/Assets" => {
3599 #[allow(non_camel_case_types)]
3600 struct AssetsSvc<T: ViewService>(pub Arc<T>);
3601 impl<
3602 T: ViewService,
3603 > tonic::server::ServerStreamingService<super::AssetsRequest>
3604 for AssetsSvc<T> {
3605 type Response = super::AssetsResponse;
3606 type ResponseStream = T::AssetsStream;
3607 type Future = BoxFuture<
3608 tonic::Response<Self::ResponseStream>,
3609 tonic::Status,
3610 >;
3611 fn call(
3612 &mut self,
3613 request: tonic::Request<super::AssetsRequest>,
3614 ) -> Self::Future {
3615 let inner = Arc::clone(&self.0);
3616 let fut = async move {
3617 <T as ViewService>::assets(&inner, request).await
3618 };
3619 Box::pin(fut)
3620 }
3621 }
3622 let accept_compression_encodings = self.accept_compression_encodings;
3623 let send_compression_encodings = self.send_compression_encodings;
3624 let max_decoding_message_size = self.max_decoding_message_size;
3625 let max_encoding_message_size = self.max_encoding_message_size;
3626 let inner = self.inner.clone();
3627 let fut = async move {
3628 let method = AssetsSvc(inner);
3629 let codec = tonic::codec::ProstCodec::default();
3630 let mut grpc = tonic::server::Grpc::new(codec)
3631 .apply_compression_config(
3632 accept_compression_encodings,
3633 send_compression_encodings,
3634 )
3635 .apply_max_message_size_config(
3636 max_decoding_message_size,
3637 max_encoding_message_size,
3638 );
3639 let res = grpc.server_streaming(method, req).await;
3640 Ok(res)
3641 };
3642 Box::pin(fut)
3643 }
3644 "/penumbra.view.v1.ViewService/AssetMetadataById" => {
3645 #[allow(non_camel_case_types)]
3646 struct AssetMetadataByIdSvc<T: ViewService>(pub Arc<T>);
3647 impl<
3648 T: ViewService,
3649 > tonic::server::UnaryService<super::AssetMetadataByIdRequest>
3650 for AssetMetadataByIdSvc<T> {
3651 type Response = super::AssetMetadataByIdResponse;
3652 type Future = BoxFuture<
3653 tonic::Response<Self::Response>,
3654 tonic::Status,
3655 >;
3656 fn call(
3657 &mut self,
3658 request: tonic::Request<super::AssetMetadataByIdRequest>,
3659 ) -> Self::Future {
3660 let inner = Arc::clone(&self.0);
3661 let fut = async move {
3662 <T as ViewService>::asset_metadata_by_id(&inner, request)
3663 .await
3664 };
3665 Box::pin(fut)
3666 }
3667 }
3668 let accept_compression_encodings = self.accept_compression_encodings;
3669 let send_compression_encodings = self.send_compression_encodings;
3670 let max_decoding_message_size = self.max_decoding_message_size;
3671 let max_encoding_message_size = self.max_encoding_message_size;
3672 let inner = self.inner.clone();
3673 let fut = async move {
3674 let method = AssetMetadataByIdSvc(inner);
3675 let codec = tonic::codec::ProstCodec::default();
3676 let mut grpc = tonic::server::Grpc::new(codec)
3677 .apply_compression_config(
3678 accept_compression_encodings,
3679 send_compression_encodings,
3680 )
3681 .apply_max_message_size_config(
3682 max_decoding_message_size,
3683 max_encoding_message_size,
3684 );
3685 let res = grpc.unary(method, req).await;
3686 Ok(res)
3687 };
3688 Box::pin(fut)
3689 }
3690 "/penumbra.view.v1.ViewService/AppParameters" => {
3691 #[allow(non_camel_case_types)]
3692 struct AppParametersSvc<T: ViewService>(pub Arc<T>);
3693 impl<
3694 T: ViewService,
3695 > tonic::server::UnaryService<super::AppParametersRequest>
3696 for AppParametersSvc<T> {
3697 type Response = super::AppParametersResponse;
3698 type Future = BoxFuture<
3699 tonic::Response<Self::Response>,
3700 tonic::Status,
3701 >;
3702 fn call(
3703 &mut self,
3704 request: tonic::Request<super::AppParametersRequest>,
3705 ) -> Self::Future {
3706 let inner = Arc::clone(&self.0);
3707 let fut = async move {
3708 <T as ViewService>::app_parameters(&inner, request).await
3709 };
3710 Box::pin(fut)
3711 }
3712 }
3713 let accept_compression_encodings = self.accept_compression_encodings;
3714 let send_compression_encodings = self.send_compression_encodings;
3715 let max_decoding_message_size = self.max_decoding_message_size;
3716 let max_encoding_message_size = self.max_encoding_message_size;
3717 let inner = self.inner.clone();
3718 let fut = async move {
3719 let method = AppParametersSvc(inner);
3720 let codec = tonic::codec::ProstCodec::default();
3721 let mut grpc = tonic::server::Grpc::new(codec)
3722 .apply_compression_config(
3723 accept_compression_encodings,
3724 send_compression_encodings,
3725 )
3726 .apply_max_message_size_config(
3727 max_decoding_message_size,
3728 max_encoding_message_size,
3729 );
3730 let res = grpc.unary(method, req).await;
3731 Ok(res)
3732 };
3733 Box::pin(fut)
3734 }
3735 "/penumbra.view.v1.ViewService/GasPrices" => {
3736 #[allow(non_camel_case_types)]
3737 struct GasPricesSvc<T: ViewService>(pub Arc<T>);
3738 impl<
3739 T: ViewService,
3740 > tonic::server::UnaryService<super::GasPricesRequest>
3741 for GasPricesSvc<T> {
3742 type Response = super::GasPricesResponse;
3743 type Future = BoxFuture<
3744 tonic::Response<Self::Response>,
3745 tonic::Status,
3746 >;
3747 fn call(
3748 &mut self,
3749 request: tonic::Request<super::GasPricesRequest>,
3750 ) -> Self::Future {
3751 let inner = Arc::clone(&self.0);
3752 let fut = async move {
3753 <T as ViewService>::gas_prices(&inner, request).await
3754 };
3755 Box::pin(fut)
3756 }
3757 }
3758 let accept_compression_encodings = self.accept_compression_encodings;
3759 let send_compression_encodings = self.send_compression_encodings;
3760 let max_decoding_message_size = self.max_decoding_message_size;
3761 let max_encoding_message_size = self.max_encoding_message_size;
3762 let inner = self.inner.clone();
3763 let fut = async move {
3764 let method = GasPricesSvc(inner);
3765 let codec = tonic::codec::ProstCodec::default();
3766 let mut grpc = tonic::server::Grpc::new(codec)
3767 .apply_compression_config(
3768 accept_compression_encodings,
3769 send_compression_encodings,
3770 )
3771 .apply_max_message_size_config(
3772 max_decoding_message_size,
3773 max_encoding_message_size,
3774 );
3775 let res = grpc.unary(method, req).await;
3776 Ok(res)
3777 };
3778 Box::pin(fut)
3779 }
3780 "/penumbra.view.v1.ViewService/FMDParameters" => {
3781 #[allow(non_camel_case_types)]
3782 struct FMDParametersSvc<T: ViewService>(pub Arc<T>);
3783 impl<
3784 T: ViewService,
3785 > tonic::server::UnaryService<super::FmdParametersRequest>
3786 for FMDParametersSvc<T> {
3787 type Response = super::FmdParametersResponse;
3788 type Future = BoxFuture<
3789 tonic::Response<Self::Response>,
3790 tonic::Status,
3791 >;
3792 fn call(
3793 &mut self,
3794 request: tonic::Request<super::FmdParametersRequest>,
3795 ) -> Self::Future {
3796 let inner = Arc::clone(&self.0);
3797 let fut = async move {
3798 <T as ViewService>::fmd_parameters(&inner, request).await
3799 };
3800 Box::pin(fut)
3801 }
3802 }
3803 let accept_compression_encodings = self.accept_compression_encodings;
3804 let send_compression_encodings = self.send_compression_encodings;
3805 let max_decoding_message_size = self.max_decoding_message_size;
3806 let max_encoding_message_size = self.max_encoding_message_size;
3807 let inner = self.inner.clone();
3808 let fut = async move {
3809 let method = FMDParametersSvc(inner);
3810 let codec = tonic::codec::ProstCodec::default();
3811 let mut grpc = tonic::server::Grpc::new(codec)
3812 .apply_compression_config(
3813 accept_compression_encodings,
3814 send_compression_encodings,
3815 )
3816 .apply_max_message_size_config(
3817 max_decoding_message_size,
3818 max_encoding_message_size,
3819 );
3820 let res = grpc.unary(method, req).await;
3821 Ok(res)
3822 };
3823 Box::pin(fut)
3824 }
3825 "/penumbra.view.v1.ViewService/AddressByIndex" => {
3826 #[allow(non_camel_case_types)]
3827 struct AddressByIndexSvc<T: ViewService>(pub Arc<T>);
3828 impl<
3829 T: ViewService,
3830 > tonic::server::UnaryService<super::AddressByIndexRequest>
3831 for AddressByIndexSvc<T> {
3832 type Response = super::AddressByIndexResponse;
3833 type Future = BoxFuture<
3834 tonic::Response<Self::Response>,
3835 tonic::Status,
3836 >;
3837 fn call(
3838 &mut self,
3839 request: tonic::Request<super::AddressByIndexRequest>,
3840 ) -> Self::Future {
3841 let inner = Arc::clone(&self.0);
3842 let fut = async move {
3843 <T as ViewService>::address_by_index(&inner, request).await
3844 };
3845 Box::pin(fut)
3846 }
3847 }
3848 let accept_compression_encodings = self.accept_compression_encodings;
3849 let send_compression_encodings = self.send_compression_encodings;
3850 let max_decoding_message_size = self.max_decoding_message_size;
3851 let max_encoding_message_size = self.max_encoding_message_size;
3852 let inner = self.inner.clone();
3853 let fut = async move {
3854 let method = AddressByIndexSvc(inner);
3855 let codec = tonic::codec::ProstCodec::default();
3856 let mut grpc = tonic::server::Grpc::new(codec)
3857 .apply_compression_config(
3858 accept_compression_encodings,
3859 send_compression_encodings,
3860 )
3861 .apply_max_message_size_config(
3862 max_decoding_message_size,
3863 max_encoding_message_size,
3864 );
3865 let res = grpc.unary(method, req).await;
3866 Ok(res)
3867 };
3868 Box::pin(fut)
3869 }
3870 "/penumbra.view.v1.ViewService/TransparentAddress" => {
3871 #[allow(non_camel_case_types)]
3872 struct TransparentAddressSvc<T: ViewService>(pub Arc<T>);
3873 impl<
3874 T: ViewService,
3875 > tonic::server::UnaryService<super::TransparentAddressRequest>
3876 for TransparentAddressSvc<T> {
3877 type Response = super::TransparentAddressResponse;
3878 type Future = BoxFuture<
3879 tonic::Response<Self::Response>,
3880 tonic::Status,
3881 >;
3882 fn call(
3883 &mut self,
3884 request: tonic::Request<super::TransparentAddressRequest>,
3885 ) -> Self::Future {
3886 let inner = Arc::clone(&self.0);
3887 let fut = async move {
3888 <T as ViewService>::transparent_address(&inner, request)
3889 .await
3890 };
3891 Box::pin(fut)
3892 }
3893 }
3894 let accept_compression_encodings = self.accept_compression_encodings;
3895 let send_compression_encodings = self.send_compression_encodings;
3896 let max_decoding_message_size = self.max_decoding_message_size;
3897 let max_encoding_message_size = self.max_encoding_message_size;
3898 let inner = self.inner.clone();
3899 let fut = async move {
3900 let method = TransparentAddressSvc(inner);
3901 let codec = tonic::codec::ProstCodec::default();
3902 let mut grpc = tonic::server::Grpc::new(codec)
3903 .apply_compression_config(
3904 accept_compression_encodings,
3905 send_compression_encodings,
3906 )
3907 .apply_max_message_size_config(
3908 max_decoding_message_size,
3909 max_encoding_message_size,
3910 );
3911 let res = grpc.unary(method, req).await;
3912 Ok(res)
3913 };
3914 Box::pin(fut)
3915 }
3916 "/penumbra.view.v1.ViewService/WalletId" => {
3917 #[allow(non_camel_case_types)]
3918 struct WalletIdSvc<T: ViewService>(pub Arc<T>);
3919 impl<
3920 T: ViewService,
3921 > tonic::server::UnaryService<super::WalletIdRequest>
3922 for WalletIdSvc<T> {
3923 type Response = super::WalletIdResponse;
3924 type Future = BoxFuture<
3925 tonic::Response<Self::Response>,
3926 tonic::Status,
3927 >;
3928 fn call(
3929 &mut self,
3930 request: tonic::Request<super::WalletIdRequest>,
3931 ) -> Self::Future {
3932 let inner = Arc::clone(&self.0);
3933 let fut = async move {
3934 <T as ViewService>::wallet_id(&inner, request).await
3935 };
3936 Box::pin(fut)
3937 }
3938 }
3939 let accept_compression_encodings = self.accept_compression_encodings;
3940 let send_compression_encodings = self.send_compression_encodings;
3941 let max_decoding_message_size = self.max_decoding_message_size;
3942 let max_encoding_message_size = self.max_encoding_message_size;
3943 let inner = self.inner.clone();
3944 let fut = async move {
3945 let method = WalletIdSvc(inner);
3946 let codec = tonic::codec::ProstCodec::default();
3947 let mut grpc = tonic::server::Grpc::new(codec)
3948 .apply_compression_config(
3949 accept_compression_encodings,
3950 send_compression_encodings,
3951 )
3952 .apply_max_message_size_config(
3953 max_decoding_message_size,
3954 max_encoding_message_size,
3955 );
3956 let res = grpc.unary(method, req).await;
3957 Ok(res)
3958 };
3959 Box::pin(fut)
3960 }
3961 "/penumbra.view.v1.ViewService/IndexByAddress" => {
3962 #[allow(non_camel_case_types)]
3963 struct IndexByAddressSvc<T: ViewService>(pub Arc<T>);
3964 impl<
3965 T: ViewService,
3966 > tonic::server::UnaryService<super::IndexByAddressRequest>
3967 for IndexByAddressSvc<T> {
3968 type Response = super::IndexByAddressResponse;
3969 type Future = BoxFuture<
3970 tonic::Response<Self::Response>,
3971 tonic::Status,
3972 >;
3973 fn call(
3974 &mut self,
3975 request: tonic::Request<super::IndexByAddressRequest>,
3976 ) -> Self::Future {
3977 let inner = Arc::clone(&self.0);
3978 let fut = async move {
3979 <T as ViewService>::index_by_address(&inner, request).await
3980 };
3981 Box::pin(fut)
3982 }
3983 }
3984 let accept_compression_encodings = self.accept_compression_encodings;
3985 let send_compression_encodings = self.send_compression_encodings;
3986 let max_decoding_message_size = self.max_decoding_message_size;
3987 let max_encoding_message_size = self.max_encoding_message_size;
3988 let inner = self.inner.clone();
3989 let fut = async move {
3990 let method = IndexByAddressSvc(inner);
3991 let codec = tonic::codec::ProstCodec::default();
3992 let mut grpc = tonic::server::Grpc::new(codec)
3993 .apply_compression_config(
3994 accept_compression_encodings,
3995 send_compression_encodings,
3996 )
3997 .apply_max_message_size_config(
3998 max_decoding_message_size,
3999 max_encoding_message_size,
4000 );
4001 let res = grpc.unary(method, req).await;
4002 Ok(res)
4003 };
4004 Box::pin(fut)
4005 }
4006 "/penumbra.view.v1.ViewService/EphemeralAddress" => {
4007 #[allow(non_camel_case_types)]
4008 struct EphemeralAddressSvc<T: ViewService>(pub Arc<T>);
4009 impl<
4010 T: ViewService,
4011 > tonic::server::UnaryService<super::EphemeralAddressRequest>
4012 for EphemeralAddressSvc<T> {
4013 type Response = super::EphemeralAddressResponse;
4014 type Future = BoxFuture<
4015 tonic::Response<Self::Response>,
4016 tonic::Status,
4017 >;
4018 fn call(
4019 &mut self,
4020 request: tonic::Request<super::EphemeralAddressRequest>,
4021 ) -> Self::Future {
4022 let inner = Arc::clone(&self.0);
4023 let fut = async move {
4024 <T as ViewService>::ephemeral_address(&inner, request).await
4025 };
4026 Box::pin(fut)
4027 }
4028 }
4029 let accept_compression_encodings = self.accept_compression_encodings;
4030 let send_compression_encodings = self.send_compression_encodings;
4031 let max_decoding_message_size = self.max_decoding_message_size;
4032 let max_encoding_message_size = self.max_encoding_message_size;
4033 let inner = self.inner.clone();
4034 let fut = async move {
4035 let method = EphemeralAddressSvc(inner);
4036 let codec = tonic::codec::ProstCodec::default();
4037 let mut grpc = tonic::server::Grpc::new(codec)
4038 .apply_compression_config(
4039 accept_compression_encodings,
4040 send_compression_encodings,
4041 )
4042 .apply_max_message_size_config(
4043 max_decoding_message_size,
4044 max_encoding_message_size,
4045 );
4046 let res = grpc.unary(method, req).await;
4047 Ok(res)
4048 };
4049 Box::pin(fut)
4050 }
4051 "/penumbra.view.v1.ViewService/Balances" => {
4052 #[allow(non_camel_case_types)]
4053 struct BalancesSvc<T: ViewService>(pub Arc<T>);
4054 impl<
4055 T: ViewService,
4056 > tonic::server::ServerStreamingService<super::BalancesRequest>
4057 for BalancesSvc<T> {
4058 type Response = super::BalancesResponse;
4059 type ResponseStream = T::BalancesStream;
4060 type Future = BoxFuture<
4061 tonic::Response<Self::ResponseStream>,
4062 tonic::Status,
4063 >;
4064 fn call(
4065 &mut self,
4066 request: tonic::Request<super::BalancesRequest>,
4067 ) -> Self::Future {
4068 let inner = Arc::clone(&self.0);
4069 let fut = async move {
4070 <T as ViewService>::balances(&inner, request).await
4071 };
4072 Box::pin(fut)
4073 }
4074 }
4075 let accept_compression_encodings = self.accept_compression_encodings;
4076 let send_compression_encodings = self.send_compression_encodings;
4077 let max_decoding_message_size = self.max_decoding_message_size;
4078 let max_encoding_message_size = self.max_encoding_message_size;
4079 let inner = self.inner.clone();
4080 let fut = async move {
4081 let method = BalancesSvc(inner);
4082 let codec = tonic::codec::ProstCodec::default();
4083 let mut grpc = tonic::server::Grpc::new(codec)
4084 .apply_compression_config(
4085 accept_compression_encodings,
4086 send_compression_encodings,
4087 )
4088 .apply_max_message_size_config(
4089 max_decoding_message_size,
4090 max_encoding_message_size,
4091 );
4092 let res = grpc.server_streaming(method, req).await;
4093 Ok(res)
4094 };
4095 Box::pin(fut)
4096 }
4097 "/penumbra.view.v1.ViewService/NoteByCommitment" => {
4098 #[allow(non_camel_case_types)]
4099 struct NoteByCommitmentSvc<T: ViewService>(pub Arc<T>);
4100 impl<
4101 T: ViewService,
4102 > tonic::server::UnaryService<super::NoteByCommitmentRequest>
4103 for NoteByCommitmentSvc<T> {
4104 type Response = super::NoteByCommitmentResponse;
4105 type Future = BoxFuture<
4106 tonic::Response<Self::Response>,
4107 tonic::Status,
4108 >;
4109 fn call(
4110 &mut self,
4111 request: tonic::Request<super::NoteByCommitmentRequest>,
4112 ) -> Self::Future {
4113 let inner = Arc::clone(&self.0);
4114 let fut = async move {
4115 <T as ViewService>::note_by_commitment(&inner, request)
4116 .await
4117 };
4118 Box::pin(fut)
4119 }
4120 }
4121 let accept_compression_encodings = self.accept_compression_encodings;
4122 let send_compression_encodings = self.send_compression_encodings;
4123 let max_decoding_message_size = self.max_decoding_message_size;
4124 let max_encoding_message_size = self.max_encoding_message_size;
4125 let inner = self.inner.clone();
4126 let fut = async move {
4127 let method = NoteByCommitmentSvc(inner);
4128 let codec = tonic::codec::ProstCodec::default();
4129 let mut grpc = tonic::server::Grpc::new(codec)
4130 .apply_compression_config(
4131 accept_compression_encodings,
4132 send_compression_encodings,
4133 )
4134 .apply_max_message_size_config(
4135 max_decoding_message_size,
4136 max_encoding_message_size,
4137 );
4138 let res = grpc.unary(method, req).await;
4139 Ok(res)
4140 };
4141 Box::pin(fut)
4142 }
4143 "/penumbra.view.v1.ViewService/SwapByCommitment" => {
4144 #[allow(non_camel_case_types)]
4145 struct SwapByCommitmentSvc<T: ViewService>(pub Arc<T>);
4146 impl<
4147 T: ViewService,
4148 > tonic::server::UnaryService<super::SwapByCommitmentRequest>
4149 for SwapByCommitmentSvc<T> {
4150 type Response = super::SwapByCommitmentResponse;
4151 type Future = BoxFuture<
4152 tonic::Response<Self::Response>,
4153 tonic::Status,
4154 >;
4155 fn call(
4156 &mut self,
4157 request: tonic::Request<super::SwapByCommitmentRequest>,
4158 ) -> Self::Future {
4159 let inner = Arc::clone(&self.0);
4160 let fut = async move {
4161 <T as ViewService>::swap_by_commitment(&inner, request)
4162 .await
4163 };
4164 Box::pin(fut)
4165 }
4166 }
4167 let accept_compression_encodings = self.accept_compression_encodings;
4168 let send_compression_encodings = self.send_compression_encodings;
4169 let max_decoding_message_size = self.max_decoding_message_size;
4170 let max_encoding_message_size = self.max_encoding_message_size;
4171 let inner = self.inner.clone();
4172 let fut = async move {
4173 let method = SwapByCommitmentSvc(inner);
4174 let codec = tonic::codec::ProstCodec::default();
4175 let mut grpc = tonic::server::Grpc::new(codec)
4176 .apply_compression_config(
4177 accept_compression_encodings,
4178 send_compression_encodings,
4179 )
4180 .apply_max_message_size_config(
4181 max_decoding_message_size,
4182 max_encoding_message_size,
4183 );
4184 let res = grpc.unary(method, req).await;
4185 Ok(res)
4186 };
4187 Box::pin(fut)
4188 }
4189 "/penumbra.view.v1.ViewService/UnclaimedSwaps" => {
4190 #[allow(non_camel_case_types)]
4191 struct UnclaimedSwapsSvc<T: ViewService>(pub Arc<T>);
4192 impl<
4193 T: ViewService,
4194 > tonic::server::ServerStreamingService<super::UnclaimedSwapsRequest>
4195 for UnclaimedSwapsSvc<T> {
4196 type Response = super::UnclaimedSwapsResponse;
4197 type ResponseStream = T::UnclaimedSwapsStream;
4198 type Future = BoxFuture<
4199 tonic::Response<Self::ResponseStream>,
4200 tonic::Status,
4201 >;
4202 fn call(
4203 &mut self,
4204 request: tonic::Request<super::UnclaimedSwapsRequest>,
4205 ) -> Self::Future {
4206 let inner = Arc::clone(&self.0);
4207 let fut = async move {
4208 <T as ViewService>::unclaimed_swaps(&inner, request).await
4209 };
4210 Box::pin(fut)
4211 }
4212 }
4213 let accept_compression_encodings = self.accept_compression_encodings;
4214 let send_compression_encodings = self.send_compression_encodings;
4215 let max_decoding_message_size = self.max_decoding_message_size;
4216 let max_encoding_message_size = self.max_encoding_message_size;
4217 let inner = self.inner.clone();
4218 let fut = async move {
4219 let method = UnclaimedSwapsSvc(inner);
4220 let codec = tonic::codec::ProstCodec::default();
4221 let mut grpc = tonic::server::Grpc::new(codec)
4222 .apply_compression_config(
4223 accept_compression_encodings,
4224 send_compression_encodings,
4225 )
4226 .apply_max_message_size_config(
4227 max_decoding_message_size,
4228 max_encoding_message_size,
4229 );
4230 let res = grpc.server_streaming(method, req).await;
4231 Ok(res)
4232 };
4233 Box::pin(fut)
4234 }
4235 "/penumbra.view.v1.ViewService/NullifierStatus" => {
4236 #[allow(non_camel_case_types)]
4237 struct NullifierStatusSvc<T: ViewService>(pub Arc<T>);
4238 impl<
4239 T: ViewService,
4240 > tonic::server::UnaryService<super::NullifierStatusRequest>
4241 for NullifierStatusSvc<T> {
4242 type Response = super::NullifierStatusResponse;
4243 type Future = BoxFuture<
4244 tonic::Response<Self::Response>,
4245 tonic::Status,
4246 >;
4247 fn call(
4248 &mut self,
4249 request: tonic::Request<super::NullifierStatusRequest>,
4250 ) -> Self::Future {
4251 let inner = Arc::clone(&self.0);
4252 let fut = async move {
4253 <T as ViewService>::nullifier_status(&inner, request).await
4254 };
4255 Box::pin(fut)
4256 }
4257 }
4258 let accept_compression_encodings = self.accept_compression_encodings;
4259 let send_compression_encodings = self.send_compression_encodings;
4260 let max_decoding_message_size = self.max_decoding_message_size;
4261 let max_encoding_message_size = self.max_encoding_message_size;
4262 let inner = self.inner.clone();
4263 let fut = async move {
4264 let method = NullifierStatusSvc(inner);
4265 let codec = tonic::codec::ProstCodec::default();
4266 let mut grpc = tonic::server::Grpc::new(codec)
4267 .apply_compression_config(
4268 accept_compression_encodings,
4269 send_compression_encodings,
4270 )
4271 .apply_max_message_size_config(
4272 max_decoding_message_size,
4273 max_encoding_message_size,
4274 );
4275 let res = grpc.unary(method, req).await;
4276 Ok(res)
4277 };
4278 Box::pin(fut)
4279 }
4280 "/penumbra.view.v1.ViewService/TransactionInfoByHash" => {
4281 #[allow(non_camel_case_types)]
4282 struct TransactionInfoByHashSvc<T: ViewService>(pub Arc<T>);
4283 impl<
4284 T: ViewService,
4285 > tonic::server::UnaryService<super::TransactionInfoByHashRequest>
4286 for TransactionInfoByHashSvc<T> {
4287 type Response = super::TransactionInfoByHashResponse;
4288 type Future = BoxFuture<
4289 tonic::Response<Self::Response>,
4290 tonic::Status,
4291 >;
4292 fn call(
4293 &mut self,
4294 request: tonic::Request<super::TransactionInfoByHashRequest>,
4295 ) -> Self::Future {
4296 let inner = Arc::clone(&self.0);
4297 let fut = async move {
4298 <T as ViewService>::transaction_info_by_hash(
4299 &inner,
4300 request,
4301 )
4302 .await
4303 };
4304 Box::pin(fut)
4305 }
4306 }
4307 let accept_compression_encodings = self.accept_compression_encodings;
4308 let send_compression_encodings = self.send_compression_encodings;
4309 let max_decoding_message_size = self.max_decoding_message_size;
4310 let max_encoding_message_size = self.max_encoding_message_size;
4311 let inner = self.inner.clone();
4312 let fut = async move {
4313 let method = TransactionInfoByHashSvc(inner);
4314 let codec = tonic::codec::ProstCodec::default();
4315 let mut grpc = tonic::server::Grpc::new(codec)
4316 .apply_compression_config(
4317 accept_compression_encodings,
4318 send_compression_encodings,
4319 )
4320 .apply_max_message_size_config(
4321 max_decoding_message_size,
4322 max_encoding_message_size,
4323 );
4324 let res = grpc.unary(method, req).await;
4325 Ok(res)
4326 };
4327 Box::pin(fut)
4328 }
4329 "/penumbra.view.v1.ViewService/TransactionInfo" => {
4330 #[allow(non_camel_case_types)]
4331 struct TransactionInfoSvc<T: ViewService>(pub Arc<T>);
4332 impl<
4333 T: ViewService,
4334 > tonic::server::ServerStreamingService<
4335 super::TransactionInfoRequest,
4336 > for TransactionInfoSvc<T> {
4337 type Response = super::TransactionInfoResponse;
4338 type ResponseStream = T::TransactionInfoStream;
4339 type Future = BoxFuture<
4340 tonic::Response<Self::ResponseStream>,
4341 tonic::Status,
4342 >;
4343 fn call(
4344 &mut self,
4345 request: tonic::Request<super::TransactionInfoRequest>,
4346 ) -> Self::Future {
4347 let inner = Arc::clone(&self.0);
4348 let fut = async move {
4349 <T as ViewService>::transaction_info(&inner, request).await
4350 };
4351 Box::pin(fut)
4352 }
4353 }
4354 let accept_compression_encodings = self.accept_compression_encodings;
4355 let send_compression_encodings = self.send_compression_encodings;
4356 let max_decoding_message_size = self.max_decoding_message_size;
4357 let max_encoding_message_size = self.max_encoding_message_size;
4358 let inner = self.inner.clone();
4359 let fut = async move {
4360 let method = TransactionInfoSvc(inner);
4361 let codec = tonic::codec::ProstCodec::default();
4362 let mut grpc = tonic::server::Grpc::new(codec)
4363 .apply_compression_config(
4364 accept_compression_encodings,
4365 send_compression_encodings,
4366 )
4367 .apply_max_message_size_config(
4368 max_decoding_message_size,
4369 max_encoding_message_size,
4370 );
4371 let res = grpc.server_streaming(method, req).await;
4372 Ok(res)
4373 };
4374 Box::pin(fut)
4375 }
4376 "/penumbra.view.v1.ViewService/OwnedPositionIds" => {
4377 #[allow(non_camel_case_types)]
4378 struct OwnedPositionIdsSvc<T: ViewService>(pub Arc<T>);
4379 impl<
4380 T: ViewService,
4381 > tonic::server::ServerStreamingService<
4382 super::OwnedPositionIdsRequest,
4383 > for OwnedPositionIdsSvc<T> {
4384 type Response = super::OwnedPositionIdsResponse;
4385 type ResponseStream = T::OwnedPositionIdsStream;
4386 type Future = BoxFuture<
4387 tonic::Response<Self::ResponseStream>,
4388 tonic::Status,
4389 >;
4390 fn call(
4391 &mut self,
4392 request: tonic::Request<super::OwnedPositionIdsRequest>,
4393 ) -> Self::Future {
4394 let inner = Arc::clone(&self.0);
4395 let fut = async move {
4396 <T as ViewService>::owned_position_ids(&inner, request)
4397 .await
4398 };
4399 Box::pin(fut)
4400 }
4401 }
4402 let accept_compression_encodings = self.accept_compression_encodings;
4403 let send_compression_encodings = self.send_compression_encodings;
4404 let max_decoding_message_size = self.max_decoding_message_size;
4405 let max_encoding_message_size = self.max_encoding_message_size;
4406 let inner = self.inner.clone();
4407 let fut = async move {
4408 let method = OwnedPositionIdsSvc(inner);
4409 let codec = tonic::codec::ProstCodec::default();
4410 let mut grpc = tonic::server::Grpc::new(codec)
4411 .apply_compression_config(
4412 accept_compression_encodings,
4413 send_compression_encodings,
4414 )
4415 .apply_max_message_size_config(
4416 max_decoding_message_size,
4417 max_encoding_message_size,
4418 );
4419 let res = grpc.server_streaming(method, req).await;
4420 Ok(res)
4421 };
4422 Box::pin(fut)
4423 }
4424 "/penumbra.view.v1.ViewService/TransactionPlanner" => {
4425 #[allow(non_camel_case_types)]
4426 struct TransactionPlannerSvc<T: ViewService>(pub Arc<T>);
4427 impl<
4428 T: ViewService,
4429 > tonic::server::UnaryService<super::TransactionPlannerRequest>
4430 for TransactionPlannerSvc<T> {
4431 type Response = super::TransactionPlannerResponse;
4432 type Future = BoxFuture<
4433 tonic::Response<Self::Response>,
4434 tonic::Status,
4435 >;
4436 fn call(
4437 &mut self,
4438 request: tonic::Request<super::TransactionPlannerRequest>,
4439 ) -> Self::Future {
4440 let inner = Arc::clone(&self.0);
4441 let fut = async move {
4442 <T as ViewService>::transaction_planner(&inner, request)
4443 .await
4444 };
4445 Box::pin(fut)
4446 }
4447 }
4448 let accept_compression_encodings = self.accept_compression_encodings;
4449 let send_compression_encodings = self.send_compression_encodings;
4450 let max_decoding_message_size = self.max_decoding_message_size;
4451 let max_encoding_message_size = self.max_encoding_message_size;
4452 let inner = self.inner.clone();
4453 let fut = async move {
4454 let method = TransactionPlannerSvc(inner);
4455 let codec = tonic::codec::ProstCodec::default();
4456 let mut grpc = tonic::server::Grpc::new(codec)
4457 .apply_compression_config(
4458 accept_compression_encodings,
4459 send_compression_encodings,
4460 )
4461 .apply_max_message_size_config(
4462 max_decoding_message_size,
4463 max_encoding_message_size,
4464 );
4465 let res = grpc.unary(method, req).await;
4466 Ok(res)
4467 };
4468 Box::pin(fut)
4469 }
4470 "/penumbra.view.v1.ViewService/Witness" => {
4471 #[allow(non_camel_case_types)]
4472 struct WitnessSvc<T: ViewService>(pub Arc<T>);
4473 impl<
4474 T: ViewService,
4475 > tonic::server::UnaryService<super::WitnessRequest>
4476 for WitnessSvc<T> {
4477 type Response = super::WitnessResponse;
4478 type Future = BoxFuture<
4479 tonic::Response<Self::Response>,
4480 tonic::Status,
4481 >;
4482 fn call(
4483 &mut self,
4484 request: tonic::Request<super::WitnessRequest>,
4485 ) -> Self::Future {
4486 let inner = Arc::clone(&self.0);
4487 let fut = async move {
4488 <T as ViewService>::witness(&inner, request).await
4489 };
4490 Box::pin(fut)
4491 }
4492 }
4493 let accept_compression_encodings = self.accept_compression_encodings;
4494 let send_compression_encodings = self.send_compression_encodings;
4495 let max_decoding_message_size = self.max_decoding_message_size;
4496 let max_encoding_message_size = self.max_encoding_message_size;
4497 let inner = self.inner.clone();
4498 let fut = async move {
4499 let method = WitnessSvc(inner);
4500 let codec = tonic::codec::ProstCodec::default();
4501 let mut grpc = tonic::server::Grpc::new(codec)
4502 .apply_compression_config(
4503 accept_compression_encodings,
4504 send_compression_encodings,
4505 )
4506 .apply_max_message_size_config(
4507 max_decoding_message_size,
4508 max_encoding_message_size,
4509 );
4510 let res = grpc.unary(method, req).await;
4511 Ok(res)
4512 };
4513 Box::pin(fut)
4514 }
4515 "/penumbra.view.v1.ViewService/WitnessAndBuild" => {
4516 #[allow(non_camel_case_types)]
4517 struct WitnessAndBuildSvc<T: ViewService>(pub Arc<T>);
4518 impl<
4519 T: ViewService,
4520 > tonic::server::ServerStreamingService<
4521 super::WitnessAndBuildRequest,
4522 > for WitnessAndBuildSvc<T> {
4523 type Response = super::WitnessAndBuildResponse;
4524 type ResponseStream = T::WitnessAndBuildStream;
4525 type Future = BoxFuture<
4526 tonic::Response<Self::ResponseStream>,
4527 tonic::Status,
4528 >;
4529 fn call(
4530 &mut self,
4531 request: tonic::Request<super::WitnessAndBuildRequest>,
4532 ) -> Self::Future {
4533 let inner = Arc::clone(&self.0);
4534 let fut = async move {
4535 <T as ViewService>::witness_and_build(&inner, request).await
4536 };
4537 Box::pin(fut)
4538 }
4539 }
4540 let accept_compression_encodings = self.accept_compression_encodings;
4541 let send_compression_encodings = self.send_compression_encodings;
4542 let max_decoding_message_size = self.max_decoding_message_size;
4543 let max_encoding_message_size = self.max_encoding_message_size;
4544 let inner = self.inner.clone();
4545 let fut = async move {
4546 let method = WitnessAndBuildSvc(inner);
4547 let codec = tonic::codec::ProstCodec::default();
4548 let mut grpc = tonic::server::Grpc::new(codec)
4549 .apply_compression_config(
4550 accept_compression_encodings,
4551 send_compression_encodings,
4552 )
4553 .apply_max_message_size_config(
4554 max_decoding_message_size,
4555 max_encoding_message_size,
4556 );
4557 let res = grpc.server_streaming(method, req).await;
4558 Ok(res)
4559 };
4560 Box::pin(fut)
4561 }
4562 "/penumbra.view.v1.ViewService/AuthorizeAndBuild" => {
4563 #[allow(non_camel_case_types)]
4564 struct AuthorizeAndBuildSvc<T: ViewService>(pub Arc<T>);
4565 impl<
4566 T: ViewService,
4567 > tonic::server::ServerStreamingService<
4568 super::AuthorizeAndBuildRequest,
4569 > for AuthorizeAndBuildSvc<T> {
4570 type Response = super::AuthorizeAndBuildResponse;
4571 type ResponseStream = T::AuthorizeAndBuildStream;
4572 type Future = BoxFuture<
4573 tonic::Response<Self::ResponseStream>,
4574 tonic::Status,
4575 >;
4576 fn call(
4577 &mut self,
4578 request: tonic::Request<super::AuthorizeAndBuildRequest>,
4579 ) -> Self::Future {
4580 let inner = Arc::clone(&self.0);
4581 let fut = async move {
4582 <T as ViewService>::authorize_and_build(&inner, request)
4583 .await
4584 };
4585 Box::pin(fut)
4586 }
4587 }
4588 let accept_compression_encodings = self.accept_compression_encodings;
4589 let send_compression_encodings = self.send_compression_encodings;
4590 let max_decoding_message_size = self.max_decoding_message_size;
4591 let max_encoding_message_size = self.max_encoding_message_size;
4592 let inner = self.inner.clone();
4593 let fut = async move {
4594 let method = AuthorizeAndBuildSvc(inner);
4595 let codec = tonic::codec::ProstCodec::default();
4596 let mut grpc = tonic::server::Grpc::new(codec)
4597 .apply_compression_config(
4598 accept_compression_encodings,
4599 send_compression_encodings,
4600 )
4601 .apply_max_message_size_config(
4602 max_decoding_message_size,
4603 max_encoding_message_size,
4604 );
4605 let res = grpc.server_streaming(method, req).await;
4606 Ok(res)
4607 };
4608 Box::pin(fut)
4609 }
4610 "/penumbra.view.v1.ViewService/BroadcastTransaction" => {
4611 #[allow(non_camel_case_types)]
4612 struct BroadcastTransactionSvc<T: ViewService>(pub Arc<T>);
4613 impl<
4614 T: ViewService,
4615 > tonic::server::ServerStreamingService<
4616 super::BroadcastTransactionRequest,
4617 > for BroadcastTransactionSvc<T> {
4618 type Response = super::BroadcastTransactionResponse;
4619 type ResponseStream = T::BroadcastTransactionStream;
4620 type Future = BoxFuture<
4621 tonic::Response<Self::ResponseStream>,
4622 tonic::Status,
4623 >;
4624 fn call(
4625 &mut self,
4626 request: tonic::Request<super::BroadcastTransactionRequest>,
4627 ) -> Self::Future {
4628 let inner = Arc::clone(&self.0);
4629 let fut = async move {
4630 <T as ViewService>::broadcast_transaction(&inner, request)
4631 .await
4632 };
4633 Box::pin(fut)
4634 }
4635 }
4636 let accept_compression_encodings = self.accept_compression_encodings;
4637 let send_compression_encodings = self.send_compression_encodings;
4638 let max_decoding_message_size = self.max_decoding_message_size;
4639 let max_encoding_message_size = self.max_encoding_message_size;
4640 let inner = self.inner.clone();
4641 let fut = async move {
4642 let method = BroadcastTransactionSvc(inner);
4643 let codec = tonic::codec::ProstCodec::default();
4644 let mut grpc = tonic::server::Grpc::new(codec)
4645 .apply_compression_config(
4646 accept_compression_encodings,
4647 send_compression_encodings,
4648 )
4649 .apply_max_message_size_config(
4650 max_decoding_message_size,
4651 max_encoding_message_size,
4652 );
4653 let res = grpc.server_streaming(method, req).await;
4654 Ok(res)
4655 };
4656 Box::pin(fut)
4657 }
4658 "/penumbra.view.v1.ViewService/DelegationsByAddressIndex" => {
4659 #[allow(non_camel_case_types)]
4660 struct DelegationsByAddressIndexSvc<T: ViewService>(pub Arc<T>);
4661 impl<
4662 T: ViewService,
4663 > tonic::server::ServerStreamingService<
4664 super::DelegationsByAddressIndexRequest,
4665 > for DelegationsByAddressIndexSvc<T> {
4666 type Response = super::DelegationsByAddressIndexResponse;
4667 type ResponseStream = T::DelegationsByAddressIndexStream;
4668 type Future = BoxFuture<
4669 tonic::Response<Self::ResponseStream>,
4670 tonic::Status,
4671 >;
4672 fn call(
4673 &mut self,
4674 request: tonic::Request<
4675 super::DelegationsByAddressIndexRequest,
4676 >,
4677 ) -> Self::Future {
4678 let inner = Arc::clone(&self.0);
4679 let fut = async move {
4680 <T as ViewService>::delegations_by_address_index(
4681 &inner,
4682 request,
4683 )
4684 .await
4685 };
4686 Box::pin(fut)
4687 }
4688 }
4689 let accept_compression_encodings = self.accept_compression_encodings;
4690 let send_compression_encodings = self.send_compression_encodings;
4691 let max_decoding_message_size = self.max_decoding_message_size;
4692 let max_encoding_message_size = self.max_encoding_message_size;
4693 let inner = self.inner.clone();
4694 let fut = async move {
4695 let method = DelegationsByAddressIndexSvc(inner);
4696 let codec = tonic::codec::ProstCodec::default();
4697 let mut grpc = tonic::server::Grpc::new(codec)
4698 .apply_compression_config(
4699 accept_compression_encodings,
4700 send_compression_encodings,
4701 )
4702 .apply_max_message_size_config(
4703 max_decoding_message_size,
4704 max_encoding_message_size,
4705 );
4706 let res = grpc.server_streaming(method, req).await;
4707 Ok(res)
4708 };
4709 Box::pin(fut)
4710 }
4711 "/penumbra.view.v1.ViewService/UnbondingTokensByAddressIndex" => {
4712 #[allow(non_camel_case_types)]
4713 struct UnbondingTokensByAddressIndexSvc<T: ViewService>(pub Arc<T>);
4714 impl<
4715 T: ViewService,
4716 > tonic::server::ServerStreamingService<
4717 super::UnbondingTokensByAddressIndexRequest,
4718 > for UnbondingTokensByAddressIndexSvc<T> {
4719 type Response = super::UnbondingTokensByAddressIndexResponse;
4720 type ResponseStream = T::UnbondingTokensByAddressIndexStream;
4721 type Future = BoxFuture<
4722 tonic::Response<Self::ResponseStream>,
4723 tonic::Status,
4724 >;
4725 fn call(
4726 &mut self,
4727 request: tonic::Request<
4728 super::UnbondingTokensByAddressIndexRequest,
4729 >,
4730 ) -> Self::Future {
4731 let inner = Arc::clone(&self.0);
4732 let fut = async move {
4733 <T as ViewService>::unbonding_tokens_by_address_index(
4734 &inner,
4735 request,
4736 )
4737 .await
4738 };
4739 Box::pin(fut)
4740 }
4741 }
4742 let accept_compression_encodings = self.accept_compression_encodings;
4743 let send_compression_encodings = self.send_compression_encodings;
4744 let max_decoding_message_size = self.max_decoding_message_size;
4745 let max_encoding_message_size = self.max_encoding_message_size;
4746 let inner = self.inner.clone();
4747 let fut = async move {
4748 let method = UnbondingTokensByAddressIndexSvc(inner);
4749 let codec = tonic::codec::ProstCodec::default();
4750 let mut grpc = tonic::server::Grpc::new(codec)
4751 .apply_compression_config(
4752 accept_compression_encodings,
4753 send_compression_encodings,
4754 )
4755 .apply_max_message_size_config(
4756 max_decoding_message_size,
4757 max_encoding_message_size,
4758 );
4759 let res = grpc.server_streaming(method, req).await;
4760 Ok(res)
4761 };
4762 Box::pin(fut)
4763 }
4764 "/penumbra.view.v1.ViewService/Auctions" => {
4765 #[allow(non_camel_case_types)]
4766 struct AuctionsSvc<T: ViewService>(pub Arc<T>);
4767 impl<
4768 T: ViewService,
4769 > tonic::server::ServerStreamingService<super::AuctionsRequest>
4770 for AuctionsSvc<T> {
4771 type Response = super::AuctionsResponse;
4772 type ResponseStream = T::AuctionsStream;
4773 type Future = BoxFuture<
4774 tonic::Response<Self::ResponseStream>,
4775 tonic::Status,
4776 >;
4777 fn call(
4778 &mut self,
4779 request: tonic::Request<super::AuctionsRequest>,
4780 ) -> Self::Future {
4781 let inner = Arc::clone(&self.0);
4782 let fut = async move {
4783 <T as ViewService>::auctions(&inner, request).await
4784 };
4785 Box::pin(fut)
4786 }
4787 }
4788 let accept_compression_encodings = self.accept_compression_encodings;
4789 let send_compression_encodings = self.send_compression_encodings;
4790 let max_decoding_message_size = self.max_decoding_message_size;
4791 let max_encoding_message_size = self.max_encoding_message_size;
4792 let inner = self.inner.clone();
4793 let fut = async move {
4794 let method = AuctionsSvc(inner);
4795 let codec = tonic::codec::ProstCodec::default();
4796 let mut grpc = tonic::server::Grpc::new(codec)
4797 .apply_compression_config(
4798 accept_compression_encodings,
4799 send_compression_encodings,
4800 )
4801 .apply_max_message_size_config(
4802 max_decoding_message_size,
4803 max_encoding_message_size,
4804 );
4805 let res = grpc.server_streaming(method, req).await;
4806 Ok(res)
4807 };
4808 Box::pin(fut)
4809 }
4810 "/penumbra.view.v1.ViewService/LatestSwaps" => {
4811 #[allow(non_camel_case_types)]
4812 struct LatestSwapsSvc<T: ViewService>(pub Arc<T>);
4813 impl<
4814 T: ViewService,
4815 > tonic::server::ServerStreamingService<super::LatestSwapsRequest>
4816 for LatestSwapsSvc<T> {
4817 type Response = super::LatestSwapsResponse;
4818 type ResponseStream = T::LatestSwapsStream;
4819 type Future = BoxFuture<
4820 tonic::Response<Self::ResponseStream>,
4821 tonic::Status,
4822 >;
4823 fn call(
4824 &mut self,
4825 request: tonic::Request<super::LatestSwapsRequest>,
4826 ) -> Self::Future {
4827 let inner = Arc::clone(&self.0);
4828 let fut = async move {
4829 <T as ViewService>::latest_swaps(&inner, request).await
4830 };
4831 Box::pin(fut)
4832 }
4833 }
4834 let accept_compression_encodings = self.accept_compression_encodings;
4835 let send_compression_encodings = self.send_compression_encodings;
4836 let max_decoding_message_size = self.max_decoding_message_size;
4837 let max_encoding_message_size = self.max_encoding_message_size;
4838 let inner = self.inner.clone();
4839 let fut = async move {
4840 let method = LatestSwapsSvc(inner);
4841 let codec = tonic::codec::ProstCodec::default();
4842 let mut grpc = tonic::server::Grpc::new(codec)
4843 .apply_compression_config(
4844 accept_compression_encodings,
4845 send_compression_encodings,
4846 )
4847 .apply_max_message_size_config(
4848 max_decoding_message_size,
4849 max_encoding_message_size,
4850 );
4851 let res = grpc.server_streaming(method, req).await;
4852 Ok(res)
4853 };
4854 Box::pin(fut)
4855 }
4856 _ => {
4857 Box::pin(async move {
4858 let mut response = http::Response::new(empty_body());
4859 let headers = response.headers_mut();
4860 headers
4861 .insert(
4862 tonic::Status::GRPC_STATUS,
4863 (tonic::Code::Unimplemented as i32).into(),
4864 );
4865 headers
4866 .insert(
4867 http::header::CONTENT_TYPE,
4868 tonic::metadata::GRPC_CONTENT_TYPE,
4869 );
4870 Ok(response)
4871 })
4872 }
4873 }
4874 }
4875 }
4876 impl<T> Clone for ViewServiceServer<T> {
4877 fn clone(&self) -> Self {
4878 let inner = self.inner.clone();
4879 Self {
4880 inner,
4881 accept_compression_encodings: self.accept_compression_encodings,
4882 send_compression_encodings: self.send_compression_encodings,
4883 max_decoding_message_size: self.max_decoding_message_size,
4884 max_encoding_message_size: self.max_encoding_message_size,
4885 }
4886 }
4887 }
4888 pub const SERVICE_NAME: &str = "penumbra.view.v1.ViewService";
4890 impl<T> tonic::server::NamedService for ViewServiceServer<T> {
4891 const NAME: &'static str = SERVICE_NAME;
4892 }
4893}