1#[allow(unused_imports)]
7use crate::compound_types::{
8 LimitedString, LimitedVarArray, LimitedVarOpaque, UnlimitedString, UnlimitedVarArray,
9 UnlimitedVarOpaque,
10};
11#[allow(unused_imports)]
12use crate::streams::{DecodeError, ReadStream, WriteStream};
13#[allow(unused_imports)]
14use crate::xdr_codec::XdrCodec;
15#[allow(unused_imports)]
16use core::convert::AsRef;
17#[allow(unused_imports)]
18use sp_std::{boxed::Box, prelude::*};
19
20#[allow(dead_code)]
22pub const MASK_ACCOUNT_FLAGS: i32 = 7;
23#[allow(dead_code)]
25pub const MASK_ACCOUNT_FLAGS_V17: i32 = 15;
26#[allow(dead_code)]
28pub const MAX_SIGNERS: i32 = 20;
29#[allow(dead_code)]
31pub const MASK_TRUSTLINE_FLAGS: i32 = 1;
32#[allow(dead_code)]
34pub const MASK_TRUSTLINE_FLAGS_V13: i32 = 3;
35#[allow(dead_code)]
37pub const MASK_TRUSTLINE_FLAGS_V17: i32 = 7;
38#[allow(dead_code)]
40pub const MASK_OFFERENTRY_FLAGS: i32 = 1;
41#[allow(dead_code)]
43pub const MASK_CLAIMABLE_BALANCE_FLAGS: i32 = 1;
44#[allow(dead_code)]
46pub const LIQUIDITY_POOL_FEE_V18: i32 = 30;
47#[allow(dead_code)]
49pub const MAX_OPS_PER_TX: i32 = 100;
50
51#[allow(dead_code)]
53#[cfg(feature = "all-types")]
54pub type Value = UnlimitedVarOpaque;
55
56#[allow(dead_code)]
58#[cfg(feature = "all-types")]
59#[derive(Debug, Clone, Eq, PartialEq)]
60pub struct ScpBallot {
61 pub counter: Uint32,
62 pub value: Value,
63}
64
65#[cfg(feature = "all-types")]
66impl XdrCodec for ScpBallot {
67 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
68 self.counter.to_xdr_buffered(write_stream);
69 self.value.to_xdr_buffered(write_stream);
70 }
71
72 fn from_xdr_buffered<T: AsRef<[u8]>>(
73 read_stream: &mut ReadStream<T>,
74 ) -> Result<Self, DecodeError> {
75 Ok(ScpBallot {
76 counter: Uint32::from_xdr_buffered(read_stream)?,
77 value: Value::from_xdr_buffered(read_stream)?,
78 })
79 }
80}
81
82#[allow(dead_code)]
84#[cfg(feature = "all-types")]
85#[derive(Debug, Copy, Clone, Eq, PartialEq)]
86pub enum ScpStatementType {
87 ScpStPrepare = 0,
88 ScpStConfirm = 1,
89 ScpStExternalize = 2,
90 ScpStNominate = 3,
91}
92
93#[cfg(feature = "all-types")]
94impl XdrCodec for ScpStatementType {
95 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
96 let value = *self as i32;
97 value.to_xdr_buffered(write_stream);
98 }
99
100 fn from_xdr_buffered<T: AsRef<[u8]>>(
101 read_stream: &mut ReadStream<T>,
102 ) -> Result<Self, DecodeError> {
103 let enum_value = i32::from_xdr_buffered(read_stream)?;
104 match enum_value {
105 0 => Ok(ScpStatementType::ScpStPrepare),
106 1 => Ok(ScpStatementType::ScpStConfirm),
107 2 => Ok(ScpStatementType::ScpStExternalize),
108 3 => Ok(ScpStatementType::ScpStNominate),
109 _ => Err(DecodeError::InvalidEnumDiscriminator {
110 at_position: read_stream.get_position(),
111 }),
112 }
113 }
114}
115
116#[allow(dead_code)]
118#[cfg(feature = "all-types")]
119#[derive(Debug, Clone, Eq, PartialEq)]
120pub struct ScpNomination {
121 pub quorum_set_hash: Hash,
122 pub votes: UnlimitedVarArray<Value>,
123 pub accepted: UnlimitedVarArray<Value>,
124}
125
126#[cfg(feature = "all-types")]
127impl XdrCodec for ScpNomination {
128 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
129 self.quorum_set_hash.to_xdr_buffered(write_stream);
130 self.votes.to_xdr_buffered(write_stream);
131 self.accepted.to_xdr_buffered(write_stream);
132 }
133
134 fn from_xdr_buffered<T: AsRef<[u8]>>(
135 read_stream: &mut ReadStream<T>,
136 ) -> Result<Self, DecodeError> {
137 Ok(ScpNomination {
138 quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
139 votes: UnlimitedVarArray::<Value>::from_xdr_buffered(read_stream)?,
140 accepted: UnlimitedVarArray::<Value>::from_xdr_buffered(read_stream)?,
141 })
142 }
143}
144
145#[allow(dead_code)]
147#[cfg(feature = "all-types")]
148#[derive(Debug, Clone, Eq, PartialEq)]
149pub struct ScpStatementPrepare {
150 pub quorum_set_hash: Hash,
151 pub ballot: ScpBallot,
152 pub prepared: Option<ScpBallot>,
153 pub prepared_prime: Option<ScpBallot>,
154 pub n_c: Uint32,
155 pub n_h: Uint32,
156}
157
158#[cfg(feature = "all-types")]
159impl XdrCodec for ScpStatementPrepare {
160 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
161 self.quorum_set_hash.to_xdr_buffered(write_stream);
162 self.ballot.to_xdr_buffered(write_stream);
163 self.prepared.to_xdr_buffered(write_stream);
164 self.prepared_prime.to_xdr_buffered(write_stream);
165 self.n_c.to_xdr_buffered(write_stream);
166 self.n_h.to_xdr_buffered(write_stream);
167 }
168
169 fn from_xdr_buffered<T: AsRef<[u8]>>(
170 read_stream: &mut ReadStream<T>,
171 ) -> Result<Self, DecodeError> {
172 Ok(ScpStatementPrepare {
173 quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
174 ballot: ScpBallot::from_xdr_buffered(read_stream)?,
175 prepared: Option::<ScpBallot>::from_xdr_buffered(read_stream)?,
176 prepared_prime: Option::<ScpBallot>::from_xdr_buffered(read_stream)?,
177 n_c: Uint32::from_xdr_buffered(read_stream)?,
178 n_h: Uint32::from_xdr_buffered(read_stream)?,
179 })
180 }
181}
182
183#[allow(dead_code)]
185#[cfg(feature = "all-types")]
186#[derive(Debug, Clone, Eq, PartialEq)]
187pub struct ScpStatementConfirm {
188 pub ballot: ScpBallot,
189 pub n_prepared: Uint32,
190 pub n_commit: Uint32,
191 pub n_h: Uint32,
192 pub quorum_set_hash: Hash,
193}
194
195#[cfg(feature = "all-types")]
196impl XdrCodec for ScpStatementConfirm {
197 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
198 self.ballot.to_xdr_buffered(write_stream);
199 self.n_prepared.to_xdr_buffered(write_stream);
200 self.n_commit.to_xdr_buffered(write_stream);
201 self.n_h.to_xdr_buffered(write_stream);
202 self.quorum_set_hash.to_xdr_buffered(write_stream);
203 }
204
205 fn from_xdr_buffered<T: AsRef<[u8]>>(
206 read_stream: &mut ReadStream<T>,
207 ) -> Result<Self, DecodeError> {
208 Ok(ScpStatementConfirm {
209 ballot: ScpBallot::from_xdr_buffered(read_stream)?,
210 n_prepared: Uint32::from_xdr_buffered(read_stream)?,
211 n_commit: Uint32::from_xdr_buffered(read_stream)?,
212 n_h: Uint32::from_xdr_buffered(read_stream)?,
213 quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
214 })
215 }
216}
217
218#[allow(dead_code)]
220#[cfg(feature = "all-types")]
221#[derive(Debug, Clone, Eq, PartialEq)]
222pub struct ScpStatementExternalize {
223 pub commit: ScpBallot,
224 pub n_h: Uint32,
225 pub commit_quorum_set_hash: Hash,
226}
227
228#[cfg(feature = "all-types")]
229impl XdrCodec for ScpStatementExternalize {
230 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
231 self.commit.to_xdr_buffered(write_stream);
232 self.n_h.to_xdr_buffered(write_stream);
233 self.commit_quorum_set_hash.to_xdr_buffered(write_stream);
234 }
235
236 fn from_xdr_buffered<T: AsRef<[u8]>>(
237 read_stream: &mut ReadStream<T>,
238 ) -> Result<Self, DecodeError> {
239 Ok(ScpStatementExternalize {
240 commit: ScpBallot::from_xdr_buffered(read_stream)?,
241 n_h: Uint32::from_xdr_buffered(read_stream)?,
242 commit_quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
243 })
244 }
245}
246
247#[allow(dead_code)]
249#[cfg(feature = "all-types")]
250#[derive(Debug, Clone, Eq, PartialEq)]
251pub struct ScpStatement {
252 pub node_id: NodeId,
253 pub slot_index: Uint64,
254 pub pledges: ScpStatementPledges,
255}
256
257#[cfg(feature = "all-types")]
258impl XdrCodec for ScpStatement {
259 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
260 self.node_id.to_xdr_buffered(write_stream);
261 self.slot_index.to_xdr_buffered(write_stream);
262 self.pledges.to_xdr_buffered(write_stream);
263 }
264
265 fn from_xdr_buffered<T: AsRef<[u8]>>(
266 read_stream: &mut ReadStream<T>,
267 ) -> Result<Self, DecodeError> {
268 Ok(ScpStatement {
269 node_id: NodeId::from_xdr_buffered(read_stream)?,
270 slot_index: Uint64::from_xdr_buffered(read_stream)?,
271 pledges: ScpStatementPledges::from_xdr_buffered(read_stream)?,
272 })
273 }
274}
275
276#[allow(dead_code)]
278#[cfg(feature = "all-types")]
279#[derive(Debug, Clone, Eq, PartialEq)]
280pub struct ScpEnvelope {
281 pub statement: ScpStatement,
282 pub signature: Signature,
283}
284
285#[cfg(feature = "all-types")]
286impl XdrCodec for ScpEnvelope {
287 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
288 self.statement.to_xdr_buffered(write_stream);
289 self.signature.to_xdr_buffered(write_stream);
290 }
291
292 fn from_xdr_buffered<T: AsRef<[u8]>>(
293 read_stream: &mut ReadStream<T>,
294 ) -> Result<Self, DecodeError> {
295 Ok(ScpEnvelope {
296 statement: ScpStatement::from_xdr_buffered(read_stream)?,
297 signature: Signature::from_xdr_buffered(read_stream)?,
298 })
299 }
300}
301
302#[allow(dead_code)]
304#[cfg(feature = "all-types")]
305#[derive(Debug, Clone, Eq, PartialEq)]
306pub struct ScpQuorumSet {
307 pub threshold: Uint32,
308 pub validators: UnlimitedVarArray<NodeId>,
309 pub inner_sets: UnlimitedVarArray<ScpQuorumSet>,
310}
311
312#[cfg(feature = "all-types")]
313impl XdrCodec for ScpQuorumSet {
314 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
315 self.threshold.to_xdr_buffered(write_stream);
316 self.validators.to_xdr_buffered(write_stream);
317 self.inner_sets.to_xdr_buffered(write_stream);
318 }
319
320 fn from_xdr_buffered<T: AsRef<[u8]>>(
321 read_stream: &mut ReadStream<T>,
322 ) -> Result<Self, DecodeError> {
323 Ok(ScpQuorumSet {
324 threshold: Uint32::from_xdr_buffered(read_stream)?,
325 validators: UnlimitedVarArray::<NodeId>::from_xdr_buffered(read_stream)?,
326 inner_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
327 })
328 }
329}
330
331#[allow(dead_code)]
333pub type AccountId = PublicKey;
334
335#[allow(dead_code)]
337pub type Thresholds = [u8; 4];
338
339#[allow(dead_code)]
341pub type String32 = LimitedString<32>;
342
343#[allow(dead_code)]
345pub type String64 = LimitedString<64>;
346
347#[allow(dead_code)]
349pub type SequenceNumber = Int64;
350
351#[allow(dead_code)]
353pub type TimePoint = Uint64;
354
355#[allow(dead_code)]
357pub type DataValue = LimitedVarOpaque<64>;
358
359#[allow(dead_code)]
361pub type PoolId = Hash;
362
363#[allow(dead_code)]
365pub type AssetCode4 = [u8; 4];
366
367#[allow(dead_code)]
369pub type AssetCode12 = [u8; 12];
370
371#[allow(dead_code)]
373#[derive(Debug, Copy, Clone, Eq, PartialEq)]
374pub enum AssetType {
375 AssetTypeNative = 0,
376 AssetTypeCreditAlphanum4 = 1,
377 AssetTypeCreditAlphanum12 = 2,
378 AssetTypePoolShare = 3,
379}
380
381impl XdrCodec for AssetType {
382 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
383 let value = *self as i32;
384 value.to_xdr_buffered(write_stream);
385 }
386
387 fn from_xdr_buffered<T: AsRef<[u8]>>(
388 read_stream: &mut ReadStream<T>,
389 ) -> Result<Self, DecodeError> {
390 let enum_value = i32::from_xdr_buffered(read_stream)?;
391 match enum_value {
392 0 => Ok(AssetType::AssetTypeNative),
393 1 => Ok(AssetType::AssetTypeCreditAlphanum4),
394 2 => Ok(AssetType::AssetTypeCreditAlphanum12),
395 3 => Ok(AssetType::AssetTypePoolShare),
396 _ => Err(DecodeError::InvalidEnumDiscriminator {
397 at_position: read_stream.get_position(),
398 }),
399 }
400 }
401}
402
403#[allow(dead_code)]
405#[derive(Debug, Clone, Eq, PartialEq)]
406pub struct AlphaNum4 {
407 pub asset_code: AssetCode4,
408 pub issuer: AccountId,
409}
410
411impl XdrCodec for AlphaNum4 {
412 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
413 self.asset_code.to_xdr_buffered(write_stream);
414 self.issuer.to_xdr_buffered(write_stream);
415 }
416
417 fn from_xdr_buffered<T: AsRef<[u8]>>(
418 read_stream: &mut ReadStream<T>,
419 ) -> Result<Self, DecodeError> {
420 Ok(AlphaNum4 {
421 asset_code: AssetCode4::from_xdr_buffered(read_stream)?,
422 issuer: AccountId::from_xdr_buffered(read_stream)?,
423 })
424 }
425}
426
427#[allow(dead_code)]
429#[derive(Debug, Clone, Eq, PartialEq)]
430pub struct AlphaNum12 {
431 pub asset_code: AssetCode12,
432 pub issuer: AccountId,
433}
434
435impl XdrCodec for AlphaNum12 {
436 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
437 self.asset_code.to_xdr_buffered(write_stream);
438 self.issuer.to_xdr_buffered(write_stream);
439 }
440
441 fn from_xdr_buffered<T: AsRef<[u8]>>(
442 read_stream: &mut ReadStream<T>,
443 ) -> Result<Self, DecodeError> {
444 Ok(AlphaNum12 {
445 asset_code: AssetCode12::from_xdr_buffered(read_stream)?,
446 issuer: AccountId::from_xdr_buffered(read_stream)?,
447 })
448 }
449}
450
451#[allow(dead_code)]
453#[derive(Debug, Clone, Eq, PartialEq)]
454pub struct Price {
455 pub n: Int32,
456 pub d: Int32,
457}
458
459impl XdrCodec for Price {
460 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
461 self.n.to_xdr_buffered(write_stream);
462 self.d.to_xdr_buffered(write_stream);
463 }
464
465 fn from_xdr_buffered<T: AsRef<[u8]>>(
466 read_stream: &mut ReadStream<T>,
467 ) -> Result<Self, DecodeError> {
468 Ok(Price {
469 n: Int32::from_xdr_buffered(read_stream)?,
470 d: Int32::from_xdr_buffered(read_stream)?,
471 })
472 }
473}
474
475#[allow(dead_code)]
477#[derive(Debug, Clone, Eq, PartialEq)]
478pub struct Liabilities {
479 pub buying: Int64,
480 pub selling: Int64,
481}
482
483impl XdrCodec for Liabilities {
484 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
485 self.buying.to_xdr_buffered(write_stream);
486 self.selling.to_xdr_buffered(write_stream);
487 }
488
489 fn from_xdr_buffered<T: AsRef<[u8]>>(
490 read_stream: &mut ReadStream<T>,
491 ) -> Result<Self, DecodeError> {
492 Ok(Liabilities {
493 buying: Int64::from_xdr_buffered(read_stream)?,
494 selling: Int64::from_xdr_buffered(read_stream)?,
495 })
496 }
497}
498
499#[allow(dead_code)]
501#[cfg(feature = "all-types")]
502#[derive(Debug, Copy, Clone, Eq, PartialEq)]
503pub enum ThresholdIndices {
504 ThresholdMasterWeight = 0,
505 ThresholdLow = 1,
506 ThresholdMed = 2,
507 ThresholdHigh = 3,
508}
509
510#[cfg(feature = "all-types")]
511impl XdrCodec for ThresholdIndices {
512 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
513 let value = *self as i32;
514 value.to_xdr_buffered(write_stream);
515 }
516
517 fn from_xdr_buffered<T: AsRef<[u8]>>(
518 read_stream: &mut ReadStream<T>,
519 ) -> Result<Self, DecodeError> {
520 let enum_value = i32::from_xdr_buffered(read_stream)?;
521 match enum_value {
522 0 => Ok(ThresholdIndices::ThresholdMasterWeight),
523 1 => Ok(ThresholdIndices::ThresholdLow),
524 2 => Ok(ThresholdIndices::ThresholdMed),
525 3 => Ok(ThresholdIndices::ThresholdHigh),
526 _ => Err(DecodeError::InvalidEnumDiscriminator {
527 at_position: read_stream.get_position(),
528 }),
529 }
530 }
531}
532
533#[allow(dead_code)]
535#[derive(Debug, Copy, Clone, Eq, PartialEq)]
536pub enum LedgerEntryType {
537 Account = 0,
538 Trustline = 1,
539 Offer = 2,
540 Data = 3,
541 ClaimableBalance = 4,
542 LiquidityPool = 5,
543}
544
545impl XdrCodec for LedgerEntryType {
546 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
547 let value = *self as i32;
548 value.to_xdr_buffered(write_stream);
549 }
550
551 fn from_xdr_buffered<T: AsRef<[u8]>>(
552 read_stream: &mut ReadStream<T>,
553 ) -> Result<Self, DecodeError> {
554 let enum_value = i32::from_xdr_buffered(read_stream)?;
555 match enum_value {
556 0 => Ok(LedgerEntryType::Account),
557 1 => Ok(LedgerEntryType::Trustline),
558 2 => Ok(LedgerEntryType::Offer),
559 3 => Ok(LedgerEntryType::Data),
560 4 => Ok(LedgerEntryType::ClaimableBalance),
561 5 => Ok(LedgerEntryType::LiquidityPool),
562 _ => Err(DecodeError::InvalidEnumDiscriminator {
563 at_position: read_stream.get_position(),
564 }),
565 }
566 }
567}
568
569#[allow(dead_code)]
571#[derive(Debug, Clone, Eq, PartialEq)]
572pub struct Signer {
573 pub key: SignerKey,
574 pub weight: Uint32,
575}
576
577impl XdrCodec for Signer {
578 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
579 self.key.to_xdr_buffered(write_stream);
580 self.weight.to_xdr_buffered(write_stream);
581 }
582
583 fn from_xdr_buffered<T: AsRef<[u8]>>(
584 read_stream: &mut ReadStream<T>,
585 ) -> Result<Self, DecodeError> {
586 Ok(Signer {
587 key: SignerKey::from_xdr_buffered(read_stream)?,
588 weight: Uint32::from_xdr_buffered(read_stream)?,
589 })
590 }
591}
592
593#[allow(dead_code)]
595#[cfg(feature = "all-types")]
596#[derive(Debug, Copy, Clone, Eq, PartialEq)]
597pub enum AccountFlags {
598 AuthRequiredFlag = 1,
599 AuthRevocableFlag = 2,
600 AuthImmutableFlag = 4,
601 AuthClawbackEnabledFlag = 8,
602}
603
604#[cfg(feature = "all-types")]
605impl XdrCodec for AccountFlags {
606 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
607 let value = *self as i32;
608 value.to_xdr_buffered(write_stream);
609 }
610
611 fn from_xdr_buffered<T: AsRef<[u8]>>(
612 read_stream: &mut ReadStream<T>,
613 ) -> Result<Self, DecodeError> {
614 let enum_value = i32::from_xdr_buffered(read_stream)?;
615 match enum_value {
616 1 => Ok(AccountFlags::AuthRequiredFlag),
617 2 => Ok(AccountFlags::AuthRevocableFlag),
618 4 => Ok(AccountFlags::AuthImmutableFlag),
619 8 => Ok(AccountFlags::AuthClawbackEnabledFlag),
620 _ => Err(DecodeError::InvalidEnumDiscriminator {
621 at_position: read_stream.get_position(),
622 }),
623 }
624 }
625}
626
627#[allow(dead_code)]
629pub type SponsorshipDescriptor = Option<AccountId>;
630
631#[allow(dead_code)]
633#[derive(Debug, Clone, Eq, PartialEq)]
634pub struct AccountEntryExtensionV2 {
635 pub num_sponsored: Uint32,
636 pub num_sponsoring: Uint32,
637 pub signer_sponsoring_i_ds: LimitedVarArray<SponsorshipDescriptor, MAX_SIGNERS>,
638 pub ext: AccountEntryExtensionV2Ext,
639}
640
641impl XdrCodec for AccountEntryExtensionV2 {
642 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
643 self.num_sponsored.to_xdr_buffered(write_stream);
644 self.num_sponsoring.to_xdr_buffered(write_stream);
645 self.signer_sponsoring_i_ds.to_xdr_buffered(write_stream);
646 self.ext.to_xdr_buffered(write_stream);
647 }
648
649 fn from_xdr_buffered<T: AsRef<[u8]>>(
650 read_stream: &mut ReadStream<T>,
651 ) -> Result<Self, DecodeError> {
652 Ok(AccountEntryExtensionV2 {
653 num_sponsored: Uint32::from_xdr_buffered(read_stream)?,
654 num_sponsoring: Uint32::from_xdr_buffered(read_stream)?,
655 signer_sponsoring_i_ds:
656 LimitedVarArray::<SponsorshipDescriptor, MAX_SIGNERS>::from_xdr_buffered(
657 read_stream,
658 )?,
659 ext: AccountEntryExtensionV2Ext::from_xdr_buffered(read_stream)?,
660 })
661 }
662}
663
664#[allow(dead_code)]
666#[derive(Debug, Clone, Eq, PartialEq)]
667pub struct AccountEntryExtensionV1 {
668 pub liabilities: Liabilities,
669 pub ext: AccountEntryExtensionV1Ext,
670}
671
672impl XdrCodec for AccountEntryExtensionV1 {
673 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
674 self.liabilities.to_xdr_buffered(write_stream);
675 self.ext.to_xdr_buffered(write_stream);
676 }
677
678 fn from_xdr_buffered<T: AsRef<[u8]>>(
679 read_stream: &mut ReadStream<T>,
680 ) -> Result<Self, DecodeError> {
681 Ok(AccountEntryExtensionV1 {
682 liabilities: Liabilities::from_xdr_buffered(read_stream)?,
683 ext: AccountEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
684 })
685 }
686}
687
688#[allow(dead_code)]
690#[derive(Debug, Clone, Eq, PartialEq)]
691pub struct AccountEntry {
692 pub account_id: AccountId,
693 pub balance: Int64,
694 pub seq_num: SequenceNumber,
695 pub num_sub_entries: Uint32,
696 pub inflation_dest: Option<AccountId>,
697 pub flags: Uint32,
698 pub home_domain: String32,
699 pub thresholds: Thresholds,
700 pub signers: LimitedVarArray<Signer, MAX_SIGNERS>,
701 pub ext: AccountEntryExt,
702}
703
704impl XdrCodec for AccountEntry {
705 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
706 self.account_id.to_xdr_buffered(write_stream);
707 self.balance.to_xdr_buffered(write_stream);
708 self.seq_num.to_xdr_buffered(write_stream);
709 self.num_sub_entries.to_xdr_buffered(write_stream);
710 self.inflation_dest.to_xdr_buffered(write_stream);
711 self.flags.to_xdr_buffered(write_stream);
712 self.home_domain.to_xdr_buffered(write_stream);
713 self.thresholds.to_xdr_buffered(write_stream);
714 self.signers.to_xdr_buffered(write_stream);
715 self.ext.to_xdr_buffered(write_stream);
716 }
717
718 fn from_xdr_buffered<T: AsRef<[u8]>>(
719 read_stream: &mut ReadStream<T>,
720 ) -> Result<Self, DecodeError> {
721 Ok(AccountEntry {
722 account_id: AccountId::from_xdr_buffered(read_stream)?,
723 balance: Int64::from_xdr_buffered(read_stream)?,
724 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
725 num_sub_entries: Uint32::from_xdr_buffered(read_stream)?,
726 inflation_dest: Option::<AccountId>::from_xdr_buffered(read_stream)?,
727 flags: Uint32::from_xdr_buffered(read_stream)?,
728 home_domain: String32::from_xdr_buffered(read_stream)?,
729 thresholds: Thresholds::from_xdr_buffered(read_stream)?,
730 signers: LimitedVarArray::<Signer, MAX_SIGNERS>::from_xdr_buffered(read_stream)?,
731 ext: AccountEntryExt::from_xdr_buffered(read_stream)?,
732 })
733 }
734}
735
736#[allow(dead_code)]
738#[cfg(feature = "all-types")]
739#[derive(Debug, Copy, Clone, Eq, PartialEq)]
740pub enum TrustLineFlags {
741 AuthorizedFlag = 1,
742 AuthorizedToMaintainLiabilitiesFlag = 2,
743 TrustlineClawbackEnabledFlag = 4,
744}
745
746#[cfg(feature = "all-types")]
747impl XdrCodec for TrustLineFlags {
748 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
749 let value = *self as i32;
750 value.to_xdr_buffered(write_stream);
751 }
752
753 fn from_xdr_buffered<T: AsRef<[u8]>>(
754 read_stream: &mut ReadStream<T>,
755 ) -> Result<Self, DecodeError> {
756 let enum_value = i32::from_xdr_buffered(read_stream)?;
757 match enum_value {
758 1 => Ok(TrustLineFlags::AuthorizedFlag),
759 2 => Ok(TrustLineFlags::AuthorizedToMaintainLiabilitiesFlag),
760 4 => Ok(TrustLineFlags::TrustlineClawbackEnabledFlag),
761 _ => Err(DecodeError::InvalidEnumDiscriminator {
762 at_position: read_stream.get_position(),
763 }),
764 }
765 }
766}
767
768#[allow(dead_code)]
770#[derive(Debug, Copy, Clone, Eq, PartialEq)]
771pub enum LiquidityPoolType {
772 LiquidityPoolConstantProduct = 0,
773}
774
775impl XdrCodec for LiquidityPoolType {
776 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
777 let value = *self as i32;
778 value.to_xdr_buffered(write_stream);
779 }
780
781 fn from_xdr_buffered<T: AsRef<[u8]>>(
782 read_stream: &mut ReadStream<T>,
783 ) -> Result<Self, DecodeError> {
784 let enum_value = i32::from_xdr_buffered(read_stream)?;
785 match enum_value {
786 0 => Ok(LiquidityPoolType::LiquidityPoolConstantProduct),
787 _ => Err(DecodeError::InvalidEnumDiscriminator {
788 at_position: read_stream.get_position(),
789 }),
790 }
791 }
792}
793
794#[allow(dead_code)]
796#[derive(Debug, Clone, Eq, PartialEq)]
797pub struct TrustLineEntryV1 {
798 pub liabilities: Liabilities,
799 pub ext: TrustLineEntryV1Ext,
800}
801
802impl XdrCodec for TrustLineEntryV1 {
803 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
804 self.liabilities.to_xdr_buffered(write_stream);
805 self.ext.to_xdr_buffered(write_stream);
806 }
807
808 fn from_xdr_buffered<T: AsRef<[u8]>>(
809 read_stream: &mut ReadStream<T>,
810 ) -> Result<Self, DecodeError> {
811 Ok(TrustLineEntryV1 {
812 liabilities: Liabilities::from_xdr_buffered(read_stream)?,
813 ext: TrustLineEntryV1Ext::from_xdr_buffered(read_stream)?,
814 })
815 }
816}
817
818#[allow(dead_code)]
820#[derive(Debug, Clone, Eq, PartialEq)]
821pub struct TrustLineEntry {
822 pub account_id: AccountId,
823 pub asset: TrustLineAsset,
824 pub balance: Int64,
825 pub limit: Int64,
826 pub flags: Uint32,
827 pub ext: TrustLineEntryExt,
828}
829
830impl XdrCodec for TrustLineEntry {
831 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
832 self.account_id.to_xdr_buffered(write_stream);
833 self.asset.to_xdr_buffered(write_stream);
834 self.balance.to_xdr_buffered(write_stream);
835 self.limit.to_xdr_buffered(write_stream);
836 self.flags.to_xdr_buffered(write_stream);
837 self.ext.to_xdr_buffered(write_stream);
838 }
839
840 fn from_xdr_buffered<T: AsRef<[u8]>>(
841 read_stream: &mut ReadStream<T>,
842 ) -> Result<Self, DecodeError> {
843 Ok(TrustLineEntry {
844 account_id: AccountId::from_xdr_buffered(read_stream)?,
845 asset: TrustLineAsset::from_xdr_buffered(read_stream)?,
846 balance: Int64::from_xdr_buffered(read_stream)?,
847 limit: Int64::from_xdr_buffered(read_stream)?,
848 flags: Uint32::from_xdr_buffered(read_stream)?,
849 ext: TrustLineEntryExt::from_xdr_buffered(read_stream)?,
850 })
851 }
852}
853
854#[allow(dead_code)]
856#[cfg(feature = "all-types")]
857#[derive(Debug, Copy, Clone, Eq, PartialEq)]
858pub enum OfferEntryFlags {
859 PassiveFlag = 1,
860}
861
862#[cfg(feature = "all-types")]
863impl XdrCodec for OfferEntryFlags {
864 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
865 let value = *self as i32;
866 value.to_xdr_buffered(write_stream);
867 }
868
869 fn from_xdr_buffered<T: AsRef<[u8]>>(
870 read_stream: &mut ReadStream<T>,
871 ) -> Result<Self, DecodeError> {
872 let enum_value = i32::from_xdr_buffered(read_stream)?;
873 match enum_value {
874 1 => Ok(OfferEntryFlags::PassiveFlag),
875 _ => Err(DecodeError::InvalidEnumDiscriminator {
876 at_position: read_stream.get_position(),
877 }),
878 }
879 }
880}
881
882#[allow(dead_code)]
884#[derive(Debug, Clone, Eq, PartialEq)]
885pub struct OfferEntry {
886 pub seller_id: AccountId,
887 pub offer_id: Int64,
888 pub selling: Asset,
889 pub buying: Asset,
890 pub amount: Int64,
891 pub price: Price,
892 pub flags: Uint32,
893 pub ext: OfferEntryExt,
894}
895
896impl XdrCodec for OfferEntry {
897 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
898 self.seller_id.to_xdr_buffered(write_stream);
899 self.offer_id.to_xdr_buffered(write_stream);
900 self.selling.to_xdr_buffered(write_stream);
901 self.buying.to_xdr_buffered(write_stream);
902 self.amount.to_xdr_buffered(write_stream);
903 self.price.to_xdr_buffered(write_stream);
904 self.flags.to_xdr_buffered(write_stream);
905 self.ext.to_xdr_buffered(write_stream);
906 }
907
908 fn from_xdr_buffered<T: AsRef<[u8]>>(
909 read_stream: &mut ReadStream<T>,
910 ) -> Result<Self, DecodeError> {
911 Ok(OfferEntry {
912 seller_id: AccountId::from_xdr_buffered(read_stream)?,
913 offer_id: Int64::from_xdr_buffered(read_stream)?,
914 selling: Asset::from_xdr_buffered(read_stream)?,
915 buying: Asset::from_xdr_buffered(read_stream)?,
916 amount: Int64::from_xdr_buffered(read_stream)?,
917 price: Price::from_xdr_buffered(read_stream)?,
918 flags: Uint32::from_xdr_buffered(read_stream)?,
919 ext: OfferEntryExt::from_xdr_buffered(read_stream)?,
920 })
921 }
922}
923
924#[allow(dead_code)]
926#[derive(Debug, Clone, Eq, PartialEq)]
927pub struct DataEntry {
928 pub account_id: AccountId,
929 pub data_name: String64,
930 pub data_value: DataValue,
931 pub ext: DataEntryExt,
932}
933
934impl XdrCodec for DataEntry {
935 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
936 self.account_id.to_xdr_buffered(write_stream);
937 self.data_name.to_xdr_buffered(write_stream);
938 self.data_value.to_xdr_buffered(write_stream);
939 self.ext.to_xdr_buffered(write_stream);
940 }
941
942 fn from_xdr_buffered<T: AsRef<[u8]>>(
943 read_stream: &mut ReadStream<T>,
944 ) -> Result<Self, DecodeError> {
945 Ok(DataEntry {
946 account_id: AccountId::from_xdr_buffered(read_stream)?,
947 data_name: String64::from_xdr_buffered(read_stream)?,
948 data_value: DataValue::from_xdr_buffered(read_stream)?,
949 ext: DataEntryExt::from_xdr_buffered(read_stream)?,
950 })
951 }
952}
953
954#[allow(dead_code)]
956#[derive(Debug, Copy, Clone, Eq, PartialEq)]
957pub enum ClaimPredicateType {
958 ClaimPredicateUnconditional = 0,
959 ClaimPredicateAnd = 1,
960 ClaimPredicateOr = 2,
961 ClaimPredicateNot = 3,
962 ClaimPredicateBeforeAbsoluteTime = 4,
963 ClaimPredicateBeforeRelativeTime = 5,
964}
965
966impl XdrCodec for ClaimPredicateType {
967 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
968 let value = *self as i32;
969 value.to_xdr_buffered(write_stream);
970 }
971
972 fn from_xdr_buffered<T: AsRef<[u8]>>(
973 read_stream: &mut ReadStream<T>,
974 ) -> Result<Self, DecodeError> {
975 let enum_value = i32::from_xdr_buffered(read_stream)?;
976 match enum_value {
977 0 => Ok(ClaimPredicateType::ClaimPredicateUnconditional),
978 1 => Ok(ClaimPredicateType::ClaimPredicateAnd),
979 2 => Ok(ClaimPredicateType::ClaimPredicateOr),
980 3 => Ok(ClaimPredicateType::ClaimPredicateNot),
981 4 => Ok(ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime),
982 5 => Ok(ClaimPredicateType::ClaimPredicateBeforeRelativeTime),
983 _ => Err(DecodeError::InvalidEnumDiscriminator {
984 at_position: read_stream.get_position(),
985 }),
986 }
987 }
988}
989
990#[allow(dead_code)]
992#[derive(Debug, Copy, Clone, Eq, PartialEq)]
993pub enum ClaimantType {
994 ClaimantTypeV0 = 0,
995}
996
997impl XdrCodec for ClaimantType {
998 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
999 let value = *self as i32;
1000 value.to_xdr_buffered(write_stream);
1001 }
1002
1003 fn from_xdr_buffered<T: AsRef<[u8]>>(
1004 read_stream: &mut ReadStream<T>,
1005 ) -> Result<Self, DecodeError> {
1006 let enum_value = i32::from_xdr_buffered(read_stream)?;
1007 match enum_value {
1008 0 => Ok(ClaimantType::ClaimantTypeV0),
1009 _ => Err(DecodeError::InvalidEnumDiscriminator {
1010 at_position: read_stream.get_position(),
1011 }),
1012 }
1013 }
1014}
1015
1016#[allow(dead_code)]
1018#[derive(Debug, Clone, Eq, PartialEq)]
1019pub struct ClaimantV0 {
1020 pub destination: AccountId,
1021 pub predicate: ClaimPredicate,
1022}
1023
1024impl XdrCodec for ClaimantV0 {
1025 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1026 self.destination.to_xdr_buffered(write_stream);
1027 self.predicate.to_xdr_buffered(write_stream);
1028 }
1029
1030 fn from_xdr_buffered<T: AsRef<[u8]>>(
1031 read_stream: &mut ReadStream<T>,
1032 ) -> Result<Self, DecodeError> {
1033 Ok(ClaimantV0 {
1034 destination: AccountId::from_xdr_buffered(read_stream)?,
1035 predicate: ClaimPredicate::from_xdr_buffered(read_stream)?,
1036 })
1037 }
1038}
1039
1040#[allow(dead_code)]
1042#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1043pub enum ClaimableBalanceIdType {
1044 ClaimableBalanceIdTypeV0 = 0,
1045}
1046
1047impl XdrCodec for ClaimableBalanceIdType {
1048 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1049 let value = *self as i32;
1050 value.to_xdr_buffered(write_stream);
1051 }
1052
1053 fn from_xdr_buffered<T: AsRef<[u8]>>(
1054 read_stream: &mut ReadStream<T>,
1055 ) -> Result<Self, DecodeError> {
1056 let enum_value = i32::from_xdr_buffered(read_stream)?;
1057 match enum_value {
1058 0 => Ok(ClaimableBalanceIdType::ClaimableBalanceIdTypeV0),
1059 _ => Err(DecodeError::InvalidEnumDiscriminator {
1060 at_position: read_stream.get_position(),
1061 }),
1062 }
1063 }
1064}
1065
1066#[allow(dead_code)]
1068#[cfg(feature = "all-types")]
1069#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1070pub enum ClaimableBalanceFlags {
1071 ClaimableBalanceClawbackEnabledFlag = 1,
1072}
1073
1074#[cfg(feature = "all-types")]
1075impl XdrCodec for ClaimableBalanceFlags {
1076 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1077 let value = *self as i32;
1078 value.to_xdr_buffered(write_stream);
1079 }
1080
1081 fn from_xdr_buffered<T: AsRef<[u8]>>(
1082 read_stream: &mut ReadStream<T>,
1083 ) -> Result<Self, DecodeError> {
1084 let enum_value = i32::from_xdr_buffered(read_stream)?;
1085 match enum_value {
1086 1 => Ok(ClaimableBalanceFlags::ClaimableBalanceClawbackEnabledFlag),
1087 _ => Err(DecodeError::InvalidEnumDiscriminator {
1088 at_position: read_stream.get_position(),
1089 }),
1090 }
1091 }
1092}
1093
1094#[allow(dead_code)]
1096#[derive(Debug, Clone, Eq, PartialEq)]
1097pub struct ClaimableBalanceEntryExtensionV1 {
1098 pub ext: ClaimableBalanceEntryExtensionV1Ext,
1099 pub flags: Uint32,
1100}
1101
1102impl XdrCodec for ClaimableBalanceEntryExtensionV1 {
1103 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1104 self.ext.to_xdr_buffered(write_stream);
1105 self.flags.to_xdr_buffered(write_stream);
1106 }
1107
1108 fn from_xdr_buffered<T: AsRef<[u8]>>(
1109 read_stream: &mut ReadStream<T>,
1110 ) -> Result<Self, DecodeError> {
1111 Ok(ClaimableBalanceEntryExtensionV1 {
1112 ext: ClaimableBalanceEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
1113 flags: Uint32::from_xdr_buffered(read_stream)?,
1114 })
1115 }
1116}
1117
1118#[allow(dead_code)]
1120#[derive(Debug, Clone, Eq, PartialEq)]
1121pub struct ClaimableBalanceEntry {
1122 pub balance_id: ClaimableBalanceId,
1123 pub claimants: LimitedVarArray<Claimant, 10>,
1124 pub asset: Asset,
1125 pub amount: Int64,
1126 pub ext: ClaimableBalanceEntryExt,
1127}
1128
1129impl XdrCodec for ClaimableBalanceEntry {
1130 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1131 self.balance_id.to_xdr_buffered(write_stream);
1132 self.claimants.to_xdr_buffered(write_stream);
1133 self.asset.to_xdr_buffered(write_stream);
1134 self.amount.to_xdr_buffered(write_stream);
1135 self.ext.to_xdr_buffered(write_stream);
1136 }
1137
1138 fn from_xdr_buffered<T: AsRef<[u8]>>(
1139 read_stream: &mut ReadStream<T>,
1140 ) -> Result<Self, DecodeError> {
1141 Ok(ClaimableBalanceEntry {
1142 balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
1143 claimants: LimitedVarArray::<Claimant, 10>::from_xdr_buffered(read_stream)?,
1144 asset: Asset::from_xdr_buffered(read_stream)?,
1145 amount: Int64::from_xdr_buffered(read_stream)?,
1146 ext: ClaimableBalanceEntryExt::from_xdr_buffered(read_stream)?,
1147 })
1148 }
1149}
1150
1151#[allow(dead_code)]
1153#[derive(Debug, Clone, Eq, PartialEq)]
1154pub struct LiquidityPoolConstantProductParameters {
1155 pub asseta: Asset,
1156 pub asset_b: Asset,
1157 pub fee: Int32,
1158}
1159
1160impl XdrCodec for LiquidityPoolConstantProductParameters {
1161 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1162 self.asseta.to_xdr_buffered(write_stream);
1163 self.asset_b.to_xdr_buffered(write_stream);
1164 self.fee.to_xdr_buffered(write_stream);
1165 }
1166
1167 fn from_xdr_buffered<T: AsRef<[u8]>>(
1168 read_stream: &mut ReadStream<T>,
1169 ) -> Result<Self, DecodeError> {
1170 Ok(LiquidityPoolConstantProductParameters {
1171 asseta: Asset::from_xdr_buffered(read_stream)?,
1172 asset_b: Asset::from_xdr_buffered(read_stream)?,
1173 fee: Int32::from_xdr_buffered(read_stream)?,
1174 })
1175 }
1176}
1177
1178#[allow(dead_code)]
1180#[derive(Debug, Clone, Eq, PartialEq)]
1181pub struct LiquidityPoolEntryConstantProduct {
1182 pub params: LiquidityPoolConstantProductParameters,
1183 pub reserve_a: Int64,
1184 pub reserve_b: Int64,
1185 pub total_pool_shares: Int64,
1186 pub pool_shares_trust_line_count: Int64,
1187}
1188
1189impl XdrCodec for LiquidityPoolEntryConstantProduct {
1190 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1191 self.params.to_xdr_buffered(write_stream);
1192 self.reserve_a.to_xdr_buffered(write_stream);
1193 self.reserve_b.to_xdr_buffered(write_stream);
1194 self.total_pool_shares.to_xdr_buffered(write_stream);
1195 self.pool_shares_trust_line_count
1196 .to_xdr_buffered(write_stream);
1197 }
1198
1199 fn from_xdr_buffered<T: AsRef<[u8]>>(
1200 read_stream: &mut ReadStream<T>,
1201 ) -> Result<Self, DecodeError> {
1202 Ok(LiquidityPoolEntryConstantProduct {
1203 params: LiquidityPoolConstantProductParameters::from_xdr_buffered(read_stream)?,
1204 reserve_a: Int64::from_xdr_buffered(read_stream)?,
1205 reserve_b: Int64::from_xdr_buffered(read_stream)?,
1206 total_pool_shares: Int64::from_xdr_buffered(read_stream)?,
1207 pool_shares_trust_line_count: Int64::from_xdr_buffered(read_stream)?,
1208 })
1209 }
1210}
1211
1212#[allow(dead_code)]
1214#[derive(Debug, Clone, Eq, PartialEq)]
1215pub struct LiquidityPoolEntry {
1216 pub liquidity_pool_id: PoolId,
1217 pub body: LiquidityPoolEntryBody,
1218}
1219
1220impl XdrCodec for LiquidityPoolEntry {
1221 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1222 self.liquidity_pool_id.to_xdr_buffered(write_stream);
1223 self.body.to_xdr_buffered(write_stream);
1224 }
1225
1226 fn from_xdr_buffered<T: AsRef<[u8]>>(
1227 read_stream: &mut ReadStream<T>,
1228 ) -> Result<Self, DecodeError> {
1229 Ok(LiquidityPoolEntry {
1230 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
1231 body: LiquidityPoolEntryBody::from_xdr_buffered(read_stream)?,
1232 })
1233 }
1234}
1235
1236#[allow(dead_code)]
1238#[derive(Debug, Clone, Eq, PartialEq)]
1239pub struct LedgerEntryExtensionV1 {
1240 pub sponsoring_id: SponsorshipDescriptor,
1241 pub ext: LedgerEntryExtensionV1Ext,
1242}
1243
1244impl XdrCodec for LedgerEntryExtensionV1 {
1245 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1246 self.sponsoring_id.to_xdr_buffered(write_stream);
1247 self.ext.to_xdr_buffered(write_stream);
1248 }
1249
1250 fn from_xdr_buffered<T: AsRef<[u8]>>(
1251 read_stream: &mut ReadStream<T>,
1252 ) -> Result<Self, DecodeError> {
1253 Ok(LedgerEntryExtensionV1 {
1254 sponsoring_id: SponsorshipDescriptor::from_xdr_buffered(read_stream)?,
1255 ext: LedgerEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
1256 })
1257 }
1258}
1259
1260#[allow(dead_code)]
1262#[derive(Debug, Clone, Eq, PartialEq)]
1263pub struct LedgerEntry {
1264 pub last_modified_ledger_seq: Uint32,
1265 pub data: LedgerEntryData,
1266 pub ext: LedgerEntryExt,
1267}
1268
1269impl XdrCodec for LedgerEntry {
1270 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1271 self.last_modified_ledger_seq.to_xdr_buffered(write_stream);
1272 self.data.to_xdr_buffered(write_stream);
1273 self.ext.to_xdr_buffered(write_stream);
1274 }
1275
1276 fn from_xdr_buffered<T: AsRef<[u8]>>(
1277 read_stream: &mut ReadStream<T>,
1278 ) -> Result<Self, DecodeError> {
1279 Ok(LedgerEntry {
1280 last_modified_ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1281 data: LedgerEntryData::from_xdr_buffered(read_stream)?,
1282 ext: LedgerEntryExt::from_xdr_buffered(read_stream)?,
1283 })
1284 }
1285}
1286
1287#[allow(dead_code)]
1289#[derive(Debug, Clone, Eq, PartialEq)]
1290pub struct LedgerKeyAccount {
1291 pub account_id: AccountId,
1292}
1293
1294impl XdrCodec for LedgerKeyAccount {
1295 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1296 self.account_id.to_xdr_buffered(write_stream);
1297 }
1298
1299 fn from_xdr_buffered<T: AsRef<[u8]>>(
1300 read_stream: &mut ReadStream<T>,
1301 ) -> Result<Self, DecodeError> {
1302 Ok(LedgerKeyAccount {
1303 account_id: AccountId::from_xdr_buffered(read_stream)?,
1304 })
1305 }
1306}
1307
1308#[allow(dead_code)]
1310#[derive(Debug, Clone, Eq, PartialEq)]
1311pub struct LedgerKeyTrustLine {
1312 pub account_id: AccountId,
1313 pub asset: TrustLineAsset,
1314}
1315
1316impl XdrCodec for LedgerKeyTrustLine {
1317 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1318 self.account_id.to_xdr_buffered(write_stream);
1319 self.asset.to_xdr_buffered(write_stream);
1320 }
1321
1322 fn from_xdr_buffered<T: AsRef<[u8]>>(
1323 read_stream: &mut ReadStream<T>,
1324 ) -> Result<Self, DecodeError> {
1325 Ok(LedgerKeyTrustLine {
1326 account_id: AccountId::from_xdr_buffered(read_stream)?,
1327 asset: TrustLineAsset::from_xdr_buffered(read_stream)?,
1328 })
1329 }
1330}
1331
1332#[allow(dead_code)]
1334#[derive(Debug, Clone, Eq, PartialEq)]
1335pub struct LedgerKeyOffer {
1336 pub seller_id: AccountId,
1337 pub offer_id: Int64,
1338}
1339
1340impl XdrCodec for LedgerKeyOffer {
1341 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1342 self.seller_id.to_xdr_buffered(write_stream);
1343 self.offer_id.to_xdr_buffered(write_stream);
1344 }
1345
1346 fn from_xdr_buffered<T: AsRef<[u8]>>(
1347 read_stream: &mut ReadStream<T>,
1348 ) -> Result<Self, DecodeError> {
1349 Ok(LedgerKeyOffer {
1350 seller_id: AccountId::from_xdr_buffered(read_stream)?,
1351 offer_id: Int64::from_xdr_buffered(read_stream)?,
1352 })
1353 }
1354}
1355
1356#[allow(dead_code)]
1358#[derive(Debug, Clone, Eq, PartialEq)]
1359pub struct LedgerKeyData {
1360 pub account_id: AccountId,
1361 pub data_name: String64,
1362}
1363
1364impl XdrCodec for LedgerKeyData {
1365 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1366 self.account_id.to_xdr_buffered(write_stream);
1367 self.data_name.to_xdr_buffered(write_stream);
1368 }
1369
1370 fn from_xdr_buffered<T: AsRef<[u8]>>(
1371 read_stream: &mut ReadStream<T>,
1372 ) -> Result<Self, DecodeError> {
1373 Ok(LedgerKeyData {
1374 account_id: AccountId::from_xdr_buffered(read_stream)?,
1375 data_name: String64::from_xdr_buffered(read_stream)?,
1376 })
1377 }
1378}
1379
1380#[allow(dead_code)]
1382#[derive(Debug, Clone, Eq, PartialEq)]
1383pub struct LedgerKeyClaimableBalance {
1384 pub balance_id: ClaimableBalanceId,
1385}
1386
1387impl XdrCodec for LedgerKeyClaimableBalance {
1388 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1389 self.balance_id.to_xdr_buffered(write_stream);
1390 }
1391
1392 fn from_xdr_buffered<T: AsRef<[u8]>>(
1393 read_stream: &mut ReadStream<T>,
1394 ) -> Result<Self, DecodeError> {
1395 Ok(LedgerKeyClaimableBalance {
1396 balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
1397 })
1398 }
1399}
1400
1401#[allow(dead_code)]
1403#[derive(Debug, Clone, Eq, PartialEq)]
1404pub struct LedgerKeyLiquidityPool {
1405 pub liquidity_pool_id: PoolId,
1406}
1407
1408impl XdrCodec for LedgerKeyLiquidityPool {
1409 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1410 self.liquidity_pool_id.to_xdr_buffered(write_stream);
1411 }
1412
1413 fn from_xdr_buffered<T: AsRef<[u8]>>(
1414 read_stream: &mut ReadStream<T>,
1415 ) -> Result<Self, DecodeError> {
1416 Ok(LedgerKeyLiquidityPool {
1417 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
1418 })
1419 }
1420}
1421
1422#[allow(dead_code)]
1424#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1425pub enum EnvelopeType {
1426 EnvelopeTypeTxV0 = 0,
1427 EnvelopeTypeScp = 1,
1428 EnvelopeTypeTx = 2,
1429 EnvelopeTypeAuth = 3,
1430 EnvelopeTypeScpvalue = 4,
1431 EnvelopeTypeTxFeeBump = 5,
1432 EnvelopeTypeOpId = 6,
1433}
1434
1435impl XdrCodec for EnvelopeType {
1436 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1437 let value = *self as i32;
1438 value.to_xdr_buffered(write_stream);
1439 }
1440
1441 fn from_xdr_buffered<T: AsRef<[u8]>>(
1442 read_stream: &mut ReadStream<T>,
1443 ) -> Result<Self, DecodeError> {
1444 let enum_value = i32::from_xdr_buffered(read_stream)?;
1445 match enum_value {
1446 0 => Ok(EnvelopeType::EnvelopeTypeTxV0),
1447 1 => Ok(EnvelopeType::EnvelopeTypeScp),
1448 2 => Ok(EnvelopeType::EnvelopeTypeTx),
1449 3 => Ok(EnvelopeType::EnvelopeTypeAuth),
1450 4 => Ok(EnvelopeType::EnvelopeTypeScpvalue),
1451 5 => Ok(EnvelopeType::EnvelopeTypeTxFeeBump),
1452 6 => Ok(EnvelopeType::EnvelopeTypeOpId),
1453 _ => Err(DecodeError::InvalidEnumDiscriminator {
1454 at_position: read_stream.get_position(),
1455 }),
1456 }
1457 }
1458}
1459
1460#[allow(dead_code)]
1462#[cfg(feature = "all-types")]
1463pub type UpgradeType = LimitedVarOpaque<128>;
1464
1465#[allow(dead_code)]
1467#[cfg(feature = "all-types")]
1468#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1469pub enum StellarValueType {
1470 StellarValueBasic = 0,
1471 StellarValueSigned = 1,
1472}
1473
1474#[cfg(feature = "all-types")]
1475impl XdrCodec for StellarValueType {
1476 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1477 let value = *self as i32;
1478 value.to_xdr_buffered(write_stream);
1479 }
1480
1481 fn from_xdr_buffered<T: AsRef<[u8]>>(
1482 read_stream: &mut ReadStream<T>,
1483 ) -> Result<Self, DecodeError> {
1484 let enum_value = i32::from_xdr_buffered(read_stream)?;
1485 match enum_value {
1486 0 => Ok(StellarValueType::StellarValueBasic),
1487 1 => Ok(StellarValueType::StellarValueSigned),
1488 _ => Err(DecodeError::InvalidEnumDiscriminator {
1489 at_position: read_stream.get_position(),
1490 }),
1491 }
1492 }
1493}
1494
1495#[allow(dead_code)]
1497#[cfg(feature = "all-types")]
1498#[derive(Debug, Clone, Eq, PartialEq)]
1499pub struct LedgerCloseValueSignature {
1500 pub node_id: NodeId,
1501 pub signature: Signature,
1502}
1503
1504#[cfg(feature = "all-types")]
1505impl XdrCodec for LedgerCloseValueSignature {
1506 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1507 self.node_id.to_xdr_buffered(write_stream);
1508 self.signature.to_xdr_buffered(write_stream);
1509 }
1510
1511 fn from_xdr_buffered<T: AsRef<[u8]>>(
1512 read_stream: &mut ReadStream<T>,
1513 ) -> Result<Self, DecodeError> {
1514 Ok(LedgerCloseValueSignature {
1515 node_id: NodeId::from_xdr_buffered(read_stream)?,
1516 signature: Signature::from_xdr_buffered(read_stream)?,
1517 })
1518 }
1519}
1520
1521#[allow(dead_code)]
1523#[cfg(feature = "all-types")]
1524#[derive(Debug, Clone, Eq, PartialEq)]
1525pub struct StellarValue {
1526 pub tx_set_hash: Hash,
1527 pub close_time: TimePoint,
1528 pub upgrades: LimitedVarArray<UpgradeType, 6>,
1529 pub ext: StellarValueExt,
1530}
1531
1532#[cfg(feature = "all-types")]
1533impl XdrCodec for StellarValue {
1534 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1535 self.tx_set_hash.to_xdr_buffered(write_stream);
1536 self.close_time.to_xdr_buffered(write_stream);
1537 self.upgrades.to_xdr_buffered(write_stream);
1538 self.ext.to_xdr_buffered(write_stream);
1539 }
1540
1541 fn from_xdr_buffered<T: AsRef<[u8]>>(
1542 read_stream: &mut ReadStream<T>,
1543 ) -> Result<Self, DecodeError> {
1544 Ok(StellarValue {
1545 tx_set_hash: Hash::from_xdr_buffered(read_stream)?,
1546 close_time: TimePoint::from_xdr_buffered(read_stream)?,
1547 upgrades: LimitedVarArray::<UpgradeType, 6>::from_xdr_buffered(read_stream)?,
1548 ext: StellarValueExt::from_xdr_buffered(read_stream)?,
1549 })
1550 }
1551}
1552
1553#[allow(dead_code)]
1555#[cfg(feature = "all-types")]
1556#[derive(Debug, Clone, Eq, PartialEq)]
1557pub struct LedgerHeader {
1558 pub ledger_version: Uint32,
1559 pub previous_ledger_hash: Hash,
1560 pub scp_value: StellarValue,
1561 pub tx_set_result_hash: Hash,
1562 pub bucket_list_hash: Hash,
1563 pub ledger_seq: Uint32,
1564 pub total_coins: Int64,
1565 pub fee_pool: Int64,
1566 pub inflation_seq: Uint32,
1567 pub id_pool: Uint64,
1568 pub base_fee: Uint32,
1569 pub base_reserve: Uint32,
1570 pub max_tx_set_size: Uint32,
1571 pub skip_list: [Hash; 4],
1572 pub ext: LedgerHeaderExt,
1573}
1574
1575#[cfg(feature = "all-types")]
1576impl XdrCodec for LedgerHeader {
1577 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1578 self.ledger_version.to_xdr_buffered(write_stream);
1579 self.previous_ledger_hash.to_xdr_buffered(write_stream);
1580 self.scp_value.to_xdr_buffered(write_stream);
1581 self.tx_set_result_hash.to_xdr_buffered(write_stream);
1582 self.bucket_list_hash.to_xdr_buffered(write_stream);
1583 self.ledger_seq.to_xdr_buffered(write_stream);
1584 self.total_coins.to_xdr_buffered(write_stream);
1585 self.fee_pool.to_xdr_buffered(write_stream);
1586 self.inflation_seq.to_xdr_buffered(write_stream);
1587 self.id_pool.to_xdr_buffered(write_stream);
1588 self.base_fee.to_xdr_buffered(write_stream);
1589 self.base_reserve.to_xdr_buffered(write_stream);
1590 self.max_tx_set_size.to_xdr_buffered(write_stream);
1591 self.skip_list.to_xdr_buffered(write_stream);
1592 self.ext.to_xdr_buffered(write_stream);
1593 }
1594
1595 fn from_xdr_buffered<T: AsRef<[u8]>>(
1596 read_stream: &mut ReadStream<T>,
1597 ) -> Result<Self, DecodeError> {
1598 Ok(LedgerHeader {
1599 ledger_version: Uint32::from_xdr_buffered(read_stream)?,
1600 previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
1601 scp_value: StellarValue::from_xdr_buffered(read_stream)?,
1602 tx_set_result_hash: Hash::from_xdr_buffered(read_stream)?,
1603 bucket_list_hash: Hash::from_xdr_buffered(read_stream)?,
1604 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1605 total_coins: Int64::from_xdr_buffered(read_stream)?,
1606 fee_pool: Int64::from_xdr_buffered(read_stream)?,
1607 inflation_seq: Uint32::from_xdr_buffered(read_stream)?,
1608 id_pool: Uint64::from_xdr_buffered(read_stream)?,
1609 base_fee: Uint32::from_xdr_buffered(read_stream)?,
1610 base_reserve: Uint32::from_xdr_buffered(read_stream)?,
1611 max_tx_set_size: Uint32::from_xdr_buffered(read_stream)?,
1612 skip_list: <[Hash; 4]>::from_xdr_buffered(read_stream)?,
1613 ext: LedgerHeaderExt::from_xdr_buffered(read_stream)?,
1614 })
1615 }
1616}
1617
1618#[allow(dead_code)]
1620#[cfg(feature = "all-types")]
1621#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1622pub enum LedgerUpgradeType {
1623 LedgerUpgradeVersion = 1,
1624 LedgerUpgradeBaseFee = 2,
1625 LedgerUpgradeMaxTxSetSize = 3,
1626 LedgerUpgradeBaseReserve = 4,
1627}
1628
1629#[cfg(feature = "all-types")]
1630impl XdrCodec for LedgerUpgradeType {
1631 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1632 let value = *self as i32;
1633 value.to_xdr_buffered(write_stream);
1634 }
1635
1636 fn from_xdr_buffered<T: AsRef<[u8]>>(
1637 read_stream: &mut ReadStream<T>,
1638 ) -> Result<Self, DecodeError> {
1639 let enum_value = i32::from_xdr_buffered(read_stream)?;
1640 match enum_value {
1641 1 => Ok(LedgerUpgradeType::LedgerUpgradeVersion),
1642 2 => Ok(LedgerUpgradeType::LedgerUpgradeBaseFee),
1643 3 => Ok(LedgerUpgradeType::LedgerUpgradeMaxTxSetSize),
1644 4 => Ok(LedgerUpgradeType::LedgerUpgradeBaseReserve),
1645 _ => Err(DecodeError::InvalidEnumDiscriminator {
1646 at_position: read_stream.get_position(),
1647 }),
1648 }
1649 }
1650}
1651
1652#[allow(dead_code)]
1654#[cfg(feature = "all-types")]
1655#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1656pub enum BucketEntryType {
1657 Metaentry = -1,
1658 Liveentry = 0,
1659 Deadentry = 1,
1660 Initentry = 2,
1661}
1662
1663#[cfg(feature = "all-types")]
1664impl XdrCodec for BucketEntryType {
1665 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1666 let value = *self as i32;
1667 value.to_xdr_buffered(write_stream);
1668 }
1669
1670 fn from_xdr_buffered<T: AsRef<[u8]>>(
1671 read_stream: &mut ReadStream<T>,
1672 ) -> Result<Self, DecodeError> {
1673 let enum_value = i32::from_xdr_buffered(read_stream)?;
1674 match enum_value {
1675 -1 => Ok(BucketEntryType::Metaentry),
1676 0 => Ok(BucketEntryType::Liveentry),
1677 1 => Ok(BucketEntryType::Deadentry),
1678 2 => Ok(BucketEntryType::Initentry),
1679 _ => Err(DecodeError::InvalidEnumDiscriminator {
1680 at_position: read_stream.get_position(),
1681 }),
1682 }
1683 }
1684}
1685
1686#[allow(dead_code)]
1688#[cfg(feature = "all-types")]
1689#[derive(Debug, Clone, Eq, PartialEq)]
1690pub struct BucketMetadata {
1691 pub ledger_version: Uint32,
1692 pub ext: BucketMetadataExt,
1693}
1694
1695#[cfg(feature = "all-types")]
1696impl XdrCodec for BucketMetadata {
1697 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1698 self.ledger_version.to_xdr_buffered(write_stream);
1699 self.ext.to_xdr_buffered(write_stream);
1700 }
1701
1702 fn from_xdr_buffered<T: AsRef<[u8]>>(
1703 read_stream: &mut ReadStream<T>,
1704 ) -> Result<Self, DecodeError> {
1705 Ok(BucketMetadata {
1706 ledger_version: Uint32::from_xdr_buffered(read_stream)?,
1707 ext: BucketMetadataExt::from_xdr_buffered(read_stream)?,
1708 })
1709 }
1710}
1711
1712#[allow(dead_code)]
1714#[cfg(feature = "all-types")]
1715#[derive(Debug, Clone, Eq, PartialEq)]
1716pub struct TransactionSet {
1717 pub previous_ledger_hash: Hash,
1718 pub txes: UnlimitedVarArray<TransactionEnvelope>,
1719}
1720
1721#[cfg(feature = "all-types")]
1722impl XdrCodec for TransactionSet {
1723 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1724 self.previous_ledger_hash.to_xdr_buffered(write_stream);
1725 self.txes.to_xdr_buffered(write_stream);
1726 }
1727
1728 fn from_xdr_buffered<T: AsRef<[u8]>>(
1729 read_stream: &mut ReadStream<T>,
1730 ) -> Result<Self, DecodeError> {
1731 Ok(TransactionSet {
1732 previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
1733 txes: UnlimitedVarArray::<TransactionEnvelope>::from_xdr_buffered(read_stream)?,
1734 })
1735 }
1736}
1737
1738#[allow(dead_code)]
1740#[cfg(feature = "all-types")]
1741#[derive(Debug, Clone, Eq, PartialEq)]
1742pub struct TransactionResultPair {
1743 pub transaction_hash: Hash,
1744 pub result: TransactionResult,
1745}
1746
1747#[cfg(feature = "all-types")]
1748impl XdrCodec for TransactionResultPair {
1749 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1750 self.transaction_hash.to_xdr_buffered(write_stream);
1751 self.result.to_xdr_buffered(write_stream);
1752 }
1753
1754 fn from_xdr_buffered<T: AsRef<[u8]>>(
1755 read_stream: &mut ReadStream<T>,
1756 ) -> Result<Self, DecodeError> {
1757 Ok(TransactionResultPair {
1758 transaction_hash: Hash::from_xdr_buffered(read_stream)?,
1759 result: TransactionResult::from_xdr_buffered(read_stream)?,
1760 })
1761 }
1762}
1763
1764#[allow(dead_code)]
1766#[cfg(feature = "all-types")]
1767#[derive(Debug, Clone, Eq, PartialEq)]
1768pub struct TransactionResultSet {
1769 pub results: UnlimitedVarArray<TransactionResultPair>,
1770}
1771
1772#[cfg(feature = "all-types")]
1773impl XdrCodec for TransactionResultSet {
1774 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1775 self.results.to_xdr_buffered(write_stream);
1776 }
1777
1778 fn from_xdr_buffered<T: AsRef<[u8]>>(
1779 read_stream: &mut ReadStream<T>,
1780 ) -> Result<Self, DecodeError> {
1781 Ok(TransactionResultSet {
1782 results: UnlimitedVarArray::<TransactionResultPair>::from_xdr_buffered(read_stream)?,
1783 })
1784 }
1785}
1786
1787#[allow(dead_code)]
1789#[cfg(feature = "all-types")]
1790#[derive(Debug, Clone, Eq, PartialEq)]
1791pub struct TransactionHistoryEntry {
1792 pub ledger_seq: Uint32,
1793 pub tx_set: TransactionSet,
1794 pub ext: TransactionHistoryEntryExt,
1795}
1796
1797#[cfg(feature = "all-types")]
1798impl XdrCodec for TransactionHistoryEntry {
1799 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1800 self.ledger_seq.to_xdr_buffered(write_stream);
1801 self.tx_set.to_xdr_buffered(write_stream);
1802 self.ext.to_xdr_buffered(write_stream);
1803 }
1804
1805 fn from_xdr_buffered<T: AsRef<[u8]>>(
1806 read_stream: &mut ReadStream<T>,
1807 ) -> Result<Self, DecodeError> {
1808 Ok(TransactionHistoryEntry {
1809 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1810 tx_set: TransactionSet::from_xdr_buffered(read_stream)?,
1811 ext: TransactionHistoryEntryExt::from_xdr_buffered(read_stream)?,
1812 })
1813 }
1814}
1815
1816#[allow(dead_code)]
1818#[cfg(feature = "all-types")]
1819#[derive(Debug, Clone, Eq, PartialEq)]
1820pub struct TransactionHistoryResultEntry {
1821 pub ledger_seq: Uint32,
1822 pub tx_result_set: TransactionResultSet,
1823 pub ext: TransactionHistoryResultEntryExt,
1824}
1825
1826#[cfg(feature = "all-types")]
1827impl XdrCodec for TransactionHistoryResultEntry {
1828 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1829 self.ledger_seq.to_xdr_buffered(write_stream);
1830 self.tx_result_set.to_xdr_buffered(write_stream);
1831 self.ext.to_xdr_buffered(write_stream);
1832 }
1833
1834 fn from_xdr_buffered<T: AsRef<[u8]>>(
1835 read_stream: &mut ReadStream<T>,
1836 ) -> Result<Self, DecodeError> {
1837 Ok(TransactionHistoryResultEntry {
1838 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1839 tx_result_set: TransactionResultSet::from_xdr_buffered(read_stream)?,
1840 ext: TransactionHistoryResultEntryExt::from_xdr_buffered(read_stream)?,
1841 })
1842 }
1843}
1844
1845#[allow(dead_code)]
1847#[cfg(feature = "all-types")]
1848#[derive(Debug, Clone, Eq, PartialEq)]
1849pub struct LedgerHeaderHistoryEntry {
1850 pub hash: Hash,
1851 pub header: LedgerHeader,
1852 pub ext: LedgerHeaderHistoryEntryExt,
1853}
1854
1855#[cfg(feature = "all-types")]
1856impl XdrCodec for LedgerHeaderHistoryEntry {
1857 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1858 self.hash.to_xdr_buffered(write_stream);
1859 self.header.to_xdr_buffered(write_stream);
1860 self.ext.to_xdr_buffered(write_stream);
1861 }
1862
1863 fn from_xdr_buffered<T: AsRef<[u8]>>(
1864 read_stream: &mut ReadStream<T>,
1865 ) -> Result<Self, DecodeError> {
1866 Ok(LedgerHeaderHistoryEntry {
1867 hash: Hash::from_xdr_buffered(read_stream)?,
1868 header: LedgerHeader::from_xdr_buffered(read_stream)?,
1869 ext: LedgerHeaderHistoryEntryExt::from_xdr_buffered(read_stream)?,
1870 })
1871 }
1872}
1873
1874#[allow(dead_code)]
1876#[cfg(feature = "all-types")]
1877#[derive(Debug, Clone, Eq, PartialEq)]
1878pub struct LedgerScpMessages {
1879 pub ledger_seq: Uint32,
1880 pub messages: UnlimitedVarArray<ScpEnvelope>,
1881}
1882
1883#[cfg(feature = "all-types")]
1884impl XdrCodec for LedgerScpMessages {
1885 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1886 self.ledger_seq.to_xdr_buffered(write_stream);
1887 self.messages.to_xdr_buffered(write_stream);
1888 }
1889
1890 fn from_xdr_buffered<T: AsRef<[u8]>>(
1891 read_stream: &mut ReadStream<T>,
1892 ) -> Result<Self, DecodeError> {
1893 Ok(LedgerScpMessages {
1894 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1895 messages: UnlimitedVarArray::<ScpEnvelope>::from_xdr_buffered(read_stream)?,
1896 })
1897 }
1898}
1899
1900#[allow(dead_code)]
1902#[cfg(feature = "all-types")]
1903#[derive(Debug, Clone, Eq, PartialEq)]
1904pub struct ScpHistoryEntryV0 {
1905 pub quorum_sets: UnlimitedVarArray<ScpQuorumSet>,
1906 pub ledger_messages: LedgerScpMessages,
1907}
1908
1909#[cfg(feature = "all-types")]
1910impl XdrCodec for ScpHistoryEntryV0 {
1911 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1912 self.quorum_sets.to_xdr_buffered(write_stream);
1913 self.ledger_messages.to_xdr_buffered(write_stream);
1914 }
1915
1916 fn from_xdr_buffered<T: AsRef<[u8]>>(
1917 read_stream: &mut ReadStream<T>,
1918 ) -> Result<Self, DecodeError> {
1919 Ok(ScpHistoryEntryV0 {
1920 quorum_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
1921 ledger_messages: LedgerScpMessages::from_xdr_buffered(read_stream)?,
1922 })
1923 }
1924}
1925
1926#[allow(dead_code)]
1928#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1929pub enum LedgerEntryChangeType {
1930 LedgerEntryCreated = 0,
1931 LedgerEntryUpdated = 1,
1932 LedgerEntryRemoved = 2,
1933 LedgerEntryState = 3,
1934}
1935
1936impl XdrCodec for LedgerEntryChangeType {
1937 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1938 let value = *self as i32;
1939 value.to_xdr_buffered(write_stream);
1940 }
1941
1942 fn from_xdr_buffered<T: AsRef<[u8]>>(
1943 read_stream: &mut ReadStream<T>,
1944 ) -> Result<Self, DecodeError> {
1945 let enum_value = i32::from_xdr_buffered(read_stream)?;
1946 match enum_value {
1947 0 => Ok(LedgerEntryChangeType::LedgerEntryCreated),
1948 1 => Ok(LedgerEntryChangeType::LedgerEntryUpdated),
1949 2 => Ok(LedgerEntryChangeType::LedgerEntryRemoved),
1950 3 => Ok(LedgerEntryChangeType::LedgerEntryState),
1951 _ => Err(DecodeError::InvalidEnumDiscriminator {
1952 at_position: read_stream.get_position(),
1953 }),
1954 }
1955 }
1956}
1957
1958#[allow(dead_code)]
1960pub type LedgerEntryChanges = UnlimitedVarArray<LedgerEntryChange>;
1961
1962#[allow(dead_code)]
1964#[derive(Debug, Clone, Eq, PartialEq)]
1965pub struct OperationMeta {
1966 pub changes: LedgerEntryChanges,
1967}
1968
1969impl XdrCodec for OperationMeta {
1970 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1971 self.changes.to_xdr_buffered(write_stream);
1972 }
1973
1974 fn from_xdr_buffered<T: AsRef<[u8]>>(
1975 read_stream: &mut ReadStream<T>,
1976 ) -> Result<Self, DecodeError> {
1977 Ok(OperationMeta {
1978 changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
1979 })
1980 }
1981}
1982
1983#[allow(dead_code)]
1985#[derive(Debug, Clone, Eq, PartialEq)]
1986pub struct TransactionMetaV1 {
1987 pub tx_changes: LedgerEntryChanges,
1988 pub operations: UnlimitedVarArray<OperationMeta>,
1989}
1990
1991impl XdrCodec for TransactionMetaV1 {
1992 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1993 self.tx_changes.to_xdr_buffered(write_stream);
1994 self.operations.to_xdr_buffered(write_stream);
1995 }
1996
1997 fn from_xdr_buffered<T: AsRef<[u8]>>(
1998 read_stream: &mut ReadStream<T>,
1999 ) -> Result<Self, DecodeError> {
2000 Ok(TransactionMetaV1 {
2001 tx_changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2002 operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
2003 })
2004 }
2005}
2006
2007#[allow(dead_code)]
2009#[derive(Debug, Clone, Eq, PartialEq)]
2010pub struct TransactionMetaV2 {
2011 pub tx_changes_before: LedgerEntryChanges,
2012 pub operations: UnlimitedVarArray<OperationMeta>,
2013 pub tx_changes_after: LedgerEntryChanges,
2014}
2015
2016impl XdrCodec for TransactionMetaV2 {
2017 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2018 self.tx_changes_before.to_xdr_buffered(write_stream);
2019 self.operations.to_xdr_buffered(write_stream);
2020 self.tx_changes_after.to_xdr_buffered(write_stream);
2021 }
2022
2023 fn from_xdr_buffered<T: AsRef<[u8]>>(
2024 read_stream: &mut ReadStream<T>,
2025 ) -> Result<Self, DecodeError> {
2026 Ok(TransactionMetaV2 {
2027 tx_changes_before: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2028 operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
2029 tx_changes_after: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2030 })
2031 }
2032}
2033
2034#[allow(dead_code)]
2036#[cfg(feature = "all-types")]
2037#[derive(Debug, Clone, Eq, PartialEq)]
2038pub struct TransactionResultMeta {
2039 pub result: TransactionResultPair,
2040 pub fee_processing: LedgerEntryChanges,
2041 pub tx_apply_processing: TransactionMeta,
2042}
2043
2044#[cfg(feature = "all-types")]
2045impl XdrCodec for TransactionResultMeta {
2046 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2047 self.result.to_xdr_buffered(write_stream);
2048 self.fee_processing.to_xdr_buffered(write_stream);
2049 self.tx_apply_processing.to_xdr_buffered(write_stream);
2050 }
2051
2052 fn from_xdr_buffered<T: AsRef<[u8]>>(
2053 read_stream: &mut ReadStream<T>,
2054 ) -> Result<Self, DecodeError> {
2055 Ok(TransactionResultMeta {
2056 result: TransactionResultPair::from_xdr_buffered(read_stream)?,
2057 fee_processing: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2058 tx_apply_processing: TransactionMeta::from_xdr_buffered(read_stream)?,
2059 })
2060 }
2061}
2062
2063#[allow(dead_code)]
2065#[cfg(feature = "all-types")]
2066#[derive(Debug, Clone, Eq, PartialEq)]
2067pub struct UpgradeEntryMeta {
2068 pub upgrade: LedgerUpgrade,
2069 pub changes: LedgerEntryChanges,
2070}
2071
2072#[cfg(feature = "all-types")]
2073impl XdrCodec for UpgradeEntryMeta {
2074 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2075 self.upgrade.to_xdr_buffered(write_stream);
2076 self.changes.to_xdr_buffered(write_stream);
2077 }
2078
2079 fn from_xdr_buffered<T: AsRef<[u8]>>(
2080 read_stream: &mut ReadStream<T>,
2081 ) -> Result<Self, DecodeError> {
2082 Ok(UpgradeEntryMeta {
2083 upgrade: LedgerUpgrade::from_xdr_buffered(read_stream)?,
2084 changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2085 })
2086 }
2087}
2088
2089#[allow(dead_code)]
2091#[cfg(feature = "all-types")]
2092#[derive(Debug, Clone, Eq, PartialEq)]
2093pub struct LedgerCloseMetaV0 {
2094 pub ledger_header: LedgerHeaderHistoryEntry,
2095 pub tx_set: TransactionSet,
2096 pub tx_processing: UnlimitedVarArray<TransactionResultMeta>,
2097 pub upgrades_processing: UnlimitedVarArray<UpgradeEntryMeta>,
2098 pub scp_info: UnlimitedVarArray<ScpHistoryEntry>,
2099}
2100
2101#[cfg(feature = "all-types")]
2102impl XdrCodec for LedgerCloseMetaV0 {
2103 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2104 self.ledger_header.to_xdr_buffered(write_stream);
2105 self.tx_set.to_xdr_buffered(write_stream);
2106 self.tx_processing.to_xdr_buffered(write_stream);
2107 self.upgrades_processing.to_xdr_buffered(write_stream);
2108 self.scp_info.to_xdr_buffered(write_stream);
2109 }
2110
2111 fn from_xdr_buffered<T: AsRef<[u8]>>(
2112 read_stream: &mut ReadStream<T>,
2113 ) -> Result<Self, DecodeError> {
2114 Ok(LedgerCloseMetaV0 {
2115 ledger_header: LedgerHeaderHistoryEntry::from_xdr_buffered(read_stream)?,
2116 tx_set: TransactionSet::from_xdr_buffered(read_stream)?,
2117 tx_processing: UnlimitedVarArray::<TransactionResultMeta>::from_xdr_buffered(
2118 read_stream,
2119 )?,
2120 upgrades_processing: UnlimitedVarArray::<UpgradeEntryMeta>::from_xdr_buffered(
2121 read_stream,
2122 )?,
2123 scp_info: UnlimitedVarArray::<ScpHistoryEntry>::from_xdr_buffered(read_stream)?,
2124 })
2125 }
2126}
2127
2128#[allow(dead_code)]
2130#[cfg(feature = "all-types")]
2131#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2132pub enum ErrorCode {
2133 ErrMisc = 0,
2134 ErrData = 1,
2135 ErrConf = 2,
2136 ErrAuth = 3,
2137 ErrLoad = 4,
2138}
2139
2140#[cfg(feature = "all-types")]
2141impl XdrCodec for ErrorCode {
2142 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2143 let value = *self as i32;
2144 value.to_xdr_buffered(write_stream);
2145 }
2146
2147 fn from_xdr_buffered<T: AsRef<[u8]>>(
2148 read_stream: &mut ReadStream<T>,
2149 ) -> Result<Self, DecodeError> {
2150 let enum_value = i32::from_xdr_buffered(read_stream)?;
2151 match enum_value {
2152 0 => Ok(ErrorCode::ErrMisc),
2153 1 => Ok(ErrorCode::ErrData),
2154 2 => Ok(ErrorCode::ErrConf),
2155 3 => Ok(ErrorCode::ErrAuth),
2156 4 => Ok(ErrorCode::ErrLoad),
2157 _ => Err(DecodeError::InvalidEnumDiscriminator {
2158 at_position: read_stream.get_position(),
2159 }),
2160 }
2161 }
2162}
2163
2164#[allow(dead_code)]
2166#[cfg(feature = "all-types")]
2167#[derive(Debug, Clone, Eq, PartialEq)]
2168pub struct Error {
2169 pub code: ErrorCode,
2170 pub msg: LimitedString<100>,
2171}
2172
2173#[cfg(feature = "all-types")]
2174impl XdrCodec for Error {
2175 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2176 self.code.to_xdr_buffered(write_stream);
2177 self.msg.to_xdr_buffered(write_stream);
2178 }
2179
2180 fn from_xdr_buffered<T: AsRef<[u8]>>(
2181 read_stream: &mut ReadStream<T>,
2182 ) -> Result<Self, DecodeError> {
2183 Ok(Error {
2184 code: ErrorCode::from_xdr_buffered(read_stream)?,
2185 msg: LimitedString::<100>::from_xdr_buffered(read_stream)?,
2186 })
2187 }
2188}
2189
2190#[allow(dead_code)]
2192#[cfg(feature = "all-types")]
2193#[derive(Debug, Clone, Eq, PartialEq)]
2194pub struct AuthCert {
2195 pub pubkey: Curve25519Public,
2196 pub expiration: Uint64,
2197 pub sig: Signature,
2198}
2199
2200#[cfg(feature = "all-types")]
2201impl XdrCodec for AuthCert {
2202 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2203 self.pubkey.to_xdr_buffered(write_stream);
2204 self.expiration.to_xdr_buffered(write_stream);
2205 self.sig.to_xdr_buffered(write_stream);
2206 }
2207
2208 fn from_xdr_buffered<T: AsRef<[u8]>>(
2209 read_stream: &mut ReadStream<T>,
2210 ) -> Result<Self, DecodeError> {
2211 Ok(AuthCert {
2212 pubkey: Curve25519Public::from_xdr_buffered(read_stream)?,
2213 expiration: Uint64::from_xdr_buffered(read_stream)?,
2214 sig: Signature::from_xdr_buffered(read_stream)?,
2215 })
2216 }
2217}
2218
2219#[allow(dead_code)]
2221#[cfg(feature = "all-types")]
2222#[derive(Debug, Clone, Eq, PartialEq)]
2223pub struct Hello {
2224 pub ledger_version: Uint32,
2225 pub overlay_version: Uint32,
2226 pub overlay_min_version: Uint32,
2227 pub network_id: Hash,
2228 pub version_str: LimitedString<100>,
2229 pub listening_port: i32,
2230 pub peer_id: NodeId,
2231 pub cert: AuthCert,
2232 pub nonce: Uint256,
2233}
2234
2235#[cfg(feature = "all-types")]
2236impl XdrCodec for Hello {
2237 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2238 self.ledger_version.to_xdr_buffered(write_stream);
2239 self.overlay_version.to_xdr_buffered(write_stream);
2240 self.overlay_min_version.to_xdr_buffered(write_stream);
2241 self.network_id.to_xdr_buffered(write_stream);
2242 self.version_str.to_xdr_buffered(write_stream);
2243 self.listening_port.to_xdr_buffered(write_stream);
2244 self.peer_id.to_xdr_buffered(write_stream);
2245 self.cert.to_xdr_buffered(write_stream);
2246 self.nonce.to_xdr_buffered(write_stream);
2247 }
2248
2249 fn from_xdr_buffered<T: AsRef<[u8]>>(
2250 read_stream: &mut ReadStream<T>,
2251 ) -> Result<Self, DecodeError> {
2252 Ok(Hello {
2253 ledger_version: Uint32::from_xdr_buffered(read_stream)?,
2254 overlay_version: Uint32::from_xdr_buffered(read_stream)?,
2255 overlay_min_version: Uint32::from_xdr_buffered(read_stream)?,
2256 network_id: Hash::from_xdr_buffered(read_stream)?,
2257 version_str: LimitedString::<100>::from_xdr_buffered(read_stream)?,
2258 listening_port: i32::from_xdr_buffered(read_stream)?,
2259 peer_id: NodeId::from_xdr_buffered(read_stream)?,
2260 cert: AuthCert::from_xdr_buffered(read_stream)?,
2261 nonce: Uint256::from_xdr_buffered(read_stream)?,
2262 })
2263 }
2264}
2265
2266#[allow(dead_code)]
2268#[cfg(feature = "all-types")]
2269#[derive(Debug, Clone, Eq, PartialEq)]
2270pub struct Auth {
2271 pub unused: i32,
2272}
2273
2274#[cfg(feature = "all-types")]
2275impl XdrCodec for Auth {
2276 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2277 self.unused.to_xdr_buffered(write_stream);
2278 }
2279
2280 fn from_xdr_buffered<T: AsRef<[u8]>>(
2281 read_stream: &mut ReadStream<T>,
2282 ) -> Result<Self, DecodeError> {
2283 Ok(Auth {
2284 unused: i32::from_xdr_buffered(read_stream)?,
2285 })
2286 }
2287}
2288
2289#[allow(dead_code)]
2291#[cfg(feature = "all-types")]
2292#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2293pub enum IpAddrType {
2294 IPv4 = 0,
2295 IPv6 = 1,
2296}
2297
2298#[cfg(feature = "all-types")]
2299impl XdrCodec for IpAddrType {
2300 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2301 let value = *self as i32;
2302 value.to_xdr_buffered(write_stream);
2303 }
2304
2305 fn from_xdr_buffered<T: AsRef<[u8]>>(
2306 read_stream: &mut ReadStream<T>,
2307 ) -> Result<Self, DecodeError> {
2308 let enum_value = i32::from_xdr_buffered(read_stream)?;
2309 match enum_value {
2310 0 => Ok(IpAddrType::IPv4),
2311 1 => Ok(IpAddrType::IPv6),
2312 _ => Err(DecodeError::InvalidEnumDiscriminator {
2313 at_position: read_stream.get_position(),
2314 }),
2315 }
2316 }
2317}
2318
2319#[allow(dead_code)]
2321#[cfg(feature = "all-types")]
2322#[derive(Debug, Clone, Eq, PartialEq)]
2323pub struct PeerAddress {
2324 pub ip: PeerAddressIp,
2325 pub port: Uint32,
2326 pub num_failures: Uint32,
2327}
2328
2329#[cfg(feature = "all-types")]
2330impl XdrCodec for PeerAddress {
2331 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2332 self.ip.to_xdr_buffered(write_stream);
2333 self.port.to_xdr_buffered(write_stream);
2334 self.num_failures.to_xdr_buffered(write_stream);
2335 }
2336
2337 fn from_xdr_buffered<T: AsRef<[u8]>>(
2338 read_stream: &mut ReadStream<T>,
2339 ) -> Result<Self, DecodeError> {
2340 Ok(PeerAddress {
2341 ip: PeerAddressIp::from_xdr_buffered(read_stream)?,
2342 port: Uint32::from_xdr_buffered(read_stream)?,
2343 num_failures: Uint32::from_xdr_buffered(read_stream)?,
2344 })
2345 }
2346}
2347
2348#[allow(dead_code)]
2350#[cfg(feature = "all-types")]
2351#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2352pub enum MessageType {
2353 ErrorMsg = 0,
2354 Auth = 2,
2355 DontHave = 3,
2356 GetPeers = 4,
2357 Peers = 5,
2358 GetTxSet = 6,
2359 TxSet = 7,
2360 Transaction = 8,
2361 GetScpQuorumset = 9,
2362 ScpQuorumset = 10,
2363 ScpMessage = 11,
2364 GetScpState = 12,
2365 Hello = 13,
2366 SurveyRequest = 14,
2367 SurveyResponse = 15,
2368}
2369
2370#[cfg(feature = "all-types")]
2371impl XdrCodec for MessageType {
2372 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2373 let value = *self as i32;
2374 value.to_xdr_buffered(write_stream);
2375 }
2376
2377 fn from_xdr_buffered<T: AsRef<[u8]>>(
2378 read_stream: &mut ReadStream<T>,
2379 ) -> Result<Self, DecodeError> {
2380 let enum_value = i32::from_xdr_buffered(read_stream)?;
2381 match enum_value {
2382 0 => Ok(MessageType::ErrorMsg),
2383 2 => Ok(MessageType::Auth),
2384 3 => Ok(MessageType::DontHave),
2385 4 => Ok(MessageType::GetPeers),
2386 5 => Ok(MessageType::Peers),
2387 6 => Ok(MessageType::GetTxSet),
2388 7 => Ok(MessageType::TxSet),
2389 8 => Ok(MessageType::Transaction),
2390 9 => Ok(MessageType::GetScpQuorumset),
2391 10 => Ok(MessageType::ScpQuorumset),
2392 11 => Ok(MessageType::ScpMessage),
2393 12 => Ok(MessageType::GetScpState),
2394 13 => Ok(MessageType::Hello),
2395 14 => Ok(MessageType::SurveyRequest),
2396 15 => Ok(MessageType::SurveyResponse),
2397 _ => Err(DecodeError::InvalidEnumDiscriminator {
2398 at_position: read_stream.get_position(),
2399 }),
2400 }
2401 }
2402}
2403
2404#[allow(dead_code)]
2406#[cfg(feature = "all-types")]
2407#[derive(Debug, Clone, Eq, PartialEq)]
2408pub struct DontHave {
2409 pub type_: MessageType,
2410 pub req_hash: Uint256,
2411}
2412
2413#[cfg(feature = "all-types")]
2414impl XdrCodec for DontHave {
2415 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2416 self.type_.to_xdr_buffered(write_stream);
2417 self.req_hash.to_xdr_buffered(write_stream);
2418 }
2419
2420 fn from_xdr_buffered<T: AsRef<[u8]>>(
2421 read_stream: &mut ReadStream<T>,
2422 ) -> Result<Self, DecodeError> {
2423 Ok(DontHave {
2424 type_: MessageType::from_xdr_buffered(read_stream)?,
2425 req_hash: Uint256::from_xdr_buffered(read_stream)?,
2426 })
2427 }
2428}
2429
2430#[allow(dead_code)]
2432#[cfg(feature = "all-types")]
2433#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2434pub enum SurveyMessageCommandType {
2435 SurveyTopology = 0,
2436}
2437
2438#[cfg(feature = "all-types")]
2439impl XdrCodec for SurveyMessageCommandType {
2440 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2441 let value = *self as i32;
2442 value.to_xdr_buffered(write_stream);
2443 }
2444
2445 fn from_xdr_buffered<T: AsRef<[u8]>>(
2446 read_stream: &mut ReadStream<T>,
2447 ) -> Result<Self, DecodeError> {
2448 let enum_value = i32::from_xdr_buffered(read_stream)?;
2449 match enum_value {
2450 0 => Ok(SurveyMessageCommandType::SurveyTopology),
2451 _ => Err(DecodeError::InvalidEnumDiscriminator {
2452 at_position: read_stream.get_position(),
2453 }),
2454 }
2455 }
2456}
2457
2458#[allow(dead_code)]
2460#[cfg(feature = "all-types")]
2461#[derive(Debug, Clone, Eq, PartialEq)]
2462pub struct SurveyRequestMessage {
2463 pub surveyor_peer_id: NodeId,
2464 pub surveyed_peer_id: NodeId,
2465 pub ledger_num: Uint32,
2466 pub encryption_key: Curve25519Public,
2467 pub command_type: SurveyMessageCommandType,
2468}
2469
2470#[cfg(feature = "all-types")]
2471impl XdrCodec for SurveyRequestMessage {
2472 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2473 self.surveyor_peer_id.to_xdr_buffered(write_stream);
2474 self.surveyed_peer_id.to_xdr_buffered(write_stream);
2475 self.ledger_num.to_xdr_buffered(write_stream);
2476 self.encryption_key.to_xdr_buffered(write_stream);
2477 self.command_type.to_xdr_buffered(write_stream);
2478 }
2479
2480 fn from_xdr_buffered<T: AsRef<[u8]>>(
2481 read_stream: &mut ReadStream<T>,
2482 ) -> Result<Self, DecodeError> {
2483 Ok(SurveyRequestMessage {
2484 surveyor_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2485 surveyed_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2486 ledger_num: Uint32::from_xdr_buffered(read_stream)?,
2487 encryption_key: Curve25519Public::from_xdr_buffered(read_stream)?,
2488 command_type: SurveyMessageCommandType::from_xdr_buffered(read_stream)?,
2489 })
2490 }
2491}
2492
2493#[allow(dead_code)]
2495#[cfg(feature = "all-types")]
2496#[derive(Debug, Clone, Eq, PartialEq)]
2497pub struct SignedSurveyRequestMessage {
2498 pub request_signature: Signature,
2499 pub request: SurveyRequestMessage,
2500}
2501
2502#[cfg(feature = "all-types")]
2503impl XdrCodec for SignedSurveyRequestMessage {
2504 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2505 self.request_signature.to_xdr_buffered(write_stream);
2506 self.request.to_xdr_buffered(write_stream);
2507 }
2508
2509 fn from_xdr_buffered<T: AsRef<[u8]>>(
2510 read_stream: &mut ReadStream<T>,
2511 ) -> Result<Self, DecodeError> {
2512 Ok(SignedSurveyRequestMessage {
2513 request_signature: Signature::from_xdr_buffered(read_stream)?,
2514 request: SurveyRequestMessage::from_xdr_buffered(read_stream)?,
2515 })
2516 }
2517}
2518
2519#[allow(dead_code)]
2521#[cfg(feature = "all-types")]
2522pub type EncryptedBody = LimitedVarOpaque<64000>;
2523
2524#[allow(dead_code)]
2526#[cfg(feature = "all-types")]
2527#[derive(Debug, Clone, Eq, PartialEq)]
2528pub struct SurveyResponseMessage {
2529 pub surveyor_peer_id: NodeId,
2530 pub surveyed_peer_id: NodeId,
2531 pub ledger_num: Uint32,
2532 pub command_type: SurveyMessageCommandType,
2533 pub encrypted_body: EncryptedBody,
2534}
2535
2536#[cfg(feature = "all-types")]
2537impl XdrCodec for SurveyResponseMessage {
2538 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2539 self.surveyor_peer_id.to_xdr_buffered(write_stream);
2540 self.surveyed_peer_id.to_xdr_buffered(write_stream);
2541 self.ledger_num.to_xdr_buffered(write_stream);
2542 self.command_type.to_xdr_buffered(write_stream);
2543 self.encrypted_body.to_xdr_buffered(write_stream);
2544 }
2545
2546 fn from_xdr_buffered<T: AsRef<[u8]>>(
2547 read_stream: &mut ReadStream<T>,
2548 ) -> Result<Self, DecodeError> {
2549 Ok(SurveyResponseMessage {
2550 surveyor_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2551 surveyed_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2552 ledger_num: Uint32::from_xdr_buffered(read_stream)?,
2553 command_type: SurveyMessageCommandType::from_xdr_buffered(read_stream)?,
2554 encrypted_body: EncryptedBody::from_xdr_buffered(read_stream)?,
2555 })
2556 }
2557}
2558
2559#[allow(dead_code)]
2561#[cfg(feature = "all-types")]
2562#[derive(Debug, Clone, Eq, PartialEq)]
2563pub struct SignedSurveyResponseMessage {
2564 pub response_signature: Signature,
2565 pub response: SurveyResponseMessage,
2566}
2567
2568#[cfg(feature = "all-types")]
2569impl XdrCodec for SignedSurveyResponseMessage {
2570 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2571 self.response_signature.to_xdr_buffered(write_stream);
2572 self.response.to_xdr_buffered(write_stream);
2573 }
2574
2575 fn from_xdr_buffered<T: AsRef<[u8]>>(
2576 read_stream: &mut ReadStream<T>,
2577 ) -> Result<Self, DecodeError> {
2578 Ok(SignedSurveyResponseMessage {
2579 response_signature: Signature::from_xdr_buffered(read_stream)?,
2580 response: SurveyResponseMessage::from_xdr_buffered(read_stream)?,
2581 })
2582 }
2583}
2584
2585#[allow(dead_code)]
2587#[cfg(feature = "all-types")]
2588#[derive(Debug, Clone, Eq, PartialEq)]
2589pub struct PeerStats {
2590 pub id: NodeId,
2591 pub version_str: LimitedString<100>,
2592 pub messages_read: Uint64,
2593 pub messages_written: Uint64,
2594 pub bytes_read: Uint64,
2595 pub bytes_written: Uint64,
2596 pub seconds_connected: Uint64,
2597 pub unique_flood_bytes_recv: Uint64,
2598 pub duplicate_flood_bytes_recv: Uint64,
2599 pub unique_fetch_bytes_recv: Uint64,
2600 pub duplicate_fetch_bytes_recv: Uint64,
2601 pub unique_flood_message_recv: Uint64,
2602 pub duplicate_flood_message_recv: Uint64,
2603 pub unique_fetch_message_recv: Uint64,
2604 pub duplicate_fetch_message_recv: Uint64,
2605}
2606
2607#[cfg(feature = "all-types")]
2608impl XdrCodec for PeerStats {
2609 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2610 self.id.to_xdr_buffered(write_stream);
2611 self.version_str.to_xdr_buffered(write_stream);
2612 self.messages_read.to_xdr_buffered(write_stream);
2613 self.messages_written.to_xdr_buffered(write_stream);
2614 self.bytes_read.to_xdr_buffered(write_stream);
2615 self.bytes_written.to_xdr_buffered(write_stream);
2616 self.seconds_connected.to_xdr_buffered(write_stream);
2617 self.unique_flood_bytes_recv.to_xdr_buffered(write_stream);
2618 self.duplicate_flood_bytes_recv
2619 .to_xdr_buffered(write_stream);
2620 self.unique_fetch_bytes_recv.to_xdr_buffered(write_stream);
2621 self.duplicate_fetch_bytes_recv
2622 .to_xdr_buffered(write_stream);
2623 self.unique_flood_message_recv.to_xdr_buffered(write_stream);
2624 self.duplicate_flood_message_recv
2625 .to_xdr_buffered(write_stream);
2626 self.unique_fetch_message_recv.to_xdr_buffered(write_stream);
2627 self.duplicate_fetch_message_recv
2628 .to_xdr_buffered(write_stream);
2629 }
2630
2631 fn from_xdr_buffered<T: AsRef<[u8]>>(
2632 read_stream: &mut ReadStream<T>,
2633 ) -> Result<Self, DecodeError> {
2634 Ok(PeerStats {
2635 id: NodeId::from_xdr_buffered(read_stream)?,
2636 version_str: LimitedString::<100>::from_xdr_buffered(read_stream)?,
2637 messages_read: Uint64::from_xdr_buffered(read_stream)?,
2638 messages_written: Uint64::from_xdr_buffered(read_stream)?,
2639 bytes_read: Uint64::from_xdr_buffered(read_stream)?,
2640 bytes_written: Uint64::from_xdr_buffered(read_stream)?,
2641 seconds_connected: Uint64::from_xdr_buffered(read_stream)?,
2642 unique_flood_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2643 duplicate_flood_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2644 unique_fetch_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2645 duplicate_fetch_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2646 unique_flood_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2647 duplicate_flood_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2648 unique_fetch_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2649 duplicate_fetch_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2650 })
2651 }
2652}
2653
2654#[allow(dead_code)]
2656#[cfg(feature = "all-types")]
2657pub type PeerStatList = LimitedVarArray<PeerStats, 25>;
2658
2659#[allow(dead_code)]
2661#[cfg(feature = "all-types")]
2662#[derive(Debug, Clone, Eq, PartialEq)]
2663pub struct TopologyResponseBody {
2664 pub inbound_peers: PeerStatList,
2665 pub outbound_peers: PeerStatList,
2666 pub total_inbound_peer_count: Uint32,
2667 pub total_outbound_peer_count: Uint32,
2668}
2669
2670#[cfg(feature = "all-types")]
2671impl XdrCodec for TopologyResponseBody {
2672 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2673 self.inbound_peers.to_xdr_buffered(write_stream);
2674 self.outbound_peers.to_xdr_buffered(write_stream);
2675 self.total_inbound_peer_count.to_xdr_buffered(write_stream);
2676 self.total_outbound_peer_count.to_xdr_buffered(write_stream);
2677 }
2678
2679 fn from_xdr_buffered<T: AsRef<[u8]>>(
2680 read_stream: &mut ReadStream<T>,
2681 ) -> Result<Self, DecodeError> {
2682 Ok(TopologyResponseBody {
2683 inbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
2684 outbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
2685 total_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
2686 total_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
2687 })
2688 }
2689}
2690
2691#[allow(dead_code)]
2693#[cfg(feature = "all-types")]
2694#[derive(Debug, Clone, Eq, PartialEq)]
2695pub struct AuthenticatedMessageV0 {
2696 pub sequence: Uint64,
2697 pub message: StellarMessage,
2698 pub mac: HmacSha256Mac,
2699}
2700
2701#[cfg(feature = "all-types")]
2702impl XdrCodec for AuthenticatedMessageV0 {
2703 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2704 self.sequence.to_xdr_buffered(write_stream);
2705 self.message.to_xdr_buffered(write_stream);
2706 self.mac.to_xdr_buffered(write_stream);
2707 }
2708
2709 fn from_xdr_buffered<T: AsRef<[u8]>>(
2710 read_stream: &mut ReadStream<T>,
2711 ) -> Result<Self, DecodeError> {
2712 Ok(AuthenticatedMessageV0 {
2713 sequence: Uint64::from_xdr_buffered(read_stream)?,
2714 message: StellarMessage::from_xdr_buffered(read_stream)?,
2715 mac: HmacSha256Mac::from_xdr_buffered(read_stream)?,
2716 })
2717 }
2718}
2719
2720#[allow(dead_code)]
2722#[derive(Debug, Clone, Eq, PartialEq)]
2723pub struct MuxedAccountMed25519 {
2724 pub id: Uint64,
2725 pub ed25519: Uint256,
2726}
2727
2728impl XdrCodec for MuxedAccountMed25519 {
2729 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2730 self.id.to_xdr_buffered(write_stream);
2731 self.ed25519.to_xdr_buffered(write_stream);
2732 }
2733
2734 fn from_xdr_buffered<T: AsRef<[u8]>>(
2735 read_stream: &mut ReadStream<T>,
2736 ) -> Result<Self, DecodeError> {
2737 Ok(MuxedAccountMed25519 {
2738 id: Uint64::from_xdr_buffered(read_stream)?,
2739 ed25519: Uint256::from_xdr_buffered(read_stream)?,
2740 })
2741 }
2742}
2743
2744#[allow(dead_code)]
2746#[derive(Debug, Clone, Eq, PartialEq)]
2747pub struct DecoratedSignature {
2748 pub hint: SignatureHint,
2749 pub signature: Signature,
2750}
2751
2752impl XdrCodec for DecoratedSignature {
2753 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2754 self.hint.to_xdr_buffered(write_stream);
2755 self.signature.to_xdr_buffered(write_stream);
2756 }
2757
2758 fn from_xdr_buffered<T: AsRef<[u8]>>(
2759 read_stream: &mut ReadStream<T>,
2760 ) -> Result<Self, DecodeError> {
2761 Ok(DecoratedSignature {
2762 hint: SignatureHint::from_xdr_buffered(read_stream)?,
2763 signature: Signature::from_xdr_buffered(read_stream)?,
2764 })
2765 }
2766}
2767
2768#[allow(dead_code)]
2770#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2771pub enum OperationType {
2772 CreateAccount = 0,
2773 Payment = 1,
2774 PathPaymentStrictReceive = 2,
2775 ManageSellOffer = 3,
2776 CreatePassiveSellOffer = 4,
2777 SetOptions = 5,
2778 ChangeTrust = 6,
2779 AllowTrust = 7,
2780 AccountMerge = 8,
2781 Inflation = 9,
2782 ManageData = 10,
2783 BumpSequence = 11,
2784 ManageBuyOffer = 12,
2785 PathPaymentStrictSend = 13,
2786 CreateClaimableBalance = 14,
2787 ClaimClaimableBalance = 15,
2788 BeginSponsoringFutureReserves = 16,
2789 EndSponsoringFutureReserves = 17,
2790 RevokeSponsorship = 18,
2791 Clawback = 19,
2792 ClawbackClaimableBalance = 20,
2793 SetTrustLineFlags = 21,
2794}
2795
2796impl XdrCodec for OperationType {
2797 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2798 let value = *self as i32;
2799 value.to_xdr_buffered(write_stream);
2800 }
2801
2802 fn from_xdr_buffered<T: AsRef<[u8]>>(
2803 read_stream: &mut ReadStream<T>,
2804 ) -> Result<Self, DecodeError> {
2805 let enum_value = i32::from_xdr_buffered(read_stream)?;
2806 match enum_value {
2807 0 => Ok(OperationType::CreateAccount),
2808 1 => Ok(OperationType::Payment),
2809 2 => Ok(OperationType::PathPaymentStrictReceive),
2810 3 => Ok(OperationType::ManageSellOffer),
2811 4 => Ok(OperationType::CreatePassiveSellOffer),
2812 5 => Ok(OperationType::SetOptions),
2813 6 => Ok(OperationType::ChangeTrust),
2814 7 => Ok(OperationType::AllowTrust),
2815 8 => Ok(OperationType::AccountMerge),
2816 9 => Ok(OperationType::Inflation),
2817 10 => Ok(OperationType::ManageData),
2818 11 => Ok(OperationType::BumpSequence),
2819 12 => Ok(OperationType::ManageBuyOffer),
2820 13 => Ok(OperationType::PathPaymentStrictSend),
2821 14 => Ok(OperationType::CreateClaimableBalance),
2822 15 => Ok(OperationType::ClaimClaimableBalance),
2823 16 => Ok(OperationType::BeginSponsoringFutureReserves),
2824 17 => Ok(OperationType::EndSponsoringFutureReserves),
2825 18 => Ok(OperationType::RevokeSponsorship),
2826 19 => Ok(OperationType::Clawback),
2827 20 => Ok(OperationType::ClawbackClaimableBalance),
2828 21 => Ok(OperationType::SetTrustLineFlags),
2829 _ => Err(DecodeError::InvalidEnumDiscriminator {
2830 at_position: read_stream.get_position(),
2831 }),
2832 }
2833 }
2834}
2835
2836#[allow(dead_code)]
2838#[derive(Debug, Clone, Eq, PartialEq)]
2839pub struct CreateAccountOp {
2840 pub destination: AccountId,
2841 pub starting_balance: Int64,
2842}
2843
2844impl XdrCodec for CreateAccountOp {
2845 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2846 self.destination.to_xdr_buffered(write_stream);
2847 self.starting_balance.to_xdr_buffered(write_stream);
2848 }
2849
2850 fn from_xdr_buffered<T: AsRef<[u8]>>(
2851 read_stream: &mut ReadStream<T>,
2852 ) -> Result<Self, DecodeError> {
2853 Ok(CreateAccountOp {
2854 destination: AccountId::from_xdr_buffered(read_stream)?,
2855 starting_balance: Int64::from_xdr_buffered(read_stream)?,
2856 })
2857 }
2858}
2859
2860#[allow(dead_code)]
2862#[derive(Debug, Clone, Eq, PartialEq)]
2863pub struct PaymentOp {
2864 pub destination: MuxedAccount,
2865 pub asset: Asset,
2866 pub amount: Int64,
2867}
2868
2869impl XdrCodec for PaymentOp {
2870 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2871 self.destination.to_xdr_buffered(write_stream);
2872 self.asset.to_xdr_buffered(write_stream);
2873 self.amount.to_xdr_buffered(write_stream);
2874 }
2875
2876 fn from_xdr_buffered<T: AsRef<[u8]>>(
2877 read_stream: &mut ReadStream<T>,
2878 ) -> Result<Self, DecodeError> {
2879 Ok(PaymentOp {
2880 destination: MuxedAccount::from_xdr_buffered(read_stream)?,
2881 asset: Asset::from_xdr_buffered(read_stream)?,
2882 amount: Int64::from_xdr_buffered(read_stream)?,
2883 })
2884 }
2885}
2886
2887#[allow(dead_code)]
2889#[derive(Debug, Clone, Eq, PartialEq)]
2890pub struct PathPaymentStrictReceiveOp {
2891 pub send_asset: Asset,
2892 pub send_max: Int64,
2893 pub destination: MuxedAccount,
2894 pub dest_asset: Asset,
2895 pub dest_amount: Int64,
2896 pub path: LimitedVarArray<Asset, 5>,
2897}
2898
2899impl XdrCodec for PathPaymentStrictReceiveOp {
2900 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2901 self.send_asset.to_xdr_buffered(write_stream);
2902 self.send_max.to_xdr_buffered(write_stream);
2903 self.destination.to_xdr_buffered(write_stream);
2904 self.dest_asset.to_xdr_buffered(write_stream);
2905 self.dest_amount.to_xdr_buffered(write_stream);
2906 self.path.to_xdr_buffered(write_stream);
2907 }
2908
2909 fn from_xdr_buffered<T: AsRef<[u8]>>(
2910 read_stream: &mut ReadStream<T>,
2911 ) -> Result<Self, DecodeError> {
2912 Ok(PathPaymentStrictReceiveOp {
2913 send_asset: Asset::from_xdr_buffered(read_stream)?,
2914 send_max: Int64::from_xdr_buffered(read_stream)?,
2915 destination: MuxedAccount::from_xdr_buffered(read_stream)?,
2916 dest_asset: Asset::from_xdr_buffered(read_stream)?,
2917 dest_amount: Int64::from_xdr_buffered(read_stream)?,
2918 path: LimitedVarArray::<Asset, 5>::from_xdr_buffered(read_stream)?,
2919 })
2920 }
2921}
2922
2923#[allow(dead_code)]
2925#[derive(Debug, Clone, Eq, PartialEq)]
2926pub struct PathPaymentStrictSendOp {
2927 pub send_asset: Asset,
2928 pub send_amount: Int64,
2929 pub destination: MuxedAccount,
2930 pub dest_asset: Asset,
2931 pub dest_min: Int64,
2932 pub path: LimitedVarArray<Asset, 5>,
2933}
2934
2935impl XdrCodec for PathPaymentStrictSendOp {
2936 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2937 self.send_asset.to_xdr_buffered(write_stream);
2938 self.send_amount.to_xdr_buffered(write_stream);
2939 self.destination.to_xdr_buffered(write_stream);
2940 self.dest_asset.to_xdr_buffered(write_stream);
2941 self.dest_min.to_xdr_buffered(write_stream);
2942 self.path.to_xdr_buffered(write_stream);
2943 }
2944
2945 fn from_xdr_buffered<T: AsRef<[u8]>>(
2946 read_stream: &mut ReadStream<T>,
2947 ) -> Result<Self, DecodeError> {
2948 Ok(PathPaymentStrictSendOp {
2949 send_asset: Asset::from_xdr_buffered(read_stream)?,
2950 send_amount: Int64::from_xdr_buffered(read_stream)?,
2951 destination: MuxedAccount::from_xdr_buffered(read_stream)?,
2952 dest_asset: Asset::from_xdr_buffered(read_stream)?,
2953 dest_min: Int64::from_xdr_buffered(read_stream)?,
2954 path: LimitedVarArray::<Asset, 5>::from_xdr_buffered(read_stream)?,
2955 })
2956 }
2957}
2958
2959#[allow(dead_code)]
2961#[derive(Debug, Clone, Eq, PartialEq)]
2962pub struct ManageSellOfferOp {
2963 pub selling: Asset,
2964 pub buying: Asset,
2965 pub amount: Int64,
2966 pub price: Price,
2967 pub offer_id: Int64,
2968}
2969
2970impl XdrCodec for ManageSellOfferOp {
2971 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2972 self.selling.to_xdr_buffered(write_stream);
2973 self.buying.to_xdr_buffered(write_stream);
2974 self.amount.to_xdr_buffered(write_stream);
2975 self.price.to_xdr_buffered(write_stream);
2976 self.offer_id.to_xdr_buffered(write_stream);
2977 }
2978
2979 fn from_xdr_buffered<T: AsRef<[u8]>>(
2980 read_stream: &mut ReadStream<T>,
2981 ) -> Result<Self, DecodeError> {
2982 Ok(ManageSellOfferOp {
2983 selling: Asset::from_xdr_buffered(read_stream)?,
2984 buying: Asset::from_xdr_buffered(read_stream)?,
2985 amount: Int64::from_xdr_buffered(read_stream)?,
2986 price: Price::from_xdr_buffered(read_stream)?,
2987 offer_id: Int64::from_xdr_buffered(read_stream)?,
2988 })
2989 }
2990}
2991
2992#[allow(dead_code)]
2994#[derive(Debug, Clone, Eq, PartialEq)]
2995pub struct ManageBuyOfferOp {
2996 pub selling: Asset,
2997 pub buying: Asset,
2998 pub buy_amount: Int64,
2999 pub price: Price,
3000 pub offer_id: Int64,
3001}
3002
3003impl XdrCodec for ManageBuyOfferOp {
3004 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3005 self.selling.to_xdr_buffered(write_stream);
3006 self.buying.to_xdr_buffered(write_stream);
3007 self.buy_amount.to_xdr_buffered(write_stream);
3008 self.price.to_xdr_buffered(write_stream);
3009 self.offer_id.to_xdr_buffered(write_stream);
3010 }
3011
3012 fn from_xdr_buffered<T: AsRef<[u8]>>(
3013 read_stream: &mut ReadStream<T>,
3014 ) -> Result<Self, DecodeError> {
3015 Ok(ManageBuyOfferOp {
3016 selling: Asset::from_xdr_buffered(read_stream)?,
3017 buying: Asset::from_xdr_buffered(read_stream)?,
3018 buy_amount: Int64::from_xdr_buffered(read_stream)?,
3019 price: Price::from_xdr_buffered(read_stream)?,
3020 offer_id: Int64::from_xdr_buffered(read_stream)?,
3021 })
3022 }
3023}
3024
3025#[allow(dead_code)]
3027#[derive(Debug, Clone, Eq, PartialEq)]
3028pub struct CreatePassiveSellOfferOp {
3029 pub selling: Asset,
3030 pub buying: Asset,
3031 pub amount: Int64,
3032 pub price: Price,
3033}
3034
3035impl XdrCodec for CreatePassiveSellOfferOp {
3036 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3037 self.selling.to_xdr_buffered(write_stream);
3038 self.buying.to_xdr_buffered(write_stream);
3039 self.amount.to_xdr_buffered(write_stream);
3040 self.price.to_xdr_buffered(write_stream);
3041 }
3042
3043 fn from_xdr_buffered<T: AsRef<[u8]>>(
3044 read_stream: &mut ReadStream<T>,
3045 ) -> Result<Self, DecodeError> {
3046 Ok(CreatePassiveSellOfferOp {
3047 selling: Asset::from_xdr_buffered(read_stream)?,
3048 buying: Asset::from_xdr_buffered(read_stream)?,
3049 amount: Int64::from_xdr_buffered(read_stream)?,
3050 price: Price::from_xdr_buffered(read_stream)?,
3051 })
3052 }
3053}
3054
3055#[allow(dead_code)]
3057#[derive(Debug, Clone, Eq, PartialEq)]
3058pub struct SetOptionsOp {
3059 pub inflation_dest: Option<AccountId>,
3060 pub clear_flags: Option<Uint32>,
3061 pub set_flags: Option<Uint32>,
3062 pub master_weight: Option<Uint32>,
3063 pub low_threshold: Option<Uint32>,
3064 pub med_threshold: Option<Uint32>,
3065 pub high_threshold: Option<Uint32>,
3066 pub home_domain: Option<String32>,
3067 pub signer: Option<Signer>,
3068}
3069
3070impl XdrCodec for SetOptionsOp {
3071 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3072 self.inflation_dest.to_xdr_buffered(write_stream);
3073 self.clear_flags.to_xdr_buffered(write_stream);
3074 self.set_flags.to_xdr_buffered(write_stream);
3075 self.master_weight.to_xdr_buffered(write_stream);
3076 self.low_threshold.to_xdr_buffered(write_stream);
3077 self.med_threshold.to_xdr_buffered(write_stream);
3078 self.high_threshold.to_xdr_buffered(write_stream);
3079 self.home_domain.to_xdr_buffered(write_stream);
3080 self.signer.to_xdr_buffered(write_stream);
3081 }
3082
3083 fn from_xdr_buffered<T: AsRef<[u8]>>(
3084 read_stream: &mut ReadStream<T>,
3085 ) -> Result<Self, DecodeError> {
3086 Ok(SetOptionsOp {
3087 inflation_dest: Option::<AccountId>::from_xdr_buffered(read_stream)?,
3088 clear_flags: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3089 set_flags: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3090 master_weight: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3091 low_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3092 med_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3093 high_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3094 home_domain: Option::<String32>::from_xdr_buffered(read_stream)?,
3095 signer: Option::<Signer>::from_xdr_buffered(read_stream)?,
3096 })
3097 }
3098}
3099
3100#[allow(dead_code)]
3102#[derive(Debug, Clone, Eq, PartialEq)]
3103pub struct ChangeTrustOp {
3104 pub line: ChangeTrustAsset,
3105 pub limit: Int64,
3106}
3107
3108impl XdrCodec for ChangeTrustOp {
3109 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3110 self.line.to_xdr_buffered(write_stream);
3111 self.limit.to_xdr_buffered(write_stream);
3112 }
3113
3114 fn from_xdr_buffered<T: AsRef<[u8]>>(
3115 read_stream: &mut ReadStream<T>,
3116 ) -> Result<Self, DecodeError> {
3117 Ok(ChangeTrustOp {
3118 line: ChangeTrustAsset::from_xdr_buffered(read_stream)?,
3119 limit: Int64::from_xdr_buffered(read_stream)?,
3120 })
3121 }
3122}
3123
3124#[allow(dead_code)]
3126#[derive(Debug, Clone, Eq, PartialEq)]
3127pub struct AllowTrustOp {
3128 pub trustor: AccountId,
3129 pub asset: AssetCode,
3130 pub authorize: Uint32,
3131}
3132
3133impl XdrCodec for AllowTrustOp {
3134 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3135 self.trustor.to_xdr_buffered(write_stream);
3136 self.asset.to_xdr_buffered(write_stream);
3137 self.authorize.to_xdr_buffered(write_stream);
3138 }
3139
3140 fn from_xdr_buffered<T: AsRef<[u8]>>(
3141 read_stream: &mut ReadStream<T>,
3142 ) -> Result<Self, DecodeError> {
3143 Ok(AllowTrustOp {
3144 trustor: AccountId::from_xdr_buffered(read_stream)?,
3145 asset: AssetCode::from_xdr_buffered(read_stream)?,
3146 authorize: Uint32::from_xdr_buffered(read_stream)?,
3147 })
3148 }
3149}
3150
3151#[allow(dead_code)]
3153#[derive(Debug, Clone, Eq, PartialEq)]
3154pub struct ManageDataOp {
3155 pub data_name: String64,
3156 pub data_value: Option<DataValue>,
3157}
3158
3159impl XdrCodec for ManageDataOp {
3160 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3161 self.data_name.to_xdr_buffered(write_stream);
3162 self.data_value.to_xdr_buffered(write_stream);
3163 }
3164
3165 fn from_xdr_buffered<T: AsRef<[u8]>>(
3166 read_stream: &mut ReadStream<T>,
3167 ) -> Result<Self, DecodeError> {
3168 Ok(ManageDataOp {
3169 data_name: String64::from_xdr_buffered(read_stream)?,
3170 data_value: Option::<DataValue>::from_xdr_buffered(read_stream)?,
3171 })
3172 }
3173}
3174
3175#[allow(dead_code)]
3177#[derive(Debug, Clone, Eq, PartialEq)]
3178pub struct BumpSequenceOp {
3179 pub bump_to: SequenceNumber,
3180}
3181
3182impl XdrCodec for BumpSequenceOp {
3183 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3184 self.bump_to.to_xdr_buffered(write_stream);
3185 }
3186
3187 fn from_xdr_buffered<T: AsRef<[u8]>>(
3188 read_stream: &mut ReadStream<T>,
3189 ) -> Result<Self, DecodeError> {
3190 Ok(BumpSequenceOp {
3191 bump_to: SequenceNumber::from_xdr_buffered(read_stream)?,
3192 })
3193 }
3194}
3195
3196#[allow(dead_code)]
3198#[derive(Debug, Clone, Eq, PartialEq)]
3199pub struct CreateClaimableBalanceOp {
3200 pub asset: Asset,
3201 pub amount: Int64,
3202 pub claimants: LimitedVarArray<Claimant, 10>,
3203}
3204
3205impl XdrCodec for CreateClaimableBalanceOp {
3206 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3207 self.asset.to_xdr_buffered(write_stream);
3208 self.amount.to_xdr_buffered(write_stream);
3209 self.claimants.to_xdr_buffered(write_stream);
3210 }
3211
3212 fn from_xdr_buffered<T: AsRef<[u8]>>(
3213 read_stream: &mut ReadStream<T>,
3214 ) -> Result<Self, DecodeError> {
3215 Ok(CreateClaimableBalanceOp {
3216 asset: Asset::from_xdr_buffered(read_stream)?,
3217 amount: Int64::from_xdr_buffered(read_stream)?,
3218 claimants: LimitedVarArray::<Claimant, 10>::from_xdr_buffered(read_stream)?,
3219 })
3220 }
3221}
3222
3223#[allow(dead_code)]
3225#[derive(Debug, Clone, Eq, PartialEq)]
3226pub struct ClaimClaimableBalanceOp {
3227 pub balance_id: ClaimableBalanceId,
3228}
3229
3230impl XdrCodec for ClaimClaimableBalanceOp {
3231 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3232 self.balance_id.to_xdr_buffered(write_stream);
3233 }
3234
3235 fn from_xdr_buffered<T: AsRef<[u8]>>(
3236 read_stream: &mut ReadStream<T>,
3237 ) -> Result<Self, DecodeError> {
3238 Ok(ClaimClaimableBalanceOp {
3239 balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
3240 })
3241 }
3242}
3243
3244#[allow(dead_code)]
3246#[derive(Debug, Clone, Eq, PartialEq)]
3247pub struct BeginSponsoringFutureReservesOp {
3248 pub sponsored_id: AccountId,
3249}
3250
3251impl XdrCodec for BeginSponsoringFutureReservesOp {
3252 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3253 self.sponsored_id.to_xdr_buffered(write_stream);
3254 }
3255
3256 fn from_xdr_buffered<T: AsRef<[u8]>>(
3257 read_stream: &mut ReadStream<T>,
3258 ) -> Result<Self, DecodeError> {
3259 Ok(BeginSponsoringFutureReservesOp {
3260 sponsored_id: AccountId::from_xdr_buffered(read_stream)?,
3261 })
3262 }
3263}
3264
3265#[allow(dead_code)]
3267#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3268pub enum RevokeSponsorshipType {
3269 RevokeSponsorshipLedgerEntry = 0,
3270 RevokeSponsorshipSigner = 1,
3271}
3272
3273impl XdrCodec for RevokeSponsorshipType {
3274 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3275 let value = *self as i32;
3276 value.to_xdr_buffered(write_stream);
3277 }
3278
3279 fn from_xdr_buffered<T: AsRef<[u8]>>(
3280 read_stream: &mut ReadStream<T>,
3281 ) -> Result<Self, DecodeError> {
3282 let enum_value = i32::from_xdr_buffered(read_stream)?;
3283 match enum_value {
3284 0 => Ok(RevokeSponsorshipType::RevokeSponsorshipLedgerEntry),
3285 1 => Ok(RevokeSponsorshipType::RevokeSponsorshipSigner),
3286 _ => Err(DecodeError::InvalidEnumDiscriminator {
3287 at_position: read_stream.get_position(),
3288 }),
3289 }
3290 }
3291}
3292
3293#[allow(dead_code)]
3295#[derive(Debug, Clone, Eq, PartialEq)]
3296pub struct RevokeSponsorshipOpSigner {
3297 pub account_id: AccountId,
3298 pub signer_key: SignerKey,
3299}
3300
3301impl XdrCodec for RevokeSponsorshipOpSigner {
3302 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3303 self.account_id.to_xdr_buffered(write_stream);
3304 self.signer_key.to_xdr_buffered(write_stream);
3305 }
3306
3307 fn from_xdr_buffered<T: AsRef<[u8]>>(
3308 read_stream: &mut ReadStream<T>,
3309 ) -> Result<Self, DecodeError> {
3310 Ok(RevokeSponsorshipOpSigner {
3311 account_id: AccountId::from_xdr_buffered(read_stream)?,
3312 signer_key: SignerKey::from_xdr_buffered(read_stream)?,
3313 })
3314 }
3315}
3316
3317#[allow(dead_code)]
3319#[derive(Debug, Clone, Eq, PartialEq)]
3320pub struct ClawbackOp {
3321 pub asset: Asset,
3322 pub from: MuxedAccount,
3323 pub amount: Int64,
3324}
3325
3326impl XdrCodec for ClawbackOp {
3327 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3328 self.asset.to_xdr_buffered(write_stream);
3329 self.from.to_xdr_buffered(write_stream);
3330 self.amount.to_xdr_buffered(write_stream);
3331 }
3332
3333 fn from_xdr_buffered<T: AsRef<[u8]>>(
3334 read_stream: &mut ReadStream<T>,
3335 ) -> Result<Self, DecodeError> {
3336 Ok(ClawbackOp {
3337 asset: Asset::from_xdr_buffered(read_stream)?,
3338 from: MuxedAccount::from_xdr_buffered(read_stream)?,
3339 amount: Int64::from_xdr_buffered(read_stream)?,
3340 })
3341 }
3342}
3343
3344#[allow(dead_code)]
3346#[derive(Debug, Clone, Eq, PartialEq)]
3347pub struct ClawbackClaimableBalanceOp {
3348 pub balance_id: ClaimableBalanceId,
3349}
3350
3351impl XdrCodec for ClawbackClaimableBalanceOp {
3352 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3353 self.balance_id.to_xdr_buffered(write_stream);
3354 }
3355
3356 fn from_xdr_buffered<T: AsRef<[u8]>>(
3357 read_stream: &mut ReadStream<T>,
3358 ) -> Result<Self, DecodeError> {
3359 Ok(ClawbackClaimableBalanceOp {
3360 balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
3361 })
3362 }
3363}
3364
3365#[allow(dead_code)]
3367#[derive(Debug, Clone, Eq, PartialEq)]
3368pub struct SetTrustLineFlagsOp {
3369 pub trustor: AccountId,
3370 pub asset: Asset,
3371 pub clear_flags: Uint32,
3372 pub set_flags: Uint32,
3373}
3374
3375impl XdrCodec for SetTrustLineFlagsOp {
3376 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3377 self.trustor.to_xdr_buffered(write_stream);
3378 self.asset.to_xdr_buffered(write_stream);
3379 self.clear_flags.to_xdr_buffered(write_stream);
3380 self.set_flags.to_xdr_buffered(write_stream);
3381 }
3382
3383 fn from_xdr_buffered<T: AsRef<[u8]>>(
3384 read_stream: &mut ReadStream<T>,
3385 ) -> Result<Self, DecodeError> {
3386 Ok(SetTrustLineFlagsOp {
3387 trustor: AccountId::from_xdr_buffered(read_stream)?,
3388 asset: Asset::from_xdr_buffered(read_stream)?,
3389 clear_flags: Uint32::from_xdr_buffered(read_stream)?,
3390 set_flags: Uint32::from_xdr_buffered(read_stream)?,
3391 })
3392 }
3393}
3394
3395#[allow(dead_code)]
3397#[derive(Debug, Clone, Eq, PartialEq)]
3398pub struct Operation {
3399 pub source_account: Option<MuxedAccount>,
3400 pub body: OperationBody,
3401}
3402
3403impl XdrCodec for Operation {
3404 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3405 self.source_account.to_xdr_buffered(write_stream);
3406 self.body.to_xdr_buffered(write_stream);
3407 }
3408
3409 fn from_xdr_buffered<T: AsRef<[u8]>>(
3410 read_stream: &mut ReadStream<T>,
3411 ) -> Result<Self, DecodeError> {
3412 Ok(Operation {
3413 source_account: Option::<MuxedAccount>::from_xdr_buffered(read_stream)?,
3414 body: OperationBody::from_xdr_buffered(read_stream)?,
3415 })
3416 }
3417}
3418
3419#[allow(dead_code)]
3421#[cfg(feature = "all-types")]
3422#[derive(Debug, Clone, Eq, PartialEq)]
3423pub struct OperationIdId {
3424 pub source_account: AccountId,
3425 pub seq_num: SequenceNumber,
3426 pub op_num: Uint32,
3427}
3428
3429#[cfg(feature = "all-types")]
3430impl XdrCodec for OperationIdId {
3431 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3432 self.source_account.to_xdr_buffered(write_stream);
3433 self.seq_num.to_xdr_buffered(write_stream);
3434 self.op_num.to_xdr_buffered(write_stream);
3435 }
3436
3437 fn from_xdr_buffered<T: AsRef<[u8]>>(
3438 read_stream: &mut ReadStream<T>,
3439 ) -> Result<Self, DecodeError> {
3440 Ok(OperationIdId {
3441 source_account: AccountId::from_xdr_buffered(read_stream)?,
3442 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
3443 op_num: Uint32::from_xdr_buffered(read_stream)?,
3444 })
3445 }
3446}
3447
3448#[allow(dead_code)]
3450#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3451pub enum MemoType {
3452 MemoNone = 0,
3453 MemoText = 1,
3454 MemoId = 2,
3455 MemoHash = 3,
3456 MemoReturn = 4,
3457}
3458
3459impl XdrCodec for MemoType {
3460 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3461 let value = *self as i32;
3462 value.to_xdr_buffered(write_stream);
3463 }
3464
3465 fn from_xdr_buffered<T: AsRef<[u8]>>(
3466 read_stream: &mut ReadStream<T>,
3467 ) -> Result<Self, DecodeError> {
3468 let enum_value = i32::from_xdr_buffered(read_stream)?;
3469 match enum_value {
3470 0 => Ok(MemoType::MemoNone),
3471 1 => Ok(MemoType::MemoText),
3472 2 => Ok(MemoType::MemoId),
3473 3 => Ok(MemoType::MemoHash),
3474 4 => Ok(MemoType::MemoReturn),
3475 _ => Err(DecodeError::InvalidEnumDiscriminator {
3476 at_position: read_stream.get_position(),
3477 }),
3478 }
3479 }
3480}
3481
3482#[allow(dead_code)]
3484#[derive(Debug, Clone, Eq, PartialEq)]
3485pub struct TimeBounds {
3486 pub min_time: TimePoint,
3487 pub max_time: TimePoint,
3488}
3489
3490impl XdrCodec for TimeBounds {
3491 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3492 self.min_time.to_xdr_buffered(write_stream);
3493 self.max_time.to_xdr_buffered(write_stream);
3494 }
3495
3496 fn from_xdr_buffered<T: AsRef<[u8]>>(
3497 read_stream: &mut ReadStream<T>,
3498 ) -> Result<Self, DecodeError> {
3499 Ok(TimeBounds {
3500 min_time: TimePoint::from_xdr_buffered(read_stream)?,
3501 max_time: TimePoint::from_xdr_buffered(read_stream)?,
3502 })
3503 }
3504}
3505
3506#[allow(dead_code)]
3508#[derive(Debug, Clone, Eq, PartialEq)]
3509pub struct TransactionV0 {
3510 pub source_account_ed25519: Uint256,
3511 pub fee: Uint32,
3512 pub seq_num: SequenceNumber,
3513 pub time_bounds: Option<TimeBounds>,
3514 pub memo: Memo,
3515 pub operations: LimitedVarArray<Operation, MAX_OPS_PER_TX>,
3516 pub ext: TransactionV0Ext,
3517}
3518
3519impl XdrCodec for TransactionV0 {
3520 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3521 self.source_account_ed25519.to_xdr_buffered(write_stream);
3522 self.fee.to_xdr_buffered(write_stream);
3523 self.seq_num.to_xdr_buffered(write_stream);
3524 self.time_bounds.to_xdr_buffered(write_stream);
3525 self.memo.to_xdr_buffered(write_stream);
3526 self.operations.to_xdr_buffered(write_stream);
3527 self.ext.to_xdr_buffered(write_stream);
3528 }
3529
3530 fn from_xdr_buffered<T: AsRef<[u8]>>(
3531 read_stream: &mut ReadStream<T>,
3532 ) -> Result<Self, DecodeError> {
3533 Ok(TransactionV0 {
3534 source_account_ed25519: Uint256::from_xdr_buffered(read_stream)?,
3535 fee: Uint32::from_xdr_buffered(read_stream)?,
3536 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
3537 time_bounds: Option::<TimeBounds>::from_xdr_buffered(read_stream)?,
3538 memo: Memo::from_xdr_buffered(read_stream)?,
3539 operations: LimitedVarArray::<Operation, MAX_OPS_PER_TX>::from_xdr_buffered(
3540 read_stream,
3541 )?,
3542 ext: TransactionV0Ext::from_xdr_buffered(read_stream)?,
3543 })
3544 }
3545}
3546
3547#[allow(dead_code)]
3549#[derive(Debug, Clone, Eq, PartialEq)]
3550pub struct TransactionV0Envelope {
3551 pub tx: TransactionV0,
3552 pub signatures: LimitedVarArray<DecoratedSignature, 20>,
3553}
3554
3555impl XdrCodec for TransactionV0Envelope {
3556 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3557 self.tx.to_xdr_buffered(write_stream);
3558 self.signatures.to_xdr_buffered(write_stream);
3559 }
3560
3561 fn from_xdr_buffered<T: AsRef<[u8]>>(
3562 read_stream: &mut ReadStream<T>,
3563 ) -> Result<Self, DecodeError> {
3564 Ok(TransactionV0Envelope {
3565 tx: TransactionV0::from_xdr_buffered(read_stream)?,
3566 signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
3567 })
3568 }
3569}
3570
3571#[allow(dead_code)]
3573#[derive(Debug, Clone, Eq, PartialEq)]
3574pub struct Transaction {
3575 pub source_account: MuxedAccount,
3576 pub fee: Uint32,
3577 pub seq_num: SequenceNumber,
3578 pub time_bounds: Option<TimeBounds>,
3579 pub memo: Memo,
3580 pub operations: LimitedVarArray<Operation, MAX_OPS_PER_TX>,
3581 pub ext: TransactionExt,
3582}
3583
3584impl XdrCodec for Transaction {
3585 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3586 self.source_account.to_xdr_buffered(write_stream);
3587 self.fee.to_xdr_buffered(write_stream);
3588 self.seq_num.to_xdr_buffered(write_stream);
3589 self.time_bounds.to_xdr_buffered(write_stream);
3590 self.memo.to_xdr_buffered(write_stream);
3591 self.operations.to_xdr_buffered(write_stream);
3592 self.ext.to_xdr_buffered(write_stream);
3593 }
3594
3595 fn from_xdr_buffered<T: AsRef<[u8]>>(
3596 read_stream: &mut ReadStream<T>,
3597 ) -> Result<Self, DecodeError> {
3598 Ok(Transaction {
3599 source_account: MuxedAccount::from_xdr_buffered(read_stream)?,
3600 fee: Uint32::from_xdr_buffered(read_stream)?,
3601 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
3602 time_bounds: Option::<TimeBounds>::from_xdr_buffered(read_stream)?,
3603 memo: Memo::from_xdr_buffered(read_stream)?,
3604 operations: LimitedVarArray::<Operation, MAX_OPS_PER_TX>::from_xdr_buffered(
3605 read_stream,
3606 )?,
3607 ext: TransactionExt::from_xdr_buffered(read_stream)?,
3608 })
3609 }
3610}
3611
3612#[allow(dead_code)]
3614#[derive(Debug, Clone, Eq, PartialEq)]
3615pub struct TransactionV1Envelope {
3616 pub tx: Transaction,
3617 pub signatures: LimitedVarArray<DecoratedSignature, 20>,
3618}
3619
3620impl XdrCodec for TransactionV1Envelope {
3621 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3622 self.tx.to_xdr_buffered(write_stream);
3623 self.signatures.to_xdr_buffered(write_stream);
3624 }
3625
3626 fn from_xdr_buffered<T: AsRef<[u8]>>(
3627 read_stream: &mut ReadStream<T>,
3628 ) -> Result<Self, DecodeError> {
3629 Ok(TransactionV1Envelope {
3630 tx: Transaction::from_xdr_buffered(read_stream)?,
3631 signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
3632 })
3633 }
3634}
3635
3636#[allow(dead_code)]
3638#[derive(Debug, Clone, Eq, PartialEq)]
3639pub struct FeeBumpTransaction {
3640 pub fee_source: MuxedAccount,
3641 pub fee: Int64,
3642 pub inner_tx: FeeBumpTransactionInnerTx,
3643 pub ext: FeeBumpTransactionExt,
3644}
3645
3646impl XdrCodec for FeeBumpTransaction {
3647 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3648 self.fee_source.to_xdr_buffered(write_stream);
3649 self.fee.to_xdr_buffered(write_stream);
3650 self.inner_tx.to_xdr_buffered(write_stream);
3651 self.ext.to_xdr_buffered(write_stream);
3652 }
3653
3654 fn from_xdr_buffered<T: AsRef<[u8]>>(
3655 read_stream: &mut ReadStream<T>,
3656 ) -> Result<Self, DecodeError> {
3657 Ok(FeeBumpTransaction {
3658 fee_source: MuxedAccount::from_xdr_buffered(read_stream)?,
3659 fee: Int64::from_xdr_buffered(read_stream)?,
3660 inner_tx: FeeBumpTransactionInnerTx::from_xdr_buffered(read_stream)?,
3661 ext: FeeBumpTransactionExt::from_xdr_buffered(read_stream)?,
3662 })
3663 }
3664}
3665
3666#[allow(dead_code)]
3668#[derive(Debug, Clone, Eq, PartialEq)]
3669pub struct FeeBumpTransactionEnvelope {
3670 pub tx: FeeBumpTransaction,
3671 pub signatures: LimitedVarArray<DecoratedSignature, 20>,
3672}
3673
3674impl XdrCodec for FeeBumpTransactionEnvelope {
3675 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3676 self.tx.to_xdr_buffered(write_stream);
3677 self.signatures.to_xdr_buffered(write_stream);
3678 }
3679
3680 fn from_xdr_buffered<T: AsRef<[u8]>>(
3681 read_stream: &mut ReadStream<T>,
3682 ) -> Result<Self, DecodeError> {
3683 Ok(FeeBumpTransactionEnvelope {
3684 tx: FeeBumpTransaction::from_xdr_buffered(read_stream)?,
3685 signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
3686 })
3687 }
3688}
3689
3690#[allow(dead_code)]
3692#[derive(Debug, Clone, Eq, PartialEq)]
3693pub struct TransactionSignaturePayload {
3694 pub network_id: Hash,
3695 pub tagged_transaction: TransactionSignaturePayloadTaggedTransaction,
3696}
3697
3698impl XdrCodec for TransactionSignaturePayload {
3699 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3700 self.network_id.to_xdr_buffered(write_stream);
3701 self.tagged_transaction.to_xdr_buffered(write_stream);
3702 }
3703
3704 fn from_xdr_buffered<T: AsRef<[u8]>>(
3705 read_stream: &mut ReadStream<T>,
3706 ) -> Result<Self, DecodeError> {
3707 Ok(TransactionSignaturePayload {
3708 network_id: Hash::from_xdr_buffered(read_stream)?,
3709 tagged_transaction: TransactionSignaturePayloadTaggedTransaction::from_xdr_buffered(
3710 read_stream,
3711 )?,
3712 })
3713 }
3714}
3715
3716#[allow(dead_code)]
3718#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3719pub enum ClaimAtomType {
3720 ClaimAtomTypeV0 = 0,
3721 ClaimAtomTypeOrderBook = 1,
3722}
3723
3724impl XdrCodec for ClaimAtomType {
3725 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3726 let value = *self as i32;
3727 value.to_xdr_buffered(write_stream);
3728 }
3729
3730 fn from_xdr_buffered<T: AsRef<[u8]>>(
3731 read_stream: &mut ReadStream<T>,
3732 ) -> Result<Self, DecodeError> {
3733 let enum_value = i32::from_xdr_buffered(read_stream)?;
3734 match enum_value {
3735 0 => Ok(ClaimAtomType::ClaimAtomTypeV0),
3736 1 => Ok(ClaimAtomType::ClaimAtomTypeOrderBook),
3737 _ => Err(DecodeError::InvalidEnumDiscriminator {
3738 at_position: read_stream.get_position(),
3739 }),
3740 }
3741 }
3742}
3743
3744#[allow(dead_code)]
3746#[derive(Debug, Clone, Eq, PartialEq)]
3747pub struct ClaimOfferAtomV0 {
3748 pub seller_ed25519: Uint256,
3749 pub offer_id: Int64,
3750 pub asset_sold: Asset,
3751 pub amount_sold: Int64,
3752 pub asset_bought: Asset,
3753 pub amount_bought: Int64,
3754}
3755
3756impl XdrCodec for ClaimOfferAtomV0 {
3757 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3758 self.seller_ed25519.to_xdr_buffered(write_stream);
3759 self.offer_id.to_xdr_buffered(write_stream);
3760 self.asset_sold.to_xdr_buffered(write_stream);
3761 self.amount_sold.to_xdr_buffered(write_stream);
3762 self.asset_bought.to_xdr_buffered(write_stream);
3763 self.amount_bought.to_xdr_buffered(write_stream);
3764 }
3765
3766 fn from_xdr_buffered<T: AsRef<[u8]>>(
3767 read_stream: &mut ReadStream<T>,
3768 ) -> Result<Self, DecodeError> {
3769 Ok(ClaimOfferAtomV0 {
3770 seller_ed25519: Uint256::from_xdr_buffered(read_stream)?,
3771 offer_id: Int64::from_xdr_buffered(read_stream)?,
3772 asset_sold: Asset::from_xdr_buffered(read_stream)?,
3773 amount_sold: Int64::from_xdr_buffered(read_stream)?,
3774 asset_bought: Asset::from_xdr_buffered(read_stream)?,
3775 amount_bought: Int64::from_xdr_buffered(read_stream)?,
3776 })
3777 }
3778}
3779
3780#[allow(dead_code)]
3782#[derive(Debug, Clone, Eq, PartialEq)]
3783pub struct ClaimOfferAtom {
3784 pub seller_id: AccountId,
3785 pub offer_id: Int64,
3786 pub asset_sold: Asset,
3787 pub amount_sold: Int64,
3788 pub asset_bought: Asset,
3789 pub amount_bought: Int64,
3790}
3791
3792impl XdrCodec for ClaimOfferAtom {
3793 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3794 self.seller_id.to_xdr_buffered(write_stream);
3795 self.offer_id.to_xdr_buffered(write_stream);
3796 self.asset_sold.to_xdr_buffered(write_stream);
3797 self.amount_sold.to_xdr_buffered(write_stream);
3798 self.asset_bought.to_xdr_buffered(write_stream);
3799 self.amount_bought.to_xdr_buffered(write_stream);
3800 }
3801
3802 fn from_xdr_buffered<T: AsRef<[u8]>>(
3803 read_stream: &mut ReadStream<T>,
3804 ) -> Result<Self, DecodeError> {
3805 Ok(ClaimOfferAtom {
3806 seller_id: AccountId::from_xdr_buffered(read_stream)?,
3807 offer_id: Int64::from_xdr_buffered(read_stream)?,
3808 asset_sold: Asset::from_xdr_buffered(read_stream)?,
3809 amount_sold: Int64::from_xdr_buffered(read_stream)?,
3810 asset_bought: Asset::from_xdr_buffered(read_stream)?,
3811 amount_bought: Int64::from_xdr_buffered(read_stream)?,
3812 })
3813 }
3814}
3815
3816#[allow(dead_code)]
3818#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3819pub enum CreateAccountResultCode {
3820 CreateAccountSuccess = 0,
3821 CreateAccountMalformed = -1,
3822 CreateAccountUnderfunded = -2,
3823 CreateAccountLowReserve = -3,
3824 CreateAccountAlreadyExist = -4,
3825}
3826
3827impl XdrCodec for CreateAccountResultCode {
3828 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3829 let value = *self as i32;
3830 value.to_xdr_buffered(write_stream);
3831 }
3832
3833 fn from_xdr_buffered<T: AsRef<[u8]>>(
3834 read_stream: &mut ReadStream<T>,
3835 ) -> Result<Self, DecodeError> {
3836 let enum_value = i32::from_xdr_buffered(read_stream)?;
3837 match enum_value {
3838 0 => Ok(CreateAccountResultCode::CreateAccountSuccess),
3839 -1 => Ok(CreateAccountResultCode::CreateAccountMalformed),
3840 -2 => Ok(CreateAccountResultCode::CreateAccountUnderfunded),
3841 -3 => Ok(CreateAccountResultCode::CreateAccountLowReserve),
3842 -4 => Ok(CreateAccountResultCode::CreateAccountAlreadyExist),
3843 _ => Err(DecodeError::InvalidEnumDiscriminator {
3844 at_position: read_stream.get_position(),
3845 }),
3846 }
3847 }
3848}
3849
3850#[allow(dead_code)]
3852#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3853pub enum PaymentResultCode {
3854 PaymentSuccess = 0,
3855 PaymentMalformed = -1,
3856 PaymentUnderfunded = -2,
3857 PaymentSrcNoTrust = -3,
3858 PaymentSrcNotAuthorized = -4,
3859 PaymentNoDestination = -5,
3860 PaymentNoTrust = -6,
3861 PaymentNotAuthorized = -7,
3862 PaymentLineFull = -8,
3863 PaymentNoIssuer = -9,
3864}
3865
3866impl XdrCodec for PaymentResultCode {
3867 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3868 let value = *self as i32;
3869 value.to_xdr_buffered(write_stream);
3870 }
3871
3872 fn from_xdr_buffered<T: AsRef<[u8]>>(
3873 read_stream: &mut ReadStream<T>,
3874 ) -> Result<Self, DecodeError> {
3875 let enum_value = i32::from_xdr_buffered(read_stream)?;
3876 match enum_value {
3877 0 => Ok(PaymentResultCode::PaymentSuccess),
3878 -1 => Ok(PaymentResultCode::PaymentMalformed),
3879 -2 => Ok(PaymentResultCode::PaymentUnderfunded),
3880 -3 => Ok(PaymentResultCode::PaymentSrcNoTrust),
3881 -4 => Ok(PaymentResultCode::PaymentSrcNotAuthorized),
3882 -5 => Ok(PaymentResultCode::PaymentNoDestination),
3883 -6 => Ok(PaymentResultCode::PaymentNoTrust),
3884 -7 => Ok(PaymentResultCode::PaymentNotAuthorized),
3885 -8 => Ok(PaymentResultCode::PaymentLineFull),
3886 -9 => Ok(PaymentResultCode::PaymentNoIssuer),
3887 _ => Err(DecodeError::InvalidEnumDiscriminator {
3888 at_position: read_stream.get_position(),
3889 }),
3890 }
3891 }
3892}
3893
3894#[allow(dead_code)]
3896#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3897pub enum PathPaymentStrictReceiveResultCode {
3898 PathPaymentStrictReceiveSuccess = 0,
3899 PathPaymentStrictReceiveMalformed = -1,
3900 PathPaymentStrictReceiveUnderfunded = -2,
3901 PathPaymentStrictReceiveSrcNoTrust = -3,
3902 PathPaymentStrictReceiveSrcNotAuthorized = -4,
3903 PathPaymentStrictReceiveNoDestination = -5,
3904 PathPaymentStrictReceiveNoTrust = -6,
3905 PathPaymentStrictReceiveNotAuthorized = -7,
3906 PathPaymentStrictReceiveLineFull = -8,
3907 PathPaymentStrictReceiveNoIssuer = -9,
3908 PathPaymentStrictReceiveTooFewOffers = -10,
3909 PathPaymentStrictReceiveOfferCrossSelf = -11,
3910 PathPaymentStrictReceiveOverSendmax = -12,
3911}
3912
3913impl XdrCodec for PathPaymentStrictReceiveResultCode {
3914 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3915 let value = *self as i32;
3916 value.to_xdr_buffered(write_stream);
3917 }
3918
3919 fn from_xdr_buffered<T: AsRef<[u8]>>(
3920 read_stream: &mut ReadStream<T>,
3921 ) -> Result<Self, DecodeError> {
3922 let enum_value = i32::from_xdr_buffered(read_stream)?;
3923 match enum_value {
3924 0 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess),
3925 -1 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveMalformed),
3926 -2 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveUnderfunded),
3927 -3 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNoTrust),
3928 -4 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNotAuthorized),
3929 -5 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoDestination),
3930 -6 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoTrust),
3931 -7 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNotAuthorized),
3932 -8 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveLineFull),
3933 -9 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer),
3934 -10 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveTooFewOffers),
3935 -11 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOfferCrossSelf),
3936 -12 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOverSendmax),
3937 _ => Err(DecodeError::InvalidEnumDiscriminator {
3938 at_position: read_stream.get_position(),
3939 }),
3940 }
3941 }
3942}
3943
3944#[allow(dead_code)]
3946#[derive(Debug, Clone, Eq, PartialEq)]
3947pub struct SimplePaymentResult {
3948 pub destination: AccountId,
3949 pub asset: Asset,
3950 pub amount: Int64,
3951}
3952
3953impl XdrCodec for SimplePaymentResult {
3954 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3955 self.destination.to_xdr_buffered(write_stream);
3956 self.asset.to_xdr_buffered(write_stream);
3957 self.amount.to_xdr_buffered(write_stream);
3958 }
3959
3960 fn from_xdr_buffered<T: AsRef<[u8]>>(
3961 read_stream: &mut ReadStream<T>,
3962 ) -> Result<Self, DecodeError> {
3963 Ok(SimplePaymentResult {
3964 destination: AccountId::from_xdr_buffered(read_stream)?,
3965 asset: Asset::from_xdr_buffered(read_stream)?,
3966 amount: Int64::from_xdr_buffered(read_stream)?,
3967 })
3968 }
3969}
3970
3971#[allow(dead_code)]
3973#[derive(Debug, Clone, Eq, PartialEq)]
3974pub struct PathPaymentStrictReceiveResultSuccess {
3975 pub offers: UnlimitedVarArray<ClaimAtom>,
3976 pub last: SimplePaymentResult,
3977}
3978
3979impl XdrCodec for PathPaymentStrictReceiveResultSuccess {
3980 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3981 self.offers.to_xdr_buffered(write_stream);
3982 self.last.to_xdr_buffered(write_stream);
3983 }
3984
3985 fn from_xdr_buffered<T: AsRef<[u8]>>(
3986 read_stream: &mut ReadStream<T>,
3987 ) -> Result<Self, DecodeError> {
3988 Ok(PathPaymentStrictReceiveResultSuccess {
3989 offers: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
3990 last: SimplePaymentResult::from_xdr_buffered(read_stream)?,
3991 })
3992 }
3993}
3994
3995#[allow(dead_code)]
3997#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3998pub enum PathPaymentStrictSendResultCode {
3999 PathPaymentStrictSendSuccess = 0,
4000 PathPaymentStrictSendMalformed = -1,
4001 PathPaymentStrictSendUnderfunded = -2,
4002 PathPaymentStrictSendSrcNoTrust = -3,
4003 PathPaymentStrictSendSrcNotAuthorized = -4,
4004 PathPaymentStrictSendNoDestination = -5,
4005 PathPaymentStrictSendNoTrust = -6,
4006 PathPaymentStrictSendNotAuthorized = -7,
4007 PathPaymentStrictSendLineFull = -8,
4008 PathPaymentStrictSendNoIssuer = -9,
4009 PathPaymentStrictSendTooFewOffers = -10,
4010 PathPaymentStrictSendOfferCrossSelf = -11,
4011 PathPaymentStrictSendUnderDestmin = -12,
4012}
4013
4014impl XdrCodec for PathPaymentStrictSendResultCode {
4015 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4016 let value = *self as i32;
4017 value.to_xdr_buffered(write_stream);
4018 }
4019
4020 fn from_xdr_buffered<T: AsRef<[u8]>>(
4021 read_stream: &mut ReadStream<T>,
4022 ) -> Result<Self, DecodeError> {
4023 let enum_value = i32::from_xdr_buffered(read_stream)?;
4024 match enum_value {
4025 0 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess),
4026 -1 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendMalformed),
4027 -2 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderfunded),
4028 -3 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNoTrust),
4029 -4 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNotAuthorized),
4030 -5 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoDestination),
4031 -6 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoTrust),
4032 -7 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNotAuthorized),
4033 -8 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendLineFull),
4034 -9 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer),
4035 -10 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendTooFewOffers),
4036 -11 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendOfferCrossSelf),
4037 -12 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderDestmin),
4038 _ => Err(DecodeError::InvalidEnumDiscriminator {
4039 at_position: read_stream.get_position(),
4040 }),
4041 }
4042 }
4043}
4044
4045#[allow(dead_code)]
4047#[derive(Debug, Clone, Eq, PartialEq)]
4048pub struct PathPaymentStrictSendResultSuccess {
4049 pub offers: UnlimitedVarArray<ClaimAtom>,
4050 pub last: SimplePaymentResult,
4051}
4052
4053impl XdrCodec for PathPaymentStrictSendResultSuccess {
4054 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4055 self.offers.to_xdr_buffered(write_stream);
4056 self.last.to_xdr_buffered(write_stream);
4057 }
4058
4059 fn from_xdr_buffered<T: AsRef<[u8]>>(
4060 read_stream: &mut ReadStream<T>,
4061 ) -> Result<Self, DecodeError> {
4062 Ok(PathPaymentStrictSendResultSuccess {
4063 offers: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
4064 last: SimplePaymentResult::from_xdr_buffered(read_stream)?,
4065 })
4066 }
4067}
4068
4069#[allow(dead_code)]
4071#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4072pub enum ManageSellOfferResultCode {
4073 ManageSellOfferSuccess = 0,
4074 ManageSellOfferMalformed = -1,
4075 ManageSellOfferSellNoTrust = -2,
4076 ManageSellOfferBuyNoTrust = -3,
4077 ManageSellOfferSellNotAuthorized = -4,
4078 ManageSellOfferBuyNotAuthorized = -5,
4079 ManageSellOfferLineFull = -6,
4080 ManageSellOfferUnderfunded = -7,
4081 ManageSellOfferCrossSelf = -8,
4082 ManageSellOfferSellNoIssuer = -9,
4083 ManageSellOfferBuyNoIssuer = -10,
4084 ManageSellOfferNotFound = -11,
4085 ManageSellOfferLowReserve = -12,
4086}
4087
4088impl XdrCodec for ManageSellOfferResultCode {
4089 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4090 let value = *self as i32;
4091 value.to_xdr_buffered(write_stream);
4092 }
4093
4094 fn from_xdr_buffered<T: AsRef<[u8]>>(
4095 read_stream: &mut ReadStream<T>,
4096 ) -> Result<Self, DecodeError> {
4097 let enum_value = i32::from_xdr_buffered(read_stream)?;
4098 match enum_value {
4099 0 => Ok(ManageSellOfferResultCode::ManageSellOfferSuccess),
4100 -1 => Ok(ManageSellOfferResultCode::ManageSellOfferMalformed),
4101 -2 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNoTrust),
4102 -3 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNoTrust),
4103 -4 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNotAuthorized),
4104 -5 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNotAuthorized),
4105 -6 => Ok(ManageSellOfferResultCode::ManageSellOfferLineFull),
4106 -7 => Ok(ManageSellOfferResultCode::ManageSellOfferUnderfunded),
4107 -8 => Ok(ManageSellOfferResultCode::ManageSellOfferCrossSelf),
4108 -9 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNoIssuer),
4109 -10 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNoIssuer),
4110 -11 => Ok(ManageSellOfferResultCode::ManageSellOfferNotFound),
4111 -12 => Ok(ManageSellOfferResultCode::ManageSellOfferLowReserve),
4112 _ => Err(DecodeError::InvalidEnumDiscriminator {
4113 at_position: read_stream.get_position(),
4114 }),
4115 }
4116 }
4117}
4118
4119#[allow(dead_code)]
4121#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4122pub enum ManageOfferEffect {
4123 ManageOfferCreated = 0,
4124 ManageOfferUpdated = 1,
4125 ManageOfferDeleted = 2,
4126}
4127
4128impl XdrCodec for ManageOfferEffect {
4129 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4130 let value = *self as i32;
4131 value.to_xdr_buffered(write_stream);
4132 }
4133
4134 fn from_xdr_buffered<T: AsRef<[u8]>>(
4135 read_stream: &mut ReadStream<T>,
4136 ) -> Result<Self, DecodeError> {
4137 let enum_value = i32::from_xdr_buffered(read_stream)?;
4138 match enum_value {
4139 0 => Ok(ManageOfferEffect::ManageOfferCreated),
4140 1 => Ok(ManageOfferEffect::ManageOfferUpdated),
4141 2 => Ok(ManageOfferEffect::ManageOfferDeleted),
4142 _ => Err(DecodeError::InvalidEnumDiscriminator {
4143 at_position: read_stream.get_position(),
4144 }),
4145 }
4146 }
4147}
4148
4149#[allow(dead_code)]
4151#[derive(Debug, Clone, Eq, PartialEq)]
4152pub struct ManageOfferSuccessResult {
4153 pub offers_claimed: UnlimitedVarArray<ClaimAtom>,
4154 pub offer: ManageOfferSuccessResultOffer,
4155}
4156
4157impl XdrCodec for ManageOfferSuccessResult {
4158 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4159 self.offers_claimed.to_xdr_buffered(write_stream);
4160 self.offer.to_xdr_buffered(write_stream);
4161 }
4162
4163 fn from_xdr_buffered<T: AsRef<[u8]>>(
4164 read_stream: &mut ReadStream<T>,
4165 ) -> Result<Self, DecodeError> {
4166 Ok(ManageOfferSuccessResult {
4167 offers_claimed: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
4168 offer: ManageOfferSuccessResultOffer::from_xdr_buffered(read_stream)?,
4169 })
4170 }
4171}
4172
4173#[allow(dead_code)]
4175#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4176pub enum ManageBuyOfferResultCode {
4177 ManageBuyOfferSuccess = 0,
4178 ManageBuyOfferMalformed = -1,
4179 ManageBuyOfferSellNoTrust = -2,
4180 ManageBuyOfferBuyNoTrust = -3,
4181 ManageBuyOfferSellNotAuthorized = -4,
4182 ManageBuyOfferBuyNotAuthorized = -5,
4183 ManageBuyOfferLineFull = -6,
4184 ManageBuyOfferUnderfunded = -7,
4185 ManageBuyOfferCrossSelf = -8,
4186 ManageBuyOfferSellNoIssuer = -9,
4187 ManageBuyOfferBuyNoIssuer = -10,
4188 ManageBuyOfferNotFound = -11,
4189 ManageBuyOfferLowReserve = -12,
4190}
4191
4192impl XdrCodec for ManageBuyOfferResultCode {
4193 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4194 let value = *self as i32;
4195 value.to_xdr_buffered(write_stream);
4196 }
4197
4198 fn from_xdr_buffered<T: AsRef<[u8]>>(
4199 read_stream: &mut ReadStream<T>,
4200 ) -> Result<Self, DecodeError> {
4201 let enum_value = i32::from_xdr_buffered(read_stream)?;
4202 match enum_value {
4203 0 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSuccess),
4204 -1 => Ok(ManageBuyOfferResultCode::ManageBuyOfferMalformed),
4205 -2 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNoTrust),
4206 -3 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNoTrust),
4207 -4 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNotAuthorized),
4208 -5 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNotAuthorized),
4209 -6 => Ok(ManageBuyOfferResultCode::ManageBuyOfferLineFull),
4210 -7 => Ok(ManageBuyOfferResultCode::ManageBuyOfferUnderfunded),
4211 -8 => Ok(ManageBuyOfferResultCode::ManageBuyOfferCrossSelf),
4212 -9 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNoIssuer),
4213 -10 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNoIssuer),
4214 -11 => Ok(ManageBuyOfferResultCode::ManageBuyOfferNotFound),
4215 -12 => Ok(ManageBuyOfferResultCode::ManageBuyOfferLowReserve),
4216 _ => Err(DecodeError::InvalidEnumDiscriminator {
4217 at_position: read_stream.get_position(),
4218 }),
4219 }
4220 }
4221}
4222
4223#[allow(dead_code)]
4225#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4226pub enum SetOptionsResultCode {
4227 SetOptionsSuccess = 0,
4228 SetOptionsLowReserve = -1,
4229 SetOptionsTooManySigners = -2,
4230 SetOptionsBadFlags = -3,
4231 SetOptionsInvalidInflation = -4,
4232 SetOptionsCantChange = -5,
4233 SetOptionsUnknownFlag = -6,
4234 SetOptionsThresholdOutOfRange = -7,
4235 SetOptionsBadSigner = -8,
4236 SetOptionsInvalidHomeDomain = -9,
4237 SetOptionsAuthRevocableRequired = -10,
4238}
4239
4240impl XdrCodec for SetOptionsResultCode {
4241 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4242 let value = *self as i32;
4243 value.to_xdr_buffered(write_stream);
4244 }
4245
4246 fn from_xdr_buffered<T: AsRef<[u8]>>(
4247 read_stream: &mut ReadStream<T>,
4248 ) -> Result<Self, DecodeError> {
4249 let enum_value = i32::from_xdr_buffered(read_stream)?;
4250 match enum_value {
4251 0 => Ok(SetOptionsResultCode::SetOptionsSuccess),
4252 -1 => Ok(SetOptionsResultCode::SetOptionsLowReserve),
4253 -2 => Ok(SetOptionsResultCode::SetOptionsTooManySigners),
4254 -3 => Ok(SetOptionsResultCode::SetOptionsBadFlags),
4255 -4 => Ok(SetOptionsResultCode::SetOptionsInvalidInflation),
4256 -5 => Ok(SetOptionsResultCode::SetOptionsCantChange),
4257 -6 => Ok(SetOptionsResultCode::SetOptionsUnknownFlag),
4258 -7 => Ok(SetOptionsResultCode::SetOptionsThresholdOutOfRange),
4259 -8 => Ok(SetOptionsResultCode::SetOptionsBadSigner),
4260 -9 => Ok(SetOptionsResultCode::SetOptionsInvalidHomeDomain),
4261 -10 => Ok(SetOptionsResultCode::SetOptionsAuthRevocableRequired),
4262 _ => Err(DecodeError::InvalidEnumDiscriminator {
4263 at_position: read_stream.get_position(),
4264 }),
4265 }
4266 }
4267}
4268
4269#[allow(dead_code)]
4271#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4272pub enum ChangeTrustResultCode {
4273 ChangeTrustSuccess = 0,
4274 ChangeTrustMalformed = -1,
4275 ChangeTrustNoIssuer = -2,
4276 ChangeTrustInvalidLimit = -3,
4277 ChangeTrustLowReserve = -4,
4278 ChangeTrustSelfNotAllowed = -5,
4279 ChangeTrustTrustLineMissing = -6,
4280 ChangeTrustCannotDelete = 7,
4281 ChangeTrustNotAuthMaintainLiabilities = 8,
4282}
4283
4284impl XdrCodec for ChangeTrustResultCode {
4285 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4286 let value = *self as i32;
4287 value.to_xdr_buffered(write_stream);
4288 }
4289
4290 fn from_xdr_buffered<T: AsRef<[u8]>>(
4291 read_stream: &mut ReadStream<T>,
4292 ) -> Result<Self, DecodeError> {
4293 let enum_value = i32::from_xdr_buffered(read_stream)?;
4294 match enum_value {
4295 0 => Ok(ChangeTrustResultCode::ChangeTrustSuccess),
4296 -1 => Ok(ChangeTrustResultCode::ChangeTrustMalformed),
4297 -2 => Ok(ChangeTrustResultCode::ChangeTrustNoIssuer),
4298 -3 => Ok(ChangeTrustResultCode::ChangeTrustInvalidLimit),
4299 -4 => Ok(ChangeTrustResultCode::ChangeTrustLowReserve),
4300 -5 => Ok(ChangeTrustResultCode::ChangeTrustSelfNotAllowed),
4301 -6 => Ok(ChangeTrustResultCode::ChangeTrustTrustLineMissing),
4302 7 => Ok(ChangeTrustResultCode::ChangeTrustCannotDelete),
4303 8 => Ok(ChangeTrustResultCode::ChangeTrustNotAuthMaintainLiabilities),
4304 _ => Err(DecodeError::InvalidEnumDiscriminator {
4305 at_position: read_stream.get_position(),
4306 }),
4307 }
4308 }
4309}
4310
4311#[allow(dead_code)]
4313#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4314pub enum AllowTrustResultCode {
4315 AllowTrustSuccess = 0,
4316 AllowTrustMalformed = -1,
4317 AllowTrustNoTrustLine = -2,
4318 AllowTrustTrustNotRequired = -3,
4319 AllowTrustCantRevoke = -4,
4320 AllowTrustSelfNotAllowed = -5,
4321}
4322
4323impl XdrCodec for AllowTrustResultCode {
4324 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4325 let value = *self as i32;
4326 value.to_xdr_buffered(write_stream);
4327 }
4328
4329 fn from_xdr_buffered<T: AsRef<[u8]>>(
4330 read_stream: &mut ReadStream<T>,
4331 ) -> Result<Self, DecodeError> {
4332 let enum_value = i32::from_xdr_buffered(read_stream)?;
4333 match enum_value {
4334 0 => Ok(AllowTrustResultCode::AllowTrustSuccess),
4335 -1 => Ok(AllowTrustResultCode::AllowTrustMalformed),
4336 -2 => Ok(AllowTrustResultCode::AllowTrustNoTrustLine),
4337 -3 => Ok(AllowTrustResultCode::AllowTrustTrustNotRequired),
4338 -4 => Ok(AllowTrustResultCode::AllowTrustCantRevoke),
4339 -5 => Ok(AllowTrustResultCode::AllowTrustSelfNotAllowed),
4340 _ => Err(DecodeError::InvalidEnumDiscriminator {
4341 at_position: read_stream.get_position(),
4342 }),
4343 }
4344 }
4345}
4346
4347#[allow(dead_code)]
4349#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4350pub enum AccountMergeResultCode {
4351 AccountMergeSuccess = 0,
4352 AccountMergeMalformed = -1,
4353 AccountMergeNoAccount = -2,
4354 AccountMergeImmutableSet = -3,
4355 AccountMergeHasSubEntries = -4,
4356 AccountMergeSeqnumTooFar = -5,
4357 AccountMergeDestFull = -6,
4358 AccountMergeIsSponsor = -7,
4359}
4360
4361impl XdrCodec for AccountMergeResultCode {
4362 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4363 let value = *self as i32;
4364 value.to_xdr_buffered(write_stream);
4365 }
4366
4367 fn from_xdr_buffered<T: AsRef<[u8]>>(
4368 read_stream: &mut ReadStream<T>,
4369 ) -> Result<Self, DecodeError> {
4370 let enum_value = i32::from_xdr_buffered(read_stream)?;
4371 match enum_value {
4372 0 => Ok(AccountMergeResultCode::AccountMergeSuccess),
4373 -1 => Ok(AccountMergeResultCode::AccountMergeMalformed),
4374 -2 => Ok(AccountMergeResultCode::AccountMergeNoAccount),
4375 -3 => Ok(AccountMergeResultCode::AccountMergeImmutableSet),
4376 -4 => Ok(AccountMergeResultCode::AccountMergeHasSubEntries),
4377 -5 => Ok(AccountMergeResultCode::AccountMergeSeqnumTooFar),
4378 -6 => Ok(AccountMergeResultCode::AccountMergeDestFull),
4379 -7 => Ok(AccountMergeResultCode::AccountMergeIsSponsor),
4380 _ => Err(DecodeError::InvalidEnumDiscriminator {
4381 at_position: read_stream.get_position(),
4382 }),
4383 }
4384 }
4385}
4386
4387#[allow(dead_code)]
4389#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4390pub enum InflationResultCode {
4391 InflationSuccess = 0,
4392 InflationNotTime = -1,
4393}
4394
4395impl XdrCodec for InflationResultCode {
4396 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4397 let value = *self as i32;
4398 value.to_xdr_buffered(write_stream);
4399 }
4400
4401 fn from_xdr_buffered<T: AsRef<[u8]>>(
4402 read_stream: &mut ReadStream<T>,
4403 ) -> Result<Self, DecodeError> {
4404 let enum_value = i32::from_xdr_buffered(read_stream)?;
4405 match enum_value {
4406 0 => Ok(InflationResultCode::InflationSuccess),
4407 -1 => Ok(InflationResultCode::InflationNotTime),
4408 _ => Err(DecodeError::InvalidEnumDiscriminator {
4409 at_position: read_stream.get_position(),
4410 }),
4411 }
4412 }
4413}
4414
4415#[allow(dead_code)]
4417#[derive(Debug, Clone, Eq, PartialEq)]
4418pub struct InflationPayout {
4419 pub destination: AccountId,
4420 pub amount: Int64,
4421}
4422
4423impl XdrCodec for InflationPayout {
4424 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4425 self.destination.to_xdr_buffered(write_stream);
4426 self.amount.to_xdr_buffered(write_stream);
4427 }
4428
4429 fn from_xdr_buffered<T: AsRef<[u8]>>(
4430 read_stream: &mut ReadStream<T>,
4431 ) -> Result<Self, DecodeError> {
4432 Ok(InflationPayout {
4433 destination: AccountId::from_xdr_buffered(read_stream)?,
4434 amount: Int64::from_xdr_buffered(read_stream)?,
4435 })
4436 }
4437}
4438
4439#[allow(dead_code)]
4441#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4442pub enum ManageDataResultCode {
4443 ManageDataSuccess = 0,
4444 ManageDataNotSupportedYet = -1,
4445 ManageDataNameNotFound = -2,
4446 ManageDataLowReserve = -3,
4447 ManageDataInvalidName = -4,
4448}
4449
4450impl XdrCodec for ManageDataResultCode {
4451 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4452 let value = *self as i32;
4453 value.to_xdr_buffered(write_stream);
4454 }
4455
4456 fn from_xdr_buffered<T: AsRef<[u8]>>(
4457 read_stream: &mut ReadStream<T>,
4458 ) -> Result<Self, DecodeError> {
4459 let enum_value = i32::from_xdr_buffered(read_stream)?;
4460 match enum_value {
4461 0 => Ok(ManageDataResultCode::ManageDataSuccess),
4462 -1 => Ok(ManageDataResultCode::ManageDataNotSupportedYet),
4463 -2 => Ok(ManageDataResultCode::ManageDataNameNotFound),
4464 -3 => Ok(ManageDataResultCode::ManageDataLowReserve),
4465 -4 => Ok(ManageDataResultCode::ManageDataInvalidName),
4466 _ => Err(DecodeError::InvalidEnumDiscriminator {
4467 at_position: read_stream.get_position(),
4468 }),
4469 }
4470 }
4471}
4472
4473#[allow(dead_code)]
4475#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4476pub enum BumpSequenceResultCode {
4477 BumpSequenceSuccess = 0,
4478 BumpSequenceBadSeq = -1,
4479}
4480
4481impl XdrCodec for BumpSequenceResultCode {
4482 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4483 let value = *self as i32;
4484 value.to_xdr_buffered(write_stream);
4485 }
4486
4487 fn from_xdr_buffered<T: AsRef<[u8]>>(
4488 read_stream: &mut ReadStream<T>,
4489 ) -> Result<Self, DecodeError> {
4490 let enum_value = i32::from_xdr_buffered(read_stream)?;
4491 match enum_value {
4492 0 => Ok(BumpSequenceResultCode::BumpSequenceSuccess),
4493 -1 => Ok(BumpSequenceResultCode::BumpSequenceBadSeq),
4494 _ => Err(DecodeError::InvalidEnumDiscriminator {
4495 at_position: read_stream.get_position(),
4496 }),
4497 }
4498 }
4499}
4500
4501#[allow(dead_code)]
4503#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4504pub enum CreateClaimableBalanceResultCode {
4505 CreateClaimableBalanceSuccess = 0,
4506 CreateClaimableBalanceMalformed = -1,
4507 CreateClaimableBalanceLowReserve = -2,
4508 CreateClaimableBalanceNoTrust = -3,
4509 CreateClaimableBalanceNotAuthorized = -4,
4510 CreateClaimableBalanceUnderfunded = -5,
4511}
4512
4513impl XdrCodec for CreateClaimableBalanceResultCode {
4514 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4515 let value = *self as i32;
4516 value.to_xdr_buffered(write_stream);
4517 }
4518
4519 fn from_xdr_buffered<T: AsRef<[u8]>>(
4520 read_stream: &mut ReadStream<T>,
4521 ) -> Result<Self, DecodeError> {
4522 let enum_value = i32::from_xdr_buffered(read_stream)?;
4523 match enum_value {
4524 0 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess),
4525 -1 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceMalformed),
4526 -2 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceLowReserve),
4527 -3 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceNoTrust),
4528 -4 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceNotAuthorized),
4529 -5 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceUnderfunded),
4530 _ => Err(DecodeError::InvalidEnumDiscriminator {
4531 at_position: read_stream.get_position(),
4532 }),
4533 }
4534 }
4535}
4536
4537#[allow(dead_code)]
4539#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4540pub enum ClaimClaimableBalanceResultCode {
4541 ClaimClaimableBalanceSuccess = 0,
4542 ClaimClaimableBalanceDoesNotExist = -1,
4543 ClaimClaimableBalanceCannotClaim = -2,
4544 ClaimClaimableBalanceLineFull = -3,
4545 ClaimClaimableBalanceNoTrust = -4,
4546 ClaimClaimableBalanceNotAuthorized = -5,
4547}
4548
4549impl XdrCodec for ClaimClaimableBalanceResultCode {
4550 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4551 let value = *self as i32;
4552 value.to_xdr_buffered(write_stream);
4553 }
4554
4555 fn from_xdr_buffered<T: AsRef<[u8]>>(
4556 read_stream: &mut ReadStream<T>,
4557 ) -> Result<Self, DecodeError> {
4558 let enum_value = i32::from_xdr_buffered(read_stream)?;
4559 match enum_value {
4560 0 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess),
4561 -1 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceDoesNotExist),
4562 -2 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceCannotClaim),
4563 -3 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceLineFull),
4564 -4 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNoTrust),
4565 -5 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNotAuthorized),
4566 _ => Err(DecodeError::InvalidEnumDiscriminator {
4567 at_position: read_stream.get_position(),
4568 }),
4569 }
4570 }
4571}
4572
4573#[allow(dead_code)]
4575#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4576pub enum BeginSponsoringFutureReservesResultCode {
4577 BeginSponsoringFutureReservesSuccess = 0,
4578 BeginSponsoringFutureReservesMalformed = -1,
4579 BeginSponsoringFutureReservesAlreadySponsored = -2,
4580 BeginSponsoringFutureReservesRecursive = -3,
4581}
4582
4583impl XdrCodec for BeginSponsoringFutureReservesResultCode {
4584 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4585 let value = *self as i32;
4586 value.to_xdr_buffered(write_stream);
4587 }
4588
4589 fn from_xdr_buffered<T: AsRef<[u8]>>(
4590 read_stream: &mut ReadStream<T>,
4591 ) -> Result<Self, DecodeError> {
4592 let enum_value = i32::from_xdr_buffered(read_stream)?;
4593 match enum_value {
4594 0 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess),
4595 -1 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesMalformed),
4596 -2 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesAlreadySponsored),
4597 -3 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesRecursive),
4598 _ => Err(DecodeError::InvalidEnumDiscriminator {at_position: read_stream.get_position()})
4599 }
4600 }
4601}
4602
4603#[allow(dead_code)]
4605#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4606pub enum EndSponsoringFutureReservesResultCode {
4607 EndSponsoringFutureReservesSuccess = 0,
4608 EndSponsoringFutureReservesNotSponsored = -1,
4609}
4610
4611impl XdrCodec for EndSponsoringFutureReservesResultCode {
4612 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4613 let value = *self as i32;
4614 value.to_xdr_buffered(write_stream);
4615 }
4616
4617 fn from_xdr_buffered<T: AsRef<[u8]>>(
4618 read_stream: &mut ReadStream<T>,
4619 ) -> Result<Self, DecodeError> {
4620 let enum_value = i32::from_xdr_buffered(read_stream)?;
4621 match enum_value {
4622 0 => Ok(EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess),
4623 -1 => {
4624 Ok(EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesNotSponsored)
4625 }
4626 _ => Err(DecodeError::InvalidEnumDiscriminator {
4627 at_position: read_stream.get_position(),
4628 }),
4629 }
4630 }
4631}
4632
4633#[allow(dead_code)]
4635#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4636pub enum RevokeSponsorshipResultCode {
4637 RevokeSponsorshipSuccess = 0,
4638 RevokeSponsorshipDoesNotExist = -1,
4639 RevokeSponsorshipNotSponsor = -2,
4640 RevokeSponsorshipLowReserve = -3,
4641 RevokeSponsorshipOnlyTransferable = -4,
4642 RevokeSponsorshipMalformed = -5,
4643}
4644
4645impl XdrCodec for RevokeSponsorshipResultCode {
4646 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4647 let value = *self as i32;
4648 value.to_xdr_buffered(write_stream);
4649 }
4650
4651 fn from_xdr_buffered<T: AsRef<[u8]>>(
4652 read_stream: &mut ReadStream<T>,
4653 ) -> Result<Self, DecodeError> {
4654 let enum_value = i32::from_xdr_buffered(read_stream)?;
4655 match enum_value {
4656 0 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipSuccess),
4657 -1 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipDoesNotExist),
4658 -2 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipNotSponsor),
4659 -3 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipLowReserve),
4660 -4 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipOnlyTransferable),
4661 -5 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipMalformed),
4662 _ => Err(DecodeError::InvalidEnumDiscriminator {
4663 at_position: read_stream.get_position(),
4664 }),
4665 }
4666 }
4667}
4668
4669#[allow(dead_code)]
4671#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4672pub enum ClawbackResultCode {
4673 ClawbackSuccess = 0,
4674 ClawbackMalformed = -1,
4675 ClawbackNotClawbackEnabled = -2,
4676 ClawbackNoTrust = -3,
4677 ClawbackUnderfunded = -4,
4678}
4679
4680impl XdrCodec for ClawbackResultCode {
4681 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4682 let value = *self as i32;
4683 value.to_xdr_buffered(write_stream);
4684 }
4685
4686 fn from_xdr_buffered<T: AsRef<[u8]>>(
4687 read_stream: &mut ReadStream<T>,
4688 ) -> Result<Self, DecodeError> {
4689 let enum_value = i32::from_xdr_buffered(read_stream)?;
4690 match enum_value {
4691 0 => Ok(ClawbackResultCode::ClawbackSuccess),
4692 -1 => Ok(ClawbackResultCode::ClawbackMalformed),
4693 -2 => Ok(ClawbackResultCode::ClawbackNotClawbackEnabled),
4694 -3 => Ok(ClawbackResultCode::ClawbackNoTrust),
4695 -4 => Ok(ClawbackResultCode::ClawbackUnderfunded),
4696 _ => Err(DecodeError::InvalidEnumDiscriminator {
4697 at_position: read_stream.get_position(),
4698 }),
4699 }
4700 }
4701}
4702
4703#[allow(dead_code)]
4705#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4706pub enum ClawbackClaimableBalanceResultCode {
4707 ClawbackClaimableBalanceSuccess = 0,
4708 ClawbackClaimableBalanceDoesNotExist = -1,
4709 ClawbackClaimableBalanceNotIssuer = -2,
4710 ClawbackClaimableBalanceNotClawbackEnabled = -3,
4711}
4712
4713impl XdrCodec for ClawbackClaimableBalanceResultCode {
4714 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4715 let value = *self as i32;
4716 value.to_xdr_buffered(write_stream);
4717 }
4718
4719 fn from_xdr_buffered<T: AsRef<[u8]>>(
4720 read_stream: &mut ReadStream<T>,
4721 ) -> Result<Self, DecodeError> {
4722 let enum_value = i32::from_xdr_buffered(read_stream)?;
4723 match enum_value {
4724 0 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess),
4725 -1 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceDoesNotExist),
4726 -2 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotIssuer),
4727 -3 => {
4728 Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotClawbackEnabled)
4729 }
4730 _ => Err(DecodeError::InvalidEnumDiscriminator {
4731 at_position: read_stream.get_position(),
4732 }),
4733 }
4734 }
4735}
4736
4737#[allow(dead_code)]
4739#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4740pub enum SetTrustLineFlagsResultCode {
4741 SetTrustLineFlagsSuccess = 0,
4742 SetTrustLineFlagsMalformed = -1,
4743 SetTrustLineFlagsNoTrustLine = -2,
4744 SetTrustLineFlagsCantRevoke = -3,
4745 SetTrustLineFlagsInvalidState = -4,
4746}
4747
4748impl XdrCodec for SetTrustLineFlagsResultCode {
4749 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4750 let value = *self as i32;
4751 value.to_xdr_buffered(write_stream);
4752 }
4753
4754 fn from_xdr_buffered<T: AsRef<[u8]>>(
4755 read_stream: &mut ReadStream<T>,
4756 ) -> Result<Self, DecodeError> {
4757 let enum_value = i32::from_xdr_buffered(read_stream)?;
4758 match enum_value {
4759 0 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess),
4760 -1 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsMalformed),
4761 -2 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsNoTrustLine),
4762 -3 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsCantRevoke),
4763 -4 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsInvalidState),
4764 _ => Err(DecodeError::InvalidEnumDiscriminator {
4765 at_position: read_stream.get_position(),
4766 }),
4767 }
4768 }
4769}
4770
4771#[allow(dead_code)]
4773#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4774pub enum OperationResultCode {
4775 OpInner = 0,
4776 OpBadAuth = -1,
4777 OpNoAccount = -2,
4778 OpNotSupported = -3,
4779 OpTooManySubentries = -4,
4780 OpExceededWorkLimit = -5,
4781 OpTooManySponsoring = -6,
4782}
4783
4784impl XdrCodec for OperationResultCode {
4785 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4786 let value = *self as i32;
4787 value.to_xdr_buffered(write_stream);
4788 }
4789
4790 fn from_xdr_buffered<T: AsRef<[u8]>>(
4791 read_stream: &mut ReadStream<T>,
4792 ) -> Result<Self, DecodeError> {
4793 let enum_value = i32::from_xdr_buffered(read_stream)?;
4794 match enum_value {
4795 0 => Ok(OperationResultCode::OpInner),
4796 -1 => Ok(OperationResultCode::OpBadAuth),
4797 -2 => Ok(OperationResultCode::OpNoAccount),
4798 -3 => Ok(OperationResultCode::OpNotSupported),
4799 -4 => Ok(OperationResultCode::OpTooManySubentries),
4800 -5 => Ok(OperationResultCode::OpExceededWorkLimit),
4801 -6 => Ok(OperationResultCode::OpTooManySponsoring),
4802 _ => Err(DecodeError::InvalidEnumDiscriminator {
4803 at_position: read_stream.get_position(),
4804 }),
4805 }
4806 }
4807}
4808
4809#[allow(dead_code)]
4811#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4812pub enum TransactionResultCode {
4813 TxFeeBumpInnerSuccess = 1,
4814 TxSuccess = 0,
4815 TxFailed = -1,
4816 TxTooEarly = -2,
4817 TxTooLate = -3,
4818 TxMissingOperation = -4,
4819 TxBadSeq = -5,
4820 TxBadAuth = -6,
4821 TxInsufficientBalance = -7,
4822 TxNoAccount = -8,
4823 TxInsufficientFee = -9,
4824 TxBadAuthExtra = -10,
4825 TxInternalError = -11,
4826 TxNotSupported = -12,
4827 TxFeeBumpInnerFailed = -13,
4828 TxBadSponsorship = -14,
4829}
4830
4831impl XdrCodec for TransactionResultCode {
4832 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4833 let value = *self as i32;
4834 value.to_xdr_buffered(write_stream);
4835 }
4836
4837 fn from_xdr_buffered<T: AsRef<[u8]>>(
4838 read_stream: &mut ReadStream<T>,
4839 ) -> Result<Self, DecodeError> {
4840 let enum_value = i32::from_xdr_buffered(read_stream)?;
4841 match enum_value {
4842 1 => Ok(TransactionResultCode::TxFeeBumpInnerSuccess),
4843 0 => Ok(TransactionResultCode::TxSuccess),
4844 -1 => Ok(TransactionResultCode::TxFailed),
4845 -2 => Ok(TransactionResultCode::TxTooEarly),
4846 -3 => Ok(TransactionResultCode::TxTooLate),
4847 -4 => Ok(TransactionResultCode::TxMissingOperation),
4848 -5 => Ok(TransactionResultCode::TxBadSeq),
4849 -6 => Ok(TransactionResultCode::TxBadAuth),
4850 -7 => Ok(TransactionResultCode::TxInsufficientBalance),
4851 -8 => Ok(TransactionResultCode::TxNoAccount),
4852 -9 => Ok(TransactionResultCode::TxInsufficientFee),
4853 -10 => Ok(TransactionResultCode::TxBadAuthExtra),
4854 -11 => Ok(TransactionResultCode::TxInternalError),
4855 -12 => Ok(TransactionResultCode::TxNotSupported),
4856 -13 => Ok(TransactionResultCode::TxFeeBumpInnerFailed),
4857 -14 => Ok(TransactionResultCode::TxBadSponsorship),
4858 _ => Err(DecodeError::InvalidEnumDiscriminator {
4859 at_position: read_stream.get_position(),
4860 }),
4861 }
4862 }
4863}
4864
4865#[allow(dead_code)]
4867#[derive(Debug, Clone, Eq, PartialEq)]
4868pub struct InnerTransactionResult {
4869 pub fee_charged: Int64,
4870 pub result: InnerTransactionResultResult,
4871 pub ext: InnerTransactionResultExt,
4872}
4873
4874impl XdrCodec for InnerTransactionResult {
4875 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4876 self.fee_charged.to_xdr_buffered(write_stream);
4877 self.result.to_xdr_buffered(write_stream);
4878 self.ext.to_xdr_buffered(write_stream);
4879 }
4880
4881 fn from_xdr_buffered<T: AsRef<[u8]>>(
4882 read_stream: &mut ReadStream<T>,
4883 ) -> Result<Self, DecodeError> {
4884 Ok(InnerTransactionResult {
4885 fee_charged: Int64::from_xdr_buffered(read_stream)?,
4886 result: InnerTransactionResultResult::from_xdr_buffered(read_stream)?,
4887 ext: InnerTransactionResultExt::from_xdr_buffered(read_stream)?,
4888 })
4889 }
4890}
4891
4892#[allow(dead_code)]
4894#[derive(Debug, Clone, Eq, PartialEq)]
4895pub struct InnerTransactionResultPair {
4896 pub transaction_hash: Hash,
4897 pub result: InnerTransactionResult,
4898}
4899
4900impl XdrCodec for InnerTransactionResultPair {
4901 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4902 self.transaction_hash.to_xdr_buffered(write_stream);
4903 self.result.to_xdr_buffered(write_stream);
4904 }
4905
4906 fn from_xdr_buffered<T: AsRef<[u8]>>(
4907 read_stream: &mut ReadStream<T>,
4908 ) -> Result<Self, DecodeError> {
4909 Ok(InnerTransactionResultPair {
4910 transaction_hash: Hash::from_xdr_buffered(read_stream)?,
4911 result: InnerTransactionResult::from_xdr_buffered(read_stream)?,
4912 })
4913 }
4914}
4915
4916#[allow(dead_code)]
4918#[derive(Debug, Clone, Eq, PartialEq)]
4919pub struct TransactionResult {
4920 pub fee_charged: Int64,
4921 pub result: TransactionResultResult,
4922 pub ext: TransactionResultExt,
4923}
4924
4925impl XdrCodec for TransactionResult {
4926 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4927 self.fee_charged.to_xdr_buffered(write_stream);
4928 self.result.to_xdr_buffered(write_stream);
4929 self.ext.to_xdr_buffered(write_stream);
4930 }
4931
4932 fn from_xdr_buffered<T: AsRef<[u8]>>(
4933 read_stream: &mut ReadStream<T>,
4934 ) -> Result<Self, DecodeError> {
4935 Ok(TransactionResult {
4936 fee_charged: Int64::from_xdr_buffered(read_stream)?,
4937 result: TransactionResultResult::from_xdr_buffered(read_stream)?,
4938 ext: TransactionResultExt::from_xdr_buffered(read_stream)?,
4939 })
4940 }
4941}
4942
4943#[allow(dead_code)]
4945pub type Hash = [u8; 32];
4946
4947#[allow(dead_code)]
4949pub type Uint256 = [u8; 32];
4950
4951#[allow(dead_code)]
4953pub type Uint32 = u32;
4954
4955#[allow(dead_code)]
4957pub type Int32 = i32;
4958
4959#[allow(dead_code)]
4961pub type Uint64 = u64;
4962
4963#[allow(dead_code)]
4965pub type Int64 = i64;
4966
4967#[allow(dead_code)]
4969#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4970pub enum CryptoKeyType {
4971 KeyTypeEd25519 = 0,
4972 KeyTypePreAuthTx = 1,
4973 KeyTypeHashX = 2,
4974 KeyTypeMuxedEd25519 = 256,
4975}
4976
4977impl XdrCodec for CryptoKeyType {
4978 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4979 let value = *self as i32;
4980 value.to_xdr_buffered(write_stream);
4981 }
4982
4983 fn from_xdr_buffered<T: AsRef<[u8]>>(
4984 read_stream: &mut ReadStream<T>,
4985 ) -> Result<Self, DecodeError> {
4986 let enum_value = i32::from_xdr_buffered(read_stream)?;
4987 match enum_value {
4988 0 => Ok(CryptoKeyType::KeyTypeEd25519),
4989 1 => Ok(CryptoKeyType::KeyTypePreAuthTx),
4990 2 => Ok(CryptoKeyType::KeyTypeHashX),
4991 256 => Ok(CryptoKeyType::KeyTypeMuxedEd25519),
4992 _ => Err(DecodeError::InvalidEnumDiscriminator {
4993 at_position: read_stream.get_position(),
4994 }),
4995 }
4996 }
4997}
4998
4999#[allow(dead_code)]
5001#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5002pub enum PublicKeyType {
5003 PublicKeyTypeEd25519 = 0,
5004}
5005
5006impl XdrCodec for PublicKeyType {
5007 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5008 let value = *self as i32;
5009 value.to_xdr_buffered(write_stream);
5010 }
5011
5012 fn from_xdr_buffered<T: AsRef<[u8]>>(
5013 read_stream: &mut ReadStream<T>,
5014 ) -> Result<Self, DecodeError> {
5015 let enum_value = i32::from_xdr_buffered(read_stream)?;
5016 match enum_value {
5017 0 => Ok(PublicKeyType::PublicKeyTypeEd25519),
5018 _ => Err(DecodeError::InvalidEnumDiscriminator {
5019 at_position: read_stream.get_position(),
5020 }),
5021 }
5022 }
5023}
5024
5025#[allow(dead_code)]
5027#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5028pub enum SignerKeyType {
5029 SignerKeyTypeEd25519 = 0,
5030 SignerKeyTypePreAuthTx = 1,
5031 SignerKeyTypeHashX = 2,
5032}
5033
5034impl XdrCodec for SignerKeyType {
5035 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5036 let value = *self as i32;
5037 value.to_xdr_buffered(write_stream);
5038 }
5039
5040 fn from_xdr_buffered<T: AsRef<[u8]>>(
5041 read_stream: &mut ReadStream<T>,
5042 ) -> Result<Self, DecodeError> {
5043 let enum_value = i32::from_xdr_buffered(read_stream)?;
5044 match enum_value {
5045 0 => Ok(SignerKeyType::SignerKeyTypeEd25519),
5046 1 => Ok(SignerKeyType::SignerKeyTypePreAuthTx),
5047 2 => Ok(SignerKeyType::SignerKeyTypeHashX),
5048 _ => Err(DecodeError::InvalidEnumDiscriminator {
5049 at_position: read_stream.get_position(),
5050 }),
5051 }
5052 }
5053}
5054
5055#[allow(dead_code)]
5057pub type Signature = LimitedVarOpaque<64>;
5058
5059#[allow(dead_code)]
5061pub type SignatureHint = [u8; 4];
5062
5063#[allow(dead_code)]
5065#[cfg(feature = "all-types")]
5066pub type NodeId = PublicKey;
5067
5068#[allow(dead_code)]
5070#[cfg(feature = "all-types")]
5071#[derive(Debug, Clone, Eq, PartialEq)]
5072pub struct Curve25519Secret {
5073 pub key: [u8; 32],
5074}
5075
5076#[cfg(feature = "all-types")]
5077impl XdrCodec for Curve25519Secret {
5078 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5079 self.key.to_xdr_buffered(write_stream);
5080 }
5081
5082 fn from_xdr_buffered<T: AsRef<[u8]>>(
5083 read_stream: &mut ReadStream<T>,
5084 ) -> Result<Self, DecodeError> {
5085 Ok(Curve25519Secret {
5086 key: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5087 })
5088 }
5089}
5090
5091#[allow(dead_code)]
5093#[cfg(feature = "all-types")]
5094#[derive(Debug, Clone, Eq, PartialEq)]
5095pub struct Curve25519Public {
5096 pub key: [u8; 32],
5097}
5098
5099#[cfg(feature = "all-types")]
5100impl XdrCodec for Curve25519Public {
5101 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5102 self.key.to_xdr_buffered(write_stream);
5103 }
5104
5105 fn from_xdr_buffered<T: AsRef<[u8]>>(
5106 read_stream: &mut ReadStream<T>,
5107 ) -> Result<Self, DecodeError> {
5108 Ok(Curve25519Public {
5109 key: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5110 })
5111 }
5112}
5113
5114#[allow(dead_code)]
5116#[cfg(feature = "all-types")]
5117#[derive(Debug, Clone, Eq, PartialEq)]
5118pub struct HmacSha256Key {
5119 pub key: [u8; 32],
5120}
5121
5122#[cfg(feature = "all-types")]
5123impl XdrCodec for HmacSha256Key {
5124 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5125 self.key.to_xdr_buffered(write_stream);
5126 }
5127
5128 fn from_xdr_buffered<T: AsRef<[u8]>>(
5129 read_stream: &mut ReadStream<T>,
5130 ) -> Result<Self, DecodeError> {
5131 Ok(HmacSha256Key {
5132 key: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5133 })
5134 }
5135}
5136
5137#[allow(dead_code)]
5139#[cfg(feature = "all-types")]
5140#[derive(Debug, Clone, Eq, PartialEq)]
5141pub struct HmacSha256Mac {
5142 pub mac: [u8; 32],
5143}
5144
5145#[cfg(feature = "all-types")]
5146impl XdrCodec for HmacSha256Mac {
5147 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5148 self.mac.to_xdr_buffered(write_stream);
5149 }
5150
5151 fn from_xdr_buffered<T: AsRef<[u8]>>(
5152 read_stream: &mut ReadStream<T>,
5153 ) -> Result<Self, DecodeError> {
5154 Ok(HmacSha256Mac {
5155 mac: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5156 })
5157 }
5158}
5159
5160#[allow(dead_code)]
5162#[cfg(feature = "all-types")]
5163#[derive(Debug, Clone, Eq, PartialEq)]
5164pub enum ScpStatementPledges {
5165 ScpStPrepare(ScpStatementPrepare),
5166 ScpStConfirm(ScpStatementConfirm),
5167 ScpStExternalize(ScpStatementExternalize),
5168 ScpStNominate(ScpNomination),
5169}
5170
5171#[cfg(feature = "all-types")]
5172impl XdrCodec for ScpStatementPledges {
5173 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5174 match self {
5175 ScpStatementPledges::ScpStPrepare(value) => {
5176 ScpStatementType::ScpStPrepare.to_xdr_buffered(write_stream);
5177 value.to_xdr_buffered(write_stream)
5178 }
5179 ScpStatementPledges::ScpStConfirm(value) => {
5180 ScpStatementType::ScpStConfirm.to_xdr_buffered(write_stream);
5181 value.to_xdr_buffered(write_stream)
5182 }
5183 ScpStatementPledges::ScpStExternalize(value) => {
5184 ScpStatementType::ScpStExternalize.to_xdr_buffered(write_stream);
5185 value.to_xdr_buffered(write_stream)
5186 }
5187 ScpStatementPledges::ScpStNominate(value) => {
5188 ScpStatementType::ScpStNominate.to_xdr_buffered(write_stream);
5189 value.to_xdr_buffered(write_stream)
5190 }
5191 }
5192 }
5193
5194 fn from_xdr_buffered<T: AsRef<[u8]>>(
5195 read_stream: &mut ReadStream<T>,
5196 ) -> Result<Self, DecodeError> {
5197 match ScpStatementType::from_xdr_buffered(read_stream)? {
5198 ScpStatementType::ScpStPrepare => Ok(ScpStatementPledges::ScpStPrepare(
5199 ScpStatementPrepare::from_xdr_buffered(read_stream)?,
5200 )),
5201 ScpStatementType::ScpStConfirm => Ok(ScpStatementPledges::ScpStConfirm(
5202 ScpStatementConfirm::from_xdr_buffered(read_stream)?,
5203 )),
5204 ScpStatementType::ScpStExternalize => Ok(ScpStatementPledges::ScpStExternalize(
5205 ScpStatementExternalize::from_xdr_buffered(read_stream)?,
5206 )),
5207 ScpStatementType::ScpStNominate => Ok(ScpStatementPledges::ScpStNominate(
5208 ScpNomination::from_xdr_buffered(read_stream)?,
5209 )),
5210 }
5211 }
5212}
5213
5214#[allow(dead_code)]
5216#[derive(Debug, Clone, Eq, PartialEq)]
5217pub enum AssetCode {
5218 AssetTypeCreditAlphanum4(AssetCode4),
5219 AssetTypeCreditAlphanum12(AssetCode12),
5220 Default(AssetType),
5221}
5222
5223impl XdrCodec for AssetCode {
5224 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5225 match self {
5226 AssetCode::AssetTypeCreditAlphanum4(value) => {
5227 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
5228 value.to_xdr_buffered(write_stream)
5229 }
5230 AssetCode::AssetTypeCreditAlphanum12(value) => {
5231 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
5232 value.to_xdr_buffered(write_stream)
5233 }
5234 AssetCode::Default(code) => code.to_xdr_buffered(write_stream),
5235 }
5236 }
5237
5238 fn from_xdr_buffered<T: AsRef<[u8]>>(
5239 read_stream: &mut ReadStream<T>,
5240 ) -> Result<Self, DecodeError> {
5241 match AssetType::from_xdr_buffered(read_stream)? {
5242 AssetType::AssetTypeCreditAlphanum4 => Ok(AssetCode::AssetTypeCreditAlphanum4(
5243 AssetCode4::from_xdr_buffered(read_stream)?,
5244 )),
5245 AssetType::AssetTypeCreditAlphanum12 => Ok(AssetCode::AssetTypeCreditAlphanum12(
5246 AssetCode12::from_xdr_buffered(read_stream)?,
5247 )),
5248 code => Ok(AssetCode::Default(code)),
5249 }
5250 }
5251}
5252
5253#[allow(dead_code)]
5255#[derive(Debug, Clone, Eq, PartialEq)]
5256pub enum Asset {
5257 AssetTypeNative,
5258 AssetTypeCreditAlphanum4(AlphaNum4),
5259 AssetTypeCreditAlphanum12(AlphaNum12),
5260 Default(AssetType),
5261}
5262
5263impl XdrCodec for Asset {
5264 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5265 match self {
5266 Asset::AssetTypeNative => AssetType::AssetTypeNative.to_xdr_buffered(write_stream),
5267 Asset::AssetTypeCreditAlphanum4(value) => {
5268 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
5269 value.to_xdr_buffered(write_stream)
5270 }
5271 Asset::AssetTypeCreditAlphanum12(value) => {
5272 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
5273 value.to_xdr_buffered(write_stream)
5274 }
5275 Asset::Default(code) => code.to_xdr_buffered(write_stream),
5276 }
5277 }
5278
5279 fn from_xdr_buffered<T: AsRef<[u8]>>(
5280 read_stream: &mut ReadStream<T>,
5281 ) -> Result<Self, DecodeError> {
5282 match AssetType::from_xdr_buffered(read_stream)? {
5283 AssetType::AssetTypeNative => Ok(Asset::AssetTypeNative),
5284 AssetType::AssetTypeCreditAlphanum4 => Ok(Asset::AssetTypeCreditAlphanum4(
5285 AlphaNum4::from_xdr_buffered(read_stream)?,
5286 )),
5287 AssetType::AssetTypeCreditAlphanum12 => Ok(Asset::AssetTypeCreditAlphanum12(
5288 AlphaNum12::from_xdr_buffered(read_stream)?,
5289 )),
5290 code => Ok(Asset::Default(code)),
5291 }
5292 }
5293}
5294
5295#[allow(dead_code)]
5297#[derive(Debug, Clone, Eq, PartialEq)]
5298pub enum AccountEntryExtensionV2Ext {
5299 V0,
5300 Default(i32),
5301}
5302
5303impl XdrCodec for AccountEntryExtensionV2Ext {
5304 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5305 match self {
5306 AccountEntryExtensionV2Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5307 AccountEntryExtensionV2Ext::Default(code) => code.to_xdr_buffered(write_stream),
5308 }
5309 }
5310
5311 fn from_xdr_buffered<T: AsRef<[u8]>>(
5312 read_stream: &mut ReadStream<T>,
5313 ) -> Result<Self, DecodeError> {
5314 match i32::from_xdr_buffered(read_stream)? {
5315 0 => Ok(AccountEntryExtensionV2Ext::V0),
5316 code => Ok(AccountEntryExtensionV2Ext::Default(code)),
5317 }
5318 }
5319}
5320
5321#[allow(dead_code)]
5323#[derive(Debug, Clone, Eq, PartialEq)]
5324pub enum AccountEntryExtensionV1Ext {
5325 V0,
5326 V2(AccountEntryExtensionV2),
5327 Default(i32),
5328}
5329
5330impl XdrCodec for AccountEntryExtensionV1Ext {
5331 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5332 match self {
5333 AccountEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5334 AccountEntryExtensionV1Ext::V2(value) => {
5335 (2 as i32).to_xdr_buffered(write_stream);
5336 value.to_xdr_buffered(write_stream)
5337 }
5338 AccountEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
5339 }
5340 }
5341
5342 fn from_xdr_buffered<T: AsRef<[u8]>>(
5343 read_stream: &mut ReadStream<T>,
5344 ) -> Result<Self, DecodeError> {
5345 match i32::from_xdr_buffered(read_stream)? {
5346 0 => Ok(AccountEntryExtensionV1Ext::V0),
5347 2 => Ok(AccountEntryExtensionV1Ext::V2(
5348 AccountEntryExtensionV2::from_xdr_buffered(read_stream)?,
5349 )),
5350 code => Ok(AccountEntryExtensionV1Ext::Default(code)),
5351 }
5352 }
5353}
5354
5355#[allow(dead_code)]
5357#[derive(Debug, Clone, Eq, PartialEq)]
5358pub enum AccountEntryExt {
5359 V0,
5360 V1(AccountEntryExtensionV1),
5361 Default(i32),
5362}
5363
5364impl XdrCodec for AccountEntryExt {
5365 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5366 match self {
5367 AccountEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5368 AccountEntryExt::V1(value) => {
5369 (1 as i32).to_xdr_buffered(write_stream);
5370 value.to_xdr_buffered(write_stream)
5371 }
5372 AccountEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5373 }
5374 }
5375
5376 fn from_xdr_buffered<T: AsRef<[u8]>>(
5377 read_stream: &mut ReadStream<T>,
5378 ) -> Result<Self, DecodeError> {
5379 match i32::from_xdr_buffered(read_stream)? {
5380 0 => Ok(AccountEntryExt::V0),
5381 1 => Ok(AccountEntryExt::V1(
5382 AccountEntryExtensionV1::from_xdr_buffered(read_stream)?,
5383 )),
5384 code => Ok(AccountEntryExt::Default(code)),
5385 }
5386 }
5387}
5388
5389#[allow(dead_code)]
5391#[derive(Debug, Clone, Eq, PartialEq)]
5392pub enum TrustLineAsset {
5393 AssetTypeNative,
5394 AssetTypeCreditAlphanum4(AlphaNum4),
5395 AssetTypeCreditAlphanum12(AlphaNum12),
5396 AssetTypePoolShare(PoolId),
5397}
5398
5399impl XdrCodec for TrustLineAsset {
5400 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5401 match self {
5402 TrustLineAsset::AssetTypeNative => {
5403 AssetType::AssetTypeNative.to_xdr_buffered(write_stream)
5404 }
5405 TrustLineAsset::AssetTypeCreditAlphanum4(value) => {
5406 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
5407 value.to_xdr_buffered(write_stream)
5408 }
5409 TrustLineAsset::AssetTypeCreditAlphanum12(value) => {
5410 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
5411 value.to_xdr_buffered(write_stream)
5412 }
5413 TrustLineAsset::AssetTypePoolShare(value) => {
5414 AssetType::AssetTypePoolShare.to_xdr_buffered(write_stream);
5415 value.to_xdr_buffered(write_stream)
5416 }
5417 }
5418 }
5419
5420 fn from_xdr_buffered<T: AsRef<[u8]>>(
5421 read_stream: &mut ReadStream<T>,
5422 ) -> Result<Self, DecodeError> {
5423 match AssetType::from_xdr_buffered(read_stream)? {
5424 AssetType::AssetTypeNative => Ok(TrustLineAsset::AssetTypeNative),
5425 AssetType::AssetTypeCreditAlphanum4 => Ok(TrustLineAsset::AssetTypeCreditAlphanum4(
5426 AlphaNum4::from_xdr_buffered(read_stream)?,
5427 )),
5428 AssetType::AssetTypeCreditAlphanum12 => Ok(TrustLineAsset::AssetTypeCreditAlphanum12(
5429 AlphaNum12::from_xdr_buffered(read_stream)?,
5430 )),
5431 AssetType::AssetTypePoolShare => Ok(TrustLineAsset::AssetTypePoolShare(
5432 PoolId::from_xdr_buffered(read_stream)?,
5433 )),
5434 }
5435 }
5436}
5437
5438#[allow(dead_code)]
5440#[derive(Debug, Clone, Eq, PartialEq)]
5441pub enum TrustLineEntryV1Ext {
5442 V0,
5443 Default(i32),
5444}
5445
5446impl XdrCodec for TrustLineEntryV1Ext {
5447 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5448 match self {
5449 TrustLineEntryV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5450 TrustLineEntryV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
5451 }
5452 }
5453
5454 fn from_xdr_buffered<T: AsRef<[u8]>>(
5455 read_stream: &mut ReadStream<T>,
5456 ) -> Result<Self, DecodeError> {
5457 match i32::from_xdr_buffered(read_stream)? {
5458 0 => Ok(TrustLineEntryV1Ext::V0),
5459 code => Ok(TrustLineEntryV1Ext::Default(code)),
5460 }
5461 }
5462}
5463
5464#[allow(dead_code)]
5466#[derive(Debug, Clone, Eq, PartialEq)]
5467pub enum TrustLineEntryExt {
5468 V0,
5469 V1(TrustLineEntryV1),
5470 Default(i32),
5471}
5472
5473impl XdrCodec for TrustLineEntryExt {
5474 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5475 match self {
5476 TrustLineEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5477 TrustLineEntryExt::V1(value) => {
5478 (1 as i32).to_xdr_buffered(write_stream);
5479 value.to_xdr_buffered(write_stream)
5480 }
5481 TrustLineEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5482 }
5483 }
5484
5485 fn from_xdr_buffered<T: AsRef<[u8]>>(
5486 read_stream: &mut ReadStream<T>,
5487 ) -> Result<Self, DecodeError> {
5488 match i32::from_xdr_buffered(read_stream)? {
5489 0 => Ok(TrustLineEntryExt::V0),
5490 1 => Ok(TrustLineEntryExt::V1(TrustLineEntryV1::from_xdr_buffered(
5491 read_stream,
5492 )?)),
5493 code => Ok(TrustLineEntryExt::Default(code)),
5494 }
5495 }
5496}
5497
5498#[allow(dead_code)]
5500#[derive(Debug, Clone, Eq, PartialEq)]
5501pub enum OfferEntryExt {
5502 V0,
5503 Default(i32),
5504}
5505
5506impl XdrCodec for OfferEntryExt {
5507 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5508 match self {
5509 OfferEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5510 OfferEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5511 }
5512 }
5513
5514 fn from_xdr_buffered<T: AsRef<[u8]>>(
5515 read_stream: &mut ReadStream<T>,
5516 ) -> Result<Self, DecodeError> {
5517 match i32::from_xdr_buffered(read_stream)? {
5518 0 => Ok(OfferEntryExt::V0),
5519 code => Ok(OfferEntryExt::Default(code)),
5520 }
5521 }
5522}
5523
5524#[allow(dead_code)]
5526#[derive(Debug, Clone, Eq, PartialEq)]
5527pub enum DataEntryExt {
5528 V0,
5529 Default(i32),
5530}
5531
5532impl XdrCodec for DataEntryExt {
5533 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5534 match self {
5535 DataEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5536 DataEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5537 }
5538 }
5539
5540 fn from_xdr_buffered<T: AsRef<[u8]>>(
5541 read_stream: &mut ReadStream<T>,
5542 ) -> Result<Self, DecodeError> {
5543 match i32::from_xdr_buffered(read_stream)? {
5544 0 => Ok(DataEntryExt::V0),
5545 code => Ok(DataEntryExt::Default(code)),
5546 }
5547 }
5548}
5549
5550#[allow(dead_code)]
5552#[derive(Debug, Clone, Eq, PartialEq)]
5553pub enum ClaimPredicate {
5554 ClaimPredicateUnconditional,
5555 ClaimPredicateAnd(LimitedVarArray<ClaimPredicate, 2>),
5556 ClaimPredicateOr(LimitedVarArray<ClaimPredicate, 2>),
5557 ClaimPredicateNot(Option<Box<ClaimPredicate>>),
5558 ClaimPredicateBeforeAbsoluteTime(Int64),
5559 ClaimPredicateBeforeRelativeTime(Int64),
5560}
5561
5562impl XdrCodec for ClaimPredicate {
5563 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5564 match self {
5565 ClaimPredicate::ClaimPredicateUnconditional => {
5566 ClaimPredicateType::ClaimPredicateUnconditional.to_xdr_buffered(write_stream)
5567 }
5568 ClaimPredicate::ClaimPredicateAnd(value) => {
5569 ClaimPredicateType::ClaimPredicateAnd.to_xdr_buffered(write_stream);
5570 value.to_xdr_buffered(write_stream)
5571 }
5572 ClaimPredicate::ClaimPredicateOr(value) => {
5573 ClaimPredicateType::ClaimPredicateOr.to_xdr_buffered(write_stream);
5574 value.to_xdr_buffered(write_stream)
5575 }
5576 ClaimPredicate::ClaimPredicateNot(value) => {
5577 ClaimPredicateType::ClaimPredicateNot.to_xdr_buffered(write_stream);
5578 value.to_xdr_buffered(write_stream)
5579 }
5580 ClaimPredicate::ClaimPredicateBeforeAbsoluteTime(value) => {
5581 ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime.to_xdr_buffered(write_stream);
5582 value.to_xdr_buffered(write_stream)
5583 }
5584 ClaimPredicate::ClaimPredicateBeforeRelativeTime(value) => {
5585 ClaimPredicateType::ClaimPredicateBeforeRelativeTime.to_xdr_buffered(write_stream);
5586 value.to_xdr_buffered(write_stream)
5587 }
5588 }
5589 }
5590
5591 fn from_xdr_buffered<T: AsRef<[u8]>>(
5592 read_stream: &mut ReadStream<T>,
5593 ) -> Result<Self, DecodeError> {
5594 match ClaimPredicateType::from_xdr_buffered(read_stream)? {
5595 ClaimPredicateType::ClaimPredicateUnconditional => {
5596 Ok(ClaimPredicate::ClaimPredicateUnconditional)
5597 }
5598 ClaimPredicateType::ClaimPredicateAnd => {
5599 Ok(ClaimPredicate::ClaimPredicateAnd(LimitedVarArray::<
5600 ClaimPredicate,
5601 2,
5602 >::from_xdr_buffered(
5603 read_stream
5604 )?))
5605 }
5606 ClaimPredicateType::ClaimPredicateOr => {
5607 Ok(ClaimPredicate::ClaimPredicateOr(LimitedVarArray::<
5608 ClaimPredicate,
5609 2,
5610 >::from_xdr_buffered(
5611 read_stream
5612 )?))
5613 }
5614 ClaimPredicateType::ClaimPredicateNot => {
5615 Ok(ClaimPredicate::ClaimPredicateNot(Option::<
5616 Box<ClaimPredicate>,
5617 >::from_xdr_buffered(
5618 read_stream
5619 )?))
5620 }
5621 ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime => {
5622 Ok(ClaimPredicate::ClaimPredicateBeforeAbsoluteTime(
5623 Int64::from_xdr_buffered(read_stream)?,
5624 ))
5625 }
5626 ClaimPredicateType::ClaimPredicateBeforeRelativeTime => {
5627 Ok(ClaimPredicate::ClaimPredicateBeforeRelativeTime(
5628 Int64::from_xdr_buffered(read_stream)?,
5629 ))
5630 }
5631 }
5632 }
5633}
5634
5635#[allow(dead_code)]
5637#[derive(Debug, Clone, Eq, PartialEq)]
5638pub enum Claimant {
5639 ClaimantTypeV0(ClaimantV0),
5640}
5641
5642impl XdrCodec for Claimant {
5643 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5644 match self {
5645 Claimant::ClaimantTypeV0(value) => {
5646 ClaimantType::ClaimantTypeV0.to_xdr_buffered(write_stream);
5647 value.to_xdr_buffered(write_stream)
5648 }
5649 }
5650 }
5651
5652 fn from_xdr_buffered<T: AsRef<[u8]>>(
5653 read_stream: &mut ReadStream<T>,
5654 ) -> Result<Self, DecodeError> {
5655 match ClaimantType::from_xdr_buffered(read_stream)? {
5656 ClaimantType::ClaimantTypeV0 => Ok(Claimant::ClaimantTypeV0(
5657 ClaimantV0::from_xdr_buffered(read_stream)?,
5658 )),
5659 }
5660 }
5661}
5662
5663#[allow(dead_code)]
5665#[derive(Debug, Clone, Eq, PartialEq)]
5666pub enum ClaimableBalanceId {
5667 ClaimableBalanceIdTypeV0(Hash),
5668}
5669
5670impl XdrCodec for ClaimableBalanceId {
5671 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5672 match self {
5673 ClaimableBalanceId::ClaimableBalanceIdTypeV0(value) => {
5674 ClaimableBalanceIdType::ClaimableBalanceIdTypeV0.to_xdr_buffered(write_stream);
5675 value.to_xdr_buffered(write_stream)
5676 }
5677 }
5678 }
5679
5680 fn from_xdr_buffered<T: AsRef<[u8]>>(
5681 read_stream: &mut ReadStream<T>,
5682 ) -> Result<Self, DecodeError> {
5683 match ClaimableBalanceIdType::from_xdr_buffered(read_stream)? {
5684 ClaimableBalanceIdType::ClaimableBalanceIdTypeV0 => Ok(
5685 ClaimableBalanceId::ClaimableBalanceIdTypeV0(Hash::from_xdr_buffered(read_stream)?),
5686 ),
5687 }
5688 }
5689}
5690
5691#[allow(dead_code)]
5693#[derive(Debug, Clone, Eq, PartialEq)]
5694pub enum ClaimableBalanceEntryExtensionV1Ext {
5695 V0,
5696 Default(i32),
5697}
5698
5699impl XdrCodec for ClaimableBalanceEntryExtensionV1Ext {
5700 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5701 match self {
5702 ClaimableBalanceEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5703 ClaimableBalanceEntryExtensionV1Ext::Default(code) => {
5704 code.to_xdr_buffered(write_stream)
5705 }
5706 }
5707 }
5708
5709 fn from_xdr_buffered<T: AsRef<[u8]>>(
5710 read_stream: &mut ReadStream<T>,
5711 ) -> Result<Self, DecodeError> {
5712 match i32::from_xdr_buffered(read_stream)? {
5713 0 => Ok(ClaimableBalanceEntryExtensionV1Ext::V0),
5714 code => Ok(ClaimableBalanceEntryExtensionV1Ext::Default(code)),
5715 }
5716 }
5717}
5718
5719#[allow(dead_code)]
5721#[derive(Debug, Clone, Eq, PartialEq)]
5722pub enum ClaimableBalanceEntryExt {
5723 V0,
5724 V1(ClaimableBalanceEntryExtensionV1),
5725 Default(i32),
5726}
5727
5728impl XdrCodec for ClaimableBalanceEntryExt {
5729 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5730 match self {
5731 ClaimableBalanceEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5732 ClaimableBalanceEntryExt::V1(value) => {
5733 (1 as i32).to_xdr_buffered(write_stream);
5734 value.to_xdr_buffered(write_stream)
5735 }
5736 ClaimableBalanceEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5737 }
5738 }
5739
5740 fn from_xdr_buffered<T: AsRef<[u8]>>(
5741 read_stream: &mut ReadStream<T>,
5742 ) -> Result<Self, DecodeError> {
5743 match i32::from_xdr_buffered(read_stream)? {
5744 0 => Ok(ClaimableBalanceEntryExt::V0),
5745 1 => Ok(ClaimableBalanceEntryExt::V1(
5746 ClaimableBalanceEntryExtensionV1::from_xdr_buffered(read_stream)?,
5747 )),
5748 code => Ok(ClaimableBalanceEntryExt::Default(code)),
5749 }
5750 }
5751}
5752
5753#[allow(dead_code)]
5755#[derive(Debug, Clone, Eq, PartialEq)]
5756pub enum LiquidityPoolEntryBody {
5757 LiquidityPoolConstantProduct(LiquidityPoolEntryConstantProduct),
5758}
5759
5760impl XdrCodec for LiquidityPoolEntryBody {
5761 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5762 match self {
5763 LiquidityPoolEntryBody::LiquidityPoolConstantProduct(value) => {
5764 LiquidityPoolType::LiquidityPoolConstantProduct.to_xdr_buffered(write_stream);
5765 value.to_xdr_buffered(write_stream)
5766 }
5767 }
5768 }
5769
5770 fn from_xdr_buffered<T: AsRef<[u8]>>(
5771 read_stream: &mut ReadStream<T>,
5772 ) -> Result<Self, DecodeError> {
5773 match LiquidityPoolType::from_xdr_buffered(read_stream)? {
5774 LiquidityPoolType::LiquidityPoolConstantProduct => {
5775 Ok(LiquidityPoolEntryBody::LiquidityPoolConstantProduct(
5776 LiquidityPoolEntryConstantProduct::from_xdr_buffered(read_stream)?,
5777 ))
5778 }
5779 }
5780 }
5781}
5782
5783#[allow(dead_code)]
5785#[derive(Debug, Clone, Eq, PartialEq)]
5786pub enum LedgerEntryExtensionV1Ext {
5787 V0,
5788 Default(i32),
5789}
5790
5791impl XdrCodec for LedgerEntryExtensionV1Ext {
5792 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5793 match self {
5794 LedgerEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5795 LedgerEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
5796 }
5797 }
5798
5799 fn from_xdr_buffered<T: AsRef<[u8]>>(
5800 read_stream: &mut ReadStream<T>,
5801 ) -> Result<Self, DecodeError> {
5802 match i32::from_xdr_buffered(read_stream)? {
5803 0 => Ok(LedgerEntryExtensionV1Ext::V0),
5804 code => Ok(LedgerEntryExtensionV1Ext::Default(code)),
5805 }
5806 }
5807}
5808
5809#[allow(dead_code)]
5811#[derive(Debug, Clone, Eq, PartialEq)]
5812pub enum LedgerEntryData {
5813 Account(AccountEntry),
5814 Trustline(TrustLineEntry),
5815 Offer(OfferEntry),
5816 Data(DataEntry),
5817 ClaimableBalance(ClaimableBalanceEntry),
5818 LiquidityPool(LiquidityPoolEntry),
5819}
5820
5821impl XdrCodec for LedgerEntryData {
5822 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5823 match self {
5824 LedgerEntryData::Account(value) => {
5825 LedgerEntryType::Account.to_xdr_buffered(write_stream);
5826 value.to_xdr_buffered(write_stream)
5827 }
5828 LedgerEntryData::Trustline(value) => {
5829 LedgerEntryType::Trustline.to_xdr_buffered(write_stream);
5830 value.to_xdr_buffered(write_stream)
5831 }
5832 LedgerEntryData::Offer(value) => {
5833 LedgerEntryType::Offer.to_xdr_buffered(write_stream);
5834 value.to_xdr_buffered(write_stream)
5835 }
5836 LedgerEntryData::Data(value) => {
5837 LedgerEntryType::Data.to_xdr_buffered(write_stream);
5838 value.to_xdr_buffered(write_stream)
5839 }
5840 LedgerEntryData::ClaimableBalance(value) => {
5841 LedgerEntryType::ClaimableBalance.to_xdr_buffered(write_stream);
5842 value.to_xdr_buffered(write_stream)
5843 }
5844 LedgerEntryData::LiquidityPool(value) => {
5845 LedgerEntryType::LiquidityPool.to_xdr_buffered(write_stream);
5846 value.to_xdr_buffered(write_stream)
5847 }
5848 }
5849 }
5850
5851 fn from_xdr_buffered<T: AsRef<[u8]>>(
5852 read_stream: &mut ReadStream<T>,
5853 ) -> Result<Self, DecodeError> {
5854 match LedgerEntryType::from_xdr_buffered(read_stream)? {
5855 LedgerEntryType::Account => Ok(LedgerEntryData::Account(
5856 AccountEntry::from_xdr_buffered(read_stream)?,
5857 )),
5858 LedgerEntryType::Trustline => Ok(LedgerEntryData::Trustline(
5859 TrustLineEntry::from_xdr_buffered(read_stream)?,
5860 )),
5861 LedgerEntryType::Offer => Ok(LedgerEntryData::Offer(OfferEntry::from_xdr_buffered(
5862 read_stream,
5863 )?)),
5864 LedgerEntryType::Data => Ok(LedgerEntryData::Data(DataEntry::from_xdr_buffered(
5865 read_stream,
5866 )?)),
5867 LedgerEntryType::ClaimableBalance => Ok(LedgerEntryData::ClaimableBalance(
5868 ClaimableBalanceEntry::from_xdr_buffered(read_stream)?,
5869 )),
5870 LedgerEntryType::LiquidityPool => Ok(LedgerEntryData::LiquidityPool(
5871 LiquidityPoolEntry::from_xdr_buffered(read_stream)?,
5872 )),
5873 }
5874 }
5875}
5876
5877#[allow(dead_code)]
5879#[derive(Debug, Clone, Eq, PartialEq)]
5880pub enum LedgerEntryExt {
5881 V0,
5882 V1(LedgerEntryExtensionV1),
5883 Default(i32),
5884}
5885
5886impl XdrCodec for LedgerEntryExt {
5887 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5888 match self {
5889 LedgerEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5890 LedgerEntryExt::V1(value) => {
5891 (1 as i32).to_xdr_buffered(write_stream);
5892 value.to_xdr_buffered(write_stream)
5893 }
5894 LedgerEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5895 }
5896 }
5897
5898 fn from_xdr_buffered<T: AsRef<[u8]>>(
5899 read_stream: &mut ReadStream<T>,
5900 ) -> Result<Self, DecodeError> {
5901 match i32::from_xdr_buffered(read_stream)? {
5902 0 => Ok(LedgerEntryExt::V0),
5903 1 => Ok(LedgerEntryExt::V1(
5904 LedgerEntryExtensionV1::from_xdr_buffered(read_stream)?,
5905 )),
5906 code => Ok(LedgerEntryExt::Default(code)),
5907 }
5908 }
5909}
5910
5911#[allow(dead_code)]
5913#[derive(Debug, Clone, Eq, PartialEq)]
5914pub enum LedgerKey {
5915 Account(LedgerKeyAccount),
5916 Trustline(LedgerKeyTrustLine),
5917 Offer(LedgerKeyOffer),
5918 Data(LedgerKeyData),
5919 ClaimableBalance(LedgerKeyClaimableBalance),
5920 LiquidityPool(LedgerKeyLiquidityPool),
5921}
5922
5923impl XdrCodec for LedgerKey {
5924 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5925 match self {
5926 LedgerKey::Account(value) => {
5927 LedgerEntryType::Account.to_xdr_buffered(write_stream);
5928 value.to_xdr_buffered(write_stream)
5929 }
5930 LedgerKey::Trustline(value) => {
5931 LedgerEntryType::Trustline.to_xdr_buffered(write_stream);
5932 value.to_xdr_buffered(write_stream)
5933 }
5934 LedgerKey::Offer(value) => {
5935 LedgerEntryType::Offer.to_xdr_buffered(write_stream);
5936 value.to_xdr_buffered(write_stream)
5937 }
5938 LedgerKey::Data(value) => {
5939 LedgerEntryType::Data.to_xdr_buffered(write_stream);
5940 value.to_xdr_buffered(write_stream)
5941 }
5942 LedgerKey::ClaimableBalance(value) => {
5943 LedgerEntryType::ClaimableBalance.to_xdr_buffered(write_stream);
5944 value.to_xdr_buffered(write_stream)
5945 }
5946 LedgerKey::LiquidityPool(value) => {
5947 LedgerEntryType::LiquidityPool.to_xdr_buffered(write_stream);
5948 value.to_xdr_buffered(write_stream)
5949 }
5950 }
5951 }
5952
5953 fn from_xdr_buffered<T: AsRef<[u8]>>(
5954 read_stream: &mut ReadStream<T>,
5955 ) -> Result<Self, DecodeError> {
5956 match LedgerEntryType::from_xdr_buffered(read_stream)? {
5957 LedgerEntryType::Account => Ok(LedgerKey::Account(
5958 LedgerKeyAccount::from_xdr_buffered(read_stream)?,
5959 )),
5960 LedgerEntryType::Trustline => Ok(LedgerKey::Trustline(
5961 LedgerKeyTrustLine::from_xdr_buffered(read_stream)?,
5962 )),
5963 LedgerEntryType::Offer => Ok(LedgerKey::Offer(LedgerKeyOffer::from_xdr_buffered(
5964 read_stream,
5965 )?)),
5966 LedgerEntryType::Data => Ok(LedgerKey::Data(LedgerKeyData::from_xdr_buffered(
5967 read_stream,
5968 )?)),
5969 LedgerEntryType::ClaimableBalance => Ok(LedgerKey::ClaimableBalance(
5970 LedgerKeyClaimableBalance::from_xdr_buffered(read_stream)?,
5971 )),
5972 LedgerEntryType::LiquidityPool => Ok(LedgerKey::LiquidityPool(
5973 LedgerKeyLiquidityPool::from_xdr_buffered(read_stream)?,
5974 )),
5975 }
5976 }
5977}
5978
5979#[allow(dead_code)]
5981#[cfg(feature = "all-types")]
5982#[derive(Debug, Clone, Eq, PartialEq)]
5983pub enum StellarValueExt {
5984 StellarValueBasic,
5985 StellarValueSigned(LedgerCloseValueSignature),
5986}
5987
5988#[cfg(feature = "all-types")]
5989impl XdrCodec for StellarValueExt {
5990 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5991 match self {
5992 StellarValueExt::StellarValueBasic => {
5993 StellarValueType::StellarValueBasic.to_xdr_buffered(write_stream)
5994 }
5995 StellarValueExt::StellarValueSigned(value) => {
5996 StellarValueType::StellarValueSigned.to_xdr_buffered(write_stream);
5997 value.to_xdr_buffered(write_stream)
5998 }
5999 }
6000 }
6001
6002 fn from_xdr_buffered<T: AsRef<[u8]>>(
6003 read_stream: &mut ReadStream<T>,
6004 ) -> Result<Self, DecodeError> {
6005 match StellarValueType::from_xdr_buffered(read_stream)? {
6006 StellarValueType::StellarValueBasic => Ok(StellarValueExt::StellarValueBasic),
6007 StellarValueType::StellarValueSigned => Ok(StellarValueExt::StellarValueSigned(
6008 LedgerCloseValueSignature::from_xdr_buffered(read_stream)?,
6009 )),
6010 }
6011 }
6012}
6013
6014#[allow(dead_code)]
6016#[cfg(feature = "all-types")]
6017#[derive(Debug, Clone, Eq, PartialEq)]
6018pub enum LedgerHeaderExt {
6019 V0,
6020 Default(i32),
6021}
6022
6023#[cfg(feature = "all-types")]
6024impl XdrCodec for LedgerHeaderExt {
6025 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6026 match self {
6027 LedgerHeaderExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6028 LedgerHeaderExt::Default(code) => code.to_xdr_buffered(write_stream),
6029 }
6030 }
6031
6032 fn from_xdr_buffered<T: AsRef<[u8]>>(
6033 read_stream: &mut ReadStream<T>,
6034 ) -> Result<Self, DecodeError> {
6035 match i32::from_xdr_buffered(read_stream)? {
6036 0 => Ok(LedgerHeaderExt::V0),
6037 code => Ok(LedgerHeaderExt::Default(code)),
6038 }
6039 }
6040}
6041
6042#[allow(dead_code)]
6044#[cfg(feature = "all-types")]
6045#[derive(Debug, Clone, Eq, PartialEq)]
6046pub enum LedgerUpgrade {
6047 LedgerUpgradeVersion(Uint32),
6048 LedgerUpgradeBaseFee(Uint32),
6049 LedgerUpgradeMaxTxSetSize(Uint32),
6050 LedgerUpgradeBaseReserve(Uint32),
6051}
6052
6053#[cfg(feature = "all-types")]
6054impl XdrCodec for LedgerUpgrade {
6055 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6056 match self {
6057 LedgerUpgrade::LedgerUpgradeVersion(value) => {
6058 LedgerUpgradeType::LedgerUpgradeVersion.to_xdr_buffered(write_stream);
6059 value.to_xdr_buffered(write_stream)
6060 }
6061 LedgerUpgrade::LedgerUpgradeBaseFee(value) => {
6062 LedgerUpgradeType::LedgerUpgradeBaseFee.to_xdr_buffered(write_stream);
6063 value.to_xdr_buffered(write_stream)
6064 }
6065 LedgerUpgrade::LedgerUpgradeMaxTxSetSize(value) => {
6066 LedgerUpgradeType::LedgerUpgradeMaxTxSetSize.to_xdr_buffered(write_stream);
6067 value.to_xdr_buffered(write_stream)
6068 }
6069 LedgerUpgrade::LedgerUpgradeBaseReserve(value) => {
6070 LedgerUpgradeType::LedgerUpgradeBaseReserve.to_xdr_buffered(write_stream);
6071 value.to_xdr_buffered(write_stream)
6072 }
6073 }
6074 }
6075
6076 fn from_xdr_buffered<T: AsRef<[u8]>>(
6077 read_stream: &mut ReadStream<T>,
6078 ) -> Result<Self, DecodeError> {
6079 match LedgerUpgradeType::from_xdr_buffered(read_stream)? {
6080 LedgerUpgradeType::LedgerUpgradeVersion => Ok(LedgerUpgrade::LedgerUpgradeVersion(
6081 Uint32::from_xdr_buffered(read_stream)?,
6082 )),
6083 LedgerUpgradeType::LedgerUpgradeBaseFee => Ok(LedgerUpgrade::LedgerUpgradeBaseFee(
6084 Uint32::from_xdr_buffered(read_stream)?,
6085 )),
6086 LedgerUpgradeType::LedgerUpgradeMaxTxSetSize => Ok(
6087 LedgerUpgrade::LedgerUpgradeMaxTxSetSize(Uint32::from_xdr_buffered(read_stream)?),
6088 ),
6089 LedgerUpgradeType::LedgerUpgradeBaseReserve => Ok(
6090 LedgerUpgrade::LedgerUpgradeBaseReserve(Uint32::from_xdr_buffered(read_stream)?),
6091 ),
6092 }
6093 }
6094}
6095
6096#[allow(dead_code)]
6098#[cfg(feature = "all-types")]
6099#[derive(Debug, Clone, Eq, PartialEq)]
6100pub enum BucketMetadataExt {
6101 V0,
6102 Default(i32),
6103}
6104
6105#[cfg(feature = "all-types")]
6106impl XdrCodec for BucketMetadataExt {
6107 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6108 match self {
6109 BucketMetadataExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6110 BucketMetadataExt::Default(code) => code.to_xdr_buffered(write_stream),
6111 }
6112 }
6113
6114 fn from_xdr_buffered<T: AsRef<[u8]>>(
6115 read_stream: &mut ReadStream<T>,
6116 ) -> Result<Self, DecodeError> {
6117 match i32::from_xdr_buffered(read_stream)? {
6118 0 => Ok(BucketMetadataExt::V0),
6119 code => Ok(BucketMetadataExt::Default(code)),
6120 }
6121 }
6122}
6123
6124#[allow(dead_code)]
6126#[cfg(feature = "all-types")]
6127#[derive(Debug, Clone, Eq, PartialEq)]
6128pub enum BucketEntry {
6129 Liveentry(LedgerEntry),
6130 Initentry(LedgerEntry),
6131 Deadentry(LedgerKey),
6132 Metaentry(BucketMetadata),
6133}
6134
6135#[cfg(feature = "all-types")]
6136impl XdrCodec for BucketEntry {
6137 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6138 match self {
6139 BucketEntry::Liveentry(value) => {
6140 BucketEntryType::Liveentry.to_xdr_buffered(write_stream);
6141 value.to_xdr_buffered(write_stream)
6142 }
6143 BucketEntry::Initentry(value) => {
6144 BucketEntryType::Initentry.to_xdr_buffered(write_stream);
6145 value.to_xdr_buffered(write_stream)
6146 }
6147 BucketEntry::Deadentry(value) => {
6148 BucketEntryType::Deadentry.to_xdr_buffered(write_stream);
6149 value.to_xdr_buffered(write_stream)
6150 }
6151 BucketEntry::Metaentry(value) => {
6152 BucketEntryType::Metaentry.to_xdr_buffered(write_stream);
6153 value.to_xdr_buffered(write_stream)
6154 }
6155 }
6156 }
6157
6158 fn from_xdr_buffered<T: AsRef<[u8]>>(
6159 read_stream: &mut ReadStream<T>,
6160 ) -> Result<Self, DecodeError> {
6161 match BucketEntryType::from_xdr_buffered(read_stream)? {
6162 BucketEntryType::Liveentry => Ok(BucketEntry::Liveentry(
6163 LedgerEntry::from_xdr_buffered(read_stream)?,
6164 )),
6165 BucketEntryType::Initentry => Ok(BucketEntry::Initentry(
6166 LedgerEntry::from_xdr_buffered(read_stream)?,
6167 )),
6168 BucketEntryType::Deadentry => Ok(BucketEntry::Deadentry(LedgerKey::from_xdr_buffered(
6169 read_stream,
6170 )?)),
6171 BucketEntryType::Metaentry => Ok(BucketEntry::Metaentry(
6172 BucketMetadata::from_xdr_buffered(read_stream)?,
6173 )),
6174 }
6175 }
6176}
6177
6178#[allow(dead_code)]
6180#[cfg(feature = "all-types")]
6181#[derive(Debug, Clone, Eq, PartialEq)]
6182pub enum TransactionHistoryEntryExt {
6183 V0,
6184 Default(i32),
6185}
6186
6187#[cfg(feature = "all-types")]
6188impl XdrCodec for TransactionHistoryEntryExt {
6189 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6190 match self {
6191 TransactionHistoryEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6192 TransactionHistoryEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
6193 }
6194 }
6195
6196 fn from_xdr_buffered<T: AsRef<[u8]>>(
6197 read_stream: &mut ReadStream<T>,
6198 ) -> Result<Self, DecodeError> {
6199 match i32::from_xdr_buffered(read_stream)? {
6200 0 => Ok(TransactionHistoryEntryExt::V0),
6201 code => Ok(TransactionHistoryEntryExt::Default(code)),
6202 }
6203 }
6204}
6205
6206#[allow(dead_code)]
6208#[cfg(feature = "all-types")]
6209#[derive(Debug, Clone, Eq, PartialEq)]
6210pub enum TransactionHistoryResultEntryExt {
6211 V0,
6212 Default(i32),
6213}
6214
6215#[cfg(feature = "all-types")]
6216impl XdrCodec for TransactionHistoryResultEntryExt {
6217 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6218 match self {
6219 TransactionHistoryResultEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6220 TransactionHistoryResultEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
6221 }
6222 }
6223
6224 fn from_xdr_buffered<T: AsRef<[u8]>>(
6225 read_stream: &mut ReadStream<T>,
6226 ) -> Result<Self, DecodeError> {
6227 match i32::from_xdr_buffered(read_stream)? {
6228 0 => Ok(TransactionHistoryResultEntryExt::V0),
6229 code => Ok(TransactionHistoryResultEntryExt::Default(code)),
6230 }
6231 }
6232}
6233
6234#[allow(dead_code)]
6236#[cfg(feature = "all-types")]
6237#[derive(Debug, Clone, Eq, PartialEq)]
6238pub enum LedgerHeaderHistoryEntryExt {
6239 V0,
6240 Default(i32),
6241}
6242
6243#[cfg(feature = "all-types")]
6244impl XdrCodec for LedgerHeaderHistoryEntryExt {
6245 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6246 match self {
6247 LedgerHeaderHistoryEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6248 LedgerHeaderHistoryEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
6249 }
6250 }
6251
6252 fn from_xdr_buffered<T: AsRef<[u8]>>(
6253 read_stream: &mut ReadStream<T>,
6254 ) -> Result<Self, DecodeError> {
6255 match i32::from_xdr_buffered(read_stream)? {
6256 0 => Ok(LedgerHeaderHistoryEntryExt::V0),
6257 code => Ok(LedgerHeaderHistoryEntryExt::Default(code)),
6258 }
6259 }
6260}
6261
6262#[allow(dead_code)]
6264#[cfg(feature = "all-types")]
6265#[derive(Debug, Clone, Eq, PartialEq)]
6266pub enum ScpHistoryEntry {
6267 V0(ScpHistoryEntryV0),
6268 Default(i32),
6269}
6270
6271#[cfg(feature = "all-types")]
6272impl XdrCodec for ScpHistoryEntry {
6273 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6274 match self {
6275 ScpHistoryEntry::V0(value) => {
6276 (0 as i32).to_xdr_buffered(write_stream);
6277 value.to_xdr_buffered(write_stream)
6278 }
6279 ScpHistoryEntry::Default(code) => code.to_xdr_buffered(write_stream),
6280 }
6281 }
6282
6283 fn from_xdr_buffered<T: AsRef<[u8]>>(
6284 read_stream: &mut ReadStream<T>,
6285 ) -> Result<Self, DecodeError> {
6286 match i32::from_xdr_buffered(read_stream)? {
6287 0 => Ok(ScpHistoryEntry::V0(ScpHistoryEntryV0::from_xdr_buffered(
6288 read_stream,
6289 )?)),
6290 code => Ok(ScpHistoryEntry::Default(code)),
6291 }
6292 }
6293}
6294
6295#[allow(dead_code)]
6297#[derive(Debug, Clone, Eq, PartialEq)]
6298pub enum LedgerEntryChange {
6299 LedgerEntryCreated(LedgerEntry),
6300 LedgerEntryUpdated(LedgerEntry),
6301 LedgerEntryRemoved(LedgerKey),
6302 LedgerEntryState(LedgerEntry),
6303}
6304
6305impl XdrCodec for LedgerEntryChange {
6306 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6307 match self {
6308 LedgerEntryChange::LedgerEntryCreated(value) => {
6309 LedgerEntryChangeType::LedgerEntryCreated.to_xdr_buffered(write_stream);
6310 value.to_xdr_buffered(write_stream)
6311 }
6312 LedgerEntryChange::LedgerEntryUpdated(value) => {
6313 LedgerEntryChangeType::LedgerEntryUpdated.to_xdr_buffered(write_stream);
6314 value.to_xdr_buffered(write_stream)
6315 }
6316 LedgerEntryChange::LedgerEntryRemoved(value) => {
6317 LedgerEntryChangeType::LedgerEntryRemoved.to_xdr_buffered(write_stream);
6318 value.to_xdr_buffered(write_stream)
6319 }
6320 LedgerEntryChange::LedgerEntryState(value) => {
6321 LedgerEntryChangeType::LedgerEntryState.to_xdr_buffered(write_stream);
6322 value.to_xdr_buffered(write_stream)
6323 }
6324 }
6325 }
6326
6327 fn from_xdr_buffered<T: AsRef<[u8]>>(
6328 read_stream: &mut ReadStream<T>,
6329 ) -> Result<Self, DecodeError> {
6330 match LedgerEntryChangeType::from_xdr_buffered(read_stream)? {
6331 LedgerEntryChangeType::LedgerEntryCreated => Ok(LedgerEntryChange::LedgerEntryCreated(
6332 LedgerEntry::from_xdr_buffered(read_stream)?,
6333 )),
6334 LedgerEntryChangeType::LedgerEntryUpdated => Ok(LedgerEntryChange::LedgerEntryUpdated(
6335 LedgerEntry::from_xdr_buffered(read_stream)?,
6336 )),
6337 LedgerEntryChangeType::LedgerEntryRemoved => Ok(LedgerEntryChange::LedgerEntryRemoved(
6338 LedgerKey::from_xdr_buffered(read_stream)?,
6339 )),
6340 LedgerEntryChangeType::LedgerEntryState => Ok(LedgerEntryChange::LedgerEntryState(
6341 LedgerEntry::from_xdr_buffered(read_stream)?,
6342 )),
6343 }
6344 }
6345}
6346
6347#[allow(dead_code)]
6349#[derive(Debug, Clone, Eq, PartialEq)]
6350pub enum TransactionMeta {
6351 V0(UnlimitedVarArray<OperationMeta>),
6352 V1(TransactionMetaV1),
6353 V2(TransactionMetaV2),
6354 Default(i32),
6355}
6356
6357impl XdrCodec for TransactionMeta {
6358 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6359 match self {
6360 TransactionMeta::V0(value) => {
6361 (0 as i32).to_xdr_buffered(write_stream);
6362 value.to_xdr_buffered(write_stream)
6363 }
6364 TransactionMeta::V1(value) => {
6365 (1 as i32).to_xdr_buffered(write_stream);
6366 value.to_xdr_buffered(write_stream)
6367 }
6368 TransactionMeta::V2(value) => {
6369 (2 as i32).to_xdr_buffered(write_stream);
6370 value.to_xdr_buffered(write_stream)
6371 }
6372 TransactionMeta::Default(code) => code.to_xdr_buffered(write_stream),
6373 }
6374 }
6375
6376 fn from_xdr_buffered<T: AsRef<[u8]>>(
6377 read_stream: &mut ReadStream<T>,
6378 ) -> Result<Self, DecodeError> {
6379 match i32::from_xdr_buffered(read_stream)? {
6380 0 => Ok(TransactionMeta::V0(
6381 UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
6382 )),
6383 1 => Ok(TransactionMeta::V1(TransactionMetaV1::from_xdr_buffered(
6384 read_stream,
6385 )?)),
6386 2 => Ok(TransactionMeta::V2(TransactionMetaV2::from_xdr_buffered(
6387 read_stream,
6388 )?)),
6389 code => Ok(TransactionMeta::Default(code)),
6390 }
6391 }
6392}
6393
6394#[allow(dead_code)]
6396#[cfg(feature = "all-types")]
6397#[derive(Debug, Clone, Eq, PartialEq)]
6398pub enum LedgerCloseMeta {
6399 V0(LedgerCloseMetaV0),
6400 Default(i32),
6401}
6402
6403#[cfg(feature = "all-types")]
6404impl XdrCodec for LedgerCloseMeta {
6405 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6406 match self {
6407 LedgerCloseMeta::V0(value) => {
6408 (0 as i32).to_xdr_buffered(write_stream);
6409 value.to_xdr_buffered(write_stream)
6410 }
6411 LedgerCloseMeta::Default(code) => code.to_xdr_buffered(write_stream),
6412 }
6413 }
6414
6415 fn from_xdr_buffered<T: AsRef<[u8]>>(
6416 read_stream: &mut ReadStream<T>,
6417 ) -> Result<Self, DecodeError> {
6418 match i32::from_xdr_buffered(read_stream)? {
6419 0 => Ok(LedgerCloseMeta::V0(LedgerCloseMetaV0::from_xdr_buffered(
6420 read_stream,
6421 )?)),
6422 code => Ok(LedgerCloseMeta::Default(code)),
6423 }
6424 }
6425}
6426
6427#[allow(dead_code)]
6429#[cfg(feature = "all-types")]
6430#[derive(Debug, Clone, Eq, PartialEq)]
6431pub enum PeerAddressIp {
6432 IPv4([u8; 4]),
6433 IPv6([u8; 16]),
6434}
6435
6436#[cfg(feature = "all-types")]
6437impl XdrCodec for PeerAddressIp {
6438 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6439 match self {
6440 PeerAddressIp::IPv4(value) => {
6441 IpAddrType::IPv4.to_xdr_buffered(write_stream);
6442 value.to_xdr_buffered(write_stream)
6443 }
6444 PeerAddressIp::IPv6(value) => {
6445 IpAddrType::IPv6.to_xdr_buffered(write_stream);
6446 value.to_xdr_buffered(write_stream)
6447 }
6448 }
6449 }
6450
6451 fn from_xdr_buffered<T: AsRef<[u8]>>(
6452 read_stream: &mut ReadStream<T>,
6453 ) -> Result<Self, DecodeError> {
6454 match IpAddrType::from_xdr_buffered(read_stream)? {
6455 IpAddrType::IPv4 => Ok(PeerAddressIp::IPv4(<[u8; 4]>::from_xdr_buffered(
6456 read_stream,
6457 )?)),
6458 IpAddrType::IPv6 => Ok(PeerAddressIp::IPv6(<[u8; 16]>::from_xdr_buffered(
6459 read_stream,
6460 )?)),
6461 }
6462 }
6463}
6464
6465#[allow(dead_code)]
6467#[cfg(feature = "all-types")]
6468#[derive(Debug, Clone, Eq, PartialEq)]
6469pub enum SurveyResponseBody {
6470 SurveyTopology(TopologyResponseBody),
6471}
6472
6473#[cfg(feature = "all-types")]
6474impl XdrCodec for SurveyResponseBody {
6475 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6476 match self {
6477 SurveyResponseBody::SurveyTopology(value) => {
6478 SurveyMessageCommandType::SurveyTopology.to_xdr_buffered(write_stream);
6479 value.to_xdr_buffered(write_stream)
6480 }
6481 }
6482 }
6483
6484 fn from_xdr_buffered<T: AsRef<[u8]>>(
6485 read_stream: &mut ReadStream<T>,
6486 ) -> Result<Self, DecodeError> {
6487 match SurveyMessageCommandType::from_xdr_buffered(read_stream)? {
6488 SurveyMessageCommandType::SurveyTopology => Ok(SurveyResponseBody::SurveyTopology(
6489 TopologyResponseBody::from_xdr_buffered(read_stream)?,
6490 )),
6491 }
6492 }
6493}
6494
6495#[allow(dead_code)]
6497#[cfg(feature = "all-types")]
6498#[derive(Debug, Clone, Eq, PartialEq)]
6499pub enum StellarMessage {
6500 ErrorMsg(Error),
6501 Hello(Hello),
6502 Auth(Auth),
6503 DontHave(DontHave),
6504 GetPeers,
6505 Peers(LimitedVarArray<PeerAddress, 100>),
6506 GetTxSet(Uint256),
6507 TxSet(TransactionSet),
6508 Transaction(TransactionEnvelope),
6509 SurveyRequest(SignedSurveyRequestMessage),
6510 SurveyResponse(SignedSurveyResponseMessage),
6511 GetScpQuorumset(Uint256),
6512 ScpQuorumset(ScpQuorumSet),
6513 ScpMessage(ScpEnvelope),
6514 GetScpState(Uint32),
6515}
6516
6517#[cfg(feature = "all-types")]
6518impl XdrCodec for StellarMessage {
6519 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6520 match self {
6521 StellarMessage::ErrorMsg(value) => {
6522 MessageType::ErrorMsg.to_xdr_buffered(write_stream);
6523 value.to_xdr_buffered(write_stream)
6524 }
6525 StellarMessage::Hello(value) => {
6526 MessageType::Hello.to_xdr_buffered(write_stream);
6527 value.to_xdr_buffered(write_stream)
6528 }
6529 StellarMessage::Auth(value) => {
6530 MessageType::Auth.to_xdr_buffered(write_stream);
6531 value.to_xdr_buffered(write_stream)
6532 }
6533 StellarMessage::DontHave(value) => {
6534 MessageType::DontHave.to_xdr_buffered(write_stream);
6535 value.to_xdr_buffered(write_stream)
6536 }
6537 StellarMessage::GetPeers => MessageType::GetPeers.to_xdr_buffered(write_stream),
6538 StellarMessage::Peers(value) => {
6539 MessageType::Peers.to_xdr_buffered(write_stream);
6540 value.to_xdr_buffered(write_stream)
6541 }
6542 StellarMessage::GetTxSet(value) => {
6543 MessageType::GetTxSet.to_xdr_buffered(write_stream);
6544 value.to_xdr_buffered(write_stream)
6545 }
6546 StellarMessage::TxSet(value) => {
6547 MessageType::TxSet.to_xdr_buffered(write_stream);
6548 value.to_xdr_buffered(write_stream)
6549 }
6550 StellarMessage::Transaction(value) => {
6551 MessageType::Transaction.to_xdr_buffered(write_stream);
6552 value.to_xdr_buffered(write_stream)
6553 }
6554 StellarMessage::SurveyRequest(value) => {
6555 MessageType::SurveyRequest.to_xdr_buffered(write_stream);
6556 value.to_xdr_buffered(write_stream)
6557 }
6558 StellarMessage::SurveyResponse(value) => {
6559 MessageType::SurveyResponse.to_xdr_buffered(write_stream);
6560 value.to_xdr_buffered(write_stream)
6561 }
6562 StellarMessage::GetScpQuorumset(value) => {
6563 MessageType::GetScpQuorumset.to_xdr_buffered(write_stream);
6564 value.to_xdr_buffered(write_stream)
6565 }
6566 StellarMessage::ScpQuorumset(value) => {
6567 MessageType::ScpQuorumset.to_xdr_buffered(write_stream);
6568 value.to_xdr_buffered(write_stream)
6569 }
6570 StellarMessage::ScpMessage(value) => {
6571 MessageType::ScpMessage.to_xdr_buffered(write_stream);
6572 value.to_xdr_buffered(write_stream)
6573 }
6574 StellarMessage::GetScpState(value) => {
6575 MessageType::GetScpState.to_xdr_buffered(write_stream);
6576 value.to_xdr_buffered(write_stream)
6577 }
6578 }
6579 }
6580
6581 fn from_xdr_buffered<T: AsRef<[u8]>>(
6582 read_stream: &mut ReadStream<T>,
6583 ) -> Result<Self, DecodeError> {
6584 match MessageType::from_xdr_buffered(read_stream)? {
6585 MessageType::ErrorMsg => Ok(StellarMessage::ErrorMsg(Error::from_xdr_buffered(
6586 read_stream,
6587 )?)),
6588 MessageType::Hello => Ok(StellarMessage::Hello(Hello::from_xdr_buffered(
6589 read_stream,
6590 )?)),
6591 MessageType::Auth => Ok(StellarMessage::Auth(Auth::from_xdr_buffered(read_stream)?)),
6592 MessageType::DontHave => Ok(StellarMessage::DontHave(DontHave::from_xdr_buffered(
6593 read_stream,
6594 )?)),
6595 MessageType::GetPeers => Ok(StellarMessage::GetPeers),
6596 MessageType::Peers => Ok(StellarMessage::Peers(
6597 LimitedVarArray::<PeerAddress, 100>::from_xdr_buffered(read_stream)?,
6598 )),
6599 MessageType::GetTxSet => Ok(StellarMessage::GetTxSet(Uint256::from_xdr_buffered(
6600 read_stream,
6601 )?)),
6602 MessageType::TxSet => Ok(StellarMessage::TxSet(TransactionSet::from_xdr_buffered(
6603 read_stream,
6604 )?)),
6605 MessageType::Transaction => Ok(StellarMessage::Transaction(
6606 TransactionEnvelope::from_xdr_buffered(read_stream)?,
6607 )),
6608 MessageType::SurveyRequest => Ok(StellarMessage::SurveyRequest(
6609 SignedSurveyRequestMessage::from_xdr_buffered(read_stream)?,
6610 )),
6611 MessageType::SurveyResponse => Ok(StellarMessage::SurveyResponse(
6612 SignedSurveyResponseMessage::from_xdr_buffered(read_stream)?,
6613 )),
6614 MessageType::GetScpQuorumset => Ok(StellarMessage::GetScpQuorumset(
6615 Uint256::from_xdr_buffered(read_stream)?,
6616 )),
6617 MessageType::ScpQuorumset => Ok(StellarMessage::ScpQuorumset(
6618 ScpQuorumSet::from_xdr_buffered(read_stream)?,
6619 )),
6620 MessageType::ScpMessage => Ok(StellarMessage::ScpMessage(
6621 ScpEnvelope::from_xdr_buffered(read_stream)?,
6622 )),
6623 MessageType::GetScpState => Ok(StellarMessage::GetScpState(Uint32::from_xdr_buffered(
6624 read_stream,
6625 )?)),
6626 }
6627 }
6628}
6629
6630#[allow(dead_code)]
6632#[cfg(feature = "all-types")]
6633#[derive(Debug, Clone, Eq, PartialEq)]
6634pub enum AuthenticatedMessage {
6635 V0(AuthenticatedMessageV0),
6636 Default(Uint32),
6637}
6638
6639#[cfg(feature = "all-types")]
6640impl XdrCodec for AuthenticatedMessage {
6641 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6642 match self {
6643 AuthenticatedMessage::V0(value) => {
6644 (0 as Uint32).to_xdr_buffered(write_stream);
6645 value.to_xdr_buffered(write_stream)
6646 }
6647 AuthenticatedMessage::Default(code) => code.to_xdr_buffered(write_stream),
6648 }
6649 }
6650
6651 fn from_xdr_buffered<T: AsRef<[u8]>>(
6652 read_stream: &mut ReadStream<T>,
6653 ) -> Result<Self, DecodeError> {
6654 match Uint32::from_xdr_buffered(read_stream)? {
6655 0 => Ok(AuthenticatedMessage::V0(
6656 AuthenticatedMessageV0::from_xdr_buffered(read_stream)?,
6657 )),
6658 code => Ok(AuthenticatedMessage::Default(code)),
6659 }
6660 }
6661}
6662
6663#[allow(dead_code)]
6665#[derive(Debug, Clone, Eq, PartialEq)]
6666pub enum LiquidityPoolParameters {
6667 LiquidityPoolConstantProduct(LiquidityPoolConstantProductParameters),
6668}
6669
6670impl XdrCodec for LiquidityPoolParameters {
6671 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6672 match self {
6673 LiquidityPoolParameters::LiquidityPoolConstantProduct(value) => {
6674 LiquidityPoolType::LiquidityPoolConstantProduct.to_xdr_buffered(write_stream);
6675 value.to_xdr_buffered(write_stream)
6676 }
6677 }
6678 }
6679
6680 fn from_xdr_buffered<T: AsRef<[u8]>>(
6681 read_stream: &mut ReadStream<T>,
6682 ) -> Result<Self, DecodeError> {
6683 match LiquidityPoolType::from_xdr_buffered(read_stream)? {
6684 LiquidityPoolType::LiquidityPoolConstantProduct => {
6685 Ok(LiquidityPoolParameters::LiquidityPoolConstantProduct(
6686 LiquidityPoolConstantProductParameters::from_xdr_buffered(read_stream)?,
6687 ))
6688 }
6689 }
6690 }
6691}
6692
6693#[allow(dead_code)]
6695#[derive(Debug, Clone, Eq, PartialEq)]
6696pub enum MuxedAccount {
6697 KeyTypeEd25519(Uint256),
6698 KeyTypeMuxedEd25519(MuxedAccountMed25519),
6699 Default(CryptoKeyType),
6700}
6701
6702impl XdrCodec for MuxedAccount {
6703 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6704 match self {
6705 MuxedAccount::KeyTypeEd25519(value) => {
6706 CryptoKeyType::KeyTypeEd25519.to_xdr_buffered(write_stream);
6707 value.to_xdr_buffered(write_stream)
6708 }
6709 MuxedAccount::KeyTypeMuxedEd25519(value) => {
6710 CryptoKeyType::KeyTypeMuxedEd25519.to_xdr_buffered(write_stream);
6711 value.to_xdr_buffered(write_stream)
6712 }
6713 MuxedAccount::Default(code) => code.to_xdr_buffered(write_stream),
6714 }
6715 }
6716
6717 fn from_xdr_buffered<T: AsRef<[u8]>>(
6718 read_stream: &mut ReadStream<T>,
6719 ) -> Result<Self, DecodeError> {
6720 match CryptoKeyType::from_xdr_buffered(read_stream)? {
6721 CryptoKeyType::KeyTypeEd25519 => Ok(MuxedAccount::KeyTypeEd25519(
6722 Uint256::from_xdr_buffered(read_stream)?,
6723 )),
6724 CryptoKeyType::KeyTypeMuxedEd25519 => Ok(MuxedAccount::KeyTypeMuxedEd25519(
6725 MuxedAccountMed25519::from_xdr_buffered(read_stream)?,
6726 )),
6727 code => Ok(MuxedAccount::Default(code)),
6728 }
6729 }
6730}
6731
6732#[allow(dead_code)]
6734#[derive(Debug, Clone, Eq, PartialEq)]
6735pub enum ChangeTrustAsset {
6736 AssetTypeNative,
6737 AssetTypeCreditAlphanum4(AlphaNum4),
6738 AssetTypeCreditAlphanum12(AlphaNum12),
6739 AssetTypePoolShare(LiquidityPoolParameters),
6740}
6741
6742impl XdrCodec for ChangeTrustAsset {
6743 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6744 match self {
6745 ChangeTrustAsset::AssetTypeNative => {
6746 AssetType::AssetTypeNative.to_xdr_buffered(write_stream)
6747 }
6748 ChangeTrustAsset::AssetTypeCreditAlphanum4(value) => {
6749 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
6750 value.to_xdr_buffered(write_stream)
6751 }
6752 ChangeTrustAsset::AssetTypeCreditAlphanum12(value) => {
6753 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
6754 value.to_xdr_buffered(write_stream)
6755 }
6756 ChangeTrustAsset::AssetTypePoolShare(value) => {
6757 AssetType::AssetTypePoolShare.to_xdr_buffered(write_stream);
6758 value.to_xdr_buffered(write_stream)
6759 }
6760 }
6761 }
6762
6763 fn from_xdr_buffered<T: AsRef<[u8]>>(
6764 read_stream: &mut ReadStream<T>,
6765 ) -> Result<Self, DecodeError> {
6766 match AssetType::from_xdr_buffered(read_stream)? {
6767 AssetType::AssetTypeNative => Ok(ChangeTrustAsset::AssetTypeNative),
6768 AssetType::AssetTypeCreditAlphanum4 => Ok(ChangeTrustAsset::AssetTypeCreditAlphanum4(
6769 AlphaNum4::from_xdr_buffered(read_stream)?,
6770 )),
6771 AssetType::AssetTypeCreditAlphanum12 => {
6772 Ok(ChangeTrustAsset::AssetTypeCreditAlphanum12(
6773 AlphaNum12::from_xdr_buffered(read_stream)?,
6774 ))
6775 }
6776 AssetType::AssetTypePoolShare => Ok(ChangeTrustAsset::AssetTypePoolShare(
6777 LiquidityPoolParameters::from_xdr_buffered(read_stream)?,
6778 )),
6779 }
6780 }
6781}
6782
6783#[allow(dead_code)]
6785#[derive(Debug, Clone, Eq, PartialEq)]
6786pub enum RevokeSponsorshipOp {
6787 RevokeSponsorshipLedgerEntry(LedgerKey),
6788 RevokeSponsorshipSigner(RevokeSponsorshipOpSigner),
6789}
6790
6791impl XdrCodec for RevokeSponsorshipOp {
6792 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6793 match self {
6794 RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(value) => {
6795 RevokeSponsorshipType::RevokeSponsorshipLedgerEntry.to_xdr_buffered(write_stream);
6796 value.to_xdr_buffered(write_stream)
6797 }
6798 RevokeSponsorshipOp::RevokeSponsorshipSigner(value) => {
6799 RevokeSponsorshipType::RevokeSponsorshipSigner.to_xdr_buffered(write_stream);
6800 value.to_xdr_buffered(write_stream)
6801 }
6802 }
6803 }
6804
6805 fn from_xdr_buffered<T: AsRef<[u8]>>(
6806 read_stream: &mut ReadStream<T>,
6807 ) -> Result<Self, DecodeError> {
6808 match RevokeSponsorshipType::from_xdr_buffered(read_stream)? {
6809 RevokeSponsorshipType::RevokeSponsorshipLedgerEntry => {
6810 Ok(RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(
6811 LedgerKey::from_xdr_buffered(read_stream)?,
6812 ))
6813 }
6814 RevokeSponsorshipType::RevokeSponsorshipSigner => {
6815 Ok(RevokeSponsorshipOp::RevokeSponsorshipSigner(
6816 RevokeSponsorshipOpSigner::from_xdr_buffered(read_stream)?,
6817 ))
6818 }
6819 }
6820 }
6821}
6822
6823#[allow(dead_code)]
6825#[derive(Debug, Clone, Eq, PartialEq)]
6826pub enum OperationBody {
6827 CreateAccount(CreateAccountOp),
6828 Payment(PaymentOp),
6829 PathPaymentStrictReceive(PathPaymentStrictReceiveOp),
6830 ManageSellOffer(ManageSellOfferOp),
6831 CreatePassiveSellOffer(CreatePassiveSellOfferOp),
6832 SetOptions(SetOptionsOp),
6833 ChangeTrust(ChangeTrustOp),
6834 AllowTrust(AllowTrustOp),
6835 AccountMerge(MuxedAccount),
6836 Inflation,
6837 ManageData(ManageDataOp),
6838 BumpSequence(BumpSequenceOp),
6839 ManageBuyOffer(ManageBuyOfferOp),
6840 PathPaymentStrictSend(PathPaymentStrictSendOp),
6841 CreateClaimableBalance(CreateClaimableBalanceOp),
6842 ClaimClaimableBalance(ClaimClaimableBalanceOp),
6843 BeginSponsoringFutureReserves(BeginSponsoringFutureReservesOp),
6844 EndSponsoringFutureReserves,
6845 RevokeSponsorship(RevokeSponsorshipOp),
6846 Clawback(ClawbackOp),
6847 ClawbackClaimableBalance(ClawbackClaimableBalanceOp),
6848 SetTrustLineFlags(SetTrustLineFlagsOp),
6849}
6850
6851impl XdrCodec for OperationBody {
6852 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6853 match self {
6854 OperationBody::CreateAccount(value) => {
6855 OperationType::CreateAccount.to_xdr_buffered(write_stream);
6856 value.to_xdr_buffered(write_stream)
6857 }
6858 OperationBody::Payment(value) => {
6859 OperationType::Payment.to_xdr_buffered(write_stream);
6860 value.to_xdr_buffered(write_stream)
6861 }
6862 OperationBody::PathPaymentStrictReceive(value) => {
6863 OperationType::PathPaymentStrictReceive.to_xdr_buffered(write_stream);
6864 value.to_xdr_buffered(write_stream)
6865 }
6866 OperationBody::ManageSellOffer(value) => {
6867 OperationType::ManageSellOffer.to_xdr_buffered(write_stream);
6868 value.to_xdr_buffered(write_stream)
6869 }
6870 OperationBody::CreatePassiveSellOffer(value) => {
6871 OperationType::CreatePassiveSellOffer.to_xdr_buffered(write_stream);
6872 value.to_xdr_buffered(write_stream)
6873 }
6874 OperationBody::SetOptions(value) => {
6875 OperationType::SetOptions.to_xdr_buffered(write_stream);
6876 value.to_xdr_buffered(write_stream)
6877 }
6878 OperationBody::ChangeTrust(value) => {
6879 OperationType::ChangeTrust.to_xdr_buffered(write_stream);
6880 value.to_xdr_buffered(write_stream)
6881 }
6882 OperationBody::AllowTrust(value) => {
6883 OperationType::AllowTrust.to_xdr_buffered(write_stream);
6884 value.to_xdr_buffered(write_stream)
6885 }
6886 OperationBody::AccountMerge(value) => {
6887 OperationType::AccountMerge.to_xdr_buffered(write_stream);
6888 value.to_xdr_buffered(write_stream)
6889 }
6890 OperationBody::Inflation => OperationType::Inflation.to_xdr_buffered(write_stream),
6891 OperationBody::ManageData(value) => {
6892 OperationType::ManageData.to_xdr_buffered(write_stream);
6893 value.to_xdr_buffered(write_stream)
6894 }
6895 OperationBody::BumpSequence(value) => {
6896 OperationType::BumpSequence.to_xdr_buffered(write_stream);
6897 value.to_xdr_buffered(write_stream)
6898 }
6899 OperationBody::ManageBuyOffer(value) => {
6900 OperationType::ManageBuyOffer.to_xdr_buffered(write_stream);
6901 value.to_xdr_buffered(write_stream)
6902 }
6903 OperationBody::PathPaymentStrictSend(value) => {
6904 OperationType::PathPaymentStrictSend.to_xdr_buffered(write_stream);
6905 value.to_xdr_buffered(write_stream)
6906 }
6907 OperationBody::CreateClaimableBalance(value) => {
6908 OperationType::CreateClaimableBalance.to_xdr_buffered(write_stream);
6909 value.to_xdr_buffered(write_stream)
6910 }
6911 OperationBody::ClaimClaimableBalance(value) => {
6912 OperationType::ClaimClaimableBalance.to_xdr_buffered(write_stream);
6913 value.to_xdr_buffered(write_stream)
6914 }
6915 OperationBody::BeginSponsoringFutureReserves(value) => {
6916 OperationType::BeginSponsoringFutureReserves.to_xdr_buffered(write_stream);
6917 value.to_xdr_buffered(write_stream)
6918 }
6919 OperationBody::EndSponsoringFutureReserves => {
6920 OperationType::EndSponsoringFutureReserves.to_xdr_buffered(write_stream)
6921 }
6922 OperationBody::RevokeSponsorship(value) => {
6923 OperationType::RevokeSponsorship.to_xdr_buffered(write_stream);
6924 value.to_xdr_buffered(write_stream)
6925 }
6926 OperationBody::Clawback(value) => {
6927 OperationType::Clawback.to_xdr_buffered(write_stream);
6928 value.to_xdr_buffered(write_stream)
6929 }
6930 OperationBody::ClawbackClaimableBalance(value) => {
6931 OperationType::ClawbackClaimableBalance.to_xdr_buffered(write_stream);
6932 value.to_xdr_buffered(write_stream)
6933 }
6934 OperationBody::SetTrustLineFlags(value) => {
6935 OperationType::SetTrustLineFlags.to_xdr_buffered(write_stream);
6936 value.to_xdr_buffered(write_stream)
6937 }
6938 }
6939 }
6940
6941 fn from_xdr_buffered<T: AsRef<[u8]>>(
6942 read_stream: &mut ReadStream<T>,
6943 ) -> Result<Self, DecodeError> {
6944 match OperationType::from_xdr_buffered(read_stream)? {
6945 OperationType::CreateAccount => Ok(OperationBody::CreateAccount(
6946 CreateAccountOp::from_xdr_buffered(read_stream)?,
6947 )),
6948 OperationType::Payment => Ok(OperationBody::Payment(PaymentOp::from_xdr_buffered(
6949 read_stream,
6950 )?)),
6951 OperationType::PathPaymentStrictReceive => Ok(OperationBody::PathPaymentStrictReceive(
6952 PathPaymentStrictReceiveOp::from_xdr_buffered(read_stream)?,
6953 )),
6954 OperationType::ManageSellOffer => Ok(OperationBody::ManageSellOffer(
6955 ManageSellOfferOp::from_xdr_buffered(read_stream)?,
6956 )),
6957 OperationType::CreatePassiveSellOffer => Ok(OperationBody::CreatePassiveSellOffer(
6958 CreatePassiveSellOfferOp::from_xdr_buffered(read_stream)?,
6959 )),
6960 OperationType::SetOptions => Ok(OperationBody::SetOptions(
6961 SetOptionsOp::from_xdr_buffered(read_stream)?,
6962 )),
6963 OperationType::ChangeTrust => Ok(OperationBody::ChangeTrust(
6964 ChangeTrustOp::from_xdr_buffered(read_stream)?,
6965 )),
6966 OperationType::AllowTrust => Ok(OperationBody::AllowTrust(
6967 AllowTrustOp::from_xdr_buffered(read_stream)?,
6968 )),
6969 OperationType::AccountMerge => Ok(OperationBody::AccountMerge(
6970 MuxedAccount::from_xdr_buffered(read_stream)?,
6971 )),
6972 OperationType::Inflation => Ok(OperationBody::Inflation),
6973 OperationType::ManageData => Ok(OperationBody::ManageData(
6974 ManageDataOp::from_xdr_buffered(read_stream)?,
6975 )),
6976 OperationType::BumpSequence => Ok(OperationBody::BumpSequence(
6977 BumpSequenceOp::from_xdr_buffered(read_stream)?,
6978 )),
6979 OperationType::ManageBuyOffer => Ok(OperationBody::ManageBuyOffer(
6980 ManageBuyOfferOp::from_xdr_buffered(read_stream)?,
6981 )),
6982 OperationType::PathPaymentStrictSend => Ok(OperationBody::PathPaymentStrictSend(
6983 PathPaymentStrictSendOp::from_xdr_buffered(read_stream)?,
6984 )),
6985 OperationType::CreateClaimableBalance => Ok(OperationBody::CreateClaimableBalance(
6986 CreateClaimableBalanceOp::from_xdr_buffered(read_stream)?,
6987 )),
6988 OperationType::ClaimClaimableBalance => Ok(OperationBody::ClaimClaimableBalance(
6989 ClaimClaimableBalanceOp::from_xdr_buffered(read_stream)?,
6990 )),
6991 OperationType::BeginSponsoringFutureReserves => {
6992 Ok(OperationBody::BeginSponsoringFutureReserves(
6993 BeginSponsoringFutureReservesOp::from_xdr_buffered(read_stream)?,
6994 ))
6995 }
6996 OperationType::EndSponsoringFutureReserves => {
6997 Ok(OperationBody::EndSponsoringFutureReserves)
6998 }
6999 OperationType::RevokeSponsorship => Ok(OperationBody::RevokeSponsorship(
7000 RevokeSponsorshipOp::from_xdr_buffered(read_stream)?,
7001 )),
7002 OperationType::Clawback => Ok(OperationBody::Clawback(ClawbackOp::from_xdr_buffered(
7003 read_stream,
7004 )?)),
7005 OperationType::ClawbackClaimableBalance => Ok(OperationBody::ClawbackClaimableBalance(
7006 ClawbackClaimableBalanceOp::from_xdr_buffered(read_stream)?,
7007 )),
7008 OperationType::SetTrustLineFlags => Ok(OperationBody::SetTrustLineFlags(
7009 SetTrustLineFlagsOp::from_xdr_buffered(read_stream)?,
7010 )),
7011 }
7012 }
7013}
7014
7015#[allow(dead_code)]
7017#[cfg(feature = "all-types")]
7018#[derive(Debug, Clone, Eq, PartialEq)]
7019pub enum OperationId {
7020 EnvelopeTypeOpId(OperationIdId),
7021 Default(EnvelopeType),
7022}
7023
7024#[cfg(feature = "all-types")]
7025impl XdrCodec for OperationId {
7026 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7027 match self {
7028 OperationId::EnvelopeTypeOpId(value) => {
7029 EnvelopeType::EnvelopeTypeOpId.to_xdr_buffered(write_stream);
7030 value.to_xdr_buffered(write_stream)
7031 }
7032 OperationId::Default(code) => code.to_xdr_buffered(write_stream),
7033 }
7034 }
7035
7036 fn from_xdr_buffered<T: AsRef<[u8]>>(
7037 read_stream: &mut ReadStream<T>,
7038 ) -> Result<Self, DecodeError> {
7039 match EnvelopeType::from_xdr_buffered(read_stream)? {
7040 EnvelopeType::EnvelopeTypeOpId => Ok(OperationId::EnvelopeTypeOpId(
7041 OperationIdId::from_xdr_buffered(read_stream)?,
7042 )),
7043 code => Ok(OperationId::Default(code)),
7044 }
7045 }
7046}
7047
7048#[allow(dead_code)]
7050#[derive(Debug, Clone, Eq, PartialEq)]
7051pub enum Memo {
7052 MemoNone,
7053 MemoText(LimitedString<28>),
7054 MemoId(Uint64),
7055 MemoHash(Hash),
7056 MemoReturn(Hash),
7057}
7058
7059impl XdrCodec for Memo {
7060 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7061 match self {
7062 Memo::MemoNone => MemoType::MemoNone.to_xdr_buffered(write_stream),
7063 Memo::MemoText(value) => {
7064 MemoType::MemoText.to_xdr_buffered(write_stream);
7065 value.to_xdr_buffered(write_stream)
7066 }
7067 Memo::MemoId(value) => {
7068 MemoType::MemoId.to_xdr_buffered(write_stream);
7069 value.to_xdr_buffered(write_stream)
7070 }
7071 Memo::MemoHash(value) => {
7072 MemoType::MemoHash.to_xdr_buffered(write_stream);
7073 value.to_xdr_buffered(write_stream)
7074 }
7075 Memo::MemoReturn(value) => {
7076 MemoType::MemoReturn.to_xdr_buffered(write_stream);
7077 value.to_xdr_buffered(write_stream)
7078 }
7079 }
7080 }
7081
7082 fn from_xdr_buffered<T: AsRef<[u8]>>(
7083 read_stream: &mut ReadStream<T>,
7084 ) -> Result<Self, DecodeError> {
7085 match MemoType::from_xdr_buffered(read_stream)? {
7086 MemoType::MemoNone => Ok(Memo::MemoNone),
7087 MemoType::MemoText => Ok(Memo::MemoText(LimitedString::<28>::from_xdr_buffered(
7088 read_stream,
7089 )?)),
7090 MemoType::MemoId => Ok(Memo::MemoId(Uint64::from_xdr_buffered(read_stream)?)),
7091 MemoType::MemoHash => Ok(Memo::MemoHash(Hash::from_xdr_buffered(read_stream)?)),
7092 MemoType::MemoReturn => Ok(Memo::MemoReturn(Hash::from_xdr_buffered(read_stream)?)),
7093 }
7094 }
7095}
7096
7097#[allow(dead_code)]
7099#[derive(Debug, Clone, Eq, PartialEq)]
7100pub enum TransactionV0Ext {
7101 V0,
7102 Default(i32),
7103}
7104
7105impl XdrCodec for TransactionV0Ext {
7106 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7107 match self {
7108 TransactionV0Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
7109 TransactionV0Ext::Default(code) => code.to_xdr_buffered(write_stream),
7110 }
7111 }
7112
7113 fn from_xdr_buffered<T: AsRef<[u8]>>(
7114 read_stream: &mut ReadStream<T>,
7115 ) -> Result<Self, DecodeError> {
7116 match i32::from_xdr_buffered(read_stream)? {
7117 0 => Ok(TransactionV0Ext::V0),
7118 code => Ok(TransactionV0Ext::Default(code)),
7119 }
7120 }
7121}
7122
7123#[allow(dead_code)]
7125#[derive(Debug, Clone, Eq, PartialEq)]
7126pub enum TransactionExt {
7127 V0,
7128 Default(i32),
7129}
7130
7131impl XdrCodec for TransactionExt {
7132 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7133 match self {
7134 TransactionExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
7135 TransactionExt::Default(code) => code.to_xdr_buffered(write_stream),
7136 }
7137 }
7138
7139 fn from_xdr_buffered<T: AsRef<[u8]>>(
7140 read_stream: &mut ReadStream<T>,
7141 ) -> Result<Self, DecodeError> {
7142 match i32::from_xdr_buffered(read_stream)? {
7143 0 => Ok(TransactionExt::V0),
7144 code => Ok(TransactionExt::Default(code)),
7145 }
7146 }
7147}
7148
7149#[allow(dead_code)]
7151#[derive(Debug, Clone, Eq, PartialEq)]
7152pub enum FeeBumpTransactionInnerTx {
7153 EnvelopeTypeTx(TransactionV1Envelope),
7154 Default(EnvelopeType),
7155}
7156
7157impl XdrCodec for FeeBumpTransactionInnerTx {
7158 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7159 match self {
7160 FeeBumpTransactionInnerTx::EnvelopeTypeTx(value) => {
7161 EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
7162 value.to_xdr_buffered(write_stream)
7163 }
7164 FeeBumpTransactionInnerTx::Default(code) => code.to_xdr_buffered(write_stream),
7165 }
7166 }
7167
7168 fn from_xdr_buffered<T: AsRef<[u8]>>(
7169 read_stream: &mut ReadStream<T>,
7170 ) -> Result<Self, DecodeError> {
7171 match EnvelopeType::from_xdr_buffered(read_stream)? {
7172 EnvelopeType::EnvelopeTypeTx => Ok(FeeBumpTransactionInnerTx::EnvelopeTypeTx(
7173 TransactionV1Envelope::from_xdr_buffered(read_stream)?,
7174 )),
7175 code => Ok(FeeBumpTransactionInnerTx::Default(code)),
7176 }
7177 }
7178}
7179
7180#[allow(dead_code)]
7182#[derive(Debug, Clone, Eq, PartialEq)]
7183pub enum FeeBumpTransactionExt {
7184 V0,
7185 Default(i32),
7186}
7187
7188impl XdrCodec for FeeBumpTransactionExt {
7189 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7190 match self {
7191 FeeBumpTransactionExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
7192 FeeBumpTransactionExt::Default(code) => code.to_xdr_buffered(write_stream),
7193 }
7194 }
7195
7196 fn from_xdr_buffered<T: AsRef<[u8]>>(
7197 read_stream: &mut ReadStream<T>,
7198 ) -> Result<Self, DecodeError> {
7199 match i32::from_xdr_buffered(read_stream)? {
7200 0 => Ok(FeeBumpTransactionExt::V0),
7201 code => Ok(FeeBumpTransactionExt::Default(code)),
7202 }
7203 }
7204}
7205
7206#[allow(dead_code)]
7208#[derive(Debug, Clone, Eq, PartialEq)]
7209pub enum TransactionEnvelope {
7210 EnvelopeTypeTxV0(TransactionV0Envelope),
7211 EnvelopeTypeTx(TransactionV1Envelope),
7212 EnvelopeTypeTxFeeBump(FeeBumpTransactionEnvelope),
7213 Default(EnvelopeType),
7214}
7215
7216impl XdrCodec for TransactionEnvelope {
7217 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7218 match self {
7219 TransactionEnvelope::EnvelopeTypeTxV0(value) => {
7220 EnvelopeType::EnvelopeTypeTxV0.to_xdr_buffered(write_stream);
7221 value.to_xdr_buffered(write_stream)
7222 }
7223 TransactionEnvelope::EnvelopeTypeTx(value) => {
7224 EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
7225 value.to_xdr_buffered(write_stream)
7226 }
7227 TransactionEnvelope::EnvelopeTypeTxFeeBump(value) => {
7228 EnvelopeType::EnvelopeTypeTxFeeBump.to_xdr_buffered(write_stream);
7229 value.to_xdr_buffered(write_stream)
7230 }
7231 TransactionEnvelope::Default(code) => code.to_xdr_buffered(write_stream),
7232 }
7233 }
7234
7235 fn from_xdr_buffered<T: AsRef<[u8]>>(
7236 read_stream: &mut ReadStream<T>,
7237 ) -> Result<Self, DecodeError> {
7238 match EnvelopeType::from_xdr_buffered(read_stream)? {
7239 EnvelopeType::EnvelopeTypeTxV0 => Ok(TransactionEnvelope::EnvelopeTypeTxV0(
7240 TransactionV0Envelope::from_xdr_buffered(read_stream)?,
7241 )),
7242 EnvelopeType::EnvelopeTypeTx => Ok(TransactionEnvelope::EnvelopeTypeTx(
7243 TransactionV1Envelope::from_xdr_buffered(read_stream)?,
7244 )),
7245 EnvelopeType::EnvelopeTypeTxFeeBump => Ok(TransactionEnvelope::EnvelopeTypeTxFeeBump(
7246 FeeBumpTransactionEnvelope::from_xdr_buffered(read_stream)?,
7247 )),
7248 code => Ok(TransactionEnvelope::Default(code)),
7249 }
7250 }
7251}
7252
7253#[allow(dead_code)]
7255#[derive(Debug, Clone, Eq, PartialEq)]
7256pub enum TransactionSignaturePayloadTaggedTransaction {
7257 EnvelopeTypeTx(Transaction),
7258 EnvelopeTypeTxFeeBump(FeeBumpTransaction),
7259 Default(EnvelopeType),
7260}
7261
7262impl XdrCodec for TransactionSignaturePayloadTaggedTransaction {
7263 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7264 match self {
7265 TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTx(value) => {
7266 EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
7267 value.to_xdr_buffered(write_stream)
7268 }
7269 TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTxFeeBump(value) => {
7270 EnvelopeType::EnvelopeTypeTxFeeBump.to_xdr_buffered(write_stream);
7271 value.to_xdr_buffered(write_stream)
7272 }
7273 TransactionSignaturePayloadTaggedTransaction::Default(code) => {
7274 code.to_xdr_buffered(write_stream)
7275 }
7276 }
7277 }
7278
7279 fn from_xdr_buffered<T: AsRef<[u8]>>(
7280 read_stream: &mut ReadStream<T>,
7281 ) -> Result<Self, DecodeError> {
7282 match EnvelopeType::from_xdr_buffered(read_stream)? {
7283 EnvelopeType::EnvelopeTypeTx => Ok(
7284 TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTx(
7285 Transaction::from_xdr_buffered(read_stream)?,
7286 ),
7287 ),
7288 EnvelopeType::EnvelopeTypeTxFeeBump => Ok(
7289 TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTxFeeBump(
7290 FeeBumpTransaction::from_xdr_buffered(read_stream)?,
7291 ),
7292 ),
7293 code => Ok(TransactionSignaturePayloadTaggedTransaction::Default(code)),
7294 }
7295 }
7296}
7297
7298#[allow(dead_code)]
7300#[derive(Debug, Clone, Eq, PartialEq)]
7301pub enum ClaimAtom {
7302 ClaimAtomTypeV0(ClaimOfferAtomV0),
7303 ClaimAtomTypeOrderBook(ClaimOfferAtom),
7304}
7305
7306impl XdrCodec for ClaimAtom {
7307 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7308 match self {
7309 ClaimAtom::ClaimAtomTypeV0(value) => {
7310 ClaimAtomType::ClaimAtomTypeV0.to_xdr_buffered(write_stream);
7311 value.to_xdr_buffered(write_stream)
7312 }
7313 ClaimAtom::ClaimAtomTypeOrderBook(value) => {
7314 ClaimAtomType::ClaimAtomTypeOrderBook.to_xdr_buffered(write_stream);
7315 value.to_xdr_buffered(write_stream)
7316 }
7317 }
7318 }
7319
7320 fn from_xdr_buffered<T: AsRef<[u8]>>(
7321 read_stream: &mut ReadStream<T>,
7322 ) -> Result<Self, DecodeError> {
7323 match ClaimAtomType::from_xdr_buffered(read_stream)? {
7324 ClaimAtomType::ClaimAtomTypeV0 => Ok(ClaimAtom::ClaimAtomTypeV0(
7325 ClaimOfferAtomV0::from_xdr_buffered(read_stream)?,
7326 )),
7327 ClaimAtomType::ClaimAtomTypeOrderBook => Ok(ClaimAtom::ClaimAtomTypeOrderBook(
7328 ClaimOfferAtom::from_xdr_buffered(read_stream)?,
7329 )),
7330 }
7331 }
7332}
7333
7334#[allow(dead_code)]
7336#[derive(Debug, Clone, Eq, PartialEq)]
7337pub enum CreateAccountResult {
7338 CreateAccountSuccess,
7339 Default(CreateAccountResultCode),
7340}
7341
7342impl XdrCodec for CreateAccountResult {
7343 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7344 match self {
7345 CreateAccountResult::CreateAccountSuccess => {
7346 CreateAccountResultCode::CreateAccountSuccess.to_xdr_buffered(write_stream)
7347 }
7348 CreateAccountResult::Default(code) => code.to_xdr_buffered(write_stream),
7349 }
7350 }
7351
7352 fn from_xdr_buffered<T: AsRef<[u8]>>(
7353 read_stream: &mut ReadStream<T>,
7354 ) -> Result<Self, DecodeError> {
7355 match CreateAccountResultCode::from_xdr_buffered(read_stream)? {
7356 CreateAccountResultCode::CreateAccountSuccess => {
7357 Ok(CreateAccountResult::CreateAccountSuccess)
7358 }
7359 code => Ok(CreateAccountResult::Default(code)),
7360 }
7361 }
7362}
7363
7364#[allow(dead_code)]
7366#[derive(Debug, Clone, Eq, PartialEq)]
7367pub enum PaymentResult {
7368 PaymentSuccess,
7369 Default(PaymentResultCode),
7370}
7371
7372impl XdrCodec for PaymentResult {
7373 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7374 match self {
7375 PaymentResult::PaymentSuccess => {
7376 PaymentResultCode::PaymentSuccess.to_xdr_buffered(write_stream)
7377 }
7378 PaymentResult::Default(code) => code.to_xdr_buffered(write_stream),
7379 }
7380 }
7381
7382 fn from_xdr_buffered<T: AsRef<[u8]>>(
7383 read_stream: &mut ReadStream<T>,
7384 ) -> Result<Self, DecodeError> {
7385 match PaymentResultCode::from_xdr_buffered(read_stream)? {
7386 PaymentResultCode::PaymentSuccess => Ok(PaymentResult::PaymentSuccess),
7387 code => Ok(PaymentResult::Default(code)),
7388 }
7389 }
7390}
7391
7392#[allow(dead_code)]
7394#[derive(Debug, Clone, Eq, PartialEq)]
7395pub enum PathPaymentStrictReceiveResult {
7396 PathPaymentStrictReceiveSuccess(PathPaymentStrictReceiveResultSuccess),
7397 PathPaymentStrictReceiveNoIssuer(Asset),
7398 Default(PathPaymentStrictReceiveResultCode),
7399}
7400
7401impl XdrCodec for PathPaymentStrictReceiveResult {
7402 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7403 match self {
7404 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSuccess(value) => {
7405 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess
7406 .to_xdr_buffered(write_stream);
7407 value.to_xdr_buffered(write_stream)
7408 }
7409 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoIssuer(value) => {
7410 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer
7411 .to_xdr_buffered(write_stream);
7412 value.to_xdr_buffered(write_stream)
7413 }
7414 PathPaymentStrictReceiveResult::Default(code) => code.to_xdr_buffered(write_stream),
7415 }
7416 }
7417
7418 fn from_xdr_buffered<T: AsRef<[u8]>>(
7419 read_stream: &mut ReadStream<T>,
7420 ) -> Result<Self, DecodeError> {
7421 match PathPaymentStrictReceiveResultCode::from_xdr_buffered(read_stream)? {
7422 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess => Ok(
7423 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSuccess(
7424 PathPaymentStrictReceiveResultSuccess::from_xdr_buffered(read_stream)?,
7425 ),
7426 ),
7427 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer => Ok(
7428 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoIssuer(
7429 Asset::from_xdr_buffered(read_stream)?,
7430 ),
7431 ),
7432 code => Ok(PathPaymentStrictReceiveResult::Default(code)),
7433 }
7434 }
7435}
7436
7437#[allow(dead_code)]
7439#[derive(Debug, Clone, Eq, PartialEq)]
7440pub enum PathPaymentStrictSendResult {
7441 PathPaymentStrictSendSuccess(PathPaymentStrictSendResultSuccess),
7442 PathPaymentStrictSendNoIssuer(Asset),
7443 Default(PathPaymentStrictSendResultCode),
7444}
7445
7446impl XdrCodec for PathPaymentStrictSendResult {
7447 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7448 match self {
7449 PathPaymentStrictSendResult::PathPaymentStrictSendSuccess(value) => {
7450 PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess
7451 .to_xdr_buffered(write_stream);
7452 value.to_xdr_buffered(write_stream)
7453 }
7454 PathPaymentStrictSendResult::PathPaymentStrictSendNoIssuer(value) => {
7455 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer
7456 .to_xdr_buffered(write_stream);
7457 value.to_xdr_buffered(write_stream)
7458 }
7459 PathPaymentStrictSendResult::Default(code) => code.to_xdr_buffered(write_stream),
7460 }
7461 }
7462
7463 fn from_xdr_buffered<T: AsRef<[u8]>>(
7464 read_stream: &mut ReadStream<T>,
7465 ) -> Result<Self, DecodeError> {
7466 match PathPaymentStrictSendResultCode::from_xdr_buffered(read_stream)? {
7467 PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess => {
7468 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendSuccess(
7469 PathPaymentStrictSendResultSuccess::from_xdr_buffered(read_stream)?,
7470 ))
7471 }
7472 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer => {
7473 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendNoIssuer(
7474 Asset::from_xdr_buffered(read_stream)?,
7475 ))
7476 }
7477 code => Ok(PathPaymentStrictSendResult::Default(code)),
7478 }
7479 }
7480}
7481
7482#[allow(dead_code)]
7484#[derive(Debug, Clone, Eq, PartialEq)]
7485pub enum ManageOfferSuccessResultOffer {
7486 ManageOfferCreated(OfferEntry),
7487 ManageOfferUpdated(OfferEntry),
7488 Default(ManageOfferEffect),
7489}
7490
7491impl XdrCodec for ManageOfferSuccessResultOffer {
7492 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7493 match self {
7494 ManageOfferSuccessResultOffer::ManageOfferCreated(value) => {
7495 ManageOfferEffect::ManageOfferCreated.to_xdr_buffered(write_stream);
7496 value.to_xdr_buffered(write_stream)
7497 }
7498 ManageOfferSuccessResultOffer::ManageOfferUpdated(value) => {
7499 ManageOfferEffect::ManageOfferUpdated.to_xdr_buffered(write_stream);
7500 value.to_xdr_buffered(write_stream)
7501 }
7502 ManageOfferSuccessResultOffer::Default(code) => code.to_xdr_buffered(write_stream),
7503 }
7504 }
7505
7506 fn from_xdr_buffered<T: AsRef<[u8]>>(
7507 read_stream: &mut ReadStream<T>,
7508 ) -> Result<Self, DecodeError> {
7509 match ManageOfferEffect::from_xdr_buffered(read_stream)? {
7510 ManageOfferEffect::ManageOfferCreated => {
7511 Ok(ManageOfferSuccessResultOffer::ManageOfferCreated(
7512 OfferEntry::from_xdr_buffered(read_stream)?,
7513 ))
7514 }
7515 ManageOfferEffect::ManageOfferUpdated => {
7516 Ok(ManageOfferSuccessResultOffer::ManageOfferUpdated(
7517 OfferEntry::from_xdr_buffered(read_stream)?,
7518 ))
7519 }
7520 code => Ok(ManageOfferSuccessResultOffer::Default(code)),
7521 }
7522 }
7523}
7524
7525#[allow(dead_code)]
7527#[derive(Debug, Clone, Eq, PartialEq)]
7528pub enum ManageSellOfferResult {
7529 ManageSellOfferSuccess(ManageOfferSuccessResult),
7530 Default(ManageSellOfferResultCode),
7531}
7532
7533impl XdrCodec for ManageSellOfferResult {
7534 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7535 match self {
7536 ManageSellOfferResult::ManageSellOfferSuccess(value) => {
7537 ManageSellOfferResultCode::ManageSellOfferSuccess.to_xdr_buffered(write_stream);
7538 value.to_xdr_buffered(write_stream)
7539 }
7540 ManageSellOfferResult::Default(code) => code.to_xdr_buffered(write_stream),
7541 }
7542 }
7543
7544 fn from_xdr_buffered<T: AsRef<[u8]>>(
7545 read_stream: &mut ReadStream<T>,
7546 ) -> Result<Self, DecodeError> {
7547 match ManageSellOfferResultCode::from_xdr_buffered(read_stream)? {
7548 ManageSellOfferResultCode::ManageSellOfferSuccess => {
7549 Ok(ManageSellOfferResult::ManageSellOfferSuccess(
7550 ManageOfferSuccessResult::from_xdr_buffered(read_stream)?,
7551 ))
7552 }
7553 code => Ok(ManageSellOfferResult::Default(code)),
7554 }
7555 }
7556}
7557
7558#[allow(dead_code)]
7560#[derive(Debug, Clone, Eq, PartialEq)]
7561pub enum ManageBuyOfferResult {
7562 ManageBuyOfferSuccess(ManageOfferSuccessResult),
7563 Default(ManageBuyOfferResultCode),
7564}
7565
7566impl XdrCodec for ManageBuyOfferResult {
7567 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7568 match self {
7569 ManageBuyOfferResult::ManageBuyOfferSuccess(value) => {
7570 ManageBuyOfferResultCode::ManageBuyOfferSuccess.to_xdr_buffered(write_stream);
7571 value.to_xdr_buffered(write_stream)
7572 }
7573 ManageBuyOfferResult::Default(code) => code.to_xdr_buffered(write_stream),
7574 }
7575 }
7576
7577 fn from_xdr_buffered<T: AsRef<[u8]>>(
7578 read_stream: &mut ReadStream<T>,
7579 ) -> Result<Self, DecodeError> {
7580 match ManageBuyOfferResultCode::from_xdr_buffered(read_stream)? {
7581 ManageBuyOfferResultCode::ManageBuyOfferSuccess => {
7582 Ok(ManageBuyOfferResult::ManageBuyOfferSuccess(
7583 ManageOfferSuccessResult::from_xdr_buffered(read_stream)?,
7584 ))
7585 }
7586 code => Ok(ManageBuyOfferResult::Default(code)),
7587 }
7588 }
7589}
7590
7591#[allow(dead_code)]
7593#[derive(Debug, Clone, Eq, PartialEq)]
7594pub enum SetOptionsResult {
7595 SetOptionsSuccess,
7596 Default(SetOptionsResultCode),
7597}
7598
7599impl XdrCodec for SetOptionsResult {
7600 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7601 match self {
7602 SetOptionsResult::SetOptionsSuccess => {
7603 SetOptionsResultCode::SetOptionsSuccess.to_xdr_buffered(write_stream)
7604 }
7605 SetOptionsResult::Default(code) => code.to_xdr_buffered(write_stream),
7606 }
7607 }
7608
7609 fn from_xdr_buffered<T: AsRef<[u8]>>(
7610 read_stream: &mut ReadStream<T>,
7611 ) -> Result<Self, DecodeError> {
7612 match SetOptionsResultCode::from_xdr_buffered(read_stream)? {
7613 SetOptionsResultCode::SetOptionsSuccess => Ok(SetOptionsResult::SetOptionsSuccess),
7614 code => Ok(SetOptionsResult::Default(code)),
7615 }
7616 }
7617}
7618
7619#[allow(dead_code)]
7621#[derive(Debug, Clone, Eq, PartialEq)]
7622pub enum ChangeTrustResult {
7623 ChangeTrustSuccess,
7624 Default(ChangeTrustResultCode),
7625}
7626
7627impl XdrCodec for ChangeTrustResult {
7628 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7629 match self {
7630 ChangeTrustResult::ChangeTrustSuccess => {
7631 ChangeTrustResultCode::ChangeTrustSuccess.to_xdr_buffered(write_stream)
7632 }
7633 ChangeTrustResult::Default(code) => code.to_xdr_buffered(write_stream),
7634 }
7635 }
7636
7637 fn from_xdr_buffered<T: AsRef<[u8]>>(
7638 read_stream: &mut ReadStream<T>,
7639 ) -> Result<Self, DecodeError> {
7640 match ChangeTrustResultCode::from_xdr_buffered(read_stream)? {
7641 ChangeTrustResultCode::ChangeTrustSuccess => Ok(ChangeTrustResult::ChangeTrustSuccess),
7642 code => Ok(ChangeTrustResult::Default(code)),
7643 }
7644 }
7645}
7646
7647#[allow(dead_code)]
7649#[derive(Debug, Clone, Eq, PartialEq)]
7650pub enum AllowTrustResult {
7651 AllowTrustSuccess,
7652 Default(AllowTrustResultCode),
7653}
7654
7655impl XdrCodec for AllowTrustResult {
7656 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7657 match self {
7658 AllowTrustResult::AllowTrustSuccess => {
7659 AllowTrustResultCode::AllowTrustSuccess.to_xdr_buffered(write_stream)
7660 }
7661 AllowTrustResult::Default(code) => code.to_xdr_buffered(write_stream),
7662 }
7663 }
7664
7665 fn from_xdr_buffered<T: AsRef<[u8]>>(
7666 read_stream: &mut ReadStream<T>,
7667 ) -> Result<Self, DecodeError> {
7668 match AllowTrustResultCode::from_xdr_buffered(read_stream)? {
7669 AllowTrustResultCode::AllowTrustSuccess => Ok(AllowTrustResult::AllowTrustSuccess),
7670 code => Ok(AllowTrustResult::Default(code)),
7671 }
7672 }
7673}
7674
7675#[allow(dead_code)]
7677#[derive(Debug, Clone, Eq, PartialEq)]
7678pub enum AccountMergeResult {
7679 AccountMergeSuccess(Int64),
7680 Default(AccountMergeResultCode),
7681}
7682
7683impl XdrCodec for AccountMergeResult {
7684 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7685 match self {
7686 AccountMergeResult::AccountMergeSuccess(value) => {
7687 AccountMergeResultCode::AccountMergeSuccess.to_xdr_buffered(write_stream);
7688 value.to_xdr_buffered(write_stream)
7689 }
7690 AccountMergeResult::Default(code) => code.to_xdr_buffered(write_stream),
7691 }
7692 }
7693
7694 fn from_xdr_buffered<T: AsRef<[u8]>>(
7695 read_stream: &mut ReadStream<T>,
7696 ) -> Result<Self, DecodeError> {
7697 match AccountMergeResultCode::from_xdr_buffered(read_stream)? {
7698 AccountMergeResultCode::AccountMergeSuccess => Ok(
7699 AccountMergeResult::AccountMergeSuccess(Int64::from_xdr_buffered(read_stream)?),
7700 ),
7701 code => Ok(AccountMergeResult::Default(code)),
7702 }
7703 }
7704}
7705
7706#[allow(dead_code)]
7708#[derive(Debug, Clone, Eq, PartialEq)]
7709pub enum InflationResult {
7710 InflationSuccess(UnlimitedVarArray<InflationPayout>),
7711 Default(InflationResultCode),
7712}
7713
7714impl XdrCodec for InflationResult {
7715 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7716 match self {
7717 InflationResult::InflationSuccess(value) => {
7718 InflationResultCode::InflationSuccess.to_xdr_buffered(write_stream);
7719 value.to_xdr_buffered(write_stream)
7720 }
7721 InflationResult::Default(code) => code.to_xdr_buffered(write_stream),
7722 }
7723 }
7724
7725 fn from_xdr_buffered<T: AsRef<[u8]>>(
7726 read_stream: &mut ReadStream<T>,
7727 ) -> Result<Self, DecodeError> {
7728 match InflationResultCode::from_xdr_buffered(read_stream)? {
7729 InflationResultCode::InflationSuccess => {
7730 Ok(InflationResult::InflationSuccess(UnlimitedVarArray::<
7731 InflationPayout,
7732 >::from_xdr_buffered(
7733 read_stream
7734 )?))
7735 }
7736 code => Ok(InflationResult::Default(code)),
7737 }
7738 }
7739}
7740
7741#[allow(dead_code)]
7743#[derive(Debug, Clone, Eq, PartialEq)]
7744pub enum ManageDataResult {
7745 ManageDataSuccess,
7746 Default(ManageDataResultCode),
7747}
7748
7749impl XdrCodec for ManageDataResult {
7750 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7751 match self {
7752 ManageDataResult::ManageDataSuccess => {
7753 ManageDataResultCode::ManageDataSuccess.to_xdr_buffered(write_stream)
7754 }
7755 ManageDataResult::Default(code) => code.to_xdr_buffered(write_stream),
7756 }
7757 }
7758
7759 fn from_xdr_buffered<T: AsRef<[u8]>>(
7760 read_stream: &mut ReadStream<T>,
7761 ) -> Result<Self, DecodeError> {
7762 match ManageDataResultCode::from_xdr_buffered(read_stream)? {
7763 ManageDataResultCode::ManageDataSuccess => Ok(ManageDataResult::ManageDataSuccess),
7764 code => Ok(ManageDataResult::Default(code)),
7765 }
7766 }
7767}
7768
7769#[allow(dead_code)]
7771#[derive(Debug, Clone, Eq, PartialEq)]
7772pub enum BumpSequenceResult {
7773 BumpSequenceSuccess,
7774 Default(BumpSequenceResultCode),
7775}
7776
7777impl XdrCodec for BumpSequenceResult {
7778 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7779 match self {
7780 BumpSequenceResult::BumpSequenceSuccess => {
7781 BumpSequenceResultCode::BumpSequenceSuccess.to_xdr_buffered(write_stream)
7782 }
7783 BumpSequenceResult::Default(code) => code.to_xdr_buffered(write_stream),
7784 }
7785 }
7786
7787 fn from_xdr_buffered<T: AsRef<[u8]>>(
7788 read_stream: &mut ReadStream<T>,
7789 ) -> Result<Self, DecodeError> {
7790 match BumpSequenceResultCode::from_xdr_buffered(read_stream)? {
7791 BumpSequenceResultCode::BumpSequenceSuccess => {
7792 Ok(BumpSequenceResult::BumpSequenceSuccess)
7793 }
7794 code => Ok(BumpSequenceResult::Default(code)),
7795 }
7796 }
7797}
7798
7799#[allow(dead_code)]
7801#[derive(Debug, Clone, Eq, PartialEq)]
7802pub enum CreateClaimableBalanceResult {
7803 CreateClaimableBalanceSuccess(ClaimableBalanceId),
7804 Default(CreateClaimableBalanceResultCode),
7805}
7806
7807impl XdrCodec for CreateClaimableBalanceResult {
7808 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7809 match self {
7810 CreateClaimableBalanceResult::CreateClaimableBalanceSuccess(value) => {
7811 CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess
7812 .to_xdr_buffered(write_stream);
7813 value.to_xdr_buffered(write_stream)
7814 }
7815 CreateClaimableBalanceResult::Default(code) => code.to_xdr_buffered(write_stream),
7816 }
7817 }
7818
7819 fn from_xdr_buffered<T: AsRef<[u8]>>(
7820 read_stream: &mut ReadStream<T>,
7821 ) -> Result<Self, DecodeError> {
7822 match CreateClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
7823 CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess => {
7824 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceSuccess(
7825 ClaimableBalanceId::from_xdr_buffered(read_stream)?,
7826 ))
7827 }
7828 code => Ok(CreateClaimableBalanceResult::Default(code)),
7829 }
7830 }
7831}
7832
7833#[allow(dead_code)]
7835#[derive(Debug, Clone, Eq, PartialEq)]
7836pub enum ClaimClaimableBalanceResult {
7837 ClaimClaimableBalanceSuccess,
7838 Default(ClaimClaimableBalanceResultCode),
7839}
7840
7841impl XdrCodec for ClaimClaimableBalanceResult {
7842 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7843 match self {
7844 ClaimClaimableBalanceResult::ClaimClaimableBalanceSuccess => {
7845 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess
7846 .to_xdr_buffered(write_stream)
7847 }
7848 ClaimClaimableBalanceResult::Default(code) => code.to_xdr_buffered(write_stream),
7849 }
7850 }
7851
7852 fn from_xdr_buffered<T: AsRef<[u8]>>(
7853 read_stream: &mut ReadStream<T>,
7854 ) -> Result<Self, DecodeError> {
7855 match ClaimClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
7856 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess => {
7857 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceSuccess)
7858 }
7859 code => Ok(ClaimClaimableBalanceResult::Default(code)),
7860 }
7861 }
7862}
7863
7864#[allow(dead_code)]
7866#[derive(Debug, Clone, Eq, PartialEq)]
7867pub enum BeginSponsoringFutureReservesResult {
7868 BeginSponsoringFutureReservesSuccess,
7869 Default(BeginSponsoringFutureReservesResultCode),
7870}
7871
7872impl XdrCodec for BeginSponsoringFutureReservesResult {
7873 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7874 match self {
7875 BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesSuccess => {
7876 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess
7877 .to_xdr_buffered(write_stream)
7878 }
7879 BeginSponsoringFutureReservesResult::Default(code) => {
7880 code.to_xdr_buffered(write_stream)
7881 }
7882 }
7883 }
7884
7885 fn from_xdr_buffered<T: AsRef<[u8]>>(
7886 read_stream: &mut ReadStream<T>,
7887 ) -> Result<Self, DecodeError> {
7888 match BeginSponsoringFutureReservesResultCode::from_xdr_buffered(read_stream)? {
7889 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess => {
7890 Ok(BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesSuccess)
7891 }
7892 code => Ok(BeginSponsoringFutureReservesResult::Default(code)),
7893 }
7894 }
7895}
7896
7897#[allow(dead_code)]
7899#[derive(Debug, Clone, Eq, PartialEq)]
7900pub enum EndSponsoringFutureReservesResult {
7901 EndSponsoringFutureReservesSuccess,
7902 Default(EndSponsoringFutureReservesResultCode),
7903}
7904
7905impl XdrCodec for EndSponsoringFutureReservesResult {
7906 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7907 match self {
7908 EndSponsoringFutureReservesResult::EndSponsoringFutureReservesSuccess => {
7909 EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess
7910 .to_xdr_buffered(write_stream)
7911 }
7912 EndSponsoringFutureReservesResult::Default(code) => code.to_xdr_buffered(write_stream),
7913 }
7914 }
7915
7916 fn from_xdr_buffered<T: AsRef<[u8]>>(
7917 read_stream: &mut ReadStream<T>,
7918 ) -> Result<Self, DecodeError> {
7919 match EndSponsoringFutureReservesResultCode::from_xdr_buffered(read_stream)? {
7920 EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess => {
7921 Ok(EndSponsoringFutureReservesResult::EndSponsoringFutureReservesSuccess)
7922 }
7923 code => Ok(EndSponsoringFutureReservesResult::Default(code)),
7924 }
7925 }
7926}
7927
7928#[allow(dead_code)]
7930#[derive(Debug, Clone, Eq, PartialEq)]
7931pub enum RevokeSponsorshipResult {
7932 RevokeSponsorshipSuccess,
7933 Default(RevokeSponsorshipResultCode),
7934}
7935
7936impl XdrCodec for RevokeSponsorshipResult {
7937 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7938 match self {
7939 RevokeSponsorshipResult::RevokeSponsorshipSuccess => {
7940 RevokeSponsorshipResultCode::RevokeSponsorshipSuccess.to_xdr_buffered(write_stream)
7941 }
7942 RevokeSponsorshipResult::Default(code) => code.to_xdr_buffered(write_stream),
7943 }
7944 }
7945
7946 fn from_xdr_buffered<T: AsRef<[u8]>>(
7947 read_stream: &mut ReadStream<T>,
7948 ) -> Result<Self, DecodeError> {
7949 match RevokeSponsorshipResultCode::from_xdr_buffered(read_stream)? {
7950 RevokeSponsorshipResultCode::RevokeSponsorshipSuccess => {
7951 Ok(RevokeSponsorshipResult::RevokeSponsorshipSuccess)
7952 }
7953 code => Ok(RevokeSponsorshipResult::Default(code)),
7954 }
7955 }
7956}
7957
7958#[allow(dead_code)]
7960#[derive(Debug, Clone, Eq, PartialEq)]
7961pub enum ClawbackResult {
7962 ClawbackSuccess,
7963 Default(ClawbackResultCode),
7964}
7965
7966impl XdrCodec for ClawbackResult {
7967 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7968 match self {
7969 ClawbackResult::ClawbackSuccess => {
7970 ClawbackResultCode::ClawbackSuccess.to_xdr_buffered(write_stream)
7971 }
7972 ClawbackResult::Default(code) => code.to_xdr_buffered(write_stream),
7973 }
7974 }
7975
7976 fn from_xdr_buffered<T: AsRef<[u8]>>(
7977 read_stream: &mut ReadStream<T>,
7978 ) -> Result<Self, DecodeError> {
7979 match ClawbackResultCode::from_xdr_buffered(read_stream)? {
7980 ClawbackResultCode::ClawbackSuccess => Ok(ClawbackResult::ClawbackSuccess),
7981 code => Ok(ClawbackResult::Default(code)),
7982 }
7983 }
7984}
7985
7986#[allow(dead_code)]
7988#[derive(Debug, Clone, Eq, PartialEq)]
7989pub enum ClawbackClaimableBalanceResult {
7990 ClawbackClaimableBalanceSuccess,
7991 Default(ClawbackClaimableBalanceResultCode),
7992}
7993
7994impl XdrCodec for ClawbackClaimableBalanceResult {
7995 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7996 match self {
7997 ClawbackClaimableBalanceResult::ClawbackClaimableBalanceSuccess => {
7998 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess
7999 .to_xdr_buffered(write_stream)
8000 }
8001 ClawbackClaimableBalanceResult::Default(code) => code.to_xdr_buffered(write_stream),
8002 }
8003 }
8004
8005 fn from_xdr_buffered<T: AsRef<[u8]>>(
8006 read_stream: &mut ReadStream<T>,
8007 ) -> Result<Self, DecodeError> {
8008 match ClawbackClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
8009 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess => {
8010 Ok(ClawbackClaimableBalanceResult::ClawbackClaimableBalanceSuccess)
8011 }
8012 code => Ok(ClawbackClaimableBalanceResult::Default(code)),
8013 }
8014 }
8015}
8016
8017#[allow(dead_code)]
8019#[derive(Debug, Clone, Eq, PartialEq)]
8020pub enum SetTrustLineFlagsResult {
8021 SetTrustLineFlagsSuccess,
8022 Default(SetTrustLineFlagsResultCode),
8023}
8024
8025impl XdrCodec for SetTrustLineFlagsResult {
8026 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8027 match self {
8028 SetTrustLineFlagsResult::SetTrustLineFlagsSuccess => {
8029 SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess.to_xdr_buffered(write_stream)
8030 }
8031 SetTrustLineFlagsResult::Default(code) => code.to_xdr_buffered(write_stream),
8032 }
8033 }
8034
8035 fn from_xdr_buffered<T: AsRef<[u8]>>(
8036 read_stream: &mut ReadStream<T>,
8037 ) -> Result<Self, DecodeError> {
8038 match SetTrustLineFlagsResultCode::from_xdr_buffered(read_stream)? {
8039 SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess => {
8040 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsSuccess)
8041 }
8042 code => Ok(SetTrustLineFlagsResult::Default(code)),
8043 }
8044 }
8045}
8046
8047#[allow(dead_code)]
8049#[derive(Debug, Clone, Eq, PartialEq)]
8050pub enum OperationResultTr {
8051 CreateAccount(CreateAccountResult),
8052 Payment(PaymentResult),
8053 PathPaymentStrictReceive(PathPaymentStrictReceiveResult),
8054 ManageSellOffer(ManageSellOfferResult),
8055 CreatePassiveSellOffer(ManageSellOfferResult),
8056 SetOptions(SetOptionsResult),
8057 ChangeTrust(ChangeTrustResult),
8058 AllowTrust(AllowTrustResult),
8059 AccountMerge(AccountMergeResult),
8060 Inflation(InflationResult),
8061 ManageData(ManageDataResult),
8062 BumpSequence(BumpSequenceResult),
8063 ManageBuyOffer(ManageBuyOfferResult),
8064 PathPaymentStrictSend(PathPaymentStrictSendResult),
8065 CreateClaimableBalance(CreateClaimableBalanceResult),
8066 ClaimClaimableBalance(ClaimClaimableBalanceResult),
8067 BeginSponsoringFutureReserves(BeginSponsoringFutureReservesResult),
8068 EndSponsoringFutureReserves(EndSponsoringFutureReservesResult),
8069 RevokeSponsorship(RevokeSponsorshipResult),
8070 Clawback(ClawbackResult),
8071 ClawbackClaimableBalance(ClawbackClaimableBalanceResult),
8072 SetTrustLineFlags(SetTrustLineFlagsResult),
8073}
8074
8075impl XdrCodec for OperationResultTr {
8076 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8077 match self {
8078 OperationResultTr::CreateAccount(value) => {
8079 OperationType::CreateAccount.to_xdr_buffered(write_stream);
8080 value.to_xdr_buffered(write_stream)
8081 }
8082 OperationResultTr::Payment(value) => {
8083 OperationType::Payment.to_xdr_buffered(write_stream);
8084 value.to_xdr_buffered(write_stream)
8085 }
8086 OperationResultTr::PathPaymentStrictReceive(value) => {
8087 OperationType::PathPaymentStrictReceive.to_xdr_buffered(write_stream);
8088 value.to_xdr_buffered(write_stream)
8089 }
8090 OperationResultTr::ManageSellOffer(value) => {
8091 OperationType::ManageSellOffer.to_xdr_buffered(write_stream);
8092 value.to_xdr_buffered(write_stream)
8093 }
8094 OperationResultTr::CreatePassiveSellOffer(value) => {
8095 OperationType::CreatePassiveSellOffer.to_xdr_buffered(write_stream);
8096 value.to_xdr_buffered(write_stream)
8097 }
8098 OperationResultTr::SetOptions(value) => {
8099 OperationType::SetOptions.to_xdr_buffered(write_stream);
8100 value.to_xdr_buffered(write_stream)
8101 }
8102 OperationResultTr::ChangeTrust(value) => {
8103 OperationType::ChangeTrust.to_xdr_buffered(write_stream);
8104 value.to_xdr_buffered(write_stream)
8105 }
8106 OperationResultTr::AllowTrust(value) => {
8107 OperationType::AllowTrust.to_xdr_buffered(write_stream);
8108 value.to_xdr_buffered(write_stream)
8109 }
8110 OperationResultTr::AccountMerge(value) => {
8111 OperationType::AccountMerge.to_xdr_buffered(write_stream);
8112 value.to_xdr_buffered(write_stream)
8113 }
8114 OperationResultTr::Inflation(value) => {
8115 OperationType::Inflation.to_xdr_buffered(write_stream);
8116 value.to_xdr_buffered(write_stream)
8117 }
8118 OperationResultTr::ManageData(value) => {
8119 OperationType::ManageData.to_xdr_buffered(write_stream);
8120 value.to_xdr_buffered(write_stream)
8121 }
8122 OperationResultTr::BumpSequence(value) => {
8123 OperationType::BumpSequence.to_xdr_buffered(write_stream);
8124 value.to_xdr_buffered(write_stream)
8125 }
8126 OperationResultTr::ManageBuyOffer(value) => {
8127 OperationType::ManageBuyOffer.to_xdr_buffered(write_stream);
8128 value.to_xdr_buffered(write_stream)
8129 }
8130 OperationResultTr::PathPaymentStrictSend(value) => {
8131 OperationType::PathPaymentStrictSend.to_xdr_buffered(write_stream);
8132 value.to_xdr_buffered(write_stream)
8133 }
8134 OperationResultTr::CreateClaimableBalance(value) => {
8135 OperationType::CreateClaimableBalance.to_xdr_buffered(write_stream);
8136 value.to_xdr_buffered(write_stream)
8137 }
8138 OperationResultTr::ClaimClaimableBalance(value) => {
8139 OperationType::ClaimClaimableBalance.to_xdr_buffered(write_stream);
8140 value.to_xdr_buffered(write_stream)
8141 }
8142 OperationResultTr::BeginSponsoringFutureReserves(value) => {
8143 OperationType::BeginSponsoringFutureReserves.to_xdr_buffered(write_stream);
8144 value.to_xdr_buffered(write_stream)
8145 }
8146 OperationResultTr::EndSponsoringFutureReserves(value) => {
8147 OperationType::EndSponsoringFutureReserves.to_xdr_buffered(write_stream);
8148 value.to_xdr_buffered(write_stream)
8149 }
8150 OperationResultTr::RevokeSponsorship(value) => {
8151 OperationType::RevokeSponsorship.to_xdr_buffered(write_stream);
8152 value.to_xdr_buffered(write_stream)
8153 }
8154 OperationResultTr::Clawback(value) => {
8155 OperationType::Clawback.to_xdr_buffered(write_stream);
8156 value.to_xdr_buffered(write_stream)
8157 }
8158 OperationResultTr::ClawbackClaimableBalance(value) => {
8159 OperationType::ClawbackClaimableBalance.to_xdr_buffered(write_stream);
8160 value.to_xdr_buffered(write_stream)
8161 }
8162 OperationResultTr::SetTrustLineFlags(value) => {
8163 OperationType::SetTrustLineFlags.to_xdr_buffered(write_stream);
8164 value.to_xdr_buffered(write_stream)
8165 }
8166 }
8167 }
8168
8169 fn from_xdr_buffered<T: AsRef<[u8]>>(
8170 read_stream: &mut ReadStream<T>,
8171 ) -> Result<Self, DecodeError> {
8172 match OperationType::from_xdr_buffered(read_stream)? {
8173 OperationType::CreateAccount => Ok(OperationResultTr::CreateAccount(
8174 CreateAccountResult::from_xdr_buffered(read_stream)?,
8175 )),
8176 OperationType::Payment => Ok(OperationResultTr::Payment(
8177 PaymentResult::from_xdr_buffered(read_stream)?,
8178 )),
8179 OperationType::PathPaymentStrictReceive => {
8180 Ok(OperationResultTr::PathPaymentStrictReceive(
8181 PathPaymentStrictReceiveResult::from_xdr_buffered(read_stream)?,
8182 ))
8183 }
8184 OperationType::ManageSellOffer => Ok(OperationResultTr::ManageSellOffer(
8185 ManageSellOfferResult::from_xdr_buffered(read_stream)?,
8186 )),
8187 OperationType::CreatePassiveSellOffer => Ok(OperationResultTr::CreatePassiveSellOffer(
8188 ManageSellOfferResult::from_xdr_buffered(read_stream)?,
8189 )),
8190 OperationType::SetOptions => Ok(OperationResultTr::SetOptions(
8191 SetOptionsResult::from_xdr_buffered(read_stream)?,
8192 )),
8193 OperationType::ChangeTrust => Ok(OperationResultTr::ChangeTrust(
8194 ChangeTrustResult::from_xdr_buffered(read_stream)?,
8195 )),
8196 OperationType::AllowTrust => Ok(OperationResultTr::AllowTrust(
8197 AllowTrustResult::from_xdr_buffered(read_stream)?,
8198 )),
8199 OperationType::AccountMerge => Ok(OperationResultTr::AccountMerge(
8200 AccountMergeResult::from_xdr_buffered(read_stream)?,
8201 )),
8202 OperationType::Inflation => Ok(OperationResultTr::Inflation(
8203 InflationResult::from_xdr_buffered(read_stream)?,
8204 )),
8205 OperationType::ManageData => Ok(OperationResultTr::ManageData(
8206 ManageDataResult::from_xdr_buffered(read_stream)?,
8207 )),
8208 OperationType::BumpSequence => Ok(OperationResultTr::BumpSequence(
8209 BumpSequenceResult::from_xdr_buffered(read_stream)?,
8210 )),
8211 OperationType::ManageBuyOffer => Ok(OperationResultTr::ManageBuyOffer(
8212 ManageBuyOfferResult::from_xdr_buffered(read_stream)?,
8213 )),
8214 OperationType::PathPaymentStrictSend => Ok(OperationResultTr::PathPaymentStrictSend(
8215 PathPaymentStrictSendResult::from_xdr_buffered(read_stream)?,
8216 )),
8217 OperationType::CreateClaimableBalance => Ok(OperationResultTr::CreateClaimableBalance(
8218 CreateClaimableBalanceResult::from_xdr_buffered(read_stream)?,
8219 )),
8220 OperationType::ClaimClaimableBalance => Ok(OperationResultTr::ClaimClaimableBalance(
8221 ClaimClaimableBalanceResult::from_xdr_buffered(read_stream)?,
8222 )),
8223 OperationType::BeginSponsoringFutureReserves => {
8224 Ok(OperationResultTr::BeginSponsoringFutureReserves(
8225 BeginSponsoringFutureReservesResult::from_xdr_buffered(read_stream)?,
8226 ))
8227 }
8228 OperationType::EndSponsoringFutureReserves => {
8229 Ok(OperationResultTr::EndSponsoringFutureReserves(
8230 EndSponsoringFutureReservesResult::from_xdr_buffered(read_stream)?,
8231 ))
8232 }
8233 OperationType::RevokeSponsorship => Ok(OperationResultTr::RevokeSponsorship(
8234 RevokeSponsorshipResult::from_xdr_buffered(read_stream)?,
8235 )),
8236 OperationType::Clawback => Ok(OperationResultTr::Clawback(
8237 ClawbackResult::from_xdr_buffered(read_stream)?,
8238 )),
8239 OperationType::ClawbackClaimableBalance => {
8240 Ok(OperationResultTr::ClawbackClaimableBalance(
8241 ClawbackClaimableBalanceResult::from_xdr_buffered(read_stream)?,
8242 ))
8243 }
8244 OperationType::SetTrustLineFlags => Ok(OperationResultTr::SetTrustLineFlags(
8245 SetTrustLineFlagsResult::from_xdr_buffered(read_stream)?,
8246 )),
8247 }
8248 }
8249}
8250
8251#[allow(dead_code)]
8253#[derive(Debug, Clone, Eq, PartialEq)]
8254pub enum OperationResult {
8255 OpInner(OperationResultTr),
8256 Default(OperationResultCode),
8257}
8258
8259impl XdrCodec for OperationResult {
8260 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8261 match self {
8262 OperationResult::OpInner(value) => {
8263 OperationResultCode::OpInner.to_xdr_buffered(write_stream);
8264 value.to_xdr_buffered(write_stream)
8265 }
8266 OperationResult::Default(code) => code.to_xdr_buffered(write_stream),
8267 }
8268 }
8269
8270 fn from_xdr_buffered<T: AsRef<[u8]>>(
8271 read_stream: &mut ReadStream<T>,
8272 ) -> Result<Self, DecodeError> {
8273 match OperationResultCode::from_xdr_buffered(read_stream)? {
8274 OperationResultCode::OpInner => Ok(OperationResult::OpInner(
8275 OperationResultTr::from_xdr_buffered(read_stream)?,
8276 )),
8277 code => Ok(OperationResult::Default(code)),
8278 }
8279 }
8280}
8281
8282#[allow(dead_code)]
8284#[derive(Debug, Clone, Eq, PartialEq)]
8285pub enum InnerTransactionResultResult {
8286 TxSuccess(UnlimitedVarArray<OperationResult>),
8287 TxFailed(UnlimitedVarArray<OperationResult>),
8288 TxTooEarly,
8289 TxTooLate,
8290 TxMissingOperation,
8291 TxBadSeq,
8292 TxBadAuth,
8293 TxInsufficientBalance,
8294 TxNoAccount,
8295 TxInsufficientFee,
8296 TxBadAuthExtra,
8297 TxInternalError,
8298 TxNotSupported,
8299 TxBadSponsorship,
8300 Default(TransactionResultCode),
8301}
8302
8303impl XdrCodec for InnerTransactionResultResult {
8304 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8305 match self {
8306 InnerTransactionResultResult::TxSuccess(value) => {
8307 TransactionResultCode::TxSuccess.to_xdr_buffered(write_stream);
8308 value.to_xdr_buffered(write_stream)
8309 }
8310 InnerTransactionResultResult::TxFailed(value) => {
8311 TransactionResultCode::TxFailed.to_xdr_buffered(write_stream);
8312 value.to_xdr_buffered(write_stream)
8313 }
8314 InnerTransactionResultResult::TxTooEarly => {
8315 TransactionResultCode::TxTooEarly.to_xdr_buffered(write_stream)
8316 }
8317 InnerTransactionResultResult::TxTooLate => {
8318 TransactionResultCode::TxTooLate.to_xdr_buffered(write_stream)
8319 }
8320 InnerTransactionResultResult::TxMissingOperation => {
8321 TransactionResultCode::TxMissingOperation.to_xdr_buffered(write_stream)
8322 }
8323 InnerTransactionResultResult::TxBadSeq => {
8324 TransactionResultCode::TxBadSeq.to_xdr_buffered(write_stream)
8325 }
8326 InnerTransactionResultResult::TxBadAuth => {
8327 TransactionResultCode::TxBadAuth.to_xdr_buffered(write_stream)
8328 }
8329 InnerTransactionResultResult::TxInsufficientBalance => {
8330 TransactionResultCode::TxInsufficientBalance.to_xdr_buffered(write_stream)
8331 }
8332 InnerTransactionResultResult::TxNoAccount => {
8333 TransactionResultCode::TxNoAccount.to_xdr_buffered(write_stream)
8334 }
8335 InnerTransactionResultResult::TxInsufficientFee => {
8336 TransactionResultCode::TxInsufficientFee.to_xdr_buffered(write_stream)
8337 }
8338 InnerTransactionResultResult::TxBadAuthExtra => {
8339 TransactionResultCode::TxBadAuthExtra.to_xdr_buffered(write_stream)
8340 }
8341 InnerTransactionResultResult::TxInternalError => {
8342 TransactionResultCode::TxInternalError.to_xdr_buffered(write_stream)
8343 }
8344 InnerTransactionResultResult::TxNotSupported => {
8345 TransactionResultCode::TxNotSupported.to_xdr_buffered(write_stream)
8346 }
8347 InnerTransactionResultResult::TxBadSponsorship => {
8348 TransactionResultCode::TxBadSponsorship.to_xdr_buffered(write_stream)
8349 }
8350 InnerTransactionResultResult::Default(code) => code.to_xdr_buffered(write_stream),
8351 }
8352 }
8353
8354 fn from_xdr_buffered<T: AsRef<[u8]>>(
8355 read_stream: &mut ReadStream<T>,
8356 ) -> Result<Self, DecodeError> {
8357 match TransactionResultCode::from_xdr_buffered(read_stream)? {
8358 TransactionResultCode::TxSuccess => Ok(InnerTransactionResultResult::TxSuccess(
8359 UnlimitedVarArray::<OperationResult>::from_xdr_buffered(read_stream)?,
8360 )),
8361 TransactionResultCode::TxFailed => {
8362 Ok(InnerTransactionResultResult::TxFailed(UnlimitedVarArray::<
8363 OperationResult,
8364 >::from_xdr_buffered(
8365 read_stream
8366 )?))
8367 }
8368 TransactionResultCode::TxTooEarly => Ok(InnerTransactionResultResult::TxTooEarly),
8369 TransactionResultCode::TxTooLate => Ok(InnerTransactionResultResult::TxTooLate),
8370 TransactionResultCode::TxMissingOperation => {
8371 Ok(InnerTransactionResultResult::TxMissingOperation)
8372 }
8373 TransactionResultCode::TxBadSeq => Ok(InnerTransactionResultResult::TxBadSeq),
8374 TransactionResultCode::TxBadAuth => Ok(InnerTransactionResultResult::TxBadAuth),
8375 TransactionResultCode::TxInsufficientBalance => {
8376 Ok(InnerTransactionResultResult::TxInsufficientBalance)
8377 }
8378 TransactionResultCode::TxNoAccount => Ok(InnerTransactionResultResult::TxNoAccount),
8379 TransactionResultCode::TxInsufficientFee => {
8380 Ok(InnerTransactionResultResult::TxInsufficientFee)
8381 }
8382 TransactionResultCode::TxBadAuthExtra => {
8383 Ok(InnerTransactionResultResult::TxBadAuthExtra)
8384 }
8385 TransactionResultCode::TxInternalError => {
8386 Ok(InnerTransactionResultResult::TxInternalError)
8387 }
8388 TransactionResultCode::TxNotSupported => {
8389 Ok(InnerTransactionResultResult::TxNotSupported)
8390 }
8391 TransactionResultCode::TxBadSponsorship => {
8392 Ok(InnerTransactionResultResult::TxBadSponsorship)
8393 }
8394 code => Ok(InnerTransactionResultResult::Default(code)),
8395 }
8396 }
8397}
8398
8399#[allow(dead_code)]
8401#[derive(Debug, Clone, Eq, PartialEq)]
8402pub enum InnerTransactionResultExt {
8403 V0,
8404 Default(i32),
8405}
8406
8407impl XdrCodec for InnerTransactionResultExt {
8408 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8409 match self {
8410 InnerTransactionResultExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
8411 InnerTransactionResultExt::Default(code) => code.to_xdr_buffered(write_stream),
8412 }
8413 }
8414
8415 fn from_xdr_buffered<T: AsRef<[u8]>>(
8416 read_stream: &mut ReadStream<T>,
8417 ) -> Result<Self, DecodeError> {
8418 match i32::from_xdr_buffered(read_stream)? {
8419 0 => Ok(InnerTransactionResultExt::V0),
8420 code => Ok(InnerTransactionResultExt::Default(code)),
8421 }
8422 }
8423}
8424
8425#[allow(dead_code)]
8427#[derive(Debug, Clone, Eq, PartialEq)]
8428pub enum TransactionResultResult {
8429 TxFeeBumpInnerSuccess(InnerTransactionResultPair),
8430 TxFeeBumpInnerFailed(InnerTransactionResultPair),
8431 TxSuccess(UnlimitedVarArray<OperationResult>),
8432 TxFailed(UnlimitedVarArray<OperationResult>),
8433 Default(TransactionResultCode),
8434}
8435
8436impl XdrCodec for TransactionResultResult {
8437 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8438 match self {
8439 TransactionResultResult::TxFeeBumpInnerSuccess(value) => {
8440 TransactionResultCode::TxFeeBumpInnerSuccess.to_xdr_buffered(write_stream);
8441 value.to_xdr_buffered(write_stream)
8442 }
8443 TransactionResultResult::TxFeeBumpInnerFailed(value) => {
8444 TransactionResultCode::TxFeeBumpInnerFailed.to_xdr_buffered(write_stream);
8445 value.to_xdr_buffered(write_stream)
8446 }
8447 TransactionResultResult::TxSuccess(value) => {
8448 TransactionResultCode::TxSuccess.to_xdr_buffered(write_stream);
8449 value.to_xdr_buffered(write_stream)
8450 }
8451 TransactionResultResult::TxFailed(value) => {
8452 TransactionResultCode::TxFailed.to_xdr_buffered(write_stream);
8453 value.to_xdr_buffered(write_stream)
8454 }
8455 TransactionResultResult::Default(code) => code.to_xdr_buffered(write_stream),
8456 }
8457 }
8458
8459 fn from_xdr_buffered<T: AsRef<[u8]>>(
8460 read_stream: &mut ReadStream<T>,
8461 ) -> Result<Self, DecodeError> {
8462 match TransactionResultCode::from_xdr_buffered(read_stream)? {
8463 TransactionResultCode::TxFeeBumpInnerSuccess => {
8464 Ok(TransactionResultResult::TxFeeBumpInnerSuccess(
8465 InnerTransactionResultPair::from_xdr_buffered(read_stream)?,
8466 ))
8467 }
8468 TransactionResultCode::TxFeeBumpInnerFailed => {
8469 Ok(TransactionResultResult::TxFeeBumpInnerFailed(
8470 InnerTransactionResultPair::from_xdr_buffered(read_stream)?,
8471 ))
8472 }
8473 TransactionResultCode::TxSuccess => {
8474 Ok(TransactionResultResult::TxSuccess(UnlimitedVarArray::<
8475 OperationResult,
8476 >::from_xdr_buffered(
8477 read_stream
8478 )?))
8479 }
8480 TransactionResultCode::TxFailed => {
8481 Ok(TransactionResultResult::TxFailed(UnlimitedVarArray::<
8482 OperationResult,
8483 >::from_xdr_buffered(
8484 read_stream
8485 )?))
8486 }
8487 code => Ok(TransactionResultResult::Default(code)),
8488 }
8489 }
8490}
8491
8492#[allow(dead_code)]
8494#[derive(Debug, Clone, Eq, PartialEq)]
8495pub enum TransactionResultExt {
8496 V0,
8497 Default(i32),
8498}
8499
8500impl XdrCodec for TransactionResultExt {
8501 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8502 match self {
8503 TransactionResultExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
8504 TransactionResultExt::Default(code) => code.to_xdr_buffered(write_stream),
8505 }
8506 }
8507
8508 fn from_xdr_buffered<T: AsRef<[u8]>>(
8509 read_stream: &mut ReadStream<T>,
8510 ) -> Result<Self, DecodeError> {
8511 match i32::from_xdr_buffered(read_stream)? {
8512 0 => Ok(TransactionResultExt::V0),
8513 code => Ok(TransactionResultExt::Default(code)),
8514 }
8515 }
8516}
8517
8518#[allow(dead_code)]
8520#[derive(Debug, Clone, Eq, PartialEq)]
8521pub enum PublicKey {
8522 PublicKeyTypeEd25519(Uint256),
8523}
8524
8525impl XdrCodec for PublicKey {
8526 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8527 match self {
8528 PublicKey::PublicKeyTypeEd25519(value) => {
8529 PublicKeyType::PublicKeyTypeEd25519.to_xdr_buffered(write_stream);
8530 value.to_xdr_buffered(write_stream)
8531 }
8532 }
8533 }
8534
8535 fn from_xdr_buffered<T: AsRef<[u8]>>(
8536 read_stream: &mut ReadStream<T>,
8537 ) -> Result<Self, DecodeError> {
8538 match PublicKeyType::from_xdr_buffered(read_stream)? {
8539 PublicKeyType::PublicKeyTypeEd25519 => Ok(PublicKey::PublicKeyTypeEd25519(
8540 Uint256::from_xdr_buffered(read_stream)?,
8541 )),
8542 }
8543 }
8544}
8545
8546#[allow(dead_code)]
8548#[derive(Debug, Clone, Eq, PartialEq)]
8549pub enum SignerKey {
8550 SignerKeyTypeEd25519(Uint256),
8551 SignerKeyTypePreAuthTx(Uint256),
8552 SignerKeyTypeHashX(Uint256),
8553}
8554
8555impl XdrCodec for SignerKey {
8556 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8557 match self {
8558 SignerKey::SignerKeyTypeEd25519(value) => {
8559 SignerKeyType::SignerKeyTypeEd25519.to_xdr_buffered(write_stream);
8560 value.to_xdr_buffered(write_stream)
8561 }
8562 SignerKey::SignerKeyTypePreAuthTx(value) => {
8563 SignerKeyType::SignerKeyTypePreAuthTx.to_xdr_buffered(write_stream);
8564 value.to_xdr_buffered(write_stream)
8565 }
8566 SignerKey::SignerKeyTypeHashX(value) => {
8567 SignerKeyType::SignerKeyTypeHashX.to_xdr_buffered(write_stream);
8568 value.to_xdr_buffered(write_stream)
8569 }
8570 }
8571 }
8572
8573 fn from_xdr_buffered<T: AsRef<[u8]>>(
8574 read_stream: &mut ReadStream<T>,
8575 ) -> Result<Self, DecodeError> {
8576 match SignerKeyType::from_xdr_buffered(read_stream)? {
8577 SignerKeyType::SignerKeyTypeEd25519 => Ok(SignerKey::SignerKeyTypeEd25519(
8578 Uint256::from_xdr_buffered(read_stream)?,
8579 )),
8580 SignerKeyType::SignerKeyTypePreAuthTx => Ok(SignerKey::SignerKeyTypePreAuthTx(
8581 Uint256::from_xdr_buffered(read_stream)?,
8582 )),
8583 SignerKeyType::SignerKeyTypeHashX => Ok(SignerKey::SignerKeyTypeHashX(
8584 Uint256::from_xdr_buffered(read_stream)?,
8585 )),
8586 }
8587 }
8588}