1#[allow(unused_imports)]
8use super::compound_types::{
9 LimitedString, LimitedVarArray, LimitedVarOpaque, UnlimitedString, UnlimitedVarArray, UnlimitedVarOpaque,
10};
11#[allow(unused_imports)]
12use super::streams::{DecodeError, ReadStream, WriteStream};
13#[allow(unused_imports)]
14use super::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 CONTRACT_COST_COUNT_LIMIT: i32 = 1024;
23#[allow(dead_code)]
25pub const SC_SPEC_DOC_LIMIT: i32 = 1024;
26#[allow(dead_code)]
28pub const SCSYMBOL_LIMIT: i32 = 32;
29#[allow(dead_code)]
31pub const MASK_ACCOUNT_FLAGS: i32 = 7;
32#[allow(dead_code)]
34pub const MASK_ACCOUNT_FLAGS_V17: i32 = 15;
35#[allow(dead_code)]
37pub const MAX_SIGNERS: i32 = 20;
38#[allow(dead_code)]
40pub const MASK_TRUSTLINE_FLAGS: i32 = 1;
41#[allow(dead_code)]
43pub const MASK_TRUSTLINE_FLAGS_V13: i32 = 3;
44#[allow(dead_code)]
46pub const MASK_TRUSTLINE_FLAGS_V17: i32 = 7;
47#[allow(dead_code)]
49pub const MASK_OFFERENTRY_FLAGS: i32 = 1;
50#[allow(dead_code)]
52pub const MASK_CLAIMABLE_BALANCE_FLAGS: i32 = 1;
53#[allow(dead_code)]
55pub const MASK_LEDGER_HEADER_FLAGS: i32 = 7;
56#[allow(dead_code)]
58pub const AUTH_MSG_FLAG_FLOW_CONTROL_BYTES_REQUESTED: i32 = 200;
59#[allow(dead_code)]
61pub const TX_ADVERT_VECTOR_MAX_SIZE: i32 = 1000;
62#[allow(dead_code)]
64pub const TX_DEMAND_VECTOR_MAX_SIZE: i32 = 1000;
65#[allow(dead_code)]
67pub const MAX_OPS_PER_TX: i32 = 100;
68#[allow(dead_code)]
70pub const LIQUIDITY_POOL_FEE_V18: i32 = 30;
71
72#[allow(dead_code)]
74#[cfg(feature = "all-types")]
75pub type Value = UnlimitedVarOpaque;
76
77#[allow(dead_code)]
79#[cfg(feature = "all-types")]
80#[derive(Debug, Clone, Eq, PartialEq)]
81pub struct ScpBallot {
82 pub counter: Uint32,
83 pub value: Value,
84}
85
86#[cfg(feature = "all-types")]
87impl XdrCodec for ScpBallot {
88 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
89 self.counter.to_xdr_buffered(write_stream);
90 self.value.to_xdr_buffered(write_stream);
91 }
92
93 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
94 Ok(ScpBallot {
95 counter: Uint32::from_xdr_buffered(read_stream)?,
96 value: Value::from_xdr_buffered(read_stream)?,
97 })
98 }
99}
100
101#[allow(dead_code)]
103#[cfg(feature = "all-types")]
104#[derive(Debug, Copy, Clone, Eq, PartialEq)]
105pub enum ScpStatementType {
106 ScpStPrepare = 0,
107 ScpStConfirm = 1,
108 ScpStExternalize = 2,
109 ScpStNominate = 3,
110}
111
112#[cfg(feature = "all-types")]
113impl XdrCodec for ScpStatementType {
114 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
115 let value = *self as i32;
116 value.to_xdr_buffered(write_stream);
117 }
118
119 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
120 let enum_value = i32::from_xdr_buffered(read_stream)?;
121 match enum_value {
122 0 => Ok(ScpStatementType::ScpStPrepare),
123 1 => Ok(ScpStatementType::ScpStConfirm),
124 2 => Ok(ScpStatementType::ScpStExternalize),
125 3 => Ok(ScpStatementType::ScpStNominate),
126 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
127 }
128 }
129}
130
131#[allow(dead_code)]
133#[cfg(feature = "all-types")]
134#[derive(Debug, Clone, Eq, PartialEq)]
135pub struct ScpNomination {
136 pub quorum_set_hash: Hash,
137 pub votes: UnlimitedVarArray<Value>,
138 pub accepted: UnlimitedVarArray<Value>,
139}
140
141#[cfg(feature = "all-types")]
142impl XdrCodec for ScpNomination {
143 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
144 self.quorum_set_hash.to_xdr_buffered(write_stream);
145 self.votes.to_xdr_buffered(write_stream);
146 self.accepted.to_xdr_buffered(write_stream);
147 }
148
149 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
150 Ok(ScpNomination {
151 quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
152 votes: UnlimitedVarArray::<Value>::from_xdr_buffered(read_stream)?,
153 accepted: UnlimitedVarArray::<Value>::from_xdr_buffered(read_stream)?,
154 })
155 }
156}
157
158#[allow(dead_code)]
160#[cfg(feature = "all-types")]
161#[derive(Debug, Clone, Eq, PartialEq)]
162pub struct ScpStatementPrepare {
163 pub quorum_set_hash: Hash,
164 pub ballot: ScpBallot,
165 pub prepared: Option<ScpBallot>,
166 pub prepared_prime: Option<ScpBallot>,
167 pub n_c: Uint32,
168 pub n_h: Uint32,
169}
170
171#[cfg(feature = "all-types")]
172impl XdrCodec for ScpStatementPrepare {
173 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
174 self.quorum_set_hash.to_xdr_buffered(write_stream);
175 self.ballot.to_xdr_buffered(write_stream);
176 self.prepared.to_xdr_buffered(write_stream);
177 self.prepared_prime.to_xdr_buffered(write_stream);
178 self.n_c.to_xdr_buffered(write_stream);
179 self.n_h.to_xdr_buffered(write_stream);
180 }
181
182 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
183 Ok(ScpStatementPrepare {
184 quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
185 ballot: ScpBallot::from_xdr_buffered(read_stream)?,
186 prepared: Option::<ScpBallot>::from_xdr_buffered(read_stream)?,
187 prepared_prime: Option::<ScpBallot>::from_xdr_buffered(read_stream)?,
188 n_c: Uint32::from_xdr_buffered(read_stream)?,
189 n_h: Uint32::from_xdr_buffered(read_stream)?,
190 })
191 }
192}
193
194#[allow(dead_code)]
196#[cfg(feature = "all-types")]
197#[derive(Debug, Clone, Eq, PartialEq)]
198pub struct ScpStatementConfirm {
199 pub ballot: ScpBallot,
200 pub n_prepared: Uint32,
201 pub n_commit: Uint32,
202 pub n_h: Uint32,
203 pub quorum_set_hash: Hash,
204}
205
206#[cfg(feature = "all-types")]
207impl XdrCodec for ScpStatementConfirm {
208 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
209 self.ballot.to_xdr_buffered(write_stream);
210 self.n_prepared.to_xdr_buffered(write_stream);
211 self.n_commit.to_xdr_buffered(write_stream);
212 self.n_h.to_xdr_buffered(write_stream);
213 self.quorum_set_hash.to_xdr_buffered(write_stream);
214 }
215
216 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
217 Ok(ScpStatementConfirm {
218 ballot: ScpBallot::from_xdr_buffered(read_stream)?,
219 n_prepared: Uint32::from_xdr_buffered(read_stream)?,
220 n_commit: Uint32::from_xdr_buffered(read_stream)?,
221 n_h: Uint32::from_xdr_buffered(read_stream)?,
222 quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
223 })
224 }
225}
226
227#[allow(dead_code)]
229#[cfg(feature = "all-types")]
230#[derive(Debug, Clone, Eq, PartialEq)]
231pub struct ScpStatementExternalize {
232 pub commit: ScpBallot,
233 pub n_h: Uint32,
234 pub commit_quorum_set_hash: Hash,
235}
236
237#[cfg(feature = "all-types")]
238impl XdrCodec for ScpStatementExternalize {
239 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
240 self.commit.to_xdr_buffered(write_stream);
241 self.n_h.to_xdr_buffered(write_stream);
242 self.commit_quorum_set_hash.to_xdr_buffered(write_stream);
243 }
244
245 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
246 Ok(ScpStatementExternalize {
247 commit: ScpBallot::from_xdr_buffered(read_stream)?,
248 n_h: Uint32::from_xdr_buffered(read_stream)?,
249 commit_quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
250 })
251 }
252}
253
254#[allow(dead_code)]
256#[cfg(feature = "all-types")]
257#[derive(Debug, Clone, Eq, PartialEq)]
258pub struct ScpStatement {
259 pub node_id: NodeId,
260 pub slot_index: Uint64,
261 pub pledges: ScpStatementPledges,
262}
263
264#[cfg(feature = "all-types")]
265impl XdrCodec for ScpStatement {
266 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
267 self.node_id.to_xdr_buffered(write_stream);
268 self.slot_index.to_xdr_buffered(write_stream);
269 self.pledges.to_xdr_buffered(write_stream);
270 }
271
272 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
273 Ok(ScpStatement {
274 node_id: NodeId::from_xdr_buffered(read_stream)?,
275 slot_index: Uint64::from_xdr_buffered(read_stream)?,
276 pledges: ScpStatementPledges::from_xdr_buffered(read_stream)?,
277 })
278 }
279}
280
281#[allow(dead_code)]
283#[cfg(feature = "all-types")]
284#[derive(Debug, Clone, Eq, PartialEq)]
285pub struct ScpEnvelope {
286 pub statement: ScpStatement,
287 pub signature: Signature,
288}
289
290#[cfg(feature = "all-types")]
291impl XdrCodec for ScpEnvelope {
292 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
293 self.statement.to_xdr_buffered(write_stream);
294 self.signature.to_xdr_buffered(write_stream);
295 }
296
297 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
298 Ok(ScpEnvelope {
299 statement: ScpStatement::from_xdr_buffered(read_stream)?,
300 signature: Signature::from_xdr_buffered(read_stream)?,
301 })
302 }
303}
304
305#[allow(dead_code)]
307#[cfg(feature = "all-types")]
308#[derive(Debug, Clone, Eq, PartialEq)]
309pub struct ScpQuorumSet {
310 pub threshold: Uint32,
311 pub validators: UnlimitedVarArray<NodeId>,
312 pub inner_sets: UnlimitedVarArray<ScpQuorumSet>,
313}
314
315#[cfg(feature = "all-types")]
316impl XdrCodec for ScpQuorumSet {
317 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
318 self.threshold.to_xdr_buffered(write_stream);
319 self.validators.to_xdr_buffered(write_stream);
320 self.inner_sets.to_xdr_buffered(write_stream);
321 }
322
323 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
324 Ok(ScpQuorumSet {
325 threshold: Uint32::from_xdr_buffered(read_stream)?,
326 validators: UnlimitedVarArray::<NodeId>::from_xdr_buffered(read_stream)?,
327 inner_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
328 })
329 }
330}
331
332#[allow(dead_code)]
334#[derive(Debug, Clone, Eq, PartialEq)]
335pub struct ConfigSettingContractExecutionLanesV0 {
336 pub ledger_max_tx_count: Uint32,
337}
338
339impl XdrCodec for ConfigSettingContractExecutionLanesV0 {
340 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
341 self.ledger_max_tx_count.to_xdr_buffered(write_stream);
342 }
343
344 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
345 Ok(ConfigSettingContractExecutionLanesV0 { ledger_max_tx_count: Uint32::from_xdr_buffered(read_stream)? })
346 }
347}
348
349#[allow(dead_code)]
351#[derive(Debug, Clone, Eq, PartialEq)]
352pub struct ConfigSettingContractComputeV0 {
353 pub ledger_max_instructions: Int64,
354 pub tx_max_instructions: Int64,
355 pub fee_rate_per_instructions_increment: Int64,
356 pub tx_memory_limit: Uint32,
357}
358
359impl XdrCodec for ConfigSettingContractComputeV0 {
360 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
361 self.ledger_max_instructions.to_xdr_buffered(write_stream);
362 self.tx_max_instructions.to_xdr_buffered(write_stream);
363 self.fee_rate_per_instructions_increment.to_xdr_buffered(write_stream);
364 self.tx_memory_limit.to_xdr_buffered(write_stream);
365 }
366
367 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
368 Ok(ConfigSettingContractComputeV0 {
369 ledger_max_instructions: Int64::from_xdr_buffered(read_stream)?,
370 tx_max_instructions: Int64::from_xdr_buffered(read_stream)?,
371 fee_rate_per_instructions_increment: Int64::from_xdr_buffered(read_stream)?,
372 tx_memory_limit: Uint32::from_xdr_buffered(read_stream)?,
373 })
374 }
375}
376
377#[allow(dead_code)]
379#[derive(Debug, Clone, Eq, PartialEq)]
380pub struct ConfigSettingContractLedgerCostV0 {
381 pub ledger_max_read_ledger_entries: Uint32,
382 pub ledger_max_read_bytes: Uint32,
383 pub ledger_max_write_ledger_entries: Uint32,
384 pub ledger_max_write_bytes: Uint32,
385 pub tx_max_read_ledger_entries: Uint32,
386 pub tx_max_read_bytes: Uint32,
387 pub tx_max_write_ledger_entries: Uint32,
388 pub tx_max_write_bytes: Uint32,
389 pub fee_read_ledger_entry: Int64,
390 pub fee_write_ledger_entry: Int64,
391 pub fee_read1_kb: Int64,
392 pub bucket_list_target_size_bytes: Int64,
393 pub write_fee1_kb_bucket_list_low: Int64,
394 pub write_fee1_kb_bucket_list_high: Int64,
395 pub bucket_list_write_fee_growth_factor: Uint32,
396}
397
398impl XdrCodec for ConfigSettingContractLedgerCostV0 {
399 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
400 self.ledger_max_read_ledger_entries.to_xdr_buffered(write_stream);
401 self.ledger_max_read_bytes.to_xdr_buffered(write_stream);
402 self.ledger_max_write_ledger_entries.to_xdr_buffered(write_stream);
403 self.ledger_max_write_bytes.to_xdr_buffered(write_stream);
404 self.tx_max_read_ledger_entries.to_xdr_buffered(write_stream);
405 self.tx_max_read_bytes.to_xdr_buffered(write_stream);
406 self.tx_max_write_ledger_entries.to_xdr_buffered(write_stream);
407 self.tx_max_write_bytes.to_xdr_buffered(write_stream);
408 self.fee_read_ledger_entry.to_xdr_buffered(write_stream);
409 self.fee_write_ledger_entry.to_xdr_buffered(write_stream);
410 self.fee_read1_kb.to_xdr_buffered(write_stream);
411 self.bucket_list_target_size_bytes.to_xdr_buffered(write_stream);
412 self.write_fee1_kb_bucket_list_low.to_xdr_buffered(write_stream);
413 self.write_fee1_kb_bucket_list_high.to_xdr_buffered(write_stream);
414 self.bucket_list_write_fee_growth_factor.to_xdr_buffered(write_stream);
415 }
416
417 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
418 Ok(ConfigSettingContractLedgerCostV0 {
419 ledger_max_read_ledger_entries: Uint32::from_xdr_buffered(read_stream)?,
420 ledger_max_read_bytes: Uint32::from_xdr_buffered(read_stream)?,
421 ledger_max_write_ledger_entries: Uint32::from_xdr_buffered(read_stream)?,
422 ledger_max_write_bytes: Uint32::from_xdr_buffered(read_stream)?,
423 tx_max_read_ledger_entries: Uint32::from_xdr_buffered(read_stream)?,
424 tx_max_read_bytes: Uint32::from_xdr_buffered(read_stream)?,
425 tx_max_write_ledger_entries: Uint32::from_xdr_buffered(read_stream)?,
426 tx_max_write_bytes: Uint32::from_xdr_buffered(read_stream)?,
427 fee_read_ledger_entry: Int64::from_xdr_buffered(read_stream)?,
428 fee_write_ledger_entry: Int64::from_xdr_buffered(read_stream)?,
429 fee_read1_kb: Int64::from_xdr_buffered(read_stream)?,
430 bucket_list_target_size_bytes: Int64::from_xdr_buffered(read_stream)?,
431 write_fee1_kb_bucket_list_low: Int64::from_xdr_buffered(read_stream)?,
432 write_fee1_kb_bucket_list_high: Int64::from_xdr_buffered(read_stream)?,
433 bucket_list_write_fee_growth_factor: Uint32::from_xdr_buffered(read_stream)?,
434 })
435 }
436}
437
438#[allow(dead_code)]
440#[derive(Debug, Clone, Eq, PartialEq)]
441pub struct ConfigSettingContractHistoricalDataV0 {
442 pub fee_historical1_kb: Int64,
443}
444
445impl XdrCodec for ConfigSettingContractHistoricalDataV0 {
446 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
447 self.fee_historical1_kb.to_xdr_buffered(write_stream);
448 }
449
450 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
451 Ok(ConfigSettingContractHistoricalDataV0 { fee_historical1_kb: Int64::from_xdr_buffered(read_stream)? })
452 }
453}
454
455#[allow(dead_code)]
457#[derive(Debug, Clone, Eq, PartialEq)]
458pub struct ConfigSettingContractEventsV0 {
459 pub tx_max_contract_events_size_bytes: Uint32,
460 pub fee_contract_events1_kb: Int64,
461}
462
463impl XdrCodec for ConfigSettingContractEventsV0 {
464 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
465 self.tx_max_contract_events_size_bytes.to_xdr_buffered(write_stream);
466 self.fee_contract_events1_kb.to_xdr_buffered(write_stream);
467 }
468
469 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
470 Ok(ConfigSettingContractEventsV0 {
471 tx_max_contract_events_size_bytes: Uint32::from_xdr_buffered(read_stream)?,
472 fee_contract_events1_kb: Int64::from_xdr_buffered(read_stream)?,
473 })
474 }
475}
476
477#[allow(dead_code)]
479#[derive(Debug, Clone, Eq, PartialEq)]
480pub struct ConfigSettingContractBandwidthV0 {
481 pub ledger_max_txs_size_bytes: Uint32,
482 pub tx_max_size_bytes: Uint32,
483 pub fee_tx_size1_kb: Int64,
484}
485
486impl XdrCodec for ConfigSettingContractBandwidthV0 {
487 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
488 self.ledger_max_txs_size_bytes.to_xdr_buffered(write_stream);
489 self.tx_max_size_bytes.to_xdr_buffered(write_stream);
490 self.fee_tx_size1_kb.to_xdr_buffered(write_stream);
491 }
492
493 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
494 Ok(ConfigSettingContractBandwidthV0 {
495 ledger_max_txs_size_bytes: Uint32::from_xdr_buffered(read_stream)?,
496 tx_max_size_bytes: Uint32::from_xdr_buffered(read_stream)?,
497 fee_tx_size1_kb: Int64::from_xdr_buffered(read_stream)?,
498 })
499 }
500}
501
502#[allow(dead_code)]
504#[cfg(feature = "all-types")]
505#[derive(Debug, Copy, Clone, Eq, PartialEq)]
506pub enum ContractCostType {
507 WasmInsnExec = 0,
508 MemAlloc = 1,
509 MemCpy = 2,
510 MemCmp = 3,
511 DispatchHostFunction = 4,
512 VisitObject = 5,
513 ValSer = 6,
514 ValDeser = 7,
515 ComputeSha256Hash = 8,
516 ComputeEd25519PubKey = 9,
517 VerifyEd25519Sig = 10,
518 VmInstantiation = 11,
519 VmCachedInstantiation = 12,
520 InvokeVmFunction = 13,
521 ComputeKeccak256Hash = 14,
522 DecodeEcdsaCurve256Sig = 15,
523 RecoverEcdsaSecp256k1Key = 16,
524 Int256AddSub = 17,
525 Int256Mul = 18,
526 Int256Div = 19,
527 Int256Pow = 20,
528 Int256Shift = 21,
529 ChaCha20DrawBytes = 22,
530 ParseWasmInstructions = 23,
531 ParseWasmFunctions = 24,
532 ParseWasmGlobals = 25,
533 ParseWasmTableEntries = 26,
534 ParseWasmTypes = 27,
535 ParseWasmDataSegments = 28,
536 ParseWasmElemSegments = 29,
537 ParseWasmImports = 30,
538 ParseWasmExports = 31,
539 ParseWasmDataSegmentBytes = 32,
540 InstantiateWasmInstructions = 33,
541 InstantiateWasmFunctions = 34,
542 InstantiateWasmGlobals = 35,
543 InstantiateWasmTableEntries = 36,
544 InstantiateWasmTypes = 37,
545 InstantiateWasmDataSegments = 38,
546 InstantiateWasmElemSegments = 39,
547 InstantiateWasmImports = 40,
548 InstantiateWasmExports = 41,
549 InstantiateWasmDataSegmentBytes = 42,
550 Sec1DecodePointUncompressed = 43,
551 VerifyEcdsaSecp256r1Sig = 44,
552}
553
554#[cfg(feature = "all-types")]
555impl XdrCodec for ContractCostType {
556 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
557 let value = *self as i32;
558 value.to_xdr_buffered(write_stream);
559 }
560
561 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
562 let enum_value = i32::from_xdr_buffered(read_stream)?;
563 match enum_value {
564 0 => Ok(ContractCostType::WasmInsnExec),
565 1 => Ok(ContractCostType::MemAlloc),
566 2 => Ok(ContractCostType::MemCpy),
567 3 => Ok(ContractCostType::MemCmp),
568 4 => Ok(ContractCostType::DispatchHostFunction),
569 5 => Ok(ContractCostType::VisitObject),
570 6 => Ok(ContractCostType::ValSer),
571 7 => Ok(ContractCostType::ValDeser),
572 8 => Ok(ContractCostType::ComputeSha256Hash),
573 9 => Ok(ContractCostType::ComputeEd25519PubKey),
574 10 => Ok(ContractCostType::VerifyEd25519Sig),
575 11 => Ok(ContractCostType::VmInstantiation),
576 12 => Ok(ContractCostType::VmCachedInstantiation),
577 13 => Ok(ContractCostType::InvokeVmFunction),
578 14 => Ok(ContractCostType::ComputeKeccak256Hash),
579 15 => Ok(ContractCostType::DecodeEcdsaCurve256Sig),
580 16 => Ok(ContractCostType::RecoverEcdsaSecp256k1Key),
581 17 => Ok(ContractCostType::Int256AddSub),
582 18 => Ok(ContractCostType::Int256Mul),
583 19 => Ok(ContractCostType::Int256Div),
584 20 => Ok(ContractCostType::Int256Pow),
585 21 => Ok(ContractCostType::Int256Shift),
586 22 => Ok(ContractCostType::ChaCha20DrawBytes),
587 23 => Ok(ContractCostType::ParseWasmInstructions),
588 24 => Ok(ContractCostType::ParseWasmFunctions),
589 25 => Ok(ContractCostType::ParseWasmGlobals),
590 26 => Ok(ContractCostType::ParseWasmTableEntries),
591 27 => Ok(ContractCostType::ParseWasmTypes),
592 28 => Ok(ContractCostType::ParseWasmDataSegments),
593 29 => Ok(ContractCostType::ParseWasmElemSegments),
594 30 => Ok(ContractCostType::ParseWasmImports),
595 31 => Ok(ContractCostType::ParseWasmExports),
596 32 => Ok(ContractCostType::ParseWasmDataSegmentBytes),
597 33 => Ok(ContractCostType::InstantiateWasmInstructions),
598 34 => Ok(ContractCostType::InstantiateWasmFunctions),
599 35 => Ok(ContractCostType::InstantiateWasmGlobals),
600 36 => Ok(ContractCostType::InstantiateWasmTableEntries),
601 37 => Ok(ContractCostType::InstantiateWasmTypes),
602 38 => Ok(ContractCostType::InstantiateWasmDataSegments),
603 39 => Ok(ContractCostType::InstantiateWasmElemSegments),
604 40 => Ok(ContractCostType::InstantiateWasmImports),
605 41 => Ok(ContractCostType::InstantiateWasmExports),
606 42 => Ok(ContractCostType::InstantiateWasmDataSegmentBytes),
607 43 => Ok(ContractCostType::Sec1DecodePointUncompressed),
608 44 => Ok(ContractCostType::VerifyEcdsaSecp256r1Sig),
609 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
610 }
611 }
612}
613
614#[allow(dead_code)]
616#[derive(Debug, Clone, Eq, PartialEq)]
617pub struct ContractCostParamEntry {
618 pub ext: ExtensionPoint,
619 pub const_term: Int64,
620 pub linear_term: Int64,
621}
622
623impl XdrCodec for ContractCostParamEntry {
624 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
625 self.ext.to_xdr_buffered(write_stream);
626 self.const_term.to_xdr_buffered(write_stream);
627 self.linear_term.to_xdr_buffered(write_stream);
628 }
629
630 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
631 Ok(ContractCostParamEntry {
632 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
633 const_term: Int64::from_xdr_buffered(read_stream)?,
634 linear_term: Int64::from_xdr_buffered(read_stream)?,
635 })
636 }
637}
638
639#[allow(dead_code)]
641#[derive(Debug, Clone, Eq, PartialEq)]
642pub struct StateArchivalSettings {
643 pub max_entry_ttl: Uint32,
644 pub min_temporary_ttl: Uint32,
645 pub min_persistent_ttl: Uint32,
646 pub persistent_rent_rate_denominator: Int64,
647 pub temp_rent_rate_denominator: Int64,
648 pub max_entries_to_archive: Uint32,
649 pub bucket_list_size_window_sample_size: Uint32,
650 pub bucket_list_window_sample_period: Uint32,
651 pub eviction_scan_size: Uint32,
652 pub starting_eviction_scan_level: Uint32,
653}
654
655impl XdrCodec for StateArchivalSettings {
656 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
657 self.max_entry_ttl.to_xdr_buffered(write_stream);
658 self.min_temporary_ttl.to_xdr_buffered(write_stream);
659 self.min_persistent_ttl.to_xdr_buffered(write_stream);
660 self.persistent_rent_rate_denominator.to_xdr_buffered(write_stream);
661 self.temp_rent_rate_denominator.to_xdr_buffered(write_stream);
662 self.max_entries_to_archive.to_xdr_buffered(write_stream);
663 self.bucket_list_size_window_sample_size.to_xdr_buffered(write_stream);
664 self.bucket_list_window_sample_period.to_xdr_buffered(write_stream);
665 self.eviction_scan_size.to_xdr_buffered(write_stream);
666 self.starting_eviction_scan_level.to_xdr_buffered(write_stream);
667 }
668
669 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
670 Ok(StateArchivalSettings {
671 max_entry_ttl: Uint32::from_xdr_buffered(read_stream)?,
672 min_temporary_ttl: Uint32::from_xdr_buffered(read_stream)?,
673 min_persistent_ttl: Uint32::from_xdr_buffered(read_stream)?,
674 persistent_rent_rate_denominator: Int64::from_xdr_buffered(read_stream)?,
675 temp_rent_rate_denominator: Int64::from_xdr_buffered(read_stream)?,
676 max_entries_to_archive: Uint32::from_xdr_buffered(read_stream)?,
677 bucket_list_size_window_sample_size: Uint32::from_xdr_buffered(read_stream)?,
678 bucket_list_window_sample_period: Uint32::from_xdr_buffered(read_stream)?,
679 eviction_scan_size: Uint32::from_xdr_buffered(read_stream)?,
680 starting_eviction_scan_level: Uint32::from_xdr_buffered(read_stream)?,
681 })
682 }
683}
684
685#[allow(dead_code)]
687#[derive(Debug, Clone, Eq, PartialEq)]
688pub struct EvictionIterator {
689 pub bucket_list_level: Uint32,
690 pub is_curr_bucket: bool,
691 pub bucket_file_offset: Uint64,
692}
693
694impl XdrCodec for EvictionIterator {
695 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
696 self.bucket_list_level.to_xdr_buffered(write_stream);
697 self.is_curr_bucket.to_xdr_buffered(write_stream);
698 self.bucket_file_offset.to_xdr_buffered(write_stream);
699 }
700
701 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
702 Ok(EvictionIterator {
703 bucket_list_level: Uint32::from_xdr_buffered(read_stream)?,
704 is_curr_bucket: bool::from_xdr_buffered(read_stream)?,
705 bucket_file_offset: Uint64::from_xdr_buffered(read_stream)?,
706 })
707 }
708}
709
710#[allow(dead_code)]
712pub type ContractCostParams = LimitedVarArray<ContractCostParamEntry, CONTRACT_COST_COUNT_LIMIT>;
713
714#[allow(dead_code)]
716#[derive(Debug, Copy, Clone, Eq, PartialEq)]
717pub enum ConfigSettingId {
718 ConfigSettingContractMaxSizeBytes = 0,
719 ConfigSettingContractComputeV0 = 1,
720 ConfigSettingContractLedgerCostV0 = 2,
721 ConfigSettingContractHistoricalDataV0 = 3,
722 ConfigSettingContractEventsV0 = 4,
723 ConfigSettingContractBandwidthV0 = 5,
724 ConfigSettingContractCostParamsCpuInstructions = 6,
725 ConfigSettingContractCostParamsMemoryBytes = 7,
726 ConfigSettingContractDataKeySizeBytes = 8,
727 ConfigSettingContractDataEntrySizeBytes = 9,
728 ConfigSettingStateArchival = 10,
729 ConfigSettingContractExecutionLanes = 11,
730 ConfigSettingBucketlistSizeWindow = 12,
731 ConfigSettingEvictionIterator = 13,
732}
733
734impl XdrCodec for ConfigSettingId {
735 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
736 let value = *self as i32;
737 value.to_xdr_buffered(write_stream);
738 }
739
740 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
741 let enum_value = i32::from_xdr_buffered(read_stream)?;
742 match enum_value {
743 0 => Ok(ConfigSettingId::ConfigSettingContractMaxSizeBytes),
744 1 => Ok(ConfigSettingId::ConfigSettingContractComputeV0),
745 2 => Ok(ConfigSettingId::ConfigSettingContractLedgerCostV0),
746 3 => Ok(ConfigSettingId::ConfigSettingContractHistoricalDataV0),
747 4 => Ok(ConfigSettingId::ConfigSettingContractEventsV0),
748 5 => Ok(ConfigSettingId::ConfigSettingContractBandwidthV0),
749 6 => Ok(ConfigSettingId::ConfigSettingContractCostParamsCpuInstructions),
750 7 => Ok(ConfigSettingId::ConfigSettingContractCostParamsMemoryBytes),
751 8 => Ok(ConfigSettingId::ConfigSettingContractDataKeySizeBytes),
752 9 => Ok(ConfigSettingId::ConfigSettingContractDataEntrySizeBytes),
753 10 => Ok(ConfigSettingId::ConfigSettingStateArchival),
754 11 => Ok(ConfigSettingId::ConfigSettingContractExecutionLanes),
755 12 => Ok(ConfigSettingId::ConfigSettingBucketlistSizeWindow),
756 13 => Ok(ConfigSettingId::ConfigSettingEvictionIterator),
757 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
758 }
759 }
760}
761
762#[allow(dead_code)]
764#[cfg(feature = "all-types")]
765#[derive(Debug, Copy, Clone, Eq, PartialEq)]
766pub enum ScEnvMetaKind {
767 ScEnvMetaKindInterfaceVersion = 0,
768}
769
770#[cfg(feature = "all-types")]
771impl XdrCodec for ScEnvMetaKind {
772 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
773 let value = *self as i32;
774 value.to_xdr_buffered(write_stream);
775 }
776
777 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
778 let enum_value = i32::from_xdr_buffered(read_stream)?;
779 match enum_value {
780 0 => Ok(ScEnvMetaKind::ScEnvMetaKindInterfaceVersion),
781 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
782 }
783 }
784}
785
786#[allow(dead_code)]
788#[cfg(feature = "all-types")]
789#[derive(Debug, Clone, Eq, PartialEq)]
790pub struct ScMetaV0 {
791 pub key: UnlimitedString,
792 pub val: UnlimitedString,
793}
794
795#[cfg(feature = "all-types")]
796impl XdrCodec for ScMetaV0 {
797 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
798 self.key.to_xdr_buffered(write_stream);
799 self.val.to_xdr_buffered(write_stream);
800 }
801
802 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
803 Ok(ScMetaV0 {
804 key: UnlimitedString::from_xdr_buffered(read_stream)?,
805 val: UnlimitedString::from_xdr_buffered(read_stream)?,
806 })
807 }
808}
809
810#[allow(dead_code)]
812#[cfg(feature = "all-types")]
813#[derive(Debug, Copy, Clone, Eq, PartialEq)]
814pub enum ScMetaKind {
815 ScMetaV0 = 0,
816}
817
818#[cfg(feature = "all-types")]
819impl XdrCodec for ScMetaKind {
820 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
821 let value = *self as i32;
822 value.to_xdr_buffered(write_stream);
823 }
824
825 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
826 let enum_value = i32::from_xdr_buffered(read_stream)?;
827 match enum_value {
828 0 => Ok(ScMetaKind::ScMetaV0),
829 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
830 }
831 }
832}
833
834#[allow(dead_code)]
836#[cfg(feature = "all-types")]
837#[derive(Debug, Copy, Clone, Eq, PartialEq)]
838pub enum ScSpecType {
839 ScSpecTypeVal = 0,
840 ScSpecTypeBool = 1,
841 ScSpecTypeVoid = 2,
842 ScSpecTypeError = 3,
843 ScSpecTypeU32 = 4,
844 ScSpecTypeI32 = 5,
845 ScSpecTypeU64 = 6,
846 ScSpecTypeI64 = 7,
847 ScSpecTypeTimepoint = 8,
848 ScSpecTypeDuration = 9,
849 ScSpecTypeU128 = 10,
850 ScSpecTypeI128 = 11,
851 ScSpecTypeU256 = 12,
852 ScSpecTypeI256 = 13,
853 ScSpecTypeBytes = 14,
854 ScSpecTypeString = 16,
855 ScSpecTypeSymbol = 17,
856 ScSpecTypeAddress = 19,
857 ScSpecTypeOption = 1000,
858 ScSpecTypeResult = 1001,
859 ScSpecTypeVec = 1002,
860 ScSpecTypeMap = 1004,
861 ScSpecTypeTuple = 1005,
862 ScSpecTypeBytesN = 1006,
863 ScSpecTypeUdt = 2000,
864}
865
866#[cfg(feature = "all-types")]
867impl XdrCodec for ScSpecType {
868 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
869 let value = *self as i32;
870 value.to_xdr_buffered(write_stream);
871 }
872
873 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
874 let enum_value = i32::from_xdr_buffered(read_stream)?;
875 match enum_value {
876 0 => Ok(ScSpecType::ScSpecTypeVal),
877 1 => Ok(ScSpecType::ScSpecTypeBool),
878 2 => Ok(ScSpecType::ScSpecTypeVoid),
879 3 => Ok(ScSpecType::ScSpecTypeError),
880 4 => Ok(ScSpecType::ScSpecTypeU32),
881 5 => Ok(ScSpecType::ScSpecTypeI32),
882 6 => Ok(ScSpecType::ScSpecTypeU64),
883 7 => Ok(ScSpecType::ScSpecTypeI64),
884 8 => Ok(ScSpecType::ScSpecTypeTimepoint),
885 9 => Ok(ScSpecType::ScSpecTypeDuration),
886 10 => Ok(ScSpecType::ScSpecTypeU128),
887 11 => Ok(ScSpecType::ScSpecTypeI128),
888 12 => Ok(ScSpecType::ScSpecTypeU256),
889 13 => Ok(ScSpecType::ScSpecTypeI256),
890 14 => Ok(ScSpecType::ScSpecTypeBytes),
891 16 => Ok(ScSpecType::ScSpecTypeString),
892 17 => Ok(ScSpecType::ScSpecTypeSymbol),
893 19 => Ok(ScSpecType::ScSpecTypeAddress),
894 1000 => Ok(ScSpecType::ScSpecTypeOption),
895 1001 => Ok(ScSpecType::ScSpecTypeResult),
896 1002 => Ok(ScSpecType::ScSpecTypeVec),
897 1004 => Ok(ScSpecType::ScSpecTypeMap),
898 1005 => Ok(ScSpecType::ScSpecTypeTuple),
899 1006 => Ok(ScSpecType::ScSpecTypeBytesN),
900 2000 => Ok(ScSpecType::ScSpecTypeUdt),
901 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
902 }
903 }
904}
905
906#[allow(dead_code)]
908#[cfg(feature = "all-types")]
909#[derive(Debug, Clone, Eq, PartialEq)]
910pub struct ScSpecTypeOption {
911 pub value_type: Box<ScSpecTypeDef>,
912}
913
914#[cfg(feature = "all-types")]
915impl XdrCodec for ScSpecTypeOption {
916 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
917 self.value_type.to_xdr_buffered(write_stream);
918 }
919
920 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
921 Ok(ScSpecTypeOption { value_type: Box::new(ScSpecTypeDef::from_xdr_buffered(read_stream)?) })
922 }
923}
924
925#[allow(dead_code)]
927#[cfg(feature = "all-types")]
928#[derive(Debug, Clone, Eq, PartialEq)]
929pub struct ScSpecTypeResult {
930 pub ok_type: Box<ScSpecTypeDef>,
931 pub error_type: ScSpecTypeDef,
932}
933
934#[cfg(feature = "all-types")]
935impl XdrCodec for ScSpecTypeResult {
936 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
937 self.ok_type.to_xdr_buffered(write_stream);
938 self.error_type.to_xdr_buffered(write_stream);
939 }
940
941 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
942 Ok(ScSpecTypeResult {
943 ok_type: Box::new(ScSpecTypeDef::from_xdr_buffered(read_stream)?),
944 error_type: ScSpecTypeDef::from_xdr_buffered(read_stream)?,
945 })
946 }
947}
948
949#[allow(dead_code)]
951#[cfg(feature = "all-types")]
952#[derive(Debug, Clone, Eq, PartialEq)]
953pub struct ScSpecTypeVec {
954 pub element_type: Box<ScSpecTypeDef>,
955}
956
957#[cfg(feature = "all-types")]
958impl XdrCodec for ScSpecTypeVec {
959 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
960 self.element_type.to_xdr_buffered(write_stream);
961 }
962
963 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
964 Ok(ScSpecTypeVec { element_type: Box::new(ScSpecTypeDef::from_xdr_buffered(read_stream)?) })
965 }
966}
967
968#[allow(dead_code)]
970#[cfg(feature = "all-types")]
971#[derive(Debug, Clone, Eq, PartialEq)]
972pub struct ScSpecTypeMap {
973 pub key_type: Box<ScSpecTypeDef>,
974 pub value_type: ScSpecTypeDef,
975}
976
977#[cfg(feature = "all-types")]
978impl XdrCodec for ScSpecTypeMap {
979 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
980 self.key_type.to_xdr_buffered(write_stream);
981 self.value_type.to_xdr_buffered(write_stream);
982 }
983
984 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
985 Ok(ScSpecTypeMap {
986 key_type: Box::new(ScSpecTypeDef::from_xdr_buffered(read_stream)?),
987 value_type: ScSpecTypeDef::from_xdr_buffered(read_stream)?,
988 })
989 }
990}
991
992#[allow(dead_code)]
994#[cfg(feature = "all-types")]
995#[derive(Debug, Clone, Eq, PartialEq)]
996pub struct ScSpecTypeTuple {
997 pub value_types: Box<LimitedVarArray<ScSpecTypeDef, 12>>,
998}
999
1000#[cfg(feature = "all-types")]
1001impl XdrCodec for ScSpecTypeTuple {
1002 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1003 self.value_types.to_xdr_buffered(write_stream);
1004 }
1005
1006 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1007 Ok(ScSpecTypeTuple {
1008 value_types: Box::new(LimitedVarArray::<ScSpecTypeDef, 12>::from_xdr_buffered(read_stream)?),
1009 })
1010 }
1011}
1012
1013#[allow(dead_code)]
1015#[cfg(feature = "all-types")]
1016#[derive(Debug, Clone, Eq, PartialEq)]
1017pub struct ScSpecTypeBytesN {
1018 pub n: Box<Uint32>,
1019}
1020
1021#[cfg(feature = "all-types")]
1022impl XdrCodec for ScSpecTypeBytesN {
1023 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1024 self.n.to_xdr_buffered(write_stream);
1025 }
1026
1027 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1028 Ok(ScSpecTypeBytesN { n: Box::new(Uint32::from_xdr_buffered(read_stream)?) })
1029 }
1030}
1031
1032#[allow(dead_code)]
1034#[cfg(feature = "all-types")]
1035#[derive(Debug, Clone, Eq, PartialEq)]
1036pub struct ScSpecTypeUdt {
1037 pub name: Box<LimitedString<60>>,
1038}
1039
1040#[cfg(feature = "all-types")]
1041impl XdrCodec for ScSpecTypeUdt {
1042 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1043 self.name.to_xdr_buffered(write_stream);
1044 }
1045
1046 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1047 Ok(ScSpecTypeUdt { name: Box::new(LimitedString::<60>::from_xdr_buffered(read_stream)?) })
1048 }
1049}
1050
1051#[allow(dead_code)]
1053#[cfg(feature = "all-types")]
1054#[derive(Debug, Clone, Eq, PartialEq)]
1055pub struct ScSpecUdtStructFieldV0 {
1056 pub doc: LimitedString<1024>,
1057 pub name: LimitedString<30>,
1058 pub type_: ScSpecTypeDef,
1059}
1060
1061#[cfg(feature = "all-types")]
1062impl XdrCodec for ScSpecUdtStructFieldV0 {
1063 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1064 self.doc.to_xdr_buffered(write_stream);
1065 self.name.to_xdr_buffered(write_stream);
1066 self.type_.to_xdr_buffered(write_stream);
1067 }
1068
1069 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1070 Ok(ScSpecUdtStructFieldV0 {
1071 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1072 name: LimitedString::<30>::from_xdr_buffered(read_stream)?,
1073 type_: ScSpecTypeDef::from_xdr_buffered(read_stream)?,
1074 })
1075 }
1076}
1077
1078#[allow(dead_code)]
1080#[cfg(feature = "all-types")]
1081#[derive(Debug, Clone, Eq, PartialEq)]
1082pub struct ScSpecUdtStructV0 {
1083 pub doc: LimitedString<1024>,
1084 pub lib: LimitedString<80>,
1085 pub name: LimitedString<60>,
1086 pub fields: LimitedVarArray<ScSpecUdtStructFieldV0, 40>,
1087}
1088
1089#[cfg(feature = "all-types")]
1090impl XdrCodec for ScSpecUdtStructV0 {
1091 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1092 self.doc.to_xdr_buffered(write_stream);
1093 self.lib.to_xdr_buffered(write_stream);
1094 self.name.to_xdr_buffered(write_stream);
1095 self.fields.to_xdr_buffered(write_stream);
1096 }
1097
1098 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1099 Ok(ScSpecUdtStructV0 {
1100 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1101 lib: LimitedString::<80>::from_xdr_buffered(read_stream)?,
1102 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1103 fields: LimitedVarArray::<ScSpecUdtStructFieldV0, 40>::from_xdr_buffered(read_stream)?,
1104 })
1105 }
1106}
1107
1108#[allow(dead_code)]
1110#[cfg(feature = "all-types")]
1111#[derive(Debug, Clone, Eq, PartialEq)]
1112pub struct ScSpecUdtUnionCaseVoidV0 {
1113 pub doc: LimitedString<1024>,
1114 pub name: LimitedString<60>,
1115}
1116
1117#[cfg(feature = "all-types")]
1118impl XdrCodec for ScSpecUdtUnionCaseVoidV0 {
1119 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1120 self.doc.to_xdr_buffered(write_stream);
1121 self.name.to_xdr_buffered(write_stream);
1122 }
1123
1124 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1125 Ok(ScSpecUdtUnionCaseVoidV0 {
1126 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1127 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1128 })
1129 }
1130}
1131
1132#[allow(dead_code)]
1134#[cfg(feature = "all-types")]
1135#[derive(Debug, Clone, Eq, PartialEq)]
1136pub struct ScSpecUdtUnionCaseTupleV0 {
1137 pub doc: LimitedString<1024>,
1138 pub name: LimitedString<60>,
1139 pub type_: LimitedVarArray<ScSpecTypeDef, 12>,
1140}
1141
1142#[cfg(feature = "all-types")]
1143impl XdrCodec for ScSpecUdtUnionCaseTupleV0 {
1144 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1145 self.doc.to_xdr_buffered(write_stream);
1146 self.name.to_xdr_buffered(write_stream);
1147 self.type_.to_xdr_buffered(write_stream);
1148 }
1149
1150 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1151 Ok(ScSpecUdtUnionCaseTupleV0 {
1152 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1153 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1154 type_: LimitedVarArray::<ScSpecTypeDef, 12>::from_xdr_buffered(read_stream)?,
1155 })
1156 }
1157}
1158
1159#[allow(dead_code)]
1161#[cfg(feature = "all-types")]
1162#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1163pub enum ScSpecUdtUnionCaseV0Kind {
1164 ScSpecUdtUnionCaseVoidV0 = 0,
1165 ScSpecUdtUnionCaseTupleV0 = 1,
1166}
1167
1168#[cfg(feature = "all-types")]
1169impl XdrCodec for ScSpecUdtUnionCaseV0Kind {
1170 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1171 let value = *self as i32;
1172 value.to_xdr_buffered(write_stream);
1173 }
1174
1175 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1176 let enum_value = i32::from_xdr_buffered(read_stream)?;
1177 match enum_value {
1178 0 => Ok(ScSpecUdtUnionCaseV0Kind::ScSpecUdtUnionCaseVoidV0),
1179 1 => Ok(ScSpecUdtUnionCaseV0Kind::ScSpecUdtUnionCaseTupleV0),
1180 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1181 }
1182 }
1183}
1184
1185#[allow(dead_code)]
1187#[cfg(feature = "all-types")]
1188#[derive(Debug, Clone, Eq, PartialEq)]
1189pub struct ScSpecUdtUnionV0 {
1190 pub doc: LimitedString<1024>,
1191 pub lib: LimitedString<80>,
1192 pub name: LimitedString<60>,
1193 pub cases: LimitedVarArray<ScSpecUdtUnionCaseV0, 50>,
1194}
1195
1196#[cfg(feature = "all-types")]
1197impl XdrCodec for ScSpecUdtUnionV0 {
1198 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1199 self.doc.to_xdr_buffered(write_stream);
1200 self.lib.to_xdr_buffered(write_stream);
1201 self.name.to_xdr_buffered(write_stream);
1202 self.cases.to_xdr_buffered(write_stream);
1203 }
1204
1205 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1206 Ok(ScSpecUdtUnionV0 {
1207 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1208 lib: LimitedString::<80>::from_xdr_buffered(read_stream)?,
1209 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1210 cases: LimitedVarArray::<ScSpecUdtUnionCaseV0, 50>::from_xdr_buffered(read_stream)?,
1211 })
1212 }
1213}
1214
1215#[allow(dead_code)]
1217#[cfg(feature = "all-types")]
1218#[derive(Debug, Clone, Eq, PartialEq)]
1219pub struct ScSpecUdtEnumCaseV0 {
1220 pub doc: LimitedString<1024>,
1221 pub name: LimitedString<60>,
1222 pub value: Uint32,
1223}
1224
1225#[cfg(feature = "all-types")]
1226impl XdrCodec for ScSpecUdtEnumCaseV0 {
1227 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1228 self.doc.to_xdr_buffered(write_stream);
1229 self.name.to_xdr_buffered(write_stream);
1230 self.value.to_xdr_buffered(write_stream);
1231 }
1232
1233 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1234 Ok(ScSpecUdtEnumCaseV0 {
1235 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1236 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1237 value: Uint32::from_xdr_buffered(read_stream)?,
1238 })
1239 }
1240}
1241
1242#[allow(dead_code)]
1244#[cfg(feature = "all-types")]
1245#[derive(Debug, Clone, Eq, PartialEq)]
1246pub struct ScSpecUdtEnumV0 {
1247 pub doc: LimitedString<1024>,
1248 pub lib: LimitedString<80>,
1249 pub name: LimitedString<60>,
1250 pub cases: LimitedVarArray<ScSpecUdtEnumCaseV0, 50>,
1251}
1252
1253#[cfg(feature = "all-types")]
1254impl XdrCodec for ScSpecUdtEnumV0 {
1255 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1256 self.doc.to_xdr_buffered(write_stream);
1257 self.lib.to_xdr_buffered(write_stream);
1258 self.name.to_xdr_buffered(write_stream);
1259 self.cases.to_xdr_buffered(write_stream);
1260 }
1261
1262 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1263 Ok(ScSpecUdtEnumV0 {
1264 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1265 lib: LimitedString::<80>::from_xdr_buffered(read_stream)?,
1266 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1267 cases: LimitedVarArray::<ScSpecUdtEnumCaseV0, 50>::from_xdr_buffered(read_stream)?,
1268 })
1269 }
1270}
1271
1272#[allow(dead_code)]
1274#[cfg(feature = "all-types")]
1275#[derive(Debug, Clone, Eq, PartialEq)]
1276pub struct ScSpecUdtErrorEnumCaseV0 {
1277 pub doc: LimitedString<1024>,
1278 pub name: LimitedString<60>,
1279 pub value: Uint32,
1280}
1281
1282#[cfg(feature = "all-types")]
1283impl XdrCodec for ScSpecUdtErrorEnumCaseV0 {
1284 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1285 self.doc.to_xdr_buffered(write_stream);
1286 self.name.to_xdr_buffered(write_stream);
1287 self.value.to_xdr_buffered(write_stream);
1288 }
1289
1290 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1291 Ok(ScSpecUdtErrorEnumCaseV0 {
1292 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1293 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1294 value: Uint32::from_xdr_buffered(read_stream)?,
1295 })
1296 }
1297}
1298
1299#[allow(dead_code)]
1301#[cfg(feature = "all-types")]
1302#[derive(Debug, Clone, Eq, PartialEq)]
1303pub struct ScSpecUdtErrorEnumV0 {
1304 pub doc: LimitedString<1024>,
1305 pub lib: LimitedString<80>,
1306 pub name: LimitedString<60>,
1307 pub cases: LimitedVarArray<ScSpecUdtErrorEnumCaseV0, 50>,
1308}
1309
1310#[cfg(feature = "all-types")]
1311impl XdrCodec for ScSpecUdtErrorEnumV0 {
1312 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1313 self.doc.to_xdr_buffered(write_stream);
1314 self.lib.to_xdr_buffered(write_stream);
1315 self.name.to_xdr_buffered(write_stream);
1316 self.cases.to_xdr_buffered(write_stream);
1317 }
1318
1319 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1320 Ok(ScSpecUdtErrorEnumV0 {
1321 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1322 lib: LimitedString::<80>::from_xdr_buffered(read_stream)?,
1323 name: LimitedString::<60>::from_xdr_buffered(read_stream)?,
1324 cases: LimitedVarArray::<ScSpecUdtErrorEnumCaseV0, 50>::from_xdr_buffered(read_stream)?,
1325 })
1326 }
1327}
1328
1329#[allow(dead_code)]
1331#[cfg(feature = "all-types")]
1332#[derive(Debug, Clone, Eq, PartialEq)]
1333pub struct ScSpecFunctionInputV0 {
1334 pub doc: LimitedString<1024>,
1335 pub name: LimitedString<30>,
1336 pub type_: ScSpecTypeDef,
1337}
1338
1339#[cfg(feature = "all-types")]
1340impl XdrCodec for ScSpecFunctionInputV0 {
1341 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1342 self.doc.to_xdr_buffered(write_stream);
1343 self.name.to_xdr_buffered(write_stream);
1344 self.type_.to_xdr_buffered(write_stream);
1345 }
1346
1347 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1348 Ok(ScSpecFunctionInputV0 {
1349 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1350 name: LimitedString::<30>::from_xdr_buffered(read_stream)?,
1351 type_: ScSpecTypeDef::from_xdr_buffered(read_stream)?,
1352 })
1353 }
1354}
1355
1356#[allow(dead_code)]
1358#[cfg(feature = "all-types")]
1359#[derive(Debug, Clone, Eq, PartialEq)]
1360pub struct ScSpecFunctionV0 {
1361 pub doc: LimitedString<1024>,
1362 pub name: ScSymbol,
1363 pub inputs: LimitedVarArray<ScSpecFunctionInputV0, 10>,
1364 pub outputs: LimitedVarArray<ScSpecTypeDef, 1>,
1365}
1366
1367#[cfg(feature = "all-types")]
1368impl XdrCodec for ScSpecFunctionV0 {
1369 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1370 self.doc.to_xdr_buffered(write_stream);
1371 self.name.to_xdr_buffered(write_stream);
1372 self.inputs.to_xdr_buffered(write_stream);
1373 self.outputs.to_xdr_buffered(write_stream);
1374 }
1375
1376 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1377 Ok(ScSpecFunctionV0 {
1378 doc: LimitedString::<1024>::from_xdr_buffered(read_stream)?,
1379 name: ScSymbol::from_xdr_buffered(read_stream)?,
1380 inputs: LimitedVarArray::<ScSpecFunctionInputV0, 10>::from_xdr_buffered(read_stream)?,
1381 outputs: LimitedVarArray::<ScSpecTypeDef, 1>::from_xdr_buffered(read_stream)?,
1382 })
1383 }
1384}
1385
1386#[allow(dead_code)]
1388#[cfg(feature = "all-types")]
1389#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1390pub enum ScSpecEntryKind {
1391 ScSpecEntryFunctionV0 = 0,
1392 ScSpecEntryUdtStructV0 = 1,
1393 ScSpecEntryUdtUnionV0 = 2,
1394 ScSpecEntryUdtEnumV0 = 3,
1395 ScSpecEntryUdtErrorEnumV0 = 4,
1396}
1397
1398#[cfg(feature = "all-types")]
1399impl XdrCodec for ScSpecEntryKind {
1400 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1401 let value = *self as i32;
1402 value.to_xdr_buffered(write_stream);
1403 }
1404
1405 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1406 let enum_value = i32::from_xdr_buffered(read_stream)?;
1407 match enum_value {
1408 0 => Ok(ScSpecEntryKind::ScSpecEntryFunctionV0),
1409 1 => Ok(ScSpecEntryKind::ScSpecEntryUdtStructV0),
1410 2 => Ok(ScSpecEntryKind::ScSpecEntryUdtUnionV0),
1411 3 => Ok(ScSpecEntryKind::ScSpecEntryUdtEnumV0),
1412 4 => Ok(ScSpecEntryKind::ScSpecEntryUdtErrorEnumV0),
1413 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1414 }
1415 }
1416}
1417
1418#[allow(dead_code)]
1420#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1421pub enum ScValType {
1422 ScvBool = 0,
1423 ScvVoid = 1,
1424 ScvError = 2,
1425 ScvU32 = 3,
1426 ScvI32 = 4,
1427 ScvU64 = 5,
1428 ScvI64 = 6,
1429 ScvTimepoint = 7,
1430 ScvDuration = 8,
1431 ScvU128 = 9,
1432 ScvI128 = 10,
1433 ScvU256 = 11,
1434 ScvI256 = 12,
1435 ScvBytes = 13,
1436 ScvString = 14,
1437 ScvSymbol = 15,
1438 ScvVec = 16,
1439 ScvMap = 17,
1440 ScvAddress = 18,
1441 ScvContractInstance = 19,
1442 ScvLedgerKeyContractInstance = 20,
1443 ScvLedgerKeyNonce = 21,
1444}
1445
1446impl XdrCodec for ScValType {
1447 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1448 let value = *self as i32;
1449 value.to_xdr_buffered(write_stream);
1450 }
1451
1452 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1453 let enum_value = i32::from_xdr_buffered(read_stream)?;
1454 match enum_value {
1455 0 => Ok(ScValType::ScvBool),
1456 1 => Ok(ScValType::ScvVoid),
1457 2 => Ok(ScValType::ScvError),
1458 3 => Ok(ScValType::ScvU32),
1459 4 => Ok(ScValType::ScvI32),
1460 5 => Ok(ScValType::ScvU64),
1461 6 => Ok(ScValType::ScvI64),
1462 7 => Ok(ScValType::ScvTimepoint),
1463 8 => Ok(ScValType::ScvDuration),
1464 9 => Ok(ScValType::ScvU128),
1465 10 => Ok(ScValType::ScvI128),
1466 11 => Ok(ScValType::ScvU256),
1467 12 => Ok(ScValType::ScvI256),
1468 13 => Ok(ScValType::ScvBytes),
1469 14 => Ok(ScValType::ScvString),
1470 15 => Ok(ScValType::ScvSymbol),
1471 16 => Ok(ScValType::ScvVec),
1472 17 => Ok(ScValType::ScvMap),
1473 18 => Ok(ScValType::ScvAddress),
1474 19 => Ok(ScValType::ScvContractInstance),
1475 20 => Ok(ScValType::ScvLedgerKeyContractInstance),
1476 21 => Ok(ScValType::ScvLedgerKeyNonce),
1477 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1478 }
1479 }
1480}
1481
1482#[allow(dead_code)]
1484#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1485pub enum ScErrorType {
1486 SceContract = 0,
1487 SceWasmVm = 1,
1488 SceContext = 2,
1489 SceStorage = 3,
1490 SceObject = 4,
1491 SceCrypto = 5,
1492 SceEvents = 6,
1493 SceBudget = 7,
1494 SceValue = 8,
1495 SceAuth = 9,
1496}
1497
1498impl XdrCodec for ScErrorType {
1499 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1500 let value = *self as i32;
1501 value.to_xdr_buffered(write_stream);
1502 }
1503
1504 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1505 let enum_value = i32::from_xdr_buffered(read_stream)?;
1506 match enum_value {
1507 0 => Ok(ScErrorType::SceContract),
1508 1 => Ok(ScErrorType::SceWasmVm),
1509 2 => Ok(ScErrorType::SceContext),
1510 3 => Ok(ScErrorType::SceStorage),
1511 4 => Ok(ScErrorType::SceObject),
1512 5 => Ok(ScErrorType::SceCrypto),
1513 6 => Ok(ScErrorType::SceEvents),
1514 7 => Ok(ScErrorType::SceBudget),
1515 8 => Ok(ScErrorType::SceValue),
1516 9 => Ok(ScErrorType::SceAuth),
1517 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1518 }
1519 }
1520}
1521
1522#[allow(dead_code)]
1524#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1525pub enum ScErrorCode {
1526 ScecArithDomain = 0,
1527 ScecIndexBounds = 1,
1528 ScecInvalidInput = 2,
1529 ScecMissingValue = 3,
1530 ScecExistingValue = 4,
1531 ScecExceededLimit = 5,
1532 ScecInvalidAction = 6,
1533 ScecInternalError = 7,
1534 ScecUnexpectedType = 8,
1535 ScecUnexpectedSize = 9,
1536}
1537
1538impl XdrCodec for ScErrorCode {
1539 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1540 let value = *self as i32;
1541 value.to_xdr_buffered(write_stream);
1542 }
1543
1544 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1545 let enum_value = i32::from_xdr_buffered(read_stream)?;
1546 match enum_value {
1547 0 => Ok(ScErrorCode::ScecArithDomain),
1548 1 => Ok(ScErrorCode::ScecIndexBounds),
1549 2 => Ok(ScErrorCode::ScecInvalidInput),
1550 3 => Ok(ScErrorCode::ScecMissingValue),
1551 4 => Ok(ScErrorCode::ScecExistingValue),
1552 5 => Ok(ScErrorCode::ScecExceededLimit),
1553 6 => Ok(ScErrorCode::ScecInvalidAction),
1554 7 => Ok(ScErrorCode::ScecInternalError),
1555 8 => Ok(ScErrorCode::ScecUnexpectedType),
1556 9 => Ok(ScErrorCode::ScecUnexpectedSize),
1557 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1558 }
1559 }
1560}
1561
1562#[allow(dead_code)]
1564#[derive(Debug, Clone, Eq, PartialEq)]
1565pub struct UInt128Parts {
1566 pub hi: Uint64,
1567 pub lo: Uint64,
1568}
1569
1570impl XdrCodec for UInt128Parts {
1571 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1572 self.hi.to_xdr_buffered(write_stream);
1573 self.lo.to_xdr_buffered(write_stream);
1574 }
1575
1576 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1577 Ok(UInt128Parts { hi: Uint64::from_xdr_buffered(read_stream)?, lo: Uint64::from_xdr_buffered(read_stream)? })
1578 }
1579}
1580
1581#[allow(dead_code)]
1583#[derive(Debug, Clone, Eq, PartialEq)]
1584pub struct Int128Parts {
1585 pub hi: Int64,
1586 pub lo: Uint64,
1587}
1588
1589impl XdrCodec for Int128Parts {
1590 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1591 self.hi.to_xdr_buffered(write_stream);
1592 self.lo.to_xdr_buffered(write_stream);
1593 }
1594
1595 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1596 Ok(Int128Parts { hi: Int64::from_xdr_buffered(read_stream)?, lo: Uint64::from_xdr_buffered(read_stream)? })
1597 }
1598}
1599
1600#[allow(dead_code)]
1602#[derive(Debug, Clone, Eq, PartialEq)]
1603pub struct UInt256Parts {
1604 pub hi_hi: Uint64,
1605 pub hi_lo: Uint64,
1606 pub lo_hi: Uint64,
1607 pub lo_lo: Uint64,
1608}
1609
1610impl XdrCodec for UInt256Parts {
1611 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1612 self.hi_hi.to_xdr_buffered(write_stream);
1613 self.hi_lo.to_xdr_buffered(write_stream);
1614 self.lo_hi.to_xdr_buffered(write_stream);
1615 self.lo_lo.to_xdr_buffered(write_stream);
1616 }
1617
1618 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1619 Ok(UInt256Parts {
1620 hi_hi: Uint64::from_xdr_buffered(read_stream)?,
1621 hi_lo: Uint64::from_xdr_buffered(read_stream)?,
1622 lo_hi: Uint64::from_xdr_buffered(read_stream)?,
1623 lo_lo: Uint64::from_xdr_buffered(read_stream)?,
1624 })
1625 }
1626}
1627
1628#[allow(dead_code)]
1630#[derive(Debug, Clone, Eq, PartialEq)]
1631pub struct Int256Parts {
1632 pub hi_hi: Int64,
1633 pub hi_lo: Uint64,
1634 pub lo_hi: Uint64,
1635 pub lo_lo: Uint64,
1636}
1637
1638impl XdrCodec for Int256Parts {
1639 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1640 self.hi_hi.to_xdr_buffered(write_stream);
1641 self.hi_lo.to_xdr_buffered(write_stream);
1642 self.lo_hi.to_xdr_buffered(write_stream);
1643 self.lo_lo.to_xdr_buffered(write_stream);
1644 }
1645
1646 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1647 Ok(Int256Parts {
1648 hi_hi: Int64::from_xdr_buffered(read_stream)?,
1649 hi_lo: Uint64::from_xdr_buffered(read_stream)?,
1650 lo_hi: Uint64::from_xdr_buffered(read_stream)?,
1651 lo_lo: Uint64::from_xdr_buffered(read_stream)?,
1652 })
1653 }
1654}
1655
1656#[allow(dead_code)]
1658#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1659pub enum ContractExecutableType {
1660 ContractExecutableWasm = 0,
1661 ContractExecutableStellarAsset = 1,
1662}
1663
1664impl XdrCodec for ContractExecutableType {
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]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1671 let enum_value = i32::from_xdr_buffered(read_stream)?;
1672 match enum_value {
1673 0 => Ok(ContractExecutableType::ContractExecutableWasm),
1674 1 => Ok(ContractExecutableType::ContractExecutableStellarAsset),
1675 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1676 }
1677 }
1678}
1679
1680#[allow(dead_code)]
1682#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1683pub enum ScAddressType {
1684 ScAddressTypeAccount = 0,
1685 ScAddressTypeContract = 1,
1686}
1687
1688impl XdrCodec for ScAddressType {
1689 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1690 let value = *self as i32;
1691 value.to_xdr_buffered(write_stream);
1692 }
1693
1694 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1695 let enum_value = i32::from_xdr_buffered(read_stream)?;
1696 match enum_value {
1697 0 => Ok(ScAddressType::ScAddressTypeAccount),
1698 1 => Ok(ScAddressType::ScAddressTypeContract),
1699 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1700 }
1701 }
1702}
1703
1704#[allow(dead_code)]
1706pub type ScVec = UnlimitedVarArray<ScVal>;
1707
1708#[allow(dead_code)]
1710pub type ScMap = UnlimitedVarArray<ScMapEntry>;
1711
1712#[allow(dead_code)]
1714pub type ScBytes = UnlimitedVarOpaque;
1715
1716#[allow(dead_code)]
1718pub type ScString = UnlimitedString;
1719
1720#[allow(dead_code)]
1722pub type ScSymbol = LimitedString<32>;
1723
1724#[allow(dead_code)]
1726#[derive(Debug, Clone, Eq, PartialEq)]
1727pub struct ScNonceKey {
1728 pub nonce: Int64,
1729}
1730
1731impl XdrCodec for ScNonceKey {
1732 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1733 self.nonce.to_xdr_buffered(write_stream);
1734 }
1735
1736 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1737 Ok(ScNonceKey { nonce: Int64::from_xdr_buffered(read_stream)? })
1738 }
1739}
1740
1741#[allow(dead_code)]
1743#[derive(Debug, Clone, Eq, PartialEq)]
1744pub struct ScContractInstance {
1745 pub executable: ContractExecutable,
1746 pub storage: Option<ScMap>,
1747}
1748
1749impl XdrCodec for ScContractInstance {
1750 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1751 self.executable.to_xdr_buffered(write_stream);
1752 self.storage.to_xdr_buffered(write_stream);
1753 }
1754
1755 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1756 Ok(ScContractInstance {
1757 executable: ContractExecutable::from_xdr_buffered(read_stream)?,
1758 storage: Option::<ScMap>::from_xdr_buffered(read_stream)?,
1759 })
1760 }
1761}
1762
1763#[allow(dead_code)]
1765#[derive(Debug, Clone, Eq, PartialEq)]
1766pub struct ScMapEntry {
1767 pub key: ScVal,
1768 pub val: ScVal,
1769}
1770
1771impl XdrCodec for ScMapEntry {
1772 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1773 self.key.to_xdr_buffered(write_stream);
1774 self.val.to_xdr_buffered(write_stream);
1775 }
1776
1777 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1778 Ok(ScMapEntry { key: ScVal::from_xdr_buffered(read_stream)?, val: ScVal::from_xdr_buffered(read_stream)? })
1779 }
1780}
1781
1782#[allow(dead_code)]
1784#[cfg(feature = "all-types")]
1785#[derive(Debug, Clone, Eq, PartialEq)]
1786pub struct StoredDebugTransactionSet {
1787 pub tx_set: StoredTransactionSet,
1788 pub ledger_seq: Uint32,
1789 pub scp_value: StellarValue,
1790}
1791
1792#[cfg(feature = "all-types")]
1793impl XdrCodec for StoredDebugTransactionSet {
1794 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1795 self.tx_set.to_xdr_buffered(write_stream);
1796 self.ledger_seq.to_xdr_buffered(write_stream);
1797 self.scp_value.to_xdr_buffered(write_stream);
1798 }
1799
1800 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1801 Ok(StoredDebugTransactionSet {
1802 tx_set: StoredTransactionSet::from_xdr_buffered(read_stream)?,
1803 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1804 scp_value: StellarValue::from_xdr_buffered(read_stream)?,
1805 })
1806 }
1807}
1808
1809#[allow(dead_code)]
1811#[cfg(feature = "all-types")]
1812#[derive(Debug, Clone, Eq, PartialEq)]
1813pub struct PersistedScpStateV0 {
1814 pub scp_envelopes: UnlimitedVarArray<ScpEnvelope>,
1815 pub quorum_sets: UnlimitedVarArray<ScpQuorumSet>,
1816 pub tx_sets: UnlimitedVarArray<StoredTransactionSet>,
1817}
1818
1819#[cfg(feature = "all-types")]
1820impl XdrCodec for PersistedScpStateV0 {
1821 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1822 self.scp_envelopes.to_xdr_buffered(write_stream);
1823 self.quorum_sets.to_xdr_buffered(write_stream);
1824 self.tx_sets.to_xdr_buffered(write_stream);
1825 }
1826
1827 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1828 Ok(PersistedScpStateV0 {
1829 scp_envelopes: UnlimitedVarArray::<ScpEnvelope>::from_xdr_buffered(read_stream)?,
1830 quorum_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
1831 tx_sets: UnlimitedVarArray::<StoredTransactionSet>::from_xdr_buffered(read_stream)?,
1832 })
1833 }
1834}
1835
1836#[allow(dead_code)]
1838#[cfg(feature = "all-types")]
1839#[derive(Debug, Clone, Eq, PartialEq)]
1840pub struct PersistedScpStateV1 {
1841 pub scp_envelopes: UnlimitedVarArray<ScpEnvelope>,
1842 pub quorum_sets: UnlimitedVarArray<ScpQuorumSet>,
1843}
1844
1845#[cfg(feature = "all-types")]
1846impl XdrCodec for PersistedScpStateV1 {
1847 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1848 self.scp_envelopes.to_xdr_buffered(write_stream);
1849 self.quorum_sets.to_xdr_buffered(write_stream);
1850 }
1851
1852 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1853 Ok(PersistedScpStateV1 {
1854 scp_envelopes: UnlimitedVarArray::<ScpEnvelope>::from_xdr_buffered(read_stream)?,
1855 quorum_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
1856 })
1857 }
1858}
1859
1860#[allow(dead_code)]
1862pub type Thresholds = [u8; 4];
1863
1864#[allow(dead_code)]
1866pub type String32 = LimitedString<32>;
1867
1868#[allow(dead_code)]
1870pub type String64 = LimitedString<64>;
1871
1872#[allow(dead_code)]
1874pub type SequenceNumber = Int64;
1875
1876#[allow(dead_code)]
1878pub type DataValue = LimitedVarOpaque<64>;
1879
1880#[allow(dead_code)]
1882pub type PoolId = Hash;
1883
1884#[allow(dead_code)]
1886pub type AssetCode4 = [u8; 4];
1887
1888#[allow(dead_code)]
1890pub type AssetCode12 = [u8; 12];
1891
1892#[allow(dead_code)]
1894#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1895pub enum AssetType {
1896 AssetTypeNative = 0,
1897 AssetTypeCreditAlphanum4 = 1,
1898 AssetTypeCreditAlphanum12 = 2,
1899 AssetTypePoolShare = 3,
1900}
1901
1902impl XdrCodec for AssetType {
1903 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1904 let value = *self as i32;
1905 value.to_xdr_buffered(write_stream);
1906 }
1907
1908 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1909 let enum_value = i32::from_xdr_buffered(read_stream)?;
1910 match enum_value {
1911 0 => Ok(AssetType::AssetTypeNative),
1912 1 => Ok(AssetType::AssetTypeCreditAlphanum4),
1913 2 => Ok(AssetType::AssetTypeCreditAlphanum12),
1914 3 => Ok(AssetType::AssetTypePoolShare),
1915 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
1916 }
1917 }
1918}
1919
1920#[allow(dead_code)]
1922#[derive(Debug, Clone, Eq, PartialEq)]
1923pub struct AlphaNum4 {
1924 pub asset_code: AssetCode4,
1925 pub issuer: AccountId,
1926}
1927
1928impl XdrCodec for AlphaNum4 {
1929 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1930 self.asset_code.to_xdr_buffered(write_stream);
1931 self.issuer.to_xdr_buffered(write_stream);
1932 }
1933
1934 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1935 Ok(AlphaNum4 {
1936 asset_code: AssetCode4::from_xdr_buffered(read_stream)?,
1937 issuer: AccountId::from_xdr_buffered(read_stream)?,
1938 })
1939 }
1940}
1941
1942#[allow(dead_code)]
1944#[derive(Debug, Clone, Eq, PartialEq)]
1945pub struct AlphaNum12 {
1946 pub asset_code: AssetCode12,
1947 pub issuer: AccountId,
1948}
1949
1950impl XdrCodec for AlphaNum12 {
1951 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1952 self.asset_code.to_xdr_buffered(write_stream);
1953 self.issuer.to_xdr_buffered(write_stream);
1954 }
1955
1956 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1957 Ok(AlphaNum12 {
1958 asset_code: AssetCode12::from_xdr_buffered(read_stream)?,
1959 issuer: AccountId::from_xdr_buffered(read_stream)?,
1960 })
1961 }
1962}
1963
1964#[allow(dead_code)]
1966#[derive(Debug, Clone, Eq, PartialEq)]
1967pub struct Price {
1968 pub n: Int32,
1969 pub d: Int32,
1970}
1971
1972impl XdrCodec for Price {
1973 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1974 self.n.to_xdr_buffered(write_stream);
1975 self.d.to_xdr_buffered(write_stream);
1976 }
1977
1978 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1979 Ok(Price { n: Int32::from_xdr_buffered(read_stream)?, d: Int32::from_xdr_buffered(read_stream)? })
1980 }
1981}
1982
1983#[allow(dead_code)]
1985#[derive(Debug, Clone, Eq, PartialEq)]
1986pub struct Liabilities {
1987 pub buying: Int64,
1988 pub selling: Int64,
1989}
1990
1991impl XdrCodec for Liabilities {
1992 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1993 self.buying.to_xdr_buffered(write_stream);
1994 self.selling.to_xdr_buffered(write_stream);
1995 }
1996
1997 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
1998 Ok(Liabilities {
1999 buying: Int64::from_xdr_buffered(read_stream)?,
2000 selling: Int64::from_xdr_buffered(read_stream)?,
2001 })
2002 }
2003}
2004
2005#[allow(dead_code)]
2007#[cfg(feature = "all-types")]
2008#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2009pub enum ThresholdIndices {
2010 ThresholdMasterWeight = 0,
2011 ThresholdLow = 1,
2012 ThresholdMed = 2,
2013 ThresholdHigh = 3,
2014}
2015
2016#[cfg(feature = "all-types")]
2017impl XdrCodec for ThresholdIndices {
2018 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2019 let value = *self as i32;
2020 value.to_xdr_buffered(write_stream);
2021 }
2022
2023 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2024 let enum_value = i32::from_xdr_buffered(read_stream)?;
2025 match enum_value {
2026 0 => Ok(ThresholdIndices::ThresholdMasterWeight),
2027 1 => Ok(ThresholdIndices::ThresholdLow),
2028 2 => Ok(ThresholdIndices::ThresholdMed),
2029 3 => Ok(ThresholdIndices::ThresholdHigh),
2030 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2031 }
2032 }
2033}
2034
2035#[allow(dead_code)]
2037#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2038pub enum LedgerEntryType {
2039 Account = 0,
2040 Trustline = 1,
2041 Offer = 2,
2042 Data = 3,
2043 ClaimableBalance = 4,
2044 LiquidityPool = 5,
2045 ContractData = 6,
2046 ContractCode = 7,
2047 ConfigSetting = 8,
2048 Ttl = 9,
2049}
2050
2051impl XdrCodec for LedgerEntryType {
2052 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2053 let value = *self as i32;
2054 value.to_xdr_buffered(write_stream);
2055 }
2056
2057 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2058 let enum_value = i32::from_xdr_buffered(read_stream)?;
2059 match enum_value {
2060 0 => Ok(LedgerEntryType::Account),
2061 1 => Ok(LedgerEntryType::Trustline),
2062 2 => Ok(LedgerEntryType::Offer),
2063 3 => Ok(LedgerEntryType::Data),
2064 4 => Ok(LedgerEntryType::ClaimableBalance),
2065 5 => Ok(LedgerEntryType::LiquidityPool),
2066 6 => Ok(LedgerEntryType::ContractData),
2067 7 => Ok(LedgerEntryType::ContractCode),
2068 8 => Ok(LedgerEntryType::ConfigSetting),
2069 9 => Ok(LedgerEntryType::Ttl),
2070 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2071 }
2072 }
2073}
2074
2075#[allow(dead_code)]
2077#[derive(Debug, Clone, Eq, PartialEq)]
2078pub struct Signer {
2079 pub key: SignerKey,
2080 pub weight: Uint32,
2081}
2082
2083impl XdrCodec for Signer {
2084 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2085 self.key.to_xdr_buffered(write_stream);
2086 self.weight.to_xdr_buffered(write_stream);
2087 }
2088
2089 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2090 Ok(Signer { key: SignerKey::from_xdr_buffered(read_stream)?, weight: Uint32::from_xdr_buffered(read_stream)? })
2091 }
2092}
2093
2094#[allow(dead_code)]
2096#[cfg(feature = "all-types")]
2097#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2098pub enum AccountFlags {
2099 AuthRequiredFlag = 1,
2100 AuthRevocableFlag = 2,
2101 AuthImmutableFlag = 4,
2102 AuthClawbackEnabledFlag = 8,
2103}
2104
2105#[cfg(feature = "all-types")]
2106impl XdrCodec for AccountFlags {
2107 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2108 let value = *self as i32;
2109 value.to_xdr_buffered(write_stream);
2110 }
2111
2112 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2113 let enum_value = i32::from_xdr_buffered(read_stream)?;
2114 match enum_value {
2115 1 => Ok(AccountFlags::AuthRequiredFlag),
2116 2 => Ok(AccountFlags::AuthRevocableFlag),
2117 4 => Ok(AccountFlags::AuthImmutableFlag),
2118 8 => Ok(AccountFlags::AuthClawbackEnabledFlag),
2119 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2120 }
2121 }
2122}
2123
2124#[allow(dead_code)]
2126pub type SponsorshipDescriptor = Option<AccountId>;
2127
2128#[allow(dead_code)]
2130#[derive(Debug, Clone, Eq, PartialEq)]
2131pub struct AccountEntryExtensionV3 {
2132 pub ext: ExtensionPoint,
2133 pub seq_ledger: Uint32,
2134 pub seq_time: TimePoint,
2135}
2136
2137impl XdrCodec for AccountEntryExtensionV3 {
2138 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2139 self.ext.to_xdr_buffered(write_stream);
2140 self.seq_ledger.to_xdr_buffered(write_stream);
2141 self.seq_time.to_xdr_buffered(write_stream);
2142 }
2143
2144 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2145 Ok(AccountEntryExtensionV3 {
2146 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
2147 seq_ledger: Uint32::from_xdr_buffered(read_stream)?,
2148 seq_time: TimePoint::from_xdr_buffered(read_stream)?,
2149 })
2150 }
2151}
2152
2153#[allow(dead_code)]
2155#[derive(Debug, Clone, Eq, PartialEq)]
2156pub struct AccountEntryExtensionV2 {
2157 pub num_sponsored: Uint32,
2158 pub num_sponsoring: Uint32,
2159 pub signer_sponsoring_i_ds: LimitedVarArray<SponsorshipDescriptor, MAX_SIGNERS>,
2160 pub ext: AccountEntryExtensionV2Ext,
2161}
2162
2163impl XdrCodec for AccountEntryExtensionV2 {
2164 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2165 self.num_sponsored.to_xdr_buffered(write_stream);
2166 self.num_sponsoring.to_xdr_buffered(write_stream);
2167 self.signer_sponsoring_i_ds.to_xdr_buffered(write_stream);
2168 self.ext.to_xdr_buffered(write_stream);
2169 }
2170
2171 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2172 Ok(AccountEntryExtensionV2 {
2173 num_sponsored: Uint32::from_xdr_buffered(read_stream)?,
2174 num_sponsoring: Uint32::from_xdr_buffered(read_stream)?,
2175 signer_sponsoring_i_ds: LimitedVarArray::<SponsorshipDescriptor, MAX_SIGNERS>::from_xdr_buffered(
2176 read_stream,
2177 )?,
2178 ext: AccountEntryExtensionV2Ext::from_xdr_buffered(read_stream)?,
2179 })
2180 }
2181}
2182
2183#[allow(dead_code)]
2185#[derive(Debug, Clone, Eq, PartialEq)]
2186pub struct AccountEntryExtensionV1 {
2187 pub liabilities: Liabilities,
2188 pub ext: AccountEntryExtensionV1Ext,
2189}
2190
2191impl XdrCodec for AccountEntryExtensionV1 {
2192 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2193 self.liabilities.to_xdr_buffered(write_stream);
2194 self.ext.to_xdr_buffered(write_stream);
2195 }
2196
2197 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2198 Ok(AccountEntryExtensionV1 {
2199 liabilities: Liabilities::from_xdr_buffered(read_stream)?,
2200 ext: AccountEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
2201 })
2202 }
2203}
2204
2205#[allow(dead_code)]
2207#[derive(Debug, Clone, Eq, PartialEq)]
2208pub struct AccountEntry {
2209 pub account_id: AccountId,
2210 pub balance: Int64,
2211 pub seq_num: SequenceNumber,
2212 pub num_sub_entries: Uint32,
2213 pub inflation_dest: Option<AccountId>,
2214 pub flags: Uint32,
2215 pub home_domain: String32,
2216 pub thresholds: Thresholds,
2217 pub signers: LimitedVarArray<Signer, MAX_SIGNERS>,
2218 pub ext: AccountEntryExt,
2219}
2220
2221impl XdrCodec for AccountEntry {
2222 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2223 self.account_id.to_xdr_buffered(write_stream);
2224 self.balance.to_xdr_buffered(write_stream);
2225 self.seq_num.to_xdr_buffered(write_stream);
2226 self.num_sub_entries.to_xdr_buffered(write_stream);
2227 self.inflation_dest.to_xdr_buffered(write_stream);
2228 self.flags.to_xdr_buffered(write_stream);
2229 self.home_domain.to_xdr_buffered(write_stream);
2230 self.thresholds.to_xdr_buffered(write_stream);
2231 self.signers.to_xdr_buffered(write_stream);
2232 self.ext.to_xdr_buffered(write_stream);
2233 }
2234
2235 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2236 Ok(AccountEntry {
2237 account_id: AccountId::from_xdr_buffered(read_stream)?,
2238 balance: Int64::from_xdr_buffered(read_stream)?,
2239 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
2240 num_sub_entries: Uint32::from_xdr_buffered(read_stream)?,
2241 inflation_dest: Option::<AccountId>::from_xdr_buffered(read_stream)?,
2242 flags: Uint32::from_xdr_buffered(read_stream)?,
2243 home_domain: String32::from_xdr_buffered(read_stream)?,
2244 thresholds: Thresholds::from_xdr_buffered(read_stream)?,
2245 signers: LimitedVarArray::<Signer, MAX_SIGNERS>::from_xdr_buffered(read_stream)?,
2246 ext: AccountEntryExt::from_xdr_buffered(read_stream)?,
2247 })
2248 }
2249}
2250
2251#[allow(dead_code)]
2253#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2254pub enum TrustLineFlags {
2255 AuthorizedFlag = 1,
2256 AuthorizedToMaintainLiabilitiesFlag = 2,
2257 TrustlineClawbackEnabledFlag = 4,
2258}
2259
2260impl XdrCodec for TrustLineFlags {
2261 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2262 let value = *self as i32;
2263 value.to_xdr_buffered(write_stream);
2264 }
2265
2266 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2267 let enum_value = i32::from_xdr_buffered(read_stream)?;
2268 match enum_value {
2269 1 => Ok(TrustLineFlags::AuthorizedFlag),
2270 2 => Ok(TrustLineFlags::AuthorizedToMaintainLiabilitiesFlag),
2271 4 => Ok(TrustLineFlags::TrustlineClawbackEnabledFlag),
2272 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2273 }
2274 }
2275}
2276
2277#[allow(dead_code)]
2279#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2280pub enum LiquidityPoolType {
2281 LiquidityPoolConstantProduct = 0,
2282}
2283
2284impl XdrCodec for LiquidityPoolType {
2285 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2286 let value = *self as i32;
2287 value.to_xdr_buffered(write_stream);
2288 }
2289
2290 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2291 let enum_value = i32::from_xdr_buffered(read_stream)?;
2292 match enum_value {
2293 0 => Ok(LiquidityPoolType::LiquidityPoolConstantProduct),
2294 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2295 }
2296 }
2297}
2298
2299#[allow(dead_code)]
2301#[derive(Debug, Clone, Eq, PartialEq)]
2302pub struct TrustLineEntryExtensionV2 {
2303 pub liquidity_pool_use_count: Int32,
2304 pub ext: TrustLineEntryExtensionV2Ext,
2305}
2306
2307impl XdrCodec for TrustLineEntryExtensionV2 {
2308 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2309 self.liquidity_pool_use_count.to_xdr_buffered(write_stream);
2310 self.ext.to_xdr_buffered(write_stream);
2311 }
2312
2313 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2314 Ok(TrustLineEntryExtensionV2 {
2315 liquidity_pool_use_count: Int32::from_xdr_buffered(read_stream)?,
2316 ext: TrustLineEntryExtensionV2Ext::from_xdr_buffered(read_stream)?,
2317 })
2318 }
2319}
2320
2321#[allow(dead_code)]
2323#[derive(Debug, Clone, Eq, PartialEq)]
2324pub struct TrustLineEntryV1 {
2325 pub liabilities: Liabilities,
2326 pub ext: TrustLineEntryV1Ext,
2327}
2328
2329impl XdrCodec for TrustLineEntryV1 {
2330 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2331 self.liabilities.to_xdr_buffered(write_stream);
2332 self.ext.to_xdr_buffered(write_stream);
2333 }
2334
2335 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2336 Ok(TrustLineEntryV1 {
2337 liabilities: Liabilities::from_xdr_buffered(read_stream)?,
2338 ext: TrustLineEntryV1Ext::from_xdr_buffered(read_stream)?,
2339 })
2340 }
2341}
2342
2343#[allow(dead_code)]
2345#[derive(Debug, Clone, Eq, PartialEq)]
2346pub struct TrustLineEntry {
2347 pub account_id: AccountId,
2348 pub asset: TrustLineAsset,
2349 pub balance: Int64,
2350 pub limit: Int64,
2351 pub flags: Uint32,
2352 pub ext: TrustLineEntryExt,
2353}
2354
2355impl XdrCodec for TrustLineEntry {
2356 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2357 self.account_id.to_xdr_buffered(write_stream);
2358 self.asset.to_xdr_buffered(write_stream);
2359 self.balance.to_xdr_buffered(write_stream);
2360 self.limit.to_xdr_buffered(write_stream);
2361 self.flags.to_xdr_buffered(write_stream);
2362 self.ext.to_xdr_buffered(write_stream);
2363 }
2364
2365 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2366 Ok(TrustLineEntry {
2367 account_id: AccountId::from_xdr_buffered(read_stream)?,
2368 asset: TrustLineAsset::from_xdr_buffered(read_stream)?,
2369 balance: Int64::from_xdr_buffered(read_stream)?,
2370 limit: Int64::from_xdr_buffered(read_stream)?,
2371 flags: Uint32::from_xdr_buffered(read_stream)?,
2372 ext: TrustLineEntryExt::from_xdr_buffered(read_stream)?,
2373 })
2374 }
2375}
2376
2377#[allow(dead_code)]
2379#[cfg(feature = "all-types")]
2380#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2381pub enum OfferEntryFlags {
2382 PassiveFlag = 1,
2383}
2384
2385#[cfg(feature = "all-types")]
2386impl XdrCodec for OfferEntryFlags {
2387 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2388 let value = *self as i32;
2389 value.to_xdr_buffered(write_stream);
2390 }
2391
2392 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2393 let enum_value = i32::from_xdr_buffered(read_stream)?;
2394 match enum_value {
2395 1 => Ok(OfferEntryFlags::PassiveFlag),
2396 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2397 }
2398 }
2399}
2400
2401#[allow(dead_code)]
2403#[derive(Debug, Clone, Eq, PartialEq)]
2404pub struct OfferEntry {
2405 pub seller_id: AccountId,
2406 pub offer_id: Int64,
2407 pub selling: Asset,
2408 pub buying: Asset,
2409 pub amount: Int64,
2410 pub price: Price,
2411 pub flags: Uint32,
2412 pub ext: OfferEntryExt,
2413}
2414
2415impl XdrCodec for OfferEntry {
2416 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2417 self.seller_id.to_xdr_buffered(write_stream);
2418 self.offer_id.to_xdr_buffered(write_stream);
2419 self.selling.to_xdr_buffered(write_stream);
2420 self.buying.to_xdr_buffered(write_stream);
2421 self.amount.to_xdr_buffered(write_stream);
2422 self.price.to_xdr_buffered(write_stream);
2423 self.flags.to_xdr_buffered(write_stream);
2424 self.ext.to_xdr_buffered(write_stream);
2425 }
2426
2427 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2428 Ok(OfferEntry {
2429 seller_id: AccountId::from_xdr_buffered(read_stream)?,
2430 offer_id: Int64::from_xdr_buffered(read_stream)?,
2431 selling: Asset::from_xdr_buffered(read_stream)?,
2432 buying: Asset::from_xdr_buffered(read_stream)?,
2433 amount: Int64::from_xdr_buffered(read_stream)?,
2434 price: Price::from_xdr_buffered(read_stream)?,
2435 flags: Uint32::from_xdr_buffered(read_stream)?,
2436 ext: OfferEntryExt::from_xdr_buffered(read_stream)?,
2437 })
2438 }
2439}
2440
2441#[allow(dead_code)]
2443#[derive(Debug, Clone, Eq, PartialEq)]
2444pub struct DataEntry {
2445 pub account_id: AccountId,
2446 pub data_name: String64,
2447 pub data_value: DataValue,
2448 pub ext: DataEntryExt,
2449}
2450
2451impl XdrCodec for DataEntry {
2452 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2453 self.account_id.to_xdr_buffered(write_stream);
2454 self.data_name.to_xdr_buffered(write_stream);
2455 self.data_value.to_xdr_buffered(write_stream);
2456 self.ext.to_xdr_buffered(write_stream);
2457 }
2458
2459 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2460 Ok(DataEntry {
2461 account_id: AccountId::from_xdr_buffered(read_stream)?,
2462 data_name: String64::from_xdr_buffered(read_stream)?,
2463 data_value: DataValue::from_xdr_buffered(read_stream)?,
2464 ext: DataEntryExt::from_xdr_buffered(read_stream)?,
2465 })
2466 }
2467}
2468
2469#[allow(dead_code)]
2471#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2472pub enum ClaimPredicateType {
2473 ClaimPredicateUnconditional = 0,
2474 ClaimPredicateAnd = 1,
2475 ClaimPredicateOr = 2,
2476 ClaimPredicateNot = 3,
2477 ClaimPredicateBeforeAbsoluteTime = 4,
2478 ClaimPredicateBeforeRelativeTime = 5,
2479}
2480
2481impl XdrCodec for ClaimPredicateType {
2482 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2483 let value = *self as i32;
2484 value.to_xdr_buffered(write_stream);
2485 }
2486
2487 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2488 let enum_value = i32::from_xdr_buffered(read_stream)?;
2489 match enum_value {
2490 0 => Ok(ClaimPredicateType::ClaimPredicateUnconditional),
2491 1 => Ok(ClaimPredicateType::ClaimPredicateAnd),
2492 2 => Ok(ClaimPredicateType::ClaimPredicateOr),
2493 3 => Ok(ClaimPredicateType::ClaimPredicateNot),
2494 4 => Ok(ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime),
2495 5 => Ok(ClaimPredicateType::ClaimPredicateBeforeRelativeTime),
2496 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2497 }
2498 }
2499}
2500
2501#[allow(dead_code)]
2503#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2504pub enum ClaimantType {
2505 ClaimantTypeV0 = 0,
2506}
2507
2508impl XdrCodec for ClaimantType {
2509 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2510 let value = *self as i32;
2511 value.to_xdr_buffered(write_stream);
2512 }
2513
2514 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2515 let enum_value = i32::from_xdr_buffered(read_stream)?;
2516 match enum_value {
2517 0 => Ok(ClaimantType::ClaimantTypeV0),
2518 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2519 }
2520 }
2521}
2522
2523#[allow(dead_code)]
2525#[derive(Debug, Clone, Eq, PartialEq)]
2526pub struct ClaimantV0 {
2527 pub destination: AccountId,
2528 pub predicate: ClaimPredicate,
2529}
2530
2531impl XdrCodec for ClaimantV0 {
2532 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2533 self.destination.to_xdr_buffered(write_stream);
2534 self.predicate.to_xdr_buffered(write_stream);
2535 }
2536
2537 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2538 Ok(ClaimantV0 {
2539 destination: AccountId::from_xdr_buffered(read_stream)?,
2540 predicate: ClaimPredicate::from_xdr_buffered(read_stream)?,
2541 })
2542 }
2543}
2544
2545#[allow(dead_code)]
2547#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2548pub enum ClaimableBalanceIdType {
2549 ClaimableBalanceIdTypeV0 = 0,
2550}
2551
2552impl XdrCodec for ClaimableBalanceIdType {
2553 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2554 let value = *self as i32;
2555 value.to_xdr_buffered(write_stream);
2556 }
2557
2558 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2559 let enum_value = i32::from_xdr_buffered(read_stream)?;
2560 match enum_value {
2561 0 => Ok(ClaimableBalanceIdType::ClaimableBalanceIdTypeV0),
2562 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2563 }
2564 }
2565}
2566
2567#[allow(dead_code)]
2569#[cfg(feature = "all-types")]
2570#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2571pub enum ClaimableBalanceFlags {
2572 ClaimableBalanceClawbackEnabledFlag = 1,
2573}
2574
2575#[cfg(feature = "all-types")]
2576impl XdrCodec for ClaimableBalanceFlags {
2577 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2578 let value = *self as i32;
2579 value.to_xdr_buffered(write_stream);
2580 }
2581
2582 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2583 let enum_value = i32::from_xdr_buffered(read_stream)?;
2584 match enum_value {
2585 1 => Ok(ClaimableBalanceFlags::ClaimableBalanceClawbackEnabledFlag),
2586 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2587 }
2588 }
2589}
2590
2591#[allow(dead_code)]
2593#[derive(Debug, Clone, Eq, PartialEq)]
2594pub struct ClaimableBalanceEntryExtensionV1 {
2595 pub ext: ClaimableBalanceEntryExtensionV1Ext,
2596 pub flags: Uint32,
2597}
2598
2599impl XdrCodec for ClaimableBalanceEntryExtensionV1 {
2600 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2601 self.ext.to_xdr_buffered(write_stream);
2602 self.flags.to_xdr_buffered(write_stream);
2603 }
2604
2605 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2606 Ok(ClaimableBalanceEntryExtensionV1 {
2607 ext: ClaimableBalanceEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
2608 flags: Uint32::from_xdr_buffered(read_stream)?,
2609 })
2610 }
2611}
2612
2613#[allow(dead_code)]
2615#[derive(Debug, Clone, Eq, PartialEq)]
2616pub struct ClaimableBalanceEntry {
2617 pub balance_id: ClaimableBalanceId,
2618 pub claimants: LimitedVarArray<Claimant, 10>,
2619 pub asset: Asset,
2620 pub amount: Int64,
2621 pub ext: ClaimableBalanceEntryExt,
2622}
2623
2624impl XdrCodec for ClaimableBalanceEntry {
2625 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2626 self.balance_id.to_xdr_buffered(write_stream);
2627 self.claimants.to_xdr_buffered(write_stream);
2628 self.asset.to_xdr_buffered(write_stream);
2629 self.amount.to_xdr_buffered(write_stream);
2630 self.ext.to_xdr_buffered(write_stream);
2631 }
2632
2633 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2634 Ok(ClaimableBalanceEntry {
2635 balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
2636 claimants: LimitedVarArray::<Claimant, 10>::from_xdr_buffered(read_stream)?,
2637 asset: Asset::from_xdr_buffered(read_stream)?,
2638 amount: Int64::from_xdr_buffered(read_stream)?,
2639 ext: ClaimableBalanceEntryExt::from_xdr_buffered(read_stream)?,
2640 })
2641 }
2642}
2643
2644#[allow(dead_code)]
2646#[derive(Debug, Clone, Eq, PartialEq)]
2647pub struct LiquidityPoolConstantProductParameters {
2648 pub asset_a: Asset,
2649 pub asset_b: Asset,
2650 pub fee: Int32,
2651}
2652
2653impl XdrCodec for LiquidityPoolConstantProductParameters {
2654 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2655 self.asset_a.to_xdr_buffered(write_stream);
2656 self.asset_b.to_xdr_buffered(write_stream);
2657 self.fee.to_xdr_buffered(write_stream);
2658 }
2659
2660 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2661 Ok(LiquidityPoolConstantProductParameters {
2662 asset_a: Asset::from_xdr_buffered(read_stream)?,
2663 asset_b: Asset::from_xdr_buffered(read_stream)?,
2664 fee: Int32::from_xdr_buffered(read_stream)?,
2665 })
2666 }
2667}
2668
2669#[allow(dead_code)]
2671#[derive(Debug, Clone, Eq, PartialEq)]
2672pub struct LiquidityPoolEntryConstantProduct {
2673 pub params: LiquidityPoolConstantProductParameters,
2674 pub reserve_a: Int64,
2675 pub reserve_b: Int64,
2676 pub total_pool_shares: Int64,
2677 pub pool_shares_trust_line_count: Int64,
2678}
2679
2680impl XdrCodec for LiquidityPoolEntryConstantProduct {
2681 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2682 self.params.to_xdr_buffered(write_stream);
2683 self.reserve_a.to_xdr_buffered(write_stream);
2684 self.reserve_b.to_xdr_buffered(write_stream);
2685 self.total_pool_shares.to_xdr_buffered(write_stream);
2686 self.pool_shares_trust_line_count.to_xdr_buffered(write_stream);
2687 }
2688
2689 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2690 Ok(LiquidityPoolEntryConstantProduct {
2691 params: LiquidityPoolConstantProductParameters::from_xdr_buffered(read_stream)?,
2692 reserve_a: Int64::from_xdr_buffered(read_stream)?,
2693 reserve_b: Int64::from_xdr_buffered(read_stream)?,
2694 total_pool_shares: Int64::from_xdr_buffered(read_stream)?,
2695 pool_shares_trust_line_count: Int64::from_xdr_buffered(read_stream)?,
2696 })
2697 }
2698}
2699
2700#[allow(dead_code)]
2702#[derive(Debug, Clone, Eq, PartialEq)]
2703pub struct LiquidityPoolEntry {
2704 pub liquidity_pool_id: PoolId,
2705 pub body: LiquidityPoolEntryBody,
2706}
2707
2708impl XdrCodec for LiquidityPoolEntry {
2709 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2710 self.liquidity_pool_id.to_xdr_buffered(write_stream);
2711 self.body.to_xdr_buffered(write_stream);
2712 }
2713
2714 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2715 Ok(LiquidityPoolEntry {
2716 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
2717 body: LiquidityPoolEntryBody::from_xdr_buffered(read_stream)?,
2718 })
2719 }
2720}
2721
2722#[allow(dead_code)]
2724#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2725pub enum ContractDataDurability {
2726 Temporary = 0,
2727 Persistent = 1,
2728}
2729
2730impl XdrCodec for ContractDataDurability {
2731 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2732 let value = *self as i32;
2733 value.to_xdr_buffered(write_stream);
2734 }
2735
2736 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2737 let enum_value = i32::from_xdr_buffered(read_stream)?;
2738 match enum_value {
2739 0 => Ok(ContractDataDurability::Temporary),
2740 1 => Ok(ContractDataDurability::Persistent),
2741 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
2742 }
2743 }
2744}
2745
2746#[allow(dead_code)]
2748#[derive(Debug, Clone, Eq, PartialEq)]
2749pub struct ContractDataEntry {
2750 pub ext: ExtensionPoint,
2751 pub contract: ScAddress,
2752 pub key: ScVal,
2753 pub durability: ContractDataDurability,
2754 pub val: ScVal,
2755}
2756
2757impl XdrCodec for ContractDataEntry {
2758 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2759 self.ext.to_xdr_buffered(write_stream);
2760 self.contract.to_xdr_buffered(write_stream);
2761 self.key.to_xdr_buffered(write_stream);
2762 self.durability.to_xdr_buffered(write_stream);
2763 self.val.to_xdr_buffered(write_stream);
2764 }
2765
2766 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2767 Ok(ContractDataEntry {
2768 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
2769 contract: ScAddress::from_xdr_buffered(read_stream)?,
2770 key: ScVal::from_xdr_buffered(read_stream)?,
2771 durability: ContractDataDurability::from_xdr_buffered(read_stream)?,
2772 val: ScVal::from_xdr_buffered(read_stream)?,
2773 })
2774 }
2775}
2776
2777#[allow(dead_code)]
2779#[derive(Debug, Clone, Eq, PartialEq)]
2780pub struct ContractCodeCostInputs {
2781 pub ext: ExtensionPoint,
2782 pub n_instructions: Uint32,
2783 pub n_functions: Uint32,
2784 pub n_globals: Uint32,
2785 pub n_table_entries: Uint32,
2786 pub n_types: Uint32,
2787 pub n_data_segments: Uint32,
2788 pub n_elem_segments: Uint32,
2789 pub n_imports: Uint32,
2790 pub n_exports: Uint32,
2791 pub n_data_segment_bytes: Uint32,
2792}
2793
2794impl XdrCodec for ContractCodeCostInputs {
2795 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2796 self.ext.to_xdr_buffered(write_stream);
2797 self.n_instructions.to_xdr_buffered(write_stream);
2798 self.n_functions.to_xdr_buffered(write_stream);
2799 self.n_globals.to_xdr_buffered(write_stream);
2800 self.n_table_entries.to_xdr_buffered(write_stream);
2801 self.n_types.to_xdr_buffered(write_stream);
2802 self.n_data_segments.to_xdr_buffered(write_stream);
2803 self.n_elem_segments.to_xdr_buffered(write_stream);
2804 self.n_imports.to_xdr_buffered(write_stream);
2805 self.n_exports.to_xdr_buffered(write_stream);
2806 self.n_data_segment_bytes.to_xdr_buffered(write_stream);
2807 }
2808
2809 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2810 Ok(ContractCodeCostInputs {
2811 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
2812 n_instructions: Uint32::from_xdr_buffered(read_stream)?,
2813 n_functions: Uint32::from_xdr_buffered(read_stream)?,
2814 n_globals: Uint32::from_xdr_buffered(read_stream)?,
2815 n_table_entries: Uint32::from_xdr_buffered(read_stream)?,
2816 n_types: Uint32::from_xdr_buffered(read_stream)?,
2817 n_data_segments: Uint32::from_xdr_buffered(read_stream)?,
2818 n_elem_segments: Uint32::from_xdr_buffered(read_stream)?,
2819 n_imports: Uint32::from_xdr_buffered(read_stream)?,
2820 n_exports: Uint32::from_xdr_buffered(read_stream)?,
2821 n_data_segment_bytes: Uint32::from_xdr_buffered(read_stream)?,
2822 })
2823 }
2824}
2825
2826#[allow(dead_code)]
2828#[derive(Debug, Clone, Eq, PartialEq)]
2829pub struct ContractCodeEntryV1 {
2830 pub ext: ExtensionPoint,
2831 pub cost_inputs: ContractCodeCostInputs,
2832}
2833
2834impl XdrCodec for ContractCodeEntryV1 {
2835 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2836 self.ext.to_xdr_buffered(write_stream);
2837 self.cost_inputs.to_xdr_buffered(write_stream);
2838 }
2839
2840 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2841 Ok(ContractCodeEntryV1 {
2842 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
2843 cost_inputs: ContractCodeCostInputs::from_xdr_buffered(read_stream)?,
2844 })
2845 }
2846}
2847
2848#[allow(dead_code)]
2850#[derive(Debug, Clone, Eq, PartialEq)]
2851pub struct ContractCodeEntry {
2852 pub ext: ContractCodeEntryExt,
2853 pub hash: Hash,
2854 pub code: UnlimitedVarOpaque,
2855}
2856
2857impl XdrCodec for ContractCodeEntry {
2858 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2859 self.ext.to_xdr_buffered(write_stream);
2860 self.hash.to_xdr_buffered(write_stream);
2861 self.code.to_xdr_buffered(write_stream);
2862 }
2863
2864 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2865 Ok(ContractCodeEntry {
2866 ext: ContractCodeEntryExt::from_xdr_buffered(read_stream)?,
2867 hash: Hash::from_xdr_buffered(read_stream)?,
2868 code: UnlimitedVarOpaque::from_xdr_buffered(read_stream)?,
2869 })
2870 }
2871}
2872
2873#[allow(dead_code)]
2875#[derive(Debug, Clone, Eq, PartialEq)]
2876pub struct TtlEntry {
2877 pub key_hash: Hash,
2878 pub live_until_ledger_seq: Uint32,
2879}
2880
2881impl XdrCodec for TtlEntry {
2882 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2883 self.key_hash.to_xdr_buffered(write_stream);
2884 self.live_until_ledger_seq.to_xdr_buffered(write_stream);
2885 }
2886
2887 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2888 Ok(TtlEntry {
2889 key_hash: Hash::from_xdr_buffered(read_stream)?,
2890 live_until_ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
2891 })
2892 }
2893}
2894
2895#[allow(dead_code)]
2897#[derive(Debug, Clone, Eq, PartialEq)]
2898pub struct LedgerEntryExtensionV1 {
2899 pub sponsoring_id: SponsorshipDescriptor,
2900 pub ext: LedgerEntryExtensionV1Ext,
2901}
2902
2903impl XdrCodec for LedgerEntryExtensionV1 {
2904 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2905 self.sponsoring_id.to_xdr_buffered(write_stream);
2906 self.ext.to_xdr_buffered(write_stream);
2907 }
2908
2909 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2910 Ok(LedgerEntryExtensionV1 {
2911 sponsoring_id: SponsorshipDescriptor::from_xdr_buffered(read_stream)?,
2912 ext: LedgerEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
2913 })
2914 }
2915}
2916
2917#[allow(dead_code)]
2919#[derive(Debug, Clone, Eq, PartialEq)]
2920pub struct LedgerEntry {
2921 pub last_modified_ledger_seq: Uint32,
2922 pub data: LedgerEntryData,
2923 pub ext: LedgerEntryExt,
2924}
2925
2926impl XdrCodec for LedgerEntry {
2927 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2928 self.last_modified_ledger_seq.to_xdr_buffered(write_stream);
2929 self.data.to_xdr_buffered(write_stream);
2930 self.ext.to_xdr_buffered(write_stream);
2931 }
2932
2933 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2934 Ok(LedgerEntry {
2935 last_modified_ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
2936 data: LedgerEntryData::from_xdr_buffered(read_stream)?,
2937 ext: LedgerEntryExt::from_xdr_buffered(read_stream)?,
2938 })
2939 }
2940}
2941
2942#[allow(dead_code)]
2944#[derive(Debug, Clone, Eq, PartialEq)]
2945pub struct LedgerKeyAccount {
2946 pub account_id: AccountId,
2947}
2948
2949impl XdrCodec for LedgerKeyAccount {
2950 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2951 self.account_id.to_xdr_buffered(write_stream);
2952 }
2953
2954 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2955 Ok(LedgerKeyAccount { account_id: AccountId::from_xdr_buffered(read_stream)? })
2956 }
2957}
2958
2959#[allow(dead_code)]
2961#[derive(Debug, Clone, Eq, PartialEq)]
2962pub struct LedgerKeyTrustLine {
2963 pub account_id: AccountId,
2964 pub asset: TrustLineAsset,
2965}
2966
2967impl XdrCodec for LedgerKeyTrustLine {
2968 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2969 self.account_id.to_xdr_buffered(write_stream);
2970 self.asset.to_xdr_buffered(write_stream);
2971 }
2972
2973 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2974 Ok(LedgerKeyTrustLine {
2975 account_id: AccountId::from_xdr_buffered(read_stream)?,
2976 asset: TrustLineAsset::from_xdr_buffered(read_stream)?,
2977 })
2978 }
2979}
2980
2981#[allow(dead_code)]
2983#[derive(Debug, Clone, Eq, PartialEq)]
2984pub struct LedgerKeyOffer {
2985 pub seller_id: AccountId,
2986 pub offer_id: Int64,
2987}
2988
2989impl XdrCodec for LedgerKeyOffer {
2990 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2991 self.seller_id.to_xdr_buffered(write_stream);
2992 self.offer_id.to_xdr_buffered(write_stream);
2993 }
2994
2995 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
2996 Ok(LedgerKeyOffer {
2997 seller_id: AccountId::from_xdr_buffered(read_stream)?,
2998 offer_id: Int64::from_xdr_buffered(read_stream)?,
2999 })
3000 }
3001}
3002
3003#[allow(dead_code)]
3005#[derive(Debug, Clone, Eq, PartialEq)]
3006pub struct LedgerKeyData {
3007 pub account_id: AccountId,
3008 pub data_name: String64,
3009}
3010
3011impl XdrCodec for LedgerKeyData {
3012 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3013 self.account_id.to_xdr_buffered(write_stream);
3014 self.data_name.to_xdr_buffered(write_stream);
3015 }
3016
3017 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3018 Ok(LedgerKeyData {
3019 account_id: AccountId::from_xdr_buffered(read_stream)?,
3020 data_name: String64::from_xdr_buffered(read_stream)?,
3021 })
3022 }
3023}
3024
3025#[allow(dead_code)]
3027#[derive(Debug, Clone, Eq, PartialEq)]
3028pub struct LedgerKeyClaimableBalance {
3029 pub balance_id: ClaimableBalanceId,
3030}
3031
3032impl XdrCodec for LedgerKeyClaimableBalance {
3033 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3034 self.balance_id.to_xdr_buffered(write_stream);
3035 }
3036
3037 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3038 Ok(LedgerKeyClaimableBalance { balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)? })
3039 }
3040}
3041
3042#[allow(dead_code)]
3044#[derive(Debug, Clone, Eq, PartialEq)]
3045pub struct LedgerKeyLiquidityPool {
3046 pub liquidity_pool_id: PoolId,
3047}
3048
3049impl XdrCodec for LedgerKeyLiquidityPool {
3050 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3051 self.liquidity_pool_id.to_xdr_buffered(write_stream);
3052 }
3053
3054 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3055 Ok(LedgerKeyLiquidityPool { liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)? })
3056 }
3057}
3058
3059#[allow(dead_code)]
3061#[derive(Debug, Clone, Eq, PartialEq)]
3062pub struct LedgerKeyContractData {
3063 pub contract: ScAddress,
3064 pub key: ScVal,
3065 pub durability: ContractDataDurability,
3066}
3067
3068impl XdrCodec for LedgerKeyContractData {
3069 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3070 self.contract.to_xdr_buffered(write_stream);
3071 self.key.to_xdr_buffered(write_stream);
3072 self.durability.to_xdr_buffered(write_stream);
3073 }
3074
3075 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3076 Ok(LedgerKeyContractData {
3077 contract: ScAddress::from_xdr_buffered(read_stream)?,
3078 key: ScVal::from_xdr_buffered(read_stream)?,
3079 durability: ContractDataDurability::from_xdr_buffered(read_stream)?,
3080 })
3081 }
3082}
3083
3084#[allow(dead_code)]
3086#[derive(Debug, Clone, Eq, PartialEq)]
3087pub struct LedgerKeyContractCode {
3088 pub hash: Hash,
3089}
3090
3091impl XdrCodec for LedgerKeyContractCode {
3092 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3093 self.hash.to_xdr_buffered(write_stream);
3094 }
3095
3096 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3097 Ok(LedgerKeyContractCode { hash: Hash::from_xdr_buffered(read_stream)? })
3098 }
3099}
3100
3101#[allow(dead_code)]
3103#[derive(Debug, Clone, Eq, PartialEq)]
3104pub struct LedgerKeyConfigSetting {
3105 pub config_setting_id: ConfigSettingId,
3106}
3107
3108impl XdrCodec for LedgerKeyConfigSetting {
3109 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3110 self.config_setting_id.to_xdr_buffered(write_stream);
3111 }
3112
3113 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3114 Ok(LedgerKeyConfigSetting { config_setting_id: ConfigSettingId::from_xdr_buffered(read_stream)? })
3115 }
3116}
3117
3118#[allow(dead_code)]
3120#[derive(Debug, Clone, Eq, PartialEq)]
3121pub struct LedgerKeyTtl {
3122 pub key_hash: Hash,
3123}
3124
3125impl XdrCodec for LedgerKeyTtl {
3126 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3127 self.key_hash.to_xdr_buffered(write_stream);
3128 }
3129
3130 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3131 Ok(LedgerKeyTtl { key_hash: Hash::from_xdr_buffered(read_stream)? })
3132 }
3133}
3134
3135#[allow(dead_code)]
3137#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3138pub enum EnvelopeType {
3139 EnvelopeTypeTxV0 = 0,
3140 EnvelopeTypeScp = 1,
3141 EnvelopeTypeTx = 2,
3142 EnvelopeTypeAuth = 3,
3143 EnvelopeTypeScpvalue = 4,
3144 EnvelopeTypeTxFeeBump = 5,
3145 EnvelopeTypeOpId = 6,
3146 EnvelopeTypePoolRevokeOpId = 7,
3147 EnvelopeTypeContractId = 8,
3148 EnvelopeTypeSorobanAuthorization = 9,
3149}
3150
3151impl XdrCodec for EnvelopeType {
3152 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3153 let value = *self as i32;
3154 value.to_xdr_buffered(write_stream);
3155 }
3156
3157 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3158 let enum_value = i32::from_xdr_buffered(read_stream)?;
3159 match enum_value {
3160 0 => Ok(EnvelopeType::EnvelopeTypeTxV0),
3161 1 => Ok(EnvelopeType::EnvelopeTypeScp),
3162 2 => Ok(EnvelopeType::EnvelopeTypeTx),
3163 3 => Ok(EnvelopeType::EnvelopeTypeAuth),
3164 4 => Ok(EnvelopeType::EnvelopeTypeScpvalue),
3165 5 => Ok(EnvelopeType::EnvelopeTypeTxFeeBump),
3166 6 => Ok(EnvelopeType::EnvelopeTypeOpId),
3167 7 => Ok(EnvelopeType::EnvelopeTypePoolRevokeOpId),
3168 8 => Ok(EnvelopeType::EnvelopeTypeContractId),
3169 9 => Ok(EnvelopeType::EnvelopeTypeSorobanAuthorization),
3170 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3171 }
3172 }
3173}
3174
3175#[allow(dead_code)]
3177#[cfg(feature = "all-types")]
3178pub type UpgradeType = LimitedVarOpaque<128>;
3179
3180#[allow(dead_code)]
3182#[cfg(feature = "all-types")]
3183#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3184pub enum StellarValueType {
3185 StellarValueBasic = 0,
3186 StellarValueSigned = 1,
3187}
3188
3189#[cfg(feature = "all-types")]
3190impl XdrCodec for StellarValueType {
3191 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3192 let value = *self as i32;
3193 value.to_xdr_buffered(write_stream);
3194 }
3195
3196 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3197 let enum_value = i32::from_xdr_buffered(read_stream)?;
3198 match enum_value {
3199 0 => Ok(StellarValueType::StellarValueBasic),
3200 1 => Ok(StellarValueType::StellarValueSigned),
3201 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3202 }
3203 }
3204}
3205
3206#[allow(dead_code)]
3208#[cfg(feature = "all-types")]
3209#[derive(Debug, Clone, Eq, PartialEq)]
3210pub struct LedgerCloseValueSignature {
3211 pub node_id: NodeId,
3212 pub signature: Signature,
3213}
3214
3215#[cfg(feature = "all-types")]
3216impl XdrCodec for LedgerCloseValueSignature {
3217 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3218 self.node_id.to_xdr_buffered(write_stream);
3219 self.signature.to_xdr_buffered(write_stream);
3220 }
3221
3222 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3223 Ok(LedgerCloseValueSignature {
3224 node_id: NodeId::from_xdr_buffered(read_stream)?,
3225 signature: Signature::from_xdr_buffered(read_stream)?,
3226 })
3227 }
3228}
3229
3230#[allow(dead_code)]
3232#[cfg(feature = "all-types")]
3233#[derive(Debug, Clone, Eq, PartialEq)]
3234pub struct StellarValue {
3235 pub tx_set_hash: Hash,
3236 pub close_time: TimePoint,
3237 pub upgrades: LimitedVarArray<UpgradeType, 6>,
3238 pub ext: StellarValueExt,
3239}
3240
3241#[cfg(feature = "all-types")]
3242impl XdrCodec for StellarValue {
3243 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3244 self.tx_set_hash.to_xdr_buffered(write_stream);
3245 self.close_time.to_xdr_buffered(write_stream);
3246 self.upgrades.to_xdr_buffered(write_stream);
3247 self.ext.to_xdr_buffered(write_stream);
3248 }
3249
3250 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3251 Ok(StellarValue {
3252 tx_set_hash: Hash::from_xdr_buffered(read_stream)?,
3253 close_time: TimePoint::from_xdr_buffered(read_stream)?,
3254 upgrades: LimitedVarArray::<UpgradeType, 6>::from_xdr_buffered(read_stream)?,
3255 ext: StellarValueExt::from_xdr_buffered(read_stream)?,
3256 })
3257 }
3258}
3259
3260#[allow(dead_code)]
3262#[cfg(feature = "all-types")]
3263#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3264pub enum LedgerHeaderFlags {
3265 DisableLiquidityPoolTradingFlag = 1,
3266 DisableLiquidityPoolDepositFlag = 2,
3267 DisableLiquidityPoolWithdrawalFlag = 4,
3268}
3269
3270#[cfg(feature = "all-types")]
3271impl XdrCodec for LedgerHeaderFlags {
3272 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3273 let value = *self as i32;
3274 value.to_xdr_buffered(write_stream);
3275 }
3276
3277 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3278 let enum_value = i32::from_xdr_buffered(read_stream)?;
3279 match enum_value {
3280 1 => Ok(LedgerHeaderFlags::DisableLiquidityPoolTradingFlag),
3281 2 => Ok(LedgerHeaderFlags::DisableLiquidityPoolDepositFlag),
3282 4 => Ok(LedgerHeaderFlags::DisableLiquidityPoolWithdrawalFlag),
3283 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3284 }
3285 }
3286}
3287
3288#[allow(dead_code)]
3290#[cfg(feature = "all-types")]
3291#[derive(Debug, Clone, Eq, PartialEq)]
3292pub struct LedgerHeaderExtensionV1 {
3293 pub flags: Uint32,
3294 pub ext: LedgerHeaderExtensionV1Ext,
3295}
3296
3297#[cfg(feature = "all-types")]
3298impl XdrCodec for LedgerHeaderExtensionV1 {
3299 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3300 self.flags.to_xdr_buffered(write_stream);
3301 self.ext.to_xdr_buffered(write_stream);
3302 }
3303
3304 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3305 Ok(LedgerHeaderExtensionV1 {
3306 flags: Uint32::from_xdr_buffered(read_stream)?,
3307 ext: LedgerHeaderExtensionV1Ext::from_xdr_buffered(read_stream)?,
3308 })
3309 }
3310}
3311
3312#[allow(dead_code)]
3314#[cfg(feature = "all-types")]
3315#[derive(Debug, Clone, Eq, PartialEq)]
3316pub struct LedgerHeader {
3317 pub ledger_version: Uint32,
3318 pub previous_ledger_hash: Hash,
3319 pub scp_value: StellarValue,
3320 pub tx_set_result_hash: Hash,
3321 pub bucket_list_hash: Hash,
3322 pub ledger_seq: Uint32,
3323 pub total_coins: Int64,
3324 pub fee_pool: Int64,
3325 pub inflation_seq: Uint32,
3326 pub id_pool: Uint64,
3327 pub base_fee: Uint32,
3328 pub base_reserve: Uint32,
3329 pub max_tx_set_size: Uint32,
3330 pub skip_list: [Hash; 4],
3331 pub ext: LedgerHeaderExt,
3332}
3333
3334#[cfg(feature = "all-types")]
3335impl XdrCodec for LedgerHeader {
3336 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3337 self.ledger_version.to_xdr_buffered(write_stream);
3338 self.previous_ledger_hash.to_xdr_buffered(write_stream);
3339 self.scp_value.to_xdr_buffered(write_stream);
3340 self.tx_set_result_hash.to_xdr_buffered(write_stream);
3341 self.bucket_list_hash.to_xdr_buffered(write_stream);
3342 self.ledger_seq.to_xdr_buffered(write_stream);
3343 self.total_coins.to_xdr_buffered(write_stream);
3344 self.fee_pool.to_xdr_buffered(write_stream);
3345 self.inflation_seq.to_xdr_buffered(write_stream);
3346 self.id_pool.to_xdr_buffered(write_stream);
3347 self.base_fee.to_xdr_buffered(write_stream);
3348 self.base_reserve.to_xdr_buffered(write_stream);
3349 self.max_tx_set_size.to_xdr_buffered(write_stream);
3350 self.skip_list.to_xdr_buffered(write_stream);
3351 self.ext.to_xdr_buffered(write_stream);
3352 }
3353
3354 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3355 Ok(LedgerHeader {
3356 ledger_version: Uint32::from_xdr_buffered(read_stream)?,
3357 previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
3358 scp_value: StellarValue::from_xdr_buffered(read_stream)?,
3359 tx_set_result_hash: Hash::from_xdr_buffered(read_stream)?,
3360 bucket_list_hash: Hash::from_xdr_buffered(read_stream)?,
3361 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
3362 total_coins: Int64::from_xdr_buffered(read_stream)?,
3363 fee_pool: Int64::from_xdr_buffered(read_stream)?,
3364 inflation_seq: Uint32::from_xdr_buffered(read_stream)?,
3365 id_pool: Uint64::from_xdr_buffered(read_stream)?,
3366 base_fee: Uint32::from_xdr_buffered(read_stream)?,
3367 base_reserve: Uint32::from_xdr_buffered(read_stream)?,
3368 max_tx_set_size: Uint32::from_xdr_buffered(read_stream)?,
3369 skip_list: <[Hash; 4]>::from_xdr_buffered(read_stream)?,
3370 ext: LedgerHeaderExt::from_xdr_buffered(read_stream)?,
3371 })
3372 }
3373}
3374
3375#[allow(dead_code)]
3377#[cfg(feature = "all-types")]
3378#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3379pub enum LedgerUpgradeType {
3380 LedgerUpgradeVersion = 1,
3381 LedgerUpgradeBaseFee = 2,
3382 LedgerUpgradeMaxTxSetSize = 3,
3383 LedgerUpgradeBaseReserve = 4,
3384 LedgerUpgradeFlags = 5,
3385 LedgerUpgradeConfig = 6,
3386 LedgerUpgradeMaxSorobanTxSetSize = 7,
3387}
3388
3389#[cfg(feature = "all-types")]
3390impl XdrCodec for LedgerUpgradeType {
3391 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3392 let value = *self as i32;
3393 value.to_xdr_buffered(write_stream);
3394 }
3395
3396 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3397 let enum_value = i32::from_xdr_buffered(read_stream)?;
3398 match enum_value {
3399 1 => Ok(LedgerUpgradeType::LedgerUpgradeVersion),
3400 2 => Ok(LedgerUpgradeType::LedgerUpgradeBaseFee),
3401 3 => Ok(LedgerUpgradeType::LedgerUpgradeMaxTxSetSize),
3402 4 => Ok(LedgerUpgradeType::LedgerUpgradeBaseReserve),
3403 5 => Ok(LedgerUpgradeType::LedgerUpgradeFlags),
3404 6 => Ok(LedgerUpgradeType::LedgerUpgradeConfig),
3405 7 => Ok(LedgerUpgradeType::LedgerUpgradeMaxSorobanTxSetSize),
3406 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3407 }
3408 }
3409}
3410
3411#[allow(dead_code)]
3413#[cfg(feature = "all-types")]
3414#[derive(Debug, Clone, Eq, PartialEq)]
3415pub struct ConfigUpgradeSetKey {
3416 pub contract_id: Hash,
3417 pub content_hash: Hash,
3418}
3419
3420#[cfg(feature = "all-types")]
3421impl XdrCodec for ConfigUpgradeSetKey {
3422 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3423 self.contract_id.to_xdr_buffered(write_stream);
3424 self.content_hash.to_xdr_buffered(write_stream);
3425 }
3426
3427 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3428 Ok(ConfigUpgradeSetKey {
3429 contract_id: Hash::from_xdr_buffered(read_stream)?,
3430 content_hash: Hash::from_xdr_buffered(read_stream)?,
3431 })
3432 }
3433}
3434
3435#[allow(dead_code)]
3437#[cfg(feature = "all-types")]
3438#[derive(Debug, Clone, Eq, PartialEq)]
3439pub struct ConfigUpgradeSet {
3440 pub updated_entry: UnlimitedVarArray<ConfigSettingEntry>,
3441}
3442
3443#[cfg(feature = "all-types")]
3444impl XdrCodec for ConfigUpgradeSet {
3445 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3446 self.updated_entry.to_xdr_buffered(write_stream);
3447 }
3448
3449 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3450 Ok(ConfigUpgradeSet { updated_entry: UnlimitedVarArray::<ConfigSettingEntry>::from_xdr_buffered(read_stream)? })
3451 }
3452}
3453
3454#[allow(dead_code)]
3456#[cfg(feature = "all-types")]
3457#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3458pub enum BucketEntryType {
3459 Metaentry = -1,
3460 Liveentry = 0,
3461 Deadentry = 1,
3462 Initentry = 2,
3463}
3464
3465#[cfg(feature = "all-types")]
3466impl XdrCodec for BucketEntryType {
3467 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3468 let value = *self as i32;
3469 value.to_xdr_buffered(write_stream);
3470 }
3471
3472 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3473 let enum_value = i32::from_xdr_buffered(read_stream)?;
3474 match enum_value {
3475 -1 => Ok(BucketEntryType::Metaentry),
3476 0 => Ok(BucketEntryType::Liveentry),
3477 1 => Ok(BucketEntryType::Deadentry),
3478 2 => Ok(BucketEntryType::Initentry),
3479 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3480 }
3481 }
3482}
3483
3484#[allow(dead_code)]
3486#[cfg(feature = "all-types")]
3487#[derive(Debug, Clone, Eq, PartialEq)]
3488pub struct BucketMetadata {
3489 pub ledger_version: Uint32,
3490 pub ext: BucketMetadataExt,
3491}
3492
3493#[cfg(feature = "all-types")]
3494impl XdrCodec for BucketMetadata {
3495 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3496 self.ledger_version.to_xdr_buffered(write_stream);
3497 self.ext.to_xdr_buffered(write_stream);
3498 }
3499
3500 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3501 Ok(BucketMetadata {
3502 ledger_version: Uint32::from_xdr_buffered(read_stream)?,
3503 ext: BucketMetadataExt::from_xdr_buffered(read_stream)?,
3504 })
3505 }
3506}
3507
3508#[allow(dead_code)]
3510#[cfg(feature = "all-types")]
3511#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3512pub enum TxSetComponentType {
3513 TxsetCompTxsMaybeDiscountedFee = 0,
3514}
3515
3516#[cfg(feature = "all-types")]
3517impl XdrCodec for TxSetComponentType {
3518 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3519 let value = *self as i32;
3520 value.to_xdr_buffered(write_stream);
3521 }
3522
3523 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3524 let enum_value = i32::from_xdr_buffered(read_stream)?;
3525 match enum_value {
3526 0 => Ok(TxSetComponentType::TxsetCompTxsMaybeDiscountedFee),
3527 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3528 }
3529 }
3530}
3531
3532#[allow(dead_code)]
3534#[cfg(feature = "all-types")]
3535#[derive(Debug, Clone, Eq, PartialEq)]
3536pub struct TxSetComponentTxsMaybeDiscountedFee {
3537 pub base_fee: Option<Int64>,
3538 pub txes: UnlimitedVarArray<TransactionEnvelope>,
3539}
3540
3541#[cfg(feature = "all-types")]
3542impl XdrCodec for TxSetComponentTxsMaybeDiscountedFee {
3543 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3544 self.base_fee.to_xdr_buffered(write_stream);
3545 self.txes.to_xdr_buffered(write_stream);
3546 }
3547
3548 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3549 Ok(TxSetComponentTxsMaybeDiscountedFee {
3550 base_fee: Option::<Int64>::from_xdr_buffered(read_stream)?,
3551 txes: UnlimitedVarArray::<TransactionEnvelope>::from_xdr_buffered(read_stream)?,
3552 })
3553 }
3554}
3555
3556#[allow(dead_code)]
3558#[cfg(feature = "all-types")]
3559#[derive(Debug, Clone, Eq, PartialEq)]
3560pub struct TransactionSet {
3561 pub previous_ledger_hash: Hash,
3562 pub txes: UnlimitedVarArray<TransactionEnvelope>,
3563}
3564
3565#[cfg(feature = "all-types")]
3566impl XdrCodec for TransactionSet {
3567 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3568 self.previous_ledger_hash.to_xdr_buffered(write_stream);
3569 self.txes.to_xdr_buffered(write_stream);
3570 }
3571
3572 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3573 Ok(TransactionSet {
3574 previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
3575 txes: UnlimitedVarArray::<TransactionEnvelope>::from_xdr_buffered(read_stream)?,
3576 })
3577 }
3578}
3579
3580#[allow(dead_code)]
3582#[cfg(feature = "all-types")]
3583#[derive(Debug, Clone, Eq, PartialEq)]
3584pub struct TransactionSetV1 {
3585 pub previous_ledger_hash: Hash,
3586 pub phases: UnlimitedVarArray<TransactionPhase>,
3587}
3588
3589#[cfg(feature = "all-types")]
3590impl XdrCodec for TransactionSetV1 {
3591 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3592 self.previous_ledger_hash.to_xdr_buffered(write_stream);
3593 self.phases.to_xdr_buffered(write_stream);
3594 }
3595
3596 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3597 Ok(TransactionSetV1 {
3598 previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
3599 phases: UnlimitedVarArray::<TransactionPhase>::from_xdr_buffered(read_stream)?,
3600 })
3601 }
3602}
3603
3604#[allow(dead_code)]
3606#[cfg(feature = "all-types")]
3607#[derive(Debug, Clone, Eq, PartialEq)]
3608pub struct TransactionResultPair {
3609 pub transaction_hash: Hash,
3610 pub result: TransactionResult,
3611}
3612
3613#[cfg(feature = "all-types")]
3614impl XdrCodec for TransactionResultPair {
3615 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3616 self.transaction_hash.to_xdr_buffered(write_stream);
3617 self.result.to_xdr_buffered(write_stream);
3618 }
3619
3620 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3621 Ok(TransactionResultPair {
3622 transaction_hash: Hash::from_xdr_buffered(read_stream)?,
3623 result: TransactionResult::from_xdr_buffered(read_stream)?,
3624 })
3625 }
3626}
3627
3628#[allow(dead_code)]
3630#[cfg(feature = "all-types")]
3631#[derive(Debug, Clone, Eq, PartialEq)]
3632pub struct TransactionResultSet {
3633 pub results: UnlimitedVarArray<TransactionResultPair>,
3634}
3635
3636#[cfg(feature = "all-types")]
3637impl XdrCodec for TransactionResultSet {
3638 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3639 self.results.to_xdr_buffered(write_stream);
3640 }
3641
3642 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3643 Ok(TransactionResultSet {
3644 results: UnlimitedVarArray::<TransactionResultPair>::from_xdr_buffered(read_stream)?,
3645 })
3646 }
3647}
3648
3649#[allow(dead_code)]
3651#[cfg(feature = "all-types")]
3652#[derive(Debug, Clone, Eq, PartialEq)]
3653pub struct TransactionHistoryEntry {
3654 pub ledger_seq: Uint32,
3655 pub tx_set: TransactionSet,
3656 pub ext: TransactionHistoryEntryExt,
3657}
3658
3659#[cfg(feature = "all-types")]
3660impl XdrCodec for TransactionHistoryEntry {
3661 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3662 self.ledger_seq.to_xdr_buffered(write_stream);
3663 self.tx_set.to_xdr_buffered(write_stream);
3664 self.ext.to_xdr_buffered(write_stream);
3665 }
3666
3667 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3668 Ok(TransactionHistoryEntry {
3669 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
3670 tx_set: TransactionSet::from_xdr_buffered(read_stream)?,
3671 ext: TransactionHistoryEntryExt::from_xdr_buffered(read_stream)?,
3672 })
3673 }
3674}
3675
3676#[allow(dead_code)]
3678#[cfg(feature = "all-types")]
3679#[derive(Debug, Clone, Eq, PartialEq)]
3680pub struct TransactionHistoryResultEntry {
3681 pub ledger_seq: Uint32,
3682 pub tx_result_set: TransactionResultSet,
3683 pub ext: TransactionHistoryResultEntryExt,
3684}
3685
3686#[cfg(feature = "all-types")]
3687impl XdrCodec for TransactionHistoryResultEntry {
3688 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3689 self.ledger_seq.to_xdr_buffered(write_stream);
3690 self.tx_result_set.to_xdr_buffered(write_stream);
3691 self.ext.to_xdr_buffered(write_stream);
3692 }
3693
3694 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3695 Ok(TransactionHistoryResultEntry {
3696 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
3697 tx_result_set: TransactionResultSet::from_xdr_buffered(read_stream)?,
3698 ext: TransactionHistoryResultEntryExt::from_xdr_buffered(read_stream)?,
3699 })
3700 }
3701}
3702
3703#[allow(dead_code)]
3705#[cfg(feature = "all-types")]
3706#[derive(Debug, Clone, Eq, PartialEq)]
3707pub struct LedgerHeaderHistoryEntry {
3708 pub hash: Hash,
3709 pub header: LedgerHeader,
3710 pub ext: LedgerHeaderHistoryEntryExt,
3711}
3712
3713#[cfg(feature = "all-types")]
3714impl XdrCodec for LedgerHeaderHistoryEntry {
3715 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3716 self.hash.to_xdr_buffered(write_stream);
3717 self.header.to_xdr_buffered(write_stream);
3718 self.ext.to_xdr_buffered(write_stream);
3719 }
3720
3721 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3722 Ok(LedgerHeaderHistoryEntry {
3723 hash: Hash::from_xdr_buffered(read_stream)?,
3724 header: LedgerHeader::from_xdr_buffered(read_stream)?,
3725 ext: LedgerHeaderHistoryEntryExt::from_xdr_buffered(read_stream)?,
3726 })
3727 }
3728}
3729
3730#[allow(dead_code)]
3732#[cfg(feature = "all-types")]
3733#[derive(Debug, Clone, Eq, PartialEq)]
3734pub struct LedgerScpMessages {
3735 pub ledger_seq: Uint32,
3736 pub messages: UnlimitedVarArray<ScpEnvelope>,
3737}
3738
3739#[cfg(feature = "all-types")]
3740impl XdrCodec for LedgerScpMessages {
3741 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3742 self.ledger_seq.to_xdr_buffered(write_stream);
3743 self.messages.to_xdr_buffered(write_stream);
3744 }
3745
3746 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3747 Ok(LedgerScpMessages {
3748 ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
3749 messages: UnlimitedVarArray::<ScpEnvelope>::from_xdr_buffered(read_stream)?,
3750 })
3751 }
3752}
3753
3754#[allow(dead_code)]
3756#[cfg(feature = "all-types")]
3757#[derive(Debug, Clone, Eq, PartialEq)]
3758pub struct ScpHistoryEntryV0 {
3759 pub quorum_sets: UnlimitedVarArray<ScpQuorumSet>,
3760 pub ledger_messages: LedgerScpMessages,
3761}
3762
3763#[cfg(feature = "all-types")]
3764impl XdrCodec for ScpHistoryEntryV0 {
3765 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3766 self.quorum_sets.to_xdr_buffered(write_stream);
3767 self.ledger_messages.to_xdr_buffered(write_stream);
3768 }
3769
3770 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3771 Ok(ScpHistoryEntryV0 {
3772 quorum_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
3773 ledger_messages: LedgerScpMessages::from_xdr_buffered(read_stream)?,
3774 })
3775 }
3776}
3777
3778#[allow(dead_code)]
3780#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3781pub enum LedgerEntryChangeType {
3782 LedgerEntryCreated = 0,
3783 LedgerEntryUpdated = 1,
3784 LedgerEntryRemoved = 2,
3785 LedgerEntryState = 3,
3786}
3787
3788impl XdrCodec for LedgerEntryChangeType {
3789 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3790 let value = *self as i32;
3791 value.to_xdr_buffered(write_stream);
3792 }
3793
3794 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3795 let enum_value = i32::from_xdr_buffered(read_stream)?;
3796 match enum_value {
3797 0 => Ok(LedgerEntryChangeType::LedgerEntryCreated),
3798 1 => Ok(LedgerEntryChangeType::LedgerEntryUpdated),
3799 2 => Ok(LedgerEntryChangeType::LedgerEntryRemoved),
3800 3 => Ok(LedgerEntryChangeType::LedgerEntryState),
3801 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3802 }
3803 }
3804}
3805
3806#[allow(dead_code)]
3808pub type LedgerEntryChanges = UnlimitedVarArray<LedgerEntryChange>;
3809
3810#[allow(dead_code)]
3812#[derive(Debug, Clone, Eq, PartialEq)]
3813pub struct OperationMeta {
3814 pub changes: LedgerEntryChanges,
3815}
3816
3817impl XdrCodec for OperationMeta {
3818 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3819 self.changes.to_xdr_buffered(write_stream);
3820 }
3821
3822 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3823 Ok(OperationMeta { changes: LedgerEntryChanges::from_xdr_buffered(read_stream)? })
3824 }
3825}
3826
3827#[allow(dead_code)]
3829#[derive(Debug, Clone, Eq, PartialEq)]
3830pub struct TransactionMetaV1 {
3831 pub tx_changes: LedgerEntryChanges,
3832 pub operations: UnlimitedVarArray<OperationMeta>,
3833}
3834
3835impl XdrCodec for TransactionMetaV1 {
3836 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3837 self.tx_changes.to_xdr_buffered(write_stream);
3838 self.operations.to_xdr_buffered(write_stream);
3839 }
3840
3841 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3842 Ok(TransactionMetaV1 {
3843 tx_changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
3844 operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
3845 })
3846 }
3847}
3848
3849#[allow(dead_code)]
3851#[derive(Debug, Clone, Eq, PartialEq)]
3852pub struct TransactionMetaV2 {
3853 pub tx_changes_before: LedgerEntryChanges,
3854 pub operations: UnlimitedVarArray<OperationMeta>,
3855 pub tx_changes_after: LedgerEntryChanges,
3856}
3857
3858impl XdrCodec for TransactionMetaV2 {
3859 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3860 self.tx_changes_before.to_xdr_buffered(write_stream);
3861 self.operations.to_xdr_buffered(write_stream);
3862 self.tx_changes_after.to_xdr_buffered(write_stream);
3863 }
3864
3865 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3866 Ok(TransactionMetaV2 {
3867 tx_changes_before: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
3868 operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
3869 tx_changes_after: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
3870 })
3871 }
3872}
3873
3874#[allow(dead_code)]
3876#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3877pub enum ContractEventType {
3878 System = 0,
3879 Contract = 1,
3880 Diagnostic = 2,
3881}
3882
3883impl XdrCodec for ContractEventType {
3884 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3885 let value = *self as i32;
3886 value.to_xdr_buffered(write_stream);
3887 }
3888
3889 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3890 let enum_value = i32::from_xdr_buffered(read_stream)?;
3891 match enum_value {
3892 0 => Ok(ContractEventType::System),
3893 1 => Ok(ContractEventType::Contract),
3894 2 => Ok(ContractEventType::Diagnostic),
3895 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
3896 }
3897 }
3898}
3899
3900#[allow(dead_code)]
3902#[derive(Debug, Clone, Eq, PartialEq)]
3903pub struct ContractEventV0 {
3904 pub topics: UnlimitedVarArray<ScVal>,
3905 pub data: ScVal,
3906}
3907
3908impl XdrCodec for ContractEventV0 {
3909 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3910 self.topics.to_xdr_buffered(write_stream);
3911 self.data.to_xdr_buffered(write_stream);
3912 }
3913
3914 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3915 Ok(ContractEventV0 {
3916 topics: UnlimitedVarArray::<ScVal>::from_xdr_buffered(read_stream)?,
3917 data: ScVal::from_xdr_buffered(read_stream)?,
3918 })
3919 }
3920}
3921
3922#[allow(dead_code)]
3924#[derive(Debug, Clone, Eq, PartialEq)]
3925pub struct ContractEvent {
3926 pub ext: ExtensionPoint,
3927 pub contract_id: Option<Hash>,
3928 pub type_: ContractEventType,
3929 pub body: ContractEventBody,
3930}
3931
3932impl XdrCodec for ContractEvent {
3933 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3934 self.ext.to_xdr_buffered(write_stream);
3935 self.contract_id.to_xdr_buffered(write_stream);
3936 self.type_.to_xdr_buffered(write_stream);
3937 self.body.to_xdr_buffered(write_stream);
3938 }
3939
3940 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3941 Ok(ContractEvent {
3942 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
3943 contract_id: Option::<Hash>::from_xdr_buffered(read_stream)?,
3944 type_: ContractEventType::from_xdr_buffered(read_stream)?,
3945 body: ContractEventBody::from_xdr_buffered(read_stream)?,
3946 })
3947 }
3948}
3949
3950#[allow(dead_code)]
3952#[derive(Debug, Clone, Eq, PartialEq)]
3953pub struct DiagnosticEvent {
3954 pub in_successful_contract_call: bool,
3955 pub event: ContractEvent,
3956}
3957
3958impl XdrCodec for DiagnosticEvent {
3959 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3960 self.in_successful_contract_call.to_xdr_buffered(write_stream);
3961 self.event.to_xdr_buffered(write_stream);
3962 }
3963
3964 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3965 Ok(DiagnosticEvent {
3966 in_successful_contract_call: bool::from_xdr_buffered(read_stream)?,
3967 event: ContractEvent::from_xdr_buffered(read_stream)?,
3968 })
3969 }
3970}
3971
3972#[allow(dead_code)]
3974#[cfg(feature = "all-types")]
3975pub type DiagnosticEvents = UnlimitedVarArray<DiagnosticEvent>;
3976
3977#[allow(dead_code)]
3979#[derive(Debug, Clone, Eq, PartialEq)]
3980pub struct SorobanTransactionMetaExtV1 {
3981 pub ext: ExtensionPoint,
3982 pub total_non_refundable_resource_fee_charged: Int64,
3983 pub total_refundable_resource_fee_charged: Int64,
3984 pub rent_fee_charged: Int64,
3985}
3986
3987impl XdrCodec for SorobanTransactionMetaExtV1 {
3988 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3989 self.ext.to_xdr_buffered(write_stream);
3990 self.total_non_refundable_resource_fee_charged.to_xdr_buffered(write_stream);
3991 self.total_refundable_resource_fee_charged.to_xdr_buffered(write_stream);
3992 self.rent_fee_charged.to_xdr_buffered(write_stream);
3993 }
3994
3995 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
3996 Ok(SorobanTransactionMetaExtV1 {
3997 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
3998 total_non_refundable_resource_fee_charged: Int64::from_xdr_buffered(read_stream)?,
3999 total_refundable_resource_fee_charged: Int64::from_xdr_buffered(read_stream)?,
4000 rent_fee_charged: Int64::from_xdr_buffered(read_stream)?,
4001 })
4002 }
4003}
4004
4005#[allow(dead_code)]
4007#[derive(Debug, Clone, Eq, PartialEq)]
4008pub struct SorobanTransactionMeta {
4009 pub ext: SorobanTransactionMetaExt,
4010 pub events: UnlimitedVarArray<ContractEvent>,
4011 pub return_value: ScVal,
4012 pub diagnostic_events: UnlimitedVarArray<DiagnosticEvent>,
4013}
4014
4015impl XdrCodec for SorobanTransactionMeta {
4016 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4017 self.ext.to_xdr_buffered(write_stream);
4018 self.events.to_xdr_buffered(write_stream);
4019 self.return_value.to_xdr_buffered(write_stream);
4020 self.diagnostic_events.to_xdr_buffered(write_stream);
4021 }
4022
4023 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4024 Ok(SorobanTransactionMeta {
4025 ext: SorobanTransactionMetaExt::from_xdr_buffered(read_stream)?,
4026 events: UnlimitedVarArray::<ContractEvent>::from_xdr_buffered(read_stream)?,
4027 return_value: ScVal::from_xdr_buffered(read_stream)?,
4028 diagnostic_events: UnlimitedVarArray::<DiagnosticEvent>::from_xdr_buffered(read_stream)?,
4029 })
4030 }
4031}
4032
4033#[allow(dead_code)]
4035#[derive(Debug, Clone, Eq, PartialEq)]
4036pub struct TransactionMetaV3 {
4037 pub ext: ExtensionPoint,
4038 pub tx_changes_before: LedgerEntryChanges,
4039 pub operations: UnlimitedVarArray<OperationMeta>,
4040 pub tx_changes_after: LedgerEntryChanges,
4041 pub soroban_meta: Option<SorobanTransactionMeta>,
4042}
4043
4044impl XdrCodec for TransactionMetaV3 {
4045 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4046 self.ext.to_xdr_buffered(write_stream);
4047 self.tx_changes_before.to_xdr_buffered(write_stream);
4048 self.operations.to_xdr_buffered(write_stream);
4049 self.tx_changes_after.to_xdr_buffered(write_stream);
4050 self.soroban_meta.to_xdr_buffered(write_stream);
4051 }
4052
4053 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4054 Ok(TransactionMetaV3 {
4055 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
4056 tx_changes_before: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
4057 operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
4058 tx_changes_after: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
4059 soroban_meta: Option::<SorobanTransactionMeta>::from_xdr_buffered(read_stream)?,
4060 })
4061 }
4062}
4063
4064#[allow(dead_code)]
4066#[cfg(feature = "all-types")]
4067#[derive(Debug, Clone, Eq, PartialEq)]
4068pub struct InvokeHostFunctionSuccessPreImage {
4069 pub return_value: ScVal,
4070 pub events: UnlimitedVarArray<ContractEvent>,
4071}
4072
4073#[cfg(feature = "all-types")]
4074impl XdrCodec for InvokeHostFunctionSuccessPreImage {
4075 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4076 self.return_value.to_xdr_buffered(write_stream);
4077 self.events.to_xdr_buffered(write_stream);
4078 }
4079
4080 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4081 Ok(InvokeHostFunctionSuccessPreImage {
4082 return_value: ScVal::from_xdr_buffered(read_stream)?,
4083 events: UnlimitedVarArray::<ContractEvent>::from_xdr_buffered(read_stream)?,
4084 })
4085 }
4086}
4087
4088#[allow(dead_code)]
4090#[cfg(feature = "all-types")]
4091#[derive(Debug, Clone, Eq, PartialEq)]
4092pub struct TransactionResultMeta {
4093 pub result: TransactionResultPair,
4094 pub fee_processing: LedgerEntryChanges,
4095 pub tx_apply_processing: TransactionMeta,
4096}
4097
4098#[cfg(feature = "all-types")]
4099impl XdrCodec for TransactionResultMeta {
4100 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4101 self.result.to_xdr_buffered(write_stream);
4102 self.fee_processing.to_xdr_buffered(write_stream);
4103 self.tx_apply_processing.to_xdr_buffered(write_stream);
4104 }
4105
4106 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4107 Ok(TransactionResultMeta {
4108 result: TransactionResultPair::from_xdr_buffered(read_stream)?,
4109 fee_processing: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
4110 tx_apply_processing: TransactionMeta::from_xdr_buffered(read_stream)?,
4111 })
4112 }
4113}
4114
4115#[allow(dead_code)]
4117#[cfg(feature = "all-types")]
4118#[derive(Debug, Clone, Eq, PartialEq)]
4119pub struct UpgradeEntryMeta {
4120 pub upgrade: LedgerUpgrade,
4121 pub changes: LedgerEntryChanges,
4122}
4123
4124#[cfg(feature = "all-types")]
4125impl XdrCodec for UpgradeEntryMeta {
4126 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4127 self.upgrade.to_xdr_buffered(write_stream);
4128 self.changes.to_xdr_buffered(write_stream);
4129 }
4130
4131 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4132 Ok(UpgradeEntryMeta {
4133 upgrade: LedgerUpgrade::from_xdr_buffered(read_stream)?,
4134 changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
4135 })
4136 }
4137}
4138
4139#[allow(dead_code)]
4141#[cfg(feature = "all-types")]
4142#[derive(Debug, Clone, Eq, PartialEq)]
4143pub struct LedgerCloseMetaV0 {
4144 pub ledger_header: LedgerHeaderHistoryEntry,
4145 pub tx_set: TransactionSet,
4146 pub tx_processing: UnlimitedVarArray<TransactionResultMeta>,
4147 pub upgrades_processing: UnlimitedVarArray<UpgradeEntryMeta>,
4148 pub scp_info: UnlimitedVarArray<ScpHistoryEntry>,
4149}
4150
4151#[cfg(feature = "all-types")]
4152impl XdrCodec for LedgerCloseMetaV0 {
4153 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4154 self.ledger_header.to_xdr_buffered(write_stream);
4155 self.tx_set.to_xdr_buffered(write_stream);
4156 self.tx_processing.to_xdr_buffered(write_stream);
4157 self.upgrades_processing.to_xdr_buffered(write_stream);
4158 self.scp_info.to_xdr_buffered(write_stream);
4159 }
4160
4161 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4162 Ok(LedgerCloseMetaV0 {
4163 ledger_header: LedgerHeaderHistoryEntry::from_xdr_buffered(read_stream)?,
4164 tx_set: TransactionSet::from_xdr_buffered(read_stream)?,
4165 tx_processing: UnlimitedVarArray::<TransactionResultMeta>::from_xdr_buffered(read_stream)?,
4166 upgrades_processing: UnlimitedVarArray::<UpgradeEntryMeta>::from_xdr_buffered(read_stream)?,
4167 scp_info: UnlimitedVarArray::<ScpHistoryEntry>::from_xdr_buffered(read_stream)?,
4168 })
4169 }
4170}
4171
4172#[allow(dead_code)]
4174#[cfg(feature = "all-types")]
4175#[derive(Debug, Clone, Eq, PartialEq)]
4176pub struct LedgerCloseMetaExtV1 {
4177 pub ext: ExtensionPoint,
4178 pub soroban_fee_write1_kb: Int64,
4179}
4180
4181#[cfg(feature = "all-types")]
4182impl XdrCodec for LedgerCloseMetaExtV1 {
4183 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4184 self.ext.to_xdr_buffered(write_stream);
4185 self.soroban_fee_write1_kb.to_xdr_buffered(write_stream);
4186 }
4187
4188 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4189 Ok(LedgerCloseMetaExtV1 {
4190 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
4191 soroban_fee_write1_kb: Int64::from_xdr_buffered(read_stream)?,
4192 })
4193 }
4194}
4195
4196#[allow(dead_code)]
4198#[cfg(feature = "all-types")]
4199#[derive(Debug, Clone, Eq, PartialEq)]
4200pub struct LedgerCloseMetaV1 {
4201 pub ext: LedgerCloseMetaExt,
4202 pub ledger_header: LedgerHeaderHistoryEntry,
4203 pub tx_set: GeneralizedTransactionSet,
4204 pub tx_processing: UnlimitedVarArray<TransactionResultMeta>,
4205 pub upgrades_processing: UnlimitedVarArray<UpgradeEntryMeta>,
4206 pub scp_info: UnlimitedVarArray<ScpHistoryEntry>,
4207 pub total_byte_size_of_bucket_list: Uint64,
4208 pub evicted_temporary_ledger_keys: UnlimitedVarArray<LedgerKey>,
4209 pub evicted_persistent_ledger_entries: UnlimitedVarArray<LedgerEntry>,
4210}
4211
4212#[cfg(feature = "all-types")]
4213impl XdrCodec for LedgerCloseMetaV1 {
4214 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4215 self.ext.to_xdr_buffered(write_stream);
4216 self.ledger_header.to_xdr_buffered(write_stream);
4217 self.tx_set.to_xdr_buffered(write_stream);
4218 self.tx_processing.to_xdr_buffered(write_stream);
4219 self.upgrades_processing.to_xdr_buffered(write_stream);
4220 self.scp_info.to_xdr_buffered(write_stream);
4221 self.total_byte_size_of_bucket_list.to_xdr_buffered(write_stream);
4222 self.evicted_temporary_ledger_keys.to_xdr_buffered(write_stream);
4223 self.evicted_persistent_ledger_entries.to_xdr_buffered(write_stream);
4224 }
4225
4226 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4227 Ok(LedgerCloseMetaV1 {
4228 ext: LedgerCloseMetaExt::from_xdr_buffered(read_stream)?,
4229 ledger_header: LedgerHeaderHistoryEntry::from_xdr_buffered(read_stream)?,
4230 tx_set: GeneralizedTransactionSet::from_xdr_buffered(read_stream)?,
4231 tx_processing: UnlimitedVarArray::<TransactionResultMeta>::from_xdr_buffered(read_stream)?,
4232 upgrades_processing: UnlimitedVarArray::<UpgradeEntryMeta>::from_xdr_buffered(read_stream)?,
4233 scp_info: UnlimitedVarArray::<ScpHistoryEntry>::from_xdr_buffered(read_stream)?,
4234 total_byte_size_of_bucket_list: Uint64::from_xdr_buffered(read_stream)?,
4235 evicted_temporary_ledger_keys: UnlimitedVarArray::<LedgerKey>::from_xdr_buffered(read_stream)?,
4236 evicted_persistent_ledger_entries: UnlimitedVarArray::<LedgerEntry>::from_xdr_buffered(read_stream)?,
4237 })
4238 }
4239}
4240
4241#[allow(dead_code)]
4243#[cfg(feature = "all-types")]
4244#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4245pub enum ErrorCode {
4246 ErrMisc = 0,
4247 ErrData = 1,
4248 ErrConf = 2,
4249 ErrAuth = 3,
4250 ErrLoad = 4,
4251}
4252
4253#[cfg(feature = "all-types")]
4254impl XdrCodec for ErrorCode {
4255 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4256 let value = *self as i32;
4257 value.to_xdr_buffered(write_stream);
4258 }
4259
4260 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4261 let enum_value = i32::from_xdr_buffered(read_stream)?;
4262 match enum_value {
4263 0 => Ok(ErrorCode::ErrMisc),
4264 1 => Ok(ErrorCode::ErrData),
4265 2 => Ok(ErrorCode::ErrConf),
4266 3 => Ok(ErrorCode::ErrAuth),
4267 4 => Ok(ErrorCode::ErrLoad),
4268 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
4269 }
4270 }
4271}
4272
4273#[allow(dead_code)]
4275#[cfg(feature = "all-types")]
4276#[derive(Debug, Clone, Eq, PartialEq)]
4277pub struct Error {
4278 pub code: ErrorCode,
4279 pub msg: LimitedString<100>,
4280}
4281
4282#[cfg(feature = "all-types")]
4283impl XdrCodec for Error {
4284 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4285 self.code.to_xdr_buffered(write_stream);
4286 self.msg.to_xdr_buffered(write_stream);
4287 }
4288
4289 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4290 Ok(Error {
4291 code: ErrorCode::from_xdr_buffered(read_stream)?,
4292 msg: LimitedString::<100>::from_xdr_buffered(read_stream)?,
4293 })
4294 }
4295}
4296
4297#[allow(dead_code)]
4299#[cfg(feature = "all-types")]
4300#[derive(Debug, Clone, Eq, PartialEq)]
4301pub struct SendMore {
4302 pub num_messages: Uint32,
4303}
4304
4305#[cfg(feature = "all-types")]
4306impl XdrCodec for SendMore {
4307 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4308 self.num_messages.to_xdr_buffered(write_stream);
4309 }
4310
4311 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4312 Ok(SendMore { num_messages: Uint32::from_xdr_buffered(read_stream)? })
4313 }
4314}
4315
4316#[allow(dead_code)]
4318#[cfg(feature = "all-types")]
4319#[derive(Debug, Clone, Eq, PartialEq)]
4320pub struct SendMoreExtended {
4321 pub num_messages: Uint32,
4322 pub num_bytes: Uint32,
4323}
4324
4325#[cfg(feature = "all-types")]
4326impl XdrCodec for SendMoreExtended {
4327 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4328 self.num_messages.to_xdr_buffered(write_stream);
4329 self.num_bytes.to_xdr_buffered(write_stream);
4330 }
4331
4332 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4333 Ok(SendMoreExtended {
4334 num_messages: Uint32::from_xdr_buffered(read_stream)?,
4335 num_bytes: Uint32::from_xdr_buffered(read_stream)?,
4336 })
4337 }
4338}
4339
4340#[allow(dead_code)]
4342#[cfg(feature = "all-types")]
4343#[derive(Debug, Clone, Eq, PartialEq)]
4344pub struct AuthCert {
4345 pub pubkey: Curve25519Public,
4346 pub expiration: Uint64,
4347 pub sig: Signature,
4348}
4349
4350#[cfg(feature = "all-types")]
4351impl XdrCodec for AuthCert {
4352 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4353 self.pubkey.to_xdr_buffered(write_stream);
4354 self.expiration.to_xdr_buffered(write_stream);
4355 self.sig.to_xdr_buffered(write_stream);
4356 }
4357
4358 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4359 Ok(AuthCert {
4360 pubkey: Curve25519Public::from_xdr_buffered(read_stream)?,
4361 expiration: Uint64::from_xdr_buffered(read_stream)?,
4362 sig: Signature::from_xdr_buffered(read_stream)?,
4363 })
4364 }
4365}
4366
4367#[allow(dead_code)]
4369#[cfg(feature = "all-types")]
4370#[derive(Debug, Clone, Eq, PartialEq)]
4371pub struct Hello {
4372 pub ledger_version: Uint32,
4373 pub overlay_version: Uint32,
4374 pub overlay_min_version: Uint32,
4375 pub network_id: Hash,
4376 pub version_str: LimitedString<100>,
4377 pub listening_port: i32,
4378 pub peer_id: NodeId,
4379 pub cert: AuthCert,
4380 pub nonce: Uint256,
4381}
4382
4383#[cfg(feature = "all-types")]
4384impl XdrCodec for Hello {
4385 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4386 self.ledger_version.to_xdr_buffered(write_stream);
4387 self.overlay_version.to_xdr_buffered(write_stream);
4388 self.overlay_min_version.to_xdr_buffered(write_stream);
4389 self.network_id.to_xdr_buffered(write_stream);
4390 self.version_str.to_xdr_buffered(write_stream);
4391 self.listening_port.to_xdr_buffered(write_stream);
4392 self.peer_id.to_xdr_buffered(write_stream);
4393 self.cert.to_xdr_buffered(write_stream);
4394 self.nonce.to_xdr_buffered(write_stream);
4395 }
4396
4397 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4398 Ok(Hello {
4399 ledger_version: Uint32::from_xdr_buffered(read_stream)?,
4400 overlay_version: Uint32::from_xdr_buffered(read_stream)?,
4401 overlay_min_version: Uint32::from_xdr_buffered(read_stream)?,
4402 network_id: Hash::from_xdr_buffered(read_stream)?,
4403 version_str: LimitedString::<100>::from_xdr_buffered(read_stream)?,
4404 listening_port: i32::from_xdr_buffered(read_stream)?,
4405 peer_id: NodeId::from_xdr_buffered(read_stream)?,
4406 cert: AuthCert::from_xdr_buffered(read_stream)?,
4407 nonce: Uint256::from_xdr_buffered(read_stream)?,
4408 })
4409 }
4410}
4411
4412#[allow(dead_code)]
4414#[cfg(feature = "all-types")]
4415#[derive(Debug, Clone, Eq, PartialEq)]
4416pub struct Auth {
4417 pub flags: i32,
4418}
4419
4420#[cfg(feature = "all-types")]
4421impl XdrCodec for Auth {
4422 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4423 self.flags.to_xdr_buffered(write_stream);
4424 }
4425
4426 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4427 Ok(Auth { flags: i32::from_xdr_buffered(read_stream)? })
4428 }
4429}
4430
4431#[allow(dead_code)]
4433#[cfg(feature = "all-types")]
4434#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4435pub enum IpAddrType {
4436 IPv4 = 0,
4437 IPv6 = 1,
4438}
4439
4440#[cfg(feature = "all-types")]
4441impl XdrCodec for IpAddrType {
4442 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4443 let value = *self as i32;
4444 value.to_xdr_buffered(write_stream);
4445 }
4446
4447 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4448 let enum_value = i32::from_xdr_buffered(read_stream)?;
4449 match enum_value {
4450 0 => Ok(IpAddrType::IPv4),
4451 1 => Ok(IpAddrType::IPv6),
4452 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
4453 }
4454 }
4455}
4456
4457#[allow(dead_code)]
4459#[cfg(feature = "all-types")]
4460#[derive(Debug, Clone, Eq, PartialEq)]
4461pub struct PeerAddress {
4462 pub ip: PeerAddressIp,
4463 pub port: Uint32,
4464 pub num_failures: Uint32,
4465}
4466
4467#[cfg(feature = "all-types")]
4468impl XdrCodec for PeerAddress {
4469 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4470 self.ip.to_xdr_buffered(write_stream);
4471 self.port.to_xdr_buffered(write_stream);
4472 self.num_failures.to_xdr_buffered(write_stream);
4473 }
4474
4475 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4476 Ok(PeerAddress {
4477 ip: PeerAddressIp::from_xdr_buffered(read_stream)?,
4478 port: Uint32::from_xdr_buffered(read_stream)?,
4479 num_failures: Uint32::from_xdr_buffered(read_stream)?,
4480 })
4481 }
4482}
4483
4484#[allow(dead_code)]
4486#[cfg(feature = "all-types")]
4487#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4488pub enum MessageType {
4489 ErrorMsg = 0,
4490 Auth = 2,
4491 DontHave = 3,
4492 GetPeers = 4,
4493 Peers = 5,
4494 GetTxSet = 6,
4495 TxSet = 7,
4496 GeneralizedTxSet = 17,
4497 Transaction = 8,
4498 GetScpQuorumset = 9,
4499 ScpQuorumset = 10,
4500 ScpMessage = 11,
4501 GetScpState = 12,
4502 Hello = 13,
4503 SurveyRequest = 14,
4504 SurveyResponse = 15,
4505 SendMore = 16,
4506 SendMoreExtended = 20,
4507 FloodAdvert = 18,
4508 FloodDemand = 19,
4509 TimeSlicedSurveyRequest = 21,
4510 TimeSlicedSurveyResponse = 22,
4511 TimeSlicedSurveyStartCollecting = 23,
4512 TimeSlicedSurveyStopCollecting = 24,
4513}
4514
4515#[cfg(feature = "all-types")]
4516impl XdrCodec for MessageType {
4517 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4518 let value = *self as i32;
4519 value.to_xdr_buffered(write_stream);
4520 }
4521
4522 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4523 let enum_value = i32::from_xdr_buffered(read_stream)?;
4524 match enum_value {
4525 0 => Ok(MessageType::ErrorMsg),
4526 2 => Ok(MessageType::Auth),
4527 3 => Ok(MessageType::DontHave),
4528 4 => Ok(MessageType::GetPeers),
4529 5 => Ok(MessageType::Peers),
4530 6 => Ok(MessageType::GetTxSet),
4531 7 => Ok(MessageType::TxSet),
4532 17 => Ok(MessageType::GeneralizedTxSet),
4533 8 => Ok(MessageType::Transaction),
4534 9 => Ok(MessageType::GetScpQuorumset),
4535 10 => Ok(MessageType::ScpQuorumset),
4536 11 => Ok(MessageType::ScpMessage),
4537 12 => Ok(MessageType::GetScpState),
4538 13 => Ok(MessageType::Hello),
4539 14 => Ok(MessageType::SurveyRequest),
4540 15 => Ok(MessageType::SurveyResponse),
4541 16 => Ok(MessageType::SendMore),
4542 20 => Ok(MessageType::SendMoreExtended),
4543 18 => Ok(MessageType::FloodAdvert),
4544 19 => Ok(MessageType::FloodDemand),
4545 21 => Ok(MessageType::TimeSlicedSurveyRequest),
4546 22 => Ok(MessageType::TimeSlicedSurveyResponse),
4547 23 => Ok(MessageType::TimeSlicedSurveyStartCollecting),
4548 24 => Ok(MessageType::TimeSlicedSurveyStopCollecting),
4549 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
4550 }
4551 }
4552}
4553
4554#[allow(dead_code)]
4556#[cfg(feature = "all-types")]
4557#[derive(Debug, Clone, Eq, PartialEq)]
4558pub struct DontHave {
4559 pub type_: MessageType,
4560 pub req_hash: Uint256,
4561}
4562
4563#[cfg(feature = "all-types")]
4564impl XdrCodec for DontHave {
4565 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4566 self.type_.to_xdr_buffered(write_stream);
4567 self.req_hash.to_xdr_buffered(write_stream);
4568 }
4569
4570 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4571 Ok(DontHave {
4572 type_: MessageType::from_xdr_buffered(read_stream)?,
4573 req_hash: Uint256::from_xdr_buffered(read_stream)?,
4574 })
4575 }
4576}
4577
4578#[allow(dead_code)]
4580#[cfg(feature = "all-types")]
4581#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4582pub enum SurveyMessageCommandType {
4583 SurveyTopology = 0,
4584 TimeSlicedSurveyTopology = 1,
4585}
4586
4587#[cfg(feature = "all-types")]
4588impl XdrCodec for SurveyMessageCommandType {
4589 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4590 let value = *self as i32;
4591 value.to_xdr_buffered(write_stream);
4592 }
4593
4594 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4595 let enum_value = i32::from_xdr_buffered(read_stream)?;
4596 match enum_value {
4597 0 => Ok(SurveyMessageCommandType::SurveyTopology),
4598 1 => Ok(SurveyMessageCommandType::TimeSlicedSurveyTopology),
4599 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
4600 }
4601 }
4602}
4603
4604#[allow(dead_code)]
4606#[cfg(feature = "all-types")]
4607#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4608pub enum SurveyMessageResponseType {
4609 SurveyTopologyResponseV0 = 0,
4610 SurveyTopologyResponseV1 = 1,
4611 SurveyTopologyResponseV2 = 2,
4612}
4613
4614#[cfg(feature = "all-types")]
4615impl XdrCodec for SurveyMessageResponseType {
4616 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4617 let value = *self as i32;
4618 value.to_xdr_buffered(write_stream);
4619 }
4620
4621 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4622 let enum_value = i32::from_xdr_buffered(read_stream)?;
4623 match enum_value {
4624 0 => Ok(SurveyMessageResponseType::SurveyTopologyResponseV0),
4625 1 => Ok(SurveyMessageResponseType::SurveyTopologyResponseV1),
4626 2 => Ok(SurveyMessageResponseType::SurveyTopologyResponseV2),
4627 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
4628 }
4629 }
4630}
4631
4632#[allow(dead_code)]
4634#[cfg(feature = "all-types")]
4635#[derive(Debug, Clone, Eq, PartialEq)]
4636pub struct TimeSlicedSurveyStartCollectingMessage {
4637 pub surveyor_id: NodeId,
4638 pub nonce: Uint32,
4639 pub ledger_num: Uint32,
4640}
4641
4642#[cfg(feature = "all-types")]
4643impl XdrCodec for TimeSlicedSurveyStartCollectingMessage {
4644 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4645 self.surveyor_id.to_xdr_buffered(write_stream);
4646 self.nonce.to_xdr_buffered(write_stream);
4647 self.ledger_num.to_xdr_buffered(write_stream);
4648 }
4649
4650 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4651 Ok(TimeSlicedSurveyStartCollectingMessage {
4652 surveyor_id: NodeId::from_xdr_buffered(read_stream)?,
4653 nonce: Uint32::from_xdr_buffered(read_stream)?,
4654 ledger_num: Uint32::from_xdr_buffered(read_stream)?,
4655 })
4656 }
4657}
4658
4659#[allow(dead_code)]
4661#[cfg(feature = "all-types")]
4662#[derive(Debug, Clone, Eq, PartialEq)]
4663pub struct SignedTimeSlicedSurveyStartCollectingMessage {
4664 pub signature: Signature,
4665 pub start_collecting: TimeSlicedSurveyStartCollectingMessage,
4666}
4667
4668#[cfg(feature = "all-types")]
4669impl XdrCodec for SignedTimeSlicedSurveyStartCollectingMessage {
4670 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4671 self.signature.to_xdr_buffered(write_stream);
4672 self.start_collecting.to_xdr_buffered(write_stream);
4673 }
4674
4675 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4676 Ok(SignedTimeSlicedSurveyStartCollectingMessage {
4677 signature: Signature::from_xdr_buffered(read_stream)?,
4678 start_collecting: TimeSlicedSurveyStartCollectingMessage::from_xdr_buffered(read_stream)?,
4679 })
4680 }
4681}
4682
4683#[allow(dead_code)]
4685#[cfg(feature = "all-types")]
4686#[derive(Debug, Clone, Eq, PartialEq)]
4687pub struct TimeSlicedSurveyStopCollectingMessage {
4688 pub surveyor_id: NodeId,
4689 pub nonce: Uint32,
4690 pub ledger_num: Uint32,
4691}
4692
4693#[cfg(feature = "all-types")]
4694impl XdrCodec for TimeSlicedSurveyStopCollectingMessage {
4695 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4696 self.surveyor_id.to_xdr_buffered(write_stream);
4697 self.nonce.to_xdr_buffered(write_stream);
4698 self.ledger_num.to_xdr_buffered(write_stream);
4699 }
4700
4701 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4702 Ok(TimeSlicedSurveyStopCollectingMessage {
4703 surveyor_id: NodeId::from_xdr_buffered(read_stream)?,
4704 nonce: Uint32::from_xdr_buffered(read_stream)?,
4705 ledger_num: Uint32::from_xdr_buffered(read_stream)?,
4706 })
4707 }
4708}
4709
4710#[allow(dead_code)]
4712#[cfg(feature = "all-types")]
4713#[derive(Debug, Clone, Eq, PartialEq)]
4714pub struct SignedTimeSlicedSurveyStopCollectingMessage {
4715 pub signature: Signature,
4716 pub stop_collecting: TimeSlicedSurveyStopCollectingMessage,
4717}
4718
4719#[cfg(feature = "all-types")]
4720impl XdrCodec for SignedTimeSlicedSurveyStopCollectingMessage {
4721 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4722 self.signature.to_xdr_buffered(write_stream);
4723 self.stop_collecting.to_xdr_buffered(write_stream);
4724 }
4725
4726 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4727 Ok(SignedTimeSlicedSurveyStopCollectingMessage {
4728 signature: Signature::from_xdr_buffered(read_stream)?,
4729 stop_collecting: TimeSlicedSurveyStopCollectingMessage::from_xdr_buffered(read_stream)?,
4730 })
4731 }
4732}
4733
4734#[allow(dead_code)]
4736#[cfg(feature = "all-types")]
4737#[derive(Debug, Clone, Eq, PartialEq)]
4738pub struct SurveyRequestMessage {
4739 pub surveyor_peer_id: NodeId,
4740 pub surveyed_peer_id: NodeId,
4741 pub ledger_num: Uint32,
4742 pub encryption_key: Curve25519Public,
4743 pub command_type: SurveyMessageCommandType,
4744}
4745
4746#[cfg(feature = "all-types")]
4747impl XdrCodec for SurveyRequestMessage {
4748 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4749 self.surveyor_peer_id.to_xdr_buffered(write_stream);
4750 self.surveyed_peer_id.to_xdr_buffered(write_stream);
4751 self.ledger_num.to_xdr_buffered(write_stream);
4752 self.encryption_key.to_xdr_buffered(write_stream);
4753 self.command_type.to_xdr_buffered(write_stream);
4754 }
4755
4756 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4757 Ok(SurveyRequestMessage {
4758 surveyor_peer_id: NodeId::from_xdr_buffered(read_stream)?,
4759 surveyed_peer_id: NodeId::from_xdr_buffered(read_stream)?,
4760 ledger_num: Uint32::from_xdr_buffered(read_stream)?,
4761 encryption_key: Curve25519Public::from_xdr_buffered(read_stream)?,
4762 command_type: SurveyMessageCommandType::from_xdr_buffered(read_stream)?,
4763 })
4764 }
4765}
4766
4767#[allow(dead_code)]
4769#[cfg(feature = "all-types")]
4770#[derive(Debug, Clone, Eq, PartialEq)]
4771pub struct TimeSlicedSurveyRequestMessage {
4772 pub request: SurveyRequestMessage,
4773 pub nonce: Uint32,
4774 pub inbound_peers_index: Uint32,
4775 pub outbound_peers_index: Uint32,
4776}
4777
4778#[cfg(feature = "all-types")]
4779impl XdrCodec for TimeSlicedSurveyRequestMessage {
4780 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4781 self.request.to_xdr_buffered(write_stream);
4782 self.nonce.to_xdr_buffered(write_stream);
4783 self.inbound_peers_index.to_xdr_buffered(write_stream);
4784 self.outbound_peers_index.to_xdr_buffered(write_stream);
4785 }
4786
4787 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4788 Ok(TimeSlicedSurveyRequestMessage {
4789 request: SurveyRequestMessage::from_xdr_buffered(read_stream)?,
4790 nonce: Uint32::from_xdr_buffered(read_stream)?,
4791 inbound_peers_index: Uint32::from_xdr_buffered(read_stream)?,
4792 outbound_peers_index: Uint32::from_xdr_buffered(read_stream)?,
4793 })
4794 }
4795}
4796
4797#[allow(dead_code)]
4799#[cfg(feature = "all-types")]
4800#[derive(Debug, Clone, Eq, PartialEq)]
4801pub struct SignedSurveyRequestMessage {
4802 pub request_signature: Signature,
4803 pub request: SurveyRequestMessage,
4804}
4805
4806#[cfg(feature = "all-types")]
4807impl XdrCodec for SignedSurveyRequestMessage {
4808 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4809 self.request_signature.to_xdr_buffered(write_stream);
4810 self.request.to_xdr_buffered(write_stream);
4811 }
4812
4813 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4814 Ok(SignedSurveyRequestMessage {
4815 request_signature: Signature::from_xdr_buffered(read_stream)?,
4816 request: SurveyRequestMessage::from_xdr_buffered(read_stream)?,
4817 })
4818 }
4819}
4820
4821#[allow(dead_code)]
4823#[cfg(feature = "all-types")]
4824#[derive(Debug, Clone, Eq, PartialEq)]
4825pub struct SignedTimeSlicedSurveyRequestMessage {
4826 pub request_signature: Signature,
4827 pub request: TimeSlicedSurveyRequestMessage,
4828}
4829
4830#[cfg(feature = "all-types")]
4831impl XdrCodec for SignedTimeSlicedSurveyRequestMessage {
4832 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4833 self.request_signature.to_xdr_buffered(write_stream);
4834 self.request.to_xdr_buffered(write_stream);
4835 }
4836
4837 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4838 Ok(SignedTimeSlicedSurveyRequestMessage {
4839 request_signature: Signature::from_xdr_buffered(read_stream)?,
4840 request: TimeSlicedSurveyRequestMessage::from_xdr_buffered(read_stream)?,
4841 })
4842 }
4843}
4844
4845#[allow(dead_code)]
4847#[cfg(feature = "all-types")]
4848pub type EncryptedBody = LimitedVarOpaque<64000>;
4849
4850#[allow(dead_code)]
4852#[cfg(feature = "all-types")]
4853#[derive(Debug, Clone, Eq, PartialEq)]
4854pub struct SurveyResponseMessage {
4855 pub surveyor_peer_id: NodeId,
4856 pub surveyed_peer_id: NodeId,
4857 pub ledger_num: Uint32,
4858 pub command_type: SurveyMessageCommandType,
4859 pub encrypted_body: EncryptedBody,
4860}
4861
4862#[cfg(feature = "all-types")]
4863impl XdrCodec for SurveyResponseMessage {
4864 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4865 self.surveyor_peer_id.to_xdr_buffered(write_stream);
4866 self.surveyed_peer_id.to_xdr_buffered(write_stream);
4867 self.ledger_num.to_xdr_buffered(write_stream);
4868 self.command_type.to_xdr_buffered(write_stream);
4869 self.encrypted_body.to_xdr_buffered(write_stream);
4870 }
4871
4872 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4873 Ok(SurveyResponseMessage {
4874 surveyor_peer_id: NodeId::from_xdr_buffered(read_stream)?,
4875 surveyed_peer_id: NodeId::from_xdr_buffered(read_stream)?,
4876 ledger_num: Uint32::from_xdr_buffered(read_stream)?,
4877 command_type: SurveyMessageCommandType::from_xdr_buffered(read_stream)?,
4878 encrypted_body: EncryptedBody::from_xdr_buffered(read_stream)?,
4879 })
4880 }
4881}
4882
4883#[allow(dead_code)]
4885#[cfg(feature = "all-types")]
4886#[derive(Debug, Clone, Eq, PartialEq)]
4887pub struct TimeSlicedSurveyResponseMessage {
4888 pub response: SurveyResponseMessage,
4889 pub nonce: Uint32,
4890}
4891
4892#[cfg(feature = "all-types")]
4893impl XdrCodec for TimeSlicedSurveyResponseMessage {
4894 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4895 self.response.to_xdr_buffered(write_stream);
4896 self.nonce.to_xdr_buffered(write_stream);
4897 }
4898
4899 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4900 Ok(TimeSlicedSurveyResponseMessage {
4901 response: SurveyResponseMessage::from_xdr_buffered(read_stream)?,
4902 nonce: Uint32::from_xdr_buffered(read_stream)?,
4903 })
4904 }
4905}
4906
4907#[allow(dead_code)]
4909#[cfg(feature = "all-types")]
4910#[derive(Debug, Clone, Eq, PartialEq)]
4911pub struct SignedSurveyResponseMessage {
4912 pub response_signature: Signature,
4913 pub response: SurveyResponseMessage,
4914}
4915
4916#[cfg(feature = "all-types")]
4917impl XdrCodec for SignedSurveyResponseMessage {
4918 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4919 self.response_signature.to_xdr_buffered(write_stream);
4920 self.response.to_xdr_buffered(write_stream);
4921 }
4922
4923 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4924 Ok(SignedSurveyResponseMessage {
4925 response_signature: Signature::from_xdr_buffered(read_stream)?,
4926 response: SurveyResponseMessage::from_xdr_buffered(read_stream)?,
4927 })
4928 }
4929}
4930
4931#[allow(dead_code)]
4933#[cfg(feature = "all-types")]
4934#[derive(Debug, Clone, Eq, PartialEq)]
4935pub struct SignedTimeSlicedSurveyResponseMessage {
4936 pub response_signature: Signature,
4937 pub response: TimeSlicedSurveyResponseMessage,
4938}
4939
4940#[cfg(feature = "all-types")]
4941impl XdrCodec for SignedTimeSlicedSurveyResponseMessage {
4942 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4943 self.response_signature.to_xdr_buffered(write_stream);
4944 self.response.to_xdr_buffered(write_stream);
4945 }
4946
4947 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4948 Ok(SignedTimeSlicedSurveyResponseMessage {
4949 response_signature: Signature::from_xdr_buffered(read_stream)?,
4950 response: TimeSlicedSurveyResponseMessage::from_xdr_buffered(read_stream)?,
4951 })
4952 }
4953}
4954
4955#[allow(dead_code)]
4957#[cfg(feature = "all-types")]
4958#[derive(Debug, Clone, Eq, PartialEq)]
4959pub struct PeerStats {
4960 pub id: NodeId,
4961 pub version_str: LimitedString<100>,
4962 pub messages_read: Uint64,
4963 pub messages_written: Uint64,
4964 pub bytes_read: Uint64,
4965 pub bytes_written: Uint64,
4966 pub seconds_connected: Uint64,
4967 pub unique_flood_bytes_recv: Uint64,
4968 pub duplicate_flood_bytes_recv: Uint64,
4969 pub unique_fetch_bytes_recv: Uint64,
4970 pub duplicate_fetch_bytes_recv: Uint64,
4971 pub unique_flood_message_recv: Uint64,
4972 pub duplicate_flood_message_recv: Uint64,
4973 pub unique_fetch_message_recv: Uint64,
4974 pub duplicate_fetch_message_recv: Uint64,
4975}
4976
4977#[cfg(feature = "all-types")]
4978impl XdrCodec for PeerStats {
4979 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4980 self.id.to_xdr_buffered(write_stream);
4981 self.version_str.to_xdr_buffered(write_stream);
4982 self.messages_read.to_xdr_buffered(write_stream);
4983 self.messages_written.to_xdr_buffered(write_stream);
4984 self.bytes_read.to_xdr_buffered(write_stream);
4985 self.bytes_written.to_xdr_buffered(write_stream);
4986 self.seconds_connected.to_xdr_buffered(write_stream);
4987 self.unique_flood_bytes_recv.to_xdr_buffered(write_stream);
4988 self.duplicate_flood_bytes_recv.to_xdr_buffered(write_stream);
4989 self.unique_fetch_bytes_recv.to_xdr_buffered(write_stream);
4990 self.duplicate_fetch_bytes_recv.to_xdr_buffered(write_stream);
4991 self.unique_flood_message_recv.to_xdr_buffered(write_stream);
4992 self.duplicate_flood_message_recv.to_xdr_buffered(write_stream);
4993 self.unique_fetch_message_recv.to_xdr_buffered(write_stream);
4994 self.duplicate_fetch_message_recv.to_xdr_buffered(write_stream);
4995 }
4996
4997 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
4998 Ok(PeerStats {
4999 id: NodeId::from_xdr_buffered(read_stream)?,
5000 version_str: LimitedString::<100>::from_xdr_buffered(read_stream)?,
5001 messages_read: Uint64::from_xdr_buffered(read_stream)?,
5002 messages_written: Uint64::from_xdr_buffered(read_stream)?,
5003 bytes_read: Uint64::from_xdr_buffered(read_stream)?,
5004 bytes_written: Uint64::from_xdr_buffered(read_stream)?,
5005 seconds_connected: Uint64::from_xdr_buffered(read_stream)?,
5006 unique_flood_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
5007 duplicate_flood_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
5008 unique_fetch_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
5009 duplicate_fetch_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
5010 unique_flood_message_recv: Uint64::from_xdr_buffered(read_stream)?,
5011 duplicate_flood_message_recv: Uint64::from_xdr_buffered(read_stream)?,
5012 unique_fetch_message_recv: Uint64::from_xdr_buffered(read_stream)?,
5013 duplicate_fetch_message_recv: Uint64::from_xdr_buffered(read_stream)?,
5014 })
5015 }
5016}
5017
5018#[allow(dead_code)]
5020#[cfg(feature = "all-types")]
5021pub type PeerStatList = LimitedVarArray<PeerStats, 25>;
5022
5023#[allow(dead_code)]
5025#[cfg(feature = "all-types")]
5026#[derive(Debug, Clone, Eq, PartialEq)]
5027pub struct TimeSlicedNodeData {
5028 pub added_authenticated_peers: Uint32,
5029 pub dropped_authenticated_peers: Uint32,
5030 pub total_inbound_peer_count: Uint32,
5031 pub total_outbound_peer_count: Uint32,
5032 pub p75_scp_first_to_self_latency_ns: Uint32,
5033 pub p75_scp_self_to_other_latency_ns: Uint32,
5034 pub lost_sync_count: Uint32,
5035 pub is_validator: bool,
5036 pub max_inbound_peer_count: Uint32,
5037 pub max_outbound_peer_count: Uint32,
5038}
5039
5040#[cfg(feature = "all-types")]
5041impl XdrCodec for TimeSlicedNodeData {
5042 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5043 self.added_authenticated_peers.to_xdr_buffered(write_stream);
5044 self.dropped_authenticated_peers.to_xdr_buffered(write_stream);
5045 self.total_inbound_peer_count.to_xdr_buffered(write_stream);
5046 self.total_outbound_peer_count.to_xdr_buffered(write_stream);
5047 self.p75_scp_first_to_self_latency_ns.to_xdr_buffered(write_stream);
5048 self.p75_scp_self_to_other_latency_ns.to_xdr_buffered(write_stream);
5049 self.lost_sync_count.to_xdr_buffered(write_stream);
5050 self.is_validator.to_xdr_buffered(write_stream);
5051 self.max_inbound_peer_count.to_xdr_buffered(write_stream);
5052 self.max_outbound_peer_count.to_xdr_buffered(write_stream);
5053 }
5054
5055 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5056 Ok(TimeSlicedNodeData {
5057 added_authenticated_peers: Uint32::from_xdr_buffered(read_stream)?,
5058 dropped_authenticated_peers: Uint32::from_xdr_buffered(read_stream)?,
5059 total_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5060 total_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5061 p75_scp_first_to_self_latency_ns: Uint32::from_xdr_buffered(read_stream)?,
5062 p75_scp_self_to_other_latency_ns: Uint32::from_xdr_buffered(read_stream)?,
5063 lost_sync_count: Uint32::from_xdr_buffered(read_stream)?,
5064 is_validator: bool::from_xdr_buffered(read_stream)?,
5065 max_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5066 max_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5067 })
5068 }
5069}
5070
5071#[allow(dead_code)]
5073#[cfg(feature = "all-types")]
5074#[derive(Debug, Clone, Eq, PartialEq)]
5075pub struct TimeSlicedPeerData {
5076 pub peer_stats: PeerStats,
5077 pub average_latency_ms: Uint32,
5078}
5079
5080#[cfg(feature = "all-types")]
5081impl XdrCodec for TimeSlicedPeerData {
5082 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5083 self.peer_stats.to_xdr_buffered(write_stream);
5084 self.average_latency_ms.to_xdr_buffered(write_stream);
5085 }
5086
5087 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5088 Ok(TimeSlicedPeerData {
5089 peer_stats: PeerStats::from_xdr_buffered(read_stream)?,
5090 average_latency_ms: Uint32::from_xdr_buffered(read_stream)?,
5091 })
5092 }
5093}
5094
5095#[allow(dead_code)]
5097#[cfg(feature = "all-types")]
5098pub type TimeSlicedPeerDataList = LimitedVarArray<TimeSlicedPeerData, 25>;
5099
5100#[allow(dead_code)]
5102#[cfg(feature = "all-types")]
5103#[derive(Debug, Clone, Eq, PartialEq)]
5104pub struct TopologyResponseBodyV0 {
5105 pub inbound_peers: PeerStatList,
5106 pub outbound_peers: PeerStatList,
5107 pub total_inbound_peer_count: Uint32,
5108 pub total_outbound_peer_count: Uint32,
5109}
5110
5111#[cfg(feature = "all-types")]
5112impl XdrCodec for TopologyResponseBodyV0 {
5113 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5114 self.inbound_peers.to_xdr_buffered(write_stream);
5115 self.outbound_peers.to_xdr_buffered(write_stream);
5116 self.total_inbound_peer_count.to_xdr_buffered(write_stream);
5117 self.total_outbound_peer_count.to_xdr_buffered(write_stream);
5118 }
5119
5120 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5121 Ok(TopologyResponseBodyV0 {
5122 inbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
5123 outbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
5124 total_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5125 total_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5126 })
5127 }
5128}
5129
5130#[allow(dead_code)]
5132#[cfg(feature = "all-types")]
5133#[derive(Debug, Clone, Eq, PartialEq)]
5134pub struct TopologyResponseBodyV1 {
5135 pub inbound_peers: PeerStatList,
5136 pub outbound_peers: PeerStatList,
5137 pub total_inbound_peer_count: Uint32,
5138 pub total_outbound_peer_count: Uint32,
5139 pub max_inbound_peer_count: Uint32,
5140 pub max_outbound_peer_count: Uint32,
5141}
5142
5143#[cfg(feature = "all-types")]
5144impl XdrCodec for TopologyResponseBodyV1 {
5145 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5146 self.inbound_peers.to_xdr_buffered(write_stream);
5147 self.outbound_peers.to_xdr_buffered(write_stream);
5148 self.total_inbound_peer_count.to_xdr_buffered(write_stream);
5149 self.total_outbound_peer_count.to_xdr_buffered(write_stream);
5150 self.max_inbound_peer_count.to_xdr_buffered(write_stream);
5151 self.max_outbound_peer_count.to_xdr_buffered(write_stream);
5152 }
5153
5154 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5155 Ok(TopologyResponseBodyV1 {
5156 inbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
5157 outbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
5158 total_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5159 total_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5160 max_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5161 max_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
5162 })
5163 }
5164}
5165
5166#[allow(dead_code)]
5168#[cfg(feature = "all-types")]
5169#[derive(Debug, Clone, Eq, PartialEq)]
5170pub struct TopologyResponseBodyV2 {
5171 pub inbound_peers: TimeSlicedPeerDataList,
5172 pub outbound_peers: TimeSlicedPeerDataList,
5173 pub node_data: TimeSlicedNodeData,
5174}
5175
5176#[cfg(feature = "all-types")]
5177impl XdrCodec for TopologyResponseBodyV2 {
5178 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5179 self.inbound_peers.to_xdr_buffered(write_stream);
5180 self.outbound_peers.to_xdr_buffered(write_stream);
5181 self.node_data.to_xdr_buffered(write_stream);
5182 }
5183
5184 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5185 Ok(TopologyResponseBodyV2 {
5186 inbound_peers: TimeSlicedPeerDataList::from_xdr_buffered(read_stream)?,
5187 outbound_peers: TimeSlicedPeerDataList::from_xdr_buffered(read_stream)?,
5188 node_data: TimeSlicedNodeData::from_xdr_buffered(read_stream)?,
5189 })
5190 }
5191}
5192
5193#[allow(dead_code)]
5195#[cfg(feature = "all-types")]
5196pub type TxAdvertVector = LimitedVarArray<Hash, TX_ADVERT_VECTOR_MAX_SIZE>;
5197
5198#[allow(dead_code)]
5200#[cfg(feature = "all-types")]
5201#[derive(Debug, Clone, Eq, PartialEq)]
5202pub struct FloodAdvert {
5203 pub tx_hashes: TxAdvertVector,
5204}
5205
5206#[cfg(feature = "all-types")]
5207impl XdrCodec for FloodAdvert {
5208 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5209 self.tx_hashes.to_xdr_buffered(write_stream);
5210 }
5211
5212 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5213 Ok(FloodAdvert { tx_hashes: TxAdvertVector::from_xdr_buffered(read_stream)? })
5214 }
5215}
5216
5217#[allow(dead_code)]
5219#[cfg(feature = "all-types")]
5220pub type TxDemandVector = LimitedVarArray<Hash, TX_DEMAND_VECTOR_MAX_SIZE>;
5221
5222#[allow(dead_code)]
5224#[cfg(feature = "all-types")]
5225#[derive(Debug, Clone, Eq, PartialEq)]
5226pub struct FloodDemand {
5227 pub tx_hashes: TxDemandVector,
5228}
5229
5230#[cfg(feature = "all-types")]
5231impl XdrCodec for FloodDemand {
5232 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5233 self.tx_hashes.to_xdr_buffered(write_stream);
5234 }
5235
5236 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5237 Ok(FloodDemand { tx_hashes: TxDemandVector::from_xdr_buffered(read_stream)? })
5238 }
5239}
5240
5241#[allow(dead_code)]
5243#[cfg(feature = "all-types")]
5244#[derive(Debug, Clone, Eq, PartialEq)]
5245pub struct AuthenticatedMessageV0 {
5246 pub sequence: Uint64,
5247 pub message: StellarMessage,
5248 pub mac: HmacSha256Mac,
5249}
5250
5251#[cfg(feature = "all-types")]
5252impl XdrCodec for AuthenticatedMessageV0 {
5253 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5254 self.sequence.to_xdr_buffered(write_stream);
5255 self.message.to_xdr_buffered(write_stream);
5256 self.mac.to_xdr_buffered(write_stream);
5257 }
5258
5259 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5260 Ok(AuthenticatedMessageV0 {
5261 sequence: Uint64::from_xdr_buffered(read_stream)?,
5262 message: StellarMessage::from_xdr_buffered(read_stream)?,
5263 mac: HmacSha256Mac::from_xdr_buffered(read_stream)?,
5264 })
5265 }
5266}
5267
5268#[allow(dead_code)]
5270#[derive(Debug, Clone, Eq, PartialEq)]
5271pub struct MuxedAccountMed25519 {
5272 pub id: Uint64,
5273 pub ed25519: Uint256,
5274}
5275
5276impl XdrCodec for MuxedAccountMed25519 {
5277 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5278 self.id.to_xdr_buffered(write_stream);
5279 self.ed25519.to_xdr_buffered(write_stream);
5280 }
5281
5282 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5283 Ok(MuxedAccountMed25519 {
5284 id: Uint64::from_xdr_buffered(read_stream)?,
5285 ed25519: Uint256::from_xdr_buffered(read_stream)?,
5286 })
5287 }
5288}
5289
5290#[allow(dead_code)]
5292#[derive(Debug, Clone, Eq, PartialEq)]
5293pub struct DecoratedSignature {
5294 pub hint: SignatureHint,
5295 pub signature: Signature,
5296}
5297
5298impl XdrCodec for DecoratedSignature {
5299 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5300 self.hint.to_xdr_buffered(write_stream);
5301 self.signature.to_xdr_buffered(write_stream);
5302 }
5303
5304 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5305 Ok(DecoratedSignature {
5306 hint: SignatureHint::from_xdr_buffered(read_stream)?,
5307 signature: Signature::from_xdr_buffered(read_stream)?,
5308 })
5309 }
5310}
5311
5312#[allow(dead_code)]
5314#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5315pub enum OperationType {
5316 CreateAccount = 0,
5317 Payment = 1,
5318 PathPaymentStrictReceive = 2,
5319 ManageSellOffer = 3,
5320 CreatePassiveSellOffer = 4,
5321 SetOptions = 5,
5322 ChangeTrust = 6,
5323 AllowTrust = 7,
5324 AccountMerge = 8,
5325 Inflation = 9,
5326 ManageData = 10,
5327 BumpSequence = 11,
5328 ManageBuyOffer = 12,
5329 PathPaymentStrictSend = 13,
5330 CreateClaimableBalance = 14,
5331 ClaimClaimableBalance = 15,
5332 BeginSponsoringFutureReserves = 16,
5333 EndSponsoringFutureReserves = 17,
5334 RevokeSponsorship = 18,
5335 Clawback = 19,
5336 ClawbackClaimableBalance = 20,
5337 SetTrustLineFlags = 21,
5338 LiquidityPoolDeposit = 22,
5339 LiquidityPoolWithdraw = 23,
5340 InvokeHostFunction = 24,
5341 ExtendFootprintTtl = 25,
5342 RestoreFootprint = 26,
5343}
5344
5345impl XdrCodec for OperationType {
5346 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5347 let value = *self as i32;
5348 value.to_xdr_buffered(write_stream);
5349 }
5350
5351 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5352 let enum_value = i32::from_xdr_buffered(read_stream)?;
5353 match enum_value {
5354 0 => Ok(OperationType::CreateAccount),
5355 1 => Ok(OperationType::Payment),
5356 2 => Ok(OperationType::PathPaymentStrictReceive),
5357 3 => Ok(OperationType::ManageSellOffer),
5358 4 => Ok(OperationType::CreatePassiveSellOffer),
5359 5 => Ok(OperationType::SetOptions),
5360 6 => Ok(OperationType::ChangeTrust),
5361 7 => Ok(OperationType::AllowTrust),
5362 8 => Ok(OperationType::AccountMerge),
5363 9 => Ok(OperationType::Inflation),
5364 10 => Ok(OperationType::ManageData),
5365 11 => Ok(OperationType::BumpSequence),
5366 12 => Ok(OperationType::ManageBuyOffer),
5367 13 => Ok(OperationType::PathPaymentStrictSend),
5368 14 => Ok(OperationType::CreateClaimableBalance),
5369 15 => Ok(OperationType::ClaimClaimableBalance),
5370 16 => Ok(OperationType::BeginSponsoringFutureReserves),
5371 17 => Ok(OperationType::EndSponsoringFutureReserves),
5372 18 => Ok(OperationType::RevokeSponsorship),
5373 19 => Ok(OperationType::Clawback),
5374 20 => Ok(OperationType::ClawbackClaimableBalance),
5375 21 => Ok(OperationType::SetTrustLineFlags),
5376 22 => Ok(OperationType::LiquidityPoolDeposit),
5377 23 => Ok(OperationType::LiquidityPoolWithdraw),
5378 24 => Ok(OperationType::InvokeHostFunction),
5379 25 => Ok(OperationType::ExtendFootprintTtl),
5380 26 => Ok(OperationType::RestoreFootprint),
5381 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
5382 }
5383 }
5384}
5385
5386#[allow(dead_code)]
5388#[derive(Debug, Clone, Eq, PartialEq)]
5389pub struct CreateAccountOp {
5390 pub destination: AccountId,
5391 pub starting_balance: Int64,
5392}
5393
5394impl XdrCodec for CreateAccountOp {
5395 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5396 self.destination.to_xdr_buffered(write_stream);
5397 self.starting_balance.to_xdr_buffered(write_stream);
5398 }
5399
5400 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5401 Ok(CreateAccountOp {
5402 destination: AccountId::from_xdr_buffered(read_stream)?,
5403 starting_balance: Int64::from_xdr_buffered(read_stream)?,
5404 })
5405 }
5406}
5407
5408#[allow(dead_code)]
5410#[derive(Debug, Clone, Eq, PartialEq)]
5411pub struct PaymentOp {
5412 pub destination: MuxedAccount,
5413 pub asset: Asset,
5414 pub amount: Int64,
5415}
5416
5417impl XdrCodec for PaymentOp {
5418 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5419 self.destination.to_xdr_buffered(write_stream);
5420 self.asset.to_xdr_buffered(write_stream);
5421 self.amount.to_xdr_buffered(write_stream);
5422 }
5423
5424 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5425 Ok(PaymentOp {
5426 destination: MuxedAccount::from_xdr_buffered(read_stream)?,
5427 asset: Asset::from_xdr_buffered(read_stream)?,
5428 amount: Int64::from_xdr_buffered(read_stream)?,
5429 })
5430 }
5431}
5432
5433#[allow(dead_code)]
5435#[derive(Debug, Clone, Eq, PartialEq)]
5436pub struct PathPaymentStrictReceiveOp {
5437 pub send_asset: Asset,
5438 pub send_max: Int64,
5439 pub destination: MuxedAccount,
5440 pub dest_asset: Asset,
5441 pub dest_amount: Int64,
5442 pub path: LimitedVarArray<Asset, 5>,
5443}
5444
5445impl XdrCodec for PathPaymentStrictReceiveOp {
5446 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5447 self.send_asset.to_xdr_buffered(write_stream);
5448 self.send_max.to_xdr_buffered(write_stream);
5449 self.destination.to_xdr_buffered(write_stream);
5450 self.dest_asset.to_xdr_buffered(write_stream);
5451 self.dest_amount.to_xdr_buffered(write_stream);
5452 self.path.to_xdr_buffered(write_stream);
5453 }
5454
5455 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5456 Ok(PathPaymentStrictReceiveOp {
5457 send_asset: Asset::from_xdr_buffered(read_stream)?,
5458 send_max: Int64::from_xdr_buffered(read_stream)?,
5459 destination: MuxedAccount::from_xdr_buffered(read_stream)?,
5460 dest_asset: Asset::from_xdr_buffered(read_stream)?,
5461 dest_amount: Int64::from_xdr_buffered(read_stream)?,
5462 path: LimitedVarArray::<Asset, 5>::from_xdr_buffered(read_stream)?,
5463 })
5464 }
5465}
5466
5467#[allow(dead_code)]
5469#[derive(Debug, Clone, Eq, PartialEq)]
5470pub struct PathPaymentStrictSendOp {
5471 pub send_asset: Asset,
5472 pub send_amount: Int64,
5473 pub destination: MuxedAccount,
5474 pub dest_asset: Asset,
5475 pub dest_min: Int64,
5476 pub path: LimitedVarArray<Asset, 5>,
5477}
5478
5479impl XdrCodec for PathPaymentStrictSendOp {
5480 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5481 self.send_asset.to_xdr_buffered(write_stream);
5482 self.send_amount.to_xdr_buffered(write_stream);
5483 self.destination.to_xdr_buffered(write_stream);
5484 self.dest_asset.to_xdr_buffered(write_stream);
5485 self.dest_min.to_xdr_buffered(write_stream);
5486 self.path.to_xdr_buffered(write_stream);
5487 }
5488
5489 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5490 Ok(PathPaymentStrictSendOp {
5491 send_asset: Asset::from_xdr_buffered(read_stream)?,
5492 send_amount: Int64::from_xdr_buffered(read_stream)?,
5493 destination: MuxedAccount::from_xdr_buffered(read_stream)?,
5494 dest_asset: Asset::from_xdr_buffered(read_stream)?,
5495 dest_min: Int64::from_xdr_buffered(read_stream)?,
5496 path: LimitedVarArray::<Asset, 5>::from_xdr_buffered(read_stream)?,
5497 })
5498 }
5499}
5500
5501#[allow(dead_code)]
5503#[derive(Debug, Clone, Eq, PartialEq)]
5504pub struct ManageSellOfferOp {
5505 pub selling: Asset,
5506 pub buying: Asset,
5507 pub amount: Int64,
5508 pub price: Price,
5509 pub offer_id: Int64,
5510}
5511
5512impl XdrCodec for ManageSellOfferOp {
5513 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5514 self.selling.to_xdr_buffered(write_stream);
5515 self.buying.to_xdr_buffered(write_stream);
5516 self.amount.to_xdr_buffered(write_stream);
5517 self.price.to_xdr_buffered(write_stream);
5518 self.offer_id.to_xdr_buffered(write_stream);
5519 }
5520
5521 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5522 Ok(ManageSellOfferOp {
5523 selling: Asset::from_xdr_buffered(read_stream)?,
5524 buying: Asset::from_xdr_buffered(read_stream)?,
5525 amount: Int64::from_xdr_buffered(read_stream)?,
5526 price: Price::from_xdr_buffered(read_stream)?,
5527 offer_id: Int64::from_xdr_buffered(read_stream)?,
5528 })
5529 }
5530}
5531
5532#[allow(dead_code)]
5534#[derive(Debug, Clone, Eq, PartialEq)]
5535pub struct ManageBuyOfferOp {
5536 pub selling: Asset,
5537 pub buying: Asset,
5538 pub buy_amount: Int64,
5539 pub price: Price,
5540 pub offer_id: Int64,
5541}
5542
5543impl XdrCodec for ManageBuyOfferOp {
5544 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5545 self.selling.to_xdr_buffered(write_stream);
5546 self.buying.to_xdr_buffered(write_stream);
5547 self.buy_amount.to_xdr_buffered(write_stream);
5548 self.price.to_xdr_buffered(write_stream);
5549 self.offer_id.to_xdr_buffered(write_stream);
5550 }
5551
5552 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5553 Ok(ManageBuyOfferOp {
5554 selling: Asset::from_xdr_buffered(read_stream)?,
5555 buying: Asset::from_xdr_buffered(read_stream)?,
5556 buy_amount: Int64::from_xdr_buffered(read_stream)?,
5557 price: Price::from_xdr_buffered(read_stream)?,
5558 offer_id: Int64::from_xdr_buffered(read_stream)?,
5559 })
5560 }
5561}
5562
5563#[allow(dead_code)]
5565#[derive(Debug, Clone, Eq, PartialEq)]
5566pub struct CreatePassiveSellOfferOp {
5567 pub selling: Asset,
5568 pub buying: Asset,
5569 pub amount: Int64,
5570 pub price: Price,
5571}
5572
5573impl XdrCodec for CreatePassiveSellOfferOp {
5574 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5575 self.selling.to_xdr_buffered(write_stream);
5576 self.buying.to_xdr_buffered(write_stream);
5577 self.amount.to_xdr_buffered(write_stream);
5578 self.price.to_xdr_buffered(write_stream);
5579 }
5580
5581 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5582 Ok(CreatePassiveSellOfferOp {
5583 selling: Asset::from_xdr_buffered(read_stream)?,
5584 buying: Asset::from_xdr_buffered(read_stream)?,
5585 amount: Int64::from_xdr_buffered(read_stream)?,
5586 price: Price::from_xdr_buffered(read_stream)?,
5587 })
5588 }
5589}
5590
5591#[allow(dead_code)]
5593#[derive(Debug, Clone, Eq, PartialEq)]
5594pub struct SetOptionsOp {
5595 pub inflation_dest: Option<AccountId>,
5596 pub clear_flags: Option<Uint32>,
5597 pub set_flags: Option<Uint32>,
5598 pub master_weight: Option<Uint32>,
5599 pub low_threshold: Option<Uint32>,
5600 pub med_threshold: Option<Uint32>,
5601 pub high_threshold: Option<Uint32>,
5602 pub home_domain: Option<String32>,
5603 pub signer: Option<Signer>,
5604}
5605
5606impl XdrCodec for SetOptionsOp {
5607 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5608 self.inflation_dest.to_xdr_buffered(write_stream);
5609 self.clear_flags.to_xdr_buffered(write_stream);
5610 self.set_flags.to_xdr_buffered(write_stream);
5611 self.master_weight.to_xdr_buffered(write_stream);
5612 self.low_threshold.to_xdr_buffered(write_stream);
5613 self.med_threshold.to_xdr_buffered(write_stream);
5614 self.high_threshold.to_xdr_buffered(write_stream);
5615 self.home_domain.to_xdr_buffered(write_stream);
5616 self.signer.to_xdr_buffered(write_stream);
5617 }
5618
5619 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5620 Ok(SetOptionsOp {
5621 inflation_dest: Option::<AccountId>::from_xdr_buffered(read_stream)?,
5622 clear_flags: Option::<Uint32>::from_xdr_buffered(read_stream)?,
5623 set_flags: Option::<Uint32>::from_xdr_buffered(read_stream)?,
5624 master_weight: Option::<Uint32>::from_xdr_buffered(read_stream)?,
5625 low_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
5626 med_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
5627 high_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
5628 home_domain: Option::<String32>::from_xdr_buffered(read_stream)?,
5629 signer: Option::<Signer>::from_xdr_buffered(read_stream)?,
5630 })
5631 }
5632}
5633
5634#[allow(dead_code)]
5636#[derive(Debug, Clone, Eq, PartialEq)]
5637pub struct ChangeTrustOp {
5638 pub line: ChangeTrustAsset,
5639 pub limit: Int64,
5640}
5641
5642impl XdrCodec for ChangeTrustOp {
5643 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5644 self.line.to_xdr_buffered(write_stream);
5645 self.limit.to_xdr_buffered(write_stream);
5646 }
5647
5648 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5649 Ok(ChangeTrustOp {
5650 line: ChangeTrustAsset::from_xdr_buffered(read_stream)?,
5651 limit: Int64::from_xdr_buffered(read_stream)?,
5652 })
5653 }
5654}
5655
5656#[allow(dead_code)]
5658#[derive(Debug, Clone, Eq, PartialEq)]
5659pub struct AllowTrustOp {
5660 pub trustor: AccountId,
5661 pub asset: AssetCode,
5662 pub authorize: Uint32,
5663}
5664
5665impl XdrCodec for AllowTrustOp {
5666 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5667 self.trustor.to_xdr_buffered(write_stream);
5668 self.asset.to_xdr_buffered(write_stream);
5669 self.authorize.to_xdr_buffered(write_stream);
5670 }
5671
5672 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5673 Ok(AllowTrustOp {
5674 trustor: AccountId::from_xdr_buffered(read_stream)?,
5675 asset: AssetCode::from_xdr_buffered(read_stream)?,
5676 authorize: Uint32::from_xdr_buffered(read_stream)?,
5677 })
5678 }
5679}
5680
5681#[allow(dead_code)]
5683#[derive(Debug, Clone, Eq, PartialEq)]
5684pub struct ManageDataOp {
5685 pub data_name: String64,
5686 pub data_value: Option<DataValue>,
5687}
5688
5689impl XdrCodec for ManageDataOp {
5690 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5691 self.data_name.to_xdr_buffered(write_stream);
5692 self.data_value.to_xdr_buffered(write_stream);
5693 }
5694
5695 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5696 Ok(ManageDataOp {
5697 data_name: String64::from_xdr_buffered(read_stream)?,
5698 data_value: Option::<DataValue>::from_xdr_buffered(read_stream)?,
5699 })
5700 }
5701}
5702
5703#[allow(dead_code)]
5705#[derive(Debug, Clone, Eq, PartialEq)]
5706pub struct BumpSequenceOp {
5707 pub bump_to: SequenceNumber,
5708}
5709
5710impl XdrCodec for BumpSequenceOp {
5711 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5712 self.bump_to.to_xdr_buffered(write_stream);
5713 }
5714
5715 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5716 Ok(BumpSequenceOp { bump_to: SequenceNumber::from_xdr_buffered(read_stream)? })
5717 }
5718}
5719
5720#[allow(dead_code)]
5722#[derive(Debug, Clone, Eq, PartialEq)]
5723pub struct CreateClaimableBalanceOp {
5724 pub asset: Asset,
5725 pub amount: Int64,
5726 pub claimants: LimitedVarArray<Claimant, 10>,
5727}
5728
5729impl XdrCodec for CreateClaimableBalanceOp {
5730 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5731 self.asset.to_xdr_buffered(write_stream);
5732 self.amount.to_xdr_buffered(write_stream);
5733 self.claimants.to_xdr_buffered(write_stream);
5734 }
5735
5736 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5737 Ok(CreateClaimableBalanceOp {
5738 asset: Asset::from_xdr_buffered(read_stream)?,
5739 amount: Int64::from_xdr_buffered(read_stream)?,
5740 claimants: LimitedVarArray::<Claimant, 10>::from_xdr_buffered(read_stream)?,
5741 })
5742 }
5743}
5744
5745#[allow(dead_code)]
5747#[derive(Debug, Clone, Eq, PartialEq)]
5748pub struct ClaimClaimableBalanceOp {
5749 pub balance_id: ClaimableBalanceId,
5750}
5751
5752impl XdrCodec for ClaimClaimableBalanceOp {
5753 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5754 self.balance_id.to_xdr_buffered(write_stream);
5755 }
5756
5757 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5758 Ok(ClaimClaimableBalanceOp { balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)? })
5759 }
5760}
5761
5762#[allow(dead_code)]
5764#[derive(Debug, Clone, Eq, PartialEq)]
5765pub struct BeginSponsoringFutureReservesOp {
5766 pub sponsored_id: AccountId,
5767}
5768
5769impl XdrCodec for BeginSponsoringFutureReservesOp {
5770 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5771 self.sponsored_id.to_xdr_buffered(write_stream);
5772 }
5773
5774 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5775 Ok(BeginSponsoringFutureReservesOp { sponsored_id: AccountId::from_xdr_buffered(read_stream)? })
5776 }
5777}
5778
5779#[allow(dead_code)]
5781#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5782pub enum RevokeSponsorshipType {
5783 RevokeSponsorshipLedgerEntry = 0,
5784 RevokeSponsorshipSigner = 1,
5785}
5786
5787impl XdrCodec for RevokeSponsorshipType {
5788 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5789 let value = *self as i32;
5790 value.to_xdr_buffered(write_stream);
5791 }
5792
5793 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5794 let enum_value = i32::from_xdr_buffered(read_stream)?;
5795 match enum_value {
5796 0 => Ok(RevokeSponsorshipType::RevokeSponsorshipLedgerEntry),
5797 1 => Ok(RevokeSponsorshipType::RevokeSponsorshipSigner),
5798 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
5799 }
5800 }
5801}
5802
5803#[allow(dead_code)]
5805#[derive(Debug, Clone, Eq, PartialEq)]
5806pub struct RevokeSponsorshipOpSigner {
5807 pub account_id: AccountId,
5808 pub signer_key: SignerKey,
5809}
5810
5811impl XdrCodec for RevokeSponsorshipOpSigner {
5812 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5813 self.account_id.to_xdr_buffered(write_stream);
5814 self.signer_key.to_xdr_buffered(write_stream);
5815 }
5816
5817 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5818 Ok(RevokeSponsorshipOpSigner {
5819 account_id: AccountId::from_xdr_buffered(read_stream)?,
5820 signer_key: SignerKey::from_xdr_buffered(read_stream)?,
5821 })
5822 }
5823}
5824
5825#[allow(dead_code)]
5827#[derive(Debug, Clone, Eq, PartialEq)]
5828pub struct ClawbackOp {
5829 pub asset: Asset,
5830 pub from: MuxedAccount,
5831 pub amount: Int64,
5832}
5833
5834impl XdrCodec for ClawbackOp {
5835 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5836 self.asset.to_xdr_buffered(write_stream);
5837 self.from.to_xdr_buffered(write_stream);
5838 self.amount.to_xdr_buffered(write_stream);
5839 }
5840
5841 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5842 Ok(ClawbackOp {
5843 asset: Asset::from_xdr_buffered(read_stream)?,
5844 from: MuxedAccount::from_xdr_buffered(read_stream)?,
5845 amount: Int64::from_xdr_buffered(read_stream)?,
5846 })
5847 }
5848}
5849
5850#[allow(dead_code)]
5852#[derive(Debug, Clone, Eq, PartialEq)]
5853pub struct ClawbackClaimableBalanceOp {
5854 pub balance_id: ClaimableBalanceId,
5855}
5856
5857impl XdrCodec for ClawbackClaimableBalanceOp {
5858 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5859 self.balance_id.to_xdr_buffered(write_stream);
5860 }
5861
5862 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5863 Ok(ClawbackClaimableBalanceOp { balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)? })
5864 }
5865}
5866
5867#[allow(dead_code)]
5869#[derive(Debug, Clone, Eq, PartialEq)]
5870pub struct SetTrustLineFlagsOp {
5871 pub trustor: AccountId,
5872 pub asset: Asset,
5873 pub clear_flags: Uint32,
5874 pub set_flags: Uint32,
5875}
5876
5877impl XdrCodec for SetTrustLineFlagsOp {
5878 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5879 self.trustor.to_xdr_buffered(write_stream);
5880 self.asset.to_xdr_buffered(write_stream);
5881 self.clear_flags.to_xdr_buffered(write_stream);
5882 self.set_flags.to_xdr_buffered(write_stream);
5883 }
5884
5885 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5886 Ok(SetTrustLineFlagsOp {
5887 trustor: AccountId::from_xdr_buffered(read_stream)?,
5888 asset: Asset::from_xdr_buffered(read_stream)?,
5889 clear_flags: Uint32::from_xdr_buffered(read_stream)?,
5890 set_flags: Uint32::from_xdr_buffered(read_stream)?,
5891 })
5892 }
5893}
5894
5895#[allow(dead_code)]
5897#[derive(Debug, Clone, Eq, PartialEq)]
5898pub struct LiquidityPoolDepositOp {
5899 pub liquidity_pool_id: PoolId,
5900 pub max_amount_a: Int64,
5901 pub max_amount_b: Int64,
5902 pub min_price: Price,
5903 pub max_price: Price,
5904}
5905
5906impl XdrCodec for LiquidityPoolDepositOp {
5907 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5908 self.liquidity_pool_id.to_xdr_buffered(write_stream);
5909 self.max_amount_a.to_xdr_buffered(write_stream);
5910 self.max_amount_b.to_xdr_buffered(write_stream);
5911 self.min_price.to_xdr_buffered(write_stream);
5912 self.max_price.to_xdr_buffered(write_stream);
5913 }
5914
5915 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5916 Ok(LiquidityPoolDepositOp {
5917 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
5918 max_amount_a: Int64::from_xdr_buffered(read_stream)?,
5919 max_amount_b: Int64::from_xdr_buffered(read_stream)?,
5920 min_price: Price::from_xdr_buffered(read_stream)?,
5921 max_price: Price::from_xdr_buffered(read_stream)?,
5922 })
5923 }
5924}
5925
5926#[allow(dead_code)]
5928#[derive(Debug, Clone, Eq, PartialEq)]
5929pub struct LiquidityPoolWithdrawOp {
5930 pub liquidity_pool_id: PoolId,
5931 pub amount: Int64,
5932 pub min_amount_a: Int64,
5933 pub min_amount_b: Int64,
5934}
5935
5936impl XdrCodec for LiquidityPoolWithdrawOp {
5937 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5938 self.liquidity_pool_id.to_xdr_buffered(write_stream);
5939 self.amount.to_xdr_buffered(write_stream);
5940 self.min_amount_a.to_xdr_buffered(write_stream);
5941 self.min_amount_b.to_xdr_buffered(write_stream);
5942 }
5943
5944 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5945 Ok(LiquidityPoolWithdrawOp {
5946 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
5947 amount: Int64::from_xdr_buffered(read_stream)?,
5948 min_amount_a: Int64::from_xdr_buffered(read_stream)?,
5949 min_amount_b: Int64::from_xdr_buffered(read_stream)?,
5950 })
5951 }
5952}
5953
5954#[allow(dead_code)]
5956#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5957pub enum HostFunctionType {
5958 HostFunctionTypeInvokeContract = 0,
5959 HostFunctionTypeCreateContract = 1,
5960 HostFunctionTypeUploadContractWasm = 2,
5961}
5962
5963impl XdrCodec for HostFunctionType {
5964 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5965 let value = *self as i32;
5966 value.to_xdr_buffered(write_stream);
5967 }
5968
5969 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5970 let enum_value = i32::from_xdr_buffered(read_stream)?;
5971 match enum_value {
5972 0 => Ok(HostFunctionType::HostFunctionTypeInvokeContract),
5973 1 => Ok(HostFunctionType::HostFunctionTypeCreateContract),
5974 2 => Ok(HostFunctionType::HostFunctionTypeUploadContractWasm),
5975 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
5976 }
5977 }
5978}
5979
5980#[allow(dead_code)]
5982#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5983pub enum ContractIdPreimageType {
5984 ContractIdPreimageFromAddress = 0,
5985 ContractIdPreimageFromAsset = 1,
5986}
5987
5988impl XdrCodec for ContractIdPreimageType {
5989 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5990 let value = *self as i32;
5991 value.to_xdr_buffered(write_stream);
5992 }
5993
5994 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
5995 let enum_value = i32::from_xdr_buffered(read_stream)?;
5996 match enum_value {
5997 0 => Ok(ContractIdPreimageType::ContractIdPreimageFromAddress),
5998 1 => Ok(ContractIdPreimageType::ContractIdPreimageFromAsset),
5999 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6000 }
6001 }
6002}
6003
6004#[allow(dead_code)]
6006#[derive(Debug, Clone, Eq, PartialEq)]
6007pub struct ContractIdPreimageFromAddress {
6008 pub address: ScAddress,
6009 pub salt: Uint256,
6010}
6011
6012impl XdrCodec for ContractIdPreimageFromAddress {
6013 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6014 self.address.to_xdr_buffered(write_stream);
6015 self.salt.to_xdr_buffered(write_stream);
6016 }
6017
6018 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6019 Ok(ContractIdPreimageFromAddress {
6020 address: ScAddress::from_xdr_buffered(read_stream)?,
6021 salt: Uint256::from_xdr_buffered(read_stream)?,
6022 })
6023 }
6024}
6025
6026#[allow(dead_code)]
6028#[derive(Debug, Clone, Eq, PartialEq)]
6029pub struct CreateContractArgs {
6030 pub contract_id_preimage: ContractIdPreimage,
6031 pub executable: ContractExecutable,
6032}
6033
6034impl XdrCodec for CreateContractArgs {
6035 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6036 self.contract_id_preimage.to_xdr_buffered(write_stream);
6037 self.executable.to_xdr_buffered(write_stream);
6038 }
6039
6040 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6041 Ok(CreateContractArgs {
6042 contract_id_preimage: ContractIdPreimage::from_xdr_buffered(read_stream)?,
6043 executable: ContractExecutable::from_xdr_buffered(read_stream)?,
6044 })
6045 }
6046}
6047
6048#[allow(dead_code)]
6050#[derive(Debug, Clone, Eq, PartialEq)]
6051pub struct InvokeContractArgs {
6052 pub contract_address: ScAddress,
6053 pub function_name: ScSymbol,
6054 pub args: UnlimitedVarArray<ScVal>,
6055}
6056
6057impl XdrCodec for InvokeContractArgs {
6058 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6059 self.contract_address.to_xdr_buffered(write_stream);
6060 self.function_name.to_xdr_buffered(write_stream);
6061 self.args.to_xdr_buffered(write_stream);
6062 }
6063
6064 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6065 Ok(InvokeContractArgs {
6066 contract_address: ScAddress::from_xdr_buffered(read_stream)?,
6067 function_name: ScSymbol::from_xdr_buffered(read_stream)?,
6068 args: UnlimitedVarArray::<ScVal>::from_xdr_buffered(read_stream)?,
6069 })
6070 }
6071}
6072
6073#[allow(dead_code)]
6075#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6076pub enum SorobanAuthorizedFunctionType {
6077 SorobanAuthorizedFunctionTypeContractFn = 0,
6078 SorobanAuthorizedFunctionTypeCreateContractHostFn = 1,
6079}
6080
6081impl XdrCodec for SorobanAuthorizedFunctionType {
6082 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6083 let value = *self as i32;
6084 value.to_xdr_buffered(write_stream);
6085 }
6086
6087 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6088 let enum_value = i32::from_xdr_buffered(read_stream)?;
6089 match enum_value {
6090 0 => Ok(SorobanAuthorizedFunctionType::SorobanAuthorizedFunctionTypeContractFn),
6091 1 => Ok(SorobanAuthorizedFunctionType::SorobanAuthorizedFunctionTypeCreateContractHostFn),
6092 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6093 }
6094 }
6095}
6096
6097#[allow(dead_code)]
6099#[derive(Debug, Clone, Eq, PartialEq)]
6100pub struct SorobanAuthorizedInvocation {
6101 pub function: SorobanAuthorizedFunction,
6102 pub sub_invocations: UnlimitedVarArray<SorobanAuthorizedInvocation>,
6103}
6104
6105impl XdrCodec for SorobanAuthorizedInvocation {
6106 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6107 self.function.to_xdr_buffered(write_stream);
6108 self.sub_invocations.to_xdr_buffered(write_stream);
6109 }
6110
6111 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6112 Ok(SorobanAuthorizedInvocation {
6113 function: SorobanAuthorizedFunction::from_xdr_buffered(read_stream)?,
6114 sub_invocations: UnlimitedVarArray::<SorobanAuthorizedInvocation>::from_xdr_buffered(read_stream)?,
6115 })
6116 }
6117}
6118
6119#[allow(dead_code)]
6121#[derive(Debug, Clone, Eq, PartialEq)]
6122pub struct SorobanAddressCredentials {
6123 pub address: ScAddress,
6124 pub nonce: Int64,
6125 pub signature_expiration_ledger: Uint32,
6126 pub signature: ScVal,
6127}
6128
6129impl XdrCodec for SorobanAddressCredentials {
6130 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6131 self.address.to_xdr_buffered(write_stream);
6132 self.nonce.to_xdr_buffered(write_stream);
6133 self.signature_expiration_ledger.to_xdr_buffered(write_stream);
6134 self.signature.to_xdr_buffered(write_stream);
6135 }
6136
6137 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6138 Ok(SorobanAddressCredentials {
6139 address: ScAddress::from_xdr_buffered(read_stream)?,
6140 nonce: Int64::from_xdr_buffered(read_stream)?,
6141 signature_expiration_ledger: Uint32::from_xdr_buffered(read_stream)?,
6142 signature: ScVal::from_xdr_buffered(read_stream)?,
6143 })
6144 }
6145}
6146
6147#[allow(dead_code)]
6149#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6150pub enum SorobanCredentialsType {
6151 SorobanCredentialsSourceAccount = 0,
6152 SorobanCredentialsAddress = 1,
6153}
6154
6155impl XdrCodec for SorobanCredentialsType {
6156 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6157 let value = *self as i32;
6158 value.to_xdr_buffered(write_stream);
6159 }
6160
6161 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6162 let enum_value = i32::from_xdr_buffered(read_stream)?;
6163 match enum_value {
6164 0 => Ok(SorobanCredentialsType::SorobanCredentialsSourceAccount),
6165 1 => Ok(SorobanCredentialsType::SorobanCredentialsAddress),
6166 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6167 }
6168 }
6169}
6170
6171#[allow(dead_code)]
6173#[derive(Debug, Clone, Eq, PartialEq)]
6174pub struct SorobanAuthorizationEntry {
6175 pub credentials: SorobanCredentials,
6176 pub root_invocation: SorobanAuthorizedInvocation,
6177}
6178
6179impl XdrCodec for SorobanAuthorizationEntry {
6180 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6181 self.credentials.to_xdr_buffered(write_stream);
6182 self.root_invocation.to_xdr_buffered(write_stream);
6183 }
6184
6185 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6186 Ok(SorobanAuthorizationEntry {
6187 credentials: SorobanCredentials::from_xdr_buffered(read_stream)?,
6188 root_invocation: SorobanAuthorizedInvocation::from_xdr_buffered(read_stream)?,
6189 })
6190 }
6191}
6192
6193#[allow(dead_code)]
6195#[derive(Debug, Clone, Eq, PartialEq)]
6196pub struct InvokeHostFunctionOp {
6197 pub host_function: HostFunction,
6198 pub auth: UnlimitedVarArray<SorobanAuthorizationEntry>,
6199}
6200
6201impl XdrCodec for InvokeHostFunctionOp {
6202 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6203 self.host_function.to_xdr_buffered(write_stream);
6204 self.auth.to_xdr_buffered(write_stream);
6205 }
6206
6207 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6208 Ok(InvokeHostFunctionOp {
6209 host_function: HostFunction::from_xdr_buffered(read_stream)?,
6210 auth: UnlimitedVarArray::<SorobanAuthorizationEntry>::from_xdr_buffered(read_stream)?,
6211 })
6212 }
6213}
6214
6215#[allow(dead_code)]
6217#[derive(Debug, Clone, Eq, PartialEq)]
6218pub struct ExtendFootprintTtlOp {
6219 pub ext: ExtensionPoint,
6220 pub extend_to: Uint32,
6221}
6222
6223impl XdrCodec for ExtendFootprintTtlOp {
6224 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6225 self.ext.to_xdr_buffered(write_stream);
6226 self.extend_to.to_xdr_buffered(write_stream);
6227 }
6228
6229 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6230 Ok(ExtendFootprintTtlOp {
6231 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
6232 extend_to: Uint32::from_xdr_buffered(read_stream)?,
6233 })
6234 }
6235}
6236
6237#[allow(dead_code)]
6239#[derive(Debug, Clone, Eq, PartialEq)]
6240pub struct RestoreFootprintOp {
6241 pub ext: ExtensionPoint,
6242}
6243
6244impl XdrCodec for RestoreFootprintOp {
6245 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6246 self.ext.to_xdr_buffered(write_stream);
6247 }
6248
6249 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6250 Ok(RestoreFootprintOp { ext: ExtensionPoint::from_xdr_buffered(read_stream)? })
6251 }
6252}
6253
6254#[allow(dead_code)]
6256#[derive(Debug, Clone, Eq, PartialEq)]
6257pub struct Operation {
6258 pub source_account: Option<MuxedAccount>,
6259 pub body: OperationBody,
6260}
6261
6262impl XdrCodec for Operation {
6263 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6264 self.source_account.to_xdr_buffered(write_stream);
6265 self.body.to_xdr_buffered(write_stream);
6266 }
6267
6268 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6269 Ok(Operation {
6270 source_account: Option::<MuxedAccount>::from_xdr_buffered(read_stream)?,
6271 body: OperationBody::from_xdr_buffered(read_stream)?,
6272 })
6273 }
6274}
6275
6276#[allow(dead_code)]
6278#[cfg(feature = "all-types")]
6279#[derive(Debug, Clone, Eq, PartialEq)]
6280pub struct HashIdPreimageOperationId {
6281 pub source_account: AccountId,
6282 pub seq_num: SequenceNumber,
6283 pub op_num: Uint32,
6284}
6285
6286#[cfg(feature = "all-types")]
6287impl XdrCodec for HashIdPreimageOperationId {
6288 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6289 self.source_account.to_xdr_buffered(write_stream);
6290 self.seq_num.to_xdr_buffered(write_stream);
6291 self.op_num.to_xdr_buffered(write_stream);
6292 }
6293
6294 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6295 Ok(HashIdPreimageOperationId {
6296 source_account: AccountId::from_xdr_buffered(read_stream)?,
6297 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
6298 op_num: Uint32::from_xdr_buffered(read_stream)?,
6299 })
6300 }
6301}
6302
6303#[allow(dead_code)]
6305#[cfg(feature = "all-types")]
6306#[derive(Debug, Clone, Eq, PartialEq)]
6307pub struct HashIdPreimageRevokeId {
6308 pub source_account: AccountId,
6309 pub seq_num: SequenceNumber,
6310 pub op_num: Uint32,
6311 pub liquidity_pool_id: PoolId,
6312 pub asset: Asset,
6313}
6314
6315#[cfg(feature = "all-types")]
6316impl XdrCodec for HashIdPreimageRevokeId {
6317 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6318 self.source_account.to_xdr_buffered(write_stream);
6319 self.seq_num.to_xdr_buffered(write_stream);
6320 self.op_num.to_xdr_buffered(write_stream);
6321 self.liquidity_pool_id.to_xdr_buffered(write_stream);
6322 self.asset.to_xdr_buffered(write_stream);
6323 }
6324
6325 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6326 Ok(HashIdPreimageRevokeId {
6327 source_account: AccountId::from_xdr_buffered(read_stream)?,
6328 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
6329 op_num: Uint32::from_xdr_buffered(read_stream)?,
6330 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
6331 asset: Asset::from_xdr_buffered(read_stream)?,
6332 })
6333 }
6334}
6335
6336#[allow(dead_code)]
6338#[cfg(feature = "all-types")]
6339#[derive(Debug, Clone, Eq, PartialEq)]
6340pub struct HashIdPreimageContractId {
6341 pub network_id: Hash,
6342 pub contract_id_preimage: ContractIdPreimage,
6343}
6344
6345#[cfg(feature = "all-types")]
6346impl XdrCodec for HashIdPreimageContractId {
6347 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6348 self.network_id.to_xdr_buffered(write_stream);
6349 self.contract_id_preimage.to_xdr_buffered(write_stream);
6350 }
6351
6352 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6353 Ok(HashIdPreimageContractId {
6354 network_id: Hash::from_xdr_buffered(read_stream)?,
6355 contract_id_preimage: ContractIdPreimage::from_xdr_buffered(read_stream)?,
6356 })
6357 }
6358}
6359
6360#[allow(dead_code)]
6362#[cfg(feature = "all-types")]
6363#[derive(Debug, Clone, Eq, PartialEq)]
6364pub struct HashIdPreimageSorobanAuthorization {
6365 pub network_id: Hash,
6366 pub nonce: Int64,
6367 pub signature_expiration_ledger: Uint32,
6368 pub invocation: SorobanAuthorizedInvocation,
6369}
6370
6371#[cfg(feature = "all-types")]
6372impl XdrCodec for HashIdPreimageSorobanAuthorization {
6373 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6374 self.network_id.to_xdr_buffered(write_stream);
6375 self.nonce.to_xdr_buffered(write_stream);
6376 self.signature_expiration_ledger.to_xdr_buffered(write_stream);
6377 self.invocation.to_xdr_buffered(write_stream);
6378 }
6379
6380 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6381 Ok(HashIdPreimageSorobanAuthorization {
6382 network_id: Hash::from_xdr_buffered(read_stream)?,
6383 nonce: Int64::from_xdr_buffered(read_stream)?,
6384 signature_expiration_ledger: Uint32::from_xdr_buffered(read_stream)?,
6385 invocation: SorobanAuthorizedInvocation::from_xdr_buffered(read_stream)?,
6386 })
6387 }
6388}
6389
6390#[allow(dead_code)]
6392#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6393pub enum MemoType {
6394 MemoNone = 0,
6395 MemoText = 1,
6396 MemoId = 2,
6397 MemoHash = 3,
6398 MemoReturn = 4,
6399}
6400
6401impl XdrCodec for MemoType {
6402 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6403 let value = *self as i32;
6404 value.to_xdr_buffered(write_stream);
6405 }
6406
6407 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6408 let enum_value = i32::from_xdr_buffered(read_stream)?;
6409 match enum_value {
6410 0 => Ok(MemoType::MemoNone),
6411 1 => Ok(MemoType::MemoText),
6412 2 => Ok(MemoType::MemoId),
6413 3 => Ok(MemoType::MemoHash),
6414 4 => Ok(MemoType::MemoReturn),
6415 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6416 }
6417 }
6418}
6419
6420#[allow(dead_code)]
6422#[derive(Debug, Clone, Eq, PartialEq)]
6423pub struct TimeBounds {
6424 pub min_time: TimePoint,
6425 pub max_time: TimePoint,
6426}
6427
6428impl XdrCodec for TimeBounds {
6429 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6430 self.min_time.to_xdr_buffered(write_stream);
6431 self.max_time.to_xdr_buffered(write_stream);
6432 }
6433
6434 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6435 Ok(TimeBounds {
6436 min_time: TimePoint::from_xdr_buffered(read_stream)?,
6437 max_time: TimePoint::from_xdr_buffered(read_stream)?,
6438 })
6439 }
6440}
6441
6442#[allow(dead_code)]
6444#[derive(Debug, Clone, Eq, PartialEq)]
6445pub struct LedgerBounds {
6446 pub min_ledger: Uint32,
6447 pub max_ledger: Uint32,
6448}
6449
6450impl XdrCodec for LedgerBounds {
6451 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6452 self.min_ledger.to_xdr_buffered(write_stream);
6453 self.max_ledger.to_xdr_buffered(write_stream);
6454 }
6455
6456 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6457 Ok(LedgerBounds {
6458 min_ledger: Uint32::from_xdr_buffered(read_stream)?,
6459 max_ledger: Uint32::from_xdr_buffered(read_stream)?,
6460 })
6461 }
6462}
6463
6464#[allow(dead_code)]
6466#[derive(Debug, Clone, Eq, PartialEq)]
6467pub struct PreconditionsV2 {
6468 pub time_bounds: Option<TimeBounds>,
6469 pub ledger_bounds: Option<LedgerBounds>,
6470 pub min_seq_num: Option<SequenceNumber>,
6471 pub min_seq_age: Duration,
6472 pub min_seq_ledger_gap: Uint32,
6473 pub extra_signers: LimitedVarArray<SignerKey, 2>,
6474}
6475
6476impl XdrCodec for PreconditionsV2 {
6477 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6478 self.time_bounds.to_xdr_buffered(write_stream);
6479 self.ledger_bounds.to_xdr_buffered(write_stream);
6480 self.min_seq_num.to_xdr_buffered(write_stream);
6481 self.min_seq_age.to_xdr_buffered(write_stream);
6482 self.min_seq_ledger_gap.to_xdr_buffered(write_stream);
6483 self.extra_signers.to_xdr_buffered(write_stream);
6484 }
6485
6486 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6487 Ok(PreconditionsV2 {
6488 time_bounds: Option::<TimeBounds>::from_xdr_buffered(read_stream)?,
6489 ledger_bounds: Option::<LedgerBounds>::from_xdr_buffered(read_stream)?,
6490 min_seq_num: Option::<SequenceNumber>::from_xdr_buffered(read_stream)?,
6491 min_seq_age: Duration::from_xdr_buffered(read_stream)?,
6492 min_seq_ledger_gap: Uint32::from_xdr_buffered(read_stream)?,
6493 extra_signers: LimitedVarArray::<SignerKey, 2>::from_xdr_buffered(read_stream)?,
6494 })
6495 }
6496}
6497
6498#[allow(dead_code)]
6500#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6501pub enum PreconditionType {
6502 PrecondNone = 0,
6503 PrecondTime = 1,
6504 PrecondV2 = 2,
6505}
6506
6507impl XdrCodec for PreconditionType {
6508 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6509 let value = *self as i32;
6510 value.to_xdr_buffered(write_stream);
6511 }
6512
6513 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6514 let enum_value = i32::from_xdr_buffered(read_stream)?;
6515 match enum_value {
6516 0 => Ok(PreconditionType::PrecondNone),
6517 1 => Ok(PreconditionType::PrecondTime),
6518 2 => Ok(PreconditionType::PrecondV2),
6519 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6520 }
6521 }
6522}
6523
6524#[allow(dead_code)]
6526#[derive(Debug, Clone, Eq, PartialEq)]
6527pub struct LedgerFootprint {
6528 pub read_only: UnlimitedVarArray<LedgerKey>,
6529 pub read_write: UnlimitedVarArray<LedgerKey>,
6530}
6531
6532impl XdrCodec for LedgerFootprint {
6533 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6534 self.read_only.to_xdr_buffered(write_stream);
6535 self.read_write.to_xdr_buffered(write_stream);
6536 }
6537
6538 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6539 Ok(LedgerFootprint {
6540 read_only: UnlimitedVarArray::<LedgerKey>::from_xdr_buffered(read_stream)?,
6541 read_write: UnlimitedVarArray::<LedgerKey>::from_xdr_buffered(read_stream)?,
6542 })
6543 }
6544}
6545
6546#[allow(dead_code)]
6548#[derive(Debug, Clone, Eq, PartialEq)]
6549pub struct SorobanResources {
6550 pub footprint: LedgerFootprint,
6551 pub instructions: Uint32,
6552 pub read_bytes: Uint32,
6553 pub write_bytes: Uint32,
6554}
6555
6556impl XdrCodec for SorobanResources {
6557 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6558 self.footprint.to_xdr_buffered(write_stream);
6559 self.instructions.to_xdr_buffered(write_stream);
6560 self.read_bytes.to_xdr_buffered(write_stream);
6561 self.write_bytes.to_xdr_buffered(write_stream);
6562 }
6563
6564 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6565 Ok(SorobanResources {
6566 footprint: LedgerFootprint::from_xdr_buffered(read_stream)?,
6567 instructions: Uint32::from_xdr_buffered(read_stream)?,
6568 read_bytes: Uint32::from_xdr_buffered(read_stream)?,
6569 write_bytes: Uint32::from_xdr_buffered(read_stream)?,
6570 })
6571 }
6572}
6573
6574#[allow(dead_code)]
6576#[derive(Debug, Clone, Eq, PartialEq)]
6577pub struct SorobanTransactionData {
6578 pub ext: ExtensionPoint,
6579 pub resources: SorobanResources,
6580 pub resource_fee: Int64,
6581}
6582
6583impl XdrCodec for SorobanTransactionData {
6584 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6585 self.ext.to_xdr_buffered(write_stream);
6586 self.resources.to_xdr_buffered(write_stream);
6587 self.resource_fee.to_xdr_buffered(write_stream);
6588 }
6589
6590 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6591 Ok(SorobanTransactionData {
6592 ext: ExtensionPoint::from_xdr_buffered(read_stream)?,
6593 resources: SorobanResources::from_xdr_buffered(read_stream)?,
6594 resource_fee: Int64::from_xdr_buffered(read_stream)?,
6595 })
6596 }
6597}
6598
6599#[allow(dead_code)]
6601#[derive(Debug, Clone, Eq, PartialEq)]
6602pub struct TransactionV0 {
6603 pub source_account_ed25519: Uint256,
6604 pub fee: Uint32,
6605 pub seq_num: SequenceNumber,
6606 pub time_bounds: Option<TimeBounds>,
6607 pub memo: Memo,
6608 pub operations: LimitedVarArray<Operation, MAX_OPS_PER_TX>,
6609 pub ext: TransactionV0Ext,
6610}
6611
6612impl XdrCodec for TransactionV0 {
6613 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6614 self.source_account_ed25519.to_xdr_buffered(write_stream);
6615 self.fee.to_xdr_buffered(write_stream);
6616 self.seq_num.to_xdr_buffered(write_stream);
6617 self.time_bounds.to_xdr_buffered(write_stream);
6618 self.memo.to_xdr_buffered(write_stream);
6619 self.operations.to_xdr_buffered(write_stream);
6620 self.ext.to_xdr_buffered(write_stream);
6621 }
6622
6623 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6624 Ok(TransactionV0 {
6625 source_account_ed25519: Uint256::from_xdr_buffered(read_stream)?,
6626 fee: Uint32::from_xdr_buffered(read_stream)?,
6627 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
6628 time_bounds: Option::<TimeBounds>::from_xdr_buffered(read_stream)?,
6629 memo: Memo::from_xdr_buffered(read_stream)?,
6630 operations: LimitedVarArray::<Operation, MAX_OPS_PER_TX>::from_xdr_buffered(read_stream)?,
6631 ext: TransactionV0Ext::from_xdr_buffered(read_stream)?,
6632 })
6633 }
6634}
6635
6636#[allow(dead_code)]
6638#[derive(Debug, Clone, Eq, PartialEq)]
6639pub struct TransactionV0Envelope {
6640 pub tx: TransactionV0,
6641 pub signatures: LimitedVarArray<DecoratedSignature, 20>,
6642}
6643
6644impl XdrCodec for TransactionV0Envelope {
6645 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6646 self.tx.to_xdr_buffered(write_stream);
6647 self.signatures.to_xdr_buffered(write_stream);
6648 }
6649
6650 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6651 Ok(TransactionV0Envelope {
6652 tx: TransactionV0::from_xdr_buffered(read_stream)?,
6653 signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
6654 })
6655 }
6656}
6657
6658#[allow(dead_code)]
6660#[derive(Debug, Clone, Eq, PartialEq)]
6661pub struct Transaction {
6662 pub source_account: MuxedAccount,
6663 pub fee: Uint32,
6664 pub seq_num: SequenceNumber,
6665 pub cond: Preconditions,
6666 pub memo: Memo,
6667 pub operations: LimitedVarArray<Operation, MAX_OPS_PER_TX>,
6668 pub ext: TransactionExt,
6669}
6670
6671impl XdrCodec for Transaction {
6672 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6673 self.source_account.to_xdr_buffered(write_stream);
6674 self.fee.to_xdr_buffered(write_stream);
6675 self.seq_num.to_xdr_buffered(write_stream);
6676 self.cond.to_xdr_buffered(write_stream);
6677 self.memo.to_xdr_buffered(write_stream);
6678 self.operations.to_xdr_buffered(write_stream);
6679 self.ext.to_xdr_buffered(write_stream);
6680 }
6681
6682 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6683 Ok(Transaction {
6684 source_account: MuxedAccount::from_xdr_buffered(read_stream)?,
6685 fee: Uint32::from_xdr_buffered(read_stream)?,
6686 seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
6687 cond: Preconditions::from_xdr_buffered(read_stream)?,
6688 memo: Memo::from_xdr_buffered(read_stream)?,
6689 operations: LimitedVarArray::<Operation, MAX_OPS_PER_TX>::from_xdr_buffered(read_stream)?,
6690 ext: TransactionExt::from_xdr_buffered(read_stream)?,
6691 })
6692 }
6693}
6694
6695#[allow(dead_code)]
6697#[derive(Debug, Clone, Eq, PartialEq)]
6698pub struct TransactionV1Envelope {
6699 pub tx: Transaction,
6700 pub signatures: LimitedVarArray<DecoratedSignature, 20>,
6701}
6702
6703impl XdrCodec for TransactionV1Envelope {
6704 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6705 self.tx.to_xdr_buffered(write_stream);
6706 self.signatures.to_xdr_buffered(write_stream);
6707 }
6708
6709 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6710 Ok(TransactionV1Envelope {
6711 tx: Transaction::from_xdr_buffered(read_stream)?,
6712 signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
6713 })
6714 }
6715}
6716
6717#[allow(dead_code)]
6719#[derive(Debug, Clone, Eq, PartialEq)]
6720pub struct FeeBumpTransaction {
6721 pub fee_source: MuxedAccount,
6722 pub fee: Int64,
6723 pub inner_tx: FeeBumpTransactionInnerTx,
6724 pub ext: FeeBumpTransactionExt,
6725}
6726
6727impl XdrCodec for FeeBumpTransaction {
6728 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6729 self.fee_source.to_xdr_buffered(write_stream);
6730 self.fee.to_xdr_buffered(write_stream);
6731 self.inner_tx.to_xdr_buffered(write_stream);
6732 self.ext.to_xdr_buffered(write_stream);
6733 }
6734
6735 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6736 Ok(FeeBumpTransaction {
6737 fee_source: MuxedAccount::from_xdr_buffered(read_stream)?,
6738 fee: Int64::from_xdr_buffered(read_stream)?,
6739 inner_tx: FeeBumpTransactionInnerTx::from_xdr_buffered(read_stream)?,
6740 ext: FeeBumpTransactionExt::from_xdr_buffered(read_stream)?,
6741 })
6742 }
6743}
6744
6745#[allow(dead_code)]
6747#[derive(Debug, Clone, Eq, PartialEq)]
6748pub struct FeeBumpTransactionEnvelope {
6749 pub tx: FeeBumpTransaction,
6750 pub signatures: LimitedVarArray<DecoratedSignature, 20>,
6751}
6752
6753impl XdrCodec for FeeBumpTransactionEnvelope {
6754 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6755 self.tx.to_xdr_buffered(write_stream);
6756 self.signatures.to_xdr_buffered(write_stream);
6757 }
6758
6759 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6760 Ok(FeeBumpTransactionEnvelope {
6761 tx: FeeBumpTransaction::from_xdr_buffered(read_stream)?,
6762 signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
6763 })
6764 }
6765}
6766
6767#[allow(dead_code)]
6769#[derive(Debug, Clone, Eq, PartialEq)]
6770pub struct TransactionSignaturePayload {
6771 pub network_id: Hash,
6772 pub tagged_transaction: TransactionSignaturePayloadTaggedTransaction,
6773}
6774
6775impl XdrCodec for TransactionSignaturePayload {
6776 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6777 self.network_id.to_xdr_buffered(write_stream);
6778 self.tagged_transaction.to_xdr_buffered(write_stream);
6779 }
6780
6781 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6782 Ok(TransactionSignaturePayload {
6783 network_id: Hash::from_xdr_buffered(read_stream)?,
6784 tagged_transaction: TransactionSignaturePayloadTaggedTransaction::from_xdr_buffered(read_stream)?,
6785 })
6786 }
6787}
6788
6789#[allow(dead_code)]
6791#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6792pub enum ClaimAtomType {
6793 ClaimAtomTypeV0 = 0,
6794 ClaimAtomTypeOrderBook = 1,
6795 ClaimAtomTypeLiquidityPool = 2,
6796}
6797
6798impl XdrCodec for ClaimAtomType {
6799 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6800 let value = *self as i32;
6801 value.to_xdr_buffered(write_stream);
6802 }
6803
6804 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6805 let enum_value = i32::from_xdr_buffered(read_stream)?;
6806 match enum_value {
6807 0 => Ok(ClaimAtomType::ClaimAtomTypeV0),
6808 1 => Ok(ClaimAtomType::ClaimAtomTypeOrderBook),
6809 2 => Ok(ClaimAtomType::ClaimAtomTypeLiquidityPool),
6810 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6811 }
6812 }
6813}
6814
6815#[allow(dead_code)]
6817#[derive(Debug, Clone, Eq, PartialEq)]
6818pub struct ClaimOfferAtomV0 {
6819 pub seller_ed25519: Uint256,
6820 pub offer_id: Int64,
6821 pub asset_sold: Asset,
6822 pub amount_sold: Int64,
6823 pub asset_bought: Asset,
6824 pub amount_bought: Int64,
6825}
6826
6827impl XdrCodec for ClaimOfferAtomV0 {
6828 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6829 self.seller_ed25519.to_xdr_buffered(write_stream);
6830 self.offer_id.to_xdr_buffered(write_stream);
6831 self.asset_sold.to_xdr_buffered(write_stream);
6832 self.amount_sold.to_xdr_buffered(write_stream);
6833 self.asset_bought.to_xdr_buffered(write_stream);
6834 self.amount_bought.to_xdr_buffered(write_stream);
6835 }
6836
6837 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6838 Ok(ClaimOfferAtomV0 {
6839 seller_ed25519: Uint256::from_xdr_buffered(read_stream)?,
6840 offer_id: Int64::from_xdr_buffered(read_stream)?,
6841 asset_sold: Asset::from_xdr_buffered(read_stream)?,
6842 amount_sold: Int64::from_xdr_buffered(read_stream)?,
6843 asset_bought: Asset::from_xdr_buffered(read_stream)?,
6844 amount_bought: Int64::from_xdr_buffered(read_stream)?,
6845 })
6846 }
6847}
6848
6849#[allow(dead_code)]
6851#[derive(Debug, Clone, Eq, PartialEq)]
6852pub struct ClaimOfferAtom {
6853 pub seller_id: AccountId,
6854 pub offer_id: Int64,
6855 pub asset_sold: Asset,
6856 pub amount_sold: Int64,
6857 pub asset_bought: Asset,
6858 pub amount_bought: Int64,
6859}
6860
6861impl XdrCodec for ClaimOfferAtom {
6862 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6863 self.seller_id.to_xdr_buffered(write_stream);
6864 self.offer_id.to_xdr_buffered(write_stream);
6865 self.asset_sold.to_xdr_buffered(write_stream);
6866 self.amount_sold.to_xdr_buffered(write_stream);
6867 self.asset_bought.to_xdr_buffered(write_stream);
6868 self.amount_bought.to_xdr_buffered(write_stream);
6869 }
6870
6871 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6872 Ok(ClaimOfferAtom {
6873 seller_id: AccountId::from_xdr_buffered(read_stream)?,
6874 offer_id: Int64::from_xdr_buffered(read_stream)?,
6875 asset_sold: Asset::from_xdr_buffered(read_stream)?,
6876 amount_sold: Int64::from_xdr_buffered(read_stream)?,
6877 asset_bought: Asset::from_xdr_buffered(read_stream)?,
6878 amount_bought: Int64::from_xdr_buffered(read_stream)?,
6879 })
6880 }
6881}
6882
6883#[allow(dead_code)]
6885#[derive(Debug, Clone, Eq, PartialEq)]
6886pub struct ClaimLiquidityAtom {
6887 pub liquidity_pool_id: PoolId,
6888 pub asset_sold: Asset,
6889 pub amount_sold: Int64,
6890 pub asset_bought: Asset,
6891 pub amount_bought: Int64,
6892}
6893
6894impl XdrCodec for ClaimLiquidityAtom {
6895 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6896 self.liquidity_pool_id.to_xdr_buffered(write_stream);
6897 self.asset_sold.to_xdr_buffered(write_stream);
6898 self.amount_sold.to_xdr_buffered(write_stream);
6899 self.asset_bought.to_xdr_buffered(write_stream);
6900 self.amount_bought.to_xdr_buffered(write_stream);
6901 }
6902
6903 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6904 Ok(ClaimLiquidityAtom {
6905 liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
6906 asset_sold: Asset::from_xdr_buffered(read_stream)?,
6907 amount_sold: Int64::from_xdr_buffered(read_stream)?,
6908 asset_bought: Asset::from_xdr_buffered(read_stream)?,
6909 amount_bought: Int64::from_xdr_buffered(read_stream)?,
6910 })
6911 }
6912}
6913
6914#[allow(dead_code)]
6916#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6917pub enum CreateAccountResultCode {
6918 CreateAccountSuccess = 0,
6919 CreateAccountMalformed = -1,
6920 CreateAccountUnderfunded = -2,
6921 CreateAccountLowReserve = -3,
6922 CreateAccountAlreadyExist = -4,
6923}
6924
6925impl XdrCodec for CreateAccountResultCode {
6926 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6927 let value = *self as i32;
6928 value.to_xdr_buffered(write_stream);
6929 }
6930
6931 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6932 let enum_value = i32::from_xdr_buffered(read_stream)?;
6933 match enum_value {
6934 0 => Ok(CreateAccountResultCode::CreateAccountSuccess),
6935 -1 => Ok(CreateAccountResultCode::CreateAccountMalformed),
6936 -2 => Ok(CreateAccountResultCode::CreateAccountUnderfunded),
6937 -3 => Ok(CreateAccountResultCode::CreateAccountLowReserve),
6938 -4 => Ok(CreateAccountResultCode::CreateAccountAlreadyExist),
6939 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6940 }
6941 }
6942}
6943
6944#[allow(dead_code)]
6946#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6947pub enum PaymentResultCode {
6948 PaymentSuccess = 0,
6949 PaymentMalformed = -1,
6950 PaymentUnderfunded = -2,
6951 PaymentSrcNoTrust = -3,
6952 PaymentSrcNotAuthorized = -4,
6953 PaymentNoDestination = -5,
6954 PaymentNoTrust = -6,
6955 PaymentNotAuthorized = -7,
6956 PaymentLineFull = -8,
6957 PaymentNoIssuer = -9,
6958}
6959
6960impl XdrCodec for PaymentResultCode {
6961 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6962 let value = *self as i32;
6963 value.to_xdr_buffered(write_stream);
6964 }
6965
6966 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
6967 let enum_value = i32::from_xdr_buffered(read_stream)?;
6968 match enum_value {
6969 0 => Ok(PaymentResultCode::PaymentSuccess),
6970 -1 => Ok(PaymentResultCode::PaymentMalformed),
6971 -2 => Ok(PaymentResultCode::PaymentUnderfunded),
6972 -3 => Ok(PaymentResultCode::PaymentSrcNoTrust),
6973 -4 => Ok(PaymentResultCode::PaymentSrcNotAuthorized),
6974 -5 => Ok(PaymentResultCode::PaymentNoDestination),
6975 -6 => Ok(PaymentResultCode::PaymentNoTrust),
6976 -7 => Ok(PaymentResultCode::PaymentNotAuthorized),
6977 -8 => Ok(PaymentResultCode::PaymentLineFull),
6978 -9 => Ok(PaymentResultCode::PaymentNoIssuer),
6979 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
6980 }
6981 }
6982}
6983
6984#[allow(dead_code)]
6986#[derive(Debug, Copy, Clone, Eq, PartialEq)]
6987pub enum PathPaymentStrictReceiveResultCode {
6988 PathPaymentStrictReceiveSuccess = 0,
6989 PathPaymentStrictReceiveMalformed = -1,
6990 PathPaymentStrictReceiveUnderfunded = -2,
6991 PathPaymentStrictReceiveSrcNoTrust = -3,
6992 PathPaymentStrictReceiveSrcNotAuthorized = -4,
6993 PathPaymentStrictReceiveNoDestination = -5,
6994 PathPaymentStrictReceiveNoTrust = -6,
6995 PathPaymentStrictReceiveNotAuthorized = -7,
6996 PathPaymentStrictReceiveLineFull = -8,
6997 PathPaymentStrictReceiveNoIssuer = -9,
6998 PathPaymentStrictReceiveTooFewOffers = -10,
6999 PathPaymentStrictReceiveOfferCrossSelf = -11,
7000 PathPaymentStrictReceiveOverSendmax = -12,
7001}
7002
7003impl XdrCodec for PathPaymentStrictReceiveResultCode {
7004 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7005 let value = *self as i32;
7006 value.to_xdr_buffered(write_stream);
7007 }
7008
7009 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7010 let enum_value = i32::from_xdr_buffered(read_stream)?;
7011 match enum_value {
7012 0 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess),
7013 -1 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveMalformed),
7014 -2 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveUnderfunded),
7015 -3 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNoTrust),
7016 -4 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNotAuthorized),
7017 -5 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoDestination),
7018 -6 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoTrust),
7019 -7 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNotAuthorized),
7020 -8 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveLineFull),
7021 -9 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer),
7022 -10 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveTooFewOffers),
7023 -11 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOfferCrossSelf),
7024 -12 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOverSendmax),
7025 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7026 }
7027 }
7028}
7029
7030#[allow(dead_code)]
7032#[derive(Debug, Clone, Eq, PartialEq)]
7033pub struct SimplePaymentResult {
7034 pub destination: AccountId,
7035 pub asset: Asset,
7036 pub amount: Int64,
7037}
7038
7039impl XdrCodec for SimplePaymentResult {
7040 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7041 self.destination.to_xdr_buffered(write_stream);
7042 self.asset.to_xdr_buffered(write_stream);
7043 self.amount.to_xdr_buffered(write_stream);
7044 }
7045
7046 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7047 Ok(SimplePaymentResult {
7048 destination: AccountId::from_xdr_buffered(read_stream)?,
7049 asset: Asset::from_xdr_buffered(read_stream)?,
7050 amount: Int64::from_xdr_buffered(read_stream)?,
7051 })
7052 }
7053}
7054
7055#[allow(dead_code)]
7057#[derive(Debug, Clone, Eq, PartialEq)]
7058pub struct PathPaymentStrictReceiveResultSuccess {
7059 pub offers: UnlimitedVarArray<ClaimAtom>,
7060 pub last: SimplePaymentResult,
7061}
7062
7063impl XdrCodec for PathPaymentStrictReceiveResultSuccess {
7064 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7065 self.offers.to_xdr_buffered(write_stream);
7066 self.last.to_xdr_buffered(write_stream);
7067 }
7068
7069 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7070 Ok(PathPaymentStrictReceiveResultSuccess {
7071 offers: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
7072 last: SimplePaymentResult::from_xdr_buffered(read_stream)?,
7073 })
7074 }
7075}
7076
7077#[allow(dead_code)]
7079#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7080pub enum PathPaymentStrictSendResultCode {
7081 PathPaymentStrictSendSuccess = 0,
7082 PathPaymentStrictSendMalformed = -1,
7083 PathPaymentStrictSendUnderfunded = -2,
7084 PathPaymentStrictSendSrcNoTrust = -3,
7085 PathPaymentStrictSendSrcNotAuthorized = -4,
7086 PathPaymentStrictSendNoDestination = -5,
7087 PathPaymentStrictSendNoTrust = -6,
7088 PathPaymentStrictSendNotAuthorized = -7,
7089 PathPaymentStrictSendLineFull = -8,
7090 PathPaymentStrictSendNoIssuer = -9,
7091 PathPaymentStrictSendTooFewOffers = -10,
7092 PathPaymentStrictSendOfferCrossSelf = -11,
7093 PathPaymentStrictSendUnderDestmin = -12,
7094}
7095
7096impl XdrCodec for PathPaymentStrictSendResultCode {
7097 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7098 let value = *self as i32;
7099 value.to_xdr_buffered(write_stream);
7100 }
7101
7102 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7103 let enum_value = i32::from_xdr_buffered(read_stream)?;
7104 match enum_value {
7105 0 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess),
7106 -1 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendMalformed),
7107 -2 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderfunded),
7108 -3 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNoTrust),
7109 -4 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNotAuthorized),
7110 -5 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoDestination),
7111 -6 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoTrust),
7112 -7 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNotAuthorized),
7113 -8 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendLineFull),
7114 -9 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer),
7115 -10 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendTooFewOffers),
7116 -11 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendOfferCrossSelf),
7117 -12 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderDestmin),
7118 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7119 }
7120 }
7121}
7122
7123#[allow(dead_code)]
7125#[derive(Debug, Clone, Eq, PartialEq)]
7126pub struct PathPaymentStrictSendResultSuccess {
7127 pub offers: UnlimitedVarArray<ClaimAtom>,
7128 pub last: SimplePaymentResult,
7129}
7130
7131impl XdrCodec for PathPaymentStrictSendResultSuccess {
7132 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7133 self.offers.to_xdr_buffered(write_stream);
7134 self.last.to_xdr_buffered(write_stream);
7135 }
7136
7137 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7138 Ok(PathPaymentStrictSendResultSuccess {
7139 offers: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
7140 last: SimplePaymentResult::from_xdr_buffered(read_stream)?,
7141 })
7142 }
7143}
7144
7145#[allow(dead_code)]
7147#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7148pub enum ManageSellOfferResultCode {
7149 ManageSellOfferSuccess = 0,
7150 ManageSellOfferMalformed = -1,
7151 ManageSellOfferSellNoTrust = -2,
7152 ManageSellOfferBuyNoTrust = -3,
7153 ManageSellOfferSellNotAuthorized = -4,
7154 ManageSellOfferBuyNotAuthorized = -5,
7155 ManageSellOfferLineFull = -6,
7156 ManageSellOfferUnderfunded = -7,
7157 ManageSellOfferCrossSelf = -8,
7158 ManageSellOfferSellNoIssuer = -9,
7159 ManageSellOfferBuyNoIssuer = -10,
7160 ManageSellOfferNotFound = -11,
7161 ManageSellOfferLowReserve = -12,
7162}
7163
7164impl XdrCodec for ManageSellOfferResultCode {
7165 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7166 let value = *self as i32;
7167 value.to_xdr_buffered(write_stream);
7168 }
7169
7170 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7171 let enum_value = i32::from_xdr_buffered(read_stream)?;
7172 match enum_value {
7173 0 => Ok(ManageSellOfferResultCode::ManageSellOfferSuccess),
7174 -1 => Ok(ManageSellOfferResultCode::ManageSellOfferMalformed),
7175 -2 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNoTrust),
7176 -3 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNoTrust),
7177 -4 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNotAuthorized),
7178 -5 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNotAuthorized),
7179 -6 => Ok(ManageSellOfferResultCode::ManageSellOfferLineFull),
7180 -7 => Ok(ManageSellOfferResultCode::ManageSellOfferUnderfunded),
7181 -8 => Ok(ManageSellOfferResultCode::ManageSellOfferCrossSelf),
7182 -9 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNoIssuer),
7183 -10 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNoIssuer),
7184 -11 => Ok(ManageSellOfferResultCode::ManageSellOfferNotFound),
7185 -12 => Ok(ManageSellOfferResultCode::ManageSellOfferLowReserve),
7186 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7187 }
7188 }
7189}
7190
7191#[allow(dead_code)]
7193#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7194pub enum ManageOfferEffect {
7195 ManageOfferCreated = 0,
7196 ManageOfferUpdated = 1,
7197 ManageOfferDeleted = 2,
7198}
7199
7200impl XdrCodec for ManageOfferEffect {
7201 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7202 let value = *self as i32;
7203 value.to_xdr_buffered(write_stream);
7204 }
7205
7206 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7207 let enum_value = i32::from_xdr_buffered(read_stream)?;
7208 match enum_value {
7209 0 => Ok(ManageOfferEffect::ManageOfferCreated),
7210 1 => Ok(ManageOfferEffect::ManageOfferUpdated),
7211 2 => Ok(ManageOfferEffect::ManageOfferDeleted),
7212 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7213 }
7214 }
7215}
7216
7217#[allow(dead_code)]
7219#[derive(Debug, Clone, Eq, PartialEq)]
7220pub struct ManageOfferSuccessResult {
7221 pub offers_claimed: UnlimitedVarArray<ClaimAtom>,
7222 pub offer: ManageOfferSuccessResultOffer,
7223}
7224
7225impl XdrCodec for ManageOfferSuccessResult {
7226 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7227 self.offers_claimed.to_xdr_buffered(write_stream);
7228 self.offer.to_xdr_buffered(write_stream);
7229 }
7230
7231 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7232 Ok(ManageOfferSuccessResult {
7233 offers_claimed: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
7234 offer: ManageOfferSuccessResultOffer::from_xdr_buffered(read_stream)?,
7235 })
7236 }
7237}
7238
7239#[allow(dead_code)]
7241#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7242pub enum ManageBuyOfferResultCode {
7243 ManageBuyOfferSuccess = 0,
7244 ManageBuyOfferMalformed = -1,
7245 ManageBuyOfferSellNoTrust = -2,
7246 ManageBuyOfferBuyNoTrust = -3,
7247 ManageBuyOfferSellNotAuthorized = -4,
7248 ManageBuyOfferBuyNotAuthorized = -5,
7249 ManageBuyOfferLineFull = -6,
7250 ManageBuyOfferUnderfunded = -7,
7251 ManageBuyOfferCrossSelf = -8,
7252 ManageBuyOfferSellNoIssuer = -9,
7253 ManageBuyOfferBuyNoIssuer = -10,
7254 ManageBuyOfferNotFound = -11,
7255 ManageBuyOfferLowReserve = -12,
7256}
7257
7258impl XdrCodec for ManageBuyOfferResultCode {
7259 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7260 let value = *self as i32;
7261 value.to_xdr_buffered(write_stream);
7262 }
7263
7264 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7265 let enum_value = i32::from_xdr_buffered(read_stream)?;
7266 match enum_value {
7267 0 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSuccess),
7268 -1 => Ok(ManageBuyOfferResultCode::ManageBuyOfferMalformed),
7269 -2 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNoTrust),
7270 -3 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNoTrust),
7271 -4 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNotAuthorized),
7272 -5 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNotAuthorized),
7273 -6 => Ok(ManageBuyOfferResultCode::ManageBuyOfferLineFull),
7274 -7 => Ok(ManageBuyOfferResultCode::ManageBuyOfferUnderfunded),
7275 -8 => Ok(ManageBuyOfferResultCode::ManageBuyOfferCrossSelf),
7276 -9 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNoIssuer),
7277 -10 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNoIssuer),
7278 -11 => Ok(ManageBuyOfferResultCode::ManageBuyOfferNotFound),
7279 -12 => Ok(ManageBuyOfferResultCode::ManageBuyOfferLowReserve),
7280 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7281 }
7282 }
7283}
7284
7285#[allow(dead_code)]
7287#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7288pub enum SetOptionsResultCode {
7289 SetOptionsSuccess = 0,
7290 SetOptionsLowReserve = -1,
7291 SetOptionsTooManySigners = -2,
7292 SetOptionsBadFlags = -3,
7293 SetOptionsInvalidInflation = -4,
7294 SetOptionsCantChange = -5,
7295 SetOptionsUnknownFlag = -6,
7296 SetOptionsThresholdOutOfRange = -7,
7297 SetOptionsBadSigner = -8,
7298 SetOptionsInvalidHomeDomain = -9,
7299 SetOptionsAuthRevocableRequired = -10,
7300}
7301
7302impl XdrCodec for SetOptionsResultCode {
7303 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7304 let value = *self as i32;
7305 value.to_xdr_buffered(write_stream);
7306 }
7307
7308 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7309 let enum_value = i32::from_xdr_buffered(read_stream)?;
7310 match enum_value {
7311 0 => Ok(SetOptionsResultCode::SetOptionsSuccess),
7312 -1 => Ok(SetOptionsResultCode::SetOptionsLowReserve),
7313 -2 => Ok(SetOptionsResultCode::SetOptionsTooManySigners),
7314 -3 => Ok(SetOptionsResultCode::SetOptionsBadFlags),
7315 -4 => Ok(SetOptionsResultCode::SetOptionsInvalidInflation),
7316 -5 => Ok(SetOptionsResultCode::SetOptionsCantChange),
7317 -6 => Ok(SetOptionsResultCode::SetOptionsUnknownFlag),
7318 -7 => Ok(SetOptionsResultCode::SetOptionsThresholdOutOfRange),
7319 -8 => Ok(SetOptionsResultCode::SetOptionsBadSigner),
7320 -9 => Ok(SetOptionsResultCode::SetOptionsInvalidHomeDomain),
7321 -10 => Ok(SetOptionsResultCode::SetOptionsAuthRevocableRequired),
7322 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7323 }
7324 }
7325}
7326
7327#[allow(dead_code)]
7329#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7330pub enum ChangeTrustResultCode {
7331 ChangeTrustSuccess = 0,
7332 ChangeTrustMalformed = -1,
7333 ChangeTrustNoIssuer = -2,
7334 ChangeTrustInvalidLimit = -3,
7335 ChangeTrustLowReserve = -4,
7336 ChangeTrustSelfNotAllowed = -5,
7337 ChangeTrustTrustLineMissing = -6,
7338 ChangeTrustCannotDelete = -7,
7339 ChangeTrustNotAuthMaintainLiabilities = -8,
7340}
7341
7342impl XdrCodec for ChangeTrustResultCode {
7343 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7344 let value = *self as i32;
7345 value.to_xdr_buffered(write_stream);
7346 }
7347
7348 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7349 let enum_value = i32::from_xdr_buffered(read_stream)?;
7350 match enum_value {
7351 0 => Ok(ChangeTrustResultCode::ChangeTrustSuccess),
7352 -1 => Ok(ChangeTrustResultCode::ChangeTrustMalformed),
7353 -2 => Ok(ChangeTrustResultCode::ChangeTrustNoIssuer),
7354 -3 => Ok(ChangeTrustResultCode::ChangeTrustInvalidLimit),
7355 -4 => Ok(ChangeTrustResultCode::ChangeTrustLowReserve),
7356 -5 => Ok(ChangeTrustResultCode::ChangeTrustSelfNotAllowed),
7357 -6 => Ok(ChangeTrustResultCode::ChangeTrustTrustLineMissing),
7358 -7 => Ok(ChangeTrustResultCode::ChangeTrustCannotDelete),
7359 -8 => Ok(ChangeTrustResultCode::ChangeTrustNotAuthMaintainLiabilities),
7360 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7361 }
7362 }
7363}
7364
7365#[allow(dead_code)]
7367#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7368pub enum AllowTrustResultCode {
7369 AllowTrustSuccess = 0,
7370 AllowTrustMalformed = -1,
7371 AllowTrustNoTrustLine = -2,
7372 AllowTrustTrustNotRequired = -3,
7373 AllowTrustCantRevoke = -4,
7374 AllowTrustSelfNotAllowed = -5,
7375 AllowTrustLowReserve = -6,
7376}
7377
7378impl XdrCodec for AllowTrustResultCode {
7379 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7380 let value = *self as i32;
7381 value.to_xdr_buffered(write_stream);
7382 }
7383
7384 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7385 let enum_value = i32::from_xdr_buffered(read_stream)?;
7386 match enum_value {
7387 0 => Ok(AllowTrustResultCode::AllowTrustSuccess),
7388 -1 => Ok(AllowTrustResultCode::AllowTrustMalformed),
7389 -2 => Ok(AllowTrustResultCode::AllowTrustNoTrustLine),
7390 -3 => Ok(AllowTrustResultCode::AllowTrustTrustNotRequired),
7391 -4 => Ok(AllowTrustResultCode::AllowTrustCantRevoke),
7392 -5 => Ok(AllowTrustResultCode::AllowTrustSelfNotAllowed),
7393 -6 => Ok(AllowTrustResultCode::AllowTrustLowReserve),
7394 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7395 }
7396 }
7397}
7398
7399#[allow(dead_code)]
7401#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7402pub enum AccountMergeResultCode {
7403 AccountMergeSuccess = 0,
7404 AccountMergeMalformed = -1,
7405 AccountMergeNoAccount = -2,
7406 AccountMergeImmutableSet = -3,
7407 AccountMergeHasSubEntries = -4,
7408 AccountMergeSeqnumTooFar = -5,
7409 AccountMergeDestFull = -6,
7410 AccountMergeIsSponsor = -7,
7411}
7412
7413impl XdrCodec for AccountMergeResultCode {
7414 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7415 let value = *self as i32;
7416 value.to_xdr_buffered(write_stream);
7417 }
7418
7419 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7420 let enum_value = i32::from_xdr_buffered(read_stream)?;
7421 match enum_value {
7422 0 => Ok(AccountMergeResultCode::AccountMergeSuccess),
7423 -1 => Ok(AccountMergeResultCode::AccountMergeMalformed),
7424 -2 => Ok(AccountMergeResultCode::AccountMergeNoAccount),
7425 -3 => Ok(AccountMergeResultCode::AccountMergeImmutableSet),
7426 -4 => Ok(AccountMergeResultCode::AccountMergeHasSubEntries),
7427 -5 => Ok(AccountMergeResultCode::AccountMergeSeqnumTooFar),
7428 -6 => Ok(AccountMergeResultCode::AccountMergeDestFull),
7429 -7 => Ok(AccountMergeResultCode::AccountMergeIsSponsor),
7430 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7431 }
7432 }
7433}
7434
7435#[allow(dead_code)]
7437#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7438pub enum InflationResultCode {
7439 InflationSuccess = 0,
7440 InflationNotTime = -1,
7441}
7442
7443impl XdrCodec for InflationResultCode {
7444 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7445 let value = *self as i32;
7446 value.to_xdr_buffered(write_stream);
7447 }
7448
7449 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7450 let enum_value = i32::from_xdr_buffered(read_stream)?;
7451 match enum_value {
7452 0 => Ok(InflationResultCode::InflationSuccess),
7453 -1 => Ok(InflationResultCode::InflationNotTime),
7454 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7455 }
7456 }
7457}
7458
7459#[allow(dead_code)]
7461#[derive(Debug, Clone, Eq, PartialEq)]
7462pub struct InflationPayout {
7463 pub destination: AccountId,
7464 pub amount: Int64,
7465}
7466
7467impl XdrCodec for InflationPayout {
7468 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7469 self.destination.to_xdr_buffered(write_stream);
7470 self.amount.to_xdr_buffered(write_stream);
7471 }
7472
7473 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7474 Ok(InflationPayout {
7475 destination: AccountId::from_xdr_buffered(read_stream)?,
7476 amount: Int64::from_xdr_buffered(read_stream)?,
7477 })
7478 }
7479}
7480
7481#[allow(dead_code)]
7483#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7484pub enum ManageDataResultCode {
7485 ManageDataSuccess = 0,
7486 ManageDataNotSupportedYet = -1,
7487 ManageDataNameNotFound = -2,
7488 ManageDataLowReserve = -3,
7489 ManageDataInvalidName = -4,
7490}
7491
7492impl XdrCodec for ManageDataResultCode {
7493 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7494 let value = *self as i32;
7495 value.to_xdr_buffered(write_stream);
7496 }
7497
7498 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7499 let enum_value = i32::from_xdr_buffered(read_stream)?;
7500 match enum_value {
7501 0 => Ok(ManageDataResultCode::ManageDataSuccess),
7502 -1 => Ok(ManageDataResultCode::ManageDataNotSupportedYet),
7503 -2 => Ok(ManageDataResultCode::ManageDataNameNotFound),
7504 -3 => Ok(ManageDataResultCode::ManageDataLowReserve),
7505 -4 => Ok(ManageDataResultCode::ManageDataInvalidName),
7506 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7507 }
7508 }
7509}
7510
7511#[allow(dead_code)]
7513#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7514pub enum BumpSequenceResultCode {
7515 BumpSequenceSuccess = 0,
7516 BumpSequenceBadSeq = -1,
7517}
7518
7519impl XdrCodec for BumpSequenceResultCode {
7520 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7521 let value = *self as i32;
7522 value.to_xdr_buffered(write_stream);
7523 }
7524
7525 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7526 let enum_value = i32::from_xdr_buffered(read_stream)?;
7527 match enum_value {
7528 0 => Ok(BumpSequenceResultCode::BumpSequenceSuccess),
7529 -1 => Ok(BumpSequenceResultCode::BumpSequenceBadSeq),
7530 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7531 }
7532 }
7533}
7534
7535#[allow(dead_code)]
7537#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7538pub enum CreateClaimableBalanceResultCode {
7539 CreateClaimableBalanceSuccess = 0,
7540 CreateClaimableBalanceMalformed = -1,
7541 CreateClaimableBalanceLowReserve = -2,
7542 CreateClaimableBalanceNoTrust = -3,
7543 CreateClaimableBalanceNotAuthorized = -4,
7544 CreateClaimableBalanceUnderfunded = -5,
7545}
7546
7547impl XdrCodec for CreateClaimableBalanceResultCode {
7548 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7549 let value = *self as i32;
7550 value.to_xdr_buffered(write_stream);
7551 }
7552
7553 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7554 let enum_value = i32::from_xdr_buffered(read_stream)?;
7555 match enum_value {
7556 0 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess),
7557 -1 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceMalformed),
7558 -2 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceLowReserve),
7559 -3 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceNoTrust),
7560 -4 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceNotAuthorized),
7561 -5 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceUnderfunded),
7562 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7563 }
7564 }
7565}
7566
7567#[allow(dead_code)]
7569#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7570pub enum ClaimClaimableBalanceResultCode {
7571 ClaimClaimableBalanceSuccess = 0,
7572 ClaimClaimableBalanceDoesNotExist = -1,
7573 ClaimClaimableBalanceCannotClaim = -2,
7574 ClaimClaimableBalanceLineFull = -3,
7575 ClaimClaimableBalanceNoTrust = -4,
7576 ClaimClaimableBalanceNotAuthorized = -5,
7577}
7578
7579impl XdrCodec for ClaimClaimableBalanceResultCode {
7580 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7581 let value = *self as i32;
7582 value.to_xdr_buffered(write_stream);
7583 }
7584
7585 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7586 let enum_value = i32::from_xdr_buffered(read_stream)?;
7587 match enum_value {
7588 0 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess),
7589 -1 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceDoesNotExist),
7590 -2 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceCannotClaim),
7591 -3 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceLineFull),
7592 -4 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNoTrust),
7593 -5 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNotAuthorized),
7594 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7595 }
7596 }
7597}
7598
7599#[allow(dead_code)]
7601#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7602pub enum BeginSponsoringFutureReservesResultCode {
7603 BeginSponsoringFutureReservesSuccess = 0,
7604 BeginSponsoringFutureReservesMalformed = -1,
7605 BeginSponsoringFutureReservesAlreadySponsored = -2,
7606 BeginSponsoringFutureReservesRecursive = -3,
7607}
7608
7609impl XdrCodec for BeginSponsoringFutureReservesResultCode {
7610 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7611 let value = *self as i32;
7612 value.to_xdr_buffered(write_stream);
7613 }
7614
7615 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7616 let enum_value = i32::from_xdr_buffered(read_stream)?;
7617 match enum_value {
7618 0 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess),
7619 -1 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesMalformed),
7620 -2 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesAlreadySponsored),
7621 -3 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesRecursive),
7622 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7623 }
7624 }
7625}
7626
7627#[allow(dead_code)]
7629#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7630pub enum EndSponsoringFutureReservesResultCode {
7631 EndSponsoringFutureReservesSuccess = 0,
7632 EndSponsoringFutureReservesNotSponsored = -1,
7633}
7634
7635impl XdrCodec for EndSponsoringFutureReservesResultCode {
7636 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7637 let value = *self as i32;
7638 value.to_xdr_buffered(write_stream);
7639 }
7640
7641 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7642 let enum_value = i32::from_xdr_buffered(read_stream)?;
7643 match enum_value {
7644 0 => Ok(EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess),
7645 -1 => Ok(EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesNotSponsored),
7646 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7647 }
7648 }
7649}
7650
7651#[allow(dead_code)]
7653#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7654pub enum RevokeSponsorshipResultCode {
7655 RevokeSponsorshipSuccess = 0,
7656 RevokeSponsorshipDoesNotExist = -1,
7657 RevokeSponsorshipNotSponsor = -2,
7658 RevokeSponsorshipLowReserve = -3,
7659 RevokeSponsorshipOnlyTransferable = -4,
7660 RevokeSponsorshipMalformed = -5,
7661}
7662
7663impl XdrCodec for RevokeSponsorshipResultCode {
7664 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7665 let value = *self as i32;
7666 value.to_xdr_buffered(write_stream);
7667 }
7668
7669 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7670 let enum_value = i32::from_xdr_buffered(read_stream)?;
7671 match enum_value {
7672 0 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipSuccess),
7673 -1 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipDoesNotExist),
7674 -2 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipNotSponsor),
7675 -3 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipLowReserve),
7676 -4 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipOnlyTransferable),
7677 -5 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipMalformed),
7678 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7679 }
7680 }
7681}
7682
7683#[allow(dead_code)]
7685#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7686pub enum ClawbackResultCode {
7687 ClawbackSuccess = 0,
7688 ClawbackMalformed = -1,
7689 ClawbackNotClawbackEnabled = -2,
7690 ClawbackNoTrust = -3,
7691 ClawbackUnderfunded = -4,
7692}
7693
7694impl XdrCodec for ClawbackResultCode {
7695 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7696 let value = *self as i32;
7697 value.to_xdr_buffered(write_stream);
7698 }
7699
7700 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7701 let enum_value = i32::from_xdr_buffered(read_stream)?;
7702 match enum_value {
7703 0 => Ok(ClawbackResultCode::ClawbackSuccess),
7704 -1 => Ok(ClawbackResultCode::ClawbackMalformed),
7705 -2 => Ok(ClawbackResultCode::ClawbackNotClawbackEnabled),
7706 -3 => Ok(ClawbackResultCode::ClawbackNoTrust),
7707 -4 => Ok(ClawbackResultCode::ClawbackUnderfunded),
7708 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7709 }
7710 }
7711}
7712
7713#[allow(dead_code)]
7715#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7716pub enum ClawbackClaimableBalanceResultCode {
7717 ClawbackClaimableBalanceSuccess = 0,
7718 ClawbackClaimableBalanceDoesNotExist = -1,
7719 ClawbackClaimableBalanceNotIssuer = -2,
7720 ClawbackClaimableBalanceNotClawbackEnabled = -3,
7721}
7722
7723impl XdrCodec for ClawbackClaimableBalanceResultCode {
7724 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7725 let value = *self as i32;
7726 value.to_xdr_buffered(write_stream);
7727 }
7728
7729 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7730 let enum_value = i32::from_xdr_buffered(read_stream)?;
7731 match enum_value {
7732 0 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess),
7733 -1 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceDoesNotExist),
7734 -2 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotIssuer),
7735 -3 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotClawbackEnabled),
7736 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7737 }
7738 }
7739}
7740
7741#[allow(dead_code)]
7743#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7744pub enum SetTrustLineFlagsResultCode {
7745 SetTrustLineFlagsSuccess = 0,
7746 SetTrustLineFlagsMalformed = -1,
7747 SetTrustLineFlagsNoTrustLine = -2,
7748 SetTrustLineFlagsCantRevoke = -3,
7749 SetTrustLineFlagsInvalidState = -4,
7750 SetTrustLineFlagsLowReserve = -5,
7751}
7752
7753impl XdrCodec for SetTrustLineFlagsResultCode {
7754 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7755 let value = *self as i32;
7756 value.to_xdr_buffered(write_stream);
7757 }
7758
7759 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7760 let enum_value = i32::from_xdr_buffered(read_stream)?;
7761 match enum_value {
7762 0 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess),
7763 -1 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsMalformed),
7764 -2 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsNoTrustLine),
7765 -3 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsCantRevoke),
7766 -4 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsInvalidState),
7767 -5 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsLowReserve),
7768 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7769 }
7770 }
7771}
7772
7773#[allow(dead_code)]
7775#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7776pub enum LiquidityPoolDepositResultCode {
7777 LiquidityPoolDepositSuccess = 0,
7778 LiquidityPoolDepositMalformed = -1,
7779 LiquidityPoolDepositNoTrust = -2,
7780 LiquidityPoolDepositNotAuthorized = -3,
7781 LiquidityPoolDepositUnderfunded = -4,
7782 LiquidityPoolDepositLineFull = -5,
7783 LiquidityPoolDepositBadPrice = -6,
7784 LiquidityPoolDepositPoolFull = -7,
7785}
7786
7787impl XdrCodec for LiquidityPoolDepositResultCode {
7788 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7789 let value = *self as i32;
7790 value.to_xdr_buffered(write_stream);
7791 }
7792
7793 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7794 let enum_value = i32::from_xdr_buffered(read_stream)?;
7795 match enum_value {
7796 0 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositSuccess),
7797 -1 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositMalformed),
7798 -2 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositNoTrust),
7799 -3 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositNotAuthorized),
7800 -4 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositUnderfunded),
7801 -5 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositLineFull),
7802 -6 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositBadPrice),
7803 -7 => Ok(LiquidityPoolDepositResultCode::LiquidityPoolDepositPoolFull),
7804 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7805 }
7806 }
7807}
7808
7809#[allow(dead_code)]
7811#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7812pub enum LiquidityPoolWithdrawResultCode {
7813 LiquidityPoolWithdrawSuccess = 0,
7814 LiquidityPoolWithdrawMalformed = -1,
7815 LiquidityPoolWithdrawNoTrust = -2,
7816 LiquidityPoolWithdrawUnderfunded = -3,
7817 LiquidityPoolWithdrawLineFull = -4,
7818 LiquidityPoolWithdrawUnderMinimum = -5,
7819}
7820
7821impl XdrCodec for LiquidityPoolWithdrawResultCode {
7822 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7823 let value = *self as i32;
7824 value.to_xdr_buffered(write_stream);
7825 }
7826
7827 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7828 let enum_value = i32::from_xdr_buffered(read_stream)?;
7829 match enum_value {
7830 0 => Ok(LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawSuccess),
7831 -1 => Ok(LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawMalformed),
7832 -2 => Ok(LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawNoTrust),
7833 -3 => Ok(LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawUnderfunded),
7834 -4 => Ok(LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawLineFull),
7835 -5 => Ok(LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawUnderMinimum),
7836 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7837 }
7838 }
7839}
7840
7841#[allow(dead_code)]
7843#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7844pub enum InvokeHostFunctionResultCode {
7845 InvokeHostFunctionSuccess = 0,
7846 InvokeHostFunctionMalformed = -1,
7847 InvokeHostFunctionTrapped = -2,
7848 InvokeHostFunctionResourceLimitExceeded = -3,
7849 InvokeHostFunctionEntryArchived = -4,
7850 InvokeHostFunctionInsufficientRefundableFee = -5,
7851}
7852
7853impl XdrCodec for InvokeHostFunctionResultCode {
7854 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7855 let value = *self as i32;
7856 value.to_xdr_buffered(write_stream);
7857 }
7858
7859 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7860 let enum_value = i32::from_xdr_buffered(read_stream)?;
7861 match enum_value {
7862 0 => Ok(InvokeHostFunctionResultCode::InvokeHostFunctionSuccess),
7863 -1 => Ok(InvokeHostFunctionResultCode::InvokeHostFunctionMalformed),
7864 -2 => Ok(InvokeHostFunctionResultCode::InvokeHostFunctionTrapped),
7865 -3 => Ok(InvokeHostFunctionResultCode::InvokeHostFunctionResourceLimitExceeded),
7866 -4 => Ok(InvokeHostFunctionResultCode::InvokeHostFunctionEntryArchived),
7867 -5 => Ok(InvokeHostFunctionResultCode::InvokeHostFunctionInsufficientRefundableFee),
7868 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7869 }
7870 }
7871}
7872
7873#[allow(dead_code)]
7875#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7876pub enum ExtendFootprintTtlResultCode {
7877 ExtendFootprintTtlSuccess = 0,
7878 ExtendFootprintTtlMalformed = -1,
7879 ExtendFootprintTtlResourceLimitExceeded = -2,
7880 ExtendFootprintTtlInsufficientRefundableFee = -3,
7881}
7882
7883impl XdrCodec for ExtendFootprintTtlResultCode {
7884 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7885 let value = *self as i32;
7886 value.to_xdr_buffered(write_stream);
7887 }
7888
7889 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7890 let enum_value = i32::from_xdr_buffered(read_stream)?;
7891 match enum_value {
7892 0 => Ok(ExtendFootprintTtlResultCode::ExtendFootprintTtlSuccess),
7893 -1 => Ok(ExtendFootprintTtlResultCode::ExtendFootprintTtlMalformed),
7894 -2 => Ok(ExtendFootprintTtlResultCode::ExtendFootprintTtlResourceLimitExceeded),
7895 -3 => Ok(ExtendFootprintTtlResultCode::ExtendFootprintTtlInsufficientRefundableFee),
7896 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7897 }
7898 }
7899}
7900
7901#[allow(dead_code)]
7903#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7904pub enum RestoreFootprintResultCode {
7905 RestoreFootprintSuccess = 0,
7906 RestoreFootprintMalformed = -1,
7907 RestoreFootprintResourceLimitExceeded = -2,
7908 RestoreFootprintInsufficientRefundableFee = -3,
7909}
7910
7911impl XdrCodec for RestoreFootprintResultCode {
7912 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7913 let value = *self as i32;
7914 value.to_xdr_buffered(write_stream);
7915 }
7916
7917 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7918 let enum_value = i32::from_xdr_buffered(read_stream)?;
7919 match enum_value {
7920 0 => Ok(RestoreFootprintResultCode::RestoreFootprintSuccess),
7921 -1 => Ok(RestoreFootprintResultCode::RestoreFootprintMalformed),
7922 -2 => Ok(RestoreFootprintResultCode::RestoreFootprintResourceLimitExceeded),
7923 -3 => Ok(RestoreFootprintResultCode::RestoreFootprintInsufficientRefundableFee),
7924 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7925 }
7926 }
7927}
7928
7929#[allow(dead_code)]
7931#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7932pub enum OperationResultCode {
7933 OpInner = 0,
7934 OpBadAuth = -1,
7935 OpNoAccount = -2,
7936 OpNotSupported = -3,
7937 OpTooManySubentries = -4,
7938 OpExceededWorkLimit = -5,
7939 OpTooManySponsoring = -6,
7940}
7941
7942impl XdrCodec for OperationResultCode {
7943 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7944 let value = *self as i32;
7945 value.to_xdr_buffered(write_stream);
7946 }
7947
7948 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7949 let enum_value = i32::from_xdr_buffered(read_stream)?;
7950 match enum_value {
7951 0 => Ok(OperationResultCode::OpInner),
7952 -1 => Ok(OperationResultCode::OpBadAuth),
7953 -2 => Ok(OperationResultCode::OpNoAccount),
7954 -3 => Ok(OperationResultCode::OpNotSupported),
7955 -4 => Ok(OperationResultCode::OpTooManySubentries),
7956 -5 => Ok(OperationResultCode::OpExceededWorkLimit),
7957 -6 => Ok(OperationResultCode::OpTooManySponsoring),
7958 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
7959 }
7960 }
7961}
7962
7963#[allow(dead_code)]
7965#[derive(Debug, Copy, Clone, Eq, PartialEq)]
7966pub enum TransactionResultCode {
7967 TxFeeBumpInnerSuccess = 1,
7968 TxSuccess = 0,
7969 TxFailed = -1,
7970 TxTooEarly = -2,
7971 TxTooLate = -3,
7972 TxMissingOperation = -4,
7973 TxBadSeq = -5,
7974 TxBadAuth = -6,
7975 TxInsufficientBalance = -7,
7976 TxNoAccount = -8,
7977 TxInsufficientFee = -9,
7978 TxBadAuthExtra = -10,
7979 TxInternalError = -11,
7980 TxNotSupported = -12,
7981 TxFeeBumpInnerFailed = -13,
7982 TxBadSponsorship = -14,
7983 TxBadMinSeqAgeOrGap = -15,
7984 TxMalformed = -16,
7985 TxSorobanInvalid = -17,
7986}
7987
7988impl XdrCodec for TransactionResultCode {
7989 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7990 let value = *self as i32;
7991 value.to_xdr_buffered(write_stream);
7992 }
7993
7994 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
7995 let enum_value = i32::from_xdr_buffered(read_stream)?;
7996 match enum_value {
7997 1 => Ok(TransactionResultCode::TxFeeBumpInnerSuccess),
7998 0 => Ok(TransactionResultCode::TxSuccess),
7999 -1 => Ok(TransactionResultCode::TxFailed),
8000 -2 => Ok(TransactionResultCode::TxTooEarly),
8001 -3 => Ok(TransactionResultCode::TxTooLate),
8002 -4 => Ok(TransactionResultCode::TxMissingOperation),
8003 -5 => Ok(TransactionResultCode::TxBadSeq),
8004 -6 => Ok(TransactionResultCode::TxBadAuth),
8005 -7 => Ok(TransactionResultCode::TxInsufficientBalance),
8006 -8 => Ok(TransactionResultCode::TxNoAccount),
8007 -9 => Ok(TransactionResultCode::TxInsufficientFee),
8008 -10 => Ok(TransactionResultCode::TxBadAuthExtra),
8009 -11 => Ok(TransactionResultCode::TxInternalError),
8010 -12 => Ok(TransactionResultCode::TxNotSupported),
8011 -13 => Ok(TransactionResultCode::TxFeeBumpInnerFailed),
8012 -14 => Ok(TransactionResultCode::TxBadSponsorship),
8013 -15 => Ok(TransactionResultCode::TxBadMinSeqAgeOrGap),
8014 -16 => Ok(TransactionResultCode::TxMalformed),
8015 -17 => Ok(TransactionResultCode::TxSorobanInvalid),
8016 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
8017 }
8018 }
8019}
8020
8021#[allow(dead_code)]
8023#[derive(Debug, Clone, Eq, PartialEq)]
8024pub struct InnerTransactionResult {
8025 pub fee_charged: Int64,
8026 pub result: InnerTransactionResultResult,
8027 pub ext: InnerTransactionResultExt,
8028}
8029
8030impl XdrCodec for InnerTransactionResult {
8031 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8032 self.fee_charged.to_xdr_buffered(write_stream);
8033 self.result.to_xdr_buffered(write_stream);
8034 self.ext.to_xdr_buffered(write_stream);
8035 }
8036
8037 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8038 Ok(InnerTransactionResult {
8039 fee_charged: Int64::from_xdr_buffered(read_stream)?,
8040 result: InnerTransactionResultResult::from_xdr_buffered(read_stream)?,
8041 ext: InnerTransactionResultExt::from_xdr_buffered(read_stream)?,
8042 })
8043 }
8044}
8045
8046#[allow(dead_code)]
8048#[derive(Debug, Clone, Eq, PartialEq)]
8049pub struct InnerTransactionResultPair {
8050 pub transaction_hash: Hash,
8051 pub result: InnerTransactionResult,
8052}
8053
8054impl XdrCodec for InnerTransactionResultPair {
8055 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8056 self.transaction_hash.to_xdr_buffered(write_stream);
8057 self.result.to_xdr_buffered(write_stream);
8058 }
8059
8060 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8061 Ok(InnerTransactionResultPair {
8062 transaction_hash: Hash::from_xdr_buffered(read_stream)?,
8063 result: InnerTransactionResult::from_xdr_buffered(read_stream)?,
8064 })
8065 }
8066}
8067
8068#[allow(dead_code)]
8070#[derive(Debug, Clone, Eq, PartialEq)]
8071pub struct TransactionResult {
8072 pub fee_charged: Int64,
8073 pub result: TransactionResultResult,
8074 pub ext: TransactionResultExt,
8075}
8076
8077impl XdrCodec for TransactionResult {
8078 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8079 self.fee_charged.to_xdr_buffered(write_stream);
8080 self.result.to_xdr_buffered(write_stream);
8081 self.ext.to_xdr_buffered(write_stream);
8082 }
8083
8084 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8085 Ok(TransactionResult {
8086 fee_charged: Int64::from_xdr_buffered(read_stream)?,
8087 result: TransactionResultResult::from_xdr_buffered(read_stream)?,
8088 ext: TransactionResultExt::from_xdr_buffered(read_stream)?,
8089 })
8090 }
8091}
8092
8093#[allow(dead_code)]
8095pub type Hash = [u8; 32];
8096
8097#[allow(dead_code)]
8099pub type Uint256 = [u8; 32];
8100
8101#[allow(dead_code)]
8103pub type Uint32 = u32;
8104
8105#[allow(dead_code)]
8107pub type Int32 = i32;
8108
8109#[allow(dead_code)]
8111pub type Uint64 = u64;
8112
8113#[allow(dead_code)]
8115pub type Int64 = i64;
8116
8117#[allow(dead_code)]
8119pub type TimePoint = Uint64;
8120
8121#[allow(dead_code)]
8123pub type Duration = Uint64;
8124
8125#[allow(dead_code)]
8127#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8128pub enum CryptoKeyType {
8129 KeyTypeEd25519 = 0,
8130 KeyTypePreAuthTx = 1,
8131 KeyTypeHashX = 2,
8132 KeyTypeEd25519SignedPayload = 3,
8133 KeyTypeMuxedEd25519 = 256,
8134}
8135
8136impl XdrCodec for CryptoKeyType {
8137 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8138 let value = *self as i32;
8139 value.to_xdr_buffered(write_stream);
8140 }
8141
8142 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8143 let enum_value = i32::from_xdr_buffered(read_stream)?;
8144 match enum_value {
8145 0 => Ok(CryptoKeyType::KeyTypeEd25519),
8146 1 => Ok(CryptoKeyType::KeyTypePreAuthTx),
8147 2 => Ok(CryptoKeyType::KeyTypeHashX),
8148 3 => Ok(CryptoKeyType::KeyTypeEd25519SignedPayload),
8149 256 => Ok(CryptoKeyType::KeyTypeMuxedEd25519),
8150 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
8151 }
8152 }
8153}
8154
8155#[allow(dead_code)]
8157#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8158pub enum PublicKeyType {
8159 PublicKeyTypeEd25519 = 0,
8160}
8161
8162impl XdrCodec for PublicKeyType {
8163 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8164 let value = *self as i32;
8165 value.to_xdr_buffered(write_stream);
8166 }
8167
8168 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8169 let enum_value = i32::from_xdr_buffered(read_stream)?;
8170 match enum_value {
8171 0 => Ok(PublicKeyType::PublicKeyTypeEd25519),
8172 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
8173 }
8174 }
8175}
8176
8177#[allow(dead_code)]
8179#[derive(Debug, Copy, Clone, Eq, PartialEq)]
8180pub enum SignerKeyType {
8181 SignerKeyTypeEd25519 = 0,
8182 SignerKeyTypePreAuthTx = 1,
8183 SignerKeyTypeHashX = 2,
8184 SignerKeyTypeEd25519SignedPayload = 3,
8185}
8186
8187impl XdrCodec for SignerKeyType {
8188 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8189 let value = *self as i32;
8190 value.to_xdr_buffered(write_stream);
8191 }
8192
8193 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8194 let enum_value = i32::from_xdr_buffered(read_stream)?;
8195 match enum_value {
8196 0 => Ok(SignerKeyType::SignerKeyTypeEd25519),
8197 1 => Ok(SignerKeyType::SignerKeyTypePreAuthTx),
8198 2 => Ok(SignerKeyType::SignerKeyTypeHashX),
8199 3 => Ok(SignerKeyType::SignerKeyTypeEd25519SignedPayload),
8200 _ => Err(DecodeError::InvalidEnumDiscriminator { at_position: read_stream.get_position() }),
8201 }
8202 }
8203}
8204
8205#[allow(dead_code)]
8207#[derive(Debug, Clone, Eq, PartialEq)]
8208pub struct SignerKeyEd25519SignedPayload {
8209 pub ed25519: Uint256,
8210 pub payload: LimitedVarOpaque<64>,
8211}
8212
8213impl XdrCodec for SignerKeyEd25519SignedPayload {
8214 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8215 self.ed25519.to_xdr_buffered(write_stream);
8216 self.payload.to_xdr_buffered(write_stream);
8217 }
8218
8219 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8220 Ok(SignerKeyEd25519SignedPayload {
8221 ed25519: Uint256::from_xdr_buffered(read_stream)?,
8222 payload: LimitedVarOpaque::<64>::from_xdr_buffered(read_stream)?,
8223 })
8224 }
8225}
8226
8227#[allow(dead_code)]
8229pub type Signature = LimitedVarOpaque<64>;
8230
8231#[allow(dead_code)]
8233pub type SignatureHint = [u8; 4];
8234
8235#[allow(dead_code)]
8237#[cfg(feature = "all-types")]
8238pub type NodeId = PublicKey;
8239
8240#[allow(dead_code)]
8242pub type AccountId = PublicKey;
8243
8244#[allow(dead_code)]
8246#[derive(Debug, Clone, Eq, PartialEq)]
8247pub struct Curve25519Secret {
8248 pub key: [u8; 32],
8249}
8250
8251impl XdrCodec for Curve25519Secret {
8252 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8253 self.key.to_xdr_buffered(write_stream);
8254 }
8255
8256 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8257 Ok(Curve25519Secret { key: <[u8; 32]>::from_xdr_buffered(read_stream)? })
8258 }
8259}
8260
8261#[allow(dead_code)]
8263#[cfg(feature = "all-types")]
8264#[derive(Debug, Clone, Eq, PartialEq)]
8265pub struct Curve25519Public {
8266 pub key: [u8; 32],
8267}
8268
8269#[cfg(feature = "all-types")]
8270impl XdrCodec for Curve25519Public {
8271 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8272 self.key.to_xdr_buffered(write_stream);
8273 }
8274
8275 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8276 Ok(Curve25519Public { key: <[u8; 32]>::from_xdr_buffered(read_stream)? })
8277 }
8278}
8279
8280#[allow(dead_code)]
8282#[cfg(feature = "all-types")]
8283#[derive(Debug, Clone, Eq, PartialEq)]
8284pub struct HmacSha256Key {
8285 pub key: [u8; 32],
8286}
8287
8288#[cfg(feature = "all-types")]
8289impl XdrCodec for HmacSha256Key {
8290 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8291 self.key.to_xdr_buffered(write_stream);
8292 }
8293
8294 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8295 Ok(HmacSha256Key { key: <[u8; 32]>::from_xdr_buffered(read_stream)? })
8296 }
8297}
8298
8299#[allow(dead_code)]
8301#[cfg(feature = "all-types")]
8302#[derive(Debug, Clone, Eq, PartialEq)]
8303pub struct HmacSha256Mac {
8304 pub mac: [u8; 32],
8305}
8306
8307#[cfg(feature = "all-types")]
8308impl XdrCodec for HmacSha256Mac {
8309 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8310 self.mac.to_xdr_buffered(write_stream);
8311 }
8312
8313 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8314 Ok(HmacSha256Mac { mac: <[u8; 32]>::from_xdr_buffered(read_stream)? })
8315 }
8316}
8317
8318#[allow(dead_code)]
8320#[cfg(feature = "all-types")]
8321#[derive(Debug, Clone, Eq, PartialEq)]
8322pub enum ScpStatementPledges {
8323 ScpStPrepare(ScpStatementPrepare),
8324 ScpStConfirm(ScpStatementConfirm),
8325 ScpStExternalize(ScpStatementExternalize),
8326 ScpStNominate(ScpNomination),
8327}
8328
8329#[cfg(feature = "all-types")]
8330impl XdrCodec for ScpStatementPledges {
8331 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8332 match self {
8333 ScpStatementPledges::ScpStPrepare(value) => {
8334 ScpStatementType::ScpStPrepare.to_xdr_buffered(write_stream);
8335 value.to_xdr_buffered(write_stream)
8336 },
8337 ScpStatementPledges::ScpStConfirm(value) => {
8338 ScpStatementType::ScpStConfirm.to_xdr_buffered(write_stream);
8339 value.to_xdr_buffered(write_stream)
8340 },
8341 ScpStatementPledges::ScpStExternalize(value) => {
8342 ScpStatementType::ScpStExternalize.to_xdr_buffered(write_stream);
8343 value.to_xdr_buffered(write_stream)
8344 },
8345 ScpStatementPledges::ScpStNominate(value) => {
8346 ScpStatementType::ScpStNominate.to_xdr_buffered(write_stream);
8347 value.to_xdr_buffered(write_stream)
8348 },
8349 }
8350 }
8351
8352 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8353 match ScpStatementType::from_xdr_buffered(read_stream)? {
8354 ScpStatementType::ScpStPrepare =>
8355 Ok(ScpStatementPledges::ScpStPrepare(ScpStatementPrepare::from_xdr_buffered(read_stream)?)),
8356 ScpStatementType::ScpStConfirm =>
8357 Ok(ScpStatementPledges::ScpStConfirm(ScpStatementConfirm::from_xdr_buffered(read_stream)?)),
8358 ScpStatementType::ScpStExternalize =>
8359 Ok(ScpStatementPledges::ScpStExternalize(ScpStatementExternalize::from_xdr_buffered(read_stream)?)),
8360 ScpStatementType::ScpStNominate =>
8361 Ok(ScpStatementPledges::ScpStNominate(ScpNomination::from_xdr_buffered(read_stream)?)),
8362 }
8363 }
8364}
8365
8366#[allow(dead_code)]
8368#[derive(Debug, Clone, Eq, PartialEq)]
8369pub enum ConfigSettingEntry {
8370 ConfigSettingContractMaxSizeBytes(Uint32),
8371 ConfigSettingContractComputeV0(ConfigSettingContractComputeV0),
8372 ConfigSettingContractLedgerCostV0(ConfigSettingContractLedgerCostV0),
8373 ConfigSettingContractHistoricalDataV0(ConfigSettingContractHistoricalDataV0),
8374 ConfigSettingContractEventsV0(ConfigSettingContractEventsV0),
8375 ConfigSettingContractBandwidthV0(ConfigSettingContractBandwidthV0),
8376 ConfigSettingContractCostParamsCpuInstructions(ContractCostParams),
8377 ConfigSettingContractCostParamsMemoryBytes(ContractCostParams),
8378 ConfigSettingContractDataKeySizeBytes(Uint32),
8379 ConfigSettingContractDataEntrySizeBytes(Uint32),
8380 ConfigSettingStateArchival(StateArchivalSettings),
8381 ConfigSettingContractExecutionLanes(ConfigSettingContractExecutionLanesV0),
8382 ConfigSettingBucketlistSizeWindow(UnlimitedVarArray<Uint64>),
8383 ConfigSettingEvictionIterator(EvictionIterator),
8384}
8385
8386impl XdrCodec for ConfigSettingEntry {
8387 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8388 match self {
8389 ConfigSettingEntry::ConfigSettingContractMaxSizeBytes(value) => {
8390 ConfigSettingId::ConfigSettingContractMaxSizeBytes.to_xdr_buffered(write_stream);
8391 value.to_xdr_buffered(write_stream)
8392 },
8393 ConfigSettingEntry::ConfigSettingContractComputeV0(value) => {
8394 ConfigSettingId::ConfigSettingContractComputeV0.to_xdr_buffered(write_stream);
8395 value.to_xdr_buffered(write_stream)
8396 },
8397 ConfigSettingEntry::ConfigSettingContractLedgerCostV0(value) => {
8398 ConfigSettingId::ConfigSettingContractLedgerCostV0.to_xdr_buffered(write_stream);
8399 value.to_xdr_buffered(write_stream)
8400 },
8401 ConfigSettingEntry::ConfigSettingContractHistoricalDataV0(value) => {
8402 ConfigSettingId::ConfigSettingContractHistoricalDataV0.to_xdr_buffered(write_stream);
8403 value.to_xdr_buffered(write_stream)
8404 },
8405 ConfigSettingEntry::ConfigSettingContractEventsV0(value) => {
8406 ConfigSettingId::ConfigSettingContractEventsV0.to_xdr_buffered(write_stream);
8407 value.to_xdr_buffered(write_stream)
8408 },
8409 ConfigSettingEntry::ConfigSettingContractBandwidthV0(value) => {
8410 ConfigSettingId::ConfigSettingContractBandwidthV0.to_xdr_buffered(write_stream);
8411 value.to_xdr_buffered(write_stream)
8412 },
8413 ConfigSettingEntry::ConfigSettingContractCostParamsCpuInstructions(value) => {
8414 ConfigSettingId::ConfigSettingContractCostParamsCpuInstructions.to_xdr_buffered(write_stream);
8415 value.to_xdr_buffered(write_stream)
8416 },
8417 ConfigSettingEntry::ConfigSettingContractCostParamsMemoryBytes(value) => {
8418 ConfigSettingId::ConfigSettingContractCostParamsMemoryBytes.to_xdr_buffered(write_stream);
8419 value.to_xdr_buffered(write_stream)
8420 },
8421 ConfigSettingEntry::ConfigSettingContractDataKeySizeBytes(value) => {
8422 ConfigSettingId::ConfigSettingContractDataKeySizeBytes.to_xdr_buffered(write_stream);
8423 value.to_xdr_buffered(write_stream)
8424 },
8425 ConfigSettingEntry::ConfigSettingContractDataEntrySizeBytes(value) => {
8426 ConfigSettingId::ConfigSettingContractDataEntrySizeBytes.to_xdr_buffered(write_stream);
8427 value.to_xdr_buffered(write_stream)
8428 },
8429 ConfigSettingEntry::ConfigSettingStateArchival(value) => {
8430 ConfigSettingId::ConfigSettingStateArchival.to_xdr_buffered(write_stream);
8431 value.to_xdr_buffered(write_stream)
8432 },
8433 ConfigSettingEntry::ConfigSettingContractExecutionLanes(value) => {
8434 ConfigSettingId::ConfigSettingContractExecutionLanes.to_xdr_buffered(write_stream);
8435 value.to_xdr_buffered(write_stream)
8436 },
8437 ConfigSettingEntry::ConfigSettingBucketlistSizeWindow(value) => {
8438 ConfigSettingId::ConfigSettingBucketlistSizeWindow.to_xdr_buffered(write_stream);
8439 value.to_xdr_buffered(write_stream)
8440 },
8441 ConfigSettingEntry::ConfigSettingEvictionIterator(value) => {
8442 ConfigSettingId::ConfigSettingEvictionIterator.to_xdr_buffered(write_stream);
8443 value.to_xdr_buffered(write_stream)
8444 },
8445 }
8446 }
8447
8448 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8449 match ConfigSettingId::from_xdr_buffered(read_stream)? {
8450 ConfigSettingId::ConfigSettingContractMaxSizeBytes =>
8451 Ok(ConfigSettingEntry::ConfigSettingContractMaxSizeBytes(Uint32::from_xdr_buffered(read_stream)?)),
8452 ConfigSettingId::ConfigSettingContractComputeV0 => Ok(ConfigSettingEntry::ConfigSettingContractComputeV0(
8453 ConfigSettingContractComputeV0::from_xdr_buffered(read_stream)?,
8454 )),
8455 ConfigSettingId::ConfigSettingContractLedgerCostV0 =>
8456 Ok(ConfigSettingEntry::ConfigSettingContractLedgerCostV0(
8457 ConfigSettingContractLedgerCostV0::from_xdr_buffered(read_stream)?,
8458 )),
8459 ConfigSettingId::ConfigSettingContractHistoricalDataV0 =>
8460 Ok(ConfigSettingEntry::ConfigSettingContractHistoricalDataV0(
8461 ConfigSettingContractHistoricalDataV0::from_xdr_buffered(read_stream)?,
8462 )),
8463 ConfigSettingId::ConfigSettingContractEventsV0 => Ok(ConfigSettingEntry::ConfigSettingContractEventsV0(
8464 ConfigSettingContractEventsV0::from_xdr_buffered(read_stream)?,
8465 )),
8466 ConfigSettingId::ConfigSettingContractBandwidthV0 =>
8467 Ok(ConfigSettingEntry::ConfigSettingContractBandwidthV0(
8468 ConfigSettingContractBandwidthV0::from_xdr_buffered(read_stream)?,
8469 )),
8470 ConfigSettingId::ConfigSettingContractCostParamsCpuInstructions =>
8471 Ok(ConfigSettingEntry::ConfigSettingContractCostParamsCpuInstructions(
8472 ContractCostParams::from_xdr_buffered(read_stream)?,
8473 )),
8474 ConfigSettingId::ConfigSettingContractCostParamsMemoryBytes =>
8475 Ok(ConfigSettingEntry::ConfigSettingContractCostParamsMemoryBytes(
8476 ContractCostParams::from_xdr_buffered(read_stream)?,
8477 )),
8478 ConfigSettingId::ConfigSettingContractDataKeySizeBytes =>
8479 Ok(ConfigSettingEntry::ConfigSettingContractDataKeySizeBytes(Uint32::from_xdr_buffered(read_stream)?)),
8480 ConfigSettingId::ConfigSettingContractDataEntrySizeBytes =>
8481 Ok(ConfigSettingEntry::ConfigSettingContractDataEntrySizeBytes(Uint32::from_xdr_buffered(read_stream)?)),
8482 ConfigSettingId::ConfigSettingStateArchival => Ok(ConfigSettingEntry::ConfigSettingStateArchival(
8483 StateArchivalSettings::from_xdr_buffered(read_stream)?,
8484 )),
8485 ConfigSettingId::ConfigSettingContractExecutionLanes =>
8486 Ok(ConfigSettingEntry::ConfigSettingContractExecutionLanes(
8487 ConfigSettingContractExecutionLanesV0::from_xdr_buffered(read_stream)?,
8488 )),
8489 ConfigSettingId::ConfigSettingBucketlistSizeWindow =>
8490 Ok(ConfigSettingEntry::ConfigSettingBucketlistSizeWindow(
8491 UnlimitedVarArray::<Uint64>::from_xdr_buffered(read_stream)?,
8492 )),
8493 ConfigSettingId::ConfigSettingEvictionIterator =>
8494 Ok(ConfigSettingEntry::ConfigSettingEvictionIterator(EvictionIterator::from_xdr_buffered(read_stream)?)),
8495 }
8496 }
8497}
8498
8499#[allow(dead_code)]
8501#[cfg(feature = "all-types")]
8502#[derive(Debug, Clone, Eq, PartialEq)]
8503pub enum ScEnvMetaEntry {
8504 ScEnvMetaKindInterfaceVersion(Uint64),
8505}
8506
8507#[cfg(feature = "all-types")]
8508impl XdrCodec for ScEnvMetaEntry {
8509 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8510 match self {
8511 ScEnvMetaEntry::ScEnvMetaKindInterfaceVersion(value) => {
8512 ScEnvMetaKind::ScEnvMetaKindInterfaceVersion.to_xdr_buffered(write_stream);
8513 value.to_xdr_buffered(write_stream)
8514 },
8515 }
8516 }
8517
8518 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8519 match ScEnvMetaKind::from_xdr_buffered(read_stream)? {
8520 ScEnvMetaKind::ScEnvMetaKindInterfaceVersion =>
8521 Ok(ScEnvMetaEntry::ScEnvMetaKindInterfaceVersion(Uint64::from_xdr_buffered(read_stream)?)),
8522 }
8523 }
8524}
8525
8526#[allow(dead_code)]
8528#[cfg(feature = "all-types")]
8529#[derive(Debug, Clone, Eq, PartialEq)]
8530pub enum ScMetaEntry {
8531 ScMetaV0(ScMetaV0),
8532}
8533
8534#[cfg(feature = "all-types")]
8535impl XdrCodec for ScMetaEntry {
8536 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8537 match self {
8538 ScMetaEntry::ScMetaV0(value) => {
8539 ScMetaKind::ScMetaV0.to_xdr_buffered(write_stream);
8540 value.to_xdr_buffered(write_stream)
8541 },
8542 }
8543 }
8544
8545 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8546 match ScMetaKind::from_xdr_buffered(read_stream)? {
8547 ScMetaKind::ScMetaV0 => Ok(ScMetaEntry::ScMetaV0(ScMetaV0::from_xdr_buffered(read_stream)?)),
8548 }
8549 }
8550}
8551
8552#[allow(dead_code)]
8554#[cfg(feature = "all-types")]
8555#[derive(Debug, Clone, Eq, PartialEq)]
8556pub enum ScSpecTypeDef {
8557 ScSpecTypeVal,
8558 ScSpecTypeBool,
8559 ScSpecTypeVoid,
8560 ScSpecTypeError,
8561 ScSpecTypeU32,
8562 ScSpecTypeI32,
8563 ScSpecTypeU64,
8564 ScSpecTypeI64,
8565 ScSpecTypeTimepoint,
8566 ScSpecTypeDuration,
8567 ScSpecTypeU128,
8568 ScSpecTypeI128,
8569 ScSpecTypeU256,
8570 ScSpecTypeI256,
8571 ScSpecTypeBytes,
8572 ScSpecTypeString,
8573 ScSpecTypeSymbol,
8574 ScSpecTypeAddress,
8575 ScSpecTypeOption(Box<ScSpecTypeOption>),
8576 ScSpecTypeResult(Box<ScSpecTypeResult>),
8577 ScSpecTypeVec(Box<ScSpecTypeVec>),
8578 ScSpecTypeMap(Box<ScSpecTypeMap>),
8579 ScSpecTypeTuple(Box<ScSpecTypeTuple>),
8580 ScSpecTypeBytesN(Box<ScSpecTypeBytesN>),
8581 ScSpecTypeUdt(Box<ScSpecTypeUdt>),
8582}
8583
8584#[cfg(feature = "all-types")]
8585impl XdrCodec for ScSpecTypeDef {
8586 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8587 match self {
8588 ScSpecTypeDef::ScSpecTypeVal => ScSpecType::ScSpecTypeVal.to_xdr_buffered(write_stream),
8589 ScSpecTypeDef::ScSpecTypeBool => ScSpecType::ScSpecTypeBool.to_xdr_buffered(write_stream),
8590 ScSpecTypeDef::ScSpecTypeVoid => ScSpecType::ScSpecTypeVoid.to_xdr_buffered(write_stream),
8591 ScSpecTypeDef::ScSpecTypeError => ScSpecType::ScSpecTypeError.to_xdr_buffered(write_stream),
8592 ScSpecTypeDef::ScSpecTypeU32 => ScSpecType::ScSpecTypeU32.to_xdr_buffered(write_stream),
8593 ScSpecTypeDef::ScSpecTypeI32 => ScSpecType::ScSpecTypeI32.to_xdr_buffered(write_stream),
8594 ScSpecTypeDef::ScSpecTypeU64 => ScSpecType::ScSpecTypeU64.to_xdr_buffered(write_stream),
8595 ScSpecTypeDef::ScSpecTypeI64 => ScSpecType::ScSpecTypeI64.to_xdr_buffered(write_stream),
8596 ScSpecTypeDef::ScSpecTypeTimepoint => ScSpecType::ScSpecTypeTimepoint.to_xdr_buffered(write_stream),
8597 ScSpecTypeDef::ScSpecTypeDuration => ScSpecType::ScSpecTypeDuration.to_xdr_buffered(write_stream),
8598 ScSpecTypeDef::ScSpecTypeU128 => ScSpecType::ScSpecTypeU128.to_xdr_buffered(write_stream),
8599 ScSpecTypeDef::ScSpecTypeI128 => ScSpecType::ScSpecTypeI128.to_xdr_buffered(write_stream),
8600 ScSpecTypeDef::ScSpecTypeU256 => ScSpecType::ScSpecTypeU256.to_xdr_buffered(write_stream),
8601 ScSpecTypeDef::ScSpecTypeI256 => ScSpecType::ScSpecTypeI256.to_xdr_buffered(write_stream),
8602 ScSpecTypeDef::ScSpecTypeBytes => ScSpecType::ScSpecTypeBytes.to_xdr_buffered(write_stream),
8603 ScSpecTypeDef::ScSpecTypeString => ScSpecType::ScSpecTypeString.to_xdr_buffered(write_stream),
8604 ScSpecTypeDef::ScSpecTypeSymbol => ScSpecType::ScSpecTypeSymbol.to_xdr_buffered(write_stream),
8605 ScSpecTypeDef::ScSpecTypeAddress => ScSpecType::ScSpecTypeAddress.to_xdr_buffered(write_stream),
8606 ScSpecTypeDef::ScSpecTypeOption(value) => {
8607 ScSpecType::ScSpecTypeOption.to_xdr_buffered(write_stream);
8608 value.to_xdr_buffered(write_stream)
8609 },
8610 ScSpecTypeDef::ScSpecTypeResult(value) => {
8611 ScSpecType::ScSpecTypeResult.to_xdr_buffered(write_stream);
8612 value.to_xdr_buffered(write_stream)
8613 },
8614 ScSpecTypeDef::ScSpecTypeVec(value) => {
8615 ScSpecType::ScSpecTypeVec.to_xdr_buffered(write_stream);
8616 value.to_xdr_buffered(write_stream)
8617 },
8618 ScSpecTypeDef::ScSpecTypeMap(value) => {
8619 ScSpecType::ScSpecTypeMap.to_xdr_buffered(write_stream);
8620 value.to_xdr_buffered(write_stream)
8621 },
8622 ScSpecTypeDef::ScSpecTypeTuple(value) => {
8623 ScSpecType::ScSpecTypeTuple.to_xdr_buffered(write_stream);
8624 value.to_xdr_buffered(write_stream)
8625 },
8626 ScSpecTypeDef::ScSpecTypeBytesN(value) => {
8627 ScSpecType::ScSpecTypeBytesN.to_xdr_buffered(write_stream);
8628 value.to_xdr_buffered(write_stream)
8629 },
8630 ScSpecTypeDef::ScSpecTypeUdt(value) => {
8631 ScSpecType::ScSpecTypeUdt.to_xdr_buffered(write_stream);
8632 value.to_xdr_buffered(write_stream)
8633 },
8634 }
8635 }
8636
8637 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8638 match ScSpecType::from_xdr_buffered(read_stream)? {
8639 ScSpecType::ScSpecTypeVal => Ok(ScSpecTypeDef::ScSpecTypeVal),
8640 ScSpecType::ScSpecTypeBool => Ok(ScSpecTypeDef::ScSpecTypeBool),
8641 ScSpecType::ScSpecTypeVoid => Ok(ScSpecTypeDef::ScSpecTypeVoid),
8642 ScSpecType::ScSpecTypeError => Ok(ScSpecTypeDef::ScSpecTypeError),
8643 ScSpecType::ScSpecTypeU32 => Ok(ScSpecTypeDef::ScSpecTypeU32),
8644 ScSpecType::ScSpecTypeI32 => Ok(ScSpecTypeDef::ScSpecTypeI32),
8645 ScSpecType::ScSpecTypeU64 => Ok(ScSpecTypeDef::ScSpecTypeU64),
8646 ScSpecType::ScSpecTypeI64 => Ok(ScSpecTypeDef::ScSpecTypeI64),
8647 ScSpecType::ScSpecTypeTimepoint => Ok(ScSpecTypeDef::ScSpecTypeTimepoint),
8648 ScSpecType::ScSpecTypeDuration => Ok(ScSpecTypeDef::ScSpecTypeDuration),
8649 ScSpecType::ScSpecTypeU128 => Ok(ScSpecTypeDef::ScSpecTypeU128),
8650 ScSpecType::ScSpecTypeI128 => Ok(ScSpecTypeDef::ScSpecTypeI128),
8651 ScSpecType::ScSpecTypeU256 => Ok(ScSpecTypeDef::ScSpecTypeU256),
8652 ScSpecType::ScSpecTypeI256 => Ok(ScSpecTypeDef::ScSpecTypeI256),
8653 ScSpecType::ScSpecTypeBytes => Ok(ScSpecTypeDef::ScSpecTypeBytes),
8654 ScSpecType::ScSpecTypeString => Ok(ScSpecTypeDef::ScSpecTypeString),
8655 ScSpecType::ScSpecTypeSymbol => Ok(ScSpecTypeDef::ScSpecTypeSymbol),
8656 ScSpecType::ScSpecTypeAddress => Ok(ScSpecTypeDef::ScSpecTypeAddress),
8657 ScSpecType::ScSpecTypeOption =>
8658 Ok(ScSpecTypeDef::ScSpecTypeOption(Box::new(ScSpecTypeOption::from_xdr_buffered(read_stream)?))),
8659 ScSpecType::ScSpecTypeResult =>
8660 Ok(ScSpecTypeDef::ScSpecTypeResult(Box::new(ScSpecTypeResult::from_xdr_buffered(read_stream)?))),
8661 ScSpecType::ScSpecTypeVec =>
8662 Ok(ScSpecTypeDef::ScSpecTypeVec(Box::new(ScSpecTypeVec::from_xdr_buffered(read_stream)?))),
8663 ScSpecType::ScSpecTypeMap =>
8664 Ok(ScSpecTypeDef::ScSpecTypeMap(Box::new(ScSpecTypeMap::from_xdr_buffered(read_stream)?))),
8665 ScSpecType::ScSpecTypeTuple =>
8666 Ok(ScSpecTypeDef::ScSpecTypeTuple(Box::new(ScSpecTypeTuple::from_xdr_buffered(read_stream)?))),
8667 ScSpecType::ScSpecTypeBytesN =>
8668 Ok(ScSpecTypeDef::ScSpecTypeBytesN(Box::new(ScSpecTypeBytesN::from_xdr_buffered(read_stream)?))),
8669 ScSpecType::ScSpecTypeUdt =>
8670 Ok(ScSpecTypeDef::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::from_xdr_buffered(read_stream)?))),
8671 }
8672 }
8673}
8674
8675#[allow(dead_code)]
8677#[cfg(feature = "all-types")]
8678#[derive(Debug, Clone, Eq, PartialEq)]
8679pub enum ScSpecUdtUnionCaseV0 {
8680 ScSpecUdtUnionCaseVoidV0(ScSpecUdtUnionCaseVoidV0),
8681 ScSpecUdtUnionCaseTupleV0(ScSpecUdtUnionCaseTupleV0),
8682}
8683
8684#[cfg(feature = "all-types")]
8685impl XdrCodec for ScSpecUdtUnionCaseV0 {
8686 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8687 match self {
8688 ScSpecUdtUnionCaseV0::ScSpecUdtUnionCaseVoidV0(value) => {
8689 ScSpecUdtUnionCaseV0Kind::ScSpecUdtUnionCaseVoidV0.to_xdr_buffered(write_stream);
8690 value.to_xdr_buffered(write_stream)
8691 },
8692 ScSpecUdtUnionCaseV0::ScSpecUdtUnionCaseTupleV0(value) => {
8693 ScSpecUdtUnionCaseV0Kind::ScSpecUdtUnionCaseTupleV0.to_xdr_buffered(write_stream);
8694 value.to_xdr_buffered(write_stream)
8695 },
8696 }
8697 }
8698
8699 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8700 match ScSpecUdtUnionCaseV0Kind::from_xdr_buffered(read_stream)? {
8701 ScSpecUdtUnionCaseV0Kind::ScSpecUdtUnionCaseVoidV0 => Ok(ScSpecUdtUnionCaseV0::ScSpecUdtUnionCaseVoidV0(
8702 ScSpecUdtUnionCaseVoidV0::from_xdr_buffered(read_stream)?,
8703 )),
8704 ScSpecUdtUnionCaseV0Kind::ScSpecUdtUnionCaseTupleV0 => Ok(ScSpecUdtUnionCaseV0::ScSpecUdtUnionCaseTupleV0(
8705 ScSpecUdtUnionCaseTupleV0::from_xdr_buffered(read_stream)?,
8706 )),
8707 }
8708 }
8709}
8710
8711#[allow(dead_code)]
8713#[cfg(feature = "all-types")]
8714#[derive(Debug, Clone, Eq, PartialEq)]
8715pub enum ScSpecEntry {
8716 ScSpecEntryFunctionV0(ScSpecFunctionV0),
8717 ScSpecEntryUdtStructV0(ScSpecUdtStructV0),
8718 ScSpecEntryUdtUnionV0(ScSpecUdtUnionV0),
8719 ScSpecEntryUdtEnumV0(ScSpecUdtEnumV0),
8720 ScSpecEntryUdtErrorEnumV0(ScSpecUdtErrorEnumV0),
8721}
8722
8723#[cfg(feature = "all-types")]
8724impl XdrCodec for ScSpecEntry {
8725 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8726 match self {
8727 ScSpecEntry::ScSpecEntryFunctionV0(value) => {
8728 ScSpecEntryKind::ScSpecEntryFunctionV0.to_xdr_buffered(write_stream);
8729 value.to_xdr_buffered(write_stream)
8730 },
8731 ScSpecEntry::ScSpecEntryUdtStructV0(value) => {
8732 ScSpecEntryKind::ScSpecEntryUdtStructV0.to_xdr_buffered(write_stream);
8733 value.to_xdr_buffered(write_stream)
8734 },
8735 ScSpecEntry::ScSpecEntryUdtUnionV0(value) => {
8736 ScSpecEntryKind::ScSpecEntryUdtUnionV0.to_xdr_buffered(write_stream);
8737 value.to_xdr_buffered(write_stream)
8738 },
8739 ScSpecEntry::ScSpecEntryUdtEnumV0(value) => {
8740 ScSpecEntryKind::ScSpecEntryUdtEnumV0.to_xdr_buffered(write_stream);
8741 value.to_xdr_buffered(write_stream)
8742 },
8743 ScSpecEntry::ScSpecEntryUdtErrorEnumV0(value) => {
8744 ScSpecEntryKind::ScSpecEntryUdtErrorEnumV0.to_xdr_buffered(write_stream);
8745 value.to_xdr_buffered(write_stream)
8746 },
8747 }
8748 }
8749
8750 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8751 match ScSpecEntryKind::from_xdr_buffered(read_stream)? {
8752 ScSpecEntryKind::ScSpecEntryFunctionV0 =>
8753 Ok(ScSpecEntry::ScSpecEntryFunctionV0(ScSpecFunctionV0::from_xdr_buffered(read_stream)?)),
8754 ScSpecEntryKind::ScSpecEntryUdtStructV0 =>
8755 Ok(ScSpecEntry::ScSpecEntryUdtStructV0(ScSpecUdtStructV0::from_xdr_buffered(read_stream)?)),
8756 ScSpecEntryKind::ScSpecEntryUdtUnionV0 =>
8757 Ok(ScSpecEntry::ScSpecEntryUdtUnionV0(ScSpecUdtUnionV0::from_xdr_buffered(read_stream)?)),
8758 ScSpecEntryKind::ScSpecEntryUdtEnumV0 =>
8759 Ok(ScSpecEntry::ScSpecEntryUdtEnumV0(ScSpecUdtEnumV0::from_xdr_buffered(read_stream)?)),
8760 ScSpecEntryKind::ScSpecEntryUdtErrorEnumV0 =>
8761 Ok(ScSpecEntry::ScSpecEntryUdtErrorEnumV0(ScSpecUdtErrorEnumV0::from_xdr_buffered(read_stream)?)),
8762 }
8763 }
8764}
8765
8766#[allow(dead_code)]
8768#[derive(Debug, Clone, Eq, PartialEq)]
8769pub enum ScError {
8770 SceContract(Uint32),
8771 SceWasmVm(ScErrorCode),
8772 SceContext(ScErrorCode),
8773 SceStorage(ScErrorCode),
8774 SceObject(ScErrorCode),
8775 SceCrypto(ScErrorCode),
8776 SceEvents(ScErrorCode),
8777 SceBudget(ScErrorCode),
8778 SceValue(ScErrorCode),
8779 SceAuth(ScErrorCode),
8780}
8781
8782impl XdrCodec for ScError {
8783 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8784 match self {
8785 ScError::SceContract(value) => {
8786 ScErrorType::SceContract.to_xdr_buffered(write_stream);
8787 value.to_xdr_buffered(write_stream)
8788 },
8789 ScError::SceWasmVm(value) => {
8790 ScErrorType::SceWasmVm.to_xdr_buffered(write_stream);
8791 value.to_xdr_buffered(write_stream)
8792 },
8793 ScError::SceContext(value) => {
8794 ScErrorType::SceContext.to_xdr_buffered(write_stream);
8795 value.to_xdr_buffered(write_stream)
8796 },
8797 ScError::SceStorage(value) => {
8798 ScErrorType::SceStorage.to_xdr_buffered(write_stream);
8799 value.to_xdr_buffered(write_stream)
8800 },
8801 ScError::SceObject(value) => {
8802 ScErrorType::SceObject.to_xdr_buffered(write_stream);
8803 value.to_xdr_buffered(write_stream)
8804 },
8805 ScError::SceCrypto(value) => {
8806 ScErrorType::SceCrypto.to_xdr_buffered(write_stream);
8807 value.to_xdr_buffered(write_stream)
8808 },
8809 ScError::SceEvents(value) => {
8810 ScErrorType::SceEvents.to_xdr_buffered(write_stream);
8811 value.to_xdr_buffered(write_stream)
8812 },
8813 ScError::SceBudget(value) => {
8814 ScErrorType::SceBudget.to_xdr_buffered(write_stream);
8815 value.to_xdr_buffered(write_stream)
8816 },
8817 ScError::SceValue(value) => {
8818 ScErrorType::SceValue.to_xdr_buffered(write_stream);
8819 value.to_xdr_buffered(write_stream)
8820 },
8821 ScError::SceAuth(value) => {
8822 ScErrorType::SceAuth.to_xdr_buffered(write_stream);
8823 value.to_xdr_buffered(write_stream)
8824 },
8825 }
8826 }
8827
8828 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8829 match ScErrorType::from_xdr_buffered(read_stream)? {
8830 ScErrorType::SceContract => Ok(ScError::SceContract(Uint32::from_xdr_buffered(read_stream)?)),
8831 ScErrorType::SceWasmVm => Ok(ScError::SceWasmVm(ScErrorCode::from_xdr_buffered(read_stream)?)),
8832 ScErrorType::SceContext => Ok(ScError::SceContext(ScErrorCode::from_xdr_buffered(read_stream)?)),
8833 ScErrorType::SceStorage => Ok(ScError::SceStorage(ScErrorCode::from_xdr_buffered(read_stream)?)),
8834 ScErrorType::SceObject => Ok(ScError::SceObject(ScErrorCode::from_xdr_buffered(read_stream)?)),
8835 ScErrorType::SceCrypto => Ok(ScError::SceCrypto(ScErrorCode::from_xdr_buffered(read_stream)?)),
8836 ScErrorType::SceEvents => Ok(ScError::SceEvents(ScErrorCode::from_xdr_buffered(read_stream)?)),
8837 ScErrorType::SceBudget => Ok(ScError::SceBudget(ScErrorCode::from_xdr_buffered(read_stream)?)),
8838 ScErrorType::SceValue => Ok(ScError::SceValue(ScErrorCode::from_xdr_buffered(read_stream)?)),
8839 ScErrorType::SceAuth => Ok(ScError::SceAuth(ScErrorCode::from_xdr_buffered(read_stream)?)),
8840 }
8841 }
8842}
8843
8844#[allow(dead_code)]
8846#[derive(Debug, Clone, Eq, PartialEq)]
8847pub enum ContractExecutable {
8848 ContractExecutableWasm(Hash),
8849 ContractExecutableStellarAsset,
8850}
8851
8852impl XdrCodec for ContractExecutable {
8853 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8854 match self {
8855 ContractExecutable::ContractExecutableWasm(value) => {
8856 ContractExecutableType::ContractExecutableWasm.to_xdr_buffered(write_stream);
8857 value.to_xdr_buffered(write_stream)
8858 },
8859 ContractExecutable::ContractExecutableStellarAsset =>
8860 ContractExecutableType::ContractExecutableStellarAsset.to_xdr_buffered(write_stream),
8861 }
8862 }
8863
8864 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8865 match ContractExecutableType::from_xdr_buffered(read_stream)? {
8866 ContractExecutableType::ContractExecutableWasm =>
8867 Ok(ContractExecutable::ContractExecutableWasm(Hash::from_xdr_buffered(read_stream)?)),
8868 ContractExecutableType::ContractExecutableStellarAsset =>
8869 Ok(ContractExecutable::ContractExecutableStellarAsset),
8870 }
8871 }
8872}
8873
8874#[allow(dead_code)]
8876#[derive(Debug, Clone, Eq, PartialEq)]
8877pub enum ScAddress {
8878 ScAddressTypeAccount(AccountId),
8879 ScAddressTypeContract(Hash),
8880}
8881
8882impl XdrCodec for ScAddress {
8883 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8884 match self {
8885 ScAddress::ScAddressTypeAccount(value) => {
8886 ScAddressType::ScAddressTypeAccount.to_xdr_buffered(write_stream);
8887 value.to_xdr_buffered(write_stream)
8888 },
8889 ScAddress::ScAddressTypeContract(value) => {
8890 ScAddressType::ScAddressTypeContract.to_xdr_buffered(write_stream);
8891 value.to_xdr_buffered(write_stream)
8892 },
8893 }
8894 }
8895
8896 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
8897 match ScAddressType::from_xdr_buffered(read_stream)? {
8898 ScAddressType::ScAddressTypeAccount =>
8899 Ok(ScAddress::ScAddressTypeAccount(AccountId::from_xdr_buffered(read_stream)?)),
8900 ScAddressType::ScAddressTypeContract =>
8901 Ok(ScAddress::ScAddressTypeContract(Hash::from_xdr_buffered(read_stream)?)),
8902 }
8903 }
8904}
8905
8906#[allow(dead_code)]
8908#[derive(Debug, Clone, Eq, PartialEq)]
8909pub enum ScVal {
8910 ScvBool(bool),
8911 ScvVoid,
8912 ScvError(ScError),
8913 ScvU32(Uint32),
8914 ScvI32(Int32),
8915 ScvU64(Uint64),
8916 ScvI64(Int64),
8917 ScvTimepoint(TimePoint),
8918 ScvDuration(Duration),
8919 ScvU128(UInt128Parts),
8920 ScvI128(Int128Parts),
8921 ScvU256(UInt256Parts),
8922 ScvI256(Int256Parts),
8923 ScvBytes(ScBytes),
8924 ScvString(ScString),
8925 ScvSymbol(ScSymbol),
8926 ScvVec(Option<ScVec>),
8927 ScvMap(Option<ScMap>),
8928 ScvAddress(ScAddress),
8929 ScvLedgerKeyContractInstance,
8930 ScvLedgerKeyNonce(ScNonceKey),
8931 ScvContractInstance(ScContractInstance),
8932}
8933
8934impl XdrCodec for ScVal {
8935 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8936 match self {
8937 ScVal::ScvBool(value) => {
8938 ScValType::ScvBool.to_xdr_buffered(write_stream);
8939 value.to_xdr_buffered(write_stream)
8940 },
8941 ScVal::ScvVoid => ScValType::ScvVoid.to_xdr_buffered(write_stream),
8942 ScVal::ScvError(value) => {
8943 ScValType::ScvError.to_xdr_buffered(write_stream);
8944 value.to_xdr_buffered(write_stream)
8945 },
8946 ScVal::ScvU32(value) => {
8947 ScValType::ScvU32.to_xdr_buffered(write_stream);
8948 value.to_xdr_buffered(write_stream)
8949 },
8950 ScVal::ScvI32(value) => {
8951 ScValType::ScvI32.to_xdr_buffered(write_stream);
8952 value.to_xdr_buffered(write_stream)
8953 },
8954 ScVal::ScvU64(value) => {
8955 ScValType::ScvU64.to_xdr_buffered(write_stream);
8956 value.to_xdr_buffered(write_stream)
8957 },
8958 ScVal::ScvI64(value) => {
8959 ScValType::ScvI64.to_xdr_buffered(write_stream);
8960 value.to_xdr_buffered(write_stream)
8961 },
8962 ScVal::ScvTimepoint(value) => {
8963 ScValType::ScvTimepoint.to_xdr_buffered(write_stream);
8964 value.to_xdr_buffered(write_stream)
8965 },
8966 ScVal::ScvDuration(value) => {
8967 ScValType::ScvDuration.to_xdr_buffered(write_stream);
8968 value.to_xdr_buffered(write_stream)
8969 },
8970 ScVal::ScvU128(value) => {
8971 ScValType::ScvU128.to_xdr_buffered(write_stream);
8972 value.to_xdr_buffered(write_stream)
8973 },
8974 ScVal::ScvI128(value) => {
8975 ScValType::ScvI128.to_xdr_buffered(write_stream);
8976 value.to_xdr_buffered(write_stream)
8977 },
8978 ScVal::ScvU256(value) => {
8979 ScValType::ScvU256.to_xdr_buffered(write_stream);
8980 value.to_xdr_buffered(write_stream)
8981 },
8982 ScVal::ScvI256(value) => {
8983 ScValType::ScvI256.to_xdr_buffered(write_stream);
8984 value.to_xdr_buffered(write_stream)
8985 },
8986 ScVal::ScvBytes(value) => {
8987 ScValType::ScvBytes.to_xdr_buffered(write_stream);
8988 value.to_xdr_buffered(write_stream)
8989 },
8990 ScVal::ScvString(value) => {
8991 ScValType::ScvString.to_xdr_buffered(write_stream);
8992 value.to_xdr_buffered(write_stream)
8993 },
8994 ScVal::ScvSymbol(value) => {
8995 ScValType::ScvSymbol.to_xdr_buffered(write_stream);
8996 value.to_xdr_buffered(write_stream)
8997 },
8998 ScVal::ScvVec(value) => {
8999 ScValType::ScvVec.to_xdr_buffered(write_stream);
9000 value.to_xdr_buffered(write_stream)
9001 },
9002 ScVal::ScvMap(value) => {
9003 ScValType::ScvMap.to_xdr_buffered(write_stream);
9004 value.to_xdr_buffered(write_stream)
9005 },
9006 ScVal::ScvAddress(value) => {
9007 ScValType::ScvAddress.to_xdr_buffered(write_stream);
9008 value.to_xdr_buffered(write_stream)
9009 },
9010 ScVal::ScvLedgerKeyContractInstance =>
9011 ScValType::ScvLedgerKeyContractInstance.to_xdr_buffered(write_stream),
9012 ScVal::ScvLedgerKeyNonce(value) => {
9013 ScValType::ScvLedgerKeyNonce.to_xdr_buffered(write_stream);
9014 value.to_xdr_buffered(write_stream)
9015 },
9016 ScVal::ScvContractInstance(value) => {
9017 ScValType::ScvContractInstance.to_xdr_buffered(write_stream);
9018 value.to_xdr_buffered(write_stream)
9019 },
9020 }
9021 }
9022
9023 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9024 match ScValType::from_xdr_buffered(read_stream)? {
9025 ScValType::ScvBool => Ok(ScVal::ScvBool(bool::from_xdr_buffered(read_stream)?)),
9026 ScValType::ScvVoid => Ok(ScVal::ScvVoid),
9027 ScValType::ScvError => Ok(ScVal::ScvError(ScError::from_xdr_buffered(read_stream)?)),
9028 ScValType::ScvU32 => Ok(ScVal::ScvU32(Uint32::from_xdr_buffered(read_stream)?)),
9029 ScValType::ScvI32 => Ok(ScVal::ScvI32(Int32::from_xdr_buffered(read_stream)?)),
9030 ScValType::ScvU64 => Ok(ScVal::ScvU64(Uint64::from_xdr_buffered(read_stream)?)),
9031 ScValType::ScvI64 => Ok(ScVal::ScvI64(Int64::from_xdr_buffered(read_stream)?)),
9032 ScValType::ScvTimepoint => Ok(ScVal::ScvTimepoint(TimePoint::from_xdr_buffered(read_stream)?)),
9033 ScValType::ScvDuration => Ok(ScVal::ScvDuration(Duration::from_xdr_buffered(read_stream)?)),
9034 ScValType::ScvU128 => Ok(ScVal::ScvU128(UInt128Parts::from_xdr_buffered(read_stream)?)),
9035 ScValType::ScvI128 => Ok(ScVal::ScvI128(Int128Parts::from_xdr_buffered(read_stream)?)),
9036 ScValType::ScvU256 => Ok(ScVal::ScvU256(UInt256Parts::from_xdr_buffered(read_stream)?)),
9037 ScValType::ScvI256 => Ok(ScVal::ScvI256(Int256Parts::from_xdr_buffered(read_stream)?)),
9038 ScValType::ScvBytes => Ok(ScVal::ScvBytes(ScBytes::from_xdr_buffered(read_stream)?)),
9039 ScValType::ScvString => Ok(ScVal::ScvString(ScString::from_xdr_buffered(read_stream)?)),
9040 ScValType::ScvSymbol => Ok(ScVal::ScvSymbol(ScSymbol::from_xdr_buffered(read_stream)?)),
9041 ScValType::ScvVec => Ok(ScVal::ScvVec(Option::<ScVec>::from_xdr_buffered(read_stream)?)),
9042 ScValType::ScvMap => Ok(ScVal::ScvMap(Option::<ScMap>::from_xdr_buffered(read_stream)?)),
9043 ScValType::ScvAddress => Ok(ScVal::ScvAddress(ScAddress::from_xdr_buffered(read_stream)?)),
9044 ScValType::ScvLedgerKeyContractInstance => Ok(ScVal::ScvLedgerKeyContractInstance),
9045 ScValType::ScvLedgerKeyNonce => Ok(ScVal::ScvLedgerKeyNonce(ScNonceKey::from_xdr_buffered(read_stream)?)),
9046 ScValType::ScvContractInstance =>
9047 Ok(ScVal::ScvContractInstance(ScContractInstance::from_xdr_buffered(read_stream)?)),
9048 }
9049 }
9050}
9051
9052#[allow(dead_code)]
9054#[cfg(feature = "all-types")]
9055#[derive(Debug, Clone, Eq, PartialEq)]
9056pub enum StoredTransactionSet {
9057 V0(TransactionSet),
9058 V1(GeneralizedTransactionSet),
9059 Default(i32),
9060}
9061
9062#[cfg(feature = "all-types")]
9063impl XdrCodec for StoredTransactionSet {
9064 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9065 match self {
9066 StoredTransactionSet::V0(value) => {
9067 (0 as i32).to_xdr_buffered(write_stream);
9068 value.to_xdr_buffered(write_stream)
9069 },
9070 StoredTransactionSet::V1(value) => {
9071 (1 as i32).to_xdr_buffered(write_stream);
9072 value.to_xdr_buffered(write_stream)
9073 },
9074 StoredTransactionSet::Default(code) => code.to_xdr_buffered(write_stream),
9075 }
9076 }
9077
9078 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9079 match i32::from_xdr_buffered(read_stream)? {
9080 0 => Ok(StoredTransactionSet::V0(TransactionSet::from_xdr_buffered(read_stream)?)),
9081 1 => Ok(StoredTransactionSet::V1(GeneralizedTransactionSet::from_xdr_buffered(read_stream)?)),
9082 code => Ok(StoredTransactionSet::Default(code)),
9083 }
9084 }
9085}
9086
9087#[allow(dead_code)]
9089#[cfg(feature = "all-types")]
9090#[derive(Debug, Clone, Eq, PartialEq)]
9091pub enum PersistedScpState {
9092 V0(PersistedScpStateV0),
9093 V1(PersistedScpStateV1),
9094 Default(i32),
9095}
9096
9097#[cfg(feature = "all-types")]
9098impl XdrCodec for PersistedScpState {
9099 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9100 match self {
9101 PersistedScpState::V0(value) => {
9102 (0 as i32).to_xdr_buffered(write_stream);
9103 value.to_xdr_buffered(write_stream)
9104 },
9105 PersistedScpState::V1(value) => {
9106 (1 as i32).to_xdr_buffered(write_stream);
9107 value.to_xdr_buffered(write_stream)
9108 },
9109 PersistedScpState::Default(code) => code.to_xdr_buffered(write_stream),
9110 }
9111 }
9112
9113 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9114 match i32::from_xdr_buffered(read_stream)? {
9115 0 => Ok(PersistedScpState::V0(PersistedScpStateV0::from_xdr_buffered(read_stream)?)),
9116 1 => Ok(PersistedScpState::V1(PersistedScpStateV1::from_xdr_buffered(read_stream)?)),
9117 code => Ok(PersistedScpState::Default(code)),
9118 }
9119 }
9120}
9121
9122#[allow(dead_code)]
9124#[derive(Debug, Clone, Eq, PartialEq)]
9125pub enum AssetCode {
9126 AssetTypeCreditAlphanum4(AssetCode4),
9127 AssetTypeCreditAlphanum12(AssetCode12),
9128 Default(AssetType),
9129}
9130
9131impl XdrCodec for AssetCode {
9132 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9133 match self {
9134 AssetCode::AssetTypeCreditAlphanum4(value) => {
9135 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
9136 value.to_xdr_buffered(write_stream)
9137 },
9138 AssetCode::AssetTypeCreditAlphanum12(value) => {
9139 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
9140 value.to_xdr_buffered(write_stream)
9141 },
9142 AssetCode::Default(code) => code.to_xdr_buffered(write_stream),
9143 }
9144 }
9145
9146 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9147 match AssetType::from_xdr_buffered(read_stream)? {
9148 AssetType::AssetTypeCreditAlphanum4 =>
9149 Ok(AssetCode::AssetTypeCreditAlphanum4(AssetCode4::from_xdr_buffered(read_stream)?)),
9150 AssetType::AssetTypeCreditAlphanum12 =>
9151 Ok(AssetCode::AssetTypeCreditAlphanum12(AssetCode12::from_xdr_buffered(read_stream)?)),
9152 code => Ok(AssetCode::Default(code)),
9153 }
9154 }
9155}
9156
9157#[allow(dead_code)]
9159#[derive(Debug, Clone, Eq, PartialEq)]
9160pub enum Asset {
9161 AssetTypeNative,
9162 AssetTypeCreditAlphanum4(AlphaNum4),
9163 AssetTypeCreditAlphanum12(AlphaNum12),
9164 Default(AssetType),
9165}
9166
9167impl XdrCodec for Asset {
9168 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9169 match self {
9170 Asset::AssetTypeNative => AssetType::AssetTypeNative.to_xdr_buffered(write_stream),
9171 Asset::AssetTypeCreditAlphanum4(value) => {
9172 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
9173 value.to_xdr_buffered(write_stream)
9174 },
9175 Asset::AssetTypeCreditAlphanum12(value) => {
9176 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
9177 value.to_xdr_buffered(write_stream)
9178 },
9179 Asset::Default(code) => code.to_xdr_buffered(write_stream),
9180 }
9181 }
9182
9183 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9184 match AssetType::from_xdr_buffered(read_stream)? {
9185 AssetType::AssetTypeNative => Ok(Asset::AssetTypeNative),
9186 AssetType::AssetTypeCreditAlphanum4 =>
9187 Ok(Asset::AssetTypeCreditAlphanum4(AlphaNum4::from_xdr_buffered(read_stream)?)),
9188 AssetType::AssetTypeCreditAlphanum12 =>
9189 Ok(Asset::AssetTypeCreditAlphanum12(AlphaNum12::from_xdr_buffered(read_stream)?)),
9190 code => Ok(Asset::Default(code)),
9191 }
9192 }
9193}
9194
9195#[allow(dead_code)]
9197#[derive(Debug, Clone, Eq, PartialEq)]
9198pub enum AccountEntryExtensionV2Ext {
9199 V0,
9200 V3(AccountEntryExtensionV3),
9201 Default(i32),
9202}
9203
9204impl XdrCodec for AccountEntryExtensionV2Ext {
9205 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9206 match self {
9207 AccountEntryExtensionV2Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9208 AccountEntryExtensionV2Ext::V3(value) => {
9209 (3 as i32).to_xdr_buffered(write_stream);
9210 value.to_xdr_buffered(write_stream)
9211 },
9212 AccountEntryExtensionV2Ext::Default(code) => code.to_xdr_buffered(write_stream),
9213 }
9214 }
9215
9216 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9217 match i32::from_xdr_buffered(read_stream)? {
9218 0 => Ok(AccountEntryExtensionV2Ext::V0),
9219 3 => Ok(AccountEntryExtensionV2Ext::V3(AccountEntryExtensionV3::from_xdr_buffered(read_stream)?)),
9220 code => Ok(AccountEntryExtensionV2Ext::Default(code)),
9221 }
9222 }
9223}
9224
9225#[allow(dead_code)]
9227#[derive(Debug, Clone, Eq, PartialEq)]
9228pub enum AccountEntryExtensionV1Ext {
9229 V0,
9230 V2(AccountEntryExtensionV2),
9231 Default(i32),
9232}
9233
9234impl XdrCodec for AccountEntryExtensionV1Ext {
9235 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9236 match self {
9237 AccountEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9238 AccountEntryExtensionV1Ext::V2(value) => {
9239 (2 as i32).to_xdr_buffered(write_stream);
9240 value.to_xdr_buffered(write_stream)
9241 },
9242 AccountEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
9243 }
9244 }
9245
9246 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9247 match i32::from_xdr_buffered(read_stream)? {
9248 0 => Ok(AccountEntryExtensionV1Ext::V0),
9249 2 => Ok(AccountEntryExtensionV1Ext::V2(AccountEntryExtensionV2::from_xdr_buffered(read_stream)?)),
9250 code => Ok(AccountEntryExtensionV1Ext::Default(code)),
9251 }
9252 }
9253}
9254
9255#[allow(dead_code)]
9257#[derive(Debug, Clone, Eq, PartialEq)]
9258pub enum AccountEntryExt {
9259 V0,
9260 V1(AccountEntryExtensionV1),
9261 Default(i32),
9262}
9263
9264impl XdrCodec for AccountEntryExt {
9265 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9266 match self {
9267 AccountEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9268 AccountEntryExt::V1(value) => {
9269 (1 as i32).to_xdr_buffered(write_stream);
9270 value.to_xdr_buffered(write_stream)
9271 },
9272 AccountEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9273 }
9274 }
9275
9276 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9277 match i32::from_xdr_buffered(read_stream)? {
9278 0 => Ok(AccountEntryExt::V0),
9279 1 => Ok(AccountEntryExt::V1(AccountEntryExtensionV1::from_xdr_buffered(read_stream)?)),
9280 code => Ok(AccountEntryExt::Default(code)),
9281 }
9282 }
9283}
9284
9285#[allow(dead_code)]
9287#[derive(Debug, Clone, Eq, PartialEq)]
9288pub enum TrustLineAsset {
9289 AssetTypeNative,
9290 AssetTypeCreditAlphanum4(AlphaNum4),
9291 AssetTypeCreditAlphanum12(AlphaNum12),
9292 AssetTypePoolShare(PoolId),
9293}
9294
9295impl XdrCodec for TrustLineAsset {
9296 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9297 match self {
9298 TrustLineAsset::AssetTypeNative => AssetType::AssetTypeNative.to_xdr_buffered(write_stream),
9299 TrustLineAsset::AssetTypeCreditAlphanum4(value) => {
9300 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
9301 value.to_xdr_buffered(write_stream)
9302 },
9303 TrustLineAsset::AssetTypeCreditAlphanum12(value) => {
9304 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
9305 value.to_xdr_buffered(write_stream)
9306 },
9307 TrustLineAsset::AssetTypePoolShare(value) => {
9308 AssetType::AssetTypePoolShare.to_xdr_buffered(write_stream);
9309 value.to_xdr_buffered(write_stream)
9310 },
9311 }
9312 }
9313
9314 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9315 match AssetType::from_xdr_buffered(read_stream)? {
9316 AssetType::AssetTypeNative => Ok(TrustLineAsset::AssetTypeNative),
9317 AssetType::AssetTypeCreditAlphanum4 =>
9318 Ok(TrustLineAsset::AssetTypeCreditAlphanum4(AlphaNum4::from_xdr_buffered(read_stream)?)),
9319 AssetType::AssetTypeCreditAlphanum12 =>
9320 Ok(TrustLineAsset::AssetTypeCreditAlphanum12(AlphaNum12::from_xdr_buffered(read_stream)?)),
9321 AssetType::AssetTypePoolShare =>
9322 Ok(TrustLineAsset::AssetTypePoolShare(PoolId::from_xdr_buffered(read_stream)?)),
9323 }
9324 }
9325}
9326
9327#[allow(dead_code)]
9329#[derive(Debug, Clone, Eq, PartialEq)]
9330pub enum TrustLineEntryExtensionV2Ext {
9331 V0,
9332 Default(i32),
9333}
9334
9335impl XdrCodec for TrustLineEntryExtensionV2Ext {
9336 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9337 match self {
9338 TrustLineEntryExtensionV2Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9339 TrustLineEntryExtensionV2Ext::Default(code) => code.to_xdr_buffered(write_stream),
9340 }
9341 }
9342
9343 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9344 match i32::from_xdr_buffered(read_stream)? {
9345 0 => Ok(TrustLineEntryExtensionV2Ext::V0),
9346 code => Ok(TrustLineEntryExtensionV2Ext::Default(code)),
9347 }
9348 }
9349}
9350
9351#[allow(dead_code)]
9353#[derive(Debug, Clone, Eq, PartialEq)]
9354pub enum TrustLineEntryV1Ext {
9355 V0,
9356 V2(TrustLineEntryExtensionV2),
9357 Default(i32),
9358}
9359
9360impl XdrCodec for TrustLineEntryV1Ext {
9361 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9362 match self {
9363 TrustLineEntryV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9364 TrustLineEntryV1Ext::V2(value) => {
9365 (2 as i32).to_xdr_buffered(write_stream);
9366 value.to_xdr_buffered(write_stream)
9367 },
9368 TrustLineEntryV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
9369 }
9370 }
9371
9372 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9373 match i32::from_xdr_buffered(read_stream)? {
9374 0 => Ok(TrustLineEntryV1Ext::V0),
9375 2 => Ok(TrustLineEntryV1Ext::V2(TrustLineEntryExtensionV2::from_xdr_buffered(read_stream)?)),
9376 code => Ok(TrustLineEntryV1Ext::Default(code)),
9377 }
9378 }
9379}
9380
9381#[allow(dead_code)]
9383#[derive(Debug, Clone, Eq, PartialEq)]
9384pub enum TrustLineEntryExt {
9385 V0,
9386 V1(TrustLineEntryV1),
9387 Default(i32),
9388}
9389
9390impl XdrCodec for TrustLineEntryExt {
9391 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9392 match self {
9393 TrustLineEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9394 TrustLineEntryExt::V1(value) => {
9395 (1 as i32).to_xdr_buffered(write_stream);
9396 value.to_xdr_buffered(write_stream)
9397 },
9398 TrustLineEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9399 }
9400 }
9401
9402 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9403 match i32::from_xdr_buffered(read_stream)? {
9404 0 => Ok(TrustLineEntryExt::V0),
9405 1 => Ok(TrustLineEntryExt::V1(TrustLineEntryV1::from_xdr_buffered(read_stream)?)),
9406 code => Ok(TrustLineEntryExt::Default(code)),
9407 }
9408 }
9409}
9410
9411#[allow(dead_code)]
9413#[derive(Debug, Clone, Eq, PartialEq)]
9414pub enum OfferEntryExt {
9415 V0,
9416 Default(i32),
9417}
9418
9419impl XdrCodec for OfferEntryExt {
9420 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9421 match self {
9422 OfferEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9423 OfferEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9424 }
9425 }
9426
9427 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9428 match i32::from_xdr_buffered(read_stream)? {
9429 0 => Ok(OfferEntryExt::V0),
9430 code => Ok(OfferEntryExt::Default(code)),
9431 }
9432 }
9433}
9434
9435#[allow(dead_code)]
9437#[derive(Debug, Clone, Eq, PartialEq)]
9438pub enum DataEntryExt {
9439 V0,
9440 Default(i32),
9441}
9442
9443impl XdrCodec for DataEntryExt {
9444 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9445 match self {
9446 DataEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9447 DataEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9448 }
9449 }
9450
9451 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9452 match i32::from_xdr_buffered(read_stream)? {
9453 0 => Ok(DataEntryExt::V0),
9454 code => Ok(DataEntryExt::Default(code)),
9455 }
9456 }
9457}
9458
9459#[allow(dead_code)]
9461#[derive(Debug, Clone, Eq, PartialEq)]
9462pub enum ClaimPredicate {
9463 ClaimPredicateUnconditional,
9464 ClaimPredicateAnd(LimitedVarArray<ClaimPredicate, 2>),
9465 ClaimPredicateOr(LimitedVarArray<ClaimPredicate, 2>),
9466 ClaimPredicateNot(Option<Box<ClaimPredicate>>),
9467 ClaimPredicateBeforeAbsoluteTime(Int64),
9468 ClaimPredicateBeforeRelativeTime(Int64),
9469}
9470
9471impl XdrCodec for ClaimPredicate {
9472 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9473 match self {
9474 ClaimPredicate::ClaimPredicateUnconditional =>
9475 ClaimPredicateType::ClaimPredicateUnconditional.to_xdr_buffered(write_stream),
9476 ClaimPredicate::ClaimPredicateAnd(value) => {
9477 ClaimPredicateType::ClaimPredicateAnd.to_xdr_buffered(write_stream);
9478 value.to_xdr_buffered(write_stream)
9479 },
9480 ClaimPredicate::ClaimPredicateOr(value) => {
9481 ClaimPredicateType::ClaimPredicateOr.to_xdr_buffered(write_stream);
9482 value.to_xdr_buffered(write_stream)
9483 },
9484 ClaimPredicate::ClaimPredicateNot(value) => {
9485 ClaimPredicateType::ClaimPredicateNot.to_xdr_buffered(write_stream);
9486 value.to_xdr_buffered(write_stream)
9487 },
9488 ClaimPredicate::ClaimPredicateBeforeAbsoluteTime(value) => {
9489 ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime.to_xdr_buffered(write_stream);
9490 value.to_xdr_buffered(write_stream)
9491 },
9492 ClaimPredicate::ClaimPredicateBeforeRelativeTime(value) => {
9493 ClaimPredicateType::ClaimPredicateBeforeRelativeTime.to_xdr_buffered(write_stream);
9494 value.to_xdr_buffered(write_stream)
9495 },
9496 }
9497 }
9498
9499 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9500 match ClaimPredicateType::from_xdr_buffered(read_stream)? {
9501 ClaimPredicateType::ClaimPredicateUnconditional => Ok(ClaimPredicate::ClaimPredicateUnconditional),
9502 ClaimPredicateType::ClaimPredicateAnd =>
9503 Ok(ClaimPredicate::ClaimPredicateAnd(LimitedVarArray::<ClaimPredicate, 2>::from_xdr_buffered(
9504 read_stream,
9505 )?)),
9506 ClaimPredicateType::ClaimPredicateOr =>
9507 Ok(ClaimPredicate::ClaimPredicateOr(LimitedVarArray::<ClaimPredicate, 2>::from_xdr_buffered(
9508 read_stream,
9509 )?)),
9510 ClaimPredicateType::ClaimPredicateNot =>
9511 Ok(ClaimPredicate::ClaimPredicateNot(Option::<Box<ClaimPredicate>>::from_xdr_buffered(read_stream)?)),
9512 ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime =>
9513 Ok(ClaimPredicate::ClaimPredicateBeforeAbsoluteTime(Int64::from_xdr_buffered(read_stream)?)),
9514 ClaimPredicateType::ClaimPredicateBeforeRelativeTime =>
9515 Ok(ClaimPredicate::ClaimPredicateBeforeRelativeTime(Int64::from_xdr_buffered(read_stream)?)),
9516 }
9517 }
9518}
9519
9520#[allow(dead_code)]
9522#[derive(Debug, Clone, Eq, PartialEq)]
9523pub enum Claimant {
9524 ClaimantTypeV0(ClaimantV0),
9525}
9526
9527impl XdrCodec for Claimant {
9528 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9529 match self {
9530 Claimant::ClaimantTypeV0(value) => {
9531 ClaimantType::ClaimantTypeV0.to_xdr_buffered(write_stream);
9532 value.to_xdr_buffered(write_stream)
9533 },
9534 }
9535 }
9536
9537 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9538 match ClaimantType::from_xdr_buffered(read_stream)? {
9539 ClaimantType::ClaimantTypeV0 => Ok(Claimant::ClaimantTypeV0(ClaimantV0::from_xdr_buffered(read_stream)?)),
9540 }
9541 }
9542}
9543
9544#[allow(dead_code)]
9546#[derive(Debug, Clone, Eq, PartialEq)]
9547pub enum ClaimableBalanceId {
9548 ClaimableBalanceIdTypeV0(Hash),
9549}
9550
9551impl XdrCodec for ClaimableBalanceId {
9552 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9553 match self {
9554 ClaimableBalanceId::ClaimableBalanceIdTypeV0(value) => {
9555 ClaimableBalanceIdType::ClaimableBalanceIdTypeV0.to_xdr_buffered(write_stream);
9556 value.to_xdr_buffered(write_stream)
9557 },
9558 }
9559 }
9560
9561 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9562 match ClaimableBalanceIdType::from_xdr_buffered(read_stream)? {
9563 ClaimableBalanceIdType::ClaimableBalanceIdTypeV0 =>
9564 Ok(ClaimableBalanceId::ClaimableBalanceIdTypeV0(Hash::from_xdr_buffered(read_stream)?)),
9565 }
9566 }
9567}
9568
9569#[allow(dead_code)]
9571#[derive(Debug, Clone, Eq, PartialEq)]
9572pub enum ClaimableBalanceEntryExtensionV1Ext {
9573 V0,
9574 Default(i32),
9575}
9576
9577impl XdrCodec for ClaimableBalanceEntryExtensionV1Ext {
9578 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9579 match self {
9580 ClaimableBalanceEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9581 ClaimableBalanceEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
9582 }
9583 }
9584
9585 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9586 match i32::from_xdr_buffered(read_stream)? {
9587 0 => Ok(ClaimableBalanceEntryExtensionV1Ext::V0),
9588 code => Ok(ClaimableBalanceEntryExtensionV1Ext::Default(code)),
9589 }
9590 }
9591}
9592
9593#[allow(dead_code)]
9595#[derive(Debug, Clone, Eq, PartialEq)]
9596pub enum ClaimableBalanceEntryExt {
9597 V0,
9598 V1(ClaimableBalanceEntryExtensionV1),
9599 Default(i32),
9600}
9601
9602impl XdrCodec for ClaimableBalanceEntryExt {
9603 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9604 match self {
9605 ClaimableBalanceEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9606 ClaimableBalanceEntryExt::V1(value) => {
9607 (1 as i32).to_xdr_buffered(write_stream);
9608 value.to_xdr_buffered(write_stream)
9609 },
9610 ClaimableBalanceEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9611 }
9612 }
9613
9614 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9615 match i32::from_xdr_buffered(read_stream)? {
9616 0 => Ok(ClaimableBalanceEntryExt::V0),
9617 1 => Ok(ClaimableBalanceEntryExt::V1(ClaimableBalanceEntryExtensionV1::from_xdr_buffered(read_stream)?)),
9618 code => Ok(ClaimableBalanceEntryExt::Default(code)),
9619 }
9620 }
9621}
9622
9623#[allow(dead_code)]
9625#[derive(Debug, Clone, Eq, PartialEq)]
9626pub enum LiquidityPoolEntryBody {
9627 LiquidityPoolConstantProduct(LiquidityPoolEntryConstantProduct),
9628}
9629
9630impl XdrCodec for LiquidityPoolEntryBody {
9631 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9632 match self {
9633 LiquidityPoolEntryBody::LiquidityPoolConstantProduct(value) => {
9634 LiquidityPoolType::LiquidityPoolConstantProduct.to_xdr_buffered(write_stream);
9635 value.to_xdr_buffered(write_stream)
9636 },
9637 }
9638 }
9639
9640 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9641 match LiquidityPoolType::from_xdr_buffered(read_stream)? {
9642 LiquidityPoolType::LiquidityPoolConstantProduct =>
9643 Ok(LiquidityPoolEntryBody::LiquidityPoolConstantProduct(
9644 LiquidityPoolEntryConstantProduct::from_xdr_buffered(read_stream)?,
9645 )),
9646 }
9647 }
9648}
9649
9650#[allow(dead_code)]
9652#[derive(Debug, Clone, Eq, PartialEq)]
9653pub enum ContractCodeEntryExt {
9654 V0,
9655 V1(ContractCodeEntryV1),
9656 Default(i32),
9657}
9658
9659impl XdrCodec for ContractCodeEntryExt {
9660 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9661 match self {
9662 ContractCodeEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9663 ContractCodeEntryExt::V1(value) => {
9664 (1 as i32).to_xdr_buffered(write_stream);
9665 value.to_xdr_buffered(write_stream)
9666 },
9667 ContractCodeEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9668 }
9669 }
9670
9671 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9672 match i32::from_xdr_buffered(read_stream)? {
9673 0 => Ok(ContractCodeEntryExt::V0),
9674 1 => Ok(ContractCodeEntryExt::V1(ContractCodeEntryV1::from_xdr_buffered(read_stream)?)),
9675 code => Ok(ContractCodeEntryExt::Default(code)),
9676 }
9677 }
9678}
9679
9680#[allow(dead_code)]
9682#[derive(Debug, Clone, Eq, PartialEq)]
9683pub enum LedgerEntryExtensionV1Ext {
9684 V0,
9685 Default(i32),
9686}
9687
9688impl XdrCodec for LedgerEntryExtensionV1Ext {
9689 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9690 match self {
9691 LedgerEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9692 LedgerEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
9693 }
9694 }
9695
9696 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9697 match i32::from_xdr_buffered(read_stream)? {
9698 0 => Ok(LedgerEntryExtensionV1Ext::V0),
9699 code => Ok(LedgerEntryExtensionV1Ext::Default(code)),
9700 }
9701 }
9702}
9703
9704#[allow(dead_code)]
9706#[derive(Debug, Clone, Eq, PartialEq)]
9707pub enum LedgerEntryData {
9708 Account(AccountEntry),
9709 Trustline(TrustLineEntry),
9710 Offer(OfferEntry),
9711 Data(DataEntry),
9712 ClaimableBalance(ClaimableBalanceEntry),
9713 LiquidityPool(LiquidityPoolEntry),
9714 ContractData(ContractDataEntry),
9715 ContractCode(ContractCodeEntry),
9716 ConfigSetting(ConfigSettingEntry),
9717 Ttl(TtlEntry),
9718}
9719
9720impl XdrCodec for LedgerEntryData {
9721 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9722 match self {
9723 LedgerEntryData::Account(value) => {
9724 LedgerEntryType::Account.to_xdr_buffered(write_stream);
9725 value.to_xdr_buffered(write_stream)
9726 },
9727 LedgerEntryData::Trustline(value) => {
9728 LedgerEntryType::Trustline.to_xdr_buffered(write_stream);
9729 value.to_xdr_buffered(write_stream)
9730 },
9731 LedgerEntryData::Offer(value) => {
9732 LedgerEntryType::Offer.to_xdr_buffered(write_stream);
9733 value.to_xdr_buffered(write_stream)
9734 },
9735 LedgerEntryData::Data(value) => {
9736 LedgerEntryType::Data.to_xdr_buffered(write_stream);
9737 value.to_xdr_buffered(write_stream)
9738 },
9739 LedgerEntryData::ClaimableBalance(value) => {
9740 LedgerEntryType::ClaimableBalance.to_xdr_buffered(write_stream);
9741 value.to_xdr_buffered(write_stream)
9742 },
9743 LedgerEntryData::LiquidityPool(value) => {
9744 LedgerEntryType::LiquidityPool.to_xdr_buffered(write_stream);
9745 value.to_xdr_buffered(write_stream)
9746 },
9747 LedgerEntryData::ContractData(value) => {
9748 LedgerEntryType::ContractData.to_xdr_buffered(write_stream);
9749 value.to_xdr_buffered(write_stream)
9750 },
9751 LedgerEntryData::ContractCode(value) => {
9752 LedgerEntryType::ContractCode.to_xdr_buffered(write_stream);
9753 value.to_xdr_buffered(write_stream)
9754 },
9755 LedgerEntryData::ConfigSetting(value) => {
9756 LedgerEntryType::ConfigSetting.to_xdr_buffered(write_stream);
9757 value.to_xdr_buffered(write_stream)
9758 },
9759 LedgerEntryData::Ttl(value) => {
9760 LedgerEntryType::Ttl.to_xdr_buffered(write_stream);
9761 value.to_xdr_buffered(write_stream)
9762 },
9763 }
9764 }
9765
9766 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9767 match LedgerEntryType::from_xdr_buffered(read_stream)? {
9768 LedgerEntryType::Account => Ok(LedgerEntryData::Account(AccountEntry::from_xdr_buffered(read_stream)?)),
9769 LedgerEntryType::Trustline =>
9770 Ok(LedgerEntryData::Trustline(TrustLineEntry::from_xdr_buffered(read_stream)?)),
9771 LedgerEntryType::Offer => Ok(LedgerEntryData::Offer(OfferEntry::from_xdr_buffered(read_stream)?)),
9772 LedgerEntryType::Data => Ok(LedgerEntryData::Data(DataEntry::from_xdr_buffered(read_stream)?)),
9773 LedgerEntryType::ClaimableBalance =>
9774 Ok(LedgerEntryData::ClaimableBalance(ClaimableBalanceEntry::from_xdr_buffered(read_stream)?)),
9775 LedgerEntryType::LiquidityPool =>
9776 Ok(LedgerEntryData::LiquidityPool(LiquidityPoolEntry::from_xdr_buffered(read_stream)?)),
9777 LedgerEntryType::ContractData =>
9778 Ok(LedgerEntryData::ContractData(ContractDataEntry::from_xdr_buffered(read_stream)?)),
9779 LedgerEntryType::ContractCode =>
9780 Ok(LedgerEntryData::ContractCode(ContractCodeEntry::from_xdr_buffered(read_stream)?)),
9781 LedgerEntryType::ConfigSetting =>
9782 Ok(LedgerEntryData::ConfigSetting(ConfigSettingEntry::from_xdr_buffered(read_stream)?)),
9783 LedgerEntryType::Ttl => Ok(LedgerEntryData::Ttl(TtlEntry::from_xdr_buffered(read_stream)?)),
9784 }
9785 }
9786}
9787
9788#[allow(dead_code)]
9790#[derive(Debug, Clone, Eq, PartialEq)]
9791pub enum LedgerEntryExt {
9792 V0,
9793 V1(LedgerEntryExtensionV1),
9794 Default(i32),
9795}
9796
9797impl XdrCodec for LedgerEntryExt {
9798 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9799 match self {
9800 LedgerEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9801 LedgerEntryExt::V1(value) => {
9802 (1 as i32).to_xdr_buffered(write_stream);
9803 value.to_xdr_buffered(write_stream)
9804 },
9805 LedgerEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
9806 }
9807 }
9808
9809 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9810 match i32::from_xdr_buffered(read_stream)? {
9811 0 => Ok(LedgerEntryExt::V0),
9812 1 => Ok(LedgerEntryExt::V1(LedgerEntryExtensionV1::from_xdr_buffered(read_stream)?)),
9813 code => Ok(LedgerEntryExt::Default(code)),
9814 }
9815 }
9816}
9817
9818#[allow(dead_code)]
9820#[derive(Debug, Clone, Eq, PartialEq)]
9821pub enum LedgerKey {
9822 Account(LedgerKeyAccount),
9823 Trustline(LedgerKeyTrustLine),
9824 Offer(LedgerKeyOffer),
9825 Data(LedgerKeyData),
9826 ClaimableBalance(LedgerKeyClaimableBalance),
9827 LiquidityPool(LedgerKeyLiquidityPool),
9828 ContractData(LedgerKeyContractData),
9829 ContractCode(LedgerKeyContractCode),
9830 ConfigSetting(LedgerKeyConfigSetting),
9831 Ttl(LedgerKeyTtl),
9832}
9833
9834impl XdrCodec for LedgerKey {
9835 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9836 match self {
9837 LedgerKey::Account(value) => {
9838 LedgerEntryType::Account.to_xdr_buffered(write_stream);
9839 value.to_xdr_buffered(write_stream)
9840 },
9841 LedgerKey::Trustline(value) => {
9842 LedgerEntryType::Trustline.to_xdr_buffered(write_stream);
9843 value.to_xdr_buffered(write_stream)
9844 },
9845 LedgerKey::Offer(value) => {
9846 LedgerEntryType::Offer.to_xdr_buffered(write_stream);
9847 value.to_xdr_buffered(write_stream)
9848 },
9849 LedgerKey::Data(value) => {
9850 LedgerEntryType::Data.to_xdr_buffered(write_stream);
9851 value.to_xdr_buffered(write_stream)
9852 },
9853 LedgerKey::ClaimableBalance(value) => {
9854 LedgerEntryType::ClaimableBalance.to_xdr_buffered(write_stream);
9855 value.to_xdr_buffered(write_stream)
9856 },
9857 LedgerKey::LiquidityPool(value) => {
9858 LedgerEntryType::LiquidityPool.to_xdr_buffered(write_stream);
9859 value.to_xdr_buffered(write_stream)
9860 },
9861 LedgerKey::ContractData(value) => {
9862 LedgerEntryType::ContractData.to_xdr_buffered(write_stream);
9863 value.to_xdr_buffered(write_stream)
9864 },
9865 LedgerKey::ContractCode(value) => {
9866 LedgerEntryType::ContractCode.to_xdr_buffered(write_stream);
9867 value.to_xdr_buffered(write_stream)
9868 },
9869 LedgerKey::ConfigSetting(value) => {
9870 LedgerEntryType::ConfigSetting.to_xdr_buffered(write_stream);
9871 value.to_xdr_buffered(write_stream)
9872 },
9873 LedgerKey::Ttl(value) => {
9874 LedgerEntryType::Ttl.to_xdr_buffered(write_stream);
9875 value.to_xdr_buffered(write_stream)
9876 },
9877 }
9878 }
9879
9880 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9881 match LedgerEntryType::from_xdr_buffered(read_stream)? {
9882 LedgerEntryType::Account => Ok(LedgerKey::Account(LedgerKeyAccount::from_xdr_buffered(read_stream)?)),
9883 LedgerEntryType::Trustline => Ok(LedgerKey::Trustline(LedgerKeyTrustLine::from_xdr_buffered(read_stream)?)),
9884 LedgerEntryType::Offer => Ok(LedgerKey::Offer(LedgerKeyOffer::from_xdr_buffered(read_stream)?)),
9885 LedgerEntryType::Data => Ok(LedgerKey::Data(LedgerKeyData::from_xdr_buffered(read_stream)?)),
9886 LedgerEntryType::ClaimableBalance =>
9887 Ok(LedgerKey::ClaimableBalance(LedgerKeyClaimableBalance::from_xdr_buffered(read_stream)?)),
9888 LedgerEntryType::LiquidityPool =>
9889 Ok(LedgerKey::LiquidityPool(LedgerKeyLiquidityPool::from_xdr_buffered(read_stream)?)),
9890 LedgerEntryType::ContractData =>
9891 Ok(LedgerKey::ContractData(LedgerKeyContractData::from_xdr_buffered(read_stream)?)),
9892 LedgerEntryType::ContractCode =>
9893 Ok(LedgerKey::ContractCode(LedgerKeyContractCode::from_xdr_buffered(read_stream)?)),
9894 LedgerEntryType::ConfigSetting =>
9895 Ok(LedgerKey::ConfigSetting(LedgerKeyConfigSetting::from_xdr_buffered(read_stream)?)),
9896 LedgerEntryType::Ttl => Ok(LedgerKey::Ttl(LedgerKeyTtl::from_xdr_buffered(read_stream)?)),
9897 }
9898 }
9899}
9900
9901#[allow(dead_code)]
9903#[cfg(feature = "all-types")]
9904#[derive(Debug, Clone, Eq, PartialEq)]
9905pub enum StellarValueExt {
9906 StellarValueBasic,
9907 StellarValueSigned(LedgerCloseValueSignature),
9908}
9909
9910#[cfg(feature = "all-types")]
9911impl XdrCodec for StellarValueExt {
9912 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9913 match self {
9914 StellarValueExt::StellarValueBasic => StellarValueType::StellarValueBasic.to_xdr_buffered(write_stream),
9915 StellarValueExt::StellarValueSigned(value) => {
9916 StellarValueType::StellarValueSigned.to_xdr_buffered(write_stream);
9917 value.to_xdr_buffered(write_stream)
9918 },
9919 }
9920 }
9921
9922 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9923 match StellarValueType::from_xdr_buffered(read_stream)? {
9924 StellarValueType::StellarValueBasic => Ok(StellarValueExt::StellarValueBasic),
9925 StellarValueType::StellarValueSigned =>
9926 Ok(StellarValueExt::StellarValueSigned(LedgerCloseValueSignature::from_xdr_buffered(read_stream)?)),
9927 }
9928 }
9929}
9930
9931#[allow(dead_code)]
9933#[cfg(feature = "all-types")]
9934#[derive(Debug, Clone, Eq, PartialEq)]
9935pub enum LedgerHeaderExtensionV1Ext {
9936 V0,
9937 Default(i32),
9938}
9939
9940#[cfg(feature = "all-types")]
9941impl XdrCodec for LedgerHeaderExtensionV1Ext {
9942 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9943 match self {
9944 LedgerHeaderExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
9945 LedgerHeaderExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
9946 }
9947 }
9948
9949 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9950 match i32::from_xdr_buffered(read_stream)? {
9951 0 => Ok(LedgerHeaderExtensionV1Ext::V0),
9952 code => Ok(LedgerHeaderExtensionV1Ext::Default(code)),
9953 }
9954 }
9955}
9956
9957#[allow(dead_code)]
9959#[cfg(feature = "all-types")]
9960#[derive(Debug, Clone, Eq, PartialEq)]
9961pub enum LedgerHeaderExt {
9962 V0,
9963 V1(LedgerHeaderExtensionV1),
9964 Default(i32),
9965}
9966
9967#[cfg(feature = "all-types")]
9968impl XdrCodec for LedgerHeaderExt {
9969 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
9970 match self {
9971 LedgerHeaderExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
9972 LedgerHeaderExt::V1(value) => {
9973 (1 as i32).to_xdr_buffered(write_stream);
9974 value.to_xdr_buffered(write_stream)
9975 },
9976 LedgerHeaderExt::Default(code) => code.to_xdr_buffered(write_stream),
9977 }
9978 }
9979
9980 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
9981 match i32::from_xdr_buffered(read_stream)? {
9982 0 => Ok(LedgerHeaderExt::V0),
9983 1 => Ok(LedgerHeaderExt::V1(LedgerHeaderExtensionV1::from_xdr_buffered(read_stream)?)),
9984 code => Ok(LedgerHeaderExt::Default(code)),
9985 }
9986 }
9987}
9988
9989#[allow(dead_code)]
9991#[cfg(feature = "all-types")]
9992#[derive(Debug, Clone, Eq, PartialEq)]
9993pub enum LedgerUpgrade {
9994 LedgerUpgradeVersion(Uint32),
9995 LedgerUpgradeBaseFee(Uint32),
9996 LedgerUpgradeMaxTxSetSize(Uint32),
9997 LedgerUpgradeBaseReserve(Uint32),
9998 LedgerUpgradeFlags(Uint32),
9999 LedgerUpgradeConfig(ConfigUpgradeSetKey),
10000 LedgerUpgradeMaxSorobanTxSetSize(Uint32),
10001}
10002
10003#[cfg(feature = "all-types")]
10004impl XdrCodec for LedgerUpgrade {
10005 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10006 match self {
10007 LedgerUpgrade::LedgerUpgradeVersion(value) => {
10008 LedgerUpgradeType::LedgerUpgradeVersion.to_xdr_buffered(write_stream);
10009 value.to_xdr_buffered(write_stream)
10010 },
10011 LedgerUpgrade::LedgerUpgradeBaseFee(value) => {
10012 LedgerUpgradeType::LedgerUpgradeBaseFee.to_xdr_buffered(write_stream);
10013 value.to_xdr_buffered(write_stream)
10014 },
10015 LedgerUpgrade::LedgerUpgradeMaxTxSetSize(value) => {
10016 LedgerUpgradeType::LedgerUpgradeMaxTxSetSize.to_xdr_buffered(write_stream);
10017 value.to_xdr_buffered(write_stream)
10018 },
10019 LedgerUpgrade::LedgerUpgradeBaseReserve(value) => {
10020 LedgerUpgradeType::LedgerUpgradeBaseReserve.to_xdr_buffered(write_stream);
10021 value.to_xdr_buffered(write_stream)
10022 },
10023 LedgerUpgrade::LedgerUpgradeFlags(value) => {
10024 LedgerUpgradeType::LedgerUpgradeFlags.to_xdr_buffered(write_stream);
10025 value.to_xdr_buffered(write_stream)
10026 },
10027 LedgerUpgrade::LedgerUpgradeConfig(value) => {
10028 LedgerUpgradeType::LedgerUpgradeConfig.to_xdr_buffered(write_stream);
10029 value.to_xdr_buffered(write_stream)
10030 },
10031 LedgerUpgrade::LedgerUpgradeMaxSorobanTxSetSize(value) => {
10032 LedgerUpgradeType::LedgerUpgradeMaxSorobanTxSetSize.to_xdr_buffered(write_stream);
10033 value.to_xdr_buffered(write_stream)
10034 },
10035 }
10036 }
10037
10038 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10039 match LedgerUpgradeType::from_xdr_buffered(read_stream)? {
10040 LedgerUpgradeType::LedgerUpgradeVersion =>
10041 Ok(LedgerUpgrade::LedgerUpgradeVersion(Uint32::from_xdr_buffered(read_stream)?)),
10042 LedgerUpgradeType::LedgerUpgradeBaseFee =>
10043 Ok(LedgerUpgrade::LedgerUpgradeBaseFee(Uint32::from_xdr_buffered(read_stream)?)),
10044 LedgerUpgradeType::LedgerUpgradeMaxTxSetSize =>
10045 Ok(LedgerUpgrade::LedgerUpgradeMaxTxSetSize(Uint32::from_xdr_buffered(read_stream)?)),
10046 LedgerUpgradeType::LedgerUpgradeBaseReserve =>
10047 Ok(LedgerUpgrade::LedgerUpgradeBaseReserve(Uint32::from_xdr_buffered(read_stream)?)),
10048 LedgerUpgradeType::LedgerUpgradeFlags =>
10049 Ok(LedgerUpgrade::LedgerUpgradeFlags(Uint32::from_xdr_buffered(read_stream)?)),
10050 LedgerUpgradeType::LedgerUpgradeConfig =>
10051 Ok(LedgerUpgrade::LedgerUpgradeConfig(ConfigUpgradeSetKey::from_xdr_buffered(read_stream)?)),
10052 LedgerUpgradeType::LedgerUpgradeMaxSorobanTxSetSize =>
10053 Ok(LedgerUpgrade::LedgerUpgradeMaxSorobanTxSetSize(Uint32::from_xdr_buffered(read_stream)?)),
10054 }
10055 }
10056}
10057
10058#[allow(dead_code)]
10060#[cfg(feature = "all-types")]
10061#[derive(Debug, Clone, Eq, PartialEq)]
10062pub enum BucketMetadataExt {
10063 V0,
10064 Default(i32),
10065}
10066
10067#[cfg(feature = "all-types")]
10068impl XdrCodec for BucketMetadataExt {
10069 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10070 match self {
10071 BucketMetadataExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
10072 BucketMetadataExt::Default(code) => code.to_xdr_buffered(write_stream),
10073 }
10074 }
10075
10076 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10077 match i32::from_xdr_buffered(read_stream)? {
10078 0 => Ok(BucketMetadataExt::V0),
10079 code => Ok(BucketMetadataExt::Default(code)),
10080 }
10081 }
10082}
10083
10084#[allow(dead_code)]
10086#[cfg(feature = "all-types")]
10087#[derive(Debug, Clone, Eq, PartialEq)]
10088pub enum BucketEntry {
10089 Liveentry(LedgerEntry),
10090 Initentry(LedgerEntry),
10091 Deadentry(LedgerKey),
10092 Metaentry(BucketMetadata),
10093}
10094
10095#[cfg(feature = "all-types")]
10096impl XdrCodec for BucketEntry {
10097 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10098 match self {
10099 BucketEntry::Liveentry(value) => {
10100 BucketEntryType::Liveentry.to_xdr_buffered(write_stream);
10101 value.to_xdr_buffered(write_stream)
10102 },
10103 BucketEntry::Initentry(value) => {
10104 BucketEntryType::Initentry.to_xdr_buffered(write_stream);
10105 value.to_xdr_buffered(write_stream)
10106 },
10107 BucketEntry::Deadentry(value) => {
10108 BucketEntryType::Deadentry.to_xdr_buffered(write_stream);
10109 value.to_xdr_buffered(write_stream)
10110 },
10111 BucketEntry::Metaentry(value) => {
10112 BucketEntryType::Metaentry.to_xdr_buffered(write_stream);
10113 value.to_xdr_buffered(write_stream)
10114 },
10115 }
10116 }
10117
10118 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10119 match BucketEntryType::from_xdr_buffered(read_stream)? {
10120 BucketEntryType::Liveentry => Ok(BucketEntry::Liveentry(LedgerEntry::from_xdr_buffered(read_stream)?)),
10121 BucketEntryType::Initentry => Ok(BucketEntry::Initentry(LedgerEntry::from_xdr_buffered(read_stream)?)),
10122 BucketEntryType::Deadentry => Ok(BucketEntry::Deadentry(LedgerKey::from_xdr_buffered(read_stream)?)),
10123 BucketEntryType::Metaentry => Ok(BucketEntry::Metaentry(BucketMetadata::from_xdr_buffered(read_stream)?)),
10124 }
10125 }
10126}
10127
10128#[allow(dead_code)]
10130#[cfg(feature = "all-types")]
10131#[derive(Debug, Clone, Eq, PartialEq)]
10132pub enum TxSetComponent {
10133 TxsetCompTxsMaybeDiscountedFee(TxSetComponentTxsMaybeDiscountedFee),
10134}
10135
10136#[cfg(feature = "all-types")]
10137impl XdrCodec for TxSetComponent {
10138 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10139 match self {
10140 TxSetComponent::TxsetCompTxsMaybeDiscountedFee(value) => {
10141 TxSetComponentType::TxsetCompTxsMaybeDiscountedFee.to_xdr_buffered(write_stream);
10142 value.to_xdr_buffered(write_stream)
10143 },
10144 }
10145 }
10146
10147 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10148 match TxSetComponentType::from_xdr_buffered(read_stream)? {
10149 TxSetComponentType::TxsetCompTxsMaybeDiscountedFee => Ok(TxSetComponent::TxsetCompTxsMaybeDiscountedFee(
10150 TxSetComponentTxsMaybeDiscountedFee::from_xdr_buffered(read_stream)?,
10151 )),
10152 }
10153 }
10154}
10155
10156#[allow(dead_code)]
10158#[cfg(feature = "all-types")]
10159#[derive(Debug, Clone, Eq, PartialEq)]
10160pub enum TransactionPhase {
10161 V0(UnlimitedVarArray<TxSetComponent>),
10162 Default(i32),
10163}
10164
10165#[cfg(feature = "all-types")]
10166impl XdrCodec for TransactionPhase {
10167 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10168 match self {
10169 TransactionPhase::V0(value) => {
10170 (0 as i32).to_xdr_buffered(write_stream);
10171 value.to_xdr_buffered(write_stream)
10172 },
10173 TransactionPhase::Default(code) => code.to_xdr_buffered(write_stream),
10174 }
10175 }
10176
10177 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10178 match i32::from_xdr_buffered(read_stream)? {
10179 0 => Ok(TransactionPhase::V0(UnlimitedVarArray::<TxSetComponent>::from_xdr_buffered(read_stream)?)),
10180 code => Ok(TransactionPhase::Default(code)),
10181 }
10182 }
10183}
10184
10185#[allow(dead_code)]
10187#[cfg(feature = "all-types")]
10188#[derive(Debug, Clone, Eq, PartialEq)]
10189pub enum GeneralizedTransactionSet {
10190 V1(TransactionSetV1),
10191 Default(i32),
10192}
10193
10194#[cfg(feature = "all-types")]
10195impl XdrCodec for GeneralizedTransactionSet {
10196 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10197 match self {
10198 GeneralizedTransactionSet::V1(value) => {
10199 (1 as i32).to_xdr_buffered(write_stream);
10200 value.to_xdr_buffered(write_stream)
10201 },
10202 GeneralizedTransactionSet::Default(code) => code.to_xdr_buffered(write_stream),
10203 }
10204 }
10205
10206 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10207 match i32::from_xdr_buffered(read_stream)? {
10208 1 => Ok(GeneralizedTransactionSet::V1(TransactionSetV1::from_xdr_buffered(read_stream)?)),
10209 code => Ok(GeneralizedTransactionSet::Default(code)),
10210 }
10211 }
10212}
10213
10214#[allow(dead_code)]
10216#[cfg(feature = "all-types")]
10217#[derive(Debug, Clone, Eq, PartialEq)]
10218pub enum TransactionHistoryEntryExt {
10219 V0,
10220 V1(GeneralizedTransactionSet),
10221 Default(i32),
10222}
10223
10224#[cfg(feature = "all-types")]
10225impl XdrCodec for TransactionHistoryEntryExt {
10226 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10227 match self {
10228 TransactionHistoryEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
10229 TransactionHistoryEntryExt::V1(value) => {
10230 (1 as i32).to_xdr_buffered(write_stream);
10231 value.to_xdr_buffered(write_stream)
10232 },
10233 TransactionHistoryEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
10234 }
10235 }
10236
10237 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10238 match i32::from_xdr_buffered(read_stream)? {
10239 0 => Ok(TransactionHistoryEntryExt::V0),
10240 1 => Ok(TransactionHistoryEntryExt::V1(GeneralizedTransactionSet::from_xdr_buffered(read_stream)?)),
10241 code => Ok(TransactionHistoryEntryExt::Default(code)),
10242 }
10243 }
10244}
10245
10246#[allow(dead_code)]
10248#[cfg(feature = "all-types")]
10249#[derive(Debug, Clone, Eq, PartialEq)]
10250pub enum TransactionHistoryResultEntryExt {
10251 V0,
10252 Default(i32),
10253}
10254
10255#[cfg(feature = "all-types")]
10256impl XdrCodec for TransactionHistoryResultEntryExt {
10257 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10258 match self {
10259 TransactionHistoryResultEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
10260 TransactionHistoryResultEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
10261 }
10262 }
10263
10264 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10265 match i32::from_xdr_buffered(read_stream)? {
10266 0 => Ok(TransactionHistoryResultEntryExt::V0),
10267 code => Ok(TransactionHistoryResultEntryExt::Default(code)),
10268 }
10269 }
10270}
10271
10272#[allow(dead_code)]
10274#[cfg(feature = "all-types")]
10275#[derive(Debug, Clone, Eq, PartialEq)]
10276pub enum LedgerHeaderHistoryEntryExt {
10277 V0,
10278 Default(i32),
10279}
10280
10281#[cfg(feature = "all-types")]
10282impl XdrCodec for LedgerHeaderHistoryEntryExt {
10283 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10284 match self {
10285 LedgerHeaderHistoryEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
10286 LedgerHeaderHistoryEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
10287 }
10288 }
10289
10290 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10291 match i32::from_xdr_buffered(read_stream)? {
10292 0 => Ok(LedgerHeaderHistoryEntryExt::V0),
10293 code => Ok(LedgerHeaderHistoryEntryExt::Default(code)),
10294 }
10295 }
10296}
10297
10298#[allow(dead_code)]
10300#[cfg(feature = "all-types")]
10301#[derive(Debug, Clone, Eq, PartialEq)]
10302pub enum ScpHistoryEntry {
10303 V0(ScpHistoryEntryV0),
10304 Default(i32),
10305}
10306
10307#[cfg(feature = "all-types")]
10308impl XdrCodec for ScpHistoryEntry {
10309 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10310 match self {
10311 ScpHistoryEntry::V0(value) => {
10312 (0 as i32).to_xdr_buffered(write_stream);
10313 value.to_xdr_buffered(write_stream)
10314 },
10315 ScpHistoryEntry::Default(code) => code.to_xdr_buffered(write_stream),
10316 }
10317 }
10318
10319 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10320 match i32::from_xdr_buffered(read_stream)? {
10321 0 => Ok(ScpHistoryEntry::V0(ScpHistoryEntryV0::from_xdr_buffered(read_stream)?)),
10322 code => Ok(ScpHistoryEntry::Default(code)),
10323 }
10324 }
10325}
10326
10327#[allow(dead_code)]
10329#[derive(Debug, Clone, Eq, PartialEq)]
10330pub enum LedgerEntryChange {
10331 LedgerEntryCreated(LedgerEntry),
10332 LedgerEntryUpdated(LedgerEntry),
10333 LedgerEntryRemoved(LedgerKey),
10334 LedgerEntryState(LedgerEntry),
10335}
10336
10337impl XdrCodec for LedgerEntryChange {
10338 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10339 match self {
10340 LedgerEntryChange::LedgerEntryCreated(value) => {
10341 LedgerEntryChangeType::LedgerEntryCreated.to_xdr_buffered(write_stream);
10342 value.to_xdr_buffered(write_stream)
10343 },
10344 LedgerEntryChange::LedgerEntryUpdated(value) => {
10345 LedgerEntryChangeType::LedgerEntryUpdated.to_xdr_buffered(write_stream);
10346 value.to_xdr_buffered(write_stream)
10347 },
10348 LedgerEntryChange::LedgerEntryRemoved(value) => {
10349 LedgerEntryChangeType::LedgerEntryRemoved.to_xdr_buffered(write_stream);
10350 value.to_xdr_buffered(write_stream)
10351 },
10352 LedgerEntryChange::LedgerEntryState(value) => {
10353 LedgerEntryChangeType::LedgerEntryState.to_xdr_buffered(write_stream);
10354 value.to_xdr_buffered(write_stream)
10355 },
10356 }
10357 }
10358
10359 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10360 match LedgerEntryChangeType::from_xdr_buffered(read_stream)? {
10361 LedgerEntryChangeType::LedgerEntryCreated =>
10362 Ok(LedgerEntryChange::LedgerEntryCreated(LedgerEntry::from_xdr_buffered(read_stream)?)),
10363 LedgerEntryChangeType::LedgerEntryUpdated =>
10364 Ok(LedgerEntryChange::LedgerEntryUpdated(LedgerEntry::from_xdr_buffered(read_stream)?)),
10365 LedgerEntryChangeType::LedgerEntryRemoved =>
10366 Ok(LedgerEntryChange::LedgerEntryRemoved(LedgerKey::from_xdr_buffered(read_stream)?)),
10367 LedgerEntryChangeType::LedgerEntryState =>
10368 Ok(LedgerEntryChange::LedgerEntryState(LedgerEntry::from_xdr_buffered(read_stream)?)),
10369 }
10370 }
10371}
10372
10373#[allow(dead_code)]
10375#[derive(Debug, Clone, Eq, PartialEq)]
10376pub enum ContractEventBody {
10377 V0(ContractEventV0),
10378 Default(i32),
10379}
10380
10381impl XdrCodec for ContractEventBody {
10382 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10383 match self {
10384 ContractEventBody::V0(value) => {
10385 (0 as i32).to_xdr_buffered(write_stream);
10386 value.to_xdr_buffered(write_stream)
10387 },
10388 ContractEventBody::Default(code) => code.to_xdr_buffered(write_stream),
10389 }
10390 }
10391
10392 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10393 match i32::from_xdr_buffered(read_stream)? {
10394 0 => Ok(ContractEventBody::V0(ContractEventV0::from_xdr_buffered(read_stream)?)),
10395 code => Ok(ContractEventBody::Default(code)),
10396 }
10397 }
10398}
10399
10400#[allow(dead_code)]
10402#[derive(Debug, Clone, Eq, PartialEq)]
10403pub enum SorobanTransactionMetaExt {
10404 V0,
10405 V1(SorobanTransactionMetaExtV1),
10406 Default(i32),
10407}
10408
10409impl XdrCodec for SorobanTransactionMetaExt {
10410 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10411 match self {
10412 SorobanTransactionMetaExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
10413 SorobanTransactionMetaExt::V1(value) => {
10414 (1 as i32).to_xdr_buffered(write_stream);
10415 value.to_xdr_buffered(write_stream)
10416 },
10417 SorobanTransactionMetaExt::Default(code) => code.to_xdr_buffered(write_stream),
10418 }
10419 }
10420
10421 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10422 match i32::from_xdr_buffered(read_stream)? {
10423 0 => Ok(SorobanTransactionMetaExt::V0),
10424 1 => Ok(SorobanTransactionMetaExt::V1(SorobanTransactionMetaExtV1::from_xdr_buffered(read_stream)?)),
10425 code => Ok(SorobanTransactionMetaExt::Default(code)),
10426 }
10427 }
10428}
10429
10430#[allow(dead_code)]
10432#[derive(Debug, Clone, Eq, PartialEq)]
10433pub enum TransactionMeta {
10434 V0(UnlimitedVarArray<OperationMeta>),
10435 V1(TransactionMetaV1),
10436 V2(TransactionMetaV2),
10437 V3(TransactionMetaV3),
10438 Default(i32),
10439}
10440
10441impl XdrCodec for TransactionMeta {
10442 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10443 match self {
10444 TransactionMeta::V0(value) => {
10445 (0 as i32).to_xdr_buffered(write_stream);
10446 value.to_xdr_buffered(write_stream)
10447 },
10448 TransactionMeta::V1(value) => {
10449 (1 as i32).to_xdr_buffered(write_stream);
10450 value.to_xdr_buffered(write_stream)
10451 },
10452 TransactionMeta::V2(value) => {
10453 (2 as i32).to_xdr_buffered(write_stream);
10454 value.to_xdr_buffered(write_stream)
10455 },
10456 TransactionMeta::V3(value) => {
10457 (3 as i32).to_xdr_buffered(write_stream);
10458 value.to_xdr_buffered(write_stream)
10459 },
10460 TransactionMeta::Default(code) => code.to_xdr_buffered(write_stream),
10461 }
10462 }
10463
10464 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10465 match i32::from_xdr_buffered(read_stream)? {
10466 0 => Ok(TransactionMeta::V0(UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?)),
10467 1 => Ok(TransactionMeta::V1(TransactionMetaV1::from_xdr_buffered(read_stream)?)),
10468 2 => Ok(TransactionMeta::V2(TransactionMetaV2::from_xdr_buffered(read_stream)?)),
10469 3 => Ok(TransactionMeta::V3(TransactionMetaV3::from_xdr_buffered(read_stream)?)),
10470 code => Ok(TransactionMeta::Default(code)),
10471 }
10472 }
10473}
10474
10475#[allow(dead_code)]
10477#[cfg(feature = "all-types")]
10478#[derive(Debug, Clone, Eq, PartialEq)]
10479pub enum LedgerCloseMetaExt {
10480 V0,
10481 V1(LedgerCloseMetaExtV1),
10482 Default(i32),
10483}
10484
10485#[cfg(feature = "all-types")]
10486impl XdrCodec for LedgerCloseMetaExt {
10487 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10488 match self {
10489 LedgerCloseMetaExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
10490 LedgerCloseMetaExt::V1(value) => {
10491 (1 as i32).to_xdr_buffered(write_stream);
10492 value.to_xdr_buffered(write_stream)
10493 },
10494 LedgerCloseMetaExt::Default(code) => code.to_xdr_buffered(write_stream),
10495 }
10496 }
10497
10498 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10499 match i32::from_xdr_buffered(read_stream)? {
10500 0 => Ok(LedgerCloseMetaExt::V0),
10501 1 => Ok(LedgerCloseMetaExt::V1(LedgerCloseMetaExtV1::from_xdr_buffered(read_stream)?)),
10502 code => Ok(LedgerCloseMetaExt::Default(code)),
10503 }
10504 }
10505}
10506
10507#[allow(dead_code)]
10509#[cfg(feature = "all-types")]
10510#[derive(Debug, Clone, Eq, PartialEq)]
10511pub enum LedgerCloseMeta {
10512 V0(LedgerCloseMetaV0),
10513 V1(LedgerCloseMetaV1),
10514 Default(i32),
10515}
10516
10517#[cfg(feature = "all-types")]
10518impl XdrCodec for LedgerCloseMeta {
10519 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10520 match self {
10521 LedgerCloseMeta::V0(value) => {
10522 (0 as i32).to_xdr_buffered(write_stream);
10523 value.to_xdr_buffered(write_stream)
10524 },
10525 LedgerCloseMeta::V1(value) => {
10526 (1 as i32).to_xdr_buffered(write_stream);
10527 value.to_xdr_buffered(write_stream)
10528 },
10529 LedgerCloseMeta::Default(code) => code.to_xdr_buffered(write_stream),
10530 }
10531 }
10532
10533 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10534 match i32::from_xdr_buffered(read_stream)? {
10535 0 => Ok(LedgerCloseMeta::V0(LedgerCloseMetaV0::from_xdr_buffered(read_stream)?)),
10536 1 => Ok(LedgerCloseMeta::V1(LedgerCloseMetaV1::from_xdr_buffered(read_stream)?)),
10537 code => Ok(LedgerCloseMeta::Default(code)),
10538 }
10539 }
10540}
10541
10542#[allow(dead_code)]
10544#[cfg(feature = "all-types")]
10545#[derive(Debug, Clone, Eq, PartialEq)]
10546pub enum PeerAddressIp {
10547 IPv4([u8; 4]),
10548 IPv6([u8; 16]),
10549}
10550
10551#[cfg(feature = "all-types")]
10552impl XdrCodec for PeerAddressIp {
10553 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10554 match self {
10555 PeerAddressIp::IPv4(value) => {
10556 IpAddrType::IPv4.to_xdr_buffered(write_stream);
10557 value.to_xdr_buffered(write_stream)
10558 },
10559 PeerAddressIp::IPv6(value) => {
10560 IpAddrType::IPv6.to_xdr_buffered(write_stream);
10561 value.to_xdr_buffered(write_stream)
10562 },
10563 }
10564 }
10565
10566 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10567 match IpAddrType::from_xdr_buffered(read_stream)? {
10568 IpAddrType::IPv4 => Ok(PeerAddressIp::IPv4(<[u8; 4]>::from_xdr_buffered(read_stream)?)),
10569 IpAddrType::IPv6 => Ok(PeerAddressIp::IPv6(<[u8; 16]>::from_xdr_buffered(read_stream)?)),
10570 }
10571 }
10572}
10573
10574#[allow(dead_code)]
10576#[cfg(feature = "all-types")]
10577#[derive(Debug, Clone, Eq, PartialEq)]
10578pub enum SurveyResponseBody {
10579 SurveyTopologyResponseV0(TopologyResponseBodyV0),
10580 SurveyTopologyResponseV1(TopologyResponseBodyV1),
10581 SurveyTopologyResponseV2(TopologyResponseBodyV2),
10582}
10583
10584#[cfg(feature = "all-types")]
10585impl XdrCodec for SurveyResponseBody {
10586 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10587 match self {
10588 SurveyResponseBody::SurveyTopologyResponseV0(value) => {
10589 SurveyMessageResponseType::SurveyTopologyResponseV0.to_xdr_buffered(write_stream);
10590 value.to_xdr_buffered(write_stream)
10591 },
10592 SurveyResponseBody::SurveyTopologyResponseV1(value) => {
10593 SurveyMessageResponseType::SurveyTopologyResponseV1.to_xdr_buffered(write_stream);
10594 value.to_xdr_buffered(write_stream)
10595 },
10596 SurveyResponseBody::SurveyTopologyResponseV2(value) => {
10597 SurveyMessageResponseType::SurveyTopologyResponseV2.to_xdr_buffered(write_stream);
10598 value.to_xdr_buffered(write_stream)
10599 },
10600 }
10601 }
10602
10603 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10604 match SurveyMessageResponseType::from_xdr_buffered(read_stream)? {
10605 SurveyMessageResponseType::SurveyTopologyResponseV0 => Ok(SurveyResponseBody::SurveyTopologyResponseV0(
10606 TopologyResponseBodyV0::from_xdr_buffered(read_stream)?,
10607 )),
10608 SurveyMessageResponseType::SurveyTopologyResponseV1 => Ok(SurveyResponseBody::SurveyTopologyResponseV1(
10609 TopologyResponseBodyV1::from_xdr_buffered(read_stream)?,
10610 )),
10611 SurveyMessageResponseType::SurveyTopologyResponseV2 => Ok(SurveyResponseBody::SurveyTopologyResponseV2(
10612 TopologyResponseBodyV2::from_xdr_buffered(read_stream)?,
10613 )),
10614 }
10615 }
10616}
10617
10618#[allow(dead_code)]
10620#[cfg(feature = "all-types")]
10621#[derive(Debug, Clone, Eq, PartialEq)]
10622pub enum StellarMessage {
10623 ErrorMsg(Error),
10624 Hello(Hello),
10625 Auth(Auth),
10626 DontHave(DontHave),
10627 GetPeers,
10628 Peers(LimitedVarArray<PeerAddress, 100>),
10629 GetTxSet(Uint256),
10630 TxSet(TransactionSet),
10631 GeneralizedTxSet(GeneralizedTransactionSet),
10632 Transaction(TransactionEnvelope),
10633 SurveyRequest(SignedSurveyRequestMessage),
10634 SurveyResponse(SignedSurveyResponseMessage),
10635 TimeSlicedSurveyRequest(SignedTimeSlicedSurveyRequestMessage),
10636 TimeSlicedSurveyResponse(SignedTimeSlicedSurveyResponseMessage),
10637 TimeSlicedSurveyStartCollecting(SignedTimeSlicedSurveyStartCollectingMessage),
10638 TimeSlicedSurveyStopCollecting(SignedTimeSlicedSurveyStopCollectingMessage),
10639 GetScpQuorumset(Uint256),
10640 ScpQuorumset(ScpQuorumSet),
10641 ScpMessage(ScpEnvelope),
10642 GetScpState(Uint32),
10643 SendMore(SendMore),
10644 SendMoreExtended(SendMoreExtended),
10645 FloodAdvert(FloodAdvert),
10646 FloodDemand(FloodDemand),
10647}
10648
10649#[cfg(feature = "all-types")]
10650impl XdrCodec for StellarMessage {
10651 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10652 match self {
10653 StellarMessage::ErrorMsg(value) => {
10654 MessageType::ErrorMsg.to_xdr_buffered(write_stream);
10655 value.to_xdr_buffered(write_stream)
10656 },
10657 StellarMessage::Hello(value) => {
10658 MessageType::Hello.to_xdr_buffered(write_stream);
10659 value.to_xdr_buffered(write_stream)
10660 },
10661 StellarMessage::Auth(value) => {
10662 MessageType::Auth.to_xdr_buffered(write_stream);
10663 value.to_xdr_buffered(write_stream)
10664 },
10665 StellarMessage::DontHave(value) => {
10666 MessageType::DontHave.to_xdr_buffered(write_stream);
10667 value.to_xdr_buffered(write_stream)
10668 },
10669 StellarMessage::GetPeers => MessageType::GetPeers.to_xdr_buffered(write_stream),
10670 StellarMessage::Peers(value) => {
10671 MessageType::Peers.to_xdr_buffered(write_stream);
10672 value.to_xdr_buffered(write_stream)
10673 },
10674 StellarMessage::GetTxSet(value) => {
10675 MessageType::GetTxSet.to_xdr_buffered(write_stream);
10676 value.to_xdr_buffered(write_stream)
10677 },
10678 StellarMessage::TxSet(value) => {
10679 MessageType::TxSet.to_xdr_buffered(write_stream);
10680 value.to_xdr_buffered(write_stream)
10681 },
10682 StellarMessage::GeneralizedTxSet(value) => {
10683 MessageType::GeneralizedTxSet.to_xdr_buffered(write_stream);
10684 value.to_xdr_buffered(write_stream)
10685 },
10686 StellarMessage::Transaction(value) => {
10687 MessageType::Transaction.to_xdr_buffered(write_stream);
10688 value.to_xdr_buffered(write_stream)
10689 },
10690 StellarMessage::SurveyRequest(value) => {
10691 MessageType::SurveyRequest.to_xdr_buffered(write_stream);
10692 value.to_xdr_buffered(write_stream)
10693 },
10694 StellarMessage::SurveyResponse(value) => {
10695 MessageType::SurveyResponse.to_xdr_buffered(write_stream);
10696 value.to_xdr_buffered(write_stream)
10697 },
10698 StellarMessage::TimeSlicedSurveyRequest(value) => {
10699 MessageType::TimeSlicedSurveyRequest.to_xdr_buffered(write_stream);
10700 value.to_xdr_buffered(write_stream)
10701 },
10702 StellarMessage::TimeSlicedSurveyResponse(value) => {
10703 MessageType::TimeSlicedSurveyResponse.to_xdr_buffered(write_stream);
10704 value.to_xdr_buffered(write_stream)
10705 },
10706 StellarMessage::TimeSlicedSurveyStartCollecting(value) => {
10707 MessageType::TimeSlicedSurveyStartCollecting.to_xdr_buffered(write_stream);
10708 value.to_xdr_buffered(write_stream)
10709 },
10710 StellarMessage::TimeSlicedSurveyStopCollecting(value) => {
10711 MessageType::TimeSlicedSurveyStopCollecting.to_xdr_buffered(write_stream);
10712 value.to_xdr_buffered(write_stream)
10713 },
10714 StellarMessage::GetScpQuorumset(value) => {
10715 MessageType::GetScpQuorumset.to_xdr_buffered(write_stream);
10716 value.to_xdr_buffered(write_stream)
10717 },
10718 StellarMessage::ScpQuorumset(value) => {
10719 MessageType::ScpQuorumset.to_xdr_buffered(write_stream);
10720 value.to_xdr_buffered(write_stream)
10721 },
10722 StellarMessage::ScpMessage(value) => {
10723 MessageType::ScpMessage.to_xdr_buffered(write_stream);
10724 value.to_xdr_buffered(write_stream)
10725 },
10726 StellarMessage::GetScpState(value) => {
10727 MessageType::GetScpState.to_xdr_buffered(write_stream);
10728 value.to_xdr_buffered(write_stream)
10729 },
10730 StellarMessage::SendMore(value) => {
10731 MessageType::SendMore.to_xdr_buffered(write_stream);
10732 value.to_xdr_buffered(write_stream)
10733 },
10734 StellarMessage::SendMoreExtended(value) => {
10735 MessageType::SendMoreExtended.to_xdr_buffered(write_stream);
10736 value.to_xdr_buffered(write_stream)
10737 },
10738 StellarMessage::FloodAdvert(value) => {
10739 MessageType::FloodAdvert.to_xdr_buffered(write_stream);
10740 value.to_xdr_buffered(write_stream)
10741 },
10742 StellarMessage::FloodDemand(value) => {
10743 MessageType::FloodDemand.to_xdr_buffered(write_stream);
10744 value.to_xdr_buffered(write_stream)
10745 },
10746 }
10747 }
10748
10749 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10750 match MessageType::from_xdr_buffered(read_stream)? {
10751 MessageType::ErrorMsg => Ok(StellarMessage::ErrorMsg(Error::from_xdr_buffered(read_stream)?)),
10752 MessageType::Hello => Ok(StellarMessage::Hello(Hello::from_xdr_buffered(read_stream)?)),
10753 MessageType::Auth => Ok(StellarMessage::Auth(Auth::from_xdr_buffered(read_stream)?)),
10754 MessageType::DontHave => Ok(StellarMessage::DontHave(DontHave::from_xdr_buffered(read_stream)?)),
10755 MessageType::GetPeers => Ok(StellarMessage::GetPeers),
10756 MessageType::Peers =>
10757 Ok(StellarMessage::Peers(LimitedVarArray::<PeerAddress, 100>::from_xdr_buffered(read_stream)?)),
10758 MessageType::GetTxSet => Ok(StellarMessage::GetTxSet(Uint256::from_xdr_buffered(read_stream)?)),
10759 MessageType::TxSet => Ok(StellarMessage::TxSet(TransactionSet::from_xdr_buffered(read_stream)?)),
10760 MessageType::GeneralizedTxSet =>
10761 Ok(StellarMessage::GeneralizedTxSet(GeneralizedTransactionSet::from_xdr_buffered(read_stream)?)),
10762 MessageType::Transaction =>
10763 Ok(StellarMessage::Transaction(TransactionEnvelope::from_xdr_buffered(read_stream)?)),
10764 MessageType::SurveyRequest =>
10765 Ok(StellarMessage::SurveyRequest(SignedSurveyRequestMessage::from_xdr_buffered(read_stream)?)),
10766 MessageType::SurveyResponse =>
10767 Ok(StellarMessage::SurveyResponse(SignedSurveyResponseMessage::from_xdr_buffered(read_stream)?)),
10768 MessageType::TimeSlicedSurveyRequest => Ok(StellarMessage::TimeSlicedSurveyRequest(
10769 SignedTimeSlicedSurveyRequestMessage::from_xdr_buffered(read_stream)?,
10770 )),
10771 MessageType::TimeSlicedSurveyResponse => Ok(StellarMessage::TimeSlicedSurveyResponse(
10772 SignedTimeSlicedSurveyResponseMessage::from_xdr_buffered(read_stream)?,
10773 )),
10774 MessageType::TimeSlicedSurveyStartCollecting => Ok(StellarMessage::TimeSlicedSurveyStartCollecting(
10775 SignedTimeSlicedSurveyStartCollectingMessage::from_xdr_buffered(read_stream)?,
10776 )),
10777 MessageType::TimeSlicedSurveyStopCollecting => Ok(StellarMessage::TimeSlicedSurveyStopCollecting(
10778 SignedTimeSlicedSurveyStopCollectingMessage::from_xdr_buffered(read_stream)?,
10779 )),
10780 MessageType::GetScpQuorumset =>
10781 Ok(StellarMessage::GetScpQuorumset(Uint256::from_xdr_buffered(read_stream)?)),
10782 MessageType::ScpQuorumset =>
10783 Ok(StellarMessage::ScpQuorumset(ScpQuorumSet::from_xdr_buffered(read_stream)?)),
10784 MessageType::ScpMessage => Ok(StellarMessage::ScpMessage(ScpEnvelope::from_xdr_buffered(read_stream)?)),
10785 MessageType::GetScpState => Ok(StellarMessage::GetScpState(Uint32::from_xdr_buffered(read_stream)?)),
10786 MessageType::SendMore => Ok(StellarMessage::SendMore(SendMore::from_xdr_buffered(read_stream)?)),
10787 MessageType::SendMoreExtended =>
10788 Ok(StellarMessage::SendMoreExtended(SendMoreExtended::from_xdr_buffered(read_stream)?)),
10789 MessageType::FloodAdvert => Ok(StellarMessage::FloodAdvert(FloodAdvert::from_xdr_buffered(read_stream)?)),
10790 MessageType::FloodDemand => Ok(StellarMessage::FloodDemand(FloodDemand::from_xdr_buffered(read_stream)?)),
10791 }
10792 }
10793}
10794
10795#[allow(dead_code)]
10797#[cfg(feature = "all-types")]
10798#[derive(Debug, Clone, Eq, PartialEq)]
10799pub enum AuthenticatedMessage {
10800 V0(AuthenticatedMessageV0),
10801 Default(Uint32),
10802}
10803
10804#[cfg(feature = "all-types")]
10805impl XdrCodec for AuthenticatedMessage {
10806 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10807 match self {
10808 AuthenticatedMessage::V0(value) => {
10809 (0 as Uint32).to_xdr_buffered(write_stream);
10810 value.to_xdr_buffered(write_stream)
10811 },
10812 AuthenticatedMessage::Default(code) => code.to_xdr_buffered(write_stream),
10813 }
10814 }
10815
10816 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10817 match Uint32::from_xdr_buffered(read_stream)? {
10818 0 => Ok(AuthenticatedMessage::V0(AuthenticatedMessageV0::from_xdr_buffered(read_stream)?)),
10819 code => Ok(AuthenticatedMessage::Default(code)),
10820 }
10821 }
10822}
10823
10824#[allow(dead_code)]
10826#[derive(Debug, Clone, Eq, PartialEq)]
10827pub enum LiquidityPoolParameters {
10828 LiquidityPoolConstantProduct(LiquidityPoolConstantProductParameters),
10829}
10830
10831impl XdrCodec for LiquidityPoolParameters {
10832 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10833 match self {
10834 LiquidityPoolParameters::LiquidityPoolConstantProduct(value) => {
10835 LiquidityPoolType::LiquidityPoolConstantProduct.to_xdr_buffered(write_stream);
10836 value.to_xdr_buffered(write_stream)
10837 },
10838 }
10839 }
10840
10841 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10842 match LiquidityPoolType::from_xdr_buffered(read_stream)? {
10843 LiquidityPoolType::LiquidityPoolConstantProduct =>
10844 Ok(LiquidityPoolParameters::LiquidityPoolConstantProduct(
10845 LiquidityPoolConstantProductParameters::from_xdr_buffered(read_stream)?,
10846 )),
10847 }
10848 }
10849}
10850
10851#[allow(dead_code)]
10853#[derive(Debug, Clone, Eq, PartialEq)]
10854pub enum MuxedAccount {
10855 KeyTypeEd25519(Uint256),
10856 KeyTypeMuxedEd25519(MuxedAccountMed25519),
10857 Default(CryptoKeyType),
10858}
10859
10860impl XdrCodec for MuxedAccount {
10861 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10862 match self {
10863 MuxedAccount::KeyTypeEd25519(value) => {
10864 CryptoKeyType::KeyTypeEd25519.to_xdr_buffered(write_stream);
10865 value.to_xdr_buffered(write_stream)
10866 },
10867 MuxedAccount::KeyTypeMuxedEd25519(value) => {
10868 CryptoKeyType::KeyTypeMuxedEd25519.to_xdr_buffered(write_stream);
10869 value.to_xdr_buffered(write_stream)
10870 },
10871 MuxedAccount::Default(code) => code.to_xdr_buffered(write_stream),
10872 }
10873 }
10874
10875 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10876 match CryptoKeyType::from_xdr_buffered(read_stream)? {
10877 CryptoKeyType::KeyTypeEd25519 => Ok(MuxedAccount::KeyTypeEd25519(Uint256::from_xdr_buffered(read_stream)?)),
10878 CryptoKeyType::KeyTypeMuxedEd25519 =>
10879 Ok(MuxedAccount::KeyTypeMuxedEd25519(MuxedAccountMed25519::from_xdr_buffered(read_stream)?)),
10880 code => Ok(MuxedAccount::Default(code)),
10881 }
10882 }
10883}
10884
10885#[allow(dead_code)]
10887#[derive(Debug, Clone, Eq, PartialEq)]
10888pub enum ChangeTrustAsset {
10889 AssetTypeNative,
10890 AssetTypeCreditAlphanum4(AlphaNum4),
10891 AssetTypeCreditAlphanum12(AlphaNum12),
10892 AssetTypePoolShare(LiquidityPoolParameters),
10893}
10894
10895impl XdrCodec for ChangeTrustAsset {
10896 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10897 match self {
10898 ChangeTrustAsset::AssetTypeNative => AssetType::AssetTypeNative.to_xdr_buffered(write_stream),
10899 ChangeTrustAsset::AssetTypeCreditAlphanum4(value) => {
10900 AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
10901 value.to_xdr_buffered(write_stream)
10902 },
10903 ChangeTrustAsset::AssetTypeCreditAlphanum12(value) => {
10904 AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
10905 value.to_xdr_buffered(write_stream)
10906 },
10907 ChangeTrustAsset::AssetTypePoolShare(value) => {
10908 AssetType::AssetTypePoolShare.to_xdr_buffered(write_stream);
10909 value.to_xdr_buffered(write_stream)
10910 },
10911 }
10912 }
10913
10914 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10915 match AssetType::from_xdr_buffered(read_stream)? {
10916 AssetType::AssetTypeNative => Ok(ChangeTrustAsset::AssetTypeNative),
10917 AssetType::AssetTypeCreditAlphanum4 =>
10918 Ok(ChangeTrustAsset::AssetTypeCreditAlphanum4(AlphaNum4::from_xdr_buffered(read_stream)?)),
10919 AssetType::AssetTypeCreditAlphanum12 =>
10920 Ok(ChangeTrustAsset::AssetTypeCreditAlphanum12(AlphaNum12::from_xdr_buffered(read_stream)?)),
10921 AssetType::AssetTypePoolShare =>
10922 Ok(ChangeTrustAsset::AssetTypePoolShare(LiquidityPoolParameters::from_xdr_buffered(read_stream)?)),
10923 }
10924 }
10925}
10926
10927#[allow(dead_code)]
10929#[derive(Debug, Clone, Eq, PartialEq)]
10930pub enum RevokeSponsorshipOp {
10931 RevokeSponsorshipLedgerEntry(LedgerKey),
10932 RevokeSponsorshipSigner(RevokeSponsorshipOpSigner),
10933}
10934
10935impl XdrCodec for RevokeSponsorshipOp {
10936 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10937 match self {
10938 RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(value) => {
10939 RevokeSponsorshipType::RevokeSponsorshipLedgerEntry.to_xdr_buffered(write_stream);
10940 value.to_xdr_buffered(write_stream)
10941 },
10942 RevokeSponsorshipOp::RevokeSponsorshipSigner(value) => {
10943 RevokeSponsorshipType::RevokeSponsorshipSigner.to_xdr_buffered(write_stream);
10944 value.to_xdr_buffered(write_stream)
10945 },
10946 }
10947 }
10948
10949 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10950 match RevokeSponsorshipType::from_xdr_buffered(read_stream)? {
10951 RevokeSponsorshipType::RevokeSponsorshipLedgerEntry =>
10952 Ok(RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(LedgerKey::from_xdr_buffered(read_stream)?)),
10953 RevokeSponsorshipType::RevokeSponsorshipSigner => Ok(RevokeSponsorshipOp::RevokeSponsorshipSigner(
10954 RevokeSponsorshipOpSigner::from_xdr_buffered(read_stream)?,
10955 )),
10956 }
10957 }
10958}
10959
10960#[allow(dead_code)]
10962#[derive(Debug, Clone, Eq, PartialEq)]
10963pub enum ContractIdPreimage {
10964 ContractIdPreimageFromAddress(ContractIdPreimageFromAddress),
10965 ContractIdPreimageFromAsset(Asset),
10966}
10967
10968impl XdrCodec for ContractIdPreimage {
10969 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
10970 match self {
10971 ContractIdPreimage::ContractIdPreimageFromAddress(value) => {
10972 ContractIdPreimageType::ContractIdPreimageFromAddress.to_xdr_buffered(write_stream);
10973 value.to_xdr_buffered(write_stream)
10974 },
10975 ContractIdPreimage::ContractIdPreimageFromAsset(value) => {
10976 ContractIdPreimageType::ContractIdPreimageFromAsset.to_xdr_buffered(write_stream);
10977 value.to_xdr_buffered(write_stream)
10978 },
10979 }
10980 }
10981
10982 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
10983 match ContractIdPreimageType::from_xdr_buffered(read_stream)? {
10984 ContractIdPreimageType::ContractIdPreimageFromAddress =>
10985 Ok(ContractIdPreimage::ContractIdPreimageFromAddress(ContractIdPreimageFromAddress::from_xdr_buffered(
10986 read_stream,
10987 )?)),
10988 ContractIdPreimageType::ContractIdPreimageFromAsset =>
10989 Ok(ContractIdPreimage::ContractIdPreimageFromAsset(Asset::from_xdr_buffered(read_stream)?)),
10990 }
10991 }
10992}
10993
10994#[allow(dead_code)]
10996#[derive(Debug, Clone, Eq, PartialEq)]
10997pub enum HostFunction {
10998 HostFunctionTypeInvokeContract(InvokeContractArgs),
10999 HostFunctionTypeCreateContract(CreateContractArgs),
11000 HostFunctionTypeUploadContractWasm(UnlimitedVarOpaque),
11001}
11002
11003impl XdrCodec for HostFunction {
11004 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11005 match self {
11006 HostFunction::HostFunctionTypeInvokeContract(value) => {
11007 HostFunctionType::HostFunctionTypeInvokeContract.to_xdr_buffered(write_stream);
11008 value.to_xdr_buffered(write_stream)
11009 },
11010 HostFunction::HostFunctionTypeCreateContract(value) => {
11011 HostFunctionType::HostFunctionTypeCreateContract.to_xdr_buffered(write_stream);
11012 value.to_xdr_buffered(write_stream)
11013 },
11014 HostFunction::HostFunctionTypeUploadContractWasm(value) => {
11015 HostFunctionType::HostFunctionTypeUploadContractWasm.to_xdr_buffered(write_stream);
11016 value.to_xdr_buffered(write_stream)
11017 },
11018 }
11019 }
11020
11021 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11022 match HostFunctionType::from_xdr_buffered(read_stream)? {
11023 HostFunctionType::HostFunctionTypeInvokeContract =>
11024 Ok(HostFunction::HostFunctionTypeInvokeContract(InvokeContractArgs::from_xdr_buffered(read_stream)?)),
11025 HostFunctionType::HostFunctionTypeCreateContract =>
11026 Ok(HostFunction::HostFunctionTypeCreateContract(CreateContractArgs::from_xdr_buffered(read_stream)?)),
11027 HostFunctionType::HostFunctionTypeUploadContractWasm => Ok(
11028 HostFunction::HostFunctionTypeUploadContractWasm(UnlimitedVarOpaque::from_xdr_buffered(read_stream)?),
11029 ),
11030 }
11031 }
11032}
11033
11034#[allow(dead_code)]
11036#[derive(Debug, Clone, Eq, PartialEq)]
11037pub enum SorobanAuthorizedFunction {
11038 SorobanAuthorizedFunctionTypeContractFn(InvokeContractArgs),
11039 SorobanAuthorizedFunctionTypeCreateContractHostFn(CreateContractArgs),
11040}
11041
11042impl XdrCodec for SorobanAuthorizedFunction {
11043 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11044 match self {
11045 SorobanAuthorizedFunction::SorobanAuthorizedFunctionTypeContractFn(value) => {
11046 SorobanAuthorizedFunctionType::SorobanAuthorizedFunctionTypeContractFn.to_xdr_buffered(write_stream);
11047 value.to_xdr_buffered(write_stream)
11048 },
11049 SorobanAuthorizedFunction::SorobanAuthorizedFunctionTypeCreateContractHostFn(value) => {
11050 SorobanAuthorizedFunctionType::SorobanAuthorizedFunctionTypeCreateContractHostFn
11051 .to_xdr_buffered(write_stream);
11052 value.to_xdr_buffered(write_stream)
11053 },
11054 }
11055 }
11056
11057 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11058 match SorobanAuthorizedFunctionType::from_xdr_buffered(read_stream)? {
11059 SorobanAuthorizedFunctionType::SorobanAuthorizedFunctionTypeContractFn =>
11060 Ok(SorobanAuthorizedFunction::SorobanAuthorizedFunctionTypeContractFn(
11061 InvokeContractArgs::from_xdr_buffered(read_stream)?,
11062 )),
11063 SorobanAuthorizedFunctionType::SorobanAuthorizedFunctionTypeCreateContractHostFn =>
11064 Ok(SorobanAuthorizedFunction::SorobanAuthorizedFunctionTypeCreateContractHostFn(
11065 CreateContractArgs::from_xdr_buffered(read_stream)?,
11066 )),
11067 }
11068 }
11069}
11070
11071#[allow(dead_code)]
11073#[derive(Debug, Clone, Eq, PartialEq)]
11074pub enum SorobanCredentials {
11075 SorobanCredentialsSourceAccount,
11076 SorobanCredentialsAddress(SorobanAddressCredentials),
11077}
11078
11079impl XdrCodec for SorobanCredentials {
11080 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11081 match self {
11082 SorobanCredentials::SorobanCredentialsSourceAccount =>
11083 SorobanCredentialsType::SorobanCredentialsSourceAccount.to_xdr_buffered(write_stream),
11084 SorobanCredentials::SorobanCredentialsAddress(value) => {
11085 SorobanCredentialsType::SorobanCredentialsAddress.to_xdr_buffered(write_stream);
11086 value.to_xdr_buffered(write_stream)
11087 },
11088 }
11089 }
11090
11091 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11092 match SorobanCredentialsType::from_xdr_buffered(read_stream)? {
11093 SorobanCredentialsType::SorobanCredentialsSourceAccount =>
11094 Ok(SorobanCredentials::SorobanCredentialsSourceAccount),
11095 SorobanCredentialsType::SorobanCredentialsAddress => Ok(SorobanCredentials::SorobanCredentialsAddress(
11096 SorobanAddressCredentials::from_xdr_buffered(read_stream)?,
11097 )),
11098 }
11099 }
11100}
11101
11102#[allow(dead_code)]
11104#[derive(Debug, Clone, Eq, PartialEq)]
11105pub enum OperationBody {
11106 CreateAccount(CreateAccountOp),
11107 Payment(PaymentOp),
11108 PathPaymentStrictReceive(PathPaymentStrictReceiveOp),
11109 ManageSellOffer(ManageSellOfferOp),
11110 CreatePassiveSellOffer(CreatePassiveSellOfferOp),
11111 SetOptions(SetOptionsOp),
11112 ChangeTrust(ChangeTrustOp),
11113 AllowTrust(AllowTrustOp),
11114 AccountMerge(MuxedAccount),
11115 Inflation,
11116 ManageData(ManageDataOp),
11117 BumpSequence(BumpSequenceOp),
11118 ManageBuyOffer(ManageBuyOfferOp),
11119 PathPaymentStrictSend(PathPaymentStrictSendOp),
11120 CreateClaimableBalance(CreateClaimableBalanceOp),
11121 ClaimClaimableBalance(ClaimClaimableBalanceOp),
11122 BeginSponsoringFutureReserves(BeginSponsoringFutureReservesOp),
11123 EndSponsoringFutureReserves,
11124 RevokeSponsorship(RevokeSponsorshipOp),
11125 Clawback(ClawbackOp),
11126 ClawbackClaimableBalance(ClawbackClaimableBalanceOp),
11127 SetTrustLineFlags(SetTrustLineFlagsOp),
11128 LiquidityPoolDeposit(LiquidityPoolDepositOp),
11129 LiquidityPoolWithdraw(LiquidityPoolWithdrawOp),
11130 InvokeHostFunction(InvokeHostFunctionOp),
11131 ExtendFootprintTtl(ExtendFootprintTtlOp),
11132 RestoreFootprint(RestoreFootprintOp),
11133}
11134
11135impl XdrCodec for OperationBody {
11136 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11137 match self {
11138 OperationBody::CreateAccount(value) => {
11139 OperationType::CreateAccount.to_xdr_buffered(write_stream);
11140 value.to_xdr_buffered(write_stream)
11141 },
11142 OperationBody::Payment(value) => {
11143 OperationType::Payment.to_xdr_buffered(write_stream);
11144 value.to_xdr_buffered(write_stream)
11145 },
11146 OperationBody::PathPaymentStrictReceive(value) => {
11147 OperationType::PathPaymentStrictReceive.to_xdr_buffered(write_stream);
11148 value.to_xdr_buffered(write_stream)
11149 },
11150 OperationBody::ManageSellOffer(value) => {
11151 OperationType::ManageSellOffer.to_xdr_buffered(write_stream);
11152 value.to_xdr_buffered(write_stream)
11153 },
11154 OperationBody::CreatePassiveSellOffer(value) => {
11155 OperationType::CreatePassiveSellOffer.to_xdr_buffered(write_stream);
11156 value.to_xdr_buffered(write_stream)
11157 },
11158 OperationBody::SetOptions(value) => {
11159 OperationType::SetOptions.to_xdr_buffered(write_stream);
11160 value.to_xdr_buffered(write_stream)
11161 },
11162 OperationBody::ChangeTrust(value) => {
11163 OperationType::ChangeTrust.to_xdr_buffered(write_stream);
11164 value.to_xdr_buffered(write_stream)
11165 },
11166 OperationBody::AllowTrust(value) => {
11167 OperationType::AllowTrust.to_xdr_buffered(write_stream);
11168 value.to_xdr_buffered(write_stream)
11169 },
11170 OperationBody::AccountMerge(value) => {
11171 OperationType::AccountMerge.to_xdr_buffered(write_stream);
11172 value.to_xdr_buffered(write_stream)
11173 },
11174 OperationBody::Inflation => OperationType::Inflation.to_xdr_buffered(write_stream),
11175 OperationBody::ManageData(value) => {
11176 OperationType::ManageData.to_xdr_buffered(write_stream);
11177 value.to_xdr_buffered(write_stream)
11178 },
11179 OperationBody::BumpSequence(value) => {
11180 OperationType::BumpSequence.to_xdr_buffered(write_stream);
11181 value.to_xdr_buffered(write_stream)
11182 },
11183 OperationBody::ManageBuyOffer(value) => {
11184 OperationType::ManageBuyOffer.to_xdr_buffered(write_stream);
11185 value.to_xdr_buffered(write_stream)
11186 },
11187 OperationBody::PathPaymentStrictSend(value) => {
11188 OperationType::PathPaymentStrictSend.to_xdr_buffered(write_stream);
11189 value.to_xdr_buffered(write_stream)
11190 },
11191 OperationBody::CreateClaimableBalance(value) => {
11192 OperationType::CreateClaimableBalance.to_xdr_buffered(write_stream);
11193 value.to_xdr_buffered(write_stream)
11194 },
11195 OperationBody::ClaimClaimableBalance(value) => {
11196 OperationType::ClaimClaimableBalance.to_xdr_buffered(write_stream);
11197 value.to_xdr_buffered(write_stream)
11198 },
11199 OperationBody::BeginSponsoringFutureReserves(value) => {
11200 OperationType::BeginSponsoringFutureReserves.to_xdr_buffered(write_stream);
11201 value.to_xdr_buffered(write_stream)
11202 },
11203 OperationBody::EndSponsoringFutureReserves =>
11204 OperationType::EndSponsoringFutureReserves.to_xdr_buffered(write_stream),
11205 OperationBody::RevokeSponsorship(value) => {
11206 OperationType::RevokeSponsorship.to_xdr_buffered(write_stream);
11207 value.to_xdr_buffered(write_stream)
11208 },
11209 OperationBody::Clawback(value) => {
11210 OperationType::Clawback.to_xdr_buffered(write_stream);
11211 value.to_xdr_buffered(write_stream)
11212 },
11213 OperationBody::ClawbackClaimableBalance(value) => {
11214 OperationType::ClawbackClaimableBalance.to_xdr_buffered(write_stream);
11215 value.to_xdr_buffered(write_stream)
11216 },
11217 OperationBody::SetTrustLineFlags(value) => {
11218 OperationType::SetTrustLineFlags.to_xdr_buffered(write_stream);
11219 value.to_xdr_buffered(write_stream)
11220 },
11221 OperationBody::LiquidityPoolDeposit(value) => {
11222 OperationType::LiquidityPoolDeposit.to_xdr_buffered(write_stream);
11223 value.to_xdr_buffered(write_stream)
11224 },
11225 OperationBody::LiquidityPoolWithdraw(value) => {
11226 OperationType::LiquidityPoolWithdraw.to_xdr_buffered(write_stream);
11227 value.to_xdr_buffered(write_stream)
11228 },
11229 OperationBody::InvokeHostFunction(value) => {
11230 OperationType::InvokeHostFunction.to_xdr_buffered(write_stream);
11231 value.to_xdr_buffered(write_stream)
11232 },
11233 OperationBody::ExtendFootprintTtl(value) => {
11234 OperationType::ExtendFootprintTtl.to_xdr_buffered(write_stream);
11235 value.to_xdr_buffered(write_stream)
11236 },
11237 OperationBody::RestoreFootprint(value) => {
11238 OperationType::RestoreFootprint.to_xdr_buffered(write_stream);
11239 value.to_xdr_buffered(write_stream)
11240 },
11241 }
11242 }
11243
11244 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11245 match OperationType::from_xdr_buffered(read_stream)? {
11246 OperationType::CreateAccount =>
11247 Ok(OperationBody::CreateAccount(CreateAccountOp::from_xdr_buffered(read_stream)?)),
11248 OperationType::Payment => Ok(OperationBody::Payment(PaymentOp::from_xdr_buffered(read_stream)?)),
11249 OperationType::PathPaymentStrictReceive =>
11250 Ok(OperationBody::PathPaymentStrictReceive(PathPaymentStrictReceiveOp::from_xdr_buffered(read_stream)?)),
11251 OperationType::ManageSellOffer =>
11252 Ok(OperationBody::ManageSellOffer(ManageSellOfferOp::from_xdr_buffered(read_stream)?)),
11253 OperationType::CreatePassiveSellOffer =>
11254 Ok(OperationBody::CreatePassiveSellOffer(CreatePassiveSellOfferOp::from_xdr_buffered(read_stream)?)),
11255 OperationType::SetOptions => Ok(OperationBody::SetOptions(SetOptionsOp::from_xdr_buffered(read_stream)?)),
11256 OperationType::ChangeTrust =>
11257 Ok(OperationBody::ChangeTrust(ChangeTrustOp::from_xdr_buffered(read_stream)?)),
11258 OperationType::AllowTrust => Ok(OperationBody::AllowTrust(AllowTrustOp::from_xdr_buffered(read_stream)?)),
11259 OperationType::AccountMerge =>
11260 Ok(OperationBody::AccountMerge(MuxedAccount::from_xdr_buffered(read_stream)?)),
11261 OperationType::Inflation => Ok(OperationBody::Inflation),
11262 OperationType::ManageData => Ok(OperationBody::ManageData(ManageDataOp::from_xdr_buffered(read_stream)?)),
11263 OperationType::BumpSequence =>
11264 Ok(OperationBody::BumpSequence(BumpSequenceOp::from_xdr_buffered(read_stream)?)),
11265 OperationType::ManageBuyOffer =>
11266 Ok(OperationBody::ManageBuyOffer(ManageBuyOfferOp::from_xdr_buffered(read_stream)?)),
11267 OperationType::PathPaymentStrictSend =>
11268 Ok(OperationBody::PathPaymentStrictSend(PathPaymentStrictSendOp::from_xdr_buffered(read_stream)?)),
11269 OperationType::CreateClaimableBalance =>
11270 Ok(OperationBody::CreateClaimableBalance(CreateClaimableBalanceOp::from_xdr_buffered(read_stream)?)),
11271 OperationType::ClaimClaimableBalance =>
11272 Ok(OperationBody::ClaimClaimableBalance(ClaimClaimableBalanceOp::from_xdr_buffered(read_stream)?)),
11273 OperationType::BeginSponsoringFutureReserves => Ok(OperationBody::BeginSponsoringFutureReserves(
11274 BeginSponsoringFutureReservesOp::from_xdr_buffered(read_stream)?,
11275 )),
11276 OperationType::EndSponsoringFutureReserves => Ok(OperationBody::EndSponsoringFutureReserves),
11277 OperationType::RevokeSponsorship =>
11278 Ok(OperationBody::RevokeSponsorship(RevokeSponsorshipOp::from_xdr_buffered(read_stream)?)),
11279 OperationType::Clawback => Ok(OperationBody::Clawback(ClawbackOp::from_xdr_buffered(read_stream)?)),
11280 OperationType::ClawbackClaimableBalance =>
11281 Ok(OperationBody::ClawbackClaimableBalance(ClawbackClaimableBalanceOp::from_xdr_buffered(read_stream)?)),
11282 OperationType::SetTrustLineFlags =>
11283 Ok(OperationBody::SetTrustLineFlags(SetTrustLineFlagsOp::from_xdr_buffered(read_stream)?)),
11284 OperationType::LiquidityPoolDeposit =>
11285 Ok(OperationBody::LiquidityPoolDeposit(LiquidityPoolDepositOp::from_xdr_buffered(read_stream)?)),
11286 OperationType::LiquidityPoolWithdraw =>
11287 Ok(OperationBody::LiquidityPoolWithdraw(LiquidityPoolWithdrawOp::from_xdr_buffered(read_stream)?)),
11288 OperationType::InvokeHostFunction =>
11289 Ok(OperationBody::InvokeHostFunction(InvokeHostFunctionOp::from_xdr_buffered(read_stream)?)),
11290 OperationType::ExtendFootprintTtl =>
11291 Ok(OperationBody::ExtendFootprintTtl(ExtendFootprintTtlOp::from_xdr_buffered(read_stream)?)),
11292 OperationType::RestoreFootprint =>
11293 Ok(OperationBody::RestoreFootprint(RestoreFootprintOp::from_xdr_buffered(read_stream)?)),
11294 }
11295 }
11296}
11297
11298#[allow(dead_code)]
11300#[cfg(feature = "all-types")]
11301#[derive(Debug, Clone, Eq, PartialEq)]
11302pub enum HashIdPreimage {
11303 EnvelopeTypeOpId(HashIdPreimageOperationId),
11304 EnvelopeTypePoolRevokeOpId(HashIdPreimageRevokeId),
11305 EnvelopeTypeContractId(HashIdPreimageContractId),
11306 EnvelopeTypeSorobanAuthorization(HashIdPreimageSorobanAuthorization),
11307 Default(EnvelopeType),
11308}
11309
11310#[cfg(feature = "all-types")]
11311impl XdrCodec for HashIdPreimage {
11312 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11313 match self {
11314 HashIdPreimage::EnvelopeTypeOpId(value) => {
11315 EnvelopeType::EnvelopeTypeOpId.to_xdr_buffered(write_stream);
11316 value.to_xdr_buffered(write_stream)
11317 },
11318 HashIdPreimage::EnvelopeTypePoolRevokeOpId(value) => {
11319 EnvelopeType::EnvelopeTypePoolRevokeOpId.to_xdr_buffered(write_stream);
11320 value.to_xdr_buffered(write_stream)
11321 },
11322 HashIdPreimage::EnvelopeTypeContractId(value) => {
11323 EnvelopeType::EnvelopeTypeContractId.to_xdr_buffered(write_stream);
11324 value.to_xdr_buffered(write_stream)
11325 },
11326 HashIdPreimage::EnvelopeTypeSorobanAuthorization(value) => {
11327 EnvelopeType::EnvelopeTypeSorobanAuthorization.to_xdr_buffered(write_stream);
11328 value.to_xdr_buffered(write_stream)
11329 },
11330 HashIdPreimage::Default(code) => code.to_xdr_buffered(write_stream),
11331 }
11332 }
11333
11334 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11335 match EnvelopeType::from_xdr_buffered(read_stream)? {
11336 EnvelopeType::EnvelopeTypeOpId =>
11337 Ok(HashIdPreimage::EnvelopeTypeOpId(HashIdPreimageOperationId::from_xdr_buffered(read_stream)?)),
11338 EnvelopeType::EnvelopeTypePoolRevokeOpId =>
11339 Ok(HashIdPreimage::EnvelopeTypePoolRevokeOpId(HashIdPreimageRevokeId::from_xdr_buffered(read_stream)?)),
11340 EnvelopeType::EnvelopeTypeContractId =>
11341 Ok(HashIdPreimage::EnvelopeTypeContractId(HashIdPreimageContractId::from_xdr_buffered(read_stream)?)),
11342 EnvelopeType::EnvelopeTypeSorobanAuthorization => Ok(HashIdPreimage::EnvelopeTypeSorobanAuthorization(
11343 HashIdPreimageSorobanAuthorization::from_xdr_buffered(read_stream)?,
11344 )),
11345 code => Ok(HashIdPreimage::Default(code)),
11346 }
11347 }
11348}
11349
11350#[allow(dead_code)]
11352#[derive(Debug, Clone, Eq, PartialEq)]
11353pub enum Memo {
11354 MemoNone,
11355 MemoText(LimitedString<28>),
11356 MemoId(Uint64),
11357 MemoHash(Hash),
11358 MemoReturn(Hash),
11359}
11360
11361impl XdrCodec for Memo {
11362 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11363 match self {
11364 Memo::MemoNone => MemoType::MemoNone.to_xdr_buffered(write_stream),
11365 Memo::MemoText(value) => {
11366 MemoType::MemoText.to_xdr_buffered(write_stream);
11367 value.to_xdr_buffered(write_stream)
11368 },
11369 Memo::MemoId(value) => {
11370 MemoType::MemoId.to_xdr_buffered(write_stream);
11371 value.to_xdr_buffered(write_stream)
11372 },
11373 Memo::MemoHash(value) => {
11374 MemoType::MemoHash.to_xdr_buffered(write_stream);
11375 value.to_xdr_buffered(write_stream)
11376 },
11377 Memo::MemoReturn(value) => {
11378 MemoType::MemoReturn.to_xdr_buffered(write_stream);
11379 value.to_xdr_buffered(write_stream)
11380 },
11381 }
11382 }
11383
11384 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11385 match MemoType::from_xdr_buffered(read_stream)? {
11386 MemoType::MemoNone => Ok(Memo::MemoNone),
11387 MemoType::MemoText => Ok(Memo::MemoText(LimitedString::<28>::from_xdr_buffered(read_stream)?)),
11388 MemoType::MemoId => Ok(Memo::MemoId(Uint64::from_xdr_buffered(read_stream)?)),
11389 MemoType::MemoHash => Ok(Memo::MemoHash(Hash::from_xdr_buffered(read_stream)?)),
11390 MemoType::MemoReturn => Ok(Memo::MemoReturn(Hash::from_xdr_buffered(read_stream)?)),
11391 }
11392 }
11393}
11394
11395#[allow(dead_code)]
11397#[derive(Debug, Clone, Eq, PartialEq)]
11398pub enum Preconditions {
11399 PrecondNone,
11400 PrecondTime(TimeBounds),
11401 PrecondV2(PreconditionsV2),
11402}
11403
11404impl XdrCodec for Preconditions {
11405 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11406 match self {
11407 Preconditions::PrecondNone => PreconditionType::PrecondNone.to_xdr_buffered(write_stream),
11408 Preconditions::PrecondTime(value) => {
11409 PreconditionType::PrecondTime.to_xdr_buffered(write_stream);
11410 value.to_xdr_buffered(write_stream)
11411 },
11412 Preconditions::PrecondV2(value) => {
11413 PreconditionType::PrecondV2.to_xdr_buffered(write_stream);
11414 value.to_xdr_buffered(write_stream)
11415 },
11416 }
11417 }
11418
11419 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11420 match PreconditionType::from_xdr_buffered(read_stream)? {
11421 PreconditionType::PrecondNone => Ok(Preconditions::PrecondNone),
11422 PreconditionType::PrecondTime =>
11423 Ok(Preconditions::PrecondTime(TimeBounds::from_xdr_buffered(read_stream)?)),
11424 PreconditionType::PrecondV2 =>
11425 Ok(Preconditions::PrecondV2(PreconditionsV2::from_xdr_buffered(read_stream)?)),
11426 }
11427 }
11428}
11429
11430#[allow(dead_code)]
11432#[derive(Debug, Clone, Eq, PartialEq)]
11433pub enum TransactionV0Ext {
11434 V0,
11435 Default(i32),
11436}
11437
11438impl XdrCodec for TransactionV0Ext {
11439 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11440 match self {
11441 TransactionV0Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
11442 TransactionV0Ext::Default(code) => code.to_xdr_buffered(write_stream),
11443 }
11444 }
11445
11446 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11447 match i32::from_xdr_buffered(read_stream)? {
11448 0 => Ok(TransactionV0Ext::V0),
11449 code => Ok(TransactionV0Ext::Default(code)),
11450 }
11451 }
11452}
11453
11454#[allow(dead_code)]
11456#[derive(Debug, Clone, Eq, PartialEq)]
11457pub enum TransactionExt {
11458 V0,
11459 V1(SorobanTransactionData),
11460 Default(i32),
11461}
11462
11463impl XdrCodec for TransactionExt {
11464 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11465 match self {
11466 TransactionExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
11467 TransactionExt::V1(value) => {
11468 (1 as i32).to_xdr_buffered(write_stream);
11469 value.to_xdr_buffered(write_stream)
11470 },
11471 TransactionExt::Default(code) => code.to_xdr_buffered(write_stream),
11472 }
11473 }
11474
11475 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11476 match i32::from_xdr_buffered(read_stream)? {
11477 0 => Ok(TransactionExt::V0),
11478 1 => Ok(TransactionExt::V1(SorobanTransactionData::from_xdr_buffered(read_stream)?)),
11479 code => Ok(TransactionExt::Default(code)),
11480 }
11481 }
11482}
11483
11484#[allow(dead_code)]
11486#[derive(Debug, Clone, Eq, PartialEq)]
11487pub enum FeeBumpTransactionInnerTx {
11488 EnvelopeTypeTx(TransactionV1Envelope),
11489 Default(EnvelopeType),
11490}
11491
11492impl XdrCodec for FeeBumpTransactionInnerTx {
11493 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11494 match self {
11495 FeeBumpTransactionInnerTx::EnvelopeTypeTx(value) => {
11496 EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
11497 value.to_xdr_buffered(write_stream)
11498 },
11499 FeeBumpTransactionInnerTx::Default(code) => code.to_xdr_buffered(write_stream),
11500 }
11501 }
11502
11503 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11504 match EnvelopeType::from_xdr_buffered(read_stream)? {
11505 EnvelopeType::EnvelopeTypeTx =>
11506 Ok(FeeBumpTransactionInnerTx::EnvelopeTypeTx(TransactionV1Envelope::from_xdr_buffered(read_stream)?)),
11507 code => Ok(FeeBumpTransactionInnerTx::Default(code)),
11508 }
11509 }
11510}
11511
11512#[allow(dead_code)]
11514#[derive(Debug, Clone, Eq, PartialEq)]
11515pub enum FeeBumpTransactionExt {
11516 V0,
11517 Default(i32),
11518}
11519
11520impl XdrCodec for FeeBumpTransactionExt {
11521 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11522 match self {
11523 FeeBumpTransactionExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
11524 FeeBumpTransactionExt::Default(code) => code.to_xdr_buffered(write_stream),
11525 }
11526 }
11527
11528 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11529 match i32::from_xdr_buffered(read_stream)? {
11530 0 => Ok(FeeBumpTransactionExt::V0),
11531 code => Ok(FeeBumpTransactionExt::Default(code)),
11532 }
11533 }
11534}
11535
11536#[allow(dead_code)]
11538#[derive(Debug, Clone, Eq, PartialEq)]
11539pub enum TransactionEnvelope {
11540 EnvelopeTypeTxV0(TransactionV0Envelope),
11541 EnvelopeTypeTx(TransactionV1Envelope),
11542 EnvelopeTypeTxFeeBump(FeeBumpTransactionEnvelope),
11543 Default(EnvelopeType),
11544}
11545
11546impl XdrCodec for TransactionEnvelope {
11547 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11548 match self {
11549 TransactionEnvelope::EnvelopeTypeTxV0(value) => {
11550 EnvelopeType::EnvelopeTypeTxV0.to_xdr_buffered(write_stream);
11551 value.to_xdr_buffered(write_stream)
11552 },
11553 TransactionEnvelope::EnvelopeTypeTx(value) => {
11554 EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
11555 value.to_xdr_buffered(write_stream)
11556 },
11557 TransactionEnvelope::EnvelopeTypeTxFeeBump(value) => {
11558 EnvelopeType::EnvelopeTypeTxFeeBump.to_xdr_buffered(write_stream);
11559 value.to_xdr_buffered(write_stream)
11560 },
11561 TransactionEnvelope::Default(code) => code.to_xdr_buffered(write_stream),
11562 }
11563 }
11564
11565 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11566 match EnvelopeType::from_xdr_buffered(read_stream)? {
11567 EnvelopeType::EnvelopeTypeTxV0 =>
11568 Ok(TransactionEnvelope::EnvelopeTypeTxV0(TransactionV0Envelope::from_xdr_buffered(read_stream)?)),
11569 EnvelopeType::EnvelopeTypeTx =>
11570 Ok(TransactionEnvelope::EnvelopeTypeTx(TransactionV1Envelope::from_xdr_buffered(read_stream)?)),
11571 EnvelopeType::EnvelopeTypeTxFeeBump => Ok(TransactionEnvelope::EnvelopeTypeTxFeeBump(
11572 FeeBumpTransactionEnvelope::from_xdr_buffered(read_stream)?,
11573 )),
11574 code => Ok(TransactionEnvelope::Default(code)),
11575 }
11576 }
11577}
11578
11579#[allow(dead_code)]
11581#[derive(Debug, Clone, Eq, PartialEq)]
11582pub enum TransactionSignaturePayloadTaggedTransaction {
11583 EnvelopeTypeTx(Transaction),
11584 EnvelopeTypeTxFeeBump(FeeBumpTransaction),
11585 Default(EnvelopeType),
11586}
11587
11588impl XdrCodec for TransactionSignaturePayloadTaggedTransaction {
11589 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11590 match self {
11591 TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTx(value) => {
11592 EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
11593 value.to_xdr_buffered(write_stream)
11594 },
11595 TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTxFeeBump(value) => {
11596 EnvelopeType::EnvelopeTypeTxFeeBump.to_xdr_buffered(write_stream);
11597 value.to_xdr_buffered(write_stream)
11598 },
11599 TransactionSignaturePayloadTaggedTransaction::Default(code) => code.to_xdr_buffered(write_stream),
11600 }
11601 }
11602
11603 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11604 match EnvelopeType::from_xdr_buffered(read_stream)? {
11605 EnvelopeType::EnvelopeTypeTx => Ok(TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTx(
11606 Transaction::from_xdr_buffered(read_stream)?,
11607 )),
11608 EnvelopeType::EnvelopeTypeTxFeeBump =>
11609 Ok(TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTxFeeBump(
11610 FeeBumpTransaction::from_xdr_buffered(read_stream)?,
11611 )),
11612 code => Ok(TransactionSignaturePayloadTaggedTransaction::Default(code)),
11613 }
11614 }
11615}
11616
11617#[allow(dead_code)]
11619#[derive(Debug, Clone, Eq, PartialEq)]
11620pub enum ClaimAtom {
11621 ClaimAtomTypeV0(ClaimOfferAtomV0),
11622 ClaimAtomTypeOrderBook(ClaimOfferAtom),
11623 ClaimAtomTypeLiquidityPool(ClaimLiquidityAtom),
11624}
11625
11626impl XdrCodec for ClaimAtom {
11627 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11628 match self {
11629 ClaimAtom::ClaimAtomTypeV0(value) => {
11630 ClaimAtomType::ClaimAtomTypeV0.to_xdr_buffered(write_stream);
11631 value.to_xdr_buffered(write_stream)
11632 },
11633 ClaimAtom::ClaimAtomTypeOrderBook(value) => {
11634 ClaimAtomType::ClaimAtomTypeOrderBook.to_xdr_buffered(write_stream);
11635 value.to_xdr_buffered(write_stream)
11636 },
11637 ClaimAtom::ClaimAtomTypeLiquidityPool(value) => {
11638 ClaimAtomType::ClaimAtomTypeLiquidityPool.to_xdr_buffered(write_stream);
11639 value.to_xdr_buffered(write_stream)
11640 },
11641 }
11642 }
11643
11644 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11645 match ClaimAtomType::from_xdr_buffered(read_stream)? {
11646 ClaimAtomType::ClaimAtomTypeV0 =>
11647 Ok(ClaimAtom::ClaimAtomTypeV0(ClaimOfferAtomV0::from_xdr_buffered(read_stream)?)),
11648 ClaimAtomType::ClaimAtomTypeOrderBook =>
11649 Ok(ClaimAtom::ClaimAtomTypeOrderBook(ClaimOfferAtom::from_xdr_buffered(read_stream)?)),
11650 ClaimAtomType::ClaimAtomTypeLiquidityPool =>
11651 Ok(ClaimAtom::ClaimAtomTypeLiquidityPool(ClaimLiquidityAtom::from_xdr_buffered(read_stream)?)),
11652 }
11653 }
11654}
11655
11656#[allow(dead_code)]
11658#[derive(Debug, Clone, Eq, PartialEq)]
11659pub enum CreateAccountResult {
11660 CreateAccountSuccess,
11661 CreateAccountMalformed,
11662 CreateAccountUnderfunded,
11663 CreateAccountLowReserve,
11664 CreateAccountAlreadyExist,
11665}
11666
11667impl XdrCodec for CreateAccountResult {
11668 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11669 match self {
11670 CreateAccountResult::CreateAccountSuccess =>
11671 CreateAccountResultCode::CreateAccountSuccess.to_xdr_buffered(write_stream),
11672 CreateAccountResult::CreateAccountMalformed =>
11673 CreateAccountResultCode::CreateAccountMalformed.to_xdr_buffered(write_stream),
11674 CreateAccountResult::CreateAccountUnderfunded =>
11675 CreateAccountResultCode::CreateAccountUnderfunded.to_xdr_buffered(write_stream),
11676 CreateAccountResult::CreateAccountLowReserve =>
11677 CreateAccountResultCode::CreateAccountLowReserve.to_xdr_buffered(write_stream),
11678 CreateAccountResult::CreateAccountAlreadyExist =>
11679 CreateAccountResultCode::CreateAccountAlreadyExist.to_xdr_buffered(write_stream),
11680 }
11681 }
11682
11683 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11684 match CreateAccountResultCode::from_xdr_buffered(read_stream)? {
11685 CreateAccountResultCode::CreateAccountSuccess => Ok(CreateAccountResult::CreateAccountSuccess),
11686 CreateAccountResultCode::CreateAccountMalformed => Ok(CreateAccountResult::CreateAccountMalformed),
11687 CreateAccountResultCode::CreateAccountUnderfunded => Ok(CreateAccountResult::CreateAccountUnderfunded),
11688 CreateAccountResultCode::CreateAccountLowReserve => Ok(CreateAccountResult::CreateAccountLowReserve),
11689 CreateAccountResultCode::CreateAccountAlreadyExist => Ok(CreateAccountResult::CreateAccountAlreadyExist),
11690 }
11691 }
11692}
11693
11694#[allow(dead_code)]
11696#[derive(Debug, Clone, Eq, PartialEq)]
11697pub enum PaymentResult {
11698 PaymentSuccess,
11699 PaymentMalformed,
11700 PaymentUnderfunded,
11701 PaymentSrcNoTrust,
11702 PaymentSrcNotAuthorized,
11703 PaymentNoDestination,
11704 PaymentNoTrust,
11705 PaymentNotAuthorized,
11706 PaymentLineFull,
11707 PaymentNoIssuer,
11708}
11709
11710impl XdrCodec for PaymentResult {
11711 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11712 match self {
11713 PaymentResult::PaymentSuccess => PaymentResultCode::PaymentSuccess.to_xdr_buffered(write_stream),
11714 PaymentResult::PaymentMalformed => PaymentResultCode::PaymentMalformed.to_xdr_buffered(write_stream),
11715 PaymentResult::PaymentUnderfunded => PaymentResultCode::PaymentUnderfunded.to_xdr_buffered(write_stream),
11716 PaymentResult::PaymentSrcNoTrust => PaymentResultCode::PaymentSrcNoTrust.to_xdr_buffered(write_stream),
11717 PaymentResult::PaymentSrcNotAuthorized =>
11718 PaymentResultCode::PaymentSrcNotAuthorized.to_xdr_buffered(write_stream),
11719 PaymentResult::PaymentNoDestination =>
11720 PaymentResultCode::PaymentNoDestination.to_xdr_buffered(write_stream),
11721 PaymentResult::PaymentNoTrust => PaymentResultCode::PaymentNoTrust.to_xdr_buffered(write_stream),
11722 PaymentResult::PaymentNotAuthorized =>
11723 PaymentResultCode::PaymentNotAuthorized.to_xdr_buffered(write_stream),
11724 PaymentResult::PaymentLineFull => PaymentResultCode::PaymentLineFull.to_xdr_buffered(write_stream),
11725 PaymentResult::PaymentNoIssuer => PaymentResultCode::PaymentNoIssuer.to_xdr_buffered(write_stream),
11726 }
11727 }
11728
11729 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11730 match PaymentResultCode::from_xdr_buffered(read_stream)? {
11731 PaymentResultCode::PaymentSuccess => Ok(PaymentResult::PaymentSuccess),
11732 PaymentResultCode::PaymentMalformed => Ok(PaymentResult::PaymentMalformed),
11733 PaymentResultCode::PaymentUnderfunded => Ok(PaymentResult::PaymentUnderfunded),
11734 PaymentResultCode::PaymentSrcNoTrust => Ok(PaymentResult::PaymentSrcNoTrust),
11735 PaymentResultCode::PaymentSrcNotAuthorized => Ok(PaymentResult::PaymentSrcNotAuthorized),
11736 PaymentResultCode::PaymentNoDestination => Ok(PaymentResult::PaymentNoDestination),
11737 PaymentResultCode::PaymentNoTrust => Ok(PaymentResult::PaymentNoTrust),
11738 PaymentResultCode::PaymentNotAuthorized => Ok(PaymentResult::PaymentNotAuthorized),
11739 PaymentResultCode::PaymentLineFull => Ok(PaymentResult::PaymentLineFull),
11740 PaymentResultCode::PaymentNoIssuer => Ok(PaymentResult::PaymentNoIssuer),
11741 }
11742 }
11743}
11744
11745#[allow(dead_code)]
11747#[derive(Debug, Clone, Eq, PartialEq)]
11748pub enum PathPaymentStrictReceiveResult {
11749 PathPaymentStrictReceiveSuccess(PathPaymentStrictReceiveResultSuccess),
11750 PathPaymentStrictReceiveMalformed,
11751 PathPaymentStrictReceiveUnderfunded,
11752 PathPaymentStrictReceiveSrcNoTrust,
11753 PathPaymentStrictReceiveSrcNotAuthorized,
11754 PathPaymentStrictReceiveNoDestination,
11755 PathPaymentStrictReceiveNoTrust,
11756 PathPaymentStrictReceiveNotAuthorized,
11757 PathPaymentStrictReceiveLineFull,
11758 PathPaymentStrictReceiveNoIssuer(Asset),
11759 PathPaymentStrictReceiveTooFewOffers,
11760 PathPaymentStrictReceiveOfferCrossSelf,
11761 PathPaymentStrictReceiveOverSendmax,
11762}
11763
11764impl XdrCodec for PathPaymentStrictReceiveResult {
11765 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11766 match self {
11767 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSuccess(value) => {
11768 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess.to_xdr_buffered(write_stream);
11769 value.to_xdr_buffered(write_stream)
11770 },
11771 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveMalformed =>
11772 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveMalformed.to_xdr_buffered(write_stream),
11773 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveUnderfunded =>
11774 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveUnderfunded.to_xdr_buffered(write_stream),
11775 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSrcNoTrust =>
11776 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNoTrust.to_xdr_buffered(write_stream),
11777 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSrcNotAuthorized =>
11778 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNotAuthorized
11779 .to_xdr_buffered(write_stream),
11780 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoDestination =>
11781 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoDestination.to_xdr_buffered(write_stream),
11782 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoTrust =>
11783 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoTrust.to_xdr_buffered(write_stream),
11784 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNotAuthorized =>
11785 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNotAuthorized.to_xdr_buffered(write_stream),
11786 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveLineFull =>
11787 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveLineFull.to_xdr_buffered(write_stream),
11788 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoIssuer(value) => {
11789 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer.to_xdr_buffered(write_stream);
11790 value.to_xdr_buffered(write_stream)
11791 },
11792 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveTooFewOffers =>
11793 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveTooFewOffers.to_xdr_buffered(write_stream),
11794 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveOfferCrossSelf =>
11795 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOfferCrossSelf.to_xdr_buffered(write_stream),
11796 PathPaymentStrictReceiveResult::PathPaymentStrictReceiveOverSendmax =>
11797 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOverSendmax.to_xdr_buffered(write_stream),
11798 }
11799 }
11800
11801 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11802 match PathPaymentStrictReceiveResultCode::from_xdr_buffered(read_stream)? {
11803 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess =>
11804 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSuccess(
11805 PathPaymentStrictReceiveResultSuccess::from_xdr_buffered(read_stream)?,
11806 )),
11807 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveMalformed =>
11808 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveMalformed),
11809 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveUnderfunded =>
11810 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveUnderfunded),
11811 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNoTrust =>
11812 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSrcNoTrust),
11813 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNotAuthorized =>
11814 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSrcNotAuthorized),
11815 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoDestination =>
11816 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoDestination),
11817 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoTrust =>
11818 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoTrust),
11819 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNotAuthorized =>
11820 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNotAuthorized),
11821 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveLineFull =>
11822 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveLineFull),
11823 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer =>
11824 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoIssuer(Asset::from_xdr_buffered(
11825 read_stream,
11826 )?)),
11827 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveTooFewOffers =>
11828 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveTooFewOffers),
11829 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOfferCrossSelf =>
11830 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveOfferCrossSelf),
11831 PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOverSendmax =>
11832 Ok(PathPaymentStrictReceiveResult::PathPaymentStrictReceiveOverSendmax),
11833 }
11834 }
11835}
11836
11837#[allow(dead_code)]
11839#[derive(Debug, Clone, Eq, PartialEq)]
11840pub enum PathPaymentStrictSendResult {
11841 PathPaymentStrictSendSuccess(PathPaymentStrictSendResultSuccess),
11842 PathPaymentStrictSendMalformed,
11843 PathPaymentStrictSendUnderfunded,
11844 PathPaymentStrictSendSrcNoTrust,
11845 PathPaymentStrictSendSrcNotAuthorized,
11846 PathPaymentStrictSendNoDestination,
11847 PathPaymentStrictSendNoTrust,
11848 PathPaymentStrictSendNotAuthorized,
11849 PathPaymentStrictSendLineFull,
11850 PathPaymentStrictSendNoIssuer(Asset),
11851 PathPaymentStrictSendTooFewOffers,
11852 PathPaymentStrictSendOfferCrossSelf,
11853 PathPaymentStrictSendUnderDestmin,
11854}
11855
11856impl XdrCodec for PathPaymentStrictSendResult {
11857 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11858 match self {
11859 PathPaymentStrictSendResult::PathPaymentStrictSendSuccess(value) => {
11860 PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess.to_xdr_buffered(write_stream);
11861 value.to_xdr_buffered(write_stream)
11862 },
11863 PathPaymentStrictSendResult::PathPaymentStrictSendMalformed =>
11864 PathPaymentStrictSendResultCode::PathPaymentStrictSendMalformed.to_xdr_buffered(write_stream),
11865 PathPaymentStrictSendResult::PathPaymentStrictSendUnderfunded =>
11866 PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderfunded.to_xdr_buffered(write_stream),
11867 PathPaymentStrictSendResult::PathPaymentStrictSendSrcNoTrust =>
11868 PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNoTrust.to_xdr_buffered(write_stream),
11869 PathPaymentStrictSendResult::PathPaymentStrictSendSrcNotAuthorized =>
11870 PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNotAuthorized.to_xdr_buffered(write_stream),
11871 PathPaymentStrictSendResult::PathPaymentStrictSendNoDestination =>
11872 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoDestination.to_xdr_buffered(write_stream),
11873 PathPaymentStrictSendResult::PathPaymentStrictSendNoTrust =>
11874 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoTrust.to_xdr_buffered(write_stream),
11875 PathPaymentStrictSendResult::PathPaymentStrictSendNotAuthorized =>
11876 PathPaymentStrictSendResultCode::PathPaymentStrictSendNotAuthorized.to_xdr_buffered(write_stream),
11877 PathPaymentStrictSendResult::PathPaymentStrictSendLineFull =>
11878 PathPaymentStrictSendResultCode::PathPaymentStrictSendLineFull.to_xdr_buffered(write_stream),
11879 PathPaymentStrictSendResult::PathPaymentStrictSendNoIssuer(value) => {
11880 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer.to_xdr_buffered(write_stream);
11881 value.to_xdr_buffered(write_stream)
11882 },
11883 PathPaymentStrictSendResult::PathPaymentStrictSendTooFewOffers =>
11884 PathPaymentStrictSendResultCode::PathPaymentStrictSendTooFewOffers.to_xdr_buffered(write_stream),
11885 PathPaymentStrictSendResult::PathPaymentStrictSendOfferCrossSelf =>
11886 PathPaymentStrictSendResultCode::PathPaymentStrictSendOfferCrossSelf.to_xdr_buffered(write_stream),
11887 PathPaymentStrictSendResult::PathPaymentStrictSendUnderDestmin =>
11888 PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderDestmin.to_xdr_buffered(write_stream),
11889 }
11890 }
11891
11892 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11893 match PathPaymentStrictSendResultCode::from_xdr_buffered(read_stream)? {
11894 PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess =>
11895 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendSuccess(
11896 PathPaymentStrictSendResultSuccess::from_xdr_buffered(read_stream)?,
11897 )),
11898 PathPaymentStrictSendResultCode::PathPaymentStrictSendMalformed =>
11899 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendMalformed),
11900 PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderfunded =>
11901 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendUnderfunded),
11902 PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNoTrust =>
11903 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendSrcNoTrust),
11904 PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNotAuthorized =>
11905 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendSrcNotAuthorized),
11906 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoDestination =>
11907 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendNoDestination),
11908 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoTrust =>
11909 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendNoTrust),
11910 PathPaymentStrictSendResultCode::PathPaymentStrictSendNotAuthorized =>
11911 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendNotAuthorized),
11912 PathPaymentStrictSendResultCode::PathPaymentStrictSendLineFull =>
11913 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendLineFull),
11914 PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer =>
11915 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendNoIssuer(Asset::from_xdr_buffered(read_stream)?)),
11916 PathPaymentStrictSendResultCode::PathPaymentStrictSendTooFewOffers =>
11917 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendTooFewOffers),
11918 PathPaymentStrictSendResultCode::PathPaymentStrictSendOfferCrossSelf =>
11919 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendOfferCrossSelf),
11920 PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderDestmin =>
11921 Ok(PathPaymentStrictSendResult::PathPaymentStrictSendUnderDestmin),
11922 }
11923 }
11924}
11925
11926#[allow(dead_code)]
11928#[derive(Debug, Clone, Eq, PartialEq)]
11929pub enum ManageOfferSuccessResultOffer {
11930 ManageOfferCreated(OfferEntry),
11931 ManageOfferUpdated(OfferEntry),
11932 ManageOfferDeleted,
11933}
11934
11935impl XdrCodec for ManageOfferSuccessResultOffer {
11936 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11937 match self {
11938 ManageOfferSuccessResultOffer::ManageOfferCreated(value) => {
11939 ManageOfferEffect::ManageOfferCreated.to_xdr_buffered(write_stream);
11940 value.to_xdr_buffered(write_stream)
11941 },
11942 ManageOfferSuccessResultOffer::ManageOfferUpdated(value) => {
11943 ManageOfferEffect::ManageOfferUpdated.to_xdr_buffered(write_stream);
11944 value.to_xdr_buffered(write_stream)
11945 },
11946 ManageOfferSuccessResultOffer::ManageOfferDeleted =>
11947 ManageOfferEffect::ManageOfferDeleted.to_xdr_buffered(write_stream),
11948 }
11949 }
11950
11951 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
11952 match ManageOfferEffect::from_xdr_buffered(read_stream)? {
11953 ManageOfferEffect::ManageOfferCreated =>
11954 Ok(ManageOfferSuccessResultOffer::ManageOfferCreated(OfferEntry::from_xdr_buffered(read_stream)?)),
11955 ManageOfferEffect::ManageOfferUpdated =>
11956 Ok(ManageOfferSuccessResultOffer::ManageOfferUpdated(OfferEntry::from_xdr_buffered(read_stream)?)),
11957 ManageOfferEffect::ManageOfferDeleted => Ok(ManageOfferSuccessResultOffer::ManageOfferDeleted),
11958 }
11959 }
11960}
11961
11962#[allow(dead_code)]
11964#[derive(Debug, Clone, Eq, PartialEq)]
11965pub enum ManageSellOfferResult {
11966 ManageSellOfferSuccess(ManageOfferSuccessResult),
11967 ManageSellOfferMalformed,
11968 ManageSellOfferSellNoTrust,
11969 ManageSellOfferBuyNoTrust,
11970 ManageSellOfferSellNotAuthorized,
11971 ManageSellOfferBuyNotAuthorized,
11972 ManageSellOfferLineFull,
11973 ManageSellOfferUnderfunded,
11974 ManageSellOfferCrossSelf,
11975 ManageSellOfferSellNoIssuer,
11976 ManageSellOfferBuyNoIssuer,
11977 ManageSellOfferNotFound,
11978 ManageSellOfferLowReserve,
11979}
11980
11981impl XdrCodec for ManageSellOfferResult {
11982 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
11983 match self {
11984 ManageSellOfferResult::ManageSellOfferSuccess(value) => {
11985 ManageSellOfferResultCode::ManageSellOfferSuccess.to_xdr_buffered(write_stream);
11986 value.to_xdr_buffered(write_stream)
11987 },
11988 ManageSellOfferResult::ManageSellOfferMalformed =>
11989 ManageSellOfferResultCode::ManageSellOfferMalformed.to_xdr_buffered(write_stream),
11990 ManageSellOfferResult::ManageSellOfferSellNoTrust =>
11991 ManageSellOfferResultCode::ManageSellOfferSellNoTrust.to_xdr_buffered(write_stream),
11992 ManageSellOfferResult::ManageSellOfferBuyNoTrust =>
11993 ManageSellOfferResultCode::ManageSellOfferBuyNoTrust.to_xdr_buffered(write_stream),
11994 ManageSellOfferResult::ManageSellOfferSellNotAuthorized =>
11995 ManageSellOfferResultCode::ManageSellOfferSellNotAuthorized.to_xdr_buffered(write_stream),
11996 ManageSellOfferResult::ManageSellOfferBuyNotAuthorized =>
11997 ManageSellOfferResultCode::ManageSellOfferBuyNotAuthorized.to_xdr_buffered(write_stream),
11998 ManageSellOfferResult::ManageSellOfferLineFull =>
11999 ManageSellOfferResultCode::ManageSellOfferLineFull.to_xdr_buffered(write_stream),
12000 ManageSellOfferResult::ManageSellOfferUnderfunded =>
12001 ManageSellOfferResultCode::ManageSellOfferUnderfunded.to_xdr_buffered(write_stream),
12002 ManageSellOfferResult::ManageSellOfferCrossSelf =>
12003 ManageSellOfferResultCode::ManageSellOfferCrossSelf.to_xdr_buffered(write_stream),
12004 ManageSellOfferResult::ManageSellOfferSellNoIssuer =>
12005 ManageSellOfferResultCode::ManageSellOfferSellNoIssuer.to_xdr_buffered(write_stream),
12006 ManageSellOfferResult::ManageSellOfferBuyNoIssuer =>
12007 ManageSellOfferResultCode::ManageSellOfferBuyNoIssuer.to_xdr_buffered(write_stream),
12008 ManageSellOfferResult::ManageSellOfferNotFound =>
12009 ManageSellOfferResultCode::ManageSellOfferNotFound.to_xdr_buffered(write_stream),
12010 ManageSellOfferResult::ManageSellOfferLowReserve =>
12011 ManageSellOfferResultCode::ManageSellOfferLowReserve.to_xdr_buffered(write_stream),
12012 }
12013 }
12014
12015 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12016 match ManageSellOfferResultCode::from_xdr_buffered(read_stream)? {
12017 ManageSellOfferResultCode::ManageSellOfferSuccess => Ok(ManageSellOfferResult::ManageSellOfferSuccess(
12018 ManageOfferSuccessResult::from_xdr_buffered(read_stream)?,
12019 )),
12020 ManageSellOfferResultCode::ManageSellOfferMalformed => Ok(ManageSellOfferResult::ManageSellOfferMalformed),
12021 ManageSellOfferResultCode::ManageSellOfferSellNoTrust =>
12022 Ok(ManageSellOfferResult::ManageSellOfferSellNoTrust),
12023 ManageSellOfferResultCode::ManageSellOfferBuyNoTrust =>
12024 Ok(ManageSellOfferResult::ManageSellOfferBuyNoTrust),
12025 ManageSellOfferResultCode::ManageSellOfferSellNotAuthorized =>
12026 Ok(ManageSellOfferResult::ManageSellOfferSellNotAuthorized),
12027 ManageSellOfferResultCode::ManageSellOfferBuyNotAuthorized =>
12028 Ok(ManageSellOfferResult::ManageSellOfferBuyNotAuthorized),
12029 ManageSellOfferResultCode::ManageSellOfferLineFull => Ok(ManageSellOfferResult::ManageSellOfferLineFull),
12030 ManageSellOfferResultCode::ManageSellOfferUnderfunded =>
12031 Ok(ManageSellOfferResult::ManageSellOfferUnderfunded),
12032 ManageSellOfferResultCode::ManageSellOfferCrossSelf => Ok(ManageSellOfferResult::ManageSellOfferCrossSelf),
12033 ManageSellOfferResultCode::ManageSellOfferSellNoIssuer =>
12034 Ok(ManageSellOfferResult::ManageSellOfferSellNoIssuer),
12035 ManageSellOfferResultCode::ManageSellOfferBuyNoIssuer =>
12036 Ok(ManageSellOfferResult::ManageSellOfferBuyNoIssuer),
12037 ManageSellOfferResultCode::ManageSellOfferNotFound => Ok(ManageSellOfferResult::ManageSellOfferNotFound),
12038 ManageSellOfferResultCode::ManageSellOfferLowReserve =>
12039 Ok(ManageSellOfferResult::ManageSellOfferLowReserve),
12040 }
12041 }
12042}
12043
12044#[allow(dead_code)]
12046#[derive(Debug, Clone, Eq, PartialEq)]
12047pub enum ManageBuyOfferResult {
12048 ManageBuyOfferSuccess(ManageOfferSuccessResult),
12049 ManageBuyOfferMalformed,
12050 ManageBuyOfferSellNoTrust,
12051 ManageBuyOfferBuyNoTrust,
12052 ManageBuyOfferSellNotAuthorized,
12053 ManageBuyOfferBuyNotAuthorized,
12054 ManageBuyOfferLineFull,
12055 ManageBuyOfferUnderfunded,
12056 ManageBuyOfferCrossSelf,
12057 ManageBuyOfferSellNoIssuer,
12058 ManageBuyOfferBuyNoIssuer,
12059 ManageBuyOfferNotFound,
12060 ManageBuyOfferLowReserve,
12061}
12062
12063impl XdrCodec for ManageBuyOfferResult {
12064 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12065 match self {
12066 ManageBuyOfferResult::ManageBuyOfferSuccess(value) => {
12067 ManageBuyOfferResultCode::ManageBuyOfferSuccess.to_xdr_buffered(write_stream);
12068 value.to_xdr_buffered(write_stream)
12069 },
12070 ManageBuyOfferResult::ManageBuyOfferMalformed =>
12071 ManageBuyOfferResultCode::ManageBuyOfferMalformed.to_xdr_buffered(write_stream),
12072 ManageBuyOfferResult::ManageBuyOfferSellNoTrust =>
12073 ManageBuyOfferResultCode::ManageBuyOfferSellNoTrust.to_xdr_buffered(write_stream),
12074 ManageBuyOfferResult::ManageBuyOfferBuyNoTrust =>
12075 ManageBuyOfferResultCode::ManageBuyOfferBuyNoTrust.to_xdr_buffered(write_stream),
12076 ManageBuyOfferResult::ManageBuyOfferSellNotAuthorized =>
12077 ManageBuyOfferResultCode::ManageBuyOfferSellNotAuthorized.to_xdr_buffered(write_stream),
12078 ManageBuyOfferResult::ManageBuyOfferBuyNotAuthorized =>
12079 ManageBuyOfferResultCode::ManageBuyOfferBuyNotAuthorized.to_xdr_buffered(write_stream),
12080 ManageBuyOfferResult::ManageBuyOfferLineFull =>
12081 ManageBuyOfferResultCode::ManageBuyOfferLineFull.to_xdr_buffered(write_stream),
12082 ManageBuyOfferResult::ManageBuyOfferUnderfunded =>
12083 ManageBuyOfferResultCode::ManageBuyOfferUnderfunded.to_xdr_buffered(write_stream),
12084 ManageBuyOfferResult::ManageBuyOfferCrossSelf =>
12085 ManageBuyOfferResultCode::ManageBuyOfferCrossSelf.to_xdr_buffered(write_stream),
12086 ManageBuyOfferResult::ManageBuyOfferSellNoIssuer =>
12087 ManageBuyOfferResultCode::ManageBuyOfferSellNoIssuer.to_xdr_buffered(write_stream),
12088 ManageBuyOfferResult::ManageBuyOfferBuyNoIssuer =>
12089 ManageBuyOfferResultCode::ManageBuyOfferBuyNoIssuer.to_xdr_buffered(write_stream),
12090 ManageBuyOfferResult::ManageBuyOfferNotFound =>
12091 ManageBuyOfferResultCode::ManageBuyOfferNotFound.to_xdr_buffered(write_stream),
12092 ManageBuyOfferResult::ManageBuyOfferLowReserve =>
12093 ManageBuyOfferResultCode::ManageBuyOfferLowReserve.to_xdr_buffered(write_stream),
12094 }
12095 }
12096
12097 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12098 match ManageBuyOfferResultCode::from_xdr_buffered(read_stream)? {
12099 ManageBuyOfferResultCode::ManageBuyOfferSuccess => Ok(ManageBuyOfferResult::ManageBuyOfferSuccess(
12100 ManageOfferSuccessResult::from_xdr_buffered(read_stream)?,
12101 )),
12102 ManageBuyOfferResultCode::ManageBuyOfferMalformed => Ok(ManageBuyOfferResult::ManageBuyOfferMalformed),
12103 ManageBuyOfferResultCode::ManageBuyOfferSellNoTrust => Ok(ManageBuyOfferResult::ManageBuyOfferSellNoTrust),
12104 ManageBuyOfferResultCode::ManageBuyOfferBuyNoTrust => Ok(ManageBuyOfferResult::ManageBuyOfferBuyNoTrust),
12105 ManageBuyOfferResultCode::ManageBuyOfferSellNotAuthorized =>
12106 Ok(ManageBuyOfferResult::ManageBuyOfferSellNotAuthorized),
12107 ManageBuyOfferResultCode::ManageBuyOfferBuyNotAuthorized =>
12108 Ok(ManageBuyOfferResult::ManageBuyOfferBuyNotAuthorized),
12109 ManageBuyOfferResultCode::ManageBuyOfferLineFull => Ok(ManageBuyOfferResult::ManageBuyOfferLineFull),
12110 ManageBuyOfferResultCode::ManageBuyOfferUnderfunded => Ok(ManageBuyOfferResult::ManageBuyOfferUnderfunded),
12111 ManageBuyOfferResultCode::ManageBuyOfferCrossSelf => Ok(ManageBuyOfferResult::ManageBuyOfferCrossSelf),
12112 ManageBuyOfferResultCode::ManageBuyOfferSellNoIssuer =>
12113 Ok(ManageBuyOfferResult::ManageBuyOfferSellNoIssuer),
12114 ManageBuyOfferResultCode::ManageBuyOfferBuyNoIssuer => Ok(ManageBuyOfferResult::ManageBuyOfferBuyNoIssuer),
12115 ManageBuyOfferResultCode::ManageBuyOfferNotFound => Ok(ManageBuyOfferResult::ManageBuyOfferNotFound),
12116 ManageBuyOfferResultCode::ManageBuyOfferLowReserve => Ok(ManageBuyOfferResult::ManageBuyOfferLowReserve),
12117 }
12118 }
12119}
12120
12121#[allow(dead_code)]
12123#[derive(Debug, Clone, Eq, PartialEq)]
12124pub enum SetOptionsResult {
12125 SetOptionsSuccess,
12126 SetOptionsLowReserve,
12127 SetOptionsTooManySigners,
12128 SetOptionsBadFlags,
12129 SetOptionsInvalidInflation,
12130 SetOptionsCantChange,
12131 SetOptionsUnknownFlag,
12132 SetOptionsThresholdOutOfRange,
12133 SetOptionsBadSigner,
12134 SetOptionsInvalidHomeDomain,
12135 SetOptionsAuthRevocableRequired,
12136}
12137
12138impl XdrCodec for SetOptionsResult {
12139 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12140 match self {
12141 SetOptionsResult::SetOptionsSuccess =>
12142 SetOptionsResultCode::SetOptionsSuccess.to_xdr_buffered(write_stream),
12143 SetOptionsResult::SetOptionsLowReserve =>
12144 SetOptionsResultCode::SetOptionsLowReserve.to_xdr_buffered(write_stream),
12145 SetOptionsResult::SetOptionsTooManySigners =>
12146 SetOptionsResultCode::SetOptionsTooManySigners.to_xdr_buffered(write_stream),
12147 SetOptionsResult::SetOptionsBadFlags =>
12148 SetOptionsResultCode::SetOptionsBadFlags.to_xdr_buffered(write_stream),
12149 SetOptionsResult::SetOptionsInvalidInflation =>
12150 SetOptionsResultCode::SetOptionsInvalidInflation.to_xdr_buffered(write_stream),
12151 SetOptionsResult::SetOptionsCantChange =>
12152 SetOptionsResultCode::SetOptionsCantChange.to_xdr_buffered(write_stream),
12153 SetOptionsResult::SetOptionsUnknownFlag =>
12154 SetOptionsResultCode::SetOptionsUnknownFlag.to_xdr_buffered(write_stream),
12155 SetOptionsResult::SetOptionsThresholdOutOfRange =>
12156 SetOptionsResultCode::SetOptionsThresholdOutOfRange.to_xdr_buffered(write_stream),
12157 SetOptionsResult::SetOptionsBadSigner =>
12158 SetOptionsResultCode::SetOptionsBadSigner.to_xdr_buffered(write_stream),
12159 SetOptionsResult::SetOptionsInvalidHomeDomain =>
12160 SetOptionsResultCode::SetOptionsInvalidHomeDomain.to_xdr_buffered(write_stream),
12161 SetOptionsResult::SetOptionsAuthRevocableRequired =>
12162 SetOptionsResultCode::SetOptionsAuthRevocableRequired.to_xdr_buffered(write_stream),
12163 }
12164 }
12165
12166 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12167 match SetOptionsResultCode::from_xdr_buffered(read_stream)? {
12168 SetOptionsResultCode::SetOptionsSuccess => Ok(SetOptionsResult::SetOptionsSuccess),
12169 SetOptionsResultCode::SetOptionsLowReserve => Ok(SetOptionsResult::SetOptionsLowReserve),
12170 SetOptionsResultCode::SetOptionsTooManySigners => Ok(SetOptionsResult::SetOptionsTooManySigners),
12171 SetOptionsResultCode::SetOptionsBadFlags => Ok(SetOptionsResult::SetOptionsBadFlags),
12172 SetOptionsResultCode::SetOptionsInvalidInflation => Ok(SetOptionsResult::SetOptionsInvalidInflation),
12173 SetOptionsResultCode::SetOptionsCantChange => Ok(SetOptionsResult::SetOptionsCantChange),
12174 SetOptionsResultCode::SetOptionsUnknownFlag => Ok(SetOptionsResult::SetOptionsUnknownFlag),
12175 SetOptionsResultCode::SetOptionsThresholdOutOfRange => Ok(SetOptionsResult::SetOptionsThresholdOutOfRange),
12176 SetOptionsResultCode::SetOptionsBadSigner => Ok(SetOptionsResult::SetOptionsBadSigner),
12177 SetOptionsResultCode::SetOptionsInvalidHomeDomain => Ok(SetOptionsResult::SetOptionsInvalidHomeDomain),
12178 SetOptionsResultCode::SetOptionsAuthRevocableRequired =>
12179 Ok(SetOptionsResult::SetOptionsAuthRevocableRequired),
12180 }
12181 }
12182}
12183
12184#[allow(dead_code)]
12186#[derive(Debug, Clone, Eq, PartialEq)]
12187pub enum ChangeTrustResult {
12188 ChangeTrustSuccess,
12189 ChangeTrustMalformed,
12190 ChangeTrustNoIssuer,
12191 ChangeTrustInvalidLimit,
12192 ChangeTrustLowReserve,
12193 ChangeTrustSelfNotAllowed,
12194 ChangeTrustTrustLineMissing,
12195 ChangeTrustCannotDelete,
12196 ChangeTrustNotAuthMaintainLiabilities,
12197}
12198
12199impl XdrCodec for ChangeTrustResult {
12200 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12201 match self {
12202 ChangeTrustResult::ChangeTrustSuccess =>
12203 ChangeTrustResultCode::ChangeTrustSuccess.to_xdr_buffered(write_stream),
12204 ChangeTrustResult::ChangeTrustMalformed =>
12205 ChangeTrustResultCode::ChangeTrustMalformed.to_xdr_buffered(write_stream),
12206 ChangeTrustResult::ChangeTrustNoIssuer =>
12207 ChangeTrustResultCode::ChangeTrustNoIssuer.to_xdr_buffered(write_stream),
12208 ChangeTrustResult::ChangeTrustInvalidLimit =>
12209 ChangeTrustResultCode::ChangeTrustInvalidLimit.to_xdr_buffered(write_stream),
12210 ChangeTrustResult::ChangeTrustLowReserve =>
12211 ChangeTrustResultCode::ChangeTrustLowReserve.to_xdr_buffered(write_stream),
12212 ChangeTrustResult::ChangeTrustSelfNotAllowed =>
12213 ChangeTrustResultCode::ChangeTrustSelfNotAllowed.to_xdr_buffered(write_stream),
12214 ChangeTrustResult::ChangeTrustTrustLineMissing =>
12215 ChangeTrustResultCode::ChangeTrustTrustLineMissing.to_xdr_buffered(write_stream),
12216 ChangeTrustResult::ChangeTrustCannotDelete =>
12217 ChangeTrustResultCode::ChangeTrustCannotDelete.to_xdr_buffered(write_stream),
12218 ChangeTrustResult::ChangeTrustNotAuthMaintainLiabilities =>
12219 ChangeTrustResultCode::ChangeTrustNotAuthMaintainLiabilities.to_xdr_buffered(write_stream),
12220 }
12221 }
12222
12223 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12224 match ChangeTrustResultCode::from_xdr_buffered(read_stream)? {
12225 ChangeTrustResultCode::ChangeTrustSuccess => Ok(ChangeTrustResult::ChangeTrustSuccess),
12226 ChangeTrustResultCode::ChangeTrustMalformed => Ok(ChangeTrustResult::ChangeTrustMalformed),
12227 ChangeTrustResultCode::ChangeTrustNoIssuer => Ok(ChangeTrustResult::ChangeTrustNoIssuer),
12228 ChangeTrustResultCode::ChangeTrustInvalidLimit => Ok(ChangeTrustResult::ChangeTrustInvalidLimit),
12229 ChangeTrustResultCode::ChangeTrustLowReserve => Ok(ChangeTrustResult::ChangeTrustLowReserve),
12230 ChangeTrustResultCode::ChangeTrustSelfNotAllowed => Ok(ChangeTrustResult::ChangeTrustSelfNotAllowed),
12231 ChangeTrustResultCode::ChangeTrustTrustLineMissing => Ok(ChangeTrustResult::ChangeTrustTrustLineMissing),
12232 ChangeTrustResultCode::ChangeTrustCannotDelete => Ok(ChangeTrustResult::ChangeTrustCannotDelete),
12233 ChangeTrustResultCode::ChangeTrustNotAuthMaintainLiabilities =>
12234 Ok(ChangeTrustResult::ChangeTrustNotAuthMaintainLiabilities),
12235 }
12236 }
12237}
12238
12239#[allow(dead_code)]
12241#[derive(Debug, Clone, Eq, PartialEq)]
12242pub enum AllowTrustResult {
12243 AllowTrustSuccess,
12244 AllowTrustMalformed,
12245 AllowTrustNoTrustLine,
12246 AllowTrustTrustNotRequired,
12247 AllowTrustCantRevoke,
12248 AllowTrustSelfNotAllowed,
12249 AllowTrustLowReserve,
12250}
12251
12252impl XdrCodec for AllowTrustResult {
12253 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12254 match self {
12255 AllowTrustResult::AllowTrustSuccess =>
12256 AllowTrustResultCode::AllowTrustSuccess.to_xdr_buffered(write_stream),
12257 AllowTrustResult::AllowTrustMalformed =>
12258 AllowTrustResultCode::AllowTrustMalformed.to_xdr_buffered(write_stream),
12259 AllowTrustResult::AllowTrustNoTrustLine =>
12260 AllowTrustResultCode::AllowTrustNoTrustLine.to_xdr_buffered(write_stream),
12261 AllowTrustResult::AllowTrustTrustNotRequired =>
12262 AllowTrustResultCode::AllowTrustTrustNotRequired.to_xdr_buffered(write_stream),
12263 AllowTrustResult::AllowTrustCantRevoke =>
12264 AllowTrustResultCode::AllowTrustCantRevoke.to_xdr_buffered(write_stream),
12265 AllowTrustResult::AllowTrustSelfNotAllowed =>
12266 AllowTrustResultCode::AllowTrustSelfNotAllowed.to_xdr_buffered(write_stream),
12267 AllowTrustResult::AllowTrustLowReserve =>
12268 AllowTrustResultCode::AllowTrustLowReserve.to_xdr_buffered(write_stream),
12269 }
12270 }
12271
12272 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12273 match AllowTrustResultCode::from_xdr_buffered(read_stream)? {
12274 AllowTrustResultCode::AllowTrustSuccess => Ok(AllowTrustResult::AllowTrustSuccess),
12275 AllowTrustResultCode::AllowTrustMalformed => Ok(AllowTrustResult::AllowTrustMalformed),
12276 AllowTrustResultCode::AllowTrustNoTrustLine => Ok(AllowTrustResult::AllowTrustNoTrustLine),
12277 AllowTrustResultCode::AllowTrustTrustNotRequired => Ok(AllowTrustResult::AllowTrustTrustNotRequired),
12278 AllowTrustResultCode::AllowTrustCantRevoke => Ok(AllowTrustResult::AllowTrustCantRevoke),
12279 AllowTrustResultCode::AllowTrustSelfNotAllowed => Ok(AllowTrustResult::AllowTrustSelfNotAllowed),
12280 AllowTrustResultCode::AllowTrustLowReserve => Ok(AllowTrustResult::AllowTrustLowReserve),
12281 }
12282 }
12283}
12284
12285#[allow(dead_code)]
12287#[derive(Debug, Clone, Eq, PartialEq)]
12288pub enum AccountMergeResult {
12289 AccountMergeSuccess(Int64),
12290 AccountMergeMalformed,
12291 AccountMergeNoAccount,
12292 AccountMergeImmutableSet,
12293 AccountMergeHasSubEntries,
12294 AccountMergeSeqnumTooFar,
12295 AccountMergeDestFull,
12296 AccountMergeIsSponsor,
12297}
12298
12299impl XdrCodec for AccountMergeResult {
12300 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12301 match self {
12302 AccountMergeResult::AccountMergeSuccess(value) => {
12303 AccountMergeResultCode::AccountMergeSuccess.to_xdr_buffered(write_stream);
12304 value.to_xdr_buffered(write_stream)
12305 },
12306 AccountMergeResult::AccountMergeMalformed =>
12307 AccountMergeResultCode::AccountMergeMalformed.to_xdr_buffered(write_stream),
12308 AccountMergeResult::AccountMergeNoAccount =>
12309 AccountMergeResultCode::AccountMergeNoAccount.to_xdr_buffered(write_stream),
12310 AccountMergeResult::AccountMergeImmutableSet =>
12311 AccountMergeResultCode::AccountMergeImmutableSet.to_xdr_buffered(write_stream),
12312 AccountMergeResult::AccountMergeHasSubEntries =>
12313 AccountMergeResultCode::AccountMergeHasSubEntries.to_xdr_buffered(write_stream),
12314 AccountMergeResult::AccountMergeSeqnumTooFar =>
12315 AccountMergeResultCode::AccountMergeSeqnumTooFar.to_xdr_buffered(write_stream),
12316 AccountMergeResult::AccountMergeDestFull =>
12317 AccountMergeResultCode::AccountMergeDestFull.to_xdr_buffered(write_stream),
12318 AccountMergeResult::AccountMergeIsSponsor =>
12319 AccountMergeResultCode::AccountMergeIsSponsor.to_xdr_buffered(write_stream),
12320 }
12321 }
12322
12323 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12324 match AccountMergeResultCode::from_xdr_buffered(read_stream)? {
12325 AccountMergeResultCode::AccountMergeSuccess =>
12326 Ok(AccountMergeResult::AccountMergeSuccess(Int64::from_xdr_buffered(read_stream)?)),
12327 AccountMergeResultCode::AccountMergeMalformed => Ok(AccountMergeResult::AccountMergeMalformed),
12328 AccountMergeResultCode::AccountMergeNoAccount => Ok(AccountMergeResult::AccountMergeNoAccount),
12329 AccountMergeResultCode::AccountMergeImmutableSet => Ok(AccountMergeResult::AccountMergeImmutableSet),
12330 AccountMergeResultCode::AccountMergeHasSubEntries => Ok(AccountMergeResult::AccountMergeHasSubEntries),
12331 AccountMergeResultCode::AccountMergeSeqnumTooFar => Ok(AccountMergeResult::AccountMergeSeqnumTooFar),
12332 AccountMergeResultCode::AccountMergeDestFull => Ok(AccountMergeResult::AccountMergeDestFull),
12333 AccountMergeResultCode::AccountMergeIsSponsor => Ok(AccountMergeResult::AccountMergeIsSponsor),
12334 }
12335 }
12336}
12337
12338#[allow(dead_code)]
12340#[derive(Debug, Clone, Eq, PartialEq)]
12341pub enum InflationResult {
12342 InflationSuccess(UnlimitedVarArray<InflationPayout>),
12343 InflationNotTime,
12344}
12345
12346impl XdrCodec for InflationResult {
12347 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12348 match self {
12349 InflationResult::InflationSuccess(value) => {
12350 InflationResultCode::InflationSuccess.to_xdr_buffered(write_stream);
12351 value.to_xdr_buffered(write_stream)
12352 },
12353 InflationResult::InflationNotTime => InflationResultCode::InflationNotTime.to_xdr_buffered(write_stream),
12354 }
12355 }
12356
12357 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12358 match InflationResultCode::from_xdr_buffered(read_stream)? {
12359 InflationResultCode::InflationSuccess =>
12360 Ok(InflationResult::InflationSuccess(UnlimitedVarArray::<InflationPayout>::from_xdr_buffered(
12361 read_stream,
12362 )?)),
12363 InflationResultCode::InflationNotTime => Ok(InflationResult::InflationNotTime),
12364 }
12365 }
12366}
12367
12368#[allow(dead_code)]
12370#[derive(Debug, Clone, Eq, PartialEq)]
12371pub enum ManageDataResult {
12372 ManageDataSuccess,
12373 ManageDataNotSupportedYet,
12374 ManageDataNameNotFound,
12375 ManageDataLowReserve,
12376 ManageDataInvalidName,
12377}
12378
12379impl XdrCodec for ManageDataResult {
12380 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12381 match self {
12382 ManageDataResult::ManageDataSuccess =>
12383 ManageDataResultCode::ManageDataSuccess.to_xdr_buffered(write_stream),
12384 ManageDataResult::ManageDataNotSupportedYet =>
12385 ManageDataResultCode::ManageDataNotSupportedYet.to_xdr_buffered(write_stream),
12386 ManageDataResult::ManageDataNameNotFound =>
12387 ManageDataResultCode::ManageDataNameNotFound.to_xdr_buffered(write_stream),
12388 ManageDataResult::ManageDataLowReserve =>
12389 ManageDataResultCode::ManageDataLowReserve.to_xdr_buffered(write_stream),
12390 ManageDataResult::ManageDataInvalidName =>
12391 ManageDataResultCode::ManageDataInvalidName.to_xdr_buffered(write_stream),
12392 }
12393 }
12394
12395 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12396 match ManageDataResultCode::from_xdr_buffered(read_stream)? {
12397 ManageDataResultCode::ManageDataSuccess => Ok(ManageDataResult::ManageDataSuccess),
12398 ManageDataResultCode::ManageDataNotSupportedYet => Ok(ManageDataResult::ManageDataNotSupportedYet),
12399 ManageDataResultCode::ManageDataNameNotFound => Ok(ManageDataResult::ManageDataNameNotFound),
12400 ManageDataResultCode::ManageDataLowReserve => Ok(ManageDataResult::ManageDataLowReserve),
12401 ManageDataResultCode::ManageDataInvalidName => Ok(ManageDataResult::ManageDataInvalidName),
12402 }
12403 }
12404}
12405
12406#[allow(dead_code)]
12408#[derive(Debug, Clone, Eq, PartialEq)]
12409pub enum BumpSequenceResult {
12410 BumpSequenceSuccess,
12411 BumpSequenceBadSeq,
12412}
12413
12414impl XdrCodec for BumpSequenceResult {
12415 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12416 match self {
12417 BumpSequenceResult::BumpSequenceSuccess =>
12418 BumpSequenceResultCode::BumpSequenceSuccess.to_xdr_buffered(write_stream),
12419 BumpSequenceResult::BumpSequenceBadSeq =>
12420 BumpSequenceResultCode::BumpSequenceBadSeq.to_xdr_buffered(write_stream),
12421 }
12422 }
12423
12424 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12425 match BumpSequenceResultCode::from_xdr_buffered(read_stream)? {
12426 BumpSequenceResultCode::BumpSequenceSuccess => Ok(BumpSequenceResult::BumpSequenceSuccess),
12427 BumpSequenceResultCode::BumpSequenceBadSeq => Ok(BumpSequenceResult::BumpSequenceBadSeq),
12428 }
12429 }
12430}
12431
12432#[allow(dead_code)]
12434#[derive(Debug, Clone, Eq, PartialEq)]
12435pub enum CreateClaimableBalanceResult {
12436 CreateClaimableBalanceSuccess(ClaimableBalanceId),
12437 CreateClaimableBalanceMalformed,
12438 CreateClaimableBalanceLowReserve,
12439 CreateClaimableBalanceNoTrust,
12440 CreateClaimableBalanceNotAuthorized,
12441 CreateClaimableBalanceUnderfunded,
12442}
12443
12444impl XdrCodec for CreateClaimableBalanceResult {
12445 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12446 match self {
12447 CreateClaimableBalanceResult::CreateClaimableBalanceSuccess(value) => {
12448 CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess.to_xdr_buffered(write_stream);
12449 value.to_xdr_buffered(write_stream)
12450 },
12451 CreateClaimableBalanceResult::CreateClaimableBalanceMalformed =>
12452 CreateClaimableBalanceResultCode::CreateClaimableBalanceMalformed.to_xdr_buffered(write_stream),
12453 CreateClaimableBalanceResult::CreateClaimableBalanceLowReserve =>
12454 CreateClaimableBalanceResultCode::CreateClaimableBalanceLowReserve.to_xdr_buffered(write_stream),
12455 CreateClaimableBalanceResult::CreateClaimableBalanceNoTrust =>
12456 CreateClaimableBalanceResultCode::CreateClaimableBalanceNoTrust.to_xdr_buffered(write_stream),
12457 CreateClaimableBalanceResult::CreateClaimableBalanceNotAuthorized =>
12458 CreateClaimableBalanceResultCode::CreateClaimableBalanceNotAuthorized.to_xdr_buffered(write_stream),
12459 CreateClaimableBalanceResult::CreateClaimableBalanceUnderfunded =>
12460 CreateClaimableBalanceResultCode::CreateClaimableBalanceUnderfunded.to_xdr_buffered(write_stream),
12461 }
12462 }
12463
12464 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12465 match CreateClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
12466 CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess =>
12467 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceSuccess(ClaimableBalanceId::from_xdr_buffered(
12468 read_stream,
12469 )?)),
12470 CreateClaimableBalanceResultCode::CreateClaimableBalanceMalformed =>
12471 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceMalformed),
12472 CreateClaimableBalanceResultCode::CreateClaimableBalanceLowReserve =>
12473 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceLowReserve),
12474 CreateClaimableBalanceResultCode::CreateClaimableBalanceNoTrust =>
12475 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceNoTrust),
12476 CreateClaimableBalanceResultCode::CreateClaimableBalanceNotAuthorized =>
12477 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceNotAuthorized),
12478 CreateClaimableBalanceResultCode::CreateClaimableBalanceUnderfunded =>
12479 Ok(CreateClaimableBalanceResult::CreateClaimableBalanceUnderfunded),
12480 }
12481 }
12482}
12483
12484#[allow(dead_code)]
12486#[derive(Debug, Clone, Eq, PartialEq)]
12487pub enum ClaimClaimableBalanceResult {
12488 ClaimClaimableBalanceSuccess,
12489 ClaimClaimableBalanceDoesNotExist,
12490 ClaimClaimableBalanceCannotClaim,
12491 ClaimClaimableBalanceLineFull,
12492 ClaimClaimableBalanceNoTrust,
12493 ClaimClaimableBalanceNotAuthorized,
12494}
12495
12496impl XdrCodec for ClaimClaimableBalanceResult {
12497 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12498 match self {
12499 ClaimClaimableBalanceResult::ClaimClaimableBalanceSuccess =>
12500 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess.to_xdr_buffered(write_stream),
12501 ClaimClaimableBalanceResult::ClaimClaimableBalanceDoesNotExist =>
12502 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceDoesNotExist.to_xdr_buffered(write_stream),
12503 ClaimClaimableBalanceResult::ClaimClaimableBalanceCannotClaim =>
12504 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceCannotClaim.to_xdr_buffered(write_stream),
12505 ClaimClaimableBalanceResult::ClaimClaimableBalanceLineFull =>
12506 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceLineFull.to_xdr_buffered(write_stream),
12507 ClaimClaimableBalanceResult::ClaimClaimableBalanceNoTrust =>
12508 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNoTrust.to_xdr_buffered(write_stream),
12509 ClaimClaimableBalanceResult::ClaimClaimableBalanceNotAuthorized =>
12510 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNotAuthorized.to_xdr_buffered(write_stream),
12511 }
12512 }
12513
12514 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12515 match ClaimClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
12516 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess =>
12517 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceSuccess),
12518 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceDoesNotExist =>
12519 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceDoesNotExist),
12520 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceCannotClaim =>
12521 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceCannotClaim),
12522 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceLineFull =>
12523 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceLineFull),
12524 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNoTrust =>
12525 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceNoTrust),
12526 ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNotAuthorized =>
12527 Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceNotAuthorized),
12528 }
12529 }
12530}
12531
12532#[allow(dead_code)]
12534#[derive(Debug, Clone, Eq, PartialEq)]
12535pub enum BeginSponsoringFutureReservesResult {
12536 BeginSponsoringFutureReservesSuccess,
12537 BeginSponsoringFutureReservesMalformed,
12538 BeginSponsoringFutureReservesAlreadySponsored,
12539 BeginSponsoringFutureReservesRecursive,
12540}
12541
12542impl XdrCodec for BeginSponsoringFutureReservesResult {
12543 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12544 match self {
12545 BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesSuccess =>
12546 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess
12547 .to_xdr_buffered(write_stream),
12548 BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesMalformed =>
12549 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesMalformed
12550 .to_xdr_buffered(write_stream),
12551 BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesAlreadySponsored =>
12552 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesAlreadySponsored
12553 .to_xdr_buffered(write_stream),
12554 BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesRecursive =>
12555 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesRecursive
12556 .to_xdr_buffered(write_stream),
12557 }
12558 }
12559
12560 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12561 match BeginSponsoringFutureReservesResultCode::from_xdr_buffered(read_stream)? {
12562 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess =>
12563 Ok(BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesSuccess),
12564 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesMalformed =>
12565 Ok(BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesMalformed),
12566 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesAlreadySponsored =>
12567 Ok(BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesAlreadySponsored),
12568 BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesRecursive =>
12569 Ok(BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesRecursive),
12570 }
12571 }
12572}
12573
12574#[allow(dead_code)]
12576#[derive(Debug, Clone, Eq, PartialEq)]
12577pub enum EndSponsoringFutureReservesResult {
12578 EndSponsoringFutureReservesSuccess,
12579 EndSponsoringFutureReservesNotSponsored,
12580}
12581
12582impl XdrCodec for EndSponsoringFutureReservesResult {
12583 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12584 match self {
12585 EndSponsoringFutureReservesResult::EndSponsoringFutureReservesSuccess =>
12586 EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess.to_xdr_buffered(write_stream),
12587 EndSponsoringFutureReservesResult::EndSponsoringFutureReservesNotSponsored =>
12588 EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesNotSponsored
12589 .to_xdr_buffered(write_stream),
12590 }
12591 }
12592
12593 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12594 match EndSponsoringFutureReservesResultCode::from_xdr_buffered(read_stream)? {
12595 EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess =>
12596 Ok(EndSponsoringFutureReservesResult::EndSponsoringFutureReservesSuccess),
12597 EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesNotSponsored =>
12598 Ok(EndSponsoringFutureReservesResult::EndSponsoringFutureReservesNotSponsored),
12599 }
12600 }
12601}
12602
12603#[allow(dead_code)]
12605#[derive(Debug, Clone, Eq, PartialEq)]
12606pub enum RevokeSponsorshipResult {
12607 RevokeSponsorshipSuccess,
12608 RevokeSponsorshipDoesNotExist,
12609 RevokeSponsorshipNotSponsor,
12610 RevokeSponsorshipLowReserve,
12611 RevokeSponsorshipOnlyTransferable,
12612 RevokeSponsorshipMalformed,
12613}
12614
12615impl XdrCodec for RevokeSponsorshipResult {
12616 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12617 match self {
12618 RevokeSponsorshipResult::RevokeSponsorshipSuccess =>
12619 RevokeSponsorshipResultCode::RevokeSponsorshipSuccess.to_xdr_buffered(write_stream),
12620 RevokeSponsorshipResult::RevokeSponsorshipDoesNotExist =>
12621 RevokeSponsorshipResultCode::RevokeSponsorshipDoesNotExist.to_xdr_buffered(write_stream),
12622 RevokeSponsorshipResult::RevokeSponsorshipNotSponsor =>
12623 RevokeSponsorshipResultCode::RevokeSponsorshipNotSponsor.to_xdr_buffered(write_stream),
12624 RevokeSponsorshipResult::RevokeSponsorshipLowReserve =>
12625 RevokeSponsorshipResultCode::RevokeSponsorshipLowReserve.to_xdr_buffered(write_stream),
12626 RevokeSponsorshipResult::RevokeSponsorshipOnlyTransferable =>
12627 RevokeSponsorshipResultCode::RevokeSponsorshipOnlyTransferable.to_xdr_buffered(write_stream),
12628 RevokeSponsorshipResult::RevokeSponsorshipMalformed =>
12629 RevokeSponsorshipResultCode::RevokeSponsorshipMalformed.to_xdr_buffered(write_stream),
12630 }
12631 }
12632
12633 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12634 match RevokeSponsorshipResultCode::from_xdr_buffered(read_stream)? {
12635 RevokeSponsorshipResultCode::RevokeSponsorshipSuccess =>
12636 Ok(RevokeSponsorshipResult::RevokeSponsorshipSuccess),
12637 RevokeSponsorshipResultCode::RevokeSponsorshipDoesNotExist =>
12638 Ok(RevokeSponsorshipResult::RevokeSponsorshipDoesNotExist),
12639 RevokeSponsorshipResultCode::RevokeSponsorshipNotSponsor =>
12640 Ok(RevokeSponsorshipResult::RevokeSponsorshipNotSponsor),
12641 RevokeSponsorshipResultCode::RevokeSponsorshipLowReserve =>
12642 Ok(RevokeSponsorshipResult::RevokeSponsorshipLowReserve),
12643 RevokeSponsorshipResultCode::RevokeSponsorshipOnlyTransferable =>
12644 Ok(RevokeSponsorshipResult::RevokeSponsorshipOnlyTransferable),
12645 RevokeSponsorshipResultCode::RevokeSponsorshipMalformed =>
12646 Ok(RevokeSponsorshipResult::RevokeSponsorshipMalformed),
12647 }
12648 }
12649}
12650
12651#[allow(dead_code)]
12653#[derive(Debug, Clone, Eq, PartialEq)]
12654pub enum ClawbackResult {
12655 ClawbackSuccess,
12656 ClawbackMalformed,
12657 ClawbackNotClawbackEnabled,
12658 ClawbackNoTrust,
12659 ClawbackUnderfunded,
12660}
12661
12662impl XdrCodec for ClawbackResult {
12663 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12664 match self {
12665 ClawbackResult::ClawbackSuccess => ClawbackResultCode::ClawbackSuccess.to_xdr_buffered(write_stream),
12666 ClawbackResult::ClawbackMalformed => ClawbackResultCode::ClawbackMalformed.to_xdr_buffered(write_stream),
12667 ClawbackResult::ClawbackNotClawbackEnabled =>
12668 ClawbackResultCode::ClawbackNotClawbackEnabled.to_xdr_buffered(write_stream),
12669 ClawbackResult::ClawbackNoTrust => ClawbackResultCode::ClawbackNoTrust.to_xdr_buffered(write_stream),
12670 ClawbackResult::ClawbackUnderfunded =>
12671 ClawbackResultCode::ClawbackUnderfunded.to_xdr_buffered(write_stream),
12672 }
12673 }
12674
12675 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12676 match ClawbackResultCode::from_xdr_buffered(read_stream)? {
12677 ClawbackResultCode::ClawbackSuccess => Ok(ClawbackResult::ClawbackSuccess),
12678 ClawbackResultCode::ClawbackMalformed => Ok(ClawbackResult::ClawbackMalformed),
12679 ClawbackResultCode::ClawbackNotClawbackEnabled => Ok(ClawbackResult::ClawbackNotClawbackEnabled),
12680 ClawbackResultCode::ClawbackNoTrust => Ok(ClawbackResult::ClawbackNoTrust),
12681 ClawbackResultCode::ClawbackUnderfunded => Ok(ClawbackResult::ClawbackUnderfunded),
12682 }
12683 }
12684}
12685
12686#[allow(dead_code)]
12688#[derive(Debug, Clone, Eq, PartialEq)]
12689pub enum ClawbackClaimableBalanceResult {
12690 ClawbackClaimableBalanceSuccess,
12691 ClawbackClaimableBalanceDoesNotExist,
12692 ClawbackClaimableBalanceNotIssuer,
12693 ClawbackClaimableBalanceNotClawbackEnabled,
12694}
12695
12696impl XdrCodec for ClawbackClaimableBalanceResult {
12697 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12698 match self {
12699 ClawbackClaimableBalanceResult::ClawbackClaimableBalanceSuccess =>
12700 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess.to_xdr_buffered(write_stream),
12701 ClawbackClaimableBalanceResult::ClawbackClaimableBalanceDoesNotExist =>
12702 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceDoesNotExist.to_xdr_buffered(write_stream),
12703 ClawbackClaimableBalanceResult::ClawbackClaimableBalanceNotIssuer =>
12704 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotIssuer.to_xdr_buffered(write_stream),
12705 ClawbackClaimableBalanceResult::ClawbackClaimableBalanceNotClawbackEnabled =>
12706 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotClawbackEnabled
12707 .to_xdr_buffered(write_stream),
12708 }
12709 }
12710
12711 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12712 match ClawbackClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
12713 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess =>
12714 Ok(ClawbackClaimableBalanceResult::ClawbackClaimableBalanceSuccess),
12715 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceDoesNotExist =>
12716 Ok(ClawbackClaimableBalanceResult::ClawbackClaimableBalanceDoesNotExist),
12717 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotIssuer =>
12718 Ok(ClawbackClaimableBalanceResult::ClawbackClaimableBalanceNotIssuer),
12719 ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotClawbackEnabled =>
12720 Ok(ClawbackClaimableBalanceResult::ClawbackClaimableBalanceNotClawbackEnabled),
12721 }
12722 }
12723}
12724
12725#[allow(dead_code)]
12727#[derive(Debug, Clone, Eq, PartialEq)]
12728pub enum SetTrustLineFlagsResult {
12729 SetTrustLineFlagsSuccess,
12730 SetTrustLineFlagsMalformed,
12731 SetTrustLineFlagsNoTrustLine,
12732 SetTrustLineFlagsCantRevoke,
12733 SetTrustLineFlagsInvalidState,
12734 SetTrustLineFlagsLowReserve,
12735}
12736
12737impl XdrCodec for SetTrustLineFlagsResult {
12738 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12739 match self {
12740 SetTrustLineFlagsResult::SetTrustLineFlagsSuccess =>
12741 SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess.to_xdr_buffered(write_stream),
12742 SetTrustLineFlagsResult::SetTrustLineFlagsMalformed =>
12743 SetTrustLineFlagsResultCode::SetTrustLineFlagsMalformed.to_xdr_buffered(write_stream),
12744 SetTrustLineFlagsResult::SetTrustLineFlagsNoTrustLine =>
12745 SetTrustLineFlagsResultCode::SetTrustLineFlagsNoTrustLine.to_xdr_buffered(write_stream),
12746 SetTrustLineFlagsResult::SetTrustLineFlagsCantRevoke =>
12747 SetTrustLineFlagsResultCode::SetTrustLineFlagsCantRevoke.to_xdr_buffered(write_stream),
12748 SetTrustLineFlagsResult::SetTrustLineFlagsInvalidState =>
12749 SetTrustLineFlagsResultCode::SetTrustLineFlagsInvalidState.to_xdr_buffered(write_stream),
12750 SetTrustLineFlagsResult::SetTrustLineFlagsLowReserve =>
12751 SetTrustLineFlagsResultCode::SetTrustLineFlagsLowReserve.to_xdr_buffered(write_stream),
12752 }
12753 }
12754
12755 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12756 match SetTrustLineFlagsResultCode::from_xdr_buffered(read_stream)? {
12757 SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess =>
12758 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsSuccess),
12759 SetTrustLineFlagsResultCode::SetTrustLineFlagsMalformed =>
12760 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsMalformed),
12761 SetTrustLineFlagsResultCode::SetTrustLineFlagsNoTrustLine =>
12762 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsNoTrustLine),
12763 SetTrustLineFlagsResultCode::SetTrustLineFlagsCantRevoke =>
12764 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsCantRevoke),
12765 SetTrustLineFlagsResultCode::SetTrustLineFlagsInvalidState =>
12766 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsInvalidState),
12767 SetTrustLineFlagsResultCode::SetTrustLineFlagsLowReserve =>
12768 Ok(SetTrustLineFlagsResult::SetTrustLineFlagsLowReserve),
12769 }
12770 }
12771}
12772
12773#[allow(dead_code)]
12775#[derive(Debug, Clone, Eq, PartialEq)]
12776pub enum LiquidityPoolDepositResult {
12777 LiquidityPoolDepositSuccess,
12778 LiquidityPoolDepositMalformed,
12779 LiquidityPoolDepositNoTrust,
12780 LiquidityPoolDepositNotAuthorized,
12781 LiquidityPoolDepositUnderfunded,
12782 LiquidityPoolDepositLineFull,
12783 LiquidityPoolDepositBadPrice,
12784 LiquidityPoolDepositPoolFull,
12785}
12786
12787impl XdrCodec for LiquidityPoolDepositResult {
12788 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12789 match self {
12790 LiquidityPoolDepositResult::LiquidityPoolDepositSuccess =>
12791 LiquidityPoolDepositResultCode::LiquidityPoolDepositSuccess.to_xdr_buffered(write_stream),
12792 LiquidityPoolDepositResult::LiquidityPoolDepositMalformed =>
12793 LiquidityPoolDepositResultCode::LiquidityPoolDepositMalformed.to_xdr_buffered(write_stream),
12794 LiquidityPoolDepositResult::LiquidityPoolDepositNoTrust =>
12795 LiquidityPoolDepositResultCode::LiquidityPoolDepositNoTrust.to_xdr_buffered(write_stream),
12796 LiquidityPoolDepositResult::LiquidityPoolDepositNotAuthorized =>
12797 LiquidityPoolDepositResultCode::LiquidityPoolDepositNotAuthorized.to_xdr_buffered(write_stream),
12798 LiquidityPoolDepositResult::LiquidityPoolDepositUnderfunded =>
12799 LiquidityPoolDepositResultCode::LiquidityPoolDepositUnderfunded.to_xdr_buffered(write_stream),
12800 LiquidityPoolDepositResult::LiquidityPoolDepositLineFull =>
12801 LiquidityPoolDepositResultCode::LiquidityPoolDepositLineFull.to_xdr_buffered(write_stream),
12802 LiquidityPoolDepositResult::LiquidityPoolDepositBadPrice =>
12803 LiquidityPoolDepositResultCode::LiquidityPoolDepositBadPrice.to_xdr_buffered(write_stream),
12804 LiquidityPoolDepositResult::LiquidityPoolDepositPoolFull =>
12805 LiquidityPoolDepositResultCode::LiquidityPoolDepositPoolFull.to_xdr_buffered(write_stream),
12806 }
12807 }
12808
12809 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12810 match LiquidityPoolDepositResultCode::from_xdr_buffered(read_stream)? {
12811 LiquidityPoolDepositResultCode::LiquidityPoolDepositSuccess =>
12812 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositSuccess),
12813 LiquidityPoolDepositResultCode::LiquidityPoolDepositMalformed =>
12814 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositMalformed),
12815 LiquidityPoolDepositResultCode::LiquidityPoolDepositNoTrust =>
12816 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositNoTrust),
12817 LiquidityPoolDepositResultCode::LiquidityPoolDepositNotAuthorized =>
12818 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositNotAuthorized),
12819 LiquidityPoolDepositResultCode::LiquidityPoolDepositUnderfunded =>
12820 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositUnderfunded),
12821 LiquidityPoolDepositResultCode::LiquidityPoolDepositLineFull =>
12822 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositLineFull),
12823 LiquidityPoolDepositResultCode::LiquidityPoolDepositBadPrice =>
12824 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositBadPrice),
12825 LiquidityPoolDepositResultCode::LiquidityPoolDepositPoolFull =>
12826 Ok(LiquidityPoolDepositResult::LiquidityPoolDepositPoolFull),
12827 }
12828 }
12829}
12830
12831#[allow(dead_code)]
12833#[derive(Debug, Clone, Eq, PartialEq)]
12834pub enum LiquidityPoolWithdrawResult {
12835 LiquidityPoolWithdrawSuccess,
12836 LiquidityPoolWithdrawMalformed,
12837 LiquidityPoolWithdrawNoTrust,
12838 LiquidityPoolWithdrawUnderfunded,
12839 LiquidityPoolWithdrawLineFull,
12840 LiquidityPoolWithdrawUnderMinimum,
12841}
12842
12843impl XdrCodec for LiquidityPoolWithdrawResult {
12844 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12845 match self {
12846 LiquidityPoolWithdrawResult::LiquidityPoolWithdrawSuccess =>
12847 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawSuccess.to_xdr_buffered(write_stream),
12848 LiquidityPoolWithdrawResult::LiquidityPoolWithdrawMalformed =>
12849 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawMalformed.to_xdr_buffered(write_stream),
12850 LiquidityPoolWithdrawResult::LiquidityPoolWithdrawNoTrust =>
12851 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawNoTrust.to_xdr_buffered(write_stream),
12852 LiquidityPoolWithdrawResult::LiquidityPoolWithdrawUnderfunded =>
12853 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawUnderfunded.to_xdr_buffered(write_stream),
12854 LiquidityPoolWithdrawResult::LiquidityPoolWithdrawLineFull =>
12855 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawLineFull.to_xdr_buffered(write_stream),
12856 LiquidityPoolWithdrawResult::LiquidityPoolWithdrawUnderMinimum =>
12857 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawUnderMinimum.to_xdr_buffered(write_stream),
12858 }
12859 }
12860
12861 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12862 match LiquidityPoolWithdrawResultCode::from_xdr_buffered(read_stream)? {
12863 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawSuccess =>
12864 Ok(LiquidityPoolWithdrawResult::LiquidityPoolWithdrawSuccess),
12865 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawMalformed =>
12866 Ok(LiquidityPoolWithdrawResult::LiquidityPoolWithdrawMalformed),
12867 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawNoTrust =>
12868 Ok(LiquidityPoolWithdrawResult::LiquidityPoolWithdrawNoTrust),
12869 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawUnderfunded =>
12870 Ok(LiquidityPoolWithdrawResult::LiquidityPoolWithdrawUnderfunded),
12871 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawLineFull =>
12872 Ok(LiquidityPoolWithdrawResult::LiquidityPoolWithdrawLineFull),
12873 LiquidityPoolWithdrawResultCode::LiquidityPoolWithdrawUnderMinimum =>
12874 Ok(LiquidityPoolWithdrawResult::LiquidityPoolWithdrawUnderMinimum),
12875 }
12876 }
12877}
12878
12879#[allow(dead_code)]
12881#[derive(Debug, Clone, Eq, PartialEq)]
12882pub enum InvokeHostFunctionResult {
12883 InvokeHostFunctionSuccess(Hash),
12884 InvokeHostFunctionMalformed,
12885 InvokeHostFunctionTrapped,
12886 InvokeHostFunctionResourceLimitExceeded,
12887 InvokeHostFunctionEntryArchived,
12888 InvokeHostFunctionInsufficientRefundableFee,
12889}
12890
12891impl XdrCodec for InvokeHostFunctionResult {
12892 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12893 match self {
12894 InvokeHostFunctionResult::InvokeHostFunctionSuccess(value) => {
12895 InvokeHostFunctionResultCode::InvokeHostFunctionSuccess.to_xdr_buffered(write_stream);
12896 value.to_xdr_buffered(write_stream)
12897 },
12898 InvokeHostFunctionResult::InvokeHostFunctionMalformed =>
12899 InvokeHostFunctionResultCode::InvokeHostFunctionMalformed.to_xdr_buffered(write_stream),
12900 InvokeHostFunctionResult::InvokeHostFunctionTrapped =>
12901 InvokeHostFunctionResultCode::InvokeHostFunctionTrapped.to_xdr_buffered(write_stream),
12902 InvokeHostFunctionResult::InvokeHostFunctionResourceLimitExceeded =>
12903 InvokeHostFunctionResultCode::InvokeHostFunctionResourceLimitExceeded.to_xdr_buffered(write_stream),
12904 InvokeHostFunctionResult::InvokeHostFunctionEntryArchived =>
12905 InvokeHostFunctionResultCode::InvokeHostFunctionEntryArchived.to_xdr_buffered(write_stream),
12906 InvokeHostFunctionResult::InvokeHostFunctionInsufficientRefundableFee =>
12907 InvokeHostFunctionResultCode::InvokeHostFunctionInsufficientRefundableFee.to_xdr_buffered(write_stream),
12908 }
12909 }
12910
12911 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12912 match InvokeHostFunctionResultCode::from_xdr_buffered(read_stream)? {
12913 InvokeHostFunctionResultCode::InvokeHostFunctionSuccess =>
12914 Ok(InvokeHostFunctionResult::InvokeHostFunctionSuccess(Hash::from_xdr_buffered(read_stream)?)),
12915 InvokeHostFunctionResultCode::InvokeHostFunctionMalformed =>
12916 Ok(InvokeHostFunctionResult::InvokeHostFunctionMalformed),
12917 InvokeHostFunctionResultCode::InvokeHostFunctionTrapped =>
12918 Ok(InvokeHostFunctionResult::InvokeHostFunctionTrapped),
12919 InvokeHostFunctionResultCode::InvokeHostFunctionResourceLimitExceeded =>
12920 Ok(InvokeHostFunctionResult::InvokeHostFunctionResourceLimitExceeded),
12921 InvokeHostFunctionResultCode::InvokeHostFunctionEntryArchived =>
12922 Ok(InvokeHostFunctionResult::InvokeHostFunctionEntryArchived),
12923 InvokeHostFunctionResultCode::InvokeHostFunctionInsufficientRefundableFee =>
12924 Ok(InvokeHostFunctionResult::InvokeHostFunctionInsufficientRefundableFee),
12925 }
12926 }
12927}
12928
12929#[allow(dead_code)]
12931#[derive(Debug, Clone, Eq, PartialEq)]
12932pub enum ExtendFootprintTtlResult {
12933 ExtendFootprintTtlSuccess,
12934 ExtendFootprintTtlMalformed,
12935 ExtendFootprintTtlResourceLimitExceeded,
12936 ExtendFootprintTtlInsufficientRefundableFee,
12937}
12938
12939impl XdrCodec for ExtendFootprintTtlResult {
12940 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12941 match self {
12942 ExtendFootprintTtlResult::ExtendFootprintTtlSuccess =>
12943 ExtendFootprintTtlResultCode::ExtendFootprintTtlSuccess.to_xdr_buffered(write_stream),
12944 ExtendFootprintTtlResult::ExtendFootprintTtlMalformed =>
12945 ExtendFootprintTtlResultCode::ExtendFootprintTtlMalformed.to_xdr_buffered(write_stream),
12946 ExtendFootprintTtlResult::ExtendFootprintTtlResourceLimitExceeded =>
12947 ExtendFootprintTtlResultCode::ExtendFootprintTtlResourceLimitExceeded.to_xdr_buffered(write_stream),
12948 ExtendFootprintTtlResult::ExtendFootprintTtlInsufficientRefundableFee =>
12949 ExtendFootprintTtlResultCode::ExtendFootprintTtlInsufficientRefundableFee.to_xdr_buffered(write_stream),
12950 }
12951 }
12952
12953 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12954 match ExtendFootprintTtlResultCode::from_xdr_buffered(read_stream)? {
12955 ExtendFootprintTtlResultCode::ExtendFootprintTtlSuccess =>
12956 Ok(ExtendFootprintTtlResult::ExtendFootprintTtlSuccess),
12957 ExtendFootprintTtlResultCode::ExtendFootprintTtlMalformed =>
12958 Ok(ExtendFootprintTtlResult::ExtendFootprintTtlMalformed),
12959 ExtendFootprintTtlResultCode::ExtendFootprintTtlResourceLimitExceeded =>
12960 Ok(ExtendFootprintTtlResult::ExtendFootprintTtlResourceLimitExceeded),
12961 ExtendFootprintTtlResultCode::ExtendFootprintTtlInsufficientRefundableFee =>
12962 Ok(ExtendFootprintTtlResult::ExtendFootprintTtlInsufficientRefundableFee),
12963 }
12964 }
12965}
12966
12967#[allow(dead_code)]
12969#[derive(Debug, Clone, Eq, PartialEq)]
12970pub enum RestoreFootprintResult {
12971 RestoreFootprintSuccess,
12972 RestoreFootprintMalformed,
12973 RestoreFootprintResourceLimitExceeded,
12974 RestoreFootprintInsufficientRefundableFee,
12975}
12976
12977impl XdrCodec for RestoreFootprintResult {
12978 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
12979 match self {
12980 RestoreFootprintResult::RestoreFootprintSuccess =>
12981 RestoreFootprintResultCode::RestoreFootprintSuccess.to_xdr_buffered(write_stream),
12982 RestoreFootprintResult::RestoreFootprintMalformed =>
12983 RestoreFootprintResultCode::RestoreFootprintMalformed.to_xdr_buffered(write_stream),
12984 RestoreFootprintResult::RestoreFootprintResourceLimitExceeded =>
12985 RestoreFootprintResultCode::RestoreFootprintResourceLimitExceeded.to_xdr_buffered(write_stream),
12986 RestoreFootprintResult::RestoreFootprintInsufficientRefundableFee =>
12987 RestoreFootprintResultCode::RestoreFootprintInsufficientRefundableFee.to_xdr_buffered(write_stream),
12988 }
12989 }
12990
12991 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
12992 match RestoreFootprintResultCode::from_xdr_buffered(read_stream)? {
12993 RestoreFootprintResultCode::RestoreFootprintSuccess => Ok(RestoreFootprintResult::RestoreFootprintSuccess),
12994 RestoreFootprintResultCode::RestoreFootprintMalformed =>
12995 Ok(RestoreFootprintResult::RestoreFootprintMalformed),
12996 RestoreFootprintResultCode::RestoreFootprintResourceLimitExceeded =>
12997 Ok(RestoreFootprintResult::RestoreFootprintResourceLimitExceeded),
12998 RestoreFootprintResultCode::RestoreFootprintInsufficientRefundableFee =>
12999 Ok(RestoreFootprintResult::RestoreFootprintInsufficientRefundableFee),
13000 }
13001 }
13002}
13003
13004#[allow(dead_code)]
13006#[derive(Debug, Clone, Eq, PartialEq)]
13007pub enum OperationResultTr {
13008 CreateAccount(CreateAccountResult),
13009 Payment(PaymentResult),
13010 PathPaymentStrictReceive(PathPaymentStrictReceiveResult),
13011 ManageSellOffer(ManageSellOfferResult),
13012 CreatePassiveSellOffer(ManageSellOfferResult),
13013 SetOptions(SetOptionsResult),
13014 ChangeTrust(ChangeTrustResult),
13015 AllowTrust(AllowTrustResult),
13016 AccountMerge(AccountMergeResult),
13017 Inflation(InflationResult),
13018 ManageData(ManageDataResult),
13019 BumpSequence(BumpSequenceResult),
13020 ManageBuyOffer(ManageBuyOfferResult),
13021 PathPaymentStrictSend(PathPaymentStrictSendResult),
13022 CreateClaimableBalance(CreateClaimableBalanceResult),
13023 ClaimClaimableBalance(ClaimClaimableBalanceResult),
13024 BeginSponsoringFutureReserves(BeginSponsoringFutureReservesResult),
13025 EndSponsoringFutureReserves(EndSponsoringFutureReservesResult),
13026 RevokeSponsorship(RevokeSponsorshipResult),
13027 Clawback(ClawbackResult),
13028 ClawbackClaimableBalance(ClawbackClaimableBalanceResult),
13029 SetTrustLineFlags(SetTrustLineFlagsResult),
13030 LiquidityPoolDeposit(LiquidityPoolDepositResult),
13031 LiquidityPoolWithdraw(LiquidityPoolWithdrawResult),
13032 InvokeHostFunction(InvokeHostFunctionResult),
13033 ExtendFootprintTtl(ExtendFootprintTtlResult),
13034 RestoreFootprint(RestoreFootprintResult),
13035}
13036
13037impl XdrCodec for OperationResultTr {
13038 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13039 match self {
13040 OperationResultTr::CreateAccount(value) => {
13041 OperationType::CreateAccount.to_xdr_buffered(write_stream);
13042 value.to_xdr_buffered(write_stream)
13043 },
13044 OperationResultTr::Payment(value) => {
13045 OperationType::Payment.to_xdr_buffered(write_stream);
13046 value.to_xdr_buffered(write_stream)
13047 },
13048 OperationResultTr::PathPaymentStrictReceive(value) => {
13049 OperationType::PathPaymentStrictReceive.to_xdr_buffered(write_stream);
13050 value.to_xdr_buffered(write_stream)
13051 },
13052 OperationResultTr::ManageSellOffer(value) => {
13053 OperationType::ManageSellOffer.to_xdr_buffered(write_stream);
13054 value.to_xdr_buffered(write_stream)
13055 },
13056 OperationResultTr::CreatePassiveSellOffer(value) => {
13057 OperationType::CreatePassiveSellOffer.to_xdr_buffered(write_stream);
13058 value.to_xdr_buffered(write_stream)
13059 },
13060 OperationResultTr::SetOptions(value) => {
13061 OperationType::SetOptions.to_xdr_buffered(write_stream);
13062 value.to_xdr_buffered(write_stream)
13063 },
13064 OperationResultTr::ChangeTrust(value) => {
13065 OperationType::ChangeTrust.to_xdr_buffered(write_stream);
13066 value.to_xdr_buffered(write_stream)
13067 },
13068 OperationResultTr::AllowTrust(value) => {
13069 OperationType::AllowTrust.to_xdr_buffered(write_stream);
13070 value.to_xdr_buffered(write_stream)
13071 },
13072 OperationResultTr::AccountMerge(value) => {
13073 OperationType::AccountMerge.to_xdr_buffered(write_stream);
13074 value.to_xdr_buffered(write_stream)
13075 },
13076 OperationResultTr::Inflation(value) => {
13077 OperationType::Inflation.to_xdr_buffered(write_stream);
13078 value.to_xdr_buffered(write_stream)
13079 },
13080 OperationResultTr::ManageData(value) => {
13081 OperationType::ManageData.to_xdr_buffered(write_stream);
13082 value.to_xdr_buffered(write_stream)
13083 },
13084 OperationResultTr::BumpSequence(value) => {
13085 OperationType::BumpSequence.to_xdr_buffered(write_stream);
13086 value.to_xdr_buffered(write_stream)
13087 },
13088 OperationResultTr::ManageBuyOffer(value) => {
13089 OperationType::ManageBuyOffer.to_xdr_buffered(write_stream);
13090 value.to_xdr_buffered(write_stream)
13091 },
13092 OperationResultTr::PathPaymentStrictSend(value) => {
13093 OperationType::PathPaymentStrictSend.to_xdr_buffered(write_stream);
13094 value.to_xdr_buffered(write_stream)
13095 },
13096 OperationResultTr::CreateClaimableBalance(value) => {
13097 OperationType::CreateClaimableBalance.to_xdr_buffered(write_stream);
13098 value.to_xdr_buffered(write_stream)
13099 },
13100 OperationResultTr::ClaimClaimableBalance(value) => {
13101 OperationType::ClaimClaimableBalance.to_xdr_buffered(write_stream);
13102 value.to_xdr_buffered(write_stream)
13103 },
13104 OperationResultTr::BeginSponsoringFutureReserves(value) => {
13105 OperationType::BeginSponsoringFutureReserves.to_xdr_buffered(write_stream);
13106 value.to_xdr_buffered(write_stream)
13107 },
13108 OperationResultTr::EndSponsoringFutureReserves(value) => {
13109 OperationType::EndSponsoringFutureReserves.to_xdr_buffered(write_stream);
13110 value.to_xdr_buffered(write_stream)
13111 },
13112 OperationResultTr::RevokeSponsorship(value) => {
13113 OperationType::RevokeSponsorship.to_xdr_buffered(write_stream);
13114 value.to_xdr_buffered(write_stream)
13115 },
13116 OperationResultTr::Clawback(value) => {
13117 OperationType::Clawback.to_xdr_buffered(write_stream);
13118 value.to_xdr_buffered(write_stream)
13119 },
13120 OperationResultTr::ClawbackClaimableBalance(value) => {
13121 OperationType::ClawbackClaimableBalance.to_xdr_buffered(write_stream);
13122 value.to_xdr_buffered(write_stream)
13123 },
13124 OperationResultTr::SetTrustLineFlags(value) => {
13125 OperationType::SetTrustLineFlags.to_xdr_buffered(write_stream);
13126 value.to_xdr_buffered(write_stream)
13127 },
13128 OperationResultTr::LiquidityPoolDeposit(value) => {
13129 OperationType::LiquidityPoolDeposit.to_xdr_buffered(write_stream);
13130 value.to_xdr_buffered(write_stream)
13131 },
13132 OperationResultTr::LiquidityPoolWithdraw(value) => {
13133 OperationType::LiquidityPoolWithdraw.to_xdr_buffered(write_stream);
13134 value.to_xdr_buffered(write_stream)
13135 },
13136 OperationResultTr::InvokeHostFunction(value) => {
13137 OperationType::InvokeHostFunction.to_xdr_buffered(write_stream);
13138 value.to_xdr_buffered(write_stream)
13139 },
13140 OperationResultTr::ExtendFootprintTtl(value) => {
13141 OperationType::ExtendFootprintTtl.to_xdr_buffered(write_stream);
13142 value.to_xdr_buffered(write_stream)
13143 },
13144 OperationResultTr::RestoreFootprint(value) => {
13145 OperationType::RestoreFootprint.to_xdr_buffered(write_stream);
13146 value.to_xdr_buffered(write_stream)
13147 },
13148 }
13149 }
13150
13151 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13152 match OperationType::from_xdr_buffered(read_stream)? {
13153 OperationType::CreateAccount =>
13154 Ok(OperationResultTr::CreateAccount(CreateAccountResult::from_xdr_buffered(read_stream)?)),
13155 OperationType::Payment => Ok(OperationResultTr::Payment(PaymentResult::from_xdr_buffered(read_stream)?)),
13156 OperationType::PathPaymentStrictReceive => Ok(OperationResultTr::PathPaymentStrictReceive(
13157 PathPaymentStrictReceiveResult::from_xdr_buffered(read_stream)?,
13158 )),
13159 OperationType::ManageSellOffer =>
13160 Ok(OperationResultTr::ManageSellOffer(ManageSellOfferResult::from_xdr_buffered(read_stream)?)),
13161 OperationType::CreatePassiveSellOffer =>
13162 Ok(OperationResultTr::CreatePassiveSellOffer(ManageSellOfferResult::from_xdr_buffered(read_stream)?)),
13163 OperationType::SetOptions =>
13164 Ok(OperationResultTr::SetOptions(SetOptionsResult::from_xdr_buffered(read_stream)?)),
13165 OperationType::ChangeTrust =>
13166 Ok(OperationResultTr::ChangeTrust(ChangeTrustResult::from_xdr_buffered(read_stream)?)),
13167 OperationType::AllowTrust =>
13168 Ok(OperationResultTr::AllowTrust(AllowTrustResult::from_xdr_buffered(read_stream)?)),
13169 OperationType::AccountMerge =>
13170 Ok(OperationResultTr::AccountMerge(AccountMergeResult::from_xdr_buffered(read_stream)?)),
13171 OperationType::Inflation =>
13172 Ok(OperationResultTr::Inflation(InflationResult::from_xdr_buffered(read_stream)?)),
13173 OperationType::ManageData =>
13174 Ok(OperationResultTr::ManageData(ManageDataResult::from_xdr_buffered(read_stream)?)),
13175 OperationType::BumpSequence =>
13176 Ok(OperationResultTr::BumpSequence(BumpSequenceResult::from_xdr_buffered(read_stream)?)),
13177 OperationType::ManageBuyOffer =>
13178 Ok(OperationResultTr::ManageBuyOffer(ManageBuyOfferResult::from_xdr_buffered(read_stream)?)),
13179 OperationType::PathPaymentStrictSend => Ok(OperationResultTr::PathPaymentStrictSend(
13180 PathPaymentStrictSendResult::from_xdr_buffered(read_stream)?,
13181 )),
13182 OperationType::CreateClaimableBalance => Ok(OperationResultTr::CreateClaimableBalance(
13183 CreateClaimableBalanceResult::from_xdr_buffered(read_stream)?,
13184 )),
13185 OperationType::ClaimClaimableBalance => Ok(OperationResultTr::ClaimClaimableBalance(
13186 ClaimClaimableBalanceResult::from_xdr_buffered(read_stream)?,
13187 )),
13188 OperationType::BeginSponsoringFutureReserves => Ok(OperationResultTr::BeginSponsoringFutureReserves(
13189 BeginSponsoringFutureReservesResult::from_xdr_buffered(read_stream)?,
13190 )),
13191 OperationType::EndSponsoringFutureReserves => Ok(OperationResultTr::EndSponsoringFutureReserves(
13192 EndSponsoringFutureReservesResult::from_xdr_buffered(read_stream)?,
13193 )),
13194 OperationType::RevokeSponsorship =>
13195 Ok(OperationResultTr::RevokeSponsorship(RevokeSponsorshipResult::from_xdr_buffered(read_stream)?)),
13196 OperationType::Clawback => Ok(OperationResultTr::Clawback(ClawbackResult::from_xdr_buffered(read_stream)?)),
13197 OperationType::ClawbackClaimableBalance => Ok(OperationResultTr::ClawbackClaimableBalance(
13198 ClawbackClaimableBalanceResult::from_xdr_buffered(read_stream)?,
13199 )),
13200 OperationType::SetTrustLineFlags =>
13201 Ok(OperationResultTr::SetTrustLineFlags(SetTrustLineFlagsResult::from_xdr_buffered(read_stream)?)),
13202 OperationType::LiquidityPoolDeposit =>
13203 Ok(OperationResultTr::LiquidityPoolDeposit(LiquidityPoolDepositResult::from_xdr_buffered(read_stream)?)),
13204 OperationType::LiquidityPoolWithdraw => Ok(OperationResultTr::LiquidityPoolWithdraw(
13205 LiquidityPoolWithdrawResult::from_xdr_buffered(read_stream)?,
13206 )),
13207 OperationType::InvokeHostFunction =>
13208 Ok(OperationResultTr::InvokeHostFunction(InvokeHostFunctionResult::from_xdr_buffered(read_stream)?)),
13209 OperationType::ExtendFootprintTtl =>
13210 Ok(OperationResultTr::ExtendFootprintTtl(ExtendFootprintTtlResult::from_xdr_buffered(read_stream)?)),
13211 OperationType::RestoreFootprint =>
13212 Ok(OperationResultTr::RestoreFootprint(RestoreFootprintResult::from_xdr_buffered(read_stream)?)),
13213 }
13214 }
13215}
13216
13217#[allow(dead_code)]
13219#[derive(Debug, Clone, Eq, PartialEq)]
13220pub enum OperationResult {
13221 OpInner(OperationResultTr),
13222 OpBadAuth,
13223 OpNoAccount,
13224 OpNotSupported,
13225 OpTooManySubentries,
13226 OpExceededWorkLimit,
13227 OpTooManySponsoring,
13228}
13229
13230impl XdrCodec for OperationResult {
13231 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13232 match self {
13233 OperationResult::OpInner(value) => {
13234 OperationResultCode::OpInner.to_xdr_buffered(write_stream);
13235 value.to_xdr_buffered(write_stream)
13236 },
13237 OperationResult::OpBadAuth => OperationResultCode::OpBadAuth.to_xdr_buffered(write_stream),
13238 OperationResult::OpNoAccount => OperationResultCode::OpNoAccount.to_xdr_buffered(write_stream),
13239 OperationResult::OpNotSupported => OperationResultCode::OpNotSupported.to_xdr_buffered(write_stream),
13240 OperationResult::OpTooManySubentries =>
13241 OperationResultCode::OpTooManySubentries.to_xdr_buffered(write_stream),
13242 OperationResult::OpExceededWorkLimit =>
13243 OperationResultCode::OpExceededWorkLimit.to_xdr_buffered(write_stream),
13244 OperationResult::OpTooManySponsoring =>
13245 OperationResultCode::OpTooManySponsoring.to_xdr_buffered(write_stream),
13246 }
13247 }
13248
13249 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13250 match OperationResultCode::from_xdr_buffered(read_stream)? {
13251 OperationResultCode::OpInner =>
13252 Ok(OperationResult::OpInner(OperationResultTr::from_xdr_buffered(read_stream)?)),
13253 OperationResultCode::OpBadAuth => Ok(OperationResult::OpBadAuth),
13254 OperationResultCode::OpNoAccount => Ok(OperationResult::OpNoAccount),
13255 OperationResultCode::OpNotSupported => Ok(OperationResult::OpNotSupported),
13256 OperationResultCode::OpTooManySubentries => Ok(OperationResult::OpTooManySubentries),
13257 OperationResultCode::OpExceededWorkLimit => Ok(OperationResult::OpExceededWorkLimit),
13258 OperationResultCode::OpTooManySponsoring => Ok(OperationResult::OpTooManySponsoring),
13259 }
13260 }
13261}
13262
13263#[allow(dead_code)]
13265#[derive(Debug, Clone, Eq, PartialEq)]
13266pub enum InnerTransactionResultResult {
13267 TxSuccess(UnlimitedVarArray<OperationResult>),
13268 TxFailed(UnlimitedVarArray<OperationResult>),
13269 TxTooEarly,
13270 TxTooLate,
13271 TxMissingOperation,
13272 TxBadSeq,
13273 TxBadAuth,
13274 TxInsufficientBalance,
13275 TxNoAccount,
13276 TxInsufficientFee,
13277 TxBadAuthExtra,
13278 TxInternalError,
13279 TxNotSupported,
13280 TxBadSponsorship,
13281 TxBadMinSeqAgeOrGap,
13282 TxMalformed,
13283 TxSorobanInvalid,
13284 Default(TransactionResultCode),
13285}
13286
13287impl XdrCodec for InnerTransactionResultResult {
13288 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13289 match self {
13290 InnerTransactionResultResult::TxSuccess(value) => {
13291 TransactionResultCode::TxSuccess.to_xdr_buffered(write_stream);
13292 value.to_xdr_buffered(write_stream)
13293 },
13294 InnerTransactionResultResult::TxFailed(value) => {
13295 TransactionResultCode::TxFailed.to_xdr_buffered(write_stream);
13296 value.to_xdr_buffered(write_stream)
13297 },
13298 InnerTransactionResultResult::TxTooEarly => TransactionResultCode::TxTooEarly.to_xdr_buffered(write_stream),
13299 InnerTransactionResultResult::TxTooLate => TransactionResultCode::TxTooLate.to_xdr_buffered(write_stream),
13300 InnerTransactionResultResult::TxMissingOperation =>
13301 TransactionResultCode::TxMissingOperation.to_xdr_buffered(write_stream),
13302 InnerTransactionResultResult::TxBadSeq => TransactionResultCode::TxBadSeq.to_xdr_buffered(write_stream),
13303 InnerTransactionResultResult::TxBadAuth => TransactionResultCode::TxBadAuth.to_xdr_buffered(write_stream),
13304 InnerTransactionResultResult::TxInsufficientBalance =>
13305 TransactionResultCode::TxInsufficientBalance.to_xdr_buffered(write_stream),
13306 InnerTransactionResultResult::TxNoAccount =>
13307 TransactionResultCode::TxNoAccount.to_xdr_buffered(write_stream),
13308 InnerTransactionResultResult::TxInsufficientFee =>
13309 TransactionResultCode::TxInsufficientFee.to_xdr_buffered(write_stream),
13310 InnerTransactionResultResult::TxBadAuthExtra =>
13311 TransactionResultCode::TxBadAuthExtra.to_xdr_buffered(write_stream),
13312 InnerTransactionResultResult::TxInternalError =>
13313 TransactionResultCode::TxInternalError.to_xdr_buffered(write_stream),
13314 InnerTransactionResultResult::TxNotSupported =>
13315 TransactionResultCode::TxNotSupported.to_xdr_buffered(write_stream),
13316 InnerTransactionResultResult::TxBadSponsorship =>
13317 TransactionResultCode::TxBadSponsorship.to_xdr_buffered(write_stream),
13318 InnerTransactionResultResult::TxBadMinSeqAgeOrGap =>
13319 TransactionResultCode::TxBadMinSeqAgeOrGap.to_xdr_buffered(write_stream),
13320 InnerTransactionResultResult::TxMalformed =>
13321 TransactionResultCode::TxMalformed.to_xdr_buffered(write_stream),
13322 InnerTransactionResultResult::TxSorobanInvalid =>
13323 TransactionResultCode::TxSorobanInvalid.to_xdr_buffered(write_stream),
13324 InnerTransactionResultResult::Default(code) => code.to_xdr_buffered(write_stream),
13325 }
13326 }
13327
13328 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13329 match TransactionResultCode::from_xdr_buffered(read_stream)? {
13330 TransactionResultCode::TxSuccess =>
13331 Ok(InnerTransactionResultResult::TxSuccess(UnlimitedVarArray::<OperationResult>::from_xdr_buffered(
13332 read_stream,
13333 )?)),
13334 TransactionResultCode::TxFailed =>
13335 Ok(InnerTransactionResultResult::TxFailed(UnlimitedVarArray::<OperationResult>::from_xdr_buffered(
13336 read_stream,
13337 )?)),
13338 TransactionResultCode::TxTooEarly => Ok(InnerTransactionResultResult::TxTooEarly),
13339 TransactionResultCode::TxTooLate => Ok(InnerTransactionResultResult::TxTooLate),
13340 TransactionResultCode::TxMissingOperation => Ok(InnerTransactionResultResult::TxMissingOperation),
13341 TransactionResultCode::TxBadSeq => Ok(InnerTransactionResultResult::TxBadSeq),
13342 TransactionResultCode::TxBadAuth => Ok(InnerTransactionResultResult::TxBadAuth),
13343 TransactionResultCode::TxInsufficientBalance => Ok(InnerTransactionResultResult::TxInsufficientBalance),
13344 TransactionResultCode::TxNoAccount => Ok(InnerTransactionResultResult::TxNoAccount),
13345 TransactionResultCode::TxInsufficientFee => Ok(InnerTransactionResultResult::TxInsufficientFee),
13346 TransactionResultCode::TxBadAuthExtra => Ok(InnerTransactionResultResult::TxBadAuthExtra),
13347 TransactionResultCode::TxInternalError => Ok(InnerTransactionResultResult::TxInternalError),
13348 TransactionResultCode::TxNotSupported => Ok(InnerTransactionResultResult::TxNotSupported),
13349 TransactionResultCode::TxBadSponsorship => Ok(InnerTransactionResultResult::TxBadSponsorship),
13350 TransactionResultCode::TxBadMinSeqAgeOrGap => Ok(InnerTransactionResultResult::TxBadMinSeqAgeOrGap),
13351 TransactionResultCode::TxMalformed => Ok(InnerTransactionResultResult::TxMalformed),
13352 TransactionResultCode::TxSorobanInvalid => Ok(InnerTransactionResultResult::TxSorobanInvalid),
13353 code => Ok(InnerTransactionResultResult::Default(code)),
13354 }
13355 }
13356}
13357
13358#[allow(dead_code)]
13360#[derive(Debug, Clone, Eq, PartialEq)]
13361pub enum InnerTransactionResultExt {
13362 V0,
13363 Default(i32),
13364}
13365
13366impl XdrCodec for InnerTransactionResultExt {
13367 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13368 match self {
13369 InnerTransactionResultExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
13370 InnerTransactionResultExt::Default(code) => code.to_xdr_buffered(write_stream),
13371 }
13372 }
13373
13374 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13375 match i32::from_xdr_buffered(read_stream)? {
13376 0 => Ok(InnerTransactionResultExt::V0),
13377 code => Ok(InnerTransactionResultExt::Default(code)),
13378 }
13379 }
13380}
13381
13382#[allow(dead_code)]
13384#[derive(Debug, Clone, Eq, PartialEq)]
13385pub enum TransactionResultResult {
13386 TxFeeBumpInnerSuccess(InnerTransactionResultPair),
13387 TxFeeBumpInnerFailed(InnerTransactionResultPair),
13388 TxSuccess(UnlimitedVarArray<OperationResult>),
13389 TxFailed(UnlimitedVarArray<OperationResult>),
13390 TxTooEarly,
13391 TxTooLate,
13392 TxMissingOperation,
13393 TxBadSeq,
13394 TxBadAuth,
13395 TxInsufficientBalance,
13396 TxNoAccount,
13397 TxInsufficientFee,
13398 TxBadAuthExtra,
13399 TxInternalError,
13400 TxNotSupported,
13401 TxBadSponsorship,
13402 TxBadMinSeqAgeOrGap,
13403 TxMalformed,
13404 TxSorobanInvalid,
13405}
13406
13407impl XdrCodec for TransactionResultResult {
13408 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13409 match self {
13410 TransactionResultResult::TxFeeBumpInnerSuccess(value) => {
13411 TransactionResultCode::TxFeeBumpInnerSuccess.to_xdr_buffered(write_stream);
13412 value.to_xdr_buffered(write_stream)
13413 },
13414 TransactionResultResult::TxFeeBumpInnerFailed(value) => {
13415 TransactionResultCode::TxFeeBumpInnerFailed.to_xdr_buffered(write_stream);
13416 value.to_xdr_buffered(write_stream)
13417 },
13418 TransactionResultResult::TxSuccess(value) => {
13419 TransactionResultCode::TxSuccess.to_xdr_buffered(write_stream);
13420 value.to_xdr_buffered(write_stream)
13421 },
13422 TransactionResultResult::TxFailed(value) => {
13423 TransactionResultCode::TxFailed.to_xdr_buffered(write_stream);
13424 value.to_xdr_buffered(write_stream)
13425 },
13426 TransactionResultResult::TxTooEarly => TransactionResultCode::TxTooEarly.to_xdr_buffered(write_stream),
13427 TransactionResultResult::TxTooLate => TransactionResultCode::TxTooLate.to_xdr_buffered(write_stream),
13428 TransactionResultResult::TxMissingOperation =>
13429 TransactionResultCode::TxMissingOperation.to_xdr_buffered(write_stream),
13430 TransactionResultResult::TxBadSeq => TransactionResultCode::TxBadSeq.to_xdr_buffered(write_stream),
13431 TransactionResultResult::TxBadAuth => TransactionResultCode::TxBadAuth.to_xdr_buffered(write_stream),
13432 TransactionResultResult::TxInsufficientBalance =>
13433 TransactionResultCode::TxInsufficientBalance.to_xdr_buffered(write_stream),
13434 TransactionResultResult::TxNoAccount => TransactionResultCode::TxNoAccount.to_xdr_buffered(write_stream),
13435 TransactionResultResult::TxInsufficientFee =>
13436 TransactionResultCode::TxInsufficientFee.to_xdr_buffered(write_stream),
13437 TransactionResultResult::TxBadAuthExtra =>
13438 TransactionResultCode::TxBadAuthExtra.to_xdr_buffered(write_stream),
13439 TransactionResultResult::TxInternalError =>
13440 TransactionResultCode::TxInternalError.to_xdr_buffered(write_stream),
13441 TransactionResultResult::TxNotSupported =>
13442 TransactionResultCode::TxNotSupported.to_xdr_buffered(write_stream),
13443 TransactionResultResult::TxBadSponsorship =>
13444 TransactionResultCode::TxBadSponsorship.to_xdr_buffered(write_stream),
13445 TransactionResultResult::TxBadMinSeqAgeOrGap =>
13446 TransactionResultCode::TxBadMinSeqAgeOrGap.to_xdr_buffered(write_stream),
13447 TransactionResultResult::TxMalformed => TransactionResultCode::TxMalformed.to_xdr_buffered(write_stream),
13448 TransactionResultResult::TxSorobanInvalid =>
13449 TransactionResultCode::TxSorobanInvalid.to_xdr_buffered(write_stream),
13450 }
13451 }
13452
13453 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13454 match TransactionResultCode::from_xdr_buffered(read_stream)? {
13455 TransactionResultCode::TxFeeBumpInnerSuccess => Ok(TransactionResultResult::TxFeeBumpInnerSuccess(
13456 InnerTransactionResultPair::from_xdr_buffered(read_stream)?,
13457 )),
13458 TransactionResultCode::TxFeeBumpInnerFailed => Ok(TransactionResultResult::TxFeeBumpInnerFailed(
13459 InnerTransactionResultPair::from_xdr_buffered(read_stream)?,
13460 )),
13461 TransactionResultCode::TxSuccess =>
13462 Ok(TransactionResultResult::TxSuccess(UnlimitedVarArray::<OperationResult>::from_xdr_buffered(
13463 read_stream,
13464 )?)),
13465 TransactionResultCode::TxFailed =>
13466 Ok(TransactionResultResult::TxFailed(UnlimitedVarArray::<OperationResult>::from_xdr_buffered(
13467 read_stream,
13468 )?)),
13469 TransactionResultCode::TxTooEarly => Ok(TransactionResultResult::TxTooEarly),
13470 TransactionResultCode::TxTooLate => Ok(TransactionResultResult::TxTooLate),
13471 TransactionResultCode::TxMissingOperation => Ok(TransactionResultResult::TxMissingOperation),
13472 TransactionResultCode::TxBadSeq => Ok(TransactionResultResult::TxBadSeq),
13473 TransactionResultCode::TxBadAuth => Ok(TransactionResultResult::TxBadAuth),
13474 TransactionResultCode::TxInsufficientBalance => Ok(TransactionResultResult::TxInsufficientBalance),
13475 TransactionResultCode::TxNoAccount => Ok(TransactionResultResult::TxNoAccount),
13476 TransactionResultCode::TxInsufficientFee => Ok(TransactionResultResult::TxInsufficientFee),
13477 TransactionResultCode::TxBadAuthExtra => Ok(TransactionResultResult::TxBadAuthExtra),
13478 TransactionResultCode::TxInternalError => Ok(TransactionResultResult::TxInternalError),
13479 TransactionResultCode::TxNotSupported => Ok(TransactionResultResult::TxNotSupported),
13480 TransactionResultCode::TxBadSponsorship => Ok(TransactionResultResult::TxBadSponsorship),
13481 TransactionResultCode::TxBadMinSeqAgeOrGap => Ok(TransactionResultResult::TxBadMinSeqAgeOrGap),
13482 TransactionResultCode::TxMalformed => Ok(TransactionResultResult::TxMalformed),
13483 TransactionResultCode::TxSorobanInvalid => Ok(TransactionResultResult::TxSorobanInvalid),
13484 }
13485 }
13486}
13487
13488#[allow(dead_code)]
13490#[derive(Debug, Clone, Eq, PartialEq)]
13491pub enum TransactionResultExt {
13492 V0,
13493 Default(i32),
13494}
13495
13496impl XdrCodec for TransactionResultExt {
13497 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13498 match self {
13499 TransactionResultExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
13500 TransactionResultExt::Default(code) => code.to_xdr_buffered(write_stream),
13501 }
13502 }
13503
13504 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13505 match i32::from_xdr_buffered(read_stream)? {
13506 0 => Ok(TransactionResultExt::V0),
13507 code => Ok(TransactionResultExt::Default(code)),
13508 }
13509 }
13510}
13511
13512#[allow(dead_code)]
13514#[derive(Debug, Clone, Eq, PartialEq)]
13515pub enum ExtensionPoint {
13516 V0,
13517 Default(i32),
13518}
13519
13520impl XdrCodec for ExtensionPoint {
13521 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13522 match self {
13523 ExtensionPoint::V0 => (0 as i32).to_xdr_buffered(write_stream),
13524 ExtensionPoint::Default(code) => code.to_xdr_buffered(write_stream),
13525 }
13526 }
13527
13528 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13529 match i32::from_xdr_buffered(read_stream)? {
13530 0 => Ok(ExtensionPoint::V0),
13531 code => Ok(ExtensionPoint::Default(code)),
13532 }
13533 }
13534}
13535
13536#[allow(dead_code)]
13538#[derive(Debug, Clone, Eq, PartialEq)]
13539pub enum PublicKey {
13540 PublicKeyTypeEd25519(Uint256),
13541}
13542
13543impl XdrCodec for PublicKey {
13544 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13545 match self {
13546 PublicKey::PublicKeyTypeEd25519(value) => {
13547 PublicKeyType::PublicKeyTypeEd25519.to_xdr_buffered(write_stream);
13548 value.to_xdr_buffered(write_stream)
13549 },
13550 }
13551 }
13552
13553 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13554 match PublicKeyType::from_xdr_buffered(read_stream)? {
13555 PublicKeyType::PublicKeyTypeEd25519 =>
13556 Ok(PublicKey::PublicKeyTypeEd25519(Uint256::from_xdr_buffered(read_stream)?)),
13557 }
13558 }
13559}
13560
13561#[allow(dead_code)]
13563#[derive(Debug, Clone, Eq, PartialEq)]
13564pub enum SignerKey {
13565 SignerKeyTypeEd25519(Uint256),
13566 SignerKeyTypePreAuthTx(Uint256),
13567 SignerKeyTypeHashX(Uint256),
13568 SignerKeyTypeEd25519SignedPayload(SignerKeyEd25519SignedPayload),
13569}
13570
13571impl XdrCodec for SignerKey {
13572 fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
13573 match self {
13574 SignerKey::SignerKeyTypeEd25519(value) => {
13575 SignerKeyType::SignerKeyTypeEd25519.to_xdr_buffered(write_stream);
13576 value.to_xdr_buffered(write_stream)
13577 },
13578 SignerKey::SignerKeyTypePreAuthTx(value) => {
13579 SignerKeyType::SignerKeyTypePreAuthTx.to_xdr_buffered(write_stream);
13580 value.to_xdr_buffered(write_stream)
13581 },
13582 SignerKey::SignerKeyTypeHashX(value) => {
13583 SignerKeyType::SignerKeyTypeHashX.to_xdr_buffered(write_stream);
13584 value.to_xdr_buffered(write_stream)
13585 },
13586 SignerKey::SignerKeyTypeEd25519SignedPayload(value) => {
13587 SignerKeyType::SignerKeyTypeEd25519SignedPayload.to_xdr_buffered(write_stream);
13588 value.to_xdr_buffered(write_stream)
13589 },
13590 }
13591 }
13592
13593 fn from_xdr_buffered<T: AsRef<[u8]>>(read_stream: &mut ReadStream<T>) -> Result<Self, DecodeError> {
13594 match SignerKeyType::from_xdr_buffered(read_stream)? {
13595 SignerKeyType::SignerKeyTypeEd25519 =>
13596 Ok(SignerKey::SignerKeyTypeEd25519(Uint256::from_xdr_buffered(read_stream)?)),
13597 SignerKeyType::SignerKeyTypePreAuthTx =>
13598 Ok(SignerKey::SignerKeyTypePreAuthTx(Uint256::from_xdr_buffered(read_stream)?)),
13599 SignerKeyType::SignerKeyTypeHashX =>
13600 Ok(SignerKey::SignerKeyTypeHashX(Uint256::from_xdr_buffered(read_stream)?)),
13601 SignerKeyType::SignerKeyTypeEd25519SignedPayload => Ok(SignerKey::SignerKeyTypeEd25519SignedPayload(
13602 SignerKeyEd25519SignedPayload::from_xdr_buffered(read_stream)?,
13603 )),
13604 }
13605 }
13606}