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, 70, 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 = "70")]
226 ActionLiquidityTournamentVote(
227 super::super::super::component::funding::v1::ActionLiquidityTournamentVote,
228 ),
229 #[prost(message, tag = "200")]
230 Ics20Withdrawal(super::super::super::component::ibc::v1::Ics20Withdrawal),
231 }
232}
233impl ::prost::Name for Action {
234 const NAME: &'static str = "Action";
235 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
236 fn full_name() -> ::prost::alloc::string::String {
237 "penumbra.core.transaction.v1.Action".into()
238 }
239 fn type_url() -> ::prost::alloc::string::String {
240 "/penumbra.core.transaction.v1.Action".into()
241 }
242}
243#[derive(Clone, PartialEq, ::prost::Message)]
246pub struct TransactionPerspective {
247 #[prost(message, repeated, tag = "1")]
248 pub payload_keys: ::prost::alloc::vec::Vec<PayloadKeyWithCommitment>,
249 #[prost(message, repeated, tag = "2")]
250 pub spend_nullifiers: ::prost::alloc::vec::Vec<NullifierWithNote>,
251 #[prost(message, repeated, tag = "3")]
254 pub advice_notes: ::prost::alloc::vec::Vec<
255 super::super::component::shielded_pool::v1::Note,
256 >,
257 #[prost(message, repeated, tag = "4")]
259 pub address_views: ::prost::alloc::vec::Vec<super::super::keys::v1::AddressView>,
260 #[prost(message, repeated, tag = "5")]
262 pub denoms: ::prost::alloc::vec::Vec<super::super::asset::v1::Metadata>,
263 #[prost(message, optional, tag = "6")]
265 pub transaction_id: ::core::option::Option<super::super::txhash::v1::TransactionId>,
266 #[prost(message, repeated, tag = "20")]
268 pub prices: ::prost::alloc::vec::Vec<super::super::asset::v1::EstimatedPrice>,
269 #[prost(message, repeated, tag = "30")]
271 pub extended_metadata: ::prost::alloc::vec::Vec<
272 transaction_perspective::ExtendedMetadataById,
273 >,
274 #[prost(message, repeated, tag = "40")]
275 pub creation_transaction_ids_by_nullifier: ::prost::alloc::vec::Vec<
276 transaction_perspective::CreationTransactionIdByNullifier,
277 >,
278 #[prost(message, repeated, tag = "50")]
279 pub nullification_transaction_ids_by_commitment: ::prost::alloc::vec::Vec<
280 transaction_perspective::NullificationTransactionIdByCommitment,
281 >,
282 #[prost(message, repeated, tag = "60")]
286 pub batch_swap_output_data: ::prost::alloc::vec::Vec<
287 super::super::component::dex::v1::BatchSwapOutputData,
288 >,
289 #[prost(message, optional, tag = "70")]
290 pub position_metadata_key: ::core::option::Option<
291 super::super::keys::v1::PositionMetadataKey,
292 >,
293}
294pub mod transaction_perspective {
296 #[derive(Clone, PartialEq, ::prost::Message)]
297 pub struct ExtendedMetadataById {
298 #[prost(message, optional, tag = "1")]
299 pub asset_id: ::core::option::Option<super::super::super::asset::v1::AssetId>,
300 #[prost(message, optional, tag = "2")]
301 pub extended_metadata: ::core::option::Option<::pbjson_types::Any>,
302 }
303 impl ::prost::Name for ExtendedMetadataById {
304 const NAME: &'static str = "ExtendedMetadataById";
305 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
306 fn full_name() -> ::prost::alloc::string::String {
307 "penumbra.core.transaction.v1.TransactionPerspective.ExtendedMetadataById"
308 .into()
309 }
310 fn type_url() -> ::prost::alloc::string::String {
311 "/penumbra.core.transaction.v1.TransactionPerspective.ExtendedMetadataById"
312 .into()
313 }
314 }
315 #[derive(Clone, PartialEq, ::prost::Message)]
321 pub struct CreationTransactionIdByNullifier {
322 #[prost(message, optional, tag = "1")]
323 pub nullifier: ::core::option::Option<
324 super::super::super::component::sct::v1::Nullifier,
325 >,
326 #[prost(message, optional, tag = "2")]
327 pub transaction_id: ::core::option::Option<
328 super::super::super::txhash::v1::TransactionId,
329 >,
330 }
331 impl ::prost::Name for CreationTransactionIdByNullifier {
332 const NAME: &'static str = "CreationTransactionIdByNullifier";
333 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
334 fn full_name() -> ::prost::alloc::string::String {
335 "penumbra.core.transaction.v1.TransactionPerspective.CreationTransactionIdByNullifier"
336 .into()
337 }
338 fn type_url() -> ::prost::alloc::string::String {
339 "/penumbra.core.transaction.v1.TransactionPerspective.CreationTransactionIdByNullifier"
340 .into()
341 }
342 }
343 #[derive(Clone, PartialEq, ::prost::Message)]
347 pub struct NullificationTransactionIdByCommitment {
348 #[prost(message, optional, tag = "1")]
349 pub commitment: ::core::option::Option<
350 super::super::super::super::crypto::tct::v1::StateCommitment,
351 >,
352 #[prost(message, optional, tag = "2")]
353 pub transaction_id: ::core::option::Option<
354 super::super::super::txhash::v1::TransactionId,
355 >,
356 }
357 impl ::prost::Name for NullificationTransactionIdByCommitment {
358 const NAME: &'static str = "NullificationTransactionIdByCommitment";
359 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
360 fn full_name() -> ::prost::alloc::string::String {
361 "penumbra.core.transaction.v1.TransactionPerspective.NullificationTransactionIdByCommitment"
362 .into()
363 }
364 fn type_url() -> ::prost::alloc::string::String {
365 "/penumbra.core.transaction.v1.TransactionPerspective.NullificationTransactionIdByCommitment"
366 .into()
367 }
368 }
369}
370impl ::prost::Name for TransactionPerspective {
371 const NAME: &'static str = "TransactionPerspective";
372 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
373 fn full_name() -> ::prost::alloc::string::String {
374 "penumbra.core.transaction.v1.TransactionPerspective".into()
375 }
376 fn type_url() -> ::prost::alloc::string::String {
377 "/penumbra.core.transaction.v1.TransactionPerspective".into()
378 }
379}
380#[derive(Clone, PartialEq, ::prost::Message)]
381pub struct PayloadKeyWithCommitment {
382 #[prost(message, optional, tag = "1")]
383 pub payload_key: ::core::option::Option<super::super::keys::v1::PayloadKey>,
384 #[prost(message, optional, tag = "2")]
385 pub commitment: ::core::option::Option<
386 super::super::super::crypto::tct::v1::StateCommitment,
387 >,
388}
389impl ::prost::Name for PayloadKeyWithCommitment {
390 const NAME: &'static str = "PayloadKeyWithCommitment";
391 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
392 fn full_name() -> ::prost::alloc::string::String {
393 "penumbra.core.transaction.v1.PayloadKeyWithCommitment".into()
394 }
395 fn type_url() -> ::prost::alloc::string::String {
396 "/penumbra.core.transaction.v1.PayloadKeyWithCommitment".into()
397 }
398}
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct NullifierWithNote {
401 #[prost(message, optional, tag = "1")]
402 pub nullifier: ::core::option::Option<super::super::component::sct::v1::Nullifier>,
403 #[prost(message, optional, tag = "2")]
404 pub note: ::core::option::Option<super::super::component::shielded_pool::v1::Note>,
405}
406impl ::prost::Name for NullifierWithNote {
407 const NAME: &'static str = "NullifierWithNote";
408 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
409 fn full_name() -> ::prost::alloc::string::String {
410 "penumbra.core.transaction.v1.NullifierWithNote".into()
411 }
412 fn type_url() -> ::prost::alloc::string::String {
413 "/penumbra.core.transaction.v1.NullifierWithNote".into()
414 }
415}
416#[derive(Clone, PartialEq, ::prost::Message)]
418pub struct TransactionView {
419 #[prost(message, optional, tag = "1")]
421 pub body_view: ::core::option::Option<TransactionBodyView>,
422 #[prost(message, optional, tag = "2")]
424 pub binding_sig: ::core::option::Option<
425 super::super::super::crypto::decaf377_rdsa::v1::BindingSignature,
426 >,
427 #[prost(message, optional, tag = "3")]
430 pub anchor: ::core::option::Option<super::super::super::crypto::tct::v1::MerkleRoot>,
431}
432impl ::prost::Name for TransactionView {
433 const NAME: &'static str = "TransactionView";
434 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
435 fn full_name() -> ::prost::alloc::string::String {
436 "penumbra.core.transaction.v1.TransactionView".into()
437 }
438 fn type_url() -> ::prost::alloc::string::String {
439 "/penumbra.core.transaction.v1.TransactionView".into()
440 }
441}
442#[derive(Clone, PartialEq, ::prost::Message)]
443pub struct TransactionBodyView {
444 #[prost(message, repeated, tag = "1")]
446 pub action_views: ::prost::alloc::vec::Vec<ActionView>,
447 #[prost(message, optional, tag = "2")]
449 pub transaction_parameters: ::core::option::Option<TransactionParameters>,
450 #[prost(message, optional, tag = "4")]
453 pub detection_data: ::core::option::Option<DetectionData>,
454 #[prost(message, optional, tag = "5")]
457 pub memo_view: ::core::option::Option<MemoView>,
458}
459impl ::prost::Name for TransactionBodyView {
460 const NAME: &'static str = "TransactionBodyView";
461 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
462 fn full_name() -> ::prost::alloc::string::String {
463 "penumbra.core.transaction.v1.TransactionBodyView".into()
464 }
465 fn type_url() -> ::prost::alloc::string::String {
466 "/penumbra.core.transaction.v1.TransactionBodyView".into()
467 }
468}
469#[derive(Clone, PartialEq, ::prost::Message)]
471pub struct ActionView {
472 #[prost(
473 oneof = "action_view::ActionView",
474 tags = "1, 2, 3, 4, 21, 35, 16, 17, 18, 19, 20, 22, 30, 31, 32, 34, 41, 42, 50, 51, 52, 53, 54, 55, 43, 70, 200"
475 )]
476 pub action_view: ::core::option::Option<action_view::ActionView>,
477}
478pub mod action_view {
480 #[derive(Clone, PartialEq, ::prost::Oneof)]
481 pub enum ActionView {
482 #[prost(message, tag = "1")]
484 Spend(super::super::super::component::shielded_pool::v1::SpendView),
485 #[prost(message, tag = "2")]
486 Output(super::super::super::component::shielded_pool::v1::OutputView),
487 #[prost(message, tag = "3")]
488 Swap(super::super::super::component::dex::v1::SwapView),
489 #[prost(message, tag = "4")]
490 SwapClaim(super::super::super::component::dex::v1::SwapClaimView),
491 #[prost(message, tag = "21")]
492 DelegatorVote(super::super::super::component::governance::v1::DelegatorVoteView),
493 #[prost(message, tag = "35")]
494 PositionOpenView(super::super::super::component::dex::v1::PositionOpenView),
495 #[prost(message, tag = "16")]
497 ValidatorDefinition(
498 super::super::super::component::stake::v1::ValidatorDefinition,
499 ),
500 #[prost(message, tag = "17")]
501 IbcRelayAction(super::super::super::component::ibc::v1::IbcRelay),
502 #[prost(message, tag = "18")]
504 ProposalSubmit(super::super::super::component::governance::v1::ProposalSubmit),
505 #[prost(message, tag = "19")]
506 ProposalWithdraw(
507 super::super::super::component::governance::v1::ProposalWithdraw,
508 ),
509 #[prost(message, tag = "20")]
510 ValidatorVote(super::super::super::component::governance::v1::ValidatorVote),
511 #[prost(message, tag = "22")]
512 ProposalDepositClaim(
513 super::super::super::component::governance::v1::ProposalDepositClaim,
514 ),
515 #[prost(message, tag = "30")]
517 PositionOpen(super::super::super::component::dex::v1::PositionOpen),
518 #[prost(message, tag = "31")]
519 PositionClose(super::super::super::component::dex::v1::PositionClose),
520 #[prost(message, tag = "32")]
521 PositionWithdraw(super::super::super::component::dex::v1::PositionWithdraw),
522 #[prost(message, tag = "34")]
523 PositionRewardClaim(
524 super::super::super::component::dex::v1::PositionRewardClaim,
525 ),
526 #[prost(message, tag = "41")]
527 Delegate(super::super::super::component::stake::v1::Delegate),
528 #[prost(message, tag = "42")]
529 Undelegate(super::super::super::component::stake::v1::Undelegate),
530 #[prost(message, tag = "50")]
532 CommunityPoolSpend(
533 super::super::super::component::governance::v1::CommunityPoolSpend,
534 ),
535 #[prost(message, tag = "51")]
536 CommunityPoolOutput(
537 super::super::super::component::governance::v1::CommunityPoolOutput,
538 ),
539 #[prost(message, tag = "52")]
540 CommunityPoolDeposit(
541 super::super::super::component::governance::v1::CommunityPoolDeposit,
542 ),
543 #[prost(message, tag = "53")]
545 ActionDutchAuctionSchedule(
546 super::super::super::component::auction::v1::ActionDutchAuctionScheduleView,
547 ),
548 #[prost(message, tag = "54")]
549 ActionDutchAuctionEnd(
550 super::super::super::component::auction::v1::ActionDutchAuctionEnd,
551 ),
552 #[prost(message, tag = "55")]
553 ActionDutchAuctionWithdraw(
554 super::super::super::component::auction::v1::ActionDutchAuctionWithdrawView,
555 ),
556 #[prost(message, tag = "43")]
560 UndelegateClaim(super::super::super::component::stake::v1::UndelegateClaim),
561 #[prost(message, tag = "70")]
562 ActionLiquidityTournamentVote(
563 super::super::super::component::funding::v1::ActionLiquidityTournamentVoteView,
564 ),
565 #[prost(message, tag = "200")]
566 Ics20Withdrawal(super::super::super::component::ibc::v1::Ics20Withdrawal),
567 }
568}
569impl ::prost::Name for ActionView {
570 const NAME: &'static str = "ActionView";
571 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
572 fn full_name() -> ::prost::alloc::string::String {
573 "penumbra.core.transaction.v1.ActionView".into()
574 }
575 fn type_url() -> ::prost::alloc::string::String {
576 "/penumbra.core.transaction.v1.ActionView".into()
577 }
578}
579#[derive(Clone, PartialEq, ::prost::Message)]
581pub struct AuthorizationData {
582 #[prost(message, optional, tag = "1")]
584 pub effect_hash: ::core::option::Option<super::super::txhash::v1::EffectHash>,
585 #[prost(message, repeated, tag = "2")]
588 pub spend_auths: ::prost::alloc::vec::Vec<
589 super::super::super::crypto::decaf377_rdsa::v1::SpendAuthSignature,
590 >,
591 #[prost(message, repeated, tag = "3")]
594 pub delegator_vote_auths: ::prost::alloc::vec::Vec<
595 super::super::super::crypto::decaf377_rdsa::v1::SpendAuthSignature,
596 >,
597 #[prost(message, repeated, tag = "4")]
599 pub lqt_vote_auths: ::prost::alloc::vec::Vec<
600 super::super::super::crypto::decaf377_rdsa::v1::SpendAuthSignature,
601 >,
602}
603impl ::prost::Name for AuthorizationData {
604 const NAME: &'static str = "AuthorizationData";
605 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
606 fn full_name() -> ::prost::alloc::string::String {
607 "penumbra.core.transaction.v1.AuthorizationData".into()
608 }
609 fn type_url() -> ::prost::alloc::string::String {
610 "/penumbra.core.transaction.v1.AuthorizationData".into()
611 }
612}
613#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct WitnessData {
616 #[prost(message, optional, tag = "1")]
618 pub anchor: ::core::option::Option<super::super::super::crypto::tct::v1::MerkleRoot>,
619 #[prost(message, repeated, tag = "2")]
622 pub state_commitment_proofs: ::prost::alloc::vec::Vec<
623 super::super::super::crypto::tct::v1::StateCommitmentProof,
624 >,
625}
626impl ::prost::Name for WitnessData {
627 const NAME: &'static str = "WitnessData";
628 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
629 fn full_name() -> ::prost::alloc::string::String {
630 "penumbra.core.transaction.v1.WitnessData".into()
631 }
632 fn type_url() -> ::prost::alloc::string::String {
633 "/penumbra.core.transaction.v1.WitnessData".into()
634 }
635}
636#[derive(Clone, PartialEq, ::prost::Message)]
642pub struct TransactionPlan {
643 #[prost(message, repeated, tag = "1")]
645 pub actions: ::prost::alloc::vec::Vec<ActionPlan>,
646 #[prost(message, optional, tag = "2")]
648 pub transaction_parameters: ::core::option::Option<TransactionParameters>,
649 #[prost(message, optional, tag = "4")]
651 pub detection_data: ::core::option::Option<DetectionDataPlan>,
652 #[prost(message, optional, tag = "5")]
654 pub memo: ::core::option::Option<MemoPlan>,
655}
656impl ::prost::Name for TransactionPlan {
657 const NAME: &'static str = "TransactionPlan";
658 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
659 fn full_name() -> ::prost::alloc::string::String {
660 "penumbra.core.transaction.v1.TransactionPlan".into()
661 }
662 fn type_url() -> ::prost::alloc::string::String {
663 "/penumbra.core.transaction.v1.TransactionPlan".into()
664 }
665}
666#[derive(Clone, PartialEq, ::prost::Message)]
667pub struct DetectionDataPlan {
668 #[prost(message, repeated, tag = "5")]
669 pub clue_plans: ::prost::alloc::vec::Vec<CluePlan>,
670}
671impl ::prost::Name for DetectionDataPlan {
672 const NAME: &'static str = "DetectionDataPlan";
673 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
674 fn full_name() -> ::prost::alloc::string::String {
675 "penumbra.core.transaction.v1.DetectionDataPlan".into()
676 }
677 fn type_url() -> ::prost::alloc::string::String {
678 "/penumbra.core.transaction.v1.DetectionDataPlan".into()
679 }
680}
681#[derive(Clone, PartialEq, ::prost::Message)]
686pub struct ActionPlan {
687 #[prost(
688 oneof = "action_plan::Action",
689 tags = "1, 2, 3, 4, 16, 17, 18, 19, 20, 21, 22, 200, 30, 35, 31, 32, 34, 40, 41, 42, 50, 51, 52, 53, 54, 55, 70"
690 )]
691 pub action: ::core::option::Option<action_plan::Action>,
692}
693pub mod action_plan {
695 #[derive(Clone, PartialEq, ::prost::Oneof)]
696 pub enum Action {
697 #[prost(message, tag = "1")]
698 Spend(super::super::super::component::shielded_pool::v1::SpendPlan),
699 #[prost(message, tag = "2")]
700 Output(super::super::super::component::shielded_pool::v1::OutputPlan),
701 #[prost(message, tag = "3")]
702 Swap(super::super::super::component::dex::v1::SwapPlan),
703 #[prost(message, tag = "4")]
704 SwapClaim(super::super::super::component::dex::v1::SwapClaimPlan),
705 #[prost(message, tag = "16")]
707 ValidatorDefinition(
708 super::super::super::component::stake::v1::ValidatorDefinition,
709 ),
710 #[prost(message, tag = "17")]
712 IbcRelayAction(super::super::super::component::ibc::v1::IbcRelay),
713 #[prost(message, tag = "18")]
715 ProposalSubmit(super::super::super::component::governance::v1::ProposalSubmit),
716 #[prost(message, tag = "19")]
717 ProposalWithdraw(
718 super::super::super::component::governance::v1::ProposalWithdraw,
719 ),
720 #[prost(message, tag = "20")]
721 ValidatorVote(super::super::super::component::governance::v1::ValidatorVote),
722 #[prost(message, tag = "21")]
723 DelegatorVote(super::super::super::component::governance::v1::DelegatorVotePlan),
724 #[prost(message, tag = "22")]
725 ProposalDepositClaim(
726 super::super::super::component::governance::v1::ProposalDepositClaim,
727 ),
728 #[prost(message, tag = "200")]
729 Ics20Withdrawal(super::super::super::component::ibc::v1::Ics20Withdrawal),
730 #[prost(message, tag = "30")]
731 PositionOpen(super::super::super::component::dex::v1::PositionOpen),
732 #[prost(message, tag = "35")]
733 PositionOpenPlan(super::super::super::component::dex::v1::PositionOpenPlan),
734 #[prost(message, tag = "31")]
735 PositionClose(super::super::super::component::dex::v1::PositionClose),
736 #[prost(message, tag = "32")]
738 PositionWithdraw(super::super::super::component::dex::v1::PositionWithdrawPlan),
739 #[prost(message, tag = "34")]
740 PositionRewardClaim(
741 super::super::super::component::dex::v1::PositionRewardClaimPlan,
742 ),
743 #[prost(message, tag = "40")]
746 Delegate(super::super::super::component::stake::v1::Delegate),
747 #[prost(message, tag = "41")]
750 Undelegate(super::super::super::component::stake::v1::Undelegate),
751 #[prost(message, tag = "42")]
752 UndelegateClaim(super::super::super::component::stake::v1::UndelegateClaimPlan),
753 #[prost(message, tag = "50")]
755 CommunityPoolSpend(
756 super::super::super::component::governance::v1::CommunityPoolSpend,
757 ),
758 #[prost(message, tag = "51")]
759 CommunityPoolOutput(
760 super::super::super::component::governance::v1::CommunityPoolOutput,
761 ),
762 #[prost(message, tag = "52")]
763 CommunityPoolDeposit(
764 super::super::super::component::governance::v1::CommunityPoolDeposit,
765 ),
766 #[prost(message, tag = "53")]
768 ActionDutchAuctionSchedule(
769 super::super::super::component::auction::v1::ActionDutchAuctionSchedule,
770 ),
771 #[prost(message, tag = "54")]
772 ActionDutchAuctionEnd(
773 super::super::super::component::auction::v1::ActionDutchAuctionEnd,
774 ),
775 #[prost(message, tag = "55")]
776 ActionDutchAuctionWithdraw(
777 super::super::super::component::auction::v1::ActionDutchAuctionWithdrawPlan,
778 ),
779 #[prost(message, tag = "70")]
781 ActionLiquidityTournamentVote(
782 super::super::super::component::funding::v1::ActionLiquidityTournamentVotePlan,
783 ),
784 }
785}
786impl ::prost::Name for ActionPlan {
787 const NAME: &'static str = "ActionPlan";
788 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
789 fn full_name() -> ::prost::alloc::string::String {
790 "penumbra.core.transaction.v1.ActionPlan".into()
791 }
792 fn type_url() -> ::prost::alloc::string::String {
793 "/penumbra.core.transaction.v1.ActionPlan".into()
794 }
795}
796#[derive(Clone, PartialEq, ::prost::Message)]
798pub struct CluePlan {
799 #[prost(message, optional, tag = "1")]
801 pub address: ::core::option::Option<super::super::keys::v1::Address>,
802 #[prost(bytes = "vec", tag = "2")]
804 pub rseed: ::prost::alloc::vec::Vec<u8>,
805 #[prost(uint64, tag = "3")]
807 pub precision_bits: u64,
808}
809impl ::prost::Name for CluePlan {
810 const NAME: &'static str = "CluePlan";
811 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
812 fn full_name() -> ::prost::alloc::string::String {
813 "penumbra.core.transaction.v1.CluePlan".into()
814 }
815 fn type_url() -> ::prost::alloc::string::String {
816 "/penumbra.core.transaction.v1.CluePlan".into()
817 }
818}
819#[derive(Clone, PartialEq, ::prost::Message)]
821pub struct MemoPlan {
822 #[prost(message, optional, tag = "1")]
824 pub plaintext: ::core::option::Option<MemoPlaintext>,
825 #[prost(bytes = "vec", tag = "2")]
827 pub key: ::prost::alloc::vec::Vec<u8>,
828}
829impl ::prost::Name for MemoPlan {
830 const NAME: &'static str = "MemoPlan";
831 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
832 fn full_name() -> ::prost::alloc::string::String {
833 "penumbra.core.transaction.v1.MemoPlan".into()
834 }
835 fn type_url() -> ::prost::alloc::string::String {
836 "/penumbra.core.transaction.v1.MemoPlan".into()
837 }
838}
839#[derive(Clone, PartialEq, ::prost::Message)]
841pub struct MemoCiphertext {
842 #[prost(bytes = "vec", tag = "1")]
844 pub inner: ::prost::alloc::vec::Vec<u8>,
845}
846impl ::prost::Name for MemoCiphertext {
847 const NAME: &'static str = "MemoCiphertext";
848 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
849 fn full_name() -> ::prost::alloc::string::String {
850 "penumbra.core.transaction.v1.MemoCiphertext".into()
851 }
852 fn type_url() -> ::prost::alloc::string::String {
853 "/penumbra.core.transaction.v1.MemoCiphertext".into()
854 }
855}
856#[derive(Clone, PartialEq, ::prost::Message)]
858pub struct MemoPlaintext {
859 #[prost(message, optional, tag = "1")]
864 pub return_address: ::core::option::Option<super::super::keys::v1::Address>,
865 #[prost(string, tag = "2")]
867 pub text: ::prost::alloc::string::String,
868}
869impl ::prost::Name for MemoPlaintext {
870 const NAME: &'static str = "MemoPlaintext";
871 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
872 fn full_name() -> ::prost::alloc::string::String {
873 "penumbra.core.transaction.v1.MemoPlaintext".into()
874 }
875 fn type_url() -> ::prost::alloc::string::String {
876 "/penumbra.core.transaction.v1.MemoPlaintext".into()
877 }
878}
879#[derive(Clone, PartialEq, ::prost::Message)]
880pub struct MemoPlaintextView {
881 #[prost(message, optional, tag = "1")]
882 pub return_address: ::core::option::Option<super::super::keys::v1::AddressView>,
883 #[prost(string, tag = "2")]
884 pub text: ::prost::alloc::string::String,
885}
886impl ::prost::Name for MemoPlaintextView {
887 const NAME: &'static str = "MemoPlaintextView";
888 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
889 fn full_name() -> ::prost::alloc::string::String {
890 "penumbra.core.transaction.v1.MemoPlaintextView".into()
891 }
892 fn type_url() -> ::prost::alloc::string::String {
893 "/penumbra.core.transaction.v1.MemoPlaintextView".into()
894 }
895}
896#[derive(Clone, PartialEq, ::prost::Message)]
897pub struct MemoView {
898 #[prost(oneof = "memo_view::MemoView", tags = "1, 2")]
899 pub memo_view: ::core::option::Option<memo_view::MemoView>,
900}
901pub mod memo_view {
903 #[derive(Clone, PartialEq, ::prost::Message)]
904 pub struct Visible {
905 #[prost(message, optional, tag = "1")]
906 pub ciphertext: ::core::option::Option<super::MemoCiphertext>,
907 #[prost(message, optional, tag = "2")]
908 pub plaintext: ::core::option::Option<super::MemoPlaintextView>,
909 }
910 impl ::prost::Name for Visible {
911 const NAME: &'static str = "Visible";
912 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
913 fn full_name() -> ::prost::alloc::string::String {
914 "penumbra.core.transaction.v1.MemoView.Visible".into()
915 }
916 fn type_url() -> ::prost::alloc::string::String {
917 "/penumbra.core.transaction.v1.MemoView.Visible".into()
918 }
919 }
920 #[derive(Clone, PartialEq, ::prost::Message)]
921 pub struct Opaque {
922 #[prost(message, optional, tag = "1")]
923 pub ciphertext: ::core::option::Option<super::MemoCiphertext>,
924 }
925 impl ::prost::Name for Opaque {
926 const NAME: &'static str = "Opaque";
927 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
928 fn full_name() -> ::prost::alloc::string::String {
929 "penumbra.core.transaction.v1.MemoView.Opaque".into()
930 }
931 fn type_url() -> ::prost::alloc::string::String {
932 "/penumbra.core.transaction.v1.MemoView.Opaque".into()
933 }
934 }
935 #[derive(Clone, PartialEq, ::prost::Oneof)]
936 pub enum MemoView {
937 #[prost(message, tag = "1")]
938 Visible(Visible),
939 #[prost(message, tag = "2")]
940 Opaque(Opaque),
941 }
942}
943impl ::prost::Name for MemoView {
944 const NAME: &'static str = "MemoView";
945 const PACKAGE: &'static str = "penumbra.core.transaction.v1";
946 fn full_name() -> ::prost::alloc::string::String {
947 "penumbra.core.transaction.v1.MemoView".into()
948 }
949 fn type_url() -> ::prost::alloc::string::String {
950 "/penumbra.core.transaction.v1.MemoView".into()
951 }
952}