1#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct Transaction {
5 #[prost(message, optional, tag = "1")]
6 pub body: ::core::option::Option<TransactionBody>,
7 #[prost(message, optional, tag = "2")]
9 pub binding_sig: ::core::option::Option<
10 super::super::super::crypto::decaf377_rdsa::v1::BindingSignature,
11 >,
12 #[prost(message, optional, tag = "3")]
15 pub anchor: ::core::option::Option<super::super::super::crypto::tct::v1::MerkleRoot>,
16}
17impl ::prost::Name for Transaction {
18 const NAME: &'static str = "Transaction";
19 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
20 fn full_name() -> ::prost::alloc::string::String {
21 "penumbra.core.transaction.v1.Transaction".into()
22 }
23 fn type_url() -> ::prost::alloc::string::String {
24 "/penumbra.core.transaction.v1.Transaction".into()
25 }
26}
27#[derive(Clone, PartialEq, ::prost::Message)]
29pub struct TransactionBody {
30 #[prost(message, repeated, tag = "1")]
32 pub actions: ::prost::alloc::vec::Vec<Action>,
33 #[prost(message, optional, tag = "2")]
35 pub transaction_parameters: ::core::option::Option<TransactionParameters>,
36 #[prost(message, optional, tag = "4")]
38 pub detection_data: ::core::option::Option<DetectionData>,
39 #[prost(message, optional, tag = "5")]
43 pub memo: ::core::option::Option<MemoCiphertext>,
44}
45impl ::prost::Name for TransactionBody {
46 const NAME: &'static str = "TransactionBody";
47 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
48 fn full_name() -> ::prost::alloc::string::String {
49 "penumbra.core.transaction.v1.TransactionBody".into()
50 }
51 fn type_url() -> ::prost::alloc::string::String {
52 "/penumbra.core.transaction.v1.TransactionBody".into()
53 }
54}
55#[derive(Clone, PartialEq, ::prost::Message)]
57pub struct TransactionParameters {
58 #[prost(uint64, tag = "1")]
62 pub expiry_height: u64,
63 #[prost(string, tag = "2")]
66 pub chain_id: ::prost::alloc::string::String,
67 #[prost(message, optional, tag = "3")]
69 pub fee: ::core::option::Option<super::super::component::fee::v1::Fee>,
70}
71impl ::prost::Name for TransactionParameters {
72 const NAME: &'static str = "TransactionParameters";
73 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
74 fn full_name() -> ::prost::alloc::string::String {
75 "penumbra.core.transaction.v1.TransactionParameters".into()
76 }
77 fn type_url() -> ::prost::alloc::string::String {
78 "/penumbra.core.transaction.v1.TransactionParameters".into()
79 }
80}
81#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct TransactionSummary {
84 #[prost(message, repeated, tag = "1")]
85 pub effects: ::prost::alloc::vec::Vec<transaction_summary::Effects>,
86}
87pub mod transaction_summary {
89 #[derive(Clone, PartialEq, ::prost::Message)]
91 pub struct Effects {
92 #[prost(message, optional, tag = "1")]
93 pub address: ::core::option::Option<super::super::super::keys::v1::AddressView>,
94 #[prost(message, optional, tag = "2")]
95 pub balance: ::core::option::Option<super::super::super::asset::v1::Balance>,
96 }
97 impl ::prost::Name for Effects {
98 const NAME: &'static str = "Effects";
99 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
100 fn full_name() -> ::prost::alloc::string::String {
101 "penumbra.core.transaction.v1.TransactionSummary.Effects".into()
102 }
103 fn type_url() -> ::prost::alloc::string::String {
104 "/penumbra.core.transaction.v1.TransactionSummary.Effects".into()
105 }
106 }
107}
108impl ::prost::Name for TransactionSummary {
109 const NAME: &'static str = "TransactionSummary";
110 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
111 fn full_name() -> ::prost::alloc::string::String {
112 "penumbra.core.transaction.v1.TransactionSummary".into()
113 }
114 fn type_url() -> ::prost::alloc::string::String {
115 "/penumbra.core.transaction.v1.TransactionSummary".into()
116 }
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
120pub struct DetectionData {
121 #[prost(message, repeated, tag = "4")]
123 pub fmd_clues: ::prost::alloc::vec::Vec<
124 super::super::super::crypto::decaf377_fmd::v1::Clue,
125 >,
126}
127impl ::prost::Name for DetectionData {
128 const NAME: &'static str = "DetectionData";
129 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
130 fn full_name() -> ::prost::alloc::string::String {
131 "penumbra.core.transaction.v1.DetectionData".into()
132 }
133 fn type_url() -> ::prost::alloc::string::String {
134 "/penumbra.core.transaction.v1.DetectionData".into()
135 }
136}
137#[derive(Clone, PartialEq, ::prost::Message)]
139pub struct Action {
140 #[prost(
141 oneof = "action::Action",
142 tags = "1, 2, 3, 4, 16, 17, 18, 19, 20, 21, 22, 30, 31, 32, 34, 40, 41, 42, 50, 51, 52, 53, 54, 55, 200"
143 )]
144 pub action: ::core::option::Option<action::Action>,
145}
146pub mod action {
148 #[derive(Clone, PartialEq, ::prost::Oneof)]
149 pub enum Action {
150 #[prost(message, tag = "1")]
152 Spend(super::super::super::component::shielded_pool::v1::Spend),
153 #[prost(message, tag = "2")]
154 Output(super::super::super::component::shielded_pool::v1::Output),
155 #[prost(message, tag = "3")]
156 Swap(super::super::super::component::dex::v1::Swap),
157 #[prost(message, tag = "4")]
158 SwapClaim(super::super::super::component::dex::v1::SwapClaim),
159 #[prost(message, tag = "16")]
160 ValidatorDefinition(
161 super::super::super::component::stake::v1::ValidatorDefinition,
162 ),
163 #[prost(message, tag = "17")]
164 IbcRelayAction(super::super::super::component::ibc::v1::IbcRelay),
165 #[prost(message, tag = "18")]
167 ProposalSubmit(super::super::super::component::governance::v1::ProposalSubmit),
168 #[prost(message, tag = "19")]
169 ProposalWithdraw(
170 super::super::super::component::governance::v1::ProposalWithdraw,
171 ),
172 #[prost(message, tag = "20")]
173 ValidatorVote(super::super::super::component::governance::v1::ValidatorVote),
174 #[prost(message, tag = "21")]
175 DelegatorVote(super::super::super::component::governance::v1::DelegatorVote),
176 #[prost(message, tag = "22")]
177 ProposalDepositClaim(
178 super::super::super::component::governance::v1::ProposalDepositClaim,
179 ),
180 #[prost(message, tag = "30")]
182 PositionOpen(super::super::super::component::dex::v1::PositionOpen),
183 #[prost(message, tag = "31")]
184 PositionClose(super::super::super::component::dex::v1::PositionClose),
185 #[prost(message, tag = "32")]
186 PositionWithdraw(super::super::super::component::dex::v1::PositionWithdraw),
187 #[prost(message, tag = "34")]
188 PositionRewardClaim(
189 super::super::super::component::dex::v1::PositionRewardClaim,
190 ),
191 #[prost(message, tag = "40")]
193 Delegate(super::super::super::component::stake::v1::Delegate),
194 #[prost(message, tag = "41")]
195 Undelegate(super::super::super::component::stake::v1::Undelegate),
196 #[prost(message, tag = "42")]
197 UndelegateClaim(super::super::super::component::stake::v1::UndelegateClaim),
198 #[prost(message, tag = "50")]
200 CommunityPoolSpend(
201 super::super::super::component::governance::v1::CommunityPoolSpend,
202 ),
203 #[prost(message, tag = "51")]
204 CommunityPoolOutput(
205 super::super::super::component::governance::v1::CommunityPoolOutput,
206 ),
207 #[prost(message, tag = "52")]
208 CommunityPoolDeposit(
209 super::super::super::component::governance::v1::CommunityPoolDeposit,
210 ),
211 #[prost(message, tag = "53")]
213 ActionDutchAuctionSchedule(
214 super::super::super::component::auction::v1::ActionDutchAuctionSchedule,
215 ),
216 #[prost(message, tag = "54")]
217 ActionDutchAuctionEnd(
218 super::super::super::component::auction::v1::ActionDutchAuctionEnd,
219 ),
220 #[prost(message, tag = "55")]
221 ActionDutchAuctionWithdraw(
222 super::super::super::component::auction::v1::ActionDutchAuctionWithdraw,
223 ),
224 #[prost(message, tag = "200")]
225 Ics20Withdrawal(super::super::super::component::ibc::v1::Ics20Withdrawal),
226 }
227}
228impl ::prost::Name for Action {
229 const NAME: &'static str = "Action";
230 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
231 fn full_name() -> ::prost::alloc::string::String {
232 "penumbra.core.transaction.v1.Action".into()
233 }
234 fn type_url() -> ::prost::alloc::string::String {
235 "/penumbra.core.transaction.v1.Action".into()
236 }
237}
238#[derive(Clone, PartialEq, ::prost::Message)]
241pub struct TransactionPerspective {
242 #[prost(message, repeated, tag = "1")]
243 pub payload_keys: ::prost::alloc::vec::Vec<PayloadKeyWithCommitment>,
244 #[prost(message, repeated, tag = "2")]
245 pub spend_nullifiers: ::prost::alloc::vec::Vec<NullifierWithNote>,
246 #[prost(message, repeated, tag = "3")]
249 pub advice_notes: ::prost::alloc::vec::Vec<
250 super::super::component::shielded_pool::v1::Note,
251 >,
252 #[prost(message, repeated, tag = "4")]
254 pub address_views: ::prost::alloc::vec::Vec<super::super::keys::v1::AddressView>,
255 #[prost(message, repeated, tag = "5")]
257 pub denoms: ::prost::alloc::vec::Vec<super::super::asset::v1::Metadata>,
258 #[prost(message, optional, tag = "6")]
260 pub transaction_id: ::core::option::Option<super::super::txhash::v1::TransactionId>,
261 #[prost(message, repeated, tag = "20")]
263 pub prices: ::prost::alloc::vec::Vec<super::super::asset::v1::EstimatedPrice>,
264 #[prost(message, repeated, tag = "30")]
266 pub extended_metadata: ::prost::alloc::vec::Vec<
267 transaction_perspective::ExtendedMetadataById,
268 >,
269 #[prost(message, repeated, tag = "40")]
270 pub creation_transaction_ids_by_nullifier: ::prost::alloc::vec::Vec<
271 transaction_perspective::CreationTransactionIdByNullifier,
272 >,
273 #[prost(message, repeated, tag = "50")]
274 pub nullification_transaction_ids_by_commitment: ::prost::alloc::vec::Vec<
275 transaction_perspective::NullificationTransactionIdByCommitment,
276 >,
277 #[prost(message, repeated, tag = "60")]
281 pub batch_swap_output_data: ::prost::alloc::vec::Vec<
282 super::super::component::dex::v1::BatchSwapOutputData,
283 >,
284}
285pub mod transaction_perspective {
287 #[derive(Clone, PartialEq, ::prost::Message)]
288 pub struct ExtendedMetadataById {
289 #[prost(message, optional, tag = "1")]
290 pub asset_id: ::core::option::Option<super::super::super::asset::v1::AssetId>,
291 #[prost(message, optional, tag = "2")]
292 pub extended_metadata: ::core::option::Option<::pbjson_types::Any>,
293 }
294 impl ::prost::Name for ExtendedMetadataById {
295 const NAME: &'static str = "ExtendedMetadataById";
296 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
297 fn full_name() -> ::prost::alloc::string::String {
298 "penumbra.core.transaction.v1.TransactionPerspective.ExtendedMetadataById"
299 .into()
300 }
301 fn type_url() -> ::prost::alloc::string::String {
302 "/penumbra.core.transaction.v1.TransactionPerspective.ExtendedMetadataById"
303 .into()
304 }
305 }
306 #[derive(Clone, PartialEq, ::prost::Message)]
312 pub struct CreationTransactionIdByNullifier {
313 #[prost(message, optional, tag = "1")]
314 pub nullifier: ::core::option::Option<
315 super::super::super::component::sct::v1::Nullifier,
316 >,
317 #[prost(message, optional, tag = "2")]
318 pub transaction_id: ::core::option::Option<
319 super::super::super::txhash::v1::TransactionId,
320 >,
321 }
322 impl ::prost::Name for CreationTransactionIdByNullifier {
323 const NAME: &'static str = "CreationTransactionIdByNullifier";
324 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
325 fn full_name() -> ::prost::alloc::string::String {
326 "penumbra.core.transaction.v1.TransactionPerspective.CreationTransactionIdByNullifier"
327 .into()
328 }
329 fn type_url() -> ::prost::alloc::string::String {
330 "/penumbra.core.transaction.v1.TransactionPerspective.CreationTransactionIdByNullifier"
331 .into()
332 }
333 }
334 #[derive(Clone, PartialEq, ::prost::Message)]
338 pub struct NullificationTransactionIdByCommitment {
339 #[prost(message, optional, tag = "1")]
340 pub commitment: ::core::option::Option<
341 super::super::super::super::crypto::tct::v1::StateCommitment,
342 >,
343 #[prost(message, optional, tag = "2")]
344 pub transaction_id: ::core::option::Option<
345 super::super::super::txhash::v1::TransactionId,
346 >,
347 }
348 impl ::prost::Name for NullificationTransactionIdByCommitment {
349 const NAME: &'static str = "NullificationTransactionIdByCommitment";
350 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
351 fn full_name() -> ::prost::alloc::string::String {
352 "penumbra.core.transaction.v1.TransactionPerspective.NullificationTransactionIdByCommitment"
353 .into()
354 }
355 fn type_url() -> ::prost::alloc::string::String {
356 "/penumbra.core.transaction.v1.TransactionPerspective.NullificationTransactionIdByCommitment"
357 .into()
358 }
359 }
360}
361impl ::prost::Name for TransactionPerspective {
362 const NAME: &'static str = "TransactionPerspective";
363 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
364 fn full_name() -> ::prost::alloc::string::String {
365 "penumbra.core.transaction.v1.TransactionPerspective".into()
366 }
367 fn type_url() -> ::prost::alloc::string::String {
368 "/penumbra.core.transaction.v1.TransactionPerspective".into()
369 }
370}
371#[derive(Clone, PartialEq, ::prost::Message)]
372pub struct PayloadKeyWithCommitment {
373 #[prost(message, optional, tag = "1")]
374 pub payload_key: ::core::option::Option<super::super::keys::v1::PayloadKey>,
375 #[prost(message, optional, tag = "2")]
376 pub commitment: ::core::option::Option<
377 super::super::super::crypto::tct::v1::StateCommitment,
378 >,
379}
380impl ::prost::Name for PayloadKeyWithCommitment {
381 const NAME: &'static str = "PayloadKeyWithCommitment";
382 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
383 fn full_name() -> ::prost::alloc::string::String {
384 "penumbra.core.transaction.v1.PayloadKeyWithCommitment".into()
385 }
386 fn type_url() -> ::prost::alloc::string::String {
387 "/penumbra.core.transaction.v1.PayloadKeyWithCommitment".into()
388 }
389}
390#[derive(Clone, PartialEq, ::prost::Message)]
391pub struct NullifierWithNote {
392 #[prost(message, optional, tag = "1")]
393 pub nullifier: ::core::option::Option<super::super::component::sct::v1::Nullifier>,
394 #[prost(message, optional, tag = "2")]
395 pub note: ::core::option::Option<super::super::component::shielded_pool::v1::Note>,
396}
397impl ::prost::Name for NullifierWithNote {
398 const NAME: &'static str = "NullifierWithNote";
399 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
400 fn full_name() -> ::prost::alloc::string::String {
401 "penumbra.core.transaction.v1.NullifierWithNote".into()
402 }
403 fn type_url() -> ::prost::alloc::string::String {
404 "/penumbra.core.transaction.v1.NullifierWithNote".into()
405 }
406}
407#[derive(Clone, PartialEq, ::prost::Message)]
409pub struct TransactionView {
410 #[prost(message, optional, tag = "1")]
412 pub body_view: ::core::option::Option<TransactionBodyView>,
413 #[prost(message, optional, tag = "2")]
415 pub binding_sig: ::core::option::Option<
416 super::super::super::crypto::decaf377_rdsa::v1::BindingSignature,
417 >,
418 #[prost(message, optional, tag = "3")]
421 pub anchor: ::core::option::Option<super::super::super::crypto::tct::v1::MerkleRoot>,
422}
423impl ::prost::Name for TransactionView {
424 const NAME: &'static str = "TransactionView";
425 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
426 fn full_name() -> ::prost::alloc::string::String {
427 "penumbra.core.transaction.v1.TransactionView".into()
428 }
429 fn type_url() -> ::prost::alloc::string::String {
430 "/penumbra.core.transaction.v1.TransactionView".into()
431 }
432}
433#[derive(Clone, PartialEq, ::prost::Message)]
434pub struct TransactionBodyView {
435 #[prost(message, repeated, tag = "1")]
437 pub action_views: ::prost::alloc::vec::Vec<ActionView>,
438 #[prost(message, optional, tag = "2")]
440 pub transaction_parameters: ::core::option::Option<TransactionParameters>,
441 #[prost(message, optional, tag = "4")]
444 pub detection_data: ::core::option::Option<DetectionData>,
445 #[prost(message, optional, tag = "5")]
448 pub memo_view: ::core::option::Option<MemoView>,
449}
450impl ::prost::Name for TransactionBodyView {
451 const NAME: &'static str = "TransactionBodyView";
452 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
453 fn full_name() -> ::prost::alloc::string::String {
454 "penumbra.core.transaction.v1.TransactionBodyView".into()
455 }
456 fn type_url() -> ::prost::alloc::string::String {
457 "/penumbra.core.transaction.v1.TransactionBodyView".into()
458 }
459}
460#[derive(Clone, PartialEq, ::prost::Message)]
462pub struct ActionView {
463 #[prost(
464 oneof = "action_view::ActionView",
465 tags = "1, 2, 3, 4, 21, 16, 17, 18, 19, 20, 22, 30, 31, 32, 34, 41, 42, 50, 51, 52, 53, 54, 55, 43, 200"
466 )]
467 pub action_view: ::core::option::Option<action_view::ActionView>,
468}
469pub mod action_view {
471 #[derive(Clone, PartialEq, ::prost::Oneof)]
472 pub enum ActionView {
473 #[prost(message, tag = "1")]
475 Spend(super::super::super::component::shielded_pool::v1::SpendView),
476 #[prost(message, tag = "2")]
477 Output(super::super::super::component::shielded_pool::v1::OutputView),
478 #[prost(message, tag = "3")]
479 Swap(super::super::super::component::dex::v1::SwapView),
480 #[prost(message, tag = "4")]
481 SwapClaim(super::super::super::component::dex::v1::SwapClaimView),
482 #[prost(message, tag = "21")]
483 DelegatorVote(super::super::super::component::governance::v1::DelegatorVoteView),
484 #[prost(message, tag = "16")]
486 ValidatorDefinition(
487 super::super::super::component::stake::v1::ValidatorDefinition,
488 ),
489 #[prost(message, tag = "17")]
490 IbcRelayAction(super::super::super::component::ibc::v1::IbcRelay),
491 #[prost(message, tag = "18")]
493 ProposalSubmit(super::super::super::component::governance::v1::ProposalSubmit),
494 #[prost(message, tag = "19")]
495 ProposalWithdraw(
496 super::super::super::component::governance::v1::ProposalWithdraw,
497 ),
498 #[prost(message, tag = "20")]
499 ValidatorVote(super::super::super::component::governance::v1::ValidatorVote),
500 #[prost(message, tag = "22")]
501 ProposalDepositClaim(
502 super::super::super::component::governance::v1::ProposalDepositClaim,
503 ),
504 #[prost(message, tag = "30")]
505 PositionOpen(super::super::super::component::dex::v1::PositionOpen),
506 #[prost(message, tag = "31")]
507 PositionClose(super::super::super::component::dex::v1::PositionClose),
508 #[prost(message, tag = "32")]
509 PositionWithdraw(super::super::super::component::dex::v1::PositionWithdraw),
510 #[prost(message, tag = "34")]
511 PositionRewardClaim(
512 super::super::super::component::dex::v1::PositionRewardClaim,
513 ),
514 #[prost(message, tag = "41")]
515 Delegate(super::super::super::component::stake::v1::Delegate),
516 #[prost(message, tag = "42")]
517 Undelegate(super::super::super::component::stake::v1::Undelegate),
518 #[prost(message, tag = "50")]
520 CommunityPoolSpend(
521 super::super::super::component::governance::v1::CommunityPoolSpend,
522 ),
523 #[prost(message, tag = "51")]
524 CommunityPoolOutput(
525 super::super::super::component::governance::v1::CommunityPoolOutput,
526 ),
527 #[prost(message, tag = "52")]
528 CommunityPoolDeposit(
529 super::super::super::component::governance::v1::CommunityPoolDeposit,
530 ),
531 #[prost(message, tag = "53")]
533 ActionDutchAuctionSchedule(
534 super::super::super::component::auction::v1::ActionDutchAuctionScheduleView,
535 ),
536 #[prost(message, tag = "54")]
537 ActionDutchAuctionEnd(
538 super::super::super::component::auction::v1::ActionDutchAuctionEnd,
539 ),
540 #[prost(message, tag = "55")]
541 ActionDutchAuctionWithdraw(
542 super::super::super::component::auction::v1::ActionDutchAuctionWithdrawView,
543 ),
544 #[prost(message, tag = "43")]
548 UndelegateClaim(super::super::super::component::stake::v1::UndelegateClaim),
549 #[prost(message, tag = "200")]
550 Ics20Withdrawal(super::super::super::component::ibc::v1::Ics20Withdrawal),
551 }
552}
553impl ::prost::Name for ActionView {
554 const NAME: &'static str = "ActionView";
555 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
556 fn full_name() -> ::prost::alloc::string::String {
557 "penumbra.core.transaction.v1.ActionView".into()
558 }
559 fn type_url() -> ::prost::alloc::string::String {
560 "/penumbra.core.transaction.v1.ActionView".into()
561 }
562}
563#[derive(Clone, PartialEq, ::prost::Message)]
565pub struct AuthorizationData {
566 #[prost(message, optional, tag = "1")]
568 pub effect_hash: ::core::option::Option<super::super::txhash::v1::EffectHash>,
569 #[prost(message, repeated, tag = "2")]
572 pub spend_auths: ::prost::alloc::vec::Vec<
573 super::super::super::crypto::decaf377_rdsa::v1::SpendAuthSignature,
574 >,
575 #[prost(message, repeated, tag = "3")]
578 pub delegator_vote_auths: ::prost::alloc::vec::Vec<
579 super::super::super::crypto::decaf377_rdsa::v1::SpendAuthSignature,
580 >,
581}
582impl ::prost::Name for AuthorizationData {
583 const NAME: &'static str = "AuthorizationData";
584 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
585 fn full_name() -> ::prost::alloc::string::String {
586 "penumbra.core.transaction.v1.AuthorizationData".into()
587 }
588 fn type_url() -> ::prost::alloc::string::String {
589 "/penumbra.core.transaction.v1.AuthorizationData".into()
590 }
591}
592#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct WitnessData {
595 #[prost(message, optional, tag = "1")]
597 pub anchor: ::core::option::Option<super::super::super::crypto::tct::v1::MerkleRoot>,
598 #[prost(message, repeated, tag = "2")]
601 pub state_commitment_proofs: ::prost::alloc::vec::Vec<
602 super::super::super::crypto::tct::v1::StateCommitmentProof,
603 >,
604}
605impl ::prost::Name for WitnessData {
606 const NAME: &'static str = "WitnessData";
607 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
608 fn full_name() -> ::prost::alloc::string::String {
609 "penumbra.core.transaction.v1.WitnessData".into()
610 }
611 fn type_url() -> ::prost::alloc::string::String {
612 "/penumbra.core.transaction.v1.WitnessData".into()
613 }
614}
615#[derive(Clone, PartialEq, ::prost::Message)]
621pub struct TransactionPlan {
622 #[prost(message, repeated, tag = "1")]
624 pub actions: ::prost::alloc::vec::Vec<ActionPlan>,
625 #[prost(message, optional, tag = "2")]
627 pub transaction_parameters: ::core::option::Option<TransactionParameters>,
628 #[prost(message, optional, tag = "4")]
630 pub detection_data: ::core::option::Option<DetectionDataPlan>,
631 #[prost(message, optional, tag = "5")]
633 pub memo: ::core::option::Option<MemoPlan>,
634}
635impl ::prost::Name for TransactionPlan {
636 const NAME: &'static str = "TransactionPlan";
637 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
638 fn full_name() -> ::prost::alloc::string::String {
639 "penumbra.core.transaction.v1.TransactionPlan".into()
640 }
641 fn type_url() -> ::prost::alloc::string::String {
642 "/penumbra.core.transaction.v1.TransactionPlan".into()
643 }
644}
645#[derive(Clone, PartialEq, ::prost::Message)]
646pub struct DetectionDataPlan {
647 #[prost(message, repeated, tag = "5")]
648 pub clue_plans: ::prost::alloc::vec::Vec<CluePlan>,
649}
650impl ::prost::Name for DetectionDataPlan {
651 const NAME: &'static str = "DetectionDataPlan";
652 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
653 fn full_name() -> ::prost::alloc::string::String {
654 "penumbra.core.transaction.v1.DetectionDataPlan".into()
655 }
656 fn type_url() -> ::prost::alloc::string::String {
657 "/penumbra.core.transaction.v1.DetectionDataPlan".into()
658 }
659}
660#[derive(Clone, PartialEq, ::prost::Message)]
665pub struct ActionPlan {
666 #[prost(
667 oneof = "action_plan::Action",
668 tags = "1, 2, 3, 4, 16, 17, 18, 19, 20, 21, 22, 200, 30, 31, 32, 34, 40, 41, 42, 50, 51, 52, 53, 54, 55"
669 )]
670 pub action: ::core::option::Option<action_plan::Action>,
671}
672pub mod action_plan {
674 #[derive(Clone, PartialEq, ::prost::Oneof)]
675 pub enum Action {
676 #[prost(message, tag = "1")]
677 Spend(super::super::super::component::shielded_pool::v1::SpendPlan),
678 #[prost(message, tag = "2")]
679 Output(super::super::super::component::shielded_pool::v1::OutputPlan),
680 #[prost(message, tag = "3")]
681 Swap(super::super::super::component::dex::v1::SwapPlan),
682 #[prost(message, tag = "4")]
683 SwapClaim(super::super::super::component::dex::v1::SwapClaimPlan),
684 #[prost(message, tag = "16")]
686 ValidatorDefinition(
687 super::super::super::component::stake::v1::ValidatorDefinition,
688 ),
689 #[prost(message, tag = "17")]
691 IbcRelayAction(super::super::super::component::ibc::v1::IbcRelay),
692 #[prost(message, tag = "18")]
694 ProposalSubmit(super::super::super::component::governance::v1::ProposalSubmit),
695 #[prost(message, tag = "19")]
696 ProposalWithdraw(
697 super::super::super::component::governance::v1::ProposalWithdraw,
698 ),
699 #[prost(message, tag = "20")]
700 ValidatorVote(super::super::super::component::governance::v1::ValidatorVote),
701 #[prost(message, tag = "21")]
702 DelegatorVote(super::super::super::component::governance::v1::DelegatorVotePlan),
703 #[prost(message, tag = "22")]
704 ProposalDepositClaim(
705 super::super::super::component::governance::v1::ProposalDepositClaim,
706 ),
707 #[prost(message, tag = "200")]
708 Ics20Withdrawal(super::super::super::component::ibc::v1::Ics20Withdrawal),
709 #[prost(message, tag = "30")]
710 PositionOpen(super::super::super::component::dex::v1::PositionOpen),
711 #[prost(message, tag = "31")]
712 PositionClose(super::super::super::component::dex::v1::PositionClose),
713 #[prost(message, tag = "32")]
715 PositionWithdraw(super::super::super::component::dex::v1::PositionWithdrawPlan),
716 #[prost(message, tag = "34")]
717 PositionRewardClaim(
718 super::super::super::component::dex::v1::PositionRewardClaimPlan,
719 ),
720 #[prost(message, tag = "40")]
723 Delegate(super::super::super::component::stake::v1::Delegate),
724 #[prost(message, tag = "41")]
727 Undelegate(super::super::super::component::stake::v1::Undelegate),
728 #[prost(message, tag = "42")]
729 UndelegateClaim(super::super::super::component::stake::v1::UndelegateClaimPlan),
730 #[prost(message, tag = "50")]
732 CommunityPoolSpend(
733 super::super::super::component::governance::v1::CommunityPoolSpend,
734 ),
735 #[prost(message, tag = "51")]
736 CommunityPoolOutput(
737 super::super::super::component::governance::v1::CommunityPoolOutput,
738 ),
739 #[prost(message, tag = "52")]
740 CommunityPoolDeposit(
741 super::super::super::component::governance::v1::CommunityPoolDeposit,
742 ),
743 #[prost(message, tag = "53")]
745 ActionDutchAuctionSchedule(
746 super::super::super::component::auction::v1::ActionDutchAuctionSchedule,
747 ),
748 #[prost(message, tag = "54")]
749 ActionDutchAuctionEnd(
750 super::super::super::component::auction::v1::ActionDutchAuctionEnd,
751 ),
752 #[prost(message, tag = "55")]
753 ActionDutchAuctionWithdraw(
754 super::super::super::component::auction::v1::ActionDutchAuctionWithdrawPlan,
755 ),
756 }
757}
758impl ::prost::Name for ActionPlan {
759 const NAME: &'static str = "ActionPlan";
760 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
761 fn full_name() -> ::prost::alloc::string::String {
762 "penumbra.core.transaction.v1.ActionPlan".into()
763 }
764 fn type_url() -> ::prost::alloc::string::String {
765 "/penumbra.core.transaction.v1.ActionPlan".into()
766 }
767}
768#[derive(Clone, PartialEq, ::prost::Message)]
770pub struct CluePlan {
771 #[prost(message, optional, tag = "1")]
773 pub address: ::core::option::Option<super::super::keys::v1::Address>,
774 #[prost(bytes = "vec", tag = "2")]
776 pub rseed: ::prost::alloc::vec::Vec<u8>,
777 #[prost(uint64, tag = "3")]
779 pub precision_bits: u64,
780}
781impl ::prost::Name for CluePlan {
782 const NAME: &'static str = "CluePlan";
783 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
784 fn full_name() -> ::prost::alloc::string::String {
785 "penumbra.core.transaction.v1.CluePlan".into()
786 }
787 fn type_url() -> ::prost::alloc::string::String {
788 "/penumbra.core.transaction.v1.CluePlan".into()
789 }
790}
791#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct MemoPlan {
794 #[prost(message, optional, tag = "1")]
796 pub plaintext: ::core::option::Option<MemoPlaintext>,
797 #[prost(bytes = "vec", tag = "2")]
799 pub key: ::prost::alloc::vec::Vec<u8>,
800}
801impl ::prost::Name for MemoPlan {
802 const NAME: &'static str = "MemoPlan";
803 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
804 fn full_name() -> ::prost::alloc::string::String {
805 "penumbra.core.transaction.v1.MemoPlan".into()
806 }
807 fn type_url() -> ::prost::alloc::string::String {
808 "/penumbra.core.transaction.v1.MemoPlan".into()
809 }
810}
811#[derive(Clone, PartialEq, ::prost::Message)]
813pub struct MemoCiphertext {
814 #[prost(bytes = "vec", tag = "1")]
816 pub inner: ::prost::alloc::vec::Vec<u8>,
817}
818impl ::prost::Name for MemoCiphertext {
819 const NAME: &'static str = "MemoCiphertext";
820 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
821 fn full_name() -> ::prost::alloc::string::String {
822 "penumbra.core.transaction.v1.MemoCiphertext".into()
823 }
824 fn type_url() -> ::prost::alloc::string::String {
825 "/penumbra.core.transaction.v1.MemoCiphertext".into()
826 }
827}
828#[derive(Clone, PartialEq, ::prost::Message)]
830pub struct MemoPlaintext {
831 #[prost(message, optional, tag = "1")]
836 pub return_address: ::core::option::Option<super::super::keys::v1::Address>,
837 #[prost(string, tag = "2")]
839 pub text: ::prost::alloc::string::String,
840}
841impl ::prost::Name for MemoPlaintext {
842 const NAME: &'static str = "MemoPlaintext";
843 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
844 fn full_name() -> ::prost::alloc::string::String {
845 "penumbra.core.transaction.v1.MemoPlaintext".into()
846 }
847 fn type_url() -> ::prost::alloc::string::String {
848 "/penumbra.core.transaction.v1.MemoPlaintext".into()
849 }
850}
851#[derive(Clone, PartialEq, ::prost::Message)]
852pub struct MemoPlaintextView {
853 #[prost(message, optional, tag = "1")]
854 pub return_address: ::core::option::Option<super::super::keys::v1::AddressView>,
855 #[prost(string, tag = "2")]
856 pub text: ::prost::alloc::string::String,
857}
858impl ::prost::Name for MemoPlaintextView {
859 const NAME: &'static str = "MemoPlaintextView";
860 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
861 fn full_name() -> ::prost::alloc::string::String {
862 "penumbra.core.transaction.v1.MemoPlaintextView".into()
863 }
864 fn type_url() -> ::prost::alloc::string::String {
865 "/penumbra.core.transaction.v1.MemoPlaintextView".into()
866 }
867}
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct MemoView {
870 #[prost(oneof = "memo_view::MemoView", tags = "1, 2")]
871 pub memo_view: ::core::option::Option<memo_view::MemoView>,
872}
873pub mod memo_view {
875 #[derive(Clone, PartialEq, ::prost::Message)]
876 pub struct Visible {
877 #[prost(message, optional, tag = "1")]
878 pub ciphertext: ::core::option::Option<super::MemoCiphertext>,
879 #[prost(message, optional, tag = "2")]
880 pub plaintext: ::core::option::Option<super::MemoPlaintextView>,
881 }
882 impl ::prost::Name for Visible {
883 const NAME: &'static str = "Visible";
884 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
885 fn full_name() -> ::prost::alloc::string::String {
886 "penumbra.core.transaction.v1.MemoView.Visible".into()
887 }
888 fn type_url() -> ::prost::alloc::string::String {
889 "/penumbra.core.transaction.v1.MemoView.Visible".into()
890 }
891 }
892 #[derive(Clone, PartialEq, ::prost::Message)]
893 pub struct Opaque {
894 #[prost(message, optional, tag = "1")]
895 pub ciphertext: ::core::option::Option<super::MemoCiphertext>,
896 }
897 impl ::prost::Name for Opaque {
898 const NAME: &'static str = "Opaque";
899 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
900 fn full_name() -> ::prost::alloc::string::String {
901 "penumbra.core.transaction.v1.MemoView.Opaque".into()
902 }
903 fn type_url() -> ::prost::alloc::string::String {
904 "/penumbra.core.transaction.v1.MemoView.Opaque".into()
905 }
906 }
907 #[derive(Clone, PartialEq, ::prost::Oneof)]
908 pub enum MemoView {
909 #[prost(message, tag = "1")]
910 Visible(Visible),
911 #[prost(message, tag = "2")]
912 Opaque(Opaque),
913 }
914}
915impl ::prost::Name for MemoView {
916 const NAME: &'static str = "MemoView";
917 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
918 fn full_name() -> ::prost::alloc::string::String {
919 "penumbra.core.transaction.v1.MemoView".into()
920 }
921 fn type_url() -> ::prost::alloc::string::String {
922 "/penumbra.core.transaction.v1.MemoView".into()
923 }
924}