Skip to main content

stellar_xdr/generated/
type_enum.rs

1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg(feature = "type_enum")]
5#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
6#[cfg_attr(
7    all(feature = "serde", feature = "alloc"),
8    derive(serde::Serialize, serde::Deserialize),
9    serde(rename_all = "snake_case")
10)]
11#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
12pub enum TypeVariant {
13    Value,
14    ScpBallot,
15    ScpStatementType,
16    ScpNomination,
17    ScpStatement,
18    ScpStatementPledges,
19    ScpStatementPrepare,
20    ScpStatementConfirm,
21    ScpStatementExternalize,
22    ScpEnvelope,
23    ScpQuorumSet,
24    EncodedLedgerKey,
25    ConfigSettingContractExecutionLanesV0,
26    ConfigSettingContractComputeV0,
27    ConfigSettingContractParallelComputeV0,
28    ConfigSettingContractLedgerCostV0,
29    ConfigSettingContractLedgerCostExtV0,
30    ConfigSettingContractHistoricalDataV0,
31    ConfigSettingContractEventsV0,
32    ConfigSettingContractBandwidthV0,
33    ContractCostType,
34    ContractCostParamEntry,
35    StateArchivalSettings,
36    EvictionIterator,
37    ConfigSettingScpTiming,
38    FrozenLedgerKeys,
39    FrozenLedgerKeysDelta,
40    FreezeBypassTxs,
41    FreezeBypassTxsDelta,
42    ContractCostParams,
43    ConfigSettingId,
44    ConfigSettingEntry,
45    ScEnvMetaKind,
46    ScEnvMetaEntry,
47    ScEnvMetaEntryInterfaceVersion,
48    ScMetaV0,
49    ScMetaKind,
50    ScMetaEntry,
51    ScSpecType,
52    ScSpecTypeOption,
53    ScSpecTypeResult,
54    ScSpecTypeVec,
55    ScSpecTypeMap,
56    ScSpecTypeTuple,
57    ScSpecTypeBytesN,
58    ScSpecTypeUdt,
59    ScSpecTypeDef,
60    ScSpecUdtStructFieldV0,
61    ScSpecUdtStructV0,
62    ScSpecUdtUnionCaseVoidV0,
63    ScSpecUdtUnionCaseTupleV0,
64    ScSpecUdtUnionCaseV0Kind,
65    ScSpecUdtUnionCaseV0,
66    ScSpecUdtUnionV0,
67    ScSpecUdtEnumCaseV0,
68    ScSpecUdtEnumV0,
69    ScSpecUdtErrorEnumCaseV0,
70    ScSpecUdtErrorEnumV0,
71    ScSpecFunctionInputV0,
72    ScSpecFunctionV0,
73    ScSpecEventParamLocationV0,
74    ScSpecEventParamV0,
75    ScSpecEventDataFormat,
76    ScSpecEventV0,
77    ScSpecEntryKind,
78    ScSpecEntry,
79    ScBytes,
80    ScString,
81    ScSymbol,
82    ScValType,
83    ScErrorType,
84    ScErrorCode,
85    ScError,
86    UInt128Parts,
87    Int128Parts,
88    UInt256Parts,
89    Int256Parts,
90    ContractExecutableType,
91    ScAddressType,
92    MuxedEd25519Account,
93    #[cfg(feature = "cap_0084_muxed_contract")]
94    MuxedContract,
95    ScAddress,
96    ContractExecutableExternalRef,
97    ContractExecutable,
98    ScVec,
99    ScMap,
100    ScNonceKey,
101    ScContractInstance,
102    ScVal,
103    ScMapEntry,
104    LedgerCloseMetaBatch,
105    StoredTransactionSet,
106    StoredDebugTransactionSet,
107    PersistedScpStateV0,
108    PersistedScpStateV1,
109    PersistedScpState,
110    Thresholds,
111    String32,
112    String64,
113    SequenceNumber,
114    DataValue,
115    AssetCode4,
116    AssetCode12,
117    AssetType,
118    AssetCode,
119    AlphaNum4,
120    AlphaNum12,
121    Asset,
122    Price,
123    Liabilities,
124    ThresholdIndexes,
125    LedgerEntryType,
126    Signer,
127    AccountFlags,
128    SponsorshipDescriptor,
129    AccountEntryExtensionV3,
130    AccountEntryExtensionV2,
131    AccountEntryExtensionV2Ext,
132    AccountEntryExtensionV1,
133    AccountEntryExtensionV1Ext,
134    AccountEntry,
135    AccountEntryExt,
136    TrustLineFlags,
137    LiquidityPoolType,
138    TrustLineAsset,
139    TrustLineEntryExtensionV2,
140    TrustLineEntryExtensionV2Ext,
141    TrustLineEntry,
142    TrustLineEntryExt,
143    TrustLineEntryV1,
144    TrustLineEntryV1Ext,
145    OfferEntryFlags,
146    OfferEntry,
147    OfferEntryExt,
148    DataEntry,
149    DataEntryExt,
150    ClaimPredicateType,
151    ClaimPredicate,
152    ClaimantType,
153    Claimant,
154    ClaimantV0,
155    ClaimableBalanceFlags,
156    ClaimableBalanceEntryExtensionV1,
157    ClaimableBalanceEntryExtensionV1Ext,
158    ClaimableBalanceEntry,
159    ClaimableBalanceEntryExt,
160    LiquidityPoolConstantProductParameters,
161    LiquidityPoolEntry,
162    LiquidityPoolEntryBody,
163    LiquidityPoolEntryConstantProduct,
164    ContractDataDurability,
165    ContractDataEntry,
166    ContractCodeCostInputs,
167    ContractCodeEntry,
168    ContractCodeEntryExt,
169    ContractCodeEntryV1,
170    TtlEntry,
171    LedgerEntryExtensionV1,
172    LedgerEntryExtensionV1Ext,
173    LedgerEntry,
174    LedgerEntryData,
175    LedgerEntryExt,
176    LedgerKey,
177    LedgerKeyAccount,
178    LedgerKeyTrustLine,
179    LedgerKeyOffer,
180    LedgerKeyData,
181    LedgerKeyClaimableBalance,
182    LedgerKeyLiquidityPool,
183    LedgerKeyContractData,
184    LedgerKeyContractCode,
185    LedgerKeyConfigSetting,
186    LedgerKeyTtl,
187    EnvelopeType,
188    BucketListType,
189    BucketEntryType,
190    HotArchiveBucketEntryType,
191    BucketMetadata,
192    BucketMetadataExt,
193    BucketEntry,
194    HotArchiveBucketEntry,
195    UpgradeType,
196    StellarValueType,
197    LedgerCloseValueSignature,
198    StellarValue,
199    StellarValueExt,
200    StellarValueProposedValue,
201    LedgerHeaderFlags,
202    LedgerHeaderExtensionV1,
203    LedgerHeaderExtensionV1Ext,
204    LedgerHeader,
205    LedgerHeaderExt,
206    LedgerUpgradeType,
207    ConfigUpgradeSetKey,
208    LedgerUpgrade,
209    ConfigUpgradeSet,
210    TxSetComponentType,
211    DependentTxCluster,
212    ParallelTxExecutionStage,
213    ParallelTxsComponent,
214    TxSetComponent,
215    TxSetComponentTxsMaybeDiscountedFee,
216    TransactionPhase,
217    TransactionSet,
218    TransactionSetV1,
219    GeneralizedTransactionSet,
220    TransactionResultPair,
221    TransactionResultSet,
222    TransactionHistoryEntry,
223    TransactionHistoryEntryExt,
224    TransactionHistoryResultEntry,
225    TransactionHistoryResultEntryExt,
226    LedgerHeaderHistoryEntry,
227    LedgerHeaderHistoryEntryExt,
228    LedgerScpMessages,
229    ScpHistoryEntryV0,
230    ScpHistoryEntry,
231    LedgerEntryChangeType,
232    LedgerEntryChange,
233    LedgerEntryChanges,
234    OperationMeta,
235    TransactionMetaV1,
236    TransactionMetaV2,
237    ContractEventType,
238    ContractEvent,
239    ContractEventBody,
240    ContractEventV0,
241    DiagnosticEvent,
242    SorobanTransactionMetaExtV1,
243    SorobanTransactionMetaExt,
244    SorobanTransactionMeta,
245    TransactionMetaV3,
246    OperationMetaV2,
247    SorobanTransactionMetaV2,
248    TransactionEventStage,
249    TransactionEvent,
250    TransactionMetaV4,
251    InvokeHostFunctionSuccessPreImage,
252    TransactionMeta,
253    TransactionResultMeta,
254    TransactionResultMetaV1,
255    UpgradeEntryMeta,
256    LedgerCloseMetaV0,
257    LedgerCloseMetaExtV1,
258    LedgerCloseMetaExt,
259    LedgerCloseMetaV1,
260    LedgerCloseMetaV2,
261    LedgerCloseMeta,
262    ErrorCode,
263    SError,
264    SendMore,
265    SendMoreExtended,
266    AuthCert,
267    Hello,
268    Auth,
269    IpAddrType,
270    PeerAddress,
271    PeerAddressIp,
272    MessageType,
273    DontHave,
274    SurveyMessageCommandType,
275    SurveyMessageResponseType,
276    TimeSlicedSurveyStartCollectingMessage,
277    SignedTimeSlicedSurveyStartCollectingMessage,
278    TimeSlicedSurveyStopCollectingMessage,
279    SignedTimeSlicedSurveyStopCollectingMessage,
280    SurveyRequestMessage,
281    TimeSlicedSurveyRequestMessage,
282    SignedTimeSlicedSurveyRequestMessage,
283    EncryptedBody,
284    SurveyResponseMessage,
285    TimeSlicedSurveyResponseMessage,
286    SignedTimeSlicedSurveyResponseMessage,
287    PeerStats,
288    TimeSlicedNodeData,
289    TimeSlicedPeerData,
290    TimeSlicedPeerDataList,
291    TopologyResponseBodyV2,
292    SurveyResponseBody,
293    TxAdvertVector,
294    FloodAdvert,
295    TxDemandVector,
296    FloodDemand,
297    StellarMessage,
298    AuthenticatedMessage,
299    AuthenticatedMessageV0,
300    LiquidityPoolParameters,
301    MuxedAccount,
302    MuxedAccountMed25519,
303    DecoratedSignature,
304    OperationType,
305    CreateAccountOp,
306    PaymentOp,
307    PathPaymentStrictReceiveOp,
308    PathPaymentStrictSendOp,
309    ManageSellOfferOp,
310    ManageBuyOfferOp,
311    CreatePassiveSellOfferOp,
312    SetOptionsOp,
313    ChangeTrustAsset,
314    ChangeTrustOp,
315    AllowTrustOp,
316    ManageDataOp,
317    BumpSequenceOp,
318    CreateClaimableBalanceOp,
319    ClaimClaimableBalanceOp,
320    BeginSponsoringFutureReservesOp,
321    RevokeSponsorshipType,
322    RevokeSponsorshipOp,
323    RevokeSponsorshipOpSigner,
324    ClawbackOp,
325    ClawbackClaimableBalanceOp,
326    SetTrustLineFlagsOp,
327    LiquidityPoolDepositOp,
328    LiquidityPoolWithdrawOp,
329    HostFunctionType,
330    ContractIdPreimageType,
331    ContractIdPreimage,
332    ContractIdPreimageFromAddress,
333    CreateContractArgs,
334    CreateContractArgsV2,
335    InvokeContractArgs,
336    HostFunction,
337    SorobanAuthorizedFunctionType,
338    SorobanAuthorizedFunction,
339    SorobanAuthorizedInvocation,
340    SorobanAddressCredentials,
341    SorobanDelegateSignature,
342    SorobanAddressCredentialsWithDelegates,
343    SorobanCredentialsType,
344    SorobanCredentials,
345    SorobanAuthorizationEntry,
346    SorobanAuthorizationEntries,
347    InvokeHostFunctionOp,
348    ExtendFootprintTtlOp,
349    RestoreFootprintOp,
350    Operation,
351    OperationBody,
352    HashIdPreimage,
353    HashIdPreimageOperationId,
354    HashIdPreimageRevokeId,
355    HashIdPreimageContractId,
356    HashIdPreimageSorobanAuthorization,
357    HashIdPreimageSorobanAuthorizationWithAddress,
358    MemoType,
359    Memo,
360    TimeBounds,
361    LedgerBounds,
362    PreconditionsV2,
363    PreconditionType,
364    Preconditions,
365    LedgerFootprint,
366    SorobanResources,
367    SorobanResourcesExtV0,
368    SorobanTransactionData,
369    SorobanTransactionDataExt,
370    TransactionV0,
371    TransactionV0Ext,
372    TransactionV0Envelope,
373    Transaction,
374    TransactionExt,
375    TransactionV1Envelope,
376    FeeBumpTransaction,
377    FeeBumpTransactionInnerTx,
378    FeeBumpTransactionExt,
379    FeeBumpTransactionEnvelope,
380    TransactionEnvelope,
381    TransactionSignaturePayload,
382    TransactionSignaturePayloadTaggedTransaction,
383    ClaimAtomType,
384    ClaimOfferAtomV0,
385    ClaimOfferAtom,
386    ClaimLiquidityAtom,
387    ClaimAtom,
388    CreateAccountResultCode,
389    CreateAccountResult,
390    PaymentResultCode,
391    PaymentResult,
392    PathPaymentStrictReceiveResultCode,
393    SimplePaymentResult,
394    PathPaymentStrictReceiveResult,
395    PathPaymentStrictReceiveResultSuccess,
396    PathPaymentStrictSendResultCode,
397    PathPaymentStrictSendResult,
398    PathPaymentStrictSendResultSuccess,
399    ManageSellOfferResultCode,
400    ManageOfferEffect,
401    ManageOfferSuccessResult,
402    ManageOfferSuccessResultOffer,
403    ManageSellOfferResult,
404    ManageBuyOfferResultCode,
405    ManageBuyOfferResult,
406    SetOptionsResultCode,
407    SetOptionsResult,
408    ChangeTrustResultCode,
409    ChangeTrustResult,
410    AllowTrustResultCode,
411    AllowTrustResult,
412    AccountMergeResultCode,
413    AccountMergeResult,
414    InflationResultCode,
415    InflationPayout,
416    InflationResult,
417    ManageDataResultCode,
418    ManageDataResult,
419    BumpSequenceResultCode,
420    BumpSequenceResult,
421    CreateClaimableBalanceResultCode,
422    CreateClaimableBalanceResult,
423    ClaimClaimableBalanceResultCode,
424    ClaimClaimableBalanceResult,
425    BeginSponsoringFutureReservesResultCode,
426    BeginSponsoringFutureReservesResult,
427    EndSponsoringFutureReservesResultCode,
428    EndSponsoringFutureReservesResult,
429    RevokeSponsorshipResultCode,
430    RevokeSponsorshipResult,
431    ClawbackResultCode,
432    ClawbackResult,
433    ClawbackClaimableBalanceResultCode,
434    ClawbackClaimableBalanceResult,
435    SetTrustLineFlagsResultCode,
436    SetTrustLineFlagsResult,
437    LiquidityPoolDepositResultCode,
438    LiquidityPoolDepositResult,
439    LiquidityPoolWithdrawResultCode,
440    LiquidityPoolWithdrawResult,
441    InvokeHostFunctionResultCode,
442    InvokeHostFunctionResult,
443    ExtendFootprintTtlResultCode,
444    ExtendFootprintTtlResult,
445    RestoreFootprintResultCode,
446    RestoreFootprintResult,
447    OperationResultCode,
448    OperationResult,
449    OperationResultTr,
450    TransactionResultCode,
451    InnerTransactionResult,
452    InnerTransactionResultResult,
453    InnerTransactionResultExt,
454    InnerTransactionResultPair,
455    TransactionResult,
456    TransactionResultResult,
457    TransactionResultExt,
458    Hash,
459    Uint256,
460    Uint32,
461    Int32,
462    Uint64,
463    Int64,
464    TimePoint,
465    Duration,
466    ExtensionPoint,
467    CryptoKeyType,
468    PublicKeyType,
469    SignerKeyType,
470    PublicKey,
471    SignerKey,
472    SignerKeyEd25519SignedPayload,
473    Signature,
474    SignatureHint,
475    NodeId,
476    AccountId,
477    ContractId,
478    Curve25519Secret,
479    Curve25519Public,
480    HmacSha256Key,
481    HmacSha256Mac,
482    ShortHashSeed,
483    BinaryFuseFilterType,
484    SerializedBinaryFuseFilter,
485    PoolId,
486    ClaimableBalanceIdType,
487    ClaimableBalanceId,
488    #[cfg(feature = "test_feature")]
489    TestNextType,
490}
491
492#[cfg(feature = "type_enum")]
493impl TypeVariant {
494    const _VARIANTS: &[TypeVariant] = &[
495        TypeVariant::Value,
496        TypeVariant::ScpBallot,
497        TypeVariant::ScpStatementType,
498        TypeVariant::ScpNomination,
499        TypeVariant::ScpStatement,
500        TypeVariant::ScpStatementPledges,
501        TypeVariant::ScpStatementPrepare,
502        TypeVariant::ScpStatementConfirm,
503        TypeVariant::ScpStatementExternalize,
504        TypeVariant::ScpEnvelope,
505        TypeVariant::ScpQuorumSet,
506        TypeVariant::EncodedLedgerKey,
507        TypeVariant::ConfigSettingContractExecutionLanesV0,
508        TypeVariant::ConfigSettingContractComputeV0,
509        TypeVariant::ConfigSettingContractParallelComputeV0,
510        TypeVariant::ConfigSettingContractLedgerCostV0,
511        TypeVariant::ConfigSettingContractLedgerCostExtV0,
512        TypeVariant::ConfigSettingContractHistoricalDataV0,
513        TypeVariant::ConfigSettingContractEventsV0,
514        TypeVariant::ConfigSettingContractBandwidthV0,
515        TypeVariant::ContractCostType,
516        TypeVariant::ContractCostParamEntry,
517        TypeVariant::StateArchivalSettings,
518        TypeVariant::EvictionIterator,
519        TypeVariant::ConfigSettingScpTiming,
520        TypeVariant::FrozenLedgerKeys,
521        TypeVariant::FrozenLedgerKeysDelta,
522        TypeVariant::FreezeBypassTxs,
523        TypeVariant::FreezeBypassTxsDelta,
524        TypeVariant::ContractCostParams,
525        TypeVariant::ConfigSettingId,
526        TypeVariant::ConfigSettingEntry,
527        TypeVariant::ScEnvMetaKind,
528        TypeVariant::ScEnvMetaEntry,
529        TypeVariant::ScEnvMetaEntryInterfaceVersion,
530        TypeVariant::ScMetaV0,
531        TypeVariant::ScMetaKind,
532        TypeVariant::ScMetaEntry,
533        TypeVariant::ScSpecType,
534        TypeVariant::ScSpecTypeOption,
535        TypeVariant::ScSpecTypeResult,
536        TypeVariant::ScSpecTypeVec,
537        TypeVariant::ScSpecTypeMap,
538        TypeVariant::ScSpecTypeTuple,
539        TypeVariant::ScSpecTypeBytesN,
540        TypeVariant::ScSpecTypeUdt,
541        TypeVariant::ScSpecTypeDef,
542        TypeVariant::ScSpecUdtStructFieldV0,
543        TypeVariant::ScSpecUdtStructV0,
544        TypeVariant::ScSpecUdtUnionCaseVoidV0,
545        TypeVariant::ScSpecUdtUnionCaseTupleV0,
546        TypeVariant::ScSpecUdtUnionCaseV0Kind,
547        TypeVariant::ScSpecUdtUnionCaseV0,
548        TypeVariant::ScSpecUdtUnionV0,
549        TypeVariant::ScSpecUdtEnumCaseV0,
550        TypeVariant::ScSpecUdtEnumV0,
551        TypeVariant::ScSpecUdtErrorEnumCaseV0,
552        TypeVariant::ScSpecUdtErrorEnumV0,
553        TypeVariant::ScSpecFunctionInputV0,
554        TypeVariant::ScSpecFunctionV0,
555        TypeVariant::ScSpecEventParamLocationV0,
556        TypeVariant::ScSpecEventParamV0,
557        TypeVariant::ScSpecEventDataFormat,
558        TypeVariant::ScSpecEventV0,
559        TypeVariant::ScSpecEntryKind,
560        TypeVariant::ScSpecEntry,
561        TypeVariant::ScBytes,
562        TypeVariant::ScString,
563        TypeVariant::ScSymbol,
564        TypeVariant::ScValType,
565        TypeVariant::ScErrorType,
566        TypeVariant::ScErrorCode,
567        TypeVariant::ScError,
568        TypeVariant::UInt128Parts,
569        TypeVariant::Int128Parts,
570        TypeVariant::UInt256Parts,
571        TypeVariant::Int256Parts,
572        TypeVariant::ContractExecutableType,
573        TypeVariant::ScAddressType,
574        TypeVariant::MuxedEd25519Account,
575        #[cfg(feature = "cap_0084_muxed_contract")]
576        TypeVariant::MuxedContract,
577        TypeVariant::ScAddress,
578        TypeVariant::ContractExecutableExternalRef,
579        TypeVariant::ContractExecutable,
580        TypeVariant::ScVec,
581        TypeVariant::ScMap,
582        TypeVariant::ScNonceKey,
583        TypeVariant::ScContractInstance,
584        TypeVariant::ScVal,
585        TypeVariant::ScMapEntry,
586        TypeVariant::LedgerCloseMetaBatch,
587        TypeVariant::StoredTransactionSet,
588        TypeVariant::StoredDebugTransactionSet,
589        TypeVariant::PersistedScpStateV0,
590        TypeVariant::PersistedScpStateV1,
591        TypeVariant::PersistedScpState,
592        TypeVariant::Thresholds,
593        TypeVariant::String32,
594        TypeVariant::String64,
595        TypeVariant::SequenceNumber,
596        TypeVariant::DataValue,
597        TypeVariant::AssetCode4,
598        TypeVariant::AssetCode12,
599        TypeVariant::AssetType,
600        TypeVariant::AssetCode,
601        TypeVariant::AlphaNum4,
602        TypeVariant::AlphaNum12,
603        TypeVariant::Asset,
604        TypeVariant::Price,
605        TypeVariant::Liabilities,
606        TypeVariant::ThresholdIndexes,
607        TypeVariant::LedgerEntryType,
608        TypeVariant::Signer,
609        TypeVariant::AccountFlags,
610        TypeVariant::SponsorshipDescriptor,
611        TypeVariant::AccountEntryExtensionV3,
612        TypeVariant::AccountEntryExtensionV2,
613        TypeVariant::AccountEntryExtensionV2Ext,
614        TypeVariant::AccountEntryExtensionV1,
615        TypeVariant::AccountEntryExtensionV1Ext,
616        TypeVariant::AccountEntry,
617        TypeVariant::AccountEntryExt,
618        TypeVariant::TrustLineFlags,
619        TypeVariant::LiquidityPoolType,
620        TypeVariant::TrustLineAsset,
621        TypeVariant::TrustLineEntryExtensionV2,
622        TypeVariant::TrustLineEntryExtensionV2Ext,
623        TypeVariant::TrustLineEntry,
624        TypeVariant::TrustLineEntryExt,
625        TypeVariant::TrustLineEntryV1,
626        TypeVariant::TrustLineEntryV1Ext,
627        TypeVariant::OfferEntryFlags,
628        TypeVariant::OfferEntry,
629        TypeVariant::OfferEntryExt,
630        TypeVariant::DataEntry,
631        TypeVariant::DataEntryExt,
632        TypeVariant::ClaimPredicateType,
633        TypeVariant::ClaimPredicate,
634        TypeVariant::ClaimantType,
635        TypeVariant::Claimant,
636        TypeVariant::ClaimantV0,
637        TypeVariant::ClaimableBalanceFlags,
638        TypeVariant::ClaimableBalanceEntryExtensionV1,
639        TypeVariant::ClaimableBalanceEntryExtensionV1Ext,
640        TypeVariant::ClaimableBalanceEntry,
641        TypeVariant::ClaimableBalanceEntryExt,
642        TypeVariant::LiquidityPoolConstantProductParameters,
643        TypeVariant::LiquidityPoolEntry,
644        TypeVariant::LiquidityPoolEntryBody,
645        TypeVariant::LiquidityPoolEntryConstantProduct,
646        TypeVariant::ContractDataDurability,
647        TypeVariant::ContractDataEntry,
648        TypeVariant::ContractCodeCostInputs,
649        TypeVariant::ContractCodeEntry,
650        TypeVariant::ContractCodeEntryExt,
651        TypeVariant::ContractCodeEntryV1,
652        TypeVariant::TtlEntry,
653        TypeVariant::LedgerEntryExtensionV1,
654        TypeVariant::LedgerEntryExtensionV1Ext,
655        TypeVariant::LedgerEntry,
656        TypeVariant::LedgerEntryData,
657        TypeVariant::LedgerEntryExt,
658        TypeVariant::LedgerKey,
659        TypeVariant::LedgerKeyAccount,
660        TypeVariant::LedgerKeyTrustLine,
661        TypeVariant::LedgerKeyOffer,
662        TypeVariant::LedgerKeyData,
663        TypeVariant::LedgerKeyClaimableBalance,
664        TypeVariant::LedgerKeyLiquidityPool,
665        TypeVariant::LedgerKeyContractData,
666        TypeVariant::LedgerKeyContractCode,
667        TypeVariant::LedgerKeyConfigSetting,
668        TypeVariant::LedgerKeyTtl,
669        TypeVariant::EnvelopeType,
670        TypeVariant::BucketListType,
671        TypeVariant::BucketEntryType,
672        TypeVariant::HotArchiveBucketEntryType,
673        TypeVariant::BucketMetadata,
674        TypeVariant::BucketMetadataExt,
675        TypeVariant::BucketEntry,
676        TypeVariant::HotArchiveBucketEntry,
677        TypeVariant::UpgradeType,
678        TypeVariant::StellarValueType,
679        TypeVariant::LedgerCloseValueSignature,
680        TypeVariant::StellarValue,
681        TypeVariant::StellarValueExt,
682        TypeVariant::StellarValueProposedValue,
683        TypeVariant::LedgerHeaderFlags,
684        TypeVariant::LedgerHeaderExtensionV1,
685        TypeVariant::LedgerHeaderExtensionV1Ext,
686        TypeVariant::LedgerHeader,
687        TypeVariant::LedgerHeaderExt,
688        TypeVariant::LedgerUpgradeType,
689        TypeVariant::ConfigUpgradeSetKey,
690        TypeVariant::LedgerUpgrade,
691        TypeVariant::ConfigUpgradeSet,
692        TypeVariant::TxSetComponentType,
693        TypeVariant::DependentTxCluster,
694        TypeVariant::ParallelTxExecutionStage,
695        TypeVariant::ParallelTxsComponent,
696        TypeVariant::TxSetComponent,
697        TypeVariant::TxSetComponentTxsMaybeDiscountedFee,
698        TypeVariant::TransactionPhase,
699        TypeVariant::TransactionSet,
700        TypeVariant::TransactionSetV1,
701        TypeVariant::GeneralizedTransactionSet,
702        TypeVariant::TransactionResultPair,
703        TypeVariant::TransactionResultSet,
704        TypeVariant::TransactionHistoryEntry,
705        TypeVariant::TransactionHistoryEntryExt,
706        TypeVariant::TransactionHistoryResultEntry,
707        TypeVariant::TransactionHistoryResultEntryExt,
708        TypeVariant::LedgerHeaderHistoryEntry,
709        TypeVariant::LedgerHeaderHistoryEntryExt,
710        TypeVariant::LedgerScpMessages,
711        TypeVariant::ScpHistoryEntryV0,
712        TypeVariant::ScpHistoryEntry,
713        TypeVariant::LedgerEntryChangeType,
714        TypeVariant::LedgerEntryChange,
715        TypeVariant::LedgerEntryChanges,
716        TypeVariant::OperationMeta,
717        TypeVariant::TransactionMetaV1,
718        TypeVariant::TransactionMetaV2,
719        TypeVariant::ContractEventType,
720        TypeVariant::ContractEvent,
721        TypeVariant::ContractEventBody,
722        TypeVariant::ContractEventV0,
723        TypeVariant::DiagnosticEvent,
724        TypeVariant::SorobanTransactionMetaExtV1,
725        TypeVariant::SorobanTransactionMetaExt,
726        TypeVariant::SorobanTransactionMeta,
727        TypeVariant::TransactionMetaV3,
728        TypeVariant::OperationMetaV2,
729        TypeVariant::SorobanTransactionMetaV2,
730        TypeVariant::TransactionEventStage,
731        TypeVariant::TransactionEvent,
732        TypeVariant::TransactionMetaV4,
733        TypeVariant::InvokeHostFunctionSuccessPreImage,
734        TypeVariant::TransactionMeta,
735        TypeVariant::TransactionResultMeta,
736        TypeVariant::TransactionResultMetaV1,
737        TypeVariant::UpgradeEntryMeta,
738        TypeVariant::LedgerCloseMetaV0,
739        TypeVariant::LedgerCloseMetaExtV1,
740        TypeVariant::LedgerCloseMetaExt,
741        TypeVariant::LedgerCloseMetaV1,
742        TypeVariant::LedgerCloseMetaV2,
743        TypeVariant::LedgerCloseMeta,
744        TypeVariant::ErrorCode,
745        TypeVariant::SError,
746        TypeVariant::SendMore,
747        TypeVariant::SendMoreExtended,
748        TypeVariant::AuthCert,
749        TypeVariant::Hello,
750        TypeVariant::Auth,
751        TypeVariant::IpAddrType,
752        TypeVariant::PeerAddress,
753        TypeVariant::PeerAddressIp,
754        TypeVariant::MessageType,
755        TypeVariant::DontHave,
756        TypeVariant::SurveyMessageCommandType,
757        TypeVariant::SurveyMessageResponseType,
758        TypeVariant::TimeSlicedSurveyStartCollectingMessage,
759        TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage,
760        TypeVariant::TimeSlicedSurveyStopCollectingMessage,
761        TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage,
762        TypeVariant::SurveyRequestMessage,
763        TypeVariant::TimeSlicedSurveyRequestMessage,
764        TypeVariant::SignedTimeSlicedSurveyRequestMessage,
765        TypeVariant::EncryptedBody,
766        TypeVariant::SurveyResponseMessage,
767        TypeVariant::TimeSlicedSurveyResponseMessage,
768        TypeVariant::SignedTimeSlicedSurveyResponseMessage,
769        TypeVariant::PeerStats,
770        TypeVariant::TimeSlicedNodeData,
771        TypeVariant::TimeSlicedPeerData,
772        TypeVariant::TimeSlicedPeerDataList,
773        TypeVariant::TopologyResponseBodyV2,
774        TypeVariant::SurveyResponseBody,
775        TypeVariant::TxAdvertVector,
776        TypeVariant::FloodAdvert,
777        TypeVariant::TxDemandVector,
778        TypeVariant::FloodDemand,
779        TypeVariant::StellarMessage,
780        TypeVariant::AuthenticatedMessage,
781        TypeVariant::AuthenticatedMessageV0,
782        TypeVariant::LiquidityPoolParameters,
783        TypeVariant::MuxedAccount,
784        TypeVariant::MuxedAccountMed25519,
785        TypeVariant::DecoratedSignature,
786        TypeVariant::OperationType,
787        TypeVariant::CreateAccountOp,
788        TypeVariant::PaymentOp,
789        TypeVariant::PathPaymentStrictReceiveOp,
790        TypeVariant::PathPaymentStrictSendOp,
791        TypeVariant::ManageSellOfferOp,
792        TypeVariant::ManageBuyOfferOp,
793        TypeVariant::CreatePassiveSellOfferOp,
794        TypeVariant::SetOptionsOp,
795        TypeVariant::ChangeTrustAsset,
796        TypeVariant::ChangeTrustOp,
797        TypeVariant::AllowTrustOp,
798        TypeVariant::ManageDataOp,
799        TypeVariant::BumpSequenceOp,
800        TypeVariant::CreateClaimableBalanceOp,
801        TypeVariant::ClaimClaimableBalanceOp,
802        TypeVariant::BeginSponsoringFutureReservesOp,
803        TypeVariant::RevokeSponsorshipType,
804        TypeVariant::RevokeSponsorshipOp,
805        TypeVariant::RevokeSponsorshipOpSigner,
806        TypeVariant::ClawbackOp,
807        TypeVariant::ClawbackClaimableBalanceOp,
808        TypeVariant::SetTrustLineFlagsOp,
809        TypeVariant::LiquidityPoolDepositOp,
810        TypeVariant::LiquidityPoolWithdrawOp,
811        TypeVariant::HostFunctionType,
812        TypeVariant::ContractIdPreimageType,
813        TypeVariant::ContractIdPreimage,
814        TypeVariant::ContractIdPreimageFromAddress,
815        TypeVariant::CreateContractArgs,
816        TypeVariant::CreateContractArgsV2,
817        TypeVariant::InvokeContractArgs,
818        TypeVariant::HostFunction,
819        TypeVariant::SorobanAuthorizedFunctionType,
820        TypeVariant::SorobanAuthorizedFunction,
821        TypeVariant::SorobanAuthorizedInvocation,
822        TypeVariant::SorobanAddressCredentials,
823        TypeVariant::SorobanDelegateSignature,
824        TypeVariant::SorobanAddressCredentialsWithDelegates,
825        TypeVariant::SorobanCredentialsType,
826        TypeVariant::SorobanCredentials,
827        TypeVariant::SorobanAuthorizationEntry,
828        TypeVariant::SorobanAuthorizationEntries,
829        TypeVariant::InvokeHostFunctionOp,
830        TypeVariant::ExtendFootprintTtlOp,
831        TypeVariant::RestoreFootprintOp,
832        TypeVariant::Operation,
833        TypeVariant::OperationBody,
834        TypeVariant::HashIdPreimage,
835        TypeVariant::HashIdPreimageOperationId,
836        TypeVariant::HashIdPreimageRevokeId,
837        TypeVariant::HashIdPreimageContractId,
838        TypeVariant::HashIdPreimageSorobanAuthorization,
839        TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress,
840        TypeVariant::MemoType,
841        TypeVariant::Memo,
842        TypeVariant::TimeBounds,
843        TypeVariant::LedgerBounds,
844        TypeVariant::PreconditionsV2,
845        TypeVariant::PreconditionType,
846        TypeVariant::Preconditions,
847        TypeVariant::LedgerFootprint,
848        TypeVariant::SorobanResources,
849        TypeVariant::SorobanResourcesExtV0,
850        TypeVariant::SorobanTransactionData,
851        TypeVariant::SorobanTransactionDataExt,
852        TypeVariant::TransactionV0,
853        TypeVariant::TransactionV0Ext,
854        TypeVariant::TransactionV0Envelope,
855        TypeVariant::Transaction,
856        TypeVariant::TransactionExt,
857        TypeVariant::TransactionV1Envelope,
858        TypeVariant::FeeBumpTransaction,
859        TypeVariant::FeeBumpTransactionInnerTx,
860        TypeVariant::FeeBumpTransactionExt,
861        TypeVariant::FeeBumpTransactionEnvelope,
862        TypeVariant::TransactionEnvelope,
863        TypeVariant::TransactionSignaturePayload,
864        TypeVariant::TransactionSignaturePayloadTaggedTransaction,
865        TypeVariant::ClaimAtomType,
866        TypeVariant::ClaimOfferAtomV0,
867        TypeVariant::ClaimOfferAtom,
868        TypeVariant::ClaimLiquidityAtom,
869        TypeVariant::ClaimAtom,
870        TypeVariant::CreateAccountResultCode,
871        TypeVariant::CreateAccountResult,
872        TypeVariant::PaymentResultCode,
873        TypeVariant::PaymentResult,
874        TypeVariant::PathPaymentStrictReceiveResultCode,
875        TypeVariant::SimplePaymentResult,
876        TypeVariant::PathPaymentStrictReceiveResult,
877        TypeVariant::PathPaymentStrictReceiveResultSuccess,
878        TypeVariant::PathPaymentStrictSendResultCode,
879        TypeVariant::PathPaymentStrictSendResult,
880        TypeVariant::PathPaymentStrictSendResultSuccess,
881        TypeVariant::ManageSellOfferResultCode,
882        TypeVariant::ManageOfferEffect,
883        TypeVariant::ManageOfferSuccessResult,
884        TypeVariant::ManageOfferSuccessResultOffer,
885        TypeVariant::ManageSellOfferResult,
886        TypeVariant::ManageBuyOfferResultCode,
887        TypeVariant::ManageBuyOfferResult,
888        TypeVariant::SetOptionsResultCode,
889        TypeVariant::SetOptionsResult,
890        TypeVariant::ChangeTrustResultCode,
891        TypeVariant::ChangeTrustResult,
892        TypeVariant::AllowTrustResultCode,
893        TypeVariant::AllowTrustResult,
894        TypeVariant::AccountMergeResultCode,
895        TypeVariant::AccountMergeResult,
896        TypeVariant::InflationResultCode,
897        TypeVariant::InflationPayout,
898        TypeVariant::InflationResult,
899        TypeVariant::ManageDataResultCode,
900        TypeVariant::ManageDataResult,
901        TypeVariant::BumpSequenceResultCode,
902        TypeVariant::BumpSequenceResult,
903        TypeVariant::CreateClaimableBalanceResultCode,
904        TypeVariant::CreateClaimableBalanceResult,
905        TypeVariant::ClaimClaimableBalanceResultCode,
906        TypeVariant::ClaimClaimableBalanceResult,
907        TypeVariant::BeginSponsoringFutureReservesResultCode,
908        TypeVariant::BeginSponsoringFutureReservesResult,
909        TypeVariant::EndSponsoringFutureReservesResultCode,
910        TypeVariant::EndSponsoringFutureReservesResult,
911        TypeVariant::RevokeSponsorshipResultCode,
912        TypeVariant::RevokeSponsorshipResult,
913        TypeVariant::ClawbackResultCode,
914        TypeVariant::ClawbackResult,
915        TypeVariant::ClawbackClaimableBalanceResultCode,
916        TypeVariant::ClawbackClaimableBalanceResult,
917        TypeVariant::SetTrustLineFlagsResultCode,
918        TypeVariant::SetTrustLineFlagsResult,
919        TypeVariant::LiquidityPoolDepositResultCode,
920        TypeVariant::LiquidityPoolDepositResult,
921        TypeVariant::LiquidityPoolWithdrawResultCode,
922        TypeVariant::LiquidityPoolWithdrawResult,
923        TypeVariant::InvokeHostFunctionResultCode,
924        TypeVariant::InvokeHostFunctionResult,
925        TypeVariant::ExtendFootprintTtlResultCode,
926        TypeVariant::ExtendFootprintTtlResult,
927        TypeVariant::RestoreFootprintResultCode,
928        TypeVariant::RestoreFootprintResult,
929        TypeVariant::OperationResultCode,
930        TypeVariant::OperationResult,
931        TypeVariant::OperationResultTr,
932        TypeVariant::TransactionResultCode,
933        TypeVariant::InnerTransactionResult,
934        TypeVariant::InnerTransactionResultResult,
935        TypeVariant::InnerTransactionResultExt,
936        TypeVariant::InnerTransactionResultPair,
937        TypeVariant::TransactionResult,
938        TypeVariant::TransactionResultResult,
939        TypeVariant::TransactionResultExt,
940        TypeVariant::Hash,
941        TypeVariant::Uint256,
942        TypeVariant::Uint32,
943        TypeVariant::Int32,
944        TypeVariant::Uint64,
945        TypeVariant::Int64,
946        TypeVariant::TimePoint,
947        TypeVariant::Duration,
948        TypeVariant::ExtensionPoint,
949        TypeVariant::CryptoKeyType,
950        TypeVariant::PublicKeyType,
951        TypeVariant::SignerKeyType,
952        TypeVariant::PublicKey,
953        TypeVariant::SignerKey,
954        TypeVariant::SignerKeyEd25519SignedPayload,
955        TypeVariant::Signature,
956        TypeVariant::SignatureHint,
957        TypeVariant::NodeId,
958        TypeVariant::AccountId,
959        TypeVariant::ContractId,
960        TypeVariant::Curve25519Secret,
961        TypeVariant::Curve25519Public,
962        TypeVariant::HmacSha256Key,
963        TypeVariant::HmacSha256Mac,
964        TypeVariant::ShortHashSeed,
965        TypeVariant::BinaryFuseFilterType,
966        TypeVariant::SerializedBinaryFuseFilter,
967        TypeVariant::PoolId,
968        TypeVariant::ClaimableBalanceIdType,
969        TypeVariant::ClaimableBalanceId,
970        #[cfg(feature = "test_feature")]
971        TypeVariant::TestNextType,
972    ];
973    pub const VARIANTS: [TypeVariant; Self::_VARIANTS.len()] = {
974        let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
975        let mut i = 1;
976        while i < Self::_VARIANTS.len() {
977            arr[i] = Self::_VARIANTS[i];
978            i += 1;
979        }
980        arr
981    };
982    const _VARIANTS_STR: &[&str] = &[
983        "Value",
984        "ScpBallot",
985        "ScpStatementType",
986        "ScpNomination",
987        "ScpStatement",
988        "ScpStatementPledges",
989        "ScpStatementPrepare",
990        "ScpStatementConfirm",
991        "ScpStatementExternalize",
992        "ScpEnvelope",
993        "ScpQuorumSet",
994        "EncodedLedgerKey",
995        "ConfigSettingContractExecutionLanesV0",
996        "ConfigSettingContractComputeV0",
997        "ConfigSettingContractParallelComputeV0",
998        "ConfigSettingContractLedgerCostV0",
999        "ConfigSettingContractLedgerCostExtV0",
1000        "ConfigSettingContractHistoricalDataV0",
1001        "ConfigSettingContractEventsV0",
1002        "ConfigSettingContractBandwidthV0",
1003        "ContractCostType",
1004        "ContractCostParamEntry",
1005        "StateArchivalSettings",
1006        "EvictionIterator",
1007        "ConfigSettingScpTiming",
1008        "FrozenLedgerKeys",
1009        "FrozenLedgerKeysDelta",
1010        "FreezeBypassTxs",
1011        "FreezeBypassTxsDelta",
1012        "ContractCostParams",
1013        "ConfigSettingId",
1014        "ConfigSettingEntry",
1015        "ScEnvMetaKind",
1016        "ScEnvMetaEntry",
1017        "ScEnvMetaEntryInterfaceVersion",
1018        "ScMetaV0",
1019        "ScMetaKind",
1020        "ScMetaEntry",
1021        "ScSpecType",
1022        "ScSpecTypeOption",
1023        "ScSpecTypeResult",
1024        "ScSpecTypeVec",
1025        "ScSpecTypeMap",
1026        "ScSpecTypeTuple",
1027        "ScSpecTypeBytesN",
1028        "ScSpecTypeUdt",
1029        "ScSpecTypeDef",
1030        "ScSpecUdtStructFieldV0",
1031        "ScSpecUdtStructV0",
1032        "ScSpecUdtUnionCaseVoidV0",
1033        "ScSpecUdtUnionCaseTupleV0",
1034        "ScSpecUdtUnionCaseV0Kind",
1035        "ScSpecUdtUnionCaseV0",
1036        "ScSpecUdtUnionV0",
1037        "ScSpecUdtEnumCaseV0",
1038        "ScSpecUdtEnumV0",
1039        "ScSpecUdtErrorEnumCaseV0",
1040        "ScSpecUdtErrorEnumV0",
1041        "ScSpecFunctionInputV0",
1042        "ScSpecFunctionV0",
1043        "ScSpecEventParamLocationV0",
1044        "ScSpecEventParamV0",
1045        "ScSpecEventDataFormat",
1046        "ScSpecEventV0",
1047        "ScSpecEntryKind",
1048        "ScSpecEntry",
1049        "ScBytes",
1050        "ScString",
1051        "ScSymbol",
1052        "ScValType",
1053        "ScErrorType",
1054        "ScErrorCode",
1055        "ScError",
1056        "UInt128Parts",
1057        "Int128Parts",
1058        "UInt256Parts",
1059        "Int256Parts",
1060        "ContractExecutableType",
1061        "ScAddressType",
1062        "MuxedEd25519Account",
1063        #[cfg(feature = "cap_0084_muxed_contract")]
1064        "MuxedContract",
1065        "ScAddress",
1066        "ContractExecutableExternalRef",
1067        "ContractExecutable",
1068        "ScVec",
1069        "ScMap",
1070        "ScNonceKey",
1071        "ScContractInstance",
1072        "ScVal",
1073        "ScMapEntry",
1074        "LedgerCloseMetaBatch",
1075        "StoredTransactionSet",
1076        "StoredDebugTransactionSet",
1077        "PersistedScpStateV0",
1078        "PersistedScpStateV1",
1079        "PersistedScpState",
1080        "Thresholds",
1081        "String32",
1082        "String64",
1083        "SequenceNumber",
1084        "DataValue",
1085        "AssetCode4",
1086        "AssetCode12",
1087        "AssetType",
1088        "AssetCode",
1089        "AlphaNum4",
1090        "AlphaNum12",
1091        "Asset",
1092        "Price",
1093        "Liabilities",
1094        "ThresholdIndexes",
1095        "LedgerEntryType",
1096        "Signer",
1097        "AccountFlags",
1098        "SponsorshipDescriptor",
1099        "AccountEntryExtensionV3",
1100        "AccountEntryExtensionV2",
1101        "AccountEntryExtensionV2Ext",
1102        "AccountEntryExtensionV1",
1103        "AccountEntryExtensionV1Ext",
1104        "AccountEntry",
1105        "AccountEntryExt",
1106        "TrustLineFlags",
1107        "LiquidityPoolType",
1108        "TrustLineAsset",
1109        "TrustLineEntryExtensionV2",
1110        "TrustLineEntryExtensionV2Ext",
1111        "TrustLineEntry",
1112        "TrustLineEntryExt",
1113        "TrustLineEntryV1",
1114        "TrustLineEntryV1Ext",
1115        "OfferEntryFlags",
1116        "OfferEntry",
1117        "OfferEntryExt",
1118        "DataEntry",
1119        "DataEntryExt",
1120        "ClaimPredicateType",
1121        "ClaimPredicate",
1122        "ClaimantType",
1123        "Claimant",
1124        "ClaimantV0",
1125        "ClaimableBalanceFlags",
1126        "ClaimableBalanceEntryExtensionV1",
1127        "ClaimableBalanceEntryExtensionV1Ext",
1128        "ClaimableBalanceEntry",
1129        "ClaimableBalanceEntryExt",
1130        "LiquidityPoolConstantProductParameters",
1131        "LiquidityPoolEntry",
1132        "LiquidityPoolEntryBody",
1133        "LiquidityPoolEntryConstantProduct",
1134        "ContractDataDurability",
1135        "ContractDataEntry",
1136        "ContractCodeCostInputs",
1137        "ContractCodeEntry",
1138        "ContractCodeEntryExt",
1139        "ContractCodeEntryV1",
1140        "TtlEntry",
1141        "LedgerEntryExtensionV1",
1142        "LedgerEntryExtensionV1Ext",
1143        "LedgerEntry",
1144        "LedgerEntryData",
1145        "LedgerEntryExt",
1146        "LedgerKey",
1147        "LedgerKeyAccount",
1148        "LedgerKeyTrustLine",
1149        "LedgerKeyOffer",
1150        "LedgerKeyData",
1151        "LedgerKeyClaimableBalance",
1152        "LedgerKeyLiquidityPool",
1153        "LedgerKeyContractData",
1154        "LedgerKeyContractCode",
1155        "LedgerKeyConfigSetting",
1156        "LedgerKeyTtl",
1157        "EnvelopeType",
1158        "BucketListType",
1159        "BucketEntryType",
1160        "HotArchiveBucketEntryType",
1161        "BucketMetadata",
1162        "BucketMetadataExt",
1163        "BucketEntry",
1164        "HotArchiveBucketEntry",
1165        "UpgradeType",
1166        "StellarValueType",
1167        "LedgerCloseValueSignature",
1168        "StellarValue",
1169        "StellarValueExt",
1170        "StellarValueProposedValue",
1171        "LedgerHeaderFlags",
1172        "LedgerHeaderExtensionV1",
1173        "LedgerHeaderExtensionV1Ext",
1174        "LedgerHeader",
1175        "LedgerHeaderExt",
1176        "LedgerUpgradeType",
1177        "ConfigUpgradeSetKey",
1178        "LedgerUpgrade",
1179        "ConfigUpgradeSet",
1180        "TxSetComponentType",
1181        "DependentTxCluster",
1182        "ParallelTxExecutionStage",
1183        "ParallelTxsComponent",
1184        "TxSetComponent",
1185        "TxSetComponentTxsMaybeDiscountedFee",
1186        "TransactionPhase",
1187        "TransactionSet",
1188        "TransactionSetV1",
1189        "GeneralizedTransactionSet",
1190        "TransactionResultPair",
1191        "TransactionResultSet",
1192        "TransactionHistoryEntry",
1193        "TransactionHistoryEntryExt",
1194        "TransactionHistoryResultEntry",
1195        "TransactionHistoryResultEntryExt",
1196        "LedgerHeaderHistoryEntry",
1197        "LedgerHeaderHistoryEntryExt",
1198        "LedgerScpMessages",
1199        "ScpHistoryEntryV0",
1200        "ScpHistoryEntry",
1201        "LedgerEntryChangeType",
1202        "LedgerEntryChange",
1203        "LedgerEntryChanges",
1204        "OperationMeta",
1205        "TransactionMetaV1",
1206        "TransactionMetaV2",
1207        "ContractEventType",
1208        "ContractEvent",
1209        "ContractEventBody",
1210        "ContractEventV0",
1211        "DiagnosticEvent",
1212        "SorobanTransactionMetaExtV1",
1213        "SorobanTransactionMetaExt",
1214        "SorobanTransactionMeta",
1215        "TransactionMetaV3",
1216        "OperationMetaV2",
1217        "SorobanTransactionMetaV2",
1218        "TransactionEventStage",
1219        "TransactionEvent",
1220        "TransactionMetaV4",
1221        "InvokeHostFunctionSuccessPreImage",
1222        "TransactionMeta",
1223        "TransactionResultMeta",
1224        "TransactionResultMetaV1",
1225        "UpgradeEntryMeta",
1226        "LedgerCloseMetaV0",
1227        "LedgerCloseMetaExtV1",
1228        "LedgerCloseMetaExt",
1229        "LedgerCloseMetaV1",
1230        "LedgerCloseMetaV2",
1231        "LedgerCloseMeta",
1232        "ErrorCode",
1233        "SError",
1234        "SendMore",
1235        "SendMoreExtended",
1236        "AuthCert",
1237        "Hello",
1238        "Auth",
1239        "IpAddrType",
1240        "PeerAddress",
1241        "PeerAddressIp",
1242        "MessageType",
1243        "DontHave",
1244        "SurveyMessageCommandType",
1245        "SurveyMessageResponseType",
1246        "TimeSlicedSurveyStartCollectingMessage",
1247        "SignedTimeSlicedSurveyStartCollectingMessage",
1248        "TimeSlicedSurveyStopCollectingMessage",
1249        "SignedTimeSlicedSurveyStopCollectingMessage",
1250        "SurveyRequestMessage",
1251        "TimeSlicedSurveyRequestMessage",
1252        "SignedTimeSlicedSurveyRequestMessage",
1253        "EncryptedBody",
1254        "SurveyResponseMessage",
1255        "TimeSlicedSurveyResponseMessage",
1256        "SignedTimeSlicedSurveyResponseMessage",
1257        "PeerStats",
1258        "TimeSlicedNodeData",
1259        "TimeSlicedPeerData",
1260        "TimeSlicedPeerDataList",
1261        "TopologyResponseBodyV2",
1262        "SurveyResponseBody",
1263        "TxAdvertVector",
1264        "FloodAdvert",
1265        "TxDemandVector",
1266        "FloodDemand",
1267        "StellarMessage",
1268        "AuthenticatedMessage",
1269        "AuthenticatedMessageV0",
1270        "LiquidityPoolParameters",
1271        "MuxedAccount",
1272        "MuxedAccountMed25519",
1273        "DecoratedSignature",
1274        "OperationType",
1275        "CreateAccountOp",
1276        "PaymentOp",
1277        "PathPaymentStrictReceiveOp",
1278        "PathPaymentStrictSendOp",
1279        "ManageSellOfferOp",
1280        "ManageBuyOfferOp",
1281        "CreatePassiveSellOfferOp",
1282        "SetOptionsOp",
1283        "ChangeTrustAsset",
1284        "ChangeTrustOp",
1285        "AllowTrustOp",
1286        "ManageDataOp",
1287        "BumpSequenceOp",
1288        "CreateClaimableBalanceOp",
1289        "ClaimClaimableBalanceOp",
1290        "BeginSponsoringFutureReservesOp",
1291        "RevokeSponsorshipType",
1292        "RevokeSponsorshipOp",
1293        "RevokeSponsorshipOpSigner",
1294        "ClawbackOp",
1295        "ClawbackClaimableBalanceOp",
1296        "SetTrustLineFlagsOp",
1297        "LiquidityPoolDepositOp",
1298        "LiquidityPoolWithdrawOp",
1299        "HostFunctionType",
1300        "ContractIdPreimageType",
1301        "ContractIdPreimage",
1302        "ContractIdPreimageFromAddress",
1303        "CreateContractArgs",
1304        "CreateContractArgsV2",
1305        "InvokeContractArgs",
1306        "HostFunction",
1307        "SorobanAuthorizedFunctionType",
1308        "SorobanAuthorizedFunction",
1309        "SorobanAuthorizedInvocation",
1310        "SorobanAddressCredentials",
1311        "SorobanDelegateSignature",
1312        "SorobanAddressCredentialsWithDelegates",
1313        "SorobanCredentialsType",
1314        "SorobanCredentials",
1315        "SorobanAuthorizationEntry",
1316        "SorobanAuthorizationEntries",
1317        "InvokeHostFunctionOp",
1318        "ExtendFootprintTtlOp",
1319        "RestoreFootprintOp",
1320        "Operation",
1321        "OperationBody",
1322        "HashIdPreimage",
1323        "HashIdPreimageOperationId",
1324        "HashIdPreimageRevokeId",
1325        "HashIdPreimageContractId",
1326        "HashIdPreimageSorobanAuthorization",
1327        "HashIdPreimageSorobanAuthorizationWithAddress",
1328        "MemoType",
1329        "Memo",
1330        "TimeBounds",
1331        "LedgerBounds",
1332        "PreconditionsV2",
1333        "PreconditionType",
1334        "Preconditions",
1335        "LedgerFootprint",
1336        "SorobanResources",
1337        "SorobanResourcesExtV0",
1338        "SorobanTransactionData",
1339        "SorobanTransactionDataExt",
1340        "TransactionV0",
1341        "TransactionV0Ext",
1342        "TransactionV0Envelope",
1343        "Transaction",
1344        "TransactionExt",
1345        "TransactionV1Envelope",
1346        "FeeBumpTransaction",
1347        "FeeBumpTransactionInnerTx",
1348        "FeeBumpTransactionExt",
1349        "FeeBumpTransactionEnvelope",
1350        "TransactionEnvelope",
1351        "TransactionSignaturePayload",
1352        "TransactionSignaturePayloadTaggedTransaction",
1353        "ClaimAtomType",
1354        "ClaimOfferAtomV0",
1355        "ClaimOfferAtom",
1356        "ClaimLiquidityAtom",
1357        "ClaimAtom",
1358        "CreateAccountResultCode",
1359        "CreateAccountResult",
1360        "PaymentResultCode",
1361        "PaymentResult",
1362        "PathPaymentStrictReceiveResultCode",
1363        "SimplePaymentResult",
1364        "PathPaymentStrictReceiveResult",
1365        "PathPaymentStrictReceiveResultSuccess",
1366        "PathPaymentStrictSendResultCode",
1367        "PathPaymentStrictSendResult",
1368        "PathPaymentStrictSendResultSuccess",
1369        "ManageSellOfferResultCode",
1370        "ManageOfferEffect",
1371        "ManageOfferSuccessResult",
1372        "ManageOfferSuccessResultOffer",
1373        "ManageSellOfferResult",
1374        "ManageBuyOfferResultCode",
1375        "ManageBuyOfferResult",
1376        "SetOptionsResultCode",
1377        "SetOptionsResult",
1378        "ChangeTrustResultCode",
1379        "ChangeTrustResult",
1380        "AllowTrustResultCode",
1381        "AllowTrustResult",
1382        "AccountMergeResultCode",
1383        "AccountMergeResult",
1384        "InflationResultCode",
1385        "InflationPayout",
1386        "InflationResult",
1387        "ManageDataResultCode",
1388        "ManageDataResult",
1389        "BumpSequenceResultCode",
1390        "BumpSequenceResult",
1391        "CreateClaimableBalanceResultCode",
1392        "CreateClaimableBalanceResult",
1393        "ClaimClaimableBalanceResultCode",
1394        "ClaimClaimableBalanceResult",
1395        "BeginSponsoringFutureReservesResultCode",
1396        "BeginSponsoringFutureReservesResult",
1397        "EndSponsoringFutureReservesResultCode",
1398        "EndSponsoringFutureReservesResult",
1399        "RevokeSponsorshipResultCode",
1400        "RevokeSponsorshipResult",
1401        "ClawbackResultCode",
1402        "ClawbackResult",
1403        "ClawbackClaimableBalanceResultCode",
1404        "ClawbackClaimableBalanceResult",
1405        "SetTrustLineFlagsResultCode",
1406        "SetTrustLineFlagsResult",
1407        "LiquidityPoolDepositResultCode",
1408        "LiquidityPoolDepositResult",
1409        "LiquidityPoolWithdrawResultCode",
1410        "LiquidityPoolWithdrawResult",
1411        "InvokeHostFunctionResultCode",
1412        "InvokeHostFunctionResult",
1413        "ExtendFootprintTtlResultCode",
1414        "ExtendFootprintTtlResult",
1415        "RestoreFootprintResultCode",
1416        "RestoreFootprintResult",
1417        "OperationResultCode",
1418        "OperationResult",
1419        "OperationResultTr",
1420        "TransactionResultCode",
1421        "InnerTransactionResult",
1422        "InnerTransactionResultResult",
1423        "InnerTransactionResultExt",
1424        "InnerTransactionResultPair",
1425        "TransactionResult",
1426        "TransactionResultResult",
1427        "TransactionResultExt",
1428        "Hash",
1429        "Uint256",
1430        "Uint32",
1431        "Int32",
1432        "Uint64",
1433        "Int64",
1434        "TimePoint",
1435        "Duration",
1436        "ExtensionPoint",
1437        "CryptoKeyType",
1438        "PublicKeyType",
1439        "SignerKeyType",
1440        "PublicKey",
1441        "SignerKey",
1442        "SignerKeyEd25519SignedPayload",
1443        "Signature",
1444        "SignatureHint",
1445        "NodeId",
1446        "AccountId",
1447        "ContractId",
1448        "Curve25519Secret",
1449        "Curve25519Public",
1450        "HmacSha256Key",
1451        "HmacSha256Mac",
1452        "ShortHashSeed",
1453        "BinaryFuseFilterType",
1454        "SerializedBinaryFuseFilter",
1455        "PoolId",
1456        "ClaimableBalanceIdType",
1457        "ClaimableBalanceId",
1458        #[cfg(feature = "test_feature")]
1459        "TestNextType",
1460    ];
1461    pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
1462        let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
1463        let mut i = 1;
1464        while i < Self::_VARIANTS_STR.len() {
1465            arr[i] = Self::_VARIANTS_STR[i];
1466            i += 1;
1467        }
1468        arr
1469    };
1470
1471    #[must_use]
1472    #[allow(clippy::too_many_lines)]
1473    pub const fn name(&self) -> &'static str {
1474        match self {
1475            Self::Value => "Value",
1476            Self::ScpBallot => "ScpBallot",
1477            Self::ScpStatementType => "ScpStatementType",
1478            Self::ScpNomination => "ScpNomination",
1479            Self::ScpStatement => "ScpStatement",
1480            Self::ScpStatementPledges => "ScpStatementPledges",
1481            Self::ScpStatementPrepare => "ScpStatementPrepare",
1482            Self::ScpStatementConfirm => "ScpStatementConfirm",
1483            Self::ScpStatementExternalize => "ScpStatementExternalize",
1484            Self::ScpEnvelope => "ScpEnvelope",
1485            Self::ScpQuorumSet => "ScpQuorumSet",
1486            Self::EncodedLedgerKey => "EncodedLedgerKey",
1487            Self::ConfigSettingContractExecutionLanesV0 => "ConfigSettingContractExecutionLanesV0",
1488            Self::ConfigSettingContractComputeV0 => "ConfigSettingContractComputeV0",
1489            Self::ConfigSettingContractParallelComputeV0 => {
1490                "ConfigSettingContractParallelComputeV0"
1491            }
1492            Self::ConfigSettingContractLedgerCostV0 => "ConfigSettingContractLedgerCostV0",
1493            Self::ConfigSettingContractLedgerCostExtV0 => "ConfigSettingContractLedgerCostExtV0",
1494            Self::ConfigSettingContractHistoricalDataV0 => "ConfigSettingContractHistoricalDataV0",
1495            Self::ConfigSettingContractEventsV0 => "ConfigSettingContractEventsV0",
1496            Self::ConfigSettingContractBandwidthV0 => "ConfigSettingContractBandwidthV0",
1497            Self::ContractCostType => "ContractCostType",
1498            Self::ContractCostParamEntry => "ContractCostParamEntry",
1499            Self::StateArchivalSettings => "StateArchivalSettings",
1500            Self::EvictionIterator => "EvictionIterator",
1501            Self::ConfigSettingScpTiming => "ConfigSettingScpTiming",
1502            Self::FrozenLedgerKeys => "FrozenLedgerKeys",
1503            Self::FrozenLedgerKeysDelta => "FrozenLedgerKeysDelta",
1504            Self::FreezeBypassTxs => "FreezeBypassTxs",
1505            Self::FreezeBypassTxsDelta => "FreezeBypassTxsDelta",
1506            Self::ContractCostParams => "ContractCostParams",
1507            Self::ConfigSettingId => "ConfigSettingId",
1508            Self::ConfigSettingEntry => "ConfigSettingEntry",
1509            Self::ScEnvMetaKind => "ScEnvMetaKind",
1510            Self::ScEnvMetaEntry => "ScEnvMetaEntry",
1511            Self::ScEnvMetaEntryInterfaceVersion => "ScEnvMetaEntryInterfaceVersion",
1512            Self::ScMetaV0 => "ScMetaV0",
1513            Self::ScMetaKind => "ScMetaKind",
1514            Self::ScMetaEntry => "ScMetaEntry",
1515            Self::ScSpecType => "ScSpecType",
1516            Self::ScSpecTypeOption => "ScSpecTypeOption",
1517            Self::ScSpecTypeResult => "ScSpecTypeResult",
1518            Self::ScSpecTypeVec => "ScSpecTypeVec",
1519            Self::ScSpecTypeMap => "ScSpecTypeMap",
1520            Self::ScSpecTypeTuple => "ScSpecTypeTuple",
1521            Self::ScSpecTypeBytesN => "ScSpecTypeBytesN",
1522            Self::ScSpecTypeUdt => "ScSpecTypeUdt",
1523            Self::ScSpecTypeDef => "ScSpecTypeDef",
1524            Self::ScSpecUdtStructFieldV0 => "ScSpecUdtStructFieldV0",
1525            Self::ScSpecUdtStructV0 => "ScSpecUdtStructV0",
1526            Self::ScSpecUdtUnionCaseVoidV0 => "ScSpecUdtUnionCaseVoidV0",
1527            Self::ScSpecUdtUnionCaseTupleV0 => "ScSpecUdtUnionCaseTupleV0",
1528            Self::ScSpecUdtUnionCaseV0Kind => "ScSpecUdtUnionCaseV0Kind",
1529            Self::ScSpecUdtUnionCaseV0 => "ScSpecUdtUnionCaseV0",
1530            Self::ScSpecUdtUnionV0 => "ScSpecUdtUnionV0",
1531            Self::ScSpecUdtEnumCaseV0 => "ScSpecUdtEnumCaseV0",
1532            Self::ScSpecUdtEnumV0 => "ScSpecUdtEnumV0",
1533            Self::ScSpecUdtErrorEnumCaseV0 => "ScSpecUdtErrorEnumCaseV0",
1534            Self::ScSpecUdtErrorEnumV0 => "ScSpecUdtErrorEnumV0",
1535            Self::ScSpecFunctionInputV0 => "ScSpecFunctionInputV0",
1536            Self::ScSpecFunctionV0 => "ScSpecFunctionV0",
1537            Self::ScSpecEventParamLocationV0 => "ScSpecEventParamLocationV0",
1538            Self::ScSpecEventParamV0 => "ScSpecEventParamV0",
1539            Self::ScSpecEventDataFormat => "ScSpecEventDataFormat",
1540            Self::ScSpecEventV0 => "ScSpecEventV0",
1541            Self::ScSpecEntryKind => "ScSpecEntryKind",
1542            Self::ScSpecEntry => "ScSpecEntry",
1543            Self::ScBytes => "ScBytes",
1544            Self::ScString => "ScString",
1545            Self::ScSymbol => "ScSymbol",
1546            Self::ScValType => "ScValType",
1547            Self::ScErrorType => "ScErrorType",
1548            Self::ScErrorCode => "ScErrorCode",
1549            Self::ScError => "ScError",
1550            Self::UInt128Parts => "UInt128Parts",
1551            Self::Int128Parts => "Int128Parts",
1552            Self::UInt256Parts => "UInt256Parts",
1553            Self::Int256Parts => "Int256Parts",
1554            Self::ContractExecutableType => "ContractExecutableType",
1555            Self::ScAddressType => "ScAddressType",
1556            Self::MuxedEd25519Account => "MuxedEd25519Account",
1557            #[cfg(feature = "cap_0084_muxed_contract")]
1558            Self::MuxedContract => "MuxedContract",
1559            Self::ScAddress => "ScAddress",
1560            Self::ContractExecutableExternalRef => "ContractExecutableExternalRef",
1561            Self::ContractExecutable => "ContractExecutable",
1562            Self::ScVec => "ScVec",
1563            Self::ScMap => "ScMap",
1564            Self::ScNonceKey => "ScNonceKey",
1565            Self::ScContractInstance => "ScContractInstance",
1566            Self::ScVal => "ScVal",
1567            Self::ScMapEntry => "ScMapEntry",
1568            Self::LedgerCloseMetaBatch => "LedgerCloseMetaBatch",
1569            Self::StoredTransactionSet => "StoredTransactionSet",
1570            Self::StoredDebugTransactionSet => "StoredDebugTransactionSet",
1571            Self::PersistedScpStateV0 => "PersistedScpStateV0",
1572            Self::PersistedScpStateV1 => "PersistedScpStateV1",
1573            Self::PersistedScpState => "PersistedScpState",
1574            Self::Thresholds => "Thresholds",
1575            Self::String32 => "String32",
1576            Self::String64 => "String64",
1577            Self::SequenceNumber => "SequenceNumber",
1578            Self::DataValue => "DataValue",
1579            Self::AssetCode4 => "AssetCode4",
1580            Self::AssetCode12 => "AssetCode12",
1581            Self::AssetType => "AssetType",
1582            Self::AssetCode => "AssetCode",
1583            Self::AlphaNum4 => "AlphaNum4",
1584            Self::AlphaNum12 => "AlphaNum12",
1585            Self::Asset => "Asset",
1586            Self::Price => "Price",
1587            Self::Liabilities => "Liabilities",
1588            Self::ThresholdIndexes => "ThresholdIndexes",
1589            Self::LedgerEntryType => "LedgerEntryType",
1590            Self::Signer => "Signer",
1591            Self::AccountFlags => "AccountFlags",
1592            Self::SponsorshipDescriptor => "SponsorshipDescriptor",
1593            Self::AccountEntryExtensionV3 => "AccountEntryExtensionV3",
1594            Self::AccountEntryExtensionV2 => "AccountEntryExtensionV2",
1595            Self::AccountEntryExtensionV2Ext => "AccountEntryExtensionV2Ext",
1596            Self::AccountEntryExtensionV1 => "AccountEntryExtensionV1",
1597            Self::AccountEntryExtensionV1Ext => "AccountEntryExtensionV1Ext",
1598            Self::AccountEntry => "AccountEntry",
1599            Self::AccountEntryExt => "AccountEntryExt",
1600            Self::TrustLineFlags => "TrustLineFlags",
1601            Self::LiquidityPoolType => "LiquidityPoolType",
1602            Self::TrustLineAsset => "TrustLineAsset",
1603            Self::TrustLineEntryExtensionV2 => "TrustLineEntryExtensionV2",
1604            Self::TrustLineEntryExtensionV2Ext => "TrustLineEntryExtensionV2Ext",
1605            Self::TrustLineEntry => "TrustLineEntry",
1606            Self::TrustLineEntryExt => "TrustLineEntryExt",
1607            Self::TrustLineEntryV1 => "TrustLineEntryV1",
1608            Self::TrustLineEntryV1Ext => "TrustLineEntryV1Ext",
1609            Self::OfferEntryFlags => "OfferEntryFlags",
1610            Self::OfferEntry => "OfferEntry",
1611            Self::OfferEntryExt => "OfferEntryExt",
1612            Self::DataEntry => "DataEntry",
1613            Self::DataEntryExt => "DataEntryExt",
1614            Self::ClaimPredicateType => "ClaimPredicateType",
1615            Self::ClaimPredicate => "ClaimPredicate",
1616            Self::ClaimantType => "ClaimantType",
1617            Self::Claimant => "Claimant",
1618            Self::ClaimantV0 => "ClaimantV0",
1619            Self::ClaimableBalanceFlags => "ClaimableBalanceFlags",
1620            Self::ClaimableBalanceEntryExtensionV1 => "ClaimableBalanceEntryExtensionV1",
1621            Self::ClaimableBalanceEntryExtensionV1Ext => "ClaimableBalanceEntryExtensionV1Ext",
1622            Self::ClaimableBalanceEntry => "ClaimableBalanceEntry",
1623            Self::ClaimableBalanceEntryExt => "ClaimableBalanceEntryExt",
1624            Self::LiquidityPoolConstantProductParameters => {
1625                "LiquidityPoolConstantProductParameters"
1626            }
1627            Self::LiquidityPoolEntry => "LiquidityPoolEntry",
1628            Self::LiquidityPoolEntryBody => "LiquidityPoolEntryBody",
1629            Self::LiquidityPoolEntryConstantProduct => "LiquidityPoolEntryConstantProduct",
1630            Self::ContractDataDurability => "ContractDataDurability",
1631            Self::ContractDataEntry => "ContractDataEntry",
1632            Self::ContractCodeCostInputs => "ContractCodeCostInputs",
1633            Self::ContractCodeEntry => "ContractCodeEntry",
1634            Self::ContractCodeEntryExt => "ContractCodeEntryExt",
1635            Self::ContractCodeEntryV1 => "ContractCodeEntryV1",
1636            Self::TtlEntry => "TtlEntry",
1637            Self::LedgerEntryExtensionV1 => "LedgerEntryExtensionV1",
1638            Self::LedgerEntryExtensionV1Ext => "LedgerEntryExtensionV1Ext",
1639            Self::LedgerEntry => "LedgerEntry",
1640            Self::LedgerEntryData => "LedgerEntryData",
1641            Self::LedgerEntryExt => "LedgerEntryExt",
1642            Self::LedgerKey => "LedgerKey",
1643            Self::LedgerKeyAccount => "LedgerKeyAccount",
1644            Self::LedgerKeyTrustLine => "LedgerKeyTrustLine",
1645            Self::LedgerKeyOffer => "LedgerKeyOffer",
1646            Self::LedgerKeyData => "LedgerKeyData",
1647            Self::LedgerKeyClaimableBalance => "LedgerKeyClaimableBalance",
1648            Self::LedgerKeyLiquidityPool => "LedgerKeyLiquidityPool",
1649            Self::LedgerKeyContractData => "LedgerKeyContractData",
1650            Self::LedgerKeyContractCode => "LedgerKeyContractCode",
1651            Self::LedgerKeyConfigSetting => "LedgerKeyConfigSetting",
1652            Self::LedgerKeyTtl => "LedgerKeyTtl",
1653            Self::EnvelopeType => "EnvelopeType",
1654            Self::BucketListType => "BucketListType",
1655            Self::BucketEntryType => "BucketEntryType",
1656            Self::HotArchiveBucketEntryType => "HotArchiveBucketEntryType",
1657            Self::BucketMetadata => "BucketMetadata",
1658            Self::BucketMetadataExt => "BucketMetadataExt",
1659            Self::BucketEntry => "BucketEntry",
1660            Self::HotArchiveBucketEntry => "HotArchiveBucketEntry",
1661            Self::UpgradeType => "UpgradeType",
1662            Self::StellarValueType => "StellarValueType",
1663            Self::LedgerCloseValueSignature => "LedgerCloseValueSignature",
1664            Self::StellarValue => "StellarValue",
1665            Self::StellarValueExt => "StellarValueExt",
1666            Self::StellarValueProposedValue => "StellarValueProposedValue",
1667            Self::LedgerHeaderFlags => "LedgerHeaderFlags",
1668            Self::LedgerHeaderExtensionV1 => "LedgerHeaderExtensionV1",
1669            Self::LedgerHeaderExtensionV1Ext => "LedgerHeaderExtensionV1Ext",
1670            Self::LedgerHeader => "LedgerHeader",
1671            Self::LedgerHeaderExt => "LedgerHeaderExt",
1672            Self::LedgerUpgradeType => "LedgerUpgradeType",
1673            Self::ConfigUpgradeSetKey => "ConfigUpgradeSetKey",
1674            Self::LedgerUpgrade => "LedgerUpgrade",
1675            Self::ConfigUpgradeSet => "ConfigUpgradeSet",
1676            Self::TxSetComponentType => "TxSetComponentType",
1677            Self::DependentTxCluster => "DependentTxCluster",
1678            Self::ParallelTxExecutionStage => "ParallelTxExecutionStage",
1679            Self::ParallelTxsComponent => "ParallelTxsComponent",
1680            Self::TxSetComponent => "TxSetComponent",
1681            Self::TxSetComponentTxsMaybeDiscountedFee => "TxSetComponentTxsMaybeDiscountedFee",
1682            Self::TransactionPhase => "TransactionPhase",
1683            Self::TransactionSet => "TransactionSet",
1684            Self::TransactionSetV1 => "TransactionSetV1",
1685            Self::GeneralizedTransactionSet => "GeneralizedTransactionSet",
1686            Self::TransactionResultPair => "TransactionResultPair",
1687            Self::TransactionResultSet => "TransactionResultSet",
1688            Self::TransactionHistoryEntry => "TransactionHistoryEntry",
1689            Self::TransactionHistoryEntryExt => "TransactionHistoryEntryExt",
1690            Self::TransactionHistoryResultEntry => "TransactionHistoryResultEntry",
1691            Self::TransactionHistoryResultEntryExt => "TransactionHistoryResultEntryExt",
1692            Self::LedgerHeaderHistoryEntry => "LedgerHeaderHistoryEntry",
1693            Self::LedgerHeaderHistoryEntryExt => "LedgerHeaderHistoryEntryExt",
1694            Self::LedgerScpMessages => "LedgerScpMessages",
1695            Self::ScpHistoryEntryV0 => "ScpHistoryEntryV0",
1696            Self::ScpHistoryEntry => "ScpHistoryEntry",
1697            Self::LedgerEntryChangeType => "LedgerEntryChangeType",
1698            Self::LedgerEntryChange => "LedgerEntryChange",
1699            Self::LedgerEntryChanges => "LedgerEntryChanges",
1700            Self::OperationMeta => "OperationMeta",
1701            Self::TransactionMetaV1 => "TransactionMetaV1",
1702            Self::TransactionMetaV2 => "TransactionMetaV2",
1703            Self::ContractEventType => "ContractEventType",
1704            Self::ContractEvent => "ContractEvent",
1705            Self::ContractEventBody => "ContractEventBody",
1706            Self::ContractEventV0 => "ContractEventV0",
1707            Self::DiagnosticEvent => "DiagnosticEvent",
1708            Self::SorobanTransactionMetaExtV1 => "SorobanTransactionMetaExtV1",
1709            Self::SorobanTransactionMetaExt => "SorobanTransactionMetaExt",
1710            Self::SorobanTransactionMeta => "SorobanTransactionMeta",
1711            Self::TransactionMetaV3 => "TransactionMetaV3",
1712            Self::OperationMetaV2 => "OperationMetaV2",
1713            Self::SorobanTransactionMetaV2 => "SorobanTransactionMetaV2",
1714            Self::TransactionEventStage => "TransactionEventStage",
1715            Self::TransactionEvent => "TransactionEvent",
1716            Self::TransactionMetaV4 => "TransactionMetaV4",
1717            Self::InvokeHostFunctionSuccessPreImage => "InvokeHostFunctionSuccessPreImage",
1718            Self::TransactionMeta => "TransactionMeta",
1719            Self::TransactionResultMeta => "TransactionResultMeta",
1720            Self::TransactionResultMetaV1 => "TransactionResultMetaV1",
1721            Self::UpgradeEntryMeta => "UpgradeEntryMeta",
1722            Self::LedgerCloseMetaV0 => "LedgerCloseMetaV0",
1723            Self::LedgerCloseMetaExtV1 => "LedgerCloseMetaExtV1",
1724            Self::LedgerCloseMetaExt => "LedgerCloseMetaExt",
1725            Self::LedgerCloseMetaV1 => "LedgerCloseMetaV1",
1726            Self::LedgerCloseMetaV2 => "LedgerCloseMetaV2",
1727            Self::LedgerCloseMeta => "LedgerCloseMeta",
1728            Self::ErrorCode => "ErrorCode",
1729            Self::SError => "SError",
1730            Self::SendMore => "SendMore",
1731            Self::SendMoreExtended => "SendMoreExtended",
1732            Self::AuthCert => "AuthCert",
1733            Self::Hello => "Hello",
1734            Self::Auth => "Auth",
1735            Self::IpAddrType => "IpAddrType",
1736            Self::PeerAddress => "PeerAddress",
1737            Self::PeerAddressIp => "PeerAddressIp",
1738            Self::MessageType => "MessageType",
1739            Self::DontHave => "DontHave",
1740            Self::SurveyMessageCommandType => "SurveyMessageCommandType",
1741            Self::SurveyMessageResponseType => "SurveyMessageResponseType",
1742            Self::TimeSlicedSurveyStartCollectingMessage => {
1743                "TimeSlicedSurveyStartCollectingMessage"
1744            }
1745            Self::SignedTimeSlicedSurveyStartCollectingMessage => {
1746                "SignedTimeSlicedSurveyStartCollectingMessage"
1747            }
1748            Self::TimeSlicedSurveyStopCollectingMessage => "TimeSlicedSurveyStopCollectingMessage",
1749            Self::SignedTimeSlicedSurveyStopCollectingMessage => {
1750                "SignedTimeSlicedSurveyStopCollectingMessage"
1751            }
1752            Self::SurveyRequestMessage => "SurveyRequestMessage",
1753            Self::TimeSlicedSurveyRequestMessage => "TimeSlicedSurveyRequestMessage",
1754            Self::SignedTimeSlicedSurveyRequestMessage => "SignedTimeSlicedSurveyRequestMessage",
1755            Self::EncryptedBody => "EncryptedBody",
1756            Self::SurveyResponseMessage => "SurveyResponseMessage",
1757            Self::TimeSlicedSurveyResponseMessage => "TimeSlicedSurveyResponseMessage",
1758            Self::SignedTimeSlicedSurveyResponseMessage => "SignedTimeSlicedSurveyResponseMessage",
1759            Self::PeerStats => "PeerStats",
1760            Self::TimeSlicedNodeData => "TimeSlicedNodeData",
1761            Self::TimeSlicedPeerData => "TimeSlicedPeerData",
1762            Self::TimeSlicedPeerDataList => "TimeSlicedPeerDataList",
1763            Self::TopologyResponseBodyV2 => "TopologyResponseBodyV2",
1764            Self::SurveyResponseBody => "SurveyResponseBody",
1765            Self::TxAdvertVector => "TxAdvertVector",
1766            Self::FloodAdvert => "FloodAdvert",
1767            Self::TxDemandVector => "TxDemandVector",
1768            Self::FloodDemand => "FloodDemand",
1769            Self::StellarMessage => "StellarMessage",
1770            Self::AuthenticatedMessage => "AuthenticatedMessage",
1771            Self::AuthenticatedMessageV0 => "AuthenticatedMessageV0",
1772            Self::LiquidityPoolParameters => "LiquidityPoolParameters",
1773            Self::MuxedAccount => "MuxedAccount",
1774            Self::MuxedAccountMed25519 => "MuxedAccountMed25519",
1775            Self::DecoratedSignature => "DecoratedSignature",
1776            Self::OperationType => "OperationType",
1777            Self::CreateAccountOp => "CreateAccountOp",
1778            Self::PaymentOp => "PaymentOp",
1779            Self::PathPaymentStrictReceiveOp => "PathPaymentStrictReceiveOp",
1780            Self::PathPaymentStrictSendOp => "PathPaymentStrictSendOp",
1781            Self::ManageSellOfferOp => "ManageSellOfferOp",
1782            Self::ManageBuyOfferOp => "ManageBuyOfferOp",
1783            Self::CreatePassiveSellOfferOp => "CreatePassiveSellOfferOp",
1784            Self::SetOptionsOp => "SetOptionsOp",
1785            Self::ChangeTrustAsset => "ChangeTrustAsset",
1786            Self::ChangeTrustOp => "ChangeTrustOp",
1787            Self::AllowTrustOp => "AllowTrustOp",
1788            Self::ManageDataOp => "ManageDataOp",
1789            Self::BumpSequenceOp => "BumpSequenceOp",
1790            Self::CreateClaimableBalanceOp => "CreateClaimableBalanceOp",
1791            Self::ClaimClaimableBalanceOp => "ClaimClaimableBalanceOp",
1792            Self::BeginSponsoringFutureReservesOp => "BeginSponsoringFutureReservesOp",
1793            Self::RevokeSponsorshipType => "RevokeSponsorshipType",
1794            Self::RevokeSponsorshipOp => "RevokeSponsorshipOp",
1795            Self::RevokeSponsorshipOpSigner => "RevokeSponsorshipOpSigner",
1796            Self::ClawbackOp => "ClawbackOp",
1797            Self::ClawbackClaimableBalanceOp => "ClawbackClaimableBalanceOp",
1798            Self::SetTrustLineFlagsOp => "SetTrustLineFlagsOp",
1799            Self::LiquidityPoolDepositOp => "LiquidityPoolDepositOp",
1800            Self::LiquidityPoolWithdrawOp => "LiquidityPoolWithdrawOp",
1801            Self::HostFunctionType => "HostFunctionType",
1802            Self::ContractIdPreimageType => "ContractIdPreimageType",
1803            Self::ContractIdPreimage => "ContractIdPreimage",
1804            Self::ContractIdPreimageFromAddress => "ContractIdPreimageFromAddress",
1805            Self::CreateContractArgs => "CreateContractArgs",
1806            Self::CreateContractArgsV2 => "CreateContractArgsV2",
1807            Self::InvokeContractArgs => "InvokeContractArgs",
1808            Self::HostFunction => "HostFunction",
1809            Self::SorobanAuthorizedFunctionType => "SorobanAuthorizedFunctionType",
1810            Self::SorobanAuthorizedFunction => "SorobanAuthorizedFunction",
1811            Self::SorobanAuthorizedInvocation => "SorobanAuthorizedInvocation",
1812            Self::SorobanAddressCredentials => "SorobanAddressCredentials",
1813            Self::SorobanDelegateSignature => "SorobanDelegateSignature",
1814            Self::SorobanAddressCredentialsWithDelegates => {
1815                "SorobanAddressCredentialsWithDelegates"
1816            }
1817            Self::SorobanCredentialsType => "SorobanCredentialsType",
1818            Self::SorobanCredentials => "SorobanCredentials",
1819            Self::SorobanAuthorizationEntry => "SorobanAuthorizationEntry",
1820            Self::SorobanAuthorizationEntries => "SorobanAuthorizationEntries",
1821            Self::InvokeHostFunctionOp => "InvokeHostFunctionOp",
1822            Self::ExtendFootprintTtlOp => "ExtendFootprintTtlOp",
1823            Self::RestoreFootprintOp => "RestoreFootprintOp",
1824            Self::Operation => "Operation",
1825            Self::OperationBody => "OperationBody",
1826            Self::HashIdPreimage => "HashIdPreimage",
1827            Self::HashIdPreimageOperationId => "HashIdPreimageOperationId",
1828            Self::HashIdPreimageRevokeId => "HashIdPreimageRevokeId",
1829            Self::HashIdPreimageContractId => "HashIdPreimageContractId",
1830            Self::HashIdPreimageSorobanAuthorization => "HashIdPreimageSorobanAuthorization",
1831            Self::HashIdPreimageSorobanAuthorizationWithAddress => {
1832                "HashIdPreimageSorobanAuthorizationWithAddress"
1833            }
1834            Self::MemoType => "MemoType",
1835            Self::Memo => "Memo",
1836            Self::TimeBounds => "TimeBounds",
1837            Self::LedgerBounds => "LedgerBounds",
1838            Self::PreconditionsV2 => "PreconditionsV2",
1839            Self::PreconditionType => "PreconditionType",
1840            Self::Preconditions => "Preconditions",
1841            Self::LedgerFootprint => "LedgerFootprint",
1842            Self::SorobanResources => "SorobanResources",
1843            Self::SorobanResourcesExtV0 => "SorobanResourcesExtV0",
1844            Self::SorobanTransactionData => "SorobanTransactionData",
1845            Self::SorobanTransactionDataExt => "SorobanTransactionDataExt",
1846            Self::TransactionV0 => "TransactionV0",
1847            Self::TransactionV0Ext => "TransactionV0Ext",
1848            Self::TransactionV0Envelope => "TransactionV0Envelope",
1849            Self::Transaction => "Transaction",
1850            Self::TransactionExt => "TransactionExt",
1851            Self::TransactionV1Envelope => "TransactionV1Envelope",
1852            Self::FeeBumpTransaction => "FeeBumpTransaction",
1853            Self::FeeBumpTransactionInnerTx => "FeeBumpTransactionInnerTx",
1854            Self::FeeBumpTransactionExt => "FeeBumpTransactionExt",
1855            Self::FeeBumpTransactionEnvelope => "FeeBumpTransactionEnvelope",
1856            Self::TransactionEnvelope => "TransactionEnvelope",
1857            Self::TransactionSignaturePayload => "TransactionSignaturePayload",
1858            Self::TransactionSignaturePayloadTaggedTransaction => {
1859                "TransactionSignaturePayloadTaggedTransaction"
1860            }
1861            Self::ClaimAtomType => "ClaimAtomType",
1862            Self::ClaimOfferAtomV0 => "ClaimOfferAtomV0",
1863            Self::ClaimOfferAtom => "ClaimOfferAtom",
1864            Self::ClaimLiquidityAtom => "ClaimLiquidityAtom",
1865            Self::ClaimAtom => "ClaimAtom",
1866            Self::CreateAccountResultCode => "CreateAccountResultCode",
1867            Self::CreateAccountResult => "CreateAccountResult",
1868            Self::PaymentResultCode => "PaymentResultCode",
1869            Self::PaymentResult => "PaymentResult",
1870            Self::PathPaymentStrictReceiveResultCode => "PathPaymentStrictReceiveResultCode",
1871            Self::SimplePaymentResult => "SimplePaymentResult",
1872            Self::PathPaymentStrictReceiveResult => "PathPaymentStrictReceiveResult",
1873            Self::PathPaymentStrictReceiveResultSuccess => "PathPaymentStrictReceiveResultSuccess",
1874            Self::PathPaymentStrictSendResultCode => "PathPaymentStrictSendResultCode",
1875            Self::PathPaymentStrictSendResult => "PathPaymentStrictSendResult",
1876            Self::PathPaymentStrictSendResultSuccess => "PathPaymentStrictSendResultSuccess",
1877            Self::ManageSellOfferResultCode => "ManageSellOfferResultCode",
1878            Self::ManageOfferEffect => "ManageOfferEffect",
1879            Self::ManageOfferSuccessResult => "ManageOfferSuccessResult",
1880            Self::ManageOfferSuccessResultOffer => "ManageOfferSuccessResultOffer",
1881            Self::ManageSellOfferResult => "ManageSellOfferResult",
1882            Self::ManageBuyOfferResultCode => "ManageBuyOfferResultCode",
1883            Self::ManageBuyOfferResult => "ManageBuyOfferResult",
1884            Self::SetOptionsResultCode => "SetOptionsResultCode",
1885            Self::SetOptionsResult => "SetOptionsResult",
1886            Self::ChangeTrustResultCode => "ChangeTrustResultCode",
1887            Self::ChangeTrustResult => "ChangeTrustResult",
1888            Self::AllowTrustResultCode => "AllowTrustResultCode",
1889            Self::AllowTrustResult => "AllowTrustResult",
1890            Self::AccountMergeResultCode => "AccountMergeResultCode",
1891            Self::AccountMergeResult => "AccountMergeResult",
1892            Self::InflationResultCode => "InflationResultCode",
1893            Self::InflationPayout => "InflationPayout",
1894            Self::InflationResult => "InflationResult",
1895            Self::ManageDataResultCode => "ManageDataResultCode",
1896            Self::ManageDataResult => "ManageDataResult",
1897            Self::BumpSequenceResultCode => "BumpSequenceResultCode",
1898            Self::BumpSequenceResult => "BumpSequenceResult",
1899            Self::CreateClaimableBalanceResultCode => "CreateClaimableBalanceResultCode",
1900            Self::CreateClaimableBalanceResult => "CreateClaimableBalanceResult",
1901            Self::ClaimClaimableBalanceResultCode => "ClaimClaimableBalanceResultCode",
1902            Self::ClaimClaimableBalanceResult => "ClaimClaimableBalanceResult",
1903            Self::BeginSponsoringFutureReservesResultCode => {
1904                "BeginSponsoringFutureReservesResultCode"
1905            }
1906            Self::BeginSponsoringFutureReservesResult => "BeginSponsoringFutureReservesResult",
1907            Self::EndSponsoringFutureReservesResultCode => "EndSponsoringFutureReservesResultCode",
1908            Self::EndSponsoringFutureReservesResult => "EndSponsoringFutureReservesResult",
1909            Self::RevokeSponsorshipResultCode => "RevokeSponsorshipResultCode",
1910            Self::RevokeSponsorshipResult => "RevokeSponsorshipResult",
1911            Self::ClawbackResultCode => "ClawbackResultCode",
1912            Self::ClawbackResult => "ClawbackResult",
1913            Self::ClawbackClaimableBalanceResultCode => "ClawbackClaimableBalanceResultCode",
1914            Self::ClawbackClaimableBalanceResult => "ClawbackClaimableBalanceResult",
1915            Self::SetTrustLineFlagsResultCode => "SetTrustLineFlagsResultCode",
1916            Self::SetTrustLineFlagsResult => "SetTrustLineFlagsResult",
1917            Self::LiquidityPoolDepositResultCode => "LiquidityPoolDepositResultCode",
1918            Self::LiquidityPoolDepositResult => "LiquidityPoolDepositResult",
1919            Self::LiquidityPoolWithdrawResultCode => "LiquidityPoolWithdrawResultCode",
1920            Self::LiquidityPoolWithdrawResult => "LiquidityPoolWithdrawResult",
1921            Self::InvokeHostFunctionResultCode => "InvokeHostFunctionResultCode",
1922            Self::InvokeHostFunctionResult => "InvokeHostFunctionResult",
1923            Self::ExtendFootprintTtlResultCode => "ExtendFootprintTtlResultCode",
1924            Self::ExtendFootprintTtlResult => "ExtendFootprintTtlResult",
1925            Self::RestoreFootprintResultCode => "RestoreFootprintResultCode",
1926            Self::RestoreFootprintResult => "RestoreFootprintResult",
1927            Self::OperationResultCode => "OperationResultCode",
1928            Self::OperationResult => "OperationResult",
1929            Self::OperationResultTr => "OperationResultTr",
1930            Self::TransactionResultCode => "TransactionResultCode",
1931            Self::InnerTransactionResult => "InnerTransactionResult",
1932            Self::InnerTransactionResultResult => "InnerTransactionResultResult",
1933            Self::InnerTransactionResultExt => "InnerTransactionResultExt",
1934            Self::InnerTransactionResultPair => "InnerTransactionResultPair",
1935            Self::TransactionResult => "TransactionResult",
1936            Self::TransactionResultResult => "TransactionResultResult",
1937            Self::TransactionResultExt => "TransactionResultExt",
1938            Self::Hash => "Hash",
1939            Self::Uint256 => "Uint256",
1940            Self::Uint32 => "Uint32",
1941            Self::Int32 => "Int32",
1942            Self::Uint64 => "Uint64",
1943            Self::Int64 => "Int64",
1944            Self::TimePoint => "TimePoint",
1945            Self::Duration => "Duration",
1946            Self::ExtensionPoint => "ExtensionPoint",
1947            Self::CryptoKeyType => "CryptoKeyType",
1948            Self::PublicKeyType => "PublicKeyType",
1949            Self::SignerKeyType => "SignerKeyType",
1950            Self::PublicKey => "PublicKey",
1951            Self::SignerKey => "SignerKey",
1952            Self::SignerKeyEd25519SignedPayload => "SignerKeyEd25519SignedPayload",
1953            Self::Signature => "Signature",
1954            Self::SignatureHint => "SignatureHint",
1955            Self::NodeId => "NodeId",
1956            Self::AccountId => "AccountId",
1957            Self::ContractId => "ContractId",
1958            Self::Curve25519Secret => "Curve25519Secret",
1959            Self::Curve25519Public => "Curve25519Public",
1960            Self::HmacSha256Key => "HmacSha256Key",
1961            Self::HmacSha256Mac => "HmacSha256Mac",
1962            Self::ShortHashSeed => "ShortHashSeed",
1963            Self::BinaryFuseFilterType => "BinaryFuseFilterType",
1964            Self::SerializedBinaryFuseFilter => "SerializedBinaryFuseFilter",
1965            Self::PoolId => "PoolId",
1966            Self::ClaimableBalanceIdType => "ClaimableBalanceIdType",
1967            Self::ClaimableBalanceId => "ClaimableBalanceId",
1968            #[cfg(feature = "test_feature")]
1969            Self::TestNextType => "TestNextType",
1970        }
1971    }
1972
1973    #[must_use]
1974    #[allow(clippy::too_many_lines)]
1975    pub const fn variants() -> [TypeVariant; Self::_VARIANTS.len()] {
1976        Self::VARIANTS
1977    }
1978
1979    #[cfg(feature = "schemars")]
1980    #[must_use]
1981    #[allow(clippy::too_many_lines)]
1982    pub fn json_schema(&self, gen: schemars::gen::SchemaGenerator) -> schemars::schema::RootSchema {
1983        match self {
1984            Self::Value => gen.into_root_schema_for::<Value>(),
1985            Self::ScpBallot => gen.into_root_schema_for::<ScpBallot>(),
1986            Self::ScpStatementType => gen.into_root_schema_for::<ScpStatementType>(),
1987            Self::ScpNomination => gen.into_root_schema_for::<ScpNomination>(),
1988            Self::ScpStatement => gen.into_root_schema_for::<ScpStatement>(),
1989            Self::ScpStatementPledges => gen.into_root_schema_for::<ScpStatementPledges>(),
1990            Self::ScpStatementPrepare => gen.into_root_schema_for::<ScpStatementPrepare>(),
1991            Self::ScpStatementConfirm => gen.into_root_schema_for::<ScpStatementConfirm>(),
1992            Self::ScpStatementExternalize => gen.into_root_schema_for::<ScpStatementExternalize>(),
1993            Self::ScpEnvelope => gen.into_root_schema_for::<ScpEnvelope>(),
1994            Self::ScpQuorumSet => gen.into_root_schema_for::<ScpQuorumSet>(),
1995            Self::EncodedLedgerKey => gen.into_root_schema_for::<EncodedLedgerKey>(),
1996            Self::ConfigSettingContractExecutionLanesV0 => {
1997                gen.into_root_schema_for::<ConfigSettingContractExecutionLanesV0>()
1998            }
1999            Self::ConfigSettingContractComputeV0 => {
2000                gen.into_root_schema_for::<ConfigSettingContractComputeV0>()
2001            }
2002            Self::ConfigSettingContractParallelComputeV0 => {
2003                gen.into_root_schema_for::<ConfigSettingContractParallelComputeV0>()
2004            }
2005            Self::ConfigSettingContractLedgerCostV0 => {
2006                gen.into_root_schema_for::<ConfigSettingContractLedgerCostV0>()
2007            }
2008            Self::ConfigSettingContractLedgerCostExtV0 => {
2009                gen.into_root_schema_for::<ConfigSettingContractLedgerCostExtV0>()
2010            }
2011            Self::ConfigSettingContractHistoricalDataV0 => {
2012                gen.into_root_schema_for::<ConfigSettingContractHistoricalDataV0>()
2013            }
2014            Self::ConfigSettingContractEventsV0 => {
2015                gen.into_root_schema_for::<ConfigSettingContractEventsV0>()
2016            }
2017            Self::ConfigSettingContractBandwidthV0 => {
2018                gen.into_root_schema_for::<ConfigSettingContractBandwidthV0>()
2019            }
2020            Self::ContractCostType => gen.into_root_schema_for::<ContractCostType>(),
2021            Self::ContractCostParamEntry => gen.into_root_schema_for::<ContractCostParamEntry>(),
2022            Self::StateArchivalSettings => gen.into_root_schema_for::<StateArchivalSettings>(),
2023            Self::EvictionIterator => gen.into_root_schema_for::<EvictionIterator>(),
2024            Self::ConfigSettingScpTiming => gen.into_root_schema_for::<ConfigSettingScpTiming>(),
2025            Self::FrozenLedgerKeys => gen.into_root_schema_for::<FrozenLedgerKeys>(),
2026            Self::FrozenLedgerKeysDelta => gen.into_root_schema_for::<FrozenLedgerKeysDelta>(),
2027            Self::FreezeBypassTxs => gen.into_root_schema_for::<FreezeBypassTxs>(),
2028            Self::FreezeBypassTxsDelta => gen.into_root_schema_for::<FreezeBypassTxsDelta>(),
2029            Self::ContractCostParams => gen.into_root_schema_for::<ContractCostParams>(),
2030            Self::ConfigSettingId => gen.into_root_schema_for::<ConfigSettingId>(),
2031            Self::ConfigSettingEntry => gen.into_root_schema_for::<ConfigSettingEntry>(),
2032            Self::ScEnvMetaKind => gen.into_root_schema_for::<ScEnvMetaKind>(),
2033            Self::ScEnvMetaEntry => gen.into_root_schema_for::<ScEnvMetaEntry>(),
2034            Self::ScEnvMetaEntryInterfaceVersion => {
2035                gen.into_root_schema_for::<ScEnvMetaEntryInterfaceVersion>()
2036            }
2037            Self::ScMetaV0 => gen.into_root_schema_for::<ScMetaV0>(),
2038            Self::ScMetaKind => gen.into_root_schema_for::<ScMetaKind>(),
2039            Self::ScMetaEntry => gen.into_root_schema_for::<ScMetaEntry>(),
2040            Self::ScSpecType => gen.into_root_schema_for::<ScSpecType>(),
2041            Self::ScSpecTypeOption => gen.into_root_schema_for::<ScSpecTypeOption>(),
2042            Self::ScSpecTypeResult => gen.into_root_schema_for::<ScSpecTypeResult>(),
2043            Self::ScSpecTypeVec => gen.into_root_schema_for::<ScSpecTypeVec>(),
2044            Self::ScSpecTypeMap => gen.into_root_schema_for::<ScSpecTypeMap>(),
2045            Self::ScSpecTypeTuple => gen.into_root_schema_for::<ScSpecTypeTuple>(),
2046            Self::ScSpecTypeBytesN => gen.into_root_schema_for::<ScSpecTypeBytesN>(),
2047            Self::ScSpecTypeUdt => gen.into_root_schema_for::<ScSpecTypeUdt>(),
2048            Self::ScSpecTypeDef => gen.into_root_schema_for::<ScSpecTypeDef>(),
2049            Self::ScSpecUdtStructFieldV0 => gen.into_root_schema_for::<ScSpecUdtStructFieldV0>(),
2050            Self::ScSpecUdtStructV0 => gen.into_root_schema_for::<ScSpecUdtStructV0>(),
2051            Self::ScSpecUdtUnionCaseVoidV0 => {
2052                gen.into_root_schema_for::<ScSpecUdtUnionCaseVoidV0>()
2053            }
2054            Self::ScSpecUdtUnionCaseTupleV0 => {
2055                gen.into_root_schema_for::<ScSpecUdtUnionCaseTupleV0>()
2056            }
2057            Self::ScSpecUdtUnionCaseV0Kind => {
2058                gen.into_root_schema_for::<ScSpecUdtUnionCaseV0Kind>()
2059            }
2060            Self::ScSpecUdtUnionCaseV0 => gen.into_root_schema_for::<ScSpecUdtUnionCaseV0>(),
2061            Self::ScSpecUdtUnionV0 => gen.into_root_schema_for::<ScSpecUdtUnionV0>(),
2062            Self::ScSpecUdtEnumCaseV0 => gen.into_root_schema_for::<ScSpecUdtEnumCaseV0>(),
2063            Self::ScSpecUdtEnumV0 => gen.into_root_schema_for::<ScSpecUdtEnumV0>(),
2064            Self::ScSpecUdtErrorEnumCaseV0 => {
2065                gen.into_root_schema_for::<ScSpecUdtErrorEnumCaseV0>()
2066            }
2067            Self::ScSpecUdtErrorEnumV0 => gen.into_root_schema_for::<ScSpecUdtErrorEnumV0>(),
2068            Self::ScSpecFunctionInputV0 => gen.into_root_schema_for::<ScSpecFunctionInputV0>(),
2069            Self::ScSpecFunctionV0 => gen.into_root_schema_for::<ScSpecFunctionV0>(),
2070            Self::ScSpecEventParamLocationV0 => {
2071                gen.into_root_schema_for::<ScSpecEventParamLocationV0>()
2072            }
2073            Self::ScSpecEventParamV0 => gen.into_root_schema_for::<ScSpecEventParamV0>(),
2074            Self::ScSpecEventDataFormat => gen.into_root_schema_for::<ScSpecEventDataFormat>(),
2075            Self::ScSpecEventV0 => gen.into_root_schema_for::<ScSpecEventV0>(),
2076            Self::ScSpecEntryKind => gen.into_root_schema_for::<ScSpecEntryKind>(),
2077            Self::ScSpecEntry => gen.into_root_schema_for::<ScSpecEntry>(),
2078            Self::ScBytes => gen.into_root_schema_for::<ScBytes>(),
2079            Self::ScString => gen.into_root_schema_for::<ScString>(),
2080            Self::ScSymbol => gen.into_root_schema_for::<ScSymbol>(),
2081            Self::ScValType => gen.into_root_schema_for::<ScValType>(),
2082            Self::ScErrorType => gen.into_root_schema_for::<ScErrorType>(),
2083            Self::ScErrorCode => gen.into_root_schema_for::<ScErrorCode>(),
2084            Self::ScError => gen.into_root_schema_for::<ScError>(),
2085            Self::UInt128Parts => gen.into_root_schema_for::<UInt128Parts>(),
2086            Self::Int128Parts => gen.into_root_schema_for::<Int128Parts>(),
2087            Self::UInt256Parts => gen.into_root_schema_for::<UInt256Parts>(),
2088            Self::Int256Parts => gen.into_root_schema_for::<Int256Parts>(),
2089            Self::ContractExecutableType => gen.into_root_schema_for::<ContractExecutableType>(),
2090            Self::ScAddressType => gen.into_root_schema_for::<ScAddressType>(),
2091            Self::MuxedEd25519Account => gen.into_root_schema_for::<MuxedEd25519Account>(),
2092            #[cfg(feature = "cap_0084_muxed_contract")]
2093            Self::MuxedContract => gen.into_root_schema_for::<MuxedContract>(),
2094            Self::ScAddress => gen.into_root_schema_for::<ScAddress>(),
2095            Self::ContractExecutableExternalRef => {
2096                gen.into_root_schema_for::<ContractExecutableExternalRef>()
2097            }
2098            Self::ContractExecutable => gen.into_root_schema_for::<ContractExecutable>(),
2099            Self::ScVec => gen.into_root_schema_for::<ScVec>(),
2100            Self::ScMap => gen.into_root_schema_for::<ScMap>(),
2101            Self::ScNonceKey => gen.into_root_schema_for::<ScNonceKey>(),
2102            Self::ScContractInstance => gen.into_root_schema_for::<ScContractInstance>(),
2103            Self::ScVal => gen.into_root_schema_for::<ScVal>(),
2104            Self::ScMapEntry => gen.into_root_schema_for::<ScMapEntry>(),
2105            Self::LedgerCloseMetaBatch => gen.into_root_schema_for::<LedgerCloseMetaBatch>(),
2106            Self::StoredTransactionSet => gen.into_root_schema_for::<StoredTransactionSet>(),
2107            Self::StoredDebugTransactionSet => {
2108                gen.into_root_schema_for::<StoredDebugTransactionSet>()
2109            }
2110            Self::PersistedScpStateV0 => gen.into_root_schema_for::<PersistedScpStateV0>(),
2111            Self::PersistedScpStateV1 => gen.into_root_schema_for::<PersistedScpStateV1>(),
2112            Self::PersistedScpState => gen.into_root_schema_for::<PersistedScpState>(),
2113            Self::Thresholds => gen.into_root_schema_for::<Thresholds>(),
2114            Self::String32 => gen.into_root_schema_for::<String32>(),
2115            Self::String64 => gen.into_root_schema_for::<String64>(),
2116            Self::SequenceNumber => gen.into_root_schema_for::<SequenceNumber>(),
2117            Self::DataValue => gen.into_root_schema_for::<DataValue>(),
2118            Self::AssetCode4 => gen.into_root_schema_for::<AssetCode4>(),
2119            Self::AssetCode12 => gen.into_root_schema_for::<AssetCode12>(),
2120            Self::AssetType => gen.into_root_schema_for::<AssetType>(),
2121            Self::AssetCode => gen.into_root_schema_for::<AssetCode>(),
2122            Self::AlphaNum4 => gen.into_root_schema_for::<AlphaNum4>(),
2123            Self::AlphaNum12 => gen.into_root_schema_for::<AlphaNum12>(),
2124            Self::Asset => gen.into_root_schema_for::<Asset>(),
2125            Self::Price => gen.into_root_schema_for::<Price>(),
2126            Self::Liabilities => gen.into_root_schema_for::<Liabilities>(),
2127            Self::ThresholdIndexes => gen.into_root_schema_for::<ThresholdIndexes>(),
2128            Self::LedgerEntryType => gen.into_root_schema_for::<LedgerEntryType>(),
2129            Self::Signer => gen.into_root_schema_for::<Signer>(),
2130            Self::AccountFlags => gen.into_root_schema_for::<AccountFlags>(),
2131            Self::SponsorshipDescriptor => gen.into_root_schema_for::<SponsorshipDescriptor>(),
2132            Self::AccountEntryExtensionV3 => gen.into_root_schema_for::<AccountEntryExtensionV3>(),
2133            Self::AccountEntryExtensionV2 => gen.into_root_schema_for::<AccountEntryExtensionV2>(),
2134            Self::AccountEntryExtensionV2Ext => {
2135                gen.into_root_schema_for::<AccountEntryExtensionV2Ext>()
2136            }
2137            Self::AccountEntryExtensionV1 => gen.into_root_schema_for::<AccountEntryExtensionV1>(),
2138            Self::AccountEntryExtensionV1Ext => {
2139                gen.into_root_schema_for::<AccountEntryExtensionV1Ext>()
2140            }
2141            Self::AccountEntry => gen.into_root_schema_for::<AccountEntry>(),
2142            Self::AccountEntryExt => gen.into_root_schema_for::<AccountEntryExt>(),
2143            Self::TrustLineFlags => gen.into_root_schema_for::<TrustLineFlags>(),
2144            Self::LiquidityPoolType => gen.into_root_schema_for::<LiquidityPoolType>(),
2145            Self::TrustLineAsset => gen.into_root_schema_for::<TrustLineAsset>(),
2146            Self::TrustLineEntryExtensionV2 => {
2147                gen.into_root_schema_for::<TrustLineEntryExtensionV2>()
2148            }
2149            Self::TrustLineEntryExtensionV2Ext => {
2150                gen.into_root_schema_for::<TrustLineEntryExtensionV2Ext>()
2151            }
2152            Self::TrustLineEntry => gen.into_root_schema_for::<TrustLineEntry>(),
2153            Self::TrustLineEntryExt => gen.into_root_schema_for::<TrustLineEntryExt>(),
2154            Self::TrustLineEntryV1 => gen.into_root_schema_for::<TrustLineEntryV1>(),
2155            Self::TrustLineEntryV1Ext => gen.into_root_schema_for::<TrustLineEntryV1Ext>(),
2156            Self::OfferEntryFlags => gen.into_root_schema_for::<OfferEntryFlags>(),
2157            Self::OfferEntry => gen.into_root_schema_for::<OfferEntry>(),
2158            Self::OfferEntryExt => gen.into_root_schema_for::<OfferEntryExt>(),
2159            Self::DataEntry => gen.into_root_schema_for::<DataEntry>(),
2160            Self::DataEntryExt => gen.into_root_schema_for::<DataEntryExt>(),
2161            Self::ClaimPredicateType => gen.into_root_schema_for::<ClaimPredicateType>(),
2162            Self::ClaimPredicate => gen.into_root_schema_for::<ClaimPredicate>(),
2163            Self::ClaimantType => gen.into_root_schema_for::<ClaimantType>(),
2164            Self::Claimant => gen.into_root_schema_for::<Claimant>(),
2165            Self::ClaimantV0 => gen.into_root_schema_for::<ClaimantV0>(),
2166            Self::ClaimableBalanceFlags => gen.into_root_schema_for::<ClaimableBalanceFlags>(),
2167            Self::ClaimableBalanceEntryExtensionV1 => {
2168                gen.into_root_schema_for::<ClaimableBalanceEntryExtensionV1>()
2169            }
2170            Self::ClaimableBalanceEntryExtensionV1Ext => {
2171                gen.into_root_schema_for::<ClaimableBalanceEntryExtensionV1Ext>()
2172            }
2173            Self::ClaimableBalanceEntry => gen.into_root_schema_for::<ClaimableBalanceEntry>(),
2174            Self::ClaimableBalanceEntryExt => {
2175                gen.into_root_schema_for::<ClaimableBalanceEntryExt>()
2176            }
2177            Self::LiquidityPoolConstantProductParameters => {
2178                gen.into_root_schema_for::<LiquidityPoolConstantProductParameters>()
2179            }
2180            Self::LiquidityPoolEntry => gen.into_root_schema_for::<LiquidityPoolEntry>(),
2181            Self::LiquidityPoolEntryBody => gen.into_root_schema_for::<LiquidityPoolEntryBody>(),
2182            Self::LiquidityPoolEntryConstantProduct => {
2183                gen.into_root_schema_for::<LiquidityPoolEntryConstantProduct>()
2184            }
2185            Self::ContractDataDurability => gen.into_root_schema_for::<ContractDataDurability>(),
2186            Self::ContractDataEntry => gen.into_root_schema_for::<ContractDataEntry>(),
2187            Self::ContractCodeCostInputs => gen.into_root_schema_for::<ContractCodeCostInputs>(),
2188            Self::ContractCodeEntry => gen.into_root_schema_for::<ContractCodeEntry>(),
2189            Self::ContractCodeEntryExt => gen.into_root_schema_for::<ContractCodeEntryExt>(),
2190            Self::ContractCodeEntryV1 => gen.into_root_schema_for::<ContractCodeEntryV1>(),
2191            Self::TtlEntry => gen.into_root_schema_for::<TtlEntry>(),
2192            Self::LedgerEntryExtensionV1 => gen.into_root_schema_for::<LedgerEntryExtensionV1>(),
2193            Self::LedgerEntryExtensionV1Ext => {
2194                gen.into_root_schema_for::<LedgerEntryExtensionV1Ext>()
2195            }
2196            Self::LedgerEntry => gen.into_root_schema_for::<LedgerEntry>(),
2197            Self::LedgerEntryData => gen.into_root_schema_for::<LedgerEntryData>(),
2198            Self::LedgerEntryExt => gen.into_root_schema_for::<LedgerEntryExt>(),
2199            Self::LedgerKey => gen.into_root_schema_for::<LedgerKey>(),
2200            Self::LedgerKeyAccount => gen.into_root_schema_for::<LedgerKeyAccount>(),
2201            Self::LedgerKeyTrustLine => gen.into_root_schema_for::<LedgerKeyTrustLine>(),
2202            Self::LedgerKeyOffer => gen.into_root_schema_for::<LedgerKeyOffer>(),
2203            Self::LedgerKeyData => gen.into_root_schema_for::<LedgerKeyData>(),
2204            Self::LedgerKeyClaimableBalance => {
2205                gen.into_root_schema_for::<LedgerKeyClaimableBalance>()
2206            }
2207            Self::LedgerKeyLiquidityPool => gen.into_root_schema_for::<LedgerKeyLiquidityPool>(),
2208            Self::LedgerKeyContractData => gen.into_root_schema_for::<LedgerKeyContractData>(),
2209            Self::LedgerKeyContractCode => gen.into_root_schema_for::<LedgerKeyContractCode>(),
2210            Self::LedgerKeyConfigSetting => gen.into_root_schema_for::<LedgerKeyConfigSetting>(),
2211            Self::LedgerKeyTtl => gen.into_root_schema_for::<LedgerKeyTtl>(),
2212            Self::EnvelopeType => gen.into_root_schema_for::<EnvelopeType>(),
2213            Self::BucketListType => gen.into_root_schema_for::<BucketListType>(),
2214            Self::BucketEntryType => gen.into_root_schema_for::<BucketEntryType>(),
2215            Self::HotArchiveBucketEntryType => {
2216                gen.into_root_schema_for::<HotArchiveBucketEntryType>()
2217            }
2218            Self::BucketMetadata => gen.into_root_schema_for::<BucketMetadata>(),
2219            Self::BucketMetadataExt => gen.into_root_schema_for::<BucketMetadataExt>(),
2220            Self::BucketEntry => gen.into_root_schema_for::<BucketEntry>(),
2221            Self::HotArchiveBucketEntry => gen.into_root_schema_for::<HotArchiveBucketEntry>(),
2222            Self::UpgradeType => gen.into_root_schema_for::<UpgradeType>(),
2223            Self::StellarValueType => gen.into_root_schema_for::<StellarValueType>(),
2224            Self::LedgerCloseValueSignature => {
2225                gen.into_root_schema_for::<LedgerCloseValueSignature>()
2226            }
2227            Self::StellarValue => gen.into_root_schema_for::<StellarValue>(),
2228            Self::StellarValueExt => gen.into_root_schema_for::<StellarValueExt>(),
2229            Self::StellarValueProposedValue => {
2230                gen.into_root_schema_for::<StellarValueProposedValue>()
2231            }
2232            Self::LedgerHeaderFlags => gen.into_root_schema_for::<LedgerHeaderFlags>(),
2233            Self::LedgerHeaderExtensionV1 => gen.into_root_schema_for::<LedgerHeaderExtensionV1>(),
2234            Self::LedgerHeaderExtensionV1Ext => {
2235                gen.into_root_schema_for::<LedgerHeaderExtensionV1Ext>()
2236            }
2237            Self::LedgerHeader => gen.into_root_schema_for::<LedgerHeader>(),
2238            Self::LedgerHeaderExt => gen.into_root_schema_for::<LedgerHeaderExt>(),
2239            Self::LedgerUpgradeType => gen.into_root_schema_for::<LedgerUpgradeType>(),
2240            Self::ConfigUpgradeSetKey => gen.into_root_schema_for::<ConfigUpgradeSetKey>(),
2241            Self::LedgerUpgrade => gen.into_root_schema_for::<LedgerUpgrade>(),
2242            Self::ConfigUpgradeSet => gen.into_root_schema_for::<ConfigUpgradeSet>(),
2243            Self::TxSetComponentType => gen.into_root_schema_for::<TxSetComponentType>(),
2244            Self::DependentTxCluster => gen.into_root_schema_for::<DependentTxCluster>(),
2245            Self::ParallelTxExecutionStage => {
2246                gen.into_root_schema_for::<ParallelTxExecutionStage>()
2247            }
2248            Self::ParallelTxsComponent => gen.into_root_schema_for::<ParallelTxsComponent>(),
2249            Self::TxSetComponent => gen.into_root_schema_for::<TxSetComponent>(),
2250            Self::TxSetComponentTxsMaybeDiscountedFee => {
2251                gen.into_root_schema_for::<TxSetComponentTxsMaybeDiscountedFee>()
2252            }
2253            Self::TransactionPhase => gen.into_root_schema_for::<TransactionPhase>(),
2254            Self::TransactionSet => gen.into_root_schema_for::<TransactionSet>(),
2255            Self::TransactionSetV1 => gen.into_root_schema_for::<TransactionSetV1>(),
2256            Self::GeneralizedTransactionSet => {
2257                gen.into_root_schema_for::<GeneralizedTransactionSet>()
2258            }
2259            Self::TransactionResultPair => gen.into_root_schema_for::<TransactionResultPair>(),
2260            Self::TransactionResultSet => gen.into_root_schema_for::<TransactionResultSet>(),
2261            Self::TransactionHistoryEntry => gen.into_root_schema_for::<TransactionHistoryEntry>(),
2262            Self::TransactionHistoryEntryExt => {
2263                gen.into_root_schema_for::<TransactionHistoryEntryExt>()
2264            }
2265            Self::TransactionHistoryResultEntry => {
2266                gen.into_root_schema_for::<TransactionHistoryResultEntry>()
2267            }
2268            Self::TransactionHistoryResultEntryExt => {
2269                gen.into_root_schema_for::<TransactionHistoryResultEntryExt>()
2270            }
2271            Self::LedgerHeaderHistoryEntry => {
2272                gen.into_root_schema_for::<LedgerHeaderHistoryEntry>()
2273            }
2274            Self::LedgerHeaderHistoryEntryExt => {
2275                gen.into_root_schema_for::<LedgerHeaderHistoryEntryExt>()
2276            }
2277            Self::LedgerScpMessages => gen.into_root_schema_for::<LedgerScpMessages>(),
2278            Self::ScpHistoryEntryV0 => gen.into_root_schema_for::<ScpHistoryEntryV0>(),
2279            Self::ScpHistoryEntry => gen.into_root_schema_for::<ScpHistoryEntry>(),
2280            Self::LedgerEntryChangeType => gen.into_root_schema_for::<LedgerEntryChangeType>(),
2281            Self::LedgerEntryChange => gen.into_root_schema_for::<LedgerEntryChange>(),
2282            Self::LedgerEntryChanges => gen.into_root_schema_for::<LedgerEntryChanges>(),
2283            Self::OperationMeta => gen.into_root_schema_for::<OperationMeta>(),
2284            Self::TransactionMetaV1 => gen.into_root_schema_for::<TransactionMetaV1>(),
2285            Self::TransactionMetaV2 => gen.into_root_schema_for::<TransactionMetaV2>(),
2286            Self::ContractEventType => gen.into_root_schema_for::<ContractEventType>(),
2287            Self::ContractEvent => gen.into_root_schema_for::<ContractEvent>(),
2288            Self::ContractEventBody => gen.into_root_schema_for::<ContractEventBody>(),
2289            Self::ContractEventV0 => gen.into_root_schema_for::<ContractEventV0>(),
2290            Self::DiagnosticEvent => gen.into_root_schema_for::<DiagnosticEvent>(),
2291            Self::SorobanTransactionMetaExtV1 => {
2292                gen.into_root_schema_for::<SorobanTransactionMetaExtV1>()
2293            }
2294            Self::SorobanTransactionMetaExt => {
2295                gen.into_root_schema_for::<SorobanTransactionMetaExt>()
2296            }
2297            Self::SorobanTransactionMeta => gen.into_root_schema_for::<SorobanTransactionMeta>(),
2298            Self::TransactionMetaV3 => gen.into_root_schema_for::<TransactionMetaV3>(),
2299            Self::OperationMetaV2 => gen.into_root_schema_for::<OperationMetaV2>(),
2300            Self::SorobanTransactionMetaV2 => {
2301                gen.into_root_schema_for::<SorobanTransactionMetaV2>()
2302            }
2303            Self::TransactionEventStage => gen.into_root_schema_for::<TransactionEventStage>(),
2304            Self::TransactionEvent => gen.into_root_schema_for::<TransactionEvent>(),
2305            Self::TransactionMetaV4 => gen.into_root_schema_for::<TransactionMetaV4>(),
2306            Self::InvokeHostFunctionSuccessPreImage => {
2307                gen.into_root_schema_for::<InvokeHostFunctionSuccessPreImage>()
2308            }
2309            Self::TransactionMeta => gen.into_root_schema_for::<TransactionMeta>(),
2310            Self::TransactionResultMeta => gen.into_root_schema_for::<TransactionResultMeta>(),
2311            Self::TransactionResultMetaV1 => gen.into_root_schema_for::<TransactionResultMetaV1>(),
2312            Self::UpgradeEntryMeta => gen.into_root_schema_for::<UpgradeEntryMeta>(),
2313            Self::LedgerCloseMetaV0 => gen.into_root_schema_for::<LedgerCloseMetaV0>(),
2314            Self::LedgerCloseMetaExtV1 => gen.into_root_schema_for::<LedgerCloseMetaExtV1>(),
2315            Self::LedgerCloseMetaExt => gen.into_root_schema_for::<LedgerCloseMetaExt>(),
2316            Self::LedgerCloseMetaV1 => gen.into_root_schema_for::<LedgerCloseMetaV1>(),
2317            Self::LedgerCloseMetaV2 => gen.into_root_schema_for::<LedgerCloseMetaV2>(),
2318            Self::LedgerCloseMeta => gen.into_root_schema_for::<LedgerCloseMeta>(),
2319            Self::ErrorCode => gen.into_root_schema_for::<ErrorCode>(),
2320            Self::SError => gen.into_root_schema_for::<SError>(),
2321            Self::SendMore => gen.into_root_schema_for::<SendMore>(),
2322            Self::SendMoreExtended => gen.into_root_schema_for::<SendMoreExtended>(),
2323            Self::AuthCert => gen.into_root_schema_for::<AuthCert>(),
2324            Self::Hello => gen.into_root_schema_for::<Hello>(),
2325            Self::Auth => gen.into_root_schema_for::<Auth>(),
2326            Self::IpAddrType => gen.into_root_schema_for::<IpAddrType>(),
2327            Self::PeerAddress => gen.into_root_schema_for::<PeerAddress>(),
2328            Self::PeerAddressIp => gen.into_root_schema_for::<PeerAddressIp>(),
2329            Self::MessageType => gen.into_root_schema_for::<MessageType>(),
2330            Self::DontHave => gen.into_root_schema_for::<DontHave>(),
2331            Self::SurveyMessageCommandType => {
2332                gen.into_root_schema_for::<SurveyMessageCommandType>()
2333            }
2334            Self::SurveyMessageResponseType => {
2335                gen.into_root_schema_for::<SurveyMessageResponseType>()
2336            }
2337            Self::TimeSlicedSurveyStartCollectingMessage => {
2338                gen.into_root_schema_for::<TimeSlicedSurveyStartCollectingMessage>()
2339            }
2340            Self::SignedTimeSlicedSurveyStartCollectingMessage => {
2341                gen.into_root_schema_for::<SignedTimeSlicedSurveyStartCollectingMessage>()
2342            }
2343            Self::TimeSlicedSurveyStopCollectingMessage => {
2344                gen.into_root_schema_for::<TimeSlicedSurveyStopCollectingMessage>()
2345            }
2346            Self::SignedTimeSlicedSurveyStopCollectingMessage => {
2347                gen.into_root_schema_for::<SignedTimeSlicedSurveyStopCollectingMessage>()
2348            }
2349            Self::SurveyRequestMessage => gen.into_root_schema_for::<SurveyRequestMessage>(),
2350            Self::TimeSlicedSurveyRequestMessage => {
2351                gen.into_root_schema_for::<TimeSlicedSurveyRequestMessage>()
2352            }
2353            Self::SignedTimeSlicedSurveyRequestMessage => {
2354                gen.into_root_schema_for::<SignedTimeSlicedSurveyRequestMessage>()
2355            }
2356            Self::EncryptedBody => gen.into_root_schema_for::<EncryptedBody>(),
2357            Self::SurveyResponseMessage => gen.into_root_schema_for::<SurveyResponseMessage>(),
2358            Self::TimeSlicedSurveyResponseMessage => {
2359                gen.into_root_schema_for::<TimeSlicedSurveyResponseMessage>()
2360            }
2361            Self::SignedTimeSlicedSurveyResponseMessage => {
2362                gen.into_root_schema_for::<SignedTimeSlicedSurveyResponseMessage>()
2363            }
2364            Self::PeerStats => gen.into_root_schema_for::<PeerStats>(),
2365            Self::TimeSlicedNodeData => gen.into_root_schema_for::<TimeSlicedNodeData>(),
2366            Self::TimeSlicedPeerData => gen.into_root_schema_for::<TimeSlicedPeerData>(),
2367            Self::TimeSlicedPeerDataList => gen.into_root_schema_for::<TimeSlicedPeerDataList>(),
2368            Self::TopologyResponseBodyV2 => gen.into_root_schema_for::<TopologyResponseBodyV2>(),
2369            Self::SurveyResponseBody => gen.into_root_schema_for::<SurveyResponseBody>(),
2370            Self::TxAdvertVector => gen.into_root_schema_for::<TxAdvertVector>(),
2371            Self::FloodAdvert => gen.into_root_schema_for::<FloodAdvert>(),
2372            Self::TxDemandVector => gen.into_root_schema_for::<TxDemandVector>(),
2373            Self::FloodDemand => gen.into_root_schema_for::<FloodDemand>(),
2374            Self::StellarMessage => gen.into_root_schema_for::<StellarMessage>(),
2375            Self::AuthenticatedMessage => gen.into_root_schema_for::<AuthenticatedMessage>(),
2376            Self::AuthenticatedMessageV0 => gen.into_root_schema_for::<AuthenticatedMessageV0>(),
2377            Self::LiquidityPoolParameters => gen.into_root_schema_for::<LiquidityPoolParameters>(),
2378            Self::MuxedAccount => gen.into_root_schema_for::<MuxedAccount>(),
2379            Self::MuxedAccountMed25519 => gen.into_root_schema_for::<MuxedAccountMed25519>(),
2380            Self::DecoratedSignature => gen.into_root_schema_for::<DecoratedSignature>(),
2381            Self::OperationType => gen.into_root_schema_for::<OperationType>(),
2382            Self::CreateAccountOp => gen.into_root_schema_for::<CreateAccountOp>(),
2383            Self::PaymentOp => gen.into_root_schema_for::<PaymentOp>(),
2384            Self::PathPaymentStrictReceiveOp => {
2385                gen.into_root_schema_for::<PathPaymentStrictReceiveOp>()
2386            }
2387            Self::PathPaymentStrictSendOp => gen.into_root_schema_for::<PathPaymentStrictSendOp>(),
2388            Self::ManageSellOfferOp => gen.into_root_schema_for::<ManageSellOfferOp>(),
2389            Self::ManageBuyOfferOp => gen.into_root_schema_for::<ManageBuyOfferOp>(),
2390            Self::CreatePassiveSellOfferOp => {
2391                gen.into_root_schema_for::<CreatePassiveSellOfferOp>()
2392            }
2393            Self::SetOptionsOp => gen.into_root_schema_for::<SetOptionsOp>(),
2394            Self::ChangeTrustAsset => gen.into_root_schema_for::<ChangeTrustAsset>(),
2395            Self::ChangeTrustOp => gen.into_root_schema_for::<ChangeTrustOp>(),
2396            Self::AllowTrustOp => gen.into_root_schema_for::<AllowTrustOp>(),
2397            Self::ManageDataOp => gen.into_root_schema_for::<ManageDataOp>(),
2398            Self::BumpSequenceOp => gen.into_root_schema_for::<BumpSequenceOp>(),
2399            Self::CreateClaimableBalanceOp => {
2400                gen.into_root_schema_for::<CreateClaimableBalanceOp>()
2401            }
2402            Self::ClaimClaimableBalanceOp => gen.into_root_schema_for::<ClaimClaimableBalanceOp>(),
2403            Self::BeginSponsoringFutureReservesOp => {
2404                gen.into_root_schema_for::<BeginSponsoringFutureReservesOp>()
2405            }
2406            Self::RevokeSponsorshipType => gen.into_root_schema_for::<RevokeSponsorshipType>(),
2407            Self::RevokeSponsorshipOp => gen.into_root_schema_for::<RevokeSponsorshipOp>(),
2408            Self::RevokeSponsorshipOpSigner => {
2409                gen.into_root_schema_for::<RevokeSponsorshipOpSigner>()
2410            }
2411            Self::ClawbackOp => gen.into_root_schema_for::<ClawbackOp>(),
2412            Self::ClawbackClaimableBalanceOp => {
2413                gen.into_root_schema_for::<ClawbackClaimableBalanceOp>()
2414            }
2415            Self::SetTrustLineFlagsOp => gen.into_root_schema_for::<SetTrustLineFlagsOp>(),
2416            Self::LiquidityPoolDepositOp => gen.into_root_schema_for::<LiquidityPoolDepositOp>(),
2417            Self::LiquidityPoolWithdrawOp => gen.into_root_schema_for::<LiquidityPoolWithdrawOp>(),
2418            Self::HostFunctionType => gen.into_root_schema_for::<HostFunctionType>(),
2419            Self::ContractIdPreimageType => gen.into_root_schema_for::<ContractIdPreimageType>(),
2420            Self::ContractIdPreimage => gen.into_root_schema_for::<ContractIdPreimage>(),
2421            Self::ContractIdPreimageFromAddress => {
2422                gen.into_root_schema_for::<ContractIdPreimageFromAddress>()
2423            }
2424            Self::CreateContractArgs => gen.into_root_schema_for::<CreateContractArgs>(),
2425            Self::CreateContractArgsV2 => gen.into_root_schema_for::<CreateContractArgsV2>(),
2426            Self::InvokeContractArgs => gen.into_root_schema_for::<InvokeContractArgs>(),
2427            Self::HostFunction => gen.into_root_schema_for::<HostFunction>(),
2428            Self::SorobanAuthorizedFunctionType => {
2429                gen.into_root_schema_for::<SorobanAuthorizedFunctionType>()
2430            }
2431            Self::SorobanAuthorizedFunction => {
2432                gen.into_root_schema_for::<SorobanAuthorizedFunction>()
2433            }
2434            Self::SorobanAuthorizedInvocation => {
2435                gen.into_root_schema_for::<SorobanAuthorizedInvocation>()
2436            }
2437            Self::SorobanAddressCredentials => {
2438                gen.into_root_schema_for::<SorobanAddressCredentials>()
2439            }
2440            Self::SorobanDelegateSignature => {
2441                gen.into_root_schema_for::<SorobanDelegateSignature>()
2442            }
2443            Self::SorobanAddressCredentialsWithDelegates => {
2444                gen.into_root_schema_for::<SorobanAddressCredentialsWithDelegates>()
2445            }
2446            Self::SorobanCredentialsType => gen.into_root_schema_for::<SorobanCredentialsType>(),
2447            Self::SorobanCredentials => gen.into_root_schema_for::<SorobanCredentials>(),
2448            Self::SorobanAuthorizationEntry => {
2449                gen.into_root_schema_for::<SorobanAuthorizationEntry>()
2450            }
2451            Self::SorobanAuthorizationEntries => {
2452                gen.into_root_schema_for::<SorobanAuthorizationEntries>()
2453            }
2454            Self::InvokeHostFunctionOp => gen.into_root_schema_for::<InvokeHostFunctionOp>(),
2455            Self::ExtendFootprintTtlOp => gen.into_root_schema_for::<ExtendFootprintTtlOp>(),
2456            Self::RestoreFootprintOp => gen.into_root_schema_for::<RestoreFootprintOp>(),
2457            Self::Operation => gen.into_root_schema_for::<Operation>(),
2458            Self::OperationBody => gen.into_root_schema_for::<OperationBody>(),
2459            Self::HashIdPreimage => gen.into_root_schema_for::<HashIdPreimage>(),
2460            Self::HashIdPreimageOperationId => {
2461                gen.into_root_schema_for::<HashIdPreimageOperationId>()
2462            }
2463            Self::HashIdPreimageRevokeId => gen.into_root_schema_for::<HashIdPreimageRevokeId>(),
2464            Self::HashIdPreimageContractId => {
2465                gen.into_root_schema_for::<HashIdPreimageContractId>()
2466            }
2467            Self::HashIdPreimageSorobanAuthorization => {
2468                gen.into_root_schema_for::<HashIdPreimageSorobanAuthorization>()
2469            }
2470            Self::HashIdPreimageSorobanAuthorizationWithAddress => {
2471                gen.into_root_schema_for::<HashIdPreimageSorobanAuthorizationWithAddress>()
2472            }
2473            Self::MemoType => gen.into_root_schema_for::<MemoType>(),
2474            Self::Memo => gen.into_root_schema_for::<Memo>(),
2475            Self::TimeBounds => gen.into_root_schema_for::<TimeBounds>(),
2476            Self::LedgerBounds => gen.into_root_schema_for::<LedgerBounds>(),
2477            Self::PreconditionsV2 => gen.into_root_schema_for::<PreconditionsV2>(),
2478            Self::PreconditionType => gen.into_root_schema_for::<PreconditionType>(),
2479            Self::Preconditions => gen.into_root_schema_for::<Preconditions>(),
2480            Self::LedgerFootprint => gen.into_root_schema_for::<LedgerFootprint>(),
2481            Self::SorobanResources => gen.into_root_schema_for::<SorobanResources>(),
2482            Self::SorobanResourcesExtV0 => gen.into_root_schema_for::<SorobanResourcesExtV0>(),
2483            Self::SorobanTransactionData => gen.into_root_schema_for::<SorobanTransactionData>(),
2484            Self::SorobanTransactionDataExt => {
2485                gen.into_root_schema_for::<SorobanTransactionDataExt>()
2486            }
2487            Self::TransactionV0 => gen.into_root_schema_for::<TransactionV0>(),
2488            Self::TransactionV0Ext => gen.into_root_schema_for::<TransactionV0Ext>(),
2489            Self::TransactionV0Envelope => gen.into_root_schema_for::<TransactionV0Envelope>(),
2490            Self::Transaction => gen.into_root_schema_for::<Transaction>(),
2491            Self::TransactionExt => gen.into_root_schema_for::<TransactionExt>(),
2492            Self::TransactionV1Envelope => gen.into_root_schema_for::<TransactionV1Envelope>(),
2493            Self::FeeBumpTransaction => gen.into_root_schema_for::<FeeBumpTransaction>(),
2494            Self::FeeBumpTransactionInnerTx => {
2495                gen.into_root_schema_for::<FeeBumpTransactionInnerTx>()
2496            }
2497            Self::FeeBumpTransactionExt => gen.into_root_schema_for::<FeeBumpTransactionExt>(),
2498            Self::FeeBumpTransactionEnvelope => {
2499                gen.into_root_schema_for::<FeeBumpTransactionEnvelope>()
2500            }
2501            Self::TransactionEnvelope => gen.into_root_schema_for::<TransactionEnvelope>(),
2502            Self::TransactionSignaturePayload => {
2503                gen.into_root_schema_for::<TransactionSignaturePayload>()
2504            }
2505            Self::TransactionSignaturePayloadTaggedTransaction => {
2506                gen.into_root_schema_for::<TransactionSignaturePayloadTaggedTransaction>()
2507            }
2508            Self::ClaimAtomType => gen.into_root_schema_for::<ClaimAtomType>(),
2509            Self::ClaimOfferAtomV0 => gen.into_root_schema_for::<ClaimOfferAtomV0>(),
2510            Self::ClaimOfferAtom => gen.into_root_schema_for::<ClaimOfferAtom>(),
2511            Self::ClaimLiquidityAtom => gen.into_root_schema_for::<ClaimLiquidityAtom>(),
2512            Self::ClaimAtom => gen.into_root_schema_for::<ClaimAtom>(),
2513            Self::CreateAccountResultCode => gen.into_root_schema_for::<CreateAccountResultCode>(),
2514            Self::CreateAccountResult => gen.into_root_schema_for::<CreateAccountResult>(),
2515            Self::PaymentResultCode => gen.into_root_schema_for::<PaymentResultCode>(),
2516            Self::PaymentResult => gen.into_root_schema_for::<PaymentResult>(),
2517            Self::PathPaymentStrictReceiveResultCode => {
2518                gen.into_root_schema_for::<PathPaymentStrictReceiveResultCode>()
2519            }
2520            Self::SimplePaymentResult => gen.into_root_schema_for::<SimplePaymentResult>(),
2521            Self::PathPaymentStrictReceiveResult => {
2522                gen.into_root_schema_for::<PathPaymentStrictReceiveResult>()
2523            }
2524            Self::PathPaymentStrictReceiveResultSuccess => {
2525                gen.into_root_schema_for::<PathPaymentStrictReceiveResultSuccess>()
2526            }
2527            Self::PathPaymentStrictSendResultCode => {
2528                gen.into_root_schema_for::<PathPaymentStrictSendResultCode>()
2529            }
2530            Self::PathPaymentStrictSendResult => {
2531                gen.into_root_schema_for::<PathPaymentStrictSendResult>()
2532            }
2533            Self::PathPaymentStrictSendResultSuccess => {
2534                gen.into_root_schema_for::<PathPaymentStrictSendResultSuccess>()
2535            }
2536            Self::ManageSellOfferResultCode => {
2537                gen.into_root_schema_for::<ManageSellOfferResultCode>()
2538            }
2539            Self::ManageOfferEffect => gen.into_root_schema_for::<ManageOfferEffect>(),
2540            Self::ManageOfferSuccessResult => {
2541                gen.into_root_schema_for::<ManageOfferSuccessResult>()
2542            }
2543            Self::ManageOfferSuccessResultOffer => {
2544                gen.into_root_schema_for::<ManageOfferSuccessResultOffer>()
2545            }
2546            Self::ManageSellOfferResult => gen.into_root_schema_for::<ManageSellOfferResult>(),
2547            Self::ManageBuyOfferResultCode => {
2548                gen.into_root_schema_for::<ManageBuyOfferResultCode>()
2549            }
2550            Self::ManageBuyOfferResult => gen.into_root_schema_for::<ManageBuyOfferResult>(),
2551            Self::SetOptionsResultCode => gen.into_root_schema_for::<SetOptionsResultCode>(),
2552            Self::SetOptionsResult => gen.into_root_schema_for::<SetOptionsResult>(),
2553            Self::ChangeTrustResultCode => gen.into_root_schema_for::<ChangeTrustResultCode>(),
2554            Self::ChangeTrustResult => gen.into_root_schema_for::<ChangeTrustResult>(),
2555            Self::AllowTrustResultCode => gen.into_root_schema_for::<AllowTrustResultCode>(),
2556            Self::AllowTrustResult => gen.into_root_schema_for::<AllowTrustResult>(),
2557            Self::AccountMergeResultCode => gen.into_root_schema_for::<AccountMergeResultCode>(),
2558            Self::AccountMergeResult => gen.into_root_schema_for::<AccountMergeResult>(),
2559            Self::InflationResultCode => gen.into_root_schema_for::<InflationResultCode>(),
2560            Self::InflationPayout => gen.into_root_schema_for::<InflationPayout>(),
2561            Self::InflationResult => gen.into_root_schema_for::<InflationResult>(),
2562            Self::ManageDataResultCode => gen.into_root_schema_for::<ManageDataResultCode>(),
2563            Self::ManageDataResult => gen.into_root_schema_for::<ManageDataResult>(),
2564            Self::BumpSequenceResultCode => gen.into_root_schema_for::<BumpSequenceResultCode>(),
2565            Self::BumpSequenceResult => gen.into_root_schema_for::<BumpSequenceResult>(),
2566            Self::CreateClaimableBalanceResultCode => {
2567                gen.into_root_schema_for::<CreateClaimableBalanceResultCode>()
2568            }
2569            Self::CreateClaimableBalanceResult => {
2570                gen.into_root_schema_for::<CreateClaimableBalanceResult>()
2571            }
2572            Self::ClaimClaimableBalanceResultCode => {
2573                gen.into_root_schema_for::<ClaimClaimableBalanceResultCode>()
2574            }
2575            Self::ClaimClaimableBalanceResult => {
2576                gen.into_root_schema_for::<ClaimClaimableBalanceResult>()
2577            }
2578            Self::BeginSponsoringFutureReservesResultCode => {
2579                gen.into_root_schema_for::<BeginSponsoringFutureReservesResultCode>()
2580            }
2581            Self::BeginSponsoringFutureReservesResult => {
2582                gen.into_root_schema_for::<BeginSponsoringFutureReservesResult>()
2583            }
2584            Self::EndSponsoringFutureReservesResultCode => {
2585                gen.into_root_schema_for::<EndSponsoringFutureReservesResultCode>()
2586            }
2587            Self::EndSponsoringFutureReservesResult => {
2588                gen.into_root_schema_for::<EndSponsoringFutureReservesResult>()
2589            }
2590            Self::RevokeSponsorshipResultCode => {
2591                gen.into_root_schema_for::<RevokeSponsorshipResultCode>()
2592            }
2593            Self::RevokeSponsorshipResult => gen.into_root_schema_for::<RevokeSponsorshipResult>(),
2594            Self::ClawbackResultCode => gen.into_root_schema_for::<ClawbackResultCode>(),
2595            Self::ClawbackResult => gen.into_root_schema_for::<ClawbackResult>(),
2596            Self::ClawbackClaimableBalanceResultCode => {
2597                gen.into_root_schema_for::<ClawbackClaimableBalanceResultCode>()
2598            }
2599            Self::ClawbackClaimableBalanceResult => {
2600                gen.into_root_schema_for::<ClawbackClaimableBalanceResult>()
2601            }
2602            Self::SetTrustLineFlagsResultCode => {
2603                gen.into_root_schema_for::<SetTrustLineFlagsResultCode>()
2604            }
2605            Self::SetTrustLineFlagsResult => gen.into_root_schema_for::<SetTrustLineFlagsResult>(),
2606            Self::LiquidityPoolDepositResultCode => {
2607                gen.into_root_schema_for::<LiquidityPoolDepositResultCode>()
2608            }
2609            Self::LiquidityPoolDepositResult => {
2610                gen.into_root_schema_for::<LiquidityPoolDepositResult>()
2611            }
2612            Self::LiquidityPoolWithdrawResultCode => {
2613                gen.into_root_schema_for::<LiquidityPoolWithdrawResultCode>()
2614            }
2615            Self::LiquidityPoolWithdrawResult => {
2616                gen.into_root_schema_for::<LiquidityPoolWithdrawResult>()
2617            }
2618            Self::InvokeHostFunctionResultCode => {
2619                gen.into_root_schema_for::<InvokeHostFunctionResultCode>()
2620            }
2621            Self::InvokeHostFunctionResult => {
2622                gen.into_root_schema_for::<InvokeHostFunctionResult>()
2623            }
2624            Self::ExtendFootprintTtlResultCode => {
2625                gen.into_root_schema_for::<ExtendFootprintTtlResultCode>()
2626            }
2627            Self::ExtendFootprintTtlResult => {
2628                gen.into_root_schema_for::<ExtendFootprintTtlResult>()
2629            }
2630            Self::RestoreFootprintResultCode => {
2631                gen.into_root_schema_for::<RestoreFootprintResultCode>()
2632            }
2633            Self::RestoreFootprintResult => gen.into_root_schema_for::<RestoreFootprintResult>(),
2634            Self::OperationResultCode => gen.into_root_schema_for::<OperationResultCode>(),
2635            Self::OperationResult => gen.into_root_schema_for::<OperationResult>(),
2636            Self::OperationResultTr => gen.into_root_schema_for::<OperationResultTr>(),
2637            Self::TransactionResultCode => gen.into_root_schema_for::<TransactionResultCode>(),
2638            Self::InnerTransactionResult => gen.into_root_schema_for::<InnerTransactionResult>(),
2639            Self::InnerTransactionResultResult => {
2640                gen.into_root_schema_for::<InnerTransactionResultResult>()
2641            }
2642            Self::InnerTransactionResultExt => {
2643                gen.into_root_schema_for::<InnerTransactionResultExt>()
2644            }
2645            Self::InnerTransactionResultPair => {
2646                gen.into_root_schema_for::<InnerTransactionResultPair>()
2647            }
2648            Self::TransactionResult => gen.into_root_schema_for::<TransactionResult>(),
2649            Self::TransactionResultResult => gen.into_root_schema_for::<TransactionResultResult>(),
2650            Self::TransactionResultExt => gen.into_root_schema_for::<TransactionResultExt>(),
2651            Self::Hash => gen.into_root_schema_for::<Hash>(),
2652            Self::Uint256 => gen.into_root_schema_for::<Uint256>(),
2653            Self::Uint32 => gen.into_root_schema_for::<Uint32>(),
2654            Self::Int32 => gen.into_root_schema_for::<Int32>(),
2655            Self::Uint64 => gen.into_root_schema_for::<Uint64>(),
2656            Self::Int64 => gen.into_root_schema_for::<Int64>(),
2657            Self::TimePoint => gen.into_root_schema_for::<TimePoint>(),
2658            Self::Duration => gen.into_root_schema_for::<Duration>(),
2659            Self::ExtensionPoint => gen.into_root_schema_for::<ExtensionPoint>(),
2660            Self::CryptoKeyType => gen.into_root_schema_for::<CryptoKeyType>(),
2661            Self::PublicKeyType => gen.into_root_schema_for::<PublicKeyType>(),
2662            Self::SignerKeyType => gen.into_root_schema_for::<SignerKeyType>(),
2663            Self::PublicKey => gen.into_root_schema_for::<PublicKey>(),
2664            Self::SignerKey => gen.into_root_schema_for::<SignerKey>(),
2665            Self::SignerKeyEd25519SignedPayload => {
2666                gen.into_root_schema_for::<SignerKeyEd25519SignedPayload>()
2667            }
2668            Self::Signature => gen.into_root_schema_for::<Signature>(),
2669            Self::SignatureHint => gen.into_root_schema_for::<SignatureHint>(),
2670            Self::NodeId => gen.into_root_schema_for::<NodeId>(),
2671            Self::AccountId => gen.into_root_schema_for::<AccountId>(),
2672            Self::ContractId => gen.into_root_schema_for::<ContractId>(),
2673            Self::Curve25519Secret => gen.into_root_schema_for::<Curve25519Secret>(),
2674            Self::Curve25519Public => gen.into_root_schema_for::<Curve25519Public>(),
2675            Self::HmacSha256Key => gen.into_root_schema_for::<HmacSha256Key>(),
2676            Self::HmacSha256Mac => gen.into_root_schema_for::<HmacSha256Mac>(),
2677            Self::ShortHashSeed => gen.into_root_schema_for::<ShortHashSeed>(),
2678            Self::BinaryFuseFilterType => gen.into_root_schema_for::<BinaryFuseFilterType>(),
2679            Self::SerializedBinaryFuseFilter => {
2680                gen.into_root_schema_for::<SerializedBinaryFuseFilter>()
2681            }
2682            Self::PoolId => gen.into_root_schema_for::<PoolId>(),
2683            Self::ClaimableBalanceIdType => gen.into_root_schema_for::<ClaimableBalanceIdType>(),
2684            Self::ClaimableBalanceId => gen.into_root_schema_for::<ClaimableBalanceId>(),
2685            #[cfg(feature = "test_feature")]
2686            Self::TestNextType => gen.into_root_schema_for::<TestNextType>(),
2687        }
2688    }
2689}
2690
2691#[cfg(feature = "type_enum")]
2692impl Name for TypeVariant {
2693    #[must_use]
2694    fn name(&self) -> &'static str {
2695        Self::name(self)
2696    }
2697}
2698
2699#[cfg(feature = "type_enum")]
2700impl Variants<TypeVariant> for TypeVariant {
2701    fn variants() -> slice::Iter<'static, TypeVariant> {
2702        Self::VARIANTS.iter()
2703    }
2704}
2705
2706#[cfg(feature = "type_enum")]
2707impl core::str::FromStr for TypeVariant {
2708    type Err = Error;
2709    #[allow(clippy::too_many_lines)]
2710    fn from_str(s: &str) -> Result<Self, Error> {
2711        match s {
2712            "Value" => Ok(Self::Value),
2713            "ScpBallot" => Ok(Self::ScpBallot),
2714            "ScpStatementType" => Ok(Self::ScpStatementType),
2715            "ScpNomination" => Ok(Self::ScpNomination),
2716            "ScpStatement" => Ok(Self::ScpStatement),
2717            "ScpStatementPledges" => Ok(Self::ScpStatementPledges),
2718            "ScpStatementPrepare" => Ok(Self::ScpStatementPrepare),
2719            "ScpStatementConfirm" => Ok(Self::ScpStatementConfirm),
2720            "ScpStatementExternalize" => Ok(Self::ScpStatementExternalize),
2721            "ScpEnvelope" => Ok(Self::ScpEnvelope),
2722            "ScpQuorumSet" => Ok(Self::ScpQuorumSet),
2723            "EncodedLedgerKey" => Ok(Self::EncodedLedgerKey),
2724            "ConfigSettingContractExecutionLanesV0" => {
2725                Ok(Self::ConfigSettingContractExecutionLanesV0)
2726            }
2727            "ConfigSettingContractComputeV0" => Ok(Self::ConfigSettingContractComputeV0),
2728            "ConfigSettingContractParallelComputeV0" => {
2729                Ok(Self::ConfigSettingContractParallelComputeV0)
2730            }
2731            "ConfigSettingContractLedgerCostV0" => Ok(Self::ConfigSettingContractLedgerCostV0),
2732            "ConfigSettingContractLedgerCostExtV0" => {
2733                Ok(Self::ConfigSettingContractLedgerCostExtV0)
2734            }
2735            "ConfigSettingContractHistoricalDataV0" => {
2736                Ok(Self::ConfigSettingContractHistoricalDataV0)
2737            }
2738            "ConfigSettingContractEventsV0" => Ok(Self::ConfigSettingContractEventsV0),
2739            "ConfigSettingContractBandwidthV0" => Ok(Self::ConfigSettingContractBandwidthV0),
2740            "ContractCostType" => Ok(Self::ContractCostType),
2741            "ContractCostParamEntry" => Ok(Self::ContractCostParamEntry),
2742            "StateArchivalSettings" => Ok(Self::StateArchivalSettings),
2743            "EvictionIterator" => Ok(Self::EvictionIterator),
2744            "ConfigSettingScpTiming" => Ok(Self::ConfigSettingScpTiming),
2745            "FrozenLedgerKeys" => Ok(Self::FrozenLedgerKeys),
2746            "FrozenLedgerKeysDelta" => Ok(Self::FrozenLedgerKeysDelta),
2747            "FreezeBypassTxs" => Ok(Self::FreezeBypassTxs),
2748            "FreezeBypassTxsDelta" => Ok(Self::FreezeBypassTxsDelta),
2749            "ContractCostParams" => Ok(Self::ContractCostParams),
2750            "ConfigSettingId" => Ok(Self::ConfigSettingId),
2751            "ConfigSettingEntry" => Ok(Self::ConfigSettingEntry),
2752            "ScEnvMetaKind" => Ok(Self::ScEnvMetaKind),
2753            "ScEnvMetaEntry" => Ok(Self::ScEnvMetaEntry),
2754            "ScEnvMetaEntryInterfaceVersion" => Ok(Self::ScEnvMetaEntryInterfaceVersion),
2755            "ScMetaV0" => Ok(Self::ScMetaV0),
2756            "ScMetaKind" => Ok(Self::ScMetaKind),
2757            "ScMetaEntry" => Ok(Self::ScMetaEntry),
2758            "ScSpecType" => Ok(Self::ScSpecType),
2759            "ScSpecTypeOption" => Ok(Self::ScSpecTypeOption),
2760            "ScSpecTypeResult" => Ok(Self::ScSpecTypeResult),
2761            "ScSpecTypeVec" => Ok(Self::ScSpecTypeVec),
2762            "ScSpecTypeMap" => Ok(Self::ScSpecTypeMap),
2763            "ScSpecTypeTuple" => Ok(Self::ScSpecTypeTuple),
2764            "ScSpecTypeBytesN" => Ok(Self::ScSpecTypeBytesN),
2765            "ScSpecTypeUdt" => Ok(Self::ScSpecTypeUdt),
2766            "ScSpecTypeDef" => Ok(Self::ScSpecTypeDef),
2767            "ScSpecUdtStructFieldV0" => Ok(Self::ScSpecUdtStructFieldV0),
2768            "ScSpecUdtStructV0" => Ok(Self::ScSpecUdtStructV0),
2769            "ScSpecUdtUnionCaseVoidV0" => Ok(Self::ScSpecUdtUnionCaseVoidV0),
2770            "ScSpecUdtUnionCaseTupleV0" => Ok(Self::ScSpecUdtUnionCaseTupleV0),
2771            "ScSpecUdtUnionCaseV0Kind" => Ok(Self::ScSpecUdtUnionCaseV0Kind),
2772            "ScSpecUdtUnionCaseV0" => Ok(Self::ScSpecUdtUnionCaseV0),
2773            "ScSpecUdtUnionV0" => Ok(Self::ScSpecUdtUnionV0),
2774            "ScSpecUdtEnumCaseV0" => Ok(Self::ScSpecUdtEnumCaseV0),
2775            "ScSpecUdtEnumV0" => Ok(Self::ScSpecUdtEnumV0),
2776            "ScSpecUdtErrorEnumCaseV0" => Ok(Self::ScSpecUdtErrorEnumCaseV0),
2777            "ScSpecUdtErrorEnumV0" => Ok(Self::ScSpecUdtErrorEnumV0),
2778            "ScSpecFunctionInputV0" => Ok(Self::ScSpecFunctionInputV0),
2779            "ScSpecFunctionV0" => Ok(Self::ScSpecFunctionV0),
2780            "ScSpecEventParamLocationV0" => Ok(Self::ScSpecEventParamLocationV0),
2781            "ScSpecEventParamV0" => Ok(Self::ScSpecEventParamV0),
2782            "ScSpecEventDataFormat" => Ok(Self::ScSpecEventDataFormat),
2783            "ScSpecEventV0" => Ok(Self::ScSpecEventV0),
2784            "ScSpecEntryKind" => Ok(Self::ScSpecEntryKind),
2785            "ScSpecEntry" => Ok(Self::ScSpecEntry),
2786            "ScBytes" => Ok(Self::ScBytes),
2787            "ScString" => Ok(Self::ScString),
2788            "ScSymbol" => Ok(Self::ScSymbol),
2789            "ScValType" => Ok(Self::ScValType),
2790            "ScErrorType" => Ok(Self::ScErrorType),
2791            "ScErrorCode" => Ok(Self::ScErrorCode),
2792            "ScError" => Ok(Self::ScError),
2793            "UInt128Parts" => Ok(Self::UInt128Parts),
2794            "Int128Parts" => Ok(Self::Int128Parts),
2795            "UInt256Parts" => Ok(Self::UInt256Parts),
2796            "Int256Parts" => Ok(Self::Int256Parts),
2797            "ContractExecutableType" => Ok(Self::ContractExecutableType),
2798            "ScAddressType" => Ok(Self::ScAddressType),
2799            "MuxedEd25519Account" => Ok(Self::MuxedEd25519Account),
2800            #[cfg(feature = "cap_0084_muxed_contract")]
2801            "MuxedContract" => Ok(Self::MuxedContract),
2802            "ScAddress" => Ok(Self::ScAddress),
2803            "ContractExecutableExternalRef" => Ok(Self::ContractExecutableExternalRef),
2804            "ContractExecutable" => Ok(Self::ContractExecutable),
2805            "ScVec" => Ok(Self::ScVec),
2806            "ScMap" => Ok(Self::ScMap),
2807            "ScNonceKey" => Ok(Self::ScNonceKey),
2808            "ScContractInstance" => Ok(Self::ScContractInstance),
2809            "ScVal" => Ok(Self::ScVal),
2810            "ScMapEntry" => Ok(Self::ScMapEntry),
2811            "LedgerCloseMetaBatch" => Ok(Self::LedgerCloseMetaBatch),
2812            "StoredTransactionSet" => Ok(Self::StoredTransactionSet),
2813            "StoredDebugTransactionSet" => Ok(Self::StoredDebugTransactionSet),
2814            "PersistedScpStateV0" => Ok(Self::PersistedScpStateV0),
2815            "PersistedScpStateV1" => Ok(Self::PersistedScpStateV1),
2816            "PersistedScpState" => Ok(Self::PersistedScpState),
2817            "Thresholds" => Ok(Self::Thresholds),
2818            "String32" => Ok(Self::String32),
2819            "String64" => Ok(Self::String64),
2820            "SequenceNumber" => Ok(Self::SequenceNumber),
2821            "DataValue" => Ok(Self::DataValue),
2822            "AssetCode4" => Ok(Self::AssetCode4),
2823            "AssetCode12" => Ok(Self::AssetCode12),
2824            "AssetType" => Ok(Self::AssetType),
2825            "AssetCode" => Ok(Self::AssetCode),
2826            "AlphaNum4" => Ok(Self::AlphaNum4),
2827            "AlphaNum12" => Ok(Self::AlphaNum12),
2828            "Asset" => Ok(Self::Asset),
2829            "Price" => Ok(Self::Price),
2830            "Liabilities" => Ok(Self::Liabilities),
2831            "ThresholdIndexes" => Ok(Self::ThresholdIndexes),
2832            "LedgerEntryType" => Ok(Self::LedgerEntryType),
2833            "Signer" => Ok(Self::Signer),
2834            "AccountFlags" => Ok(Self::AccountFlags),
2835            "SponsorshipDescriptor" => Ok(Self::SponsorshipDescriptor),
2836            "AccountEntryExtensionV3" => Ok(Self::AccountEntryExtensionV3),
2837            "AccountEntryExtensionV2" => Ok(Self::AccountEntryExtensionV2),
2838            "AccountEntryExtensionV2Ext" => Ok(Self::AccountEntryExtensionV2Ext),
2839            "AccountEntryExtensionV1" => Ok(Self::AccountEntryExtensionV1),
2840            "AccountEntryExtensionV1Ext" => Ok(Self::AccountEntryExtensionV1Ext),
2841            "AccountEntry" => Ok(Self::AccountEntry),
2842            "AccountEntryExt" => Ok(Self::AccountEntryExt),
2843            "TrustLineFlags" => Ok(Self::TrustLineFlags),
2844            "LiquidityPoolType" => Ok(Self::LiquidityPoolType),
2845            "TrustLineAsset" => Ok(Self::TrustLineAsset),
2846            "TrustLineEntryExtensionV2" => Ok(Self::TrustLineEntryExtensionV2),
2847            "TrustLineEntryExtensionV2Ext" => Ok(Self::TrustLineEntryExtensionV2Ext),
2848            "TrustLineEntry" => Ok(Self::TrustLineEntry),
2849            "TrustLineEntryExt" => Ok(Self::TrustLineEntryExt),
2850            "TrustLineEntryV1" => Ok(Self::TrustLineEntryV1),
2851            "TrustLineEntryV1Ext" => Ok(Self::TrustLineEntryV1Ext),
2852            "OfferEntryFlags" => Ok(Self::OfferEntryFlags),
2853            "OfferEntry" => Ok(Self::OfferEntry),
2854            "OfferEntryExt" => Ok(Self::OfferEntryExt),
2855            "DataEntry" => Ok(Self::DataEntry),
2856            "DataEntryExt" => Ok(Self::DataEntryExt),
2857            "ClaimPredicateType" => Ok(Self::ClaimPredicateType),
2858            "ClaimPredicate" => Ok(Self::ClaimPredicate),
2859            "ClaimantType" => Ok(Self::ClaimantType),
2860            "Claimant" => Ok(Self::Claimant),
2861            "ClaimantV0" => Ok(Self::ClaimantV0),
2862            "ClaimableBalanceFlags" => Ok(Self::ClaimableBalanceFlags),
2863            "ClaimableBalanceEntryExtensionV1" => Ok(Self::ClaimableBalanceEntryExtensionV1),
2864            "ClaimableBalanceEntryExtensionV1Ext" => Ok(Self::ClaimableBalanceEntryExtensionV1Ext),
2865            "ClaimableBalanceEntry" => Ok(Self::ClaimableBalanceEntry),
2866            "ClaimableBalanceEntryExt" => Ok(Self::ClaimableBalanceEntryExt),
2867            "LiquidityPoolConstantProductParameters" => {
2868                Ok(Self::LiquidityPoolConstantProductParameters)
2869            }
2870            "LiquidityPoolEntry" => Ok(Self::LiquidityPoolEntry),
2871            "LiquidityPoolEntryBody" => Ok(Self::LiquidityPoolEntryBody),
2872            "LiquidityPoolEntryConstantProduct" => Ok(Self::LiquidityPoolEntryConstantProduct),
2873            "ContractDataDurability" => Ok(Self::ContractDataDurability),
2874            "ContractDataEntry" => Ok(Self::ContractDataEntry),
2875            "ContractCodeCostInputs" => Ok(Self::ContractCodeCostInputs),
2876            "ContractCodeEntry" => Ok(Self::ContractCodeEntry),
2877            "ContractCodeEntryExt" => Ok(Self::ContractCodeEntryExt),
2878            "ContractCodeEntryV1" => Ok(Self::ContractCodeEntryV1),
2879            "TtlEntry" => Ok(Self::TtlEntry),
2880            "LedgerEntryExtensionV1" => Ok(Self::LedgerEntryExtensionV1),
2881            "LedgerEntryExtensionV1Ext" => Ok(Self::LedgerEntryExtensionV1Ext),
2882            "LedgerEntry" => Ok(Self::LedgerEntry),
2883            "LedgerEntryData" => Ok(Self::LedgerEntryData),
2884            "LedgerEntryExt" => Ok(Self::LedgerEntryExt),
2885            "LedgerKey" => Ok(Self::LedgerKey),
2886            "LedgerKeyAccount" => Ok(Self::LedgerKeyAccount),
2887            "LedgerKeyTrustLine" => Ok(Self::LedgerKeyTrustLine),
2888            "LedgerKeyOffer" => Ok(Self::LedgerKeyOffer),
2889            "LedgerKeyData" => Ok(Self::LedgerKeyData),
2890            "LedgerKeyClaimableBalance" => Ok(Self::LedgerKeyClaimableBalance),
2891            "LedgerKeyLiquidityPool" => Ok(Self::LedgerKeyLiquidityPool),
2892            "LedgerKeyContractData" => Ok(Self::LedgerKeyContractData),
2893            "LedgerKeyContractCode" => Ok(Self::LedgerKeyContractCode),
2894            "LedgerKeyConfigSetting" => Ok(Self::LedgerKeyConfigSetting),
2895            "LedgerKeyTtl" => Ok(Self::LedgerKeyTtl),
2896            "EnvelopeType" => Ok(Self::EnvelopeType),
2897            "BucketListType" => Ok(Self::BucketListType),
2898            "BucketEntryType" => Ok(Self::BucketEntryType),
2899            "HotArchiveBucketEntryType" => Ok(Self::HotArchiveBucketEntryType),
2900            "BucketMetadata" => Ok(Self::BucketMetadata),
2901            "BucketMetadataExt" => Ok(Self::BucketMetadataExt),
2902            "BucketEntry" => Ok(Self::BucketEntry),
2903            "HotArchiveBucketEntry" => Ok(Self::HotArchiveBucketEntry),
2904            "UpgradeType" => Ok(Self::UpgradeType),
2905            "StellarValueType" => Ok(Self::StellarValueType),
2906            "LedgerCloseValueSignature" => Ok(Self::LedgerCloseValueSignature),
2907            "StellarValue" => Ok(Self::StellarValue),
2908            "StellarValueExt" => Ok(Self::StellarValueExt),
2909            "StellarValueProposedValue" => Ok(Self::StellarValueProposedValue),
2910            "LedgerHeaderFlags" => Ok(Self::LedgerHeaderFlags),
2911            "LedgerHeaderExtensionV1" => Ok(Self::LedgerHeaderExtensionV1),
2912            "LedgerHeaderExtensionV1Ext" => Ok(Self::LedgerHeaderExtensionV1Ext),
2913            "LedgerHeader" => Ok(Self::LedgerHeader),
2914            "LedgerHeaderExt" => Ok(Self::LedgerHeaderExt),
2915            "LedgerUpgradeType" => Ok(Self::LedgerUpgradeType),
2916            "ConfigUpgradeSetKey" => Ok(Self::ConfigUpgradeSetKey),
2917            "LedgerUpgrade" => Ok(Self::LedgerUpgrade),
2918            "ConfigUpgradeSet" => Ok(Self::ConfigUpgradeSet),
2919            "TxSetComponentType" => Ok(Self::TxSetComponentType),
2920            "DependentTxCluster" => Ok(Self::DependentTxCluster),
2921            "ParallelTxExecutionStage" => Ok(Self::ParallelTxExecutionStage),
2922            "ParallelTxsComponent" => Ok(Self::ParallelTxsComponent),
2923            "TxSetComponent" => Ok(Self::TxSetComponent),
2924            "TxSetComponentTxsMaybeDiscountedFee" => Ok(Self::TxSetComponentTxsMaybeDiscountedFee),
2925            "TransactionPhase" => Ok(Self::TransactionPhase),
2926            "TransactionSet" => Ok(Self::TransactionSet),
2927            "TransactionSetV1" => Ok(Self::TransactionSetV1),
2928            "GeneralizedTransactionSet" => Ok(Self::GeneralizedTransactionSet),
2929            "TransactionResultPair" => Ok(Self::TransactionResultPair),
2930            "TransactionResultSet" => Ok(Self::TransactionResultSet),
2931            "TransactionHistoryEntry" => Ok(Self::TransactionHistoryEntry),
2932            "TransactionHistoryEntryExt" => Ok(Self::TransactionHistoryEntryExt),
2933            "TransactionHistoryResultEntry" => Ok(Self::TransactionHistoryResultEntry),
2934            "TransactionHistoryResultEntryExt" => Ok(Self::TransactionHistoryResultEntryExt),
2935            "LedgerHeaderHistoryEntry" => Ok(Self::LedgerHeaderHistoryEntry),
2936            "LedgerHeaderHistoryEntryExt" => Ok(Self::LedgerHeaderHistoryEntryExt),
2937            "LedgerScpMessages" => Ok(Self::LedgerScpMessages),
2938            "ScpHistoryEntryV0" => Ok(Self::ScpHistoryEntryV0),
2939            "ScpHistoryEntry" => Ok(Self::ScpHistoryEntry),
2940            "LedgerEntryChangeType" => Ok(Self::LedgerEntryChangeType),
2941            "LedgerEntryChange" => Ok(Self::LedgerEntryChange),
2942            "LedgerEntryChanges" => Ok(Self::LedgerEntryChanges),
2943            "OperationMeta" => Ok(Self::OperationMeta),
2944            "TransactionMetaV1" => Ok(Self::TransactionMetaV1),
2945            "TransactionMetaV2" => Ok(Self::TransactionMetaV2),
2946            "ContractEventType" => Ok(Self::ContractEventType),
2947            "ContractEvent" => Ok(Self::ContractEvent),
2948            "ContractEventBody" => Ok(Self::ContractEventBody),
2949            "ContractEventV0" => Ok(Self::ContractEventV0),
2950            "DiagnosticEvent" => Ok(Self::DiagnosticEvent),
2951            "SorobanTransactionMetaExtV1" => Ok(Self::SorobanTransactionMetaExtV1),
2952            "SorobanTransactionMetaExt" => Ok(Self::SorobanTransactionMetaExt),
2953            "SorobanTransactionMeta" => Ok(Self::SorobanTransactionMeta),
2954            "TransactionMetaV3" => Ok(Self::TransactionMetaV3),
2955            "OperationMetaV2" => Ok(Self::OperationMetaV2),
2956            "SorobanTransactionMetaV2" => Ok(Self::SorobanTransactionMetaV2),
2957            "TransactionEventStage" => Ok(Self::TransactionEventStage),
2958            "TransactionEvent" => Ok(Self::TransactionEvent),
2959            "TransactionMetaV4" => Ok(Self::TransactionMetaV4),
2960            "InvokeHostFunctionSuccessPreImage" => Ok(Self::InvokeHostFunctionSuccessPreImage),
2961            "TransactionMeta" => Ok(Self::TransactionMeta),
2962            "TransactionResultMeta" => Ok(Self::TransactionResultMeta),
2963            "TransactionResultMetaV1" => Ok(Self::TransactionResultMetaV1),
2964            "UpgradeEntryMeta" => Ok(Self::UpgradeEntryMeta),
2965            "LedgerCloseMetaV0" => Ok(Self::LedgerCloseMetaV0),
2966            "LedgerCloseMetaExtV1" => Ok(Self::LedgerCloseMetaExtV1),
2967            "LedgerCloseMetaExt" => Ok(Self::LedgerCloseMetaExt),
2968            "LedgerCloseMetaV1" => Ok(Self::LedgerCloseMetaV1),
2969            "LedgerCloseMetaV2" => Ok(Self::LedgerCloseMetaV2),
2970            "LedgerCloseMeta" => Ok(Self::LedgerCloseMeta),
2971            "ErrorCode" => Ok(Self::ErrorCode),
2972            "SError" => Ok(Self::SError),
2973            "SendMore" => Ok(Self::SendMore),
2974            "SendMoreExtended" => Ok(Self::SendMoreExtended),
2975            "AuthCert" => Ok(Self::AuthCert),
2976            "Hello" => Ok(Self::Hello),
2977            "Auth" => Ok(Self::Auth),
2978            "IpAddrType" => Ok(Self::IpAddrType),
2979            "PeerAddress" => Ok(Self::PeerAddress),
2980            "PeerAddressIp" => Ok(Self::PeerAddressIp),
2981            "MessageType" => Ok(Self::MessageType),
2982            "DontHave" => Ok(Self::DontHave),
2983            "SurveyMessageCommandType" => Ok(Self::SurveyMessageCommandType),
2984            "SurveyMessageResponseType" => Ok(Self::SurveyMessageResponseType),
2985            "TimeSlicedSurveyStartCollectingMessage" => {
2986                Ok(Self::TimeSlicedSurveyStartCollectingMessage)
2987            }
2988            "SignedTimeSlicedSurveyStartCollectingMessage" => {
2989                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage)
2990            }
2991            "TimeSlicedSurveyStopCollectingMessage" => {
2992                Ok(Self::TimeSlicedSurveyStopCollectingMessage)
2993            }
2994            "SignedTimeSlicedSurveyStopCollectingMessage" => {
2995                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage)
2996            }
2997            "SurveyRequestMessage" => Ok(Self::SurveyRequestMessage),
2998            "TimeSlicedSurveyRequestMessage" => Ok(Self::TimeSlicedSurveyRequestMessage),
2999            "SignedTimeSlicedSurveyRequestMessage" => {
3000                Ok(Self::SignedTimeSlicedSurveyRequestMessage)
3001            }
3002            "EncryptedBody" => Ok(Self::EncryptedBody),
3003            "SurveyResponseMessage" => Ok(Self::SurveyResponseMessage),
3004            "TimeSlicedSurveyResponseMessage" => Ok(Self::TimeSlicedSurveyResponseMessage),
3005            "SignedTimeSlicedSurveyResponseMessage" => {
3006                Ok(Self::SignedTimeSlicedSurveyResponseMessage)
3007            }
3008            "PeerStats" => Ok(Self::PeerStats),
3009            "TimeSlicedNodeData" => Ok(Self::TimeSlicedNodeData),
3010            "TimeSlicedPeerData" => Ok(Self::TimeSlicedPeerData),
3011            "TimeSlicedPeerDataList" => Ok(Self::TimeSlicedPeerDataList),
3012            "TopologyResponseBodyV2" => Ok(Self::TopologyResponseBodyV2),
3013            "SurveyResponseBody" => Ok(Self::SurveyResponseBody),
3014            "TxAdvertVector" => Ok(Self::TxAdvertVector),
3015            "FloodAdvert" => Ok(Self::FloodAdvert),
3016            "TxDemandVector" => Ok(Self::TxDemandVector),
3017            "FloodDemand" => Ok(Self::FloodDemand),
3018            "StellarMessage" => Ok(Self::StellarMessage),
3019            "AuthenticatedMessage" => Ok(Self::AuthenticatedMessage),
3020            "AuthenticatedMessageV0" => Ok(Self::AuthenticatedMessageV0),
3021            "LiquidityPoolParameters" => Ok(Self::LiquidityPoolParameters),
3022            "MuxedAccount" => Ok(Self::MuxedAccount),
3023            "MuxedAccountMed25519" => Ok(Self::MuxedAccountMed25519),
3024            "DecoratedSignature" => Ok(Self::DecoratedSignature),
3025            "OperationType" => Ok(Self::OperationType),
3026            "CreateAccountOp" => Ok(Self::CreateAccountOp),
3027            "PaymentOp" => Ok(Self::PaymentOp),
3028            "PathPaymentStrictReceiveOp" => Ok(Self::PathPaymentStrictReceiveOp),
3029            "PathPaymentStrictSendOp" => Ok(Self::PathPaymentStrictSendOp),
3030            "ManageSellOfferOp" => Ok(Self::ManageSellOfferOp),
3031            "ManageBuyOfferOp" => Ok(Self::ManageBuyOfferOp),
3032            "CreatePassiveSellOfferOp" => Ok(Self::CreatePassiveSellOfferOp),
3033            "SetOptionsOp" => Ok(Self::SetOptionsOp),
3034            "ChangeTrustAsset" => Ok(Self::ChangeTrustAsset),
3035            "ChangeTrustOp" => Ok(Self::ChangeTrustOp),
3036            "AllowTrustOp" => Ok(Self::AllowTrustOp),
3037            "ManageDataOp" => Ok(Self::ManageDataOp),
3038            "BumpSequenceOp" => Ok(Self::BumpSequenceOp),
3039            "CreateClaimableBalanceOp" => Ok(Self::CreateClaimableBalanceOp),
3040            "ClaimClaimableBalanceOp" => Ok(Self::ClaimClaimableBalanceOp),
3041            "BeginSponsoringFutureReservesOp" => Ok(Self::BeginSponsoringFutureReservesOp),
3042            "RevokeSponsorshipType" => Ok(Self::RevokeSponsorshipType),
3043            "RevokeSponsorshipOp" => Ok(Self::RevokeSponsorshipOp),
3044            "RevokeSponsorshipOpSigner" => Ok(Self::RevokeSponsorshipOpSigner),
3045            "ClawbackOp" => Ok(Self::ClawbackOp),
3046            "ClawbackClaimableBalanceOp" => Ok(Self::ClawbackClaimableBalanceOp),
3047            "SetTrustLineFlagsOp" => Ok(Self::SetTrustLineFlagsOp),
3048            "LiquidityPoolDepositOp" => Ok(Self::LiquidityPoolDepositOp),
3049            "LiquidityPoolWithdrawOp" => Ok(Self::LiquidityPoolWithdrawOp),
3050            "HostFunctionType" => Ok(Self::HostFunctionType),
3051            "ContractIdPreimageType" => Ok(Self::ContractIdPreimageType),
3052            "ContractIdPreimage" => Ok(Self::ContractIdPreimage),
3053            "ContractIdPreimageFromAddress" => Ok(Self::ContractIdPreimageFromAddress),
3054            "CreateContractArgs" => Ok(Self::CreateContractArgs),
3055            "CreateContractArgsV2" => Ok(Self::CreateContractArgsV2),
3056            "InvokeContractArgs" => Ok(Self::InvokeContractArgs),
3057            "HostFunction" => Ok(Self::HostFunction),
3058            "SorobanAuthorizedFunctionType" => Ok(Self::SorobanAuthorizedFunctionType),
3059            "SorobanAuthorizedFunction" => Ok(Self::SorobanAuthorizedFunction),
3060            "SorobanAuthorizedInvocation" => Ok(Self::SorobanAuthorizedInvocation),
3061            "SorobanAddressCredentials" => Ok(Self::SorobanAddressCredentials),
3062            "SorobanDelegateSignature" => Ok(Self::SorobanDelegateSignature),
3063            "SorobanAddressCredentialsWithDelegates" => {
3064                Ok(Self::SorobanAddressCredentialsWithDelegates)
3065            }
3066            "SorobanCredentialsType" => Ok(Self::SorobanCredentialsType),
3067            "SorobanCredentials" => Ok(Self::SorobanCredentials),
3068            "SorobanAuthorizationEntry" => Ok(Self::SorobanAuthorizationEntry),
3069            "SorobanAuthorizationEntries" => Ok(Self::SorobanAuthorizationEntries),
3070            "InvokeHostFunctionOp" => Ok(Self::InvokeHostFunctionOp),
3071            "ExtendFootprintTtlOp" => Ok(Self::ExtendFootprintTtlOp),
3072            "RestoreFootprintOp" => Ok(Self::RestoreFootprintOp),
3073            "Operation" => Ok(Self::Operation),
3074            "OperationBody" => Ok(Self::OperationBody),
3075            "HashIdPreimage" => Ok(Self::HashIdPreimage),
3076            "HashIdPreimageOperationId" => Ok(Self::HashIdPreimageOperationId),
3077            "HashIdPreimageRevokeId" => Ok(Self::HashIdPreimageRevokeId),
3078            "HashIdPreimageContractId" => Ok(Self::HashIdPreimageContractId),
3079            "HashIdPreimageSorobanAuthorization" => Ok(Self::HashIdPreimageSorobanAuthorization),
3080            "HashIdPreimageSorobanAuthorizationWithAddress" => {
3081                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress)
3082            }
3083            "MemoType" => Ok(Self::MemoType),
3084            "Memo" => Ok(Self::Memo),
3085            "TimeBounds" => Ok(Self::TimeBounds),
3086            "LedgerBounds" => Ok(Self::LedgerBounds),
3087            "PreconditionsV2" => Ok(Self::PreconditionsV2),
3088            "PreconditionType" => Ok(Self::PreconditionType),
3089            "Preconditions" => Ok(Self::Preconditions),
3090            "LedgerFootprint" => Ok(Self::LedgerFootprint),
3091            "SorobanResources" => Ok(Self::SorobanResources),
3092            "SorobanResourcesExtV0" => Ok(Self::SorobanResourcesExtV0),
3093            "SorobanTransactionData" => Ok(Self::SorobanTransactionData),
3094            "SorobanTransactionDataExt" => Ok(Self::SorobanTransactionDataExt),
3095            "TransactionV0" => Ok(Self::TransactionV0),
3096            "TransactionV0Ext" => Ok(Self::TransactionV0Ext),
3097            "TransactionV0Envelope" => Ok(Self::TransactionV0Envelope),
3098            "Transaction" => Ok(Self::Transaction),
3099            "TransactionExt" => Ok(Self::TransactionExt),
3100            "TransactionV1Envelope" => Ok(Self::TransactionV1Envelope),
3101            "FeeBumpTransaction" => Ok(Self::FeeBumpTransaction),
3102            "FeeBumpTransactionInnerTx" => Ok(Self::FeeBumpTransactionInnerTx),
3103            "FeeBumpTransactionExt" => Ok(Self::FeeBumpTransactionExt),
3104            "FeeBumpTransactionEnvelope" => Ok(Self::FeeBumpTransactionEnvelope),
3105            "TransactionEnvelope" => Ok(Self::TransactionEnvelope),
3106            "TransactionSignaturePayload" => Ok(Self::TransactionSignaturePayload),
3107            "TransactionSignaturePayloadTaggedTransaction" => {
3108                Ok(Self::TransactionSignaturePayloadTaggedTransaction)
3109            }
3110            "ClaimAtomType" => Ok(Self::ClaimAtomType),
3111            "ClaimOfferAtomV0" => Ok(Self::ClaimOfferAtomV0),
3112            "ClaimOfferAtom" => Ok(Self::ClaimOfferAtom),
3113            "ClaimLiquidityAtom" => Ok(Self::ClaimLiquidityAtom),
3114            "ClaimAtom" => Ok(Self::ClaimAtom),
3115            "CreateAccountResultCode" => Ok(Self::CreateAccountResultCode),
3116            "CreateAccountResult" => Ok(Self::CreateAccountResult),
3117            "PaymentResultCode" => Ok(Self::PaymentResultCode),
3118            "PaymentResult" => Ok(Self::PaymentResult),
3119            "PathPaymentStrictReceiveResultCode" => Ok(Self::PathPaymentStrictReceiveResultCode),
3120            "SimplePaymentResult" => Ok(Self::SimplePaymentResult),
3121            "PathPaymentStrictReceiveResult" => Ok(Self::PathPaymentStrictReceiveResult),
3122            "PathPaymentStrictReceiveResultSuccess" => {
3123                Ok(Self::PathPaymentStrictReceiveResultSuccess)
3124            }
3125            "PathPaymentStrictSendResultCode" => Ok(Self::PathPaymentStrictSendResultCode),
3126            "PathPaymentStrictSendResult" => Ok(Self::PathPaymentStrictSendResult),
3127            "PathPaymentStrictSendResultSuccess" => Ok(Self::PathPaymentStrictSendResultSuccess),
3128            "ManageSellOfferResultCode" => Ok(Self::ManageSellOfferResultCode),
3129            "ManageOfferEffect" => Ok(Self::ManageOfferEffect),
3130            "ManageOfferSuccessResult" => Ok(Self::ManageOfferSuccessResult),
3131            "ManageOfferSuccessResultOffer" => Ok(Self::ManageOfferSuccessResultOffer),
3132            "ManageSellOfferResult" => Ok(Self::ManageSellOfferResult),
3133            "ManageBuyOfferResultCode" => Ok(Self::ManageBuyOfferResultCode),
3134            "ManageBuyOfferResult" => Ok(Self::ManageBuyOfferResult),
3135            "SetOptionsResultCode" => Ok(Self::SetOptionsResultCode),
3136            "SetOptionsResult" => Ok(Self::SetOptionsResult),
3137            "ChangeTrustResultCode" => Ok(Self::ChangeTrustResultCode),
3138            "ChangeTrustResult" => Ok(Self::ChangeTrustResult),
3139            "AllowTrustResultCode" => Ok(Self::AllowTrustResultCode),
3140            "AllowTrustResult" => Ok(Self::AllowTrustResult),
3141            "AccountMergeResultCode" => Ok(Self::AccountMergeResultCode),
3142            "AccountMergeResult" => Ok(Self::AccountMergeResult),
3143            "InflationResultCode" => Ok(Self::InflationResultCode),
3144            "InflationPayout" => Ok(Self::InflationPayout),
3145            "InflationResult" => Ok(Self::InflationResult),
3146            "ManageDataResultCode" => Ok(Self::ManageDataResultCode),
3147            "ManageDataResult" => Ok(Self::ManageDataResult),
3148            "BumpSequenceResultCode" => Ok(Self::BumpSequenceResultCode),
3149            "BumpSequenceResult" => Ok(Self::BumpSequenceResult),
3150            "CreateClaimableBalanceResultCode" => Ok(Self::CreateClaimableBalanceResultCode),
3151            "CreateClaimableBalanceResult" => Ok(Self::CreateClaimableBalanceResult),
3152            "ClaimClaimableBalanceResultCode" => Ok(Self::ClaimClaimableBalanceResultCode),
3153            "ClaimClaimableBalanceResult" => Ok(Self::ClaimClaimableBalanceResult),
3154            "BeginSponsoringFutureReservesResultCode" => {
3155                Ok(Self::BeginSponsoringFutureReservesResultCode)
3156            }
3157            "BeginSponsoringFutureReservesResult" => Ok(Self::BeginSponsoringFutureReservesResult),
3158            "EndSponsoringFutureReservesResultCode" => {
3159                Ok(Self::EndSponsoringFutureReservesResultCode)
3160            }
3161            "EndSponsoringFutureReservesResult" => Ok(Self::EndSponsoringFutureReservesResult),
3162            "RevokeSponsorshipResultCode" => Ok(Self::RevokeSponsorshipResultCode),
3163            "RevokeSponsorshipResult" => Ok(Self::RevokeSponsorshipResult),
3164            "ClawbackResultCode" => Ok(Self::ClawbackResultCode),
3165            "ClawbackResult" => Ok(Self::ClawbackResult),
3166            "ClawbackClaimableBalanceResultCode" => Ok(Self::ClawbackClaimableBalanceResultCode),
3167            "ClawbackClaimableBalanceResult" => Ok(Self::ClawbackClaimableBalanceResult),
3168            "SetTrustLineFlagsResultCode" => Ok(Self::SetTrustLineFlagsResultCode),
3169            "SetTrustLineFlagsResult" => Ok(Self::SetTrustLineFlagsResult),
3170            "LiquidityPoolDepositResultCode" => Ok(Self::LiquidityPoolDepositResultCode),
3171            "LiquidityPoolDepositResult" => Ok(Self::LiquidityPoolDepositResult),
3172            "LiquidityPoolWithdrawResultCode" => Ok(Self::LiquidityPoolWithdrawResultCode),
3173            "LiquidityPoolWithdrawResult" => Ok(Self::LiquidityPoolWithdrawResult),
3174            "InvokeHostFunctionResultCode" => Ok(Self::InvokeHostFunctionResultCode),
3175            "InvokeHostFunctionResult" => Ok(Self::InvokeHostFunctionResult),
3176            "ExtendFootprintTtlResultCode" => Ok(Self::ExtendFootprintTtlResultCode),
3177            "ExtendFootprintTtlResult" => Ok(Self::ExtendFootprintTtlResult),
3178            "RestoreFootprintResultCode" => Ok(Self::RestoreFootprintResultCode),
3179            "RestoreFootprintResult" => Ok(Self::RestoreFootprintResult),
3180            "OperationResultCode" => Ok(Self::OperationResultCode),
3181            "OperationResult" => Ok(Self::OperationResult),
3182            "OperationResultTr" => Ok(Self::OperationResultTr),
3183            "TransactionResultCode" => Ok(Self::TransactionResultCode),
3184            "InnerTransactionResult" => Ok(Self::InnerTransactionResult),
3185            "InnerTransactionResultResult" => Ok(Self::InnerTransactionResultResult),
3186            "InnerTransactionResultExt" => Ok(Self::InnerTransactionResultExt),
3187            "InnerTransactionResultPair" => Ok(Self::InnerTransactionResultPair),
3188            "TransactionResult" => Ok(Self::TransactionResult),
3189            "TransactionResultResult" => Ok(Self::TransactionResultResult),
3190            "TransactionResultExt" => Ok(Self::TransactionResultExt),
3191            "Hash" => Ok(Self::Hash),
3192            "Uint256" => Ok(Self::Uint256),
3193            "Uint32" => Ok(Self::Uint32),
3194            "Int32" => Ok(Self::Int32),
3195            "Uint64" => Ok(Self::Uint64),
3196            "Int64" => Ok(Self::Int64),
3197            "TimePoint" => Ok(Self::TimePoint),
3198            "Duration" => Ok(Self::Duration),
3199            "ExtensionPoint" => Ok(Self::ExtensionPoint),
3200            "CryptoKeyType" => Ok(Self::CryptoKeyType),
3201            "PublicKeyType" => Ok(Self::PublicKeyType),
3202            "SignerKeyType" => Ok(Self::SignerKeyType),
3203            "PublicKey" => Ok(Self::PublicKey),
3204            "SignerKey" => Ok(Self::SignerKey),
3205            "SignerKeyEd25519SignedPayload" => Ok(Self::SignerKeyEd25519SignedPayload),
3206            "Signature" => Ok(Self::Signature),
3207            "SignatureHint" => Ok(Self::SignatureHint),
3208            "NodeId" => Ok(Self::NodeId),
3209            "AccountId" => Ok(Self::AccountId),
3210            "ContractId" => Ok(Self::ContractId),
3211            "Curve25519Secret" => Ok(Self::Curve25519Secret),
3212            "Curve25519Public" => Ok(Self::Curve25519Public),
3213            "HmacSha256Key" => Ok(Self::HmacSha256Key),
3214            "HmacSha256Mac" => Ok(Self::HmacSha256Mac),
3215            "ShortHashSeed" => Ok(Self::ShortHashSeed),
3216            "BinaryFuseFilterType" => Ok(Self::BinaryFuseFilterType),
3217            "SerializedBinaryFuseFilter" => Ok(Self::SerializedBinaryFuseFilter),
3218            "PoolId" => Ok(Self::PoolId),
3219            "ClaimableBalanceIdType" => Ok(Self::ClaimableBalanceIdType),
3220            "ClaimableBalanceId" => Ok(Self::ClaimableBalanceId),
3221            #[cfg(feature = "test_feature")]
3222            "TestNextType" => Ok(Self::TestNextType),
3223            _ => Err(Error::Invalid),
3224        }
3225    }
3226}
3227
3228#[cfg(feature = "type_enum")]
3229#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
3230#[cfg_attr(
3231    all(feature = "serde", feature = "alloc"),
3232    derive(serde::Serialize, serde::Deserialize),
3233    serde(rename_all = "snake_case"),
3234    serde(untagged)
3235)]
3236#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
3237pub enum Type {
3238    Value(Box<Value>),
3239    ScpBallot(Box<ScpBallot>),
3240    ScpStatementType(Box<ScpStatementType>),
3241    ScpNomination(Box<ScpNomination>),
3242    ScpStatement(Box<ScpStatement>),
3243    ScpStatementPledges(Box<ScpStatementPledges>),
3244    ScpStatementPrepare(Box<ScpStatementPrepare>),
3245    ScpStatementConfirm(Box<ScpStatementConfirm>),
3246    ScpStatementExternalize(Box<ScpStatementExternalize>),
3247    ScpEnvelope(Box<ScpEnvelope>),
3248    ScpQuorumSet(Box<ScpQuorumSet>),
3249    EncodedLedgerKey(Box<EncodedLedgerKey>),
3250    ConfigSettingContractExecutionLanesV0(Box<ConfigSettingContractExecutionLanesV0>),
3251    ConfigSettingContractComputeV0(Box<ConfigSettingContractComputeV0>),
3252    ConfigSettingContractParallelComputeV0(Box<ConfigSettingContractParallelComputeV0>),
3253    ConfigSettingContractLedgerCostV0(Box<ConfigSettingContractLedgerCostV0>),
3254    ConfigSettingContractLedgerCostExtV0(Box<ConfigSettingContractLedgerCostExtV0>),
3255    ConfigSettingContractHistoricalDataV0(Box<ConfigSettingContractHistoricalDataV0>),
3256    ConfigSettingContractEventsV0(Box<ConfigSettingContractEventsV0>),
3257    ConfigSettingContractBandwidthV0(Box<ConfigSettingContractBandwidthV0>),
3258    ContractCostType(Box<ContractCostType>),
3259    ContractCostParamEntry(Box<ContractCostParamEntry>),
3260    StateArchivalSettings(Box<StateArchivalSettings>),
3261    EvictionIterator(Box<EvictionIterator>),
3262    ConfigSettingScpTiming(Box<ConfigSettingScpTiming>),
3263    FrozenLedgerKeys(Box<FrozenLedgerKeys>),
3264    FrozenLedgerKeysDelta(Box<FrozenLedgerKeysDelta>),
3265    FreezeBypassTxs(Box<FreezeBypassTxs>),
3266    FreezeBypassTxsDelta(Box<FreezeBypassTxsDelta>),
3267    ContractCostParams(Box<ContractCostParams>),
3268    ConfigSettingId(Box<ConfigSettingId>),
3269    ConfigSettingEntry(Box<ConfigSettingEntry>),
3270    ScEnvMetaKind(Box<ScEnvMetaKind>),
3271    ScEnvMetaEntry(Box<ScEnvMetaEntry>),
3272    ScEnvMetaEntryInterfaceVersion(Box<ScEnvMetaEntryInterfaceVersion>),
3273    ScMetaV0(Box<ScMetaV0>),
3274    ScMetaKind(Box<ScMetaKind>),
3275    ScMetaEntry(Box<ScMetaEntry>),
3276    ScSpecType(Box<ScSpecType>),
3277    ScSpecTypeOption(Box<ScSpecTypeOption>),
3278    ScSpecTypeResult(Box<ScSpecTypeResult>),
3279    ScSpecTypeVec(Box<ScSpecTypeVec>),
3280    ScSpecTypeMap(Box<ScSpecTypeMap>),
3281    ScSpecTypeTuple(Box<ScSpecTypeTuple>),
3282    ScSpecTypeBytesN(Box<ScSpecTypeBytesN>),
3283    ScSpecTypeUdt(Box<ScSpecTypeUdt>),
3284    ScSpecTypeDef(Box<ScSpecTypeDef>),
3285    ScSpecUdtStructFieldV0(Box<ScSpecUdtStructFieldV0>),
3286    ScSpecUdtStructV0(Box<ScSpecUdtStructV0>),
3287    ScSpecUdtUnionCaseVoidV0(Box<ScSpecUdtUnionCaseVoidV0>),
3288    ScSpecUdtUnionCaseTupleV0(Box<ScSpecUdtUnionCaseTupleV0>),
3289    ScSpecUdtUnionCaseV0Kind(Box<ScSpecUdtUnionCaseV0Kind>),
3290    ScSpecUdtUnionCaseV0(Box<ScSpecUdtUnionCaseV0>),
3291    ScSpecUdtUnionV0(Box<ScSpecUdtUnionV0>),
3292    ScSpecUdtEnumCaseV0(Box<ScSpecUdtEnumCaseV0>),
3293    ScSpecUdtEnumV0(Box<ScSpecUdtEnumV0>),
3294    ScSpecUdtErrorEnumCaseV0(Box<ScSpecUdtErrorEnumCaseV0>),
3295    ScSpecUdtErrorEnumV0(Box<ScSpecUdtErrorEnumV0>),
3296    ScSpecFunctionInputV0(Box<ScSpecFunctionInputV0>),
3297    ScSpecFunctionV0(Box<ScSpecFunctionV0>),
3298    ScSpecEventParamLocationV0(Box<ScSpecEventParamLocationV0>),
3299    ScSpecEventParamV0(Box<ScSpecEventParamV0>),
3300    ScSpecEventDataFormat(Box<ScSpecEventDataFormat>),
3301    ScSpecEventV0(Box<ScSpecEventV0>),
3302    ScSpecEntryKind(Box<ScSpecEntryKind>),
3303    ScSpecEntry(Box<ScSpecEntry>),
3304    ScBytes(Box<ScBytes>),
3305    ScString(Box<ScString>),
3306    ScSymbol(Box<ScSymbol>),
3307    ScValType(Box<ScValType>),
3308    ScErrorType(Box<ScErrorType>),
3309    ScErrorCode(Box<ScErrorCode>),
3310    ScError(Box<ScError>),
3311    UInt128Parts(Box<UInt128Parts>),
3312    Int128Parts(Box<Int128Parts>),
3313    UInt256Parts(Box<UInt256Parts>),
3314    Int256Parts(Box<Int256Parts>),
3315    ContractExecutableType(Box<ContractExecutableType>),
3316    ScAddressType(Box<ScAddressType>),
3317    MuxedEd25519Account(Box<MuxedEd25519Account>),
3318    #[cfg(feature = "cap_0084_muxed_contract")]
3319    MuxedContract(Box<MuxedContract>),
3320    ScAddress(Box<ScAddress>),
3321    ContractExecutableExternalRef(Box<ContractExecutableExternalRef>),
3322    ContractExecutable(Box<ContractExecutable>),
3323    ScVec(Box<ScVec>),
3324    ScMap(Box<ScMap>),
3325    ScNonceKey(Box<ScNonceKey>),
3326    ScContractInstance(Box<ScContractInstance>),
3327    ScVal(Box<ScVal>),
3328    ScMapEntry(Box<ScMapEntry>),
3329    LedgerCloseMetaBatch(Box<LedgerCloseMetaBatch>),
3330    StoredTransactionSet(Box<StoredTransactionSet>),
3331    StoredDebugTransactionSet(Box<StoredDebugTransactionSet>),
3332    PersistedScpStateV0(Box<PersistedScpStateV0>),
3333    PersistedScpStateV1(Box<PersistedScpStateV1>),
3334    PersistedScpState(Box<PersistedScpState>),
3335    Thresholds(Box<Thresholds>),
3336    String32(Box<String32>),
3337    String64(Box<String64>),
3338    SequenceNumber(Box<SequenceNumber>),
3339    DataValue(Box<DataValue>),
3340    AssetCode4(Box<AssetCode4>),
3341    AssetCode12(Box<AssetCode12>),
3342    AssetType(Box<AssetType>),
3343    AssetCode(Box<AssetCode>),
3344    AlphaNum4(Box<AlphaNum4>),
3345    AlphaNum12(Box<AlphaNum12>),
3346    Asset(Box<Asset>),
3347    Price(Box<Price>),
3348    Liabilities(Box<Liabilities>),
3349    ThresholdIndexes(Box<ThresholdIndexes>),
3350    LedgerEntryType(Box<LedgerEntryType>),
3351    Signer(Box<Signer>),
3352    AccountFlags(Box<AccountFlags>),
3353    SponsorshipDescriptor(Box<SponsorshipDescriptor>),
3354    AccountEntryExtensionV3(Box<AccountEntryExtensionV3>),
3355    AccountEntryExtensionV2(Box<AccountEntryExtensionV2>),
3356    AccountEntryExtensionV2Ext(Box<AccountEntryExtensionV2Ext>),
3357    AccountEntryExtensionV1(Box<AccountEntryExtensionV1>),
3358    AccountEntryExtensionV1Ext(Box<AccountEntryExtensionV1Ext>),
3359    AccountEntry(Box<AccountEntry>),
3360    AccountEntryExt(Box<AccountEntryExt>),
3361    TrustLineFlags(Box<TrustLineFlags>),
3362    LiquidityPoolType(Box<LiquidityPoolType>),
3363    TrustLineAsset(Box<TrustLineAsset>),
3364    TrustLineEntryExtensionV2(Box<TrustLineEntryExtensionV2>),
3365    TrustLineEntryExtensionV2Ext(Box<TrustLineEntryExtensionV2Ext>),
3366    TrustLineEntry(Box<TrustLineEntry>),
3367    TrustLineEntryExt(Box<TrustLineEntryExt>),
3368    TrustLineEntryV1(Box<TrustLineEntryV1>),
3369    TrustLineEntryV1Ext(Box<TrustLineEntryV1Ext>),
3370    OfferEntryFlags(Box<OfferEntryFlags>),
3371    OfferEntry(Box<OfferEntry>),
3372    OfferEntryExt(Box<OfferEntryExt>),
3373    DataEntry(Box<DataEntry>),
3374    DataEntryExt(Box<DataEntryExt>),
3375    ClaimPredicateType(Box<ClaimPredicateType>),
3376    ClaimPredicate(Box<ClaimPredicate>),
3377    ClaimantType(Box<ClaimantType>),
3378    Claimant(Box<Claimant>),
3379    ClaimantV0(Box<ClaimantV0>),
3380    ClaimableBalanceFlags(Box<ClaimableBalanceFlags>),
3381    ClaimableBalanceEntryExtensionV1(Box<ClaimableBalanceEntryExtensionV1>),
3382    ClaimableBalanceEntryExtensionV1Ext(Box<ClaimableBalanceEntryExtensionV1Ext>),
3383    ClaimableBalanceEntry(Box<ClaimableBalanceEntry>),
3384    ClaimableBalanceEntryExt(Box<ClaimableBalanceEntryExt>),
3385    LiquidityPoolConstantProductParameters(Box<LiquidityPoolConstantProductParameters>),
3386    LiquidityPoolEntry(Box<LiquidityPoolEntry>),
3387    LiquidityPoolEntryBody(Box<LiquidityPoolEntryBody>),
3388    LiquidityPoolEntryConstantProduct(Box<LiquidityPoolEntryConstantProduct>),
3389    ContractDataDurability(Box<ContractDataDurability>),
3390    ContractDataEntry(Box<ContractDataEntry>),
3391    ContractCodeCostInputs(Box<ContractCodeCostInputs>),
3392    ContractCodeEntry(Box<ContractCodeEntry>),
3393    ContractCodeEntryExt(Box<ContractCodeEntryExt>),
3394    ContractCodeEntryV1(Box<ContractCodeEntryV1>),
3395    TtlEntry(Box<TtlEntry>),
3396    LedgerEntryExtensionV1(Box<LedgerEntryExtensionV1>),
3397    LedgerEntryExtensionV1Ext(Box<LedgerEntryExtensionV1Ext>),
3398    LedgerEntry(Box<LedgerEntry>),
3399    LedgerEntryData(Box<LedgerEntryData>),
3400    LedgerEntryExt(Box<LedgerEntryExt>),
3401    LedgerKey(Box<LedgerKey>),
3402    LedgerKeyAccount(Box<LedgerKeyAccount>),
3403    LedgerKeyTrustLine(Box<LedgerKeyTrustLine>),
3404    LedgerKeyOffer(Box<LedgerKeyOffer>),
3405    LedgerKeyData(Box<LedgerKeyData>),
3406    LedgerKeyClaimableBalance(Box<LedgerKeyClaimableBalance>),
3407    LedgerKeyLiquidityPool(Box<LedgerKeyLiquidityPool>),
3408    LedgerKeyContractData(Box<LedgerKeyContractData>),
3409    LedgerKeyContractCode(Box<LedgerKeyContractCode>),
3410    LedgerKeyConfigSetting(Box<LedgerKeyConfigSetting>),
3411    LedgerKeyTtl(Box<LedgerKeyTtl>),
3412    EnvelopeType(Box<EnvelopeType>),
3413    BucketListType(Box<BucketListType>),
3414    BucketEntryType(Box<BucketEntryType>),
3415    HotArchiveBucketEntryType(Box<HotArchiveBucketEntryType>),
3416    BucketMetadata(Box<BucketMetadata>),
3417    BucketMetadataExt(Box<BucketMetadataExt>),
3418    BucketEntry(Box<BucketEntry>),
3419    HotArchiveBucketEntry(Box<HotArchiveBucketEntry>),
3420    UpgradeType(Box<UpgradeType>),
3421    StellarValueType(Box<StellarValueType>),
3422    LedgerCloseValueSignature(Box<LedgerCloseValueSignature>),
3423    StellarValue(Box<StellarValue>),
3424    StellarValueExt(Box<StellarValueExt>),
3425    StellarValueProposedValue(Box<StellarValueProposedValue>),
3426    LedgerHeaderFlags(Box<LedgerHeaderFlags>),
3427    LedgerHeaderExtensionV1(Box<LedgerHeaderExtensionV1>),
3428    LedgerHeaderExtensionV1Ext(Box<LedgerHeaderExtensionV1Ext>),
3429    LedgerHeader(Box<LedgerHeader>),
3430    LedgerHeaderExt(Box<LedgerHeaderExt>),
3431    LedgerUpgradeType(Box<LedgerUpgradeType>),
3432    ConfigUpgradeSetKey(Box<ConfigUpgradeSetKey>),
3433    LedgerUpgrade(Box<LedgerUpgrade>),
3434    ConfigUpgradeSet(Box<ConfigUpgradeSet>),
3435    TxSetComponentType(Box<TxSetComponentType>),
3436    DependentTxCluster(Box<DependentTxCluster>),
3437    ParallelTxExecutionStage(Box<ParallelTxExecutionStage>),
3438    ParallelTxsComponent(Box<ParallelTxsComponent>),
3439    TxSetComponent(Box<TxSetComponent>),
3440    TxSetComponentTxsMaybeDiscountedFee(Box<TxSetComponentTxsMaybeDiscountedFee>),
3441    TransactionPhase(Box<TransactionPhase>),
3442    TransactionSet(Box<TransactionSet>),
3443    TransactionSetV1(Box<TransactionSetV1>),
3444    GeneralizedTransactionSet(Box<GeneralizedTransactionSet>),
3445    TransactionResultPair(Box<TransactionResultPair>),
3446    TransactionResultSet(Box<TransactionResultSet>),
3447    TransactionHistoryEntry(Box<TransactionHistoryEntry>),
3448    TransactionHistoryEntryExt(Box<TransactionHistoryEntryExt>),
3449    TransactionHistoryResultEntry(Box<TransactionHistoryResultEntry>),
3450    TransactionHistoryResultEntryExt(Box<TransactionHistoryResultEntryExt>),
3451    LedgerHeaderHistoryEntry(Box<LedgerHeaderHistoryEntry>),
3452    LedgerHeaderHistoryEntryExt(Box<LedgerHeaderHistoryEntryExt>),
3453    LedgerScpMessages(Box<LedgerScpMessages>),
3454    ScpHistoryEntryV0(Box<ScpHistoryEntryV0>),
3455    ScpHistoryEntry(Box<ScpHistoryEntry>),
3456    LedgerEntryChangeType(Box<LedgerEntryChangeType>),
3457    LedgerEntryChange(Box<LedgerEntryChange>),
3458    LedgerEntryChanges(Box<LedgerEntryChanges>),
3459    OperationMeta(Box<OperationMeta>),
3460    TransactionMetaV1(Box<TransactionMetaV1>),
3461    TransactionMetaV2(Box<TransactionMetaV2>),
3462    ContractEventType(Box<ContractEventType>),
3463    ContractEvent(Box<ContractEvent>),
3464    ContractEventBody(Box<ContractEventBody>),
3465    ContractEventV0(Box<ContractEventV0>),
3466    DiagnosticEvent(Box<DiagnosticEvent>),
3467    SorobanTransactionMetaExtV1(Box<SorobanTransactionMetaExtV1>),
3468    SorobanTransactionMetaExt(Box<SorobanTransactionMetaExt>),
3469    SorobanTransactionMeta(Box<SorobanTransactionMeta>),
3470    TransactionMetaV3(Box<TransactionMetaV3>),
3471    OperationMetaV2(Box<OperationMetaV2>),
3472    SorobanTransactionMetaV2(Box<SorobanTransactionMetaV2>),
3473    TransactionEventStage(Box<TransactionEventStage>),
3474    TransactionEvent(Box<TransactionEvent>),
3475    TransactionMetaV4(Box<TransactionMetaV4>),
3476    InvokeHostFunctionSuccessPreImage(Box<InvokeHostFunctionSuccessPreImage>),
3477    TransactionMeta(Box<TransactionMeta>),
3478    TransactionResultMeta(Box<TransactionResultMeta>),
3479    TransactionResultMetaV1(Box<TransactionResultMetaV1>),
3480    UpgradeEntryMeta(Box<UpgradeEntryMeta>),
3481    LedgerCloseMetaV0(Box<LedgerCloseMetaV0>),
3482    LedgerCloseMetaExtV1(Box<LedgerCloseMetaExtV1>),
3483    LedgerCloseMetaExt(Box<LedgerCloseMetaExt>),
3484    LedgerCloseMetaV1(Box<LedgerCloseMetaV1>),
3485    LedgerCloseMetaV2(Box<LedgerCloseMetaV2>),
3486    LedgerCloseMeta(Box<LedgerCloseMeta>),
3487    ErrorCode(Box<ErrorCode>),
3488    SError(Box<SError>),
3489    SendMore(Box<SendMore>),
3490    SendMoreExtended(Box<SendMoreExtended>),
3491    AuthCert(Box<AuthCert>),
3492    Hello(Box<Hello>),
3493    Auth(Box<Auth>),
3494    IpAddrType(Box<IpAddrType>),
3495    PeerAddress(Box<PeerAddress>),
3496    PeerAddressIp(Box<PeerAddressIp>),
3497    MessageType(Box<MessageType>),
3498    DontHave(Box<DontHave>),
3499    SurveyMessageCommandType(Box<SurveyMessageCommandType>),
3500    SurveyMessageResponseType(Box<SurveyMessageResponseType>),
3501    TimeSlicedSurveyStartCollectingMessage(Box<TimeSlicedSurveyStartCollectingMessage>),
3502    SignedTimeSlicedSurveyStartCollectingMessage(Box<SignedTimeSlicedSurveyStartCollectingMessage>),
3503    TimeSlicedSurveyStopCollectingMessage(Box<TimeSlicedSurveyStopCollectingMessage>),
3504    SignedTimeSlicedSurveyStopCollectingMessage(Box<SignedTimeSlicedSurveyStopCollectingMessage>),
3505    SurveyRequestMessage(Box<SurveyRequestMessage>),
3506    TimeSlicedSurveyRequestMessage(Box<TimeSlicedSurveyRequestMessage>),
3507    SignedTimeSlicedSurveyRequestMessage(Box<SignedTimeSlicedSurveyRequestMessage>),
3508    EncryptedBody(Box<EncryptedBody>),
3509    SurveyResponseMessage(Box<SurveyResponseMessage>),
3510    TimeSlicedSurveyResponseMessage(Box<TimeSlicedSurveyResponseMessage>),
3511    SignedTimeSlicedSurveyResponseMessage(Box<SignedTimeSlicedSurveyResponseMessage>),
3512    PeerStats(Box<PeerStats>),
3513    TimeSlicedNodeData(Box<TimeSlicedNodeData>),
3514    TimeSlicedPeerData(Box<TimeSlicedPeerData>),
3515    TimeSlicedPeerDataList(Box<TimeSlicedPeerDataList>),
3516    TopologyResponseBodyV2(Box<TopologyResponseBodyV2>),
3517    SurveyResponseBody(Box<SurveyResponseBody>),
3518    TxAdvertVector(Box<TxAdvertVector>),
3519    FloodAdvert(Box<FloodAdvert>),
3520    TxDemandVector(Box<TxDemandVector>),
3521    FloodDemand(Box<FloodDemand>),
3522    StellarMessage(Box<StellarMessage>),
3523    AuthenticatedMessage(Box<AuthenticatedMessage>),
3524    AuthenticatedMessageV0(Box<AuthenticatedMessageV0>),
3525    LiquidityPoolParameters(Box<LiquidityPoolParameters>),
3526    MuxedAccount(Box<MuxedAccount>),
3527    MuxedAccountMed25519(Box<MuxedAccountMed25519>),
3528    DecoratedSignature(Box<DecoratedSignature>),
3529    OperationType(Box<OperationType>),
3530    CreateAccountOp(Box<CreateAccountOp>),
3531    PaymentOp(Box<PaymentOp>),
3532    PathPaymentStrictReceiveOp(Box<PathPaymentStrictReceiveOp>),
3533    PathPaymentStrictSendOp(Box<PathPaymentStrictSendOp>),
3534    ManageSellOfferOp(Box<ManageSellOfferOp>),
3535    ManageBuyOfferOp(Box<ManageBuyOfferOp>),
3536    CreatePassiveSellOfferOp(Box<CreatePassiveSellOfferOp>),
3537    SetOptionsOp(Box<SetOptionsOp>),
3538    ChangeTrustAsset(Box<ChangeTrustAsset>),
3539    ChangeTrustOp(Box<ChangeTrustOp>),
3540    AllowTrustOp(Box<AllowTrustOp>),
3541    ManageDataOp(Box<ManageDataOp>),
3542    BumpSequenceOp(Box<BumpSequenceOp>),
3543    CreateClaimableBalanceOp(Box<CreateClaimableBalanceOp>),
3544    ClaimClaimableBalanceOp(Box<ClaimClaimableBalanceOp>),
3545    BeginSponsoringFutureReservesOp(Box<BeginSponsoringFutureReservesOp>),
3546    RevokeSponsorshipType(Box<RevokeSponsorshipType>),
3547    RevokeSponsorshipOp(Box<RevokeSponsorshipOp>),
3548    RevokeSponsorshipOpSigner(Box<RevokeSponsorshipOpSigner>),
3549    ClawbackOp(Box<ClawbackOp>),
3550    ClawbackClaimableBalanceOp(Box<ClawbackClaimableBalanceOp>),
3551    SetTrustLineFlagsOp(Box<SetTrustLineFlagsOp>),
3552    LiquidityPoolDepositOp(Box<LiquidityPoolDepositOp>),
3553    LiquidityPoolWithdrawOp(Box<LiquidityPoolWithdrawOp>),
3554    HostFunctionType(Box<HostFunctionType>),
3555    ContractIdPreimageType(Box<ContractIdPreimageType>),
3556    ContractIdPreimage(Box<ContractIdPreimage>),
3557    ContractIdPreimageFromAddress(Box<ContractIdPreimageFromAddress>),
3558    CreateContractArgs(Box<CreateContractArgs>),
3559    CreateContractArgsV2(Box<CreateContractArgsV2>),
3560    InvokeContractArgs(Box<InvokeContractArgs>),
3561    HostFunction(Box<HostFunction>),
3562    SorobanAuthorizedFunctionType(Box<SorobanAuthorizedFunctionType>),
3563    SorobanAuthorizedFunction(Box<SorobanAuthorizedFunction>),
3564    SorobanAuthorizedInvocation(Box<SorobanAuthorizedInvocation>),
3565    SorobanAddressCredentials(Box<SorobanAddressCredentials>),
3566    SorobanDelegateSignature(Box<SorobanDelegateSignature>),
3567    SorobanAddressCredentialsWithDelegates(Box<SorobanAddressCredentialsWithDelegates>),
3568    SorobanCredentialsType(Box<SorobanCredentialsType>),
3569    SorobanCredentials(Box<SorobanCredentials>),
3570    SorobanAuthorizationEntry(Box<SorobanAuthorizationEntry>),
3571    SorobanAuthorizationEntries(Box<SorobanAuthorizationEntries>),
3572    InvokeHostFunctionOp(Box<InvokeHostFunctionOp>),
3573    ExtendFootprintTtlOp(Box<ExtendFootprintTtlOp>),
3574    RestoreFootprintOp(Box<RestoreFootprintOp>),
3575    Operation(Box<Operation>),
3576    OperationBody(Box<OperationBody>),
3577    HashIdPreimage(Box<HashIdPreimage>),
3578    HashIdPreimageOperationId(Box<HashIdPreimageOperationId>),
3579    HashIdPreimageRevokeId(Box<HashIdPreimageRevokeId>),
3580    HashIdPreimageContractId(Box<HashIdPreimageContractId>),
3581    HashIdPreimageSorobanAuthorization(Box<HashIdPreimageSorobanAuthorization>),
3582    HashIdPreimageSorobanAuthorizationWithAddress(
3583        Box<HashIdPreimageSorobanAuthorizationWithAddress>,
3584    ),
3585    MemoType(Box<MemoType>),
3586    Memo(Box<Memo>),
3587    TimeBounds(Box<TimeBounds>),
3588    LedgerBounds(Box<LedgerBounds>),
3589    PreconditionsV2(Box<PreconditionsV2>),
3590    PreconditionType(Box<PreconditionType>),
3591    Preconditions(Box<Preconditions>),
3592    LedgerFootprint(Box<LedgerFootprint>),
3593    SorobanResources(Box<SorobanResources>),
3594    SorobanResourcesExtV0(Box<SorobanResourcesExtV0>),
3595    SorobanTransactionData(Box<SorobanTransactionData>),
3596    SorobanTransactionDataExt(Box<SorobanTransactionDataExt>),
3597    TransactionV0(Box<TransactionV0>),
3598    TransactionV0Ext(Box<TransactionV0Ext>),
3599    TransactionV0Envelope(Box<TransactionV0Envelope>),
3600    Transaction(Box<Transaction>),
3601    TransactionExt(Box<TransactionExt>),
3602    TransactionV1Envelope(Box<TransactionV1Envelope>),
3603    FeeBumpTransaction(Box<FeeBumpTransaction>),
3604    FeeBumpTransactionInnerTx(Box<FeeBumpTransactionInnerTx>),
3605    FeeBumpTransactionExt(Box<FeeBumpTransactionExt>),
3606    FeeBumpTransactionEnvelope(Box<FeeBumpTransactionEnvelope>),
3607    TransactionEnvelope(Box<TransactionEnvelope>),
3608    TransactionSignaturePayload(Box<TransactionSignaturePayload>),
3609    TransactionSignaturePayloadTaggedTransaction(Box<TransactionSignaturePayloadTaggedTransaction>),
3610    ClaimAtomType(Box<ClaimAtomType>),
3611    ClaimOfferAtomV0(Box<ClaimOfferAtomV0>),
3612    ClaimOfferAtom(Box<ClaimOfferAtom>),
3613    ClaimLiquidityAtom(Box<ClaimLiquidityAtom>),
3614    ClaimAtom(Box<ClaimAtom>),
3615    CreateAccountResultCode(Box<CreateAccountResultCode>),
3616    CreateAccountResult(Box<CreateAccountResult>),
3617    PaymentResultCode(Box<PaymentResultCode>),
3618    PaymentResult(Box<PaymentResult>),
3619    PathPaymentStrictReceiveResultCode(Box<PathPaymentStrictReceiveResultCode>),
3620    SimplePaymentResult(Box<SimplePaymentResult>),
3621    PathPaymentStrictReceiveResult(Box<PathPaymentStrictReceiveResult>),
3622    PathPaymentStrictReceiveResultSuccess(Box<PathPaymentStrictReceiveResultSuccess>),
3623    PathPaymentStrictSendResultCode(Box<PathPaymentStrictSendResultCode>),
3624    PathPaymentStrictSendResult(Box<PathPaymentStrictSendResult>),
3625    PathPaymentStrictSendResultSuccess(Box<PathPaymentStrictSendResultSuccess>),
3626    ManageSellOfferResultCode(Box<ManageSellOfferResultCode>),
3627    ManageOfferEffect(Box<ManageOfferEffect>),
3628    ManageOfferSuccessResult(Box<ManageOfferSuccessResult>),
3629    ManageOfferSuccessResultOffer(Box<ManageOfferSuccessResultOffer>),
3630    ManageSellOfferResult(Box<ManageSellOfferResult>),
3631    ManageBuyOfferResultCode(Box<ManageBuyOfferResultCode>),
3632    ManageBuyOfferResult(Box<ManageBuyOfferResult>),
3633    SetOptionsResultCode(Box<SetOptionsResultCode>),
3634    SetOptionsResult(Box<SetOptionsResult>),
3635    ChangeTrustResultCode(Box<ChangeTrustResultCode>),
3636    ChangeTrustResult(Box<ChangeTrustResult>),
3637    AllowTrustResultCode(Box<AllowTrustResultCode>),
3638    AllowTrustResult(Box<AllowTrustResult>),
3639    AccountMergeResultCode(Box<AccountMergeResultCode>),
3640    AccountMergeResult(Box<AccountMergeResult>),
3641    InflationResultCode(Box<InflationResultCode>),
3642    InflationPayout(Box<InflationPayout>),
3643    InflationResult(Box<InflationResult>),
3644    ManageDataResultCode(Box<ManageDataResultCode>),
3645    ManageDataResult(Box<ManageDataResult>),
3646    BumpSequenceResultCode(Box<BumpSequenceResultCode>),
3647    BumpSequenceResult(Box<BumpSequenceResult>),
3648    CreateClaimableBalanceResultCode(Box<CreateClaimableBalanceResultCode>),
3649    CreateClaimableBalanceResult(Box<CreateClaimableBalanceResult>),
3650    ClaimClaimableBalanceResultCode(Box<ClaimClaimableBalanceResultCode>),
3651    ClaimClaimableBalanceResult(Box<ClaimClaimableBalanceResult>),
3652    BeginSponsoringFutureReservesResultCode(Box<BeginSponsoringFutureReservesResultCode>),
3653    BeginSponsoringFutureReservesResult(Box<BeginSponsoringFutureReservesResult>),
3654    EndSponsoringFutureReservesResultCode(Box<EndSponsoringFutureReservesResultCode>),
3655    EndSponsoringFutureReservesResult(Box<EndSponsoringFutureReservesResult>),
3656    RevokeSponsorshipResultCode(Box<RevokeSponsorshipResultCode>),
3657    RevokeSponsorshipResult(Box<RevokeSponsorshipResult>),
3658    ClawbackResultCode(Box<ClawbackResultCode>),
3659    ClawbackResult(Box<ClawbackResult>),
3660    ClawbackClaimableBalanceResultCode(Box<ClawbackClaimableBalanceResultCode>),
3661    ClawbackClaimableBalanceResult(Box<ClawbackClaimableBalanceResult>),
3662    SetTrustLineFlagsResultCode(Box<SetTrustLineFlagsResultCode>),
3663    SetTrustLineFlagsResult(Box<SetTrustLineFlagsResult>),
3664    LiquidityPoolDepositResultCode(Box<LiquidityPoolDepositResultCode>),
3665    LiquidityPoolDepositResult(Box<LiquidityPoolDepositResult>),
3666    LiquidityPoolWithdrawResultCode(Box<LiquidityPoolWithdrawResultCode>),
3667    LiquidityPoolWithdrawResult(Box<LiquidityPoolWithdrawResult>),
3668    InvokeHostFunctionResultCode(Box<InvokeHostFunctionResultCode>),
3669    InvokeHostFunctionResult(Box<InvokeHostFunctionResult>),
3670    ExtendFootprintTtlResultCode(Box<ExtendFootprintTtlResultCode>),
3671    ExtendFootprintTtlResult(Box<ExtendFootprintTtlResult>),
3672    RestoreFootprintResultCode(Box<RestoreFootprintResultCode>),
3673    RestoreFootprintResult(Box<RestoreFootprintResult>),
3674    OperationResultCode(Box<OperationResultCode>),
3675    OperationResult(Box<OperationResult>),
3676    OperationResultTr(Box<OperationResultTr>),
3677    TransactionResultCode(Box<TransactionResultCode>),
3678    InnerTransactionResult(Box<InnerTransactionResult>),
3679    InnerTransactionResultResult(Box<InnerTransactionResultResult>),
3680    InnerTransactionResultExt(Box<InnerTransactionResultExt>),
3681    InnerTransactionResultPair(Box<InnerTransactionResultPair>),
3682    TransactionResult(Box<TransactionResult>),
3683    TransactionResultResult(Box<TransactionResultResult>),
3684    TransactionResultExt(Box<TransactionResultExt>),
3685    Hash(Box<Hash>),
3686    Uint256(Box<Uint256>),
3687    Uint32(Box<Uint32>),
3688    Int32(Box<Int32>),
3689    Uint64(Box<Uint64>),
3690    Int64(Box<Int64>),
3691    TimePoint(Box<TimePoint>),
3692    Duration(Box<Duration>),
3693    ExtensionPoint(Box<ExtensionPoint>),
3694    CryptoKeyType(Box<CryptoKeyType>),
3695    PublicKeyType(Box<PublicKeyType>),
3696    SignerKeyType(Box<SignerKeyType>),
3697    PublicKey(Box<PublicKey>),
3698    SignerKey(Box<SignerKey>),
3699    SignerKeyEd25519SignedPayload(Box<SignerKeyEd25519SignedPayload>),
3700    Signature(Box<Signature>),
3701    SignatureHint(Box<SignatureHint>),
3702    NodeId(Box<NodeId>),
3703    AccountId(Box<AccountId>),
3704    ContractId(Box<ContractId>),
3705    Curve25519Secret(Box<Curve25519Secret>),
3706    Curve25519Public(Box<Curve25519Public>),
3707    HmacSha256Key(Box<HmacSha256Key>),
3708    HmacSha256Mac(Box<HmacSha256Mac>),
3709    ShortHashSeed(Box<ShortHashSeed>),
3710    BinaryFuseFilterType(Box<BinaryFuseFilterType>),
3711    SerializedBinaryFuseFilter(Box<SerializedBinaryFuseFilter>),
3712    PoolId(Box<PoolId>),
3713    ClaimableBalanceIdType(Box<ClaimableBalanceIdType>),
3714    ClaimableBalanceId(Box<ClaimableBalanceId>),
3715    #[cfg(feature = "test_feature")]
3716    TestNextType(Box<TestNextType>),
3717}
3718
3719#[cfg(feature = "type_enum")]
3720impl Type {
3721    const _VARIANTS: &[TypeVariant] = &[
3722        TypeVariant::Value,
3723        TypeVariant::ScpBallot,
3724        TypeVariant::ScpStatementType,
3725        TypeVariant::ScpNomination,
3726        TypeVariant::ScpStatement,
3727        TypeVariant::ScpStatementPledges,
3728        TypeVariant::ScpStatementPrepare,
3729        TypeVariant::ScpStatementConfirm,
3730        TypeVariant::ScpStatementExternalize,
3731        TypeVariant::ScpEnvelope,
3732        TypeVariant::ScpQuorumSet,
3733        TypeVariant::EncodedLedgerKey,
3734        TypeVariant::ConfigSettingContractExecutionLanesV0,
3735        TypeVariant::ConfigSettingContractComputeV0,
3736        TypeVariant::ConfigSettingContractParallelComputeV0,
3737        TypeVariant::ConfigSettingContractLedgerCostV0,
3738        TypeVariant::ConfigSettingContractLedgerCostExtV0,
3739        TypeVariant::ConfigSettingContractHistoricalDataV0,
3740        TypeVariant::ConfigSettingContractEventsV0,
3741        TypeVariant::ConfigSettingContractBandwidthV0,
3742        TypeVariant::ContractCostType,
3743        TypeVariant::ContractCostParamEntry,
3744        TypeVariant::StateArchivalSettings,
3745        TypeVariant::EvictionIterator,
3746        TypeVariant::ConfigSettingScpTiming,
3747        TypeVariant::FrozenLedgerKeys,
3748        TypeVariant::FrozenLedgerKeysDelta,
3749        TypeVariant::FreezeBypassTxs,
3750        TypeVariant::FreezeBypassTxsDelta,
3751        TypeVariant::ContractCostParams,
3752        TypeVariant::ConfigSettingId,
3753        TypeVariant::ConfigSettingEntry,
3754        TypeVariant::ScEnvMetaKind,
3755        TypeVariant::ScEnvMetaEntry,
3756        TypeVariant::ScEnvMetaEntryInterfaceVersion,
3757        TypeVariant::ScMetaV0,
3758        TypeVariant::ScMetaKind,
3759        TypeVariant::ScMetaEntry,
3760        TypeVariant::ScSpecType,
3761        TypeVariant::ScSpecTypeOption,
3762        TypeVariant::ScSpecTypeResult,
3763        TypeVariant::ScSpecTypeVec,
3764        TypeVariant::ScSpecTypeMap,
3765        TypeVariant::ScSpecTypeTuple,
3766        TypeVariant::ScSpecTypeBytesN,
3767        TypeVariant::ScSpecTypeUdt,
3768        TypeVariant::ScSpecTypeDef,
3769        TypeVariant::ScSpecUdtStructFieldV0,
3770        TypeVariant::ScSpecUdtStructV0,
3771        TypeVariant::ScSpecUdtUnionCaseVoidV0,
3772        TypeVariant::ScSpecUdtUnionCaseTupleV0,
3773        TypeVariant::ScSpecUdtUnionCaseV0Kind,
3774        TypeVariant::ScSpecUdtUnionCaseV0,
3775        TypeVariant::ScSpecUdtUnionV0,
3776        TypeVariant::ScSpecUdtEnumCaseV0,
3777        TypeVariant::ScSpecUdtEnumV0,
3778        TypeVariant::ScSpecUdtErrorEnumCaseV0,
3779        TypeVariant::ScSpecUdtErrorEnumV0,
3780        TypeVariant::ScSpecFunctionInputV0,
3781        TypeVariant::ScSpecFunctionV0,
3782        TypeVariant::ScSpecEventParamLocationV0,
3783        TypeVariant::ScSpecEventParamV0,
3784        TypeVariant::ScSpecEventDataFormat,
3785        TypeVariant::ScSpecEventV0,
3786        TypeVariant::ScSpecEntryKind,
3787        TypeVariant::ScSpecEntry,
3788        TypeVariant::ScBytes,
3789        TypeVariant::ScString,
3790        TypeVariant::ScSymbol,
3791        TypeVariant::ScValType,
3792        TypeVariant::ScErrorType,
3793        TypeVariant::ScErrorCode,
3794        TypeVariant::ScError,
3795        TypeVariant::UInt128Parts,
3796        TypeVariant::Int128Parts,
3797        TypeVariant::UInt256Parts,
3798        TypeVariant::Int256Parts,
3799        TypeVariant::ContractExecutableType,
3800        TypeVariant::ScAddressType,
3801        TypeVariant::MuxedEd25519Account,
3802        #[cfg(feature = "cap_0084_muxed_contract")]
3803        TypeVariant::MuxedContract,
3804        TypeVariant::ScAddress,
3805        TypeVariant::ContractExecutableExternalRef,
3806        TypeVariant::ContractExecutable,
3807        TypeVariant::ScVec,
3808        TypeVariant::ScMap,
3809        TypeVariant::ScNonceKey,
3810        TypeVariant::ScContractInstance,
3811        TypeVariant::ScVal,
3812        TypeVariant::ScMapEntry,
3813        TypeVariant::LedgerCloseMetaBatch,
3814        TypeVariant::StoredTransactionSet,
3815        TypeVariant::StoredDebugTransactionSet,
3816        TypeVariant::PersistedScpStateV0,
3817        TypeVariant::PersistedScpStateV1,
3818        TypeVariant::PersistedScpState,
3819        TypeVariant::Thresholds,
3820        TypeVariant::String32,
3821        TypeVariant::String64,
3822        TypeVariant::SequenceNumber,
3823        TypeVariant::DataValue,
3824        TypeVariant::AssetCode4,
3825        TypeVariant::AssetCode12,
3826        TypeVariant::AssetType,
3827        TypeVariant::AssetCode,
3828        TypeVariant::AlphaNum4,
3829        TypeVariant::AlphaNum12,
3830        TypeVariant::Asset,
3831        TypeVariant::Price,
3832        TypeVariant::Liabilities,
3833        TypeVariant::ThresholdIndexes,
3834        TypeVariant::LedgerEntryType,
3835        TypeVariant::Signer,
3836        TypeVariant::AccountFlags,
3837        TypeVariant::SponsorshipDescriptor,
3838        TypeVariant::AccountEntryExtensionV3,
3839        TypeVariant::AccountEntryExtensionV2,
3840        TypeVariant::AccountEntryExtensionV2Ext,
3841        TypeVariant::AccountEntryExtensionV1,
3842        TypeVariant::AccountEntryExtensionV1Ext,
3843        TypeVariant::AccountEntry,
3844        TypeVariant::AccountEntryExt,
3845        TypeVariant::TrustLineFlags,
3846        TypeVariant::LiquidityPoolType,
3847        TypeVariant::TrustLineAsset,
3848        TypeVariant::TrustLineEntryExtensionV2,
3849        TypeVariant::TrustLineEntryExtensionV2Ext,
3850        TypeVariant::TrustLineEntry,
3851        TypeVariant::TrustLineEntryExt,
3852        TypeVariant::TrustLineEntryV1,
3853        TypeVariant::TrustLineEntryV1Ext,
3854        TypeVariant::OfferEntryFlags,
3855        TypeVariant::OfferEntry,
3856        TypeVariant::OfferEntryExt,
3857        TypeVariant::DataEntry,
3858        TypeVariant::DataEntryExt,
3859        TypeVariant::ClaimPredicateType,
3860        TypeVariant::ClaimPredicate,
3861        TypeVariant::ClaimantType,
3862        TypeVariant::Claimant,
3863        TypeVariant::ClaimantV0,
3864        TypeVariant::ClaimableBalanceFlags,
3865        TypeVariant::ClaimableBalanceEntryExtensionV1,
3866        TypeVariant::ClaimableBalanceEntryExtensionV1Ext,
3867        TypeVariant::ClaimableBalanceEntry,
3868        TypeVariant::ClaimableBalanceEntryExt,
3869        TypeVariant::LiquidityPoolConstantProductParameters,
3870        TypeVariant::LiquidityPoolEntry,
3871        TypeVariant::LiquidityPoolEntryBody,
3872        TypeVariant::LiquidityPoolEntryConstantProduct,
3873        TypeVariant::ContractDataDurability,
3874        TypeVariant::ContractDataEntry,
3875        TypeVariant::ContractCodeCostInputs,
3876        TypeVariant::ContractCodeEntry,
3877        TypeVariant::ContractCodeEntryExt,
3878        TypeVariant::ContractCodeEntryV1,
3879        TypeVariant::TtlEntry,
3880        TypeVariant::LedgerEntryExtensionV1,
3881        TypeVariant::LedgerEntryExtensionV1Ext,
3882        TypeVariant::LedgerEntry,
3883        TypeVariant::LedgerEntryData,
3884        TypeVariant::LedgerEntryExt,
3885        TypeVariant::LedgerKey,
3886        TypeVariant::LedgerKeyAccount,
3887        TypeVariant::LedgerKeyTrustLine,
3888        TypeVariant::LedgerKeyOffer,
3889        TypeVariant::LedgerKeyData,
3890        TypeVariant::LedgerKeyClaimableBalance,
3891        TypeVariant::LedgerKeyLiquidityPool,
3892        TypeVariant::LedgerKeyContractData,
3893        TypeVariant::LedgerKeyContractCode,
3894        TypeVariant::LedgerKeyConfigSetting,
3895        TypeVariant::LedgerKeyTtl,
3896        TypeVariant::EnvelopeType,
3897        TypeVariant::BucketListType,
3898        TypeVariant::BucketEntryType,
3899        TypeVariant::HotArchiveBucketEntryType,
3900        TypeVariant::BucketMetadata,
3901        TypeVariant::BucketMetadataExt,
3902        TypeVariant::BucketEntry,
3903        TypeVariant::HotArchiveBucketEntry,
3904        TypeVariant::UpgradeType,
3905        TypeVariant::StellarValueType,
3906        TypeVariant::LedgerCloseValueSignature,
3907        TypeVariant::StellarValue,
3908        TypeVariant::StellarValueExt,
3909        TypeVariant::StellarValueProposedValue,
3910        TypeVariant::LedgerHeaderFlags,
3911        TypeVariant::LedgerHeaderExtensionV1,
3912        TypeVariant::LedgerHeaderExtensionV1Ext,
3913        TypeVariant::LedgerHeader,
3914        TypeVariant::LedgerHeaderExt,
3915        TypeVariant::LedgerUpgradeType,
3916        TypeVariant::ConfigUpgradeSetKey,
3917        TypeVariant::LedgerUpgrade,
3918        TypeVariant::ConfigUpgradeSet,
3919        TypeVariant::TxSetComponentType,
3920        TypeVariant::DependentTxCluster,
3921        TypeVariant::ParallelTxExecutionStage,
3922        TypeVariant::ParallelTxsComponent,
3923        TypeVariant::TxSetComponent,
3924        TypeVariant::TxSetComponentTxsMaybeDiscountedFee,
3925        TypeVariant::TransactionPhase,
3926        TypeVariant::TransactionSet,
3927        TypeVariant::TransactionSetV1,
3928        TypeVariant::GeneralizedTransactionSet,
3929        TypeVariant::TransactionResultPair,
3930        TypeVariant::TransactionResultSet,
3931        TypeVariant::TransactionHistoryEntry,
3932        TypeVariant::TransactionHistoryEntryExt,
3933        TypeVariant::TransactionHistoryResultEntry,
3934        TypeVariant::TransactionHistoryResultEntryExt,
3935        TypeVariant::LedgerHeaderHistoryEntry,
3936        TypeVariant::LedgerHeaderHistoryEntryExt,
3937        TypeVariant::LedgerScpMessages,
3938        TypeVariant::ScpHistoryEntryV0,
3939        TypeVariant::ScpHistoryEntry,
3940        TypeVariant::LedgerEntryChangeType,
3941        TypeVariant::LedgerEntryChange,
3942        TypeVariant::LedgerEntryChanges,
3943        TypeVariant::OperationMeta,
3944        TypeVariant::TransactionMetaV1,
3945        TypeVariant::TransactionMetaV2,
3946        TypeVariant::ContractEventType,
3947        TypeVariant::ContractEvent,
3948        TypeVariant::ContractEventBody,
3949        TypeVariant::ContractEventV0,
3950        TypeVariant::DiagnosticEvent,
3951        TypeVariant::SorobanTransactionMetaExtV1,
3952        TypeVariant::SorobanTransactionMetaExt,
3953        TypeVariant::SorobanTransactionMeta,
3954        TypeVariant::TransactionMetaV3,
3955        TypeVariant::OperationMetaV2,
3956        TypeVariant::SorobanTransactionMetaV2,
3957        TypeVariant::TransactionEventStage,
3958        TypeVariant::TransactionEvent,
3959        TypeVariant::TransactionMetaV4,
3960        TypeVariant::InvokeHostFunctionSuccessPreImage,
3961        TypeVariant::TransactionMeta,
3962        TypeVariant::TransactionResultMeta,
3963        TypeVariant::TransactionResultMetaV1,
3964        TypeVariant::UpgradeEntryMeta,
3965        TypeVariant::LedgerCloseMetaV0,
3966        TypeVariant::LedgerCloseMetaExtV1,
3967        TypeVariant::LedgerCloseMetaExt,
3968        TypeVariant::LedgerCloseMetaV1,
3969        TypeVariant::LedgerCloseMetaV2,
3970        TypeVariant::LedgerCloseMeta,
3971        TypeVariant::ErrorCode,
3972        TypeVariant::SError,
3973        TypeVariant::SendMore,
3974        TypeVariant::SendMoreExtended,
3975        TypeVariant::AuthCert,
3976        TypeVariant::Hello,
3977        TypeVariant::Auth,
3978        TypeVariant::IpAddrType,
3979        TypeVariant::PeerAddress,
3980        TypeVariant::PeerAddressIp,
3981        TypeVariant::MessageType,
3982        TypeVariant::DontHave,
3983        TypeVariant::SurveyMessageCommandType,
3984        TypeVariant::SurveyMessageResponseType,
3985        TypeVariant::TimeSlicedSurveyStartCollectingMessage,
3986        TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage,
3987        TypeVariant::TimeSlicedSurveyStopCollectingMessage,
3988        TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage,
3989        TypeVariant::SurveyRequestMessage,
3990        TypeVariant::TimeSlicedSurveyRequestMessage,
3991        TypeVariant::SignedTimeSlicedSurveyRequestMessage,
3992        TypeVariant::EncryptedBody,
3993        TypeVariant::SurveyResponseMessage,
3994        TypeVariant::TimeSlicedSurveyResponseMessage,
3995        TypeVariant::SignedTimeSlicedSurveyResponseMessage,
3996        TypeVariant::PeerStats,
3997        TypeVariant::TimeSlicedNodeData,
3998        TypeVariant::TimeSlicedPeerData,
3999        TypeVariant::TimeSlicedPeerDataList,
4000        TypeVariant::TopologyResponseBodyV2,
4001        TypeVariant::SurveyResponseBody,
4002        TypeVariant::TxAdvertVector,
4003        TypeVariant::FloodAdvert,
4004        TypeVariant::TxDemandVector,
4005        TypeVariant::FloodDemand,
4006        TypeVariant::StellarMessage,
4007        TypeVariant::AuthenticatedMessage,
4008        TypeVariant::AuthenticatedMessageV0,
4009        TypeVariant::LiquidityPoolParameters,
4010        TypeVariant::MuxedAccount,
4011        TypeVariant::MuxedAccountMed25519,
4012        TypeVariant::DecoratedSignature,
4013        TypeVariant::OperationType,
4014        TypeVariant::CreateAccountOp,
4015        TypeVariant::PaymentOp,
4016        TypeVariant::PathPaymentStrictReceiveOp,
4017        TypeVariant::PathPaymentStrictSendOp,
4018        TypeVariant::ManageSellOfferOp,
4019        TypeVariant::ManageBuyOfferOp,
4020        TypeVariant::CreatePassiveSellOfferOp,
4021        TypeVariant::SetOptionsOp,
4022        TypeVariant::ChangeTrustAsset,
4023        TypeVariant::ChangeTrustOp,
4024        TypeVariant::AllowTrustOp,
4025        TypeVariant::ManageDataOp,
4026        TypeVariant::BumpSequenceOp,
4027        TypeVariant::CreateClaimableBalanceOp,
4028        TypeVariant::ClaimClaimableBalanceOp,
4029        TypeVariant::BeginSponsoringFutureReservesOp,
4030        TypeVariant::RevokeSponsorshipType,
4031        TypeVariant::RevokeSponsorshipOp,
4032        TypeVariant::RevokeSponsorshipOpSigner,
4033        TypeVariant::ClawbackOp,
4034        TypeVariant::ClawbackClaimableBalanceOp,
4035        TypeVariant::SetTrustLineFlagsOp,
4036        TypeVariant::LiquidityPoolDepositOp,
4037        TypeVariant::LiquidityPoolWithdrawOp,
4038        TypeVariant::HostFunctionType,
4039        TypeVariant::ContractIdPreimageType,
4040        TypeVariant::ContractIdPreimage,
4041        TypeVariant::ContractIdPreimageFromAddress,
4042        TypeVariant::CreateContractArgs,
4043        TypeVariant::CreateContractArgsV2,
4044        TypeVariant::InvokeContractArgs,
4045        TypeVariant::HostFunction,
4046        TypeVariant::SorobanAuthorizedFunctionType,
4047        TypeVariant::SorobanAuthorizedFunction,
4048        TypeVariant::SorobanAuthorizedInvocation,
4049        TypeVariant::SorobanAddressCredentials,
4050        TypeVariant::SorobanDelegateSignature,
4051        TypeVariant::SorobanAddressCredentialsWithDelegates,
4052        TypeVariant::SorobanCredentialsType,
4053        TypeVariant::SorobanCredentials,
4054        TypeVariant::SorobanAuthorizationEntry,
4055        TypeVariant::SorobanAuthorizationEntries,
4056        TypeVariant::InvokeHostFunctionOp,
4057        TypeVariant::ExtendFootprintTtlOp,
4058        TypeVariant::RestoreFootprintOp,
4059        TypeVariant::Operation,
4060        TypeVariant::OperationBody,
4061        TypeVariant::HashIdPreimage,
4062        TypeVariant::HashIdPreimageOperationId,
4063        TypeVariant::HashIdPreimageRevokeId,
4064        TypeVariant::HashIdPreimageContractId,
4065        TypeVariant::HashIdPreimageSorobanAuthorization,
4066        TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress,
4067        TypeVariant::MemoType,
4068        TypeVariant::Memo,
4069        TypeVariant::TimeBounds,
4070        TypeVariant::LedgerBounds,
4071        TypeVariant::PreconditionsV2,
4072        TypeVariant::PreconditionType,
4073        TypeVariant::Preconditions,
4074        TypeVariant::LedgerFootprint,
4075        TypeVariant::SorobanResources,
4076        TypeVariant::SorobanResourcesExtV0,
4077        TypeVariant::SorobanTransactionData,
4078        TypeVariant::SorobanTransactionDataExt,
4079        TypeVariant::TransactionV0,
4080        TypeVariant::TransactionV0Ext,
4081        TypeVariant::TransactionV0Envelope,
4082        TypeVariant::Transaction,
4083        TypeVariant::TransactionExt,
4084        TypeVariant::TransactionV1Envelope,
4085        TypeVariant::FeeBumpTransaction,
4086        TypeVariant::FeeBumpTransactionInnerTx,
4087        TypeVariant::FeeBumpTransactionExt,
4088        TypeVariant::FeeBumpTransactionEnvelope,
4089        TypeVariant::TransactionEnvelope,
4090        TypeVariant::TransactionSignaturePayload,
4091        TypeVariant::TransactionSignaturePayloadTaggedTransaction,
4092        TypeVariant::ClaimAtomType,
4093        TypeVariant::ClaimOfferAtomV0,
4094        TypeVariant::ClaimOfferAtom,
4095        TypeVariant::ClaimLiquidityAtom,
4096        TypeVariant::ClaimAtom,
4097        TypeVariant::CreateAccountResultCode,
4098        TypeVariant::CreateAccountResult,
4099        TypeVariant::PaymentResultCode,
4100        TypeVariant::PaymentResult,
4101        TypeVariant::PathPaymentStrictReceiveResultCode,
4102        TypeVariant::SimplePaymentResult,
4103        TypeVariant::PathPaymentStrictReceiveResult,
4104        TypeVariant::PathPaymentStrictReceiveResultSuccess,
4105        TypeVariant::PathPaymentStrictSendResultCode,
4106        TypeVariant::PathPaymentStrictSendResult,
4107        TypeVariant::PathPaymentStrictSendResultSuccess,
4108        TypeVariant::ManageSellOfferResultCode,
4109        TypeVariant::ManageOfferEffect,
4110        TypeVariant::ManageOfferSuccessResult,
4111        TypeVariant::ManageOfferSuccessResultOffer,
4112        TypeVariant::ManageSellOfferResult,
4113        TypeVariant::ManageBuyOfferResultCode,
4114        TypeVariant::ManageBuyOfferResult,
4115        TypeVariant::SetOptionsResultCode,
4116        TypeVariant::SetOptionsResult,
4117        TypeVariant::ChangeTrustResultCode,
4118        TypeVariant::ChangeTrustResult,
4119        TypeVariant::AllowTrustResultCode,
4120        TypeVariant::AllowTrustResult,
4121        TypeVariant::AccountMergeResultCode,
4122        TypeVariant::AccountMergeResult,
4123        TypeVariant::InflationResultCode,
4124        TypeVariant::InflationPayout,
4125        TypeVariant::InflationResult,
4126        TypeVariant::ManageDataResultCode,
4127        TypeVariant::ManageDataResult,
4128        TypeVariant::BumpSequenceResultCode,
4129        TypeVariant::BumpSequenceResult,
4130        TypeVariant::CreateClaimableBalanceResultCode,
4131        TypeVariant::CreateClaimableBalanceResult,
4132        TypeVariant::ClaimClaimableBalanceResultCode,
4133        TypeVariant::ClaimClaimableBalanceResult,
4134        TypeVariant::BeginSponsoringFutureReservesResultCode,
4135        TypeVariant::BeginSponsoringFutureReservesResult,
4136        TypeVariant::EndSponsoringFutureReservesResultCode,
4137        TypeVariant::EndSponsoringFutureReservesResult,
4138        TypeVariant::RevokeSponsorshipResultCode,
4139        TypeVariant::RevokeSponsorshipResult,
4140        TypeVariant::ClawbackResultCode,
4141        TypeVariant::ClawbackResult,
4142        TypeVariant::ClawbackClaimableBalanceResultCode,
4143        TypeVariant::ClawbackClaimableBalanceResult,
4144        TypeVariant::SetTrustLineFlagsResultCode,
4145        TypeVariant::SetTrustLineFlagsResult,
4146        TypeVariant::LiquidityPoolDepositResultCode,
4147        TypeVariant::LiquidityPoolDepositResult,
4148        TypeVariant::LiquidityPoolWithdrawResultCode,
4149        TypeVariant::LiquidityPoolWithdrawResult,
4150        TypeVariant::InvokeHostFunctionResultCode,
4151        TypeVariant::InvokeHostFunctionResult,
4152        TypeVariant::ExtendFootprintTtlResultCode,
4153        TypeVariant::ExtendFootprintTtlResult,
4154        TypeVariant::RestoreFootprintResultCode,
4155        TypeVariant::RestoreFootprintResult,
4156        TypeVariant::OperationResultCode,
4157        TypeVariant::OperationResult,
4158        TypeVariant::OperationResultTr,
4159        TypeVariant::TransactionResultCode,
4160        TypeVariant::InnerTransactionResult,
4161        TypeVariant::InnerTransactionResultResult,
4162        TypeVariant::InnerTransactionResultExt,
4163        TypeVariant::InnerTransactionResultPair,
4164        TypeVariant::TransactionResult,
4165        TypeVariant::TransactionResultResult,
4166        TypeVariant::TransactionResultExt,
4167        TypeVariant::Hash,
4168        TypeVariant::Uint256,
4169        TypeVariant::Uint32,
4170        TypeVariant::Int32,
4171        TypeVariant::Uint64,
4172        TypeVariant::Int64,
4173        TypeVariant::TimePoint,
4174        TypeVariant::Duration,
4175        TypeVariant::ExtensionPoint,
4176        TypeVariant::CryptoKeyType,
4177        TypeVariant::PublicKeyType,
4178        TypeVariant::SignerKeyType,
4179        TypeVariant::PublicKey,
4180        TypeVariant::SignerKey,
4181        TypeVariant::SignerKeyEd25519SignedPayload,
4182        TypeVariant::Signature,
4183        TypeVariant::SignatureHint,
4184        TypeVariant::NodeId,
4185        TypeVariant::AccountId,
4186        TypeVariant::ContractId,
4187        TypeVariant::Curve25519Secret,
4188        TypeVariant::Curve25519Public,
4189        TypeVariant::HmacSha256Key,
4190        TypeVariant::HmacSha256Mac,
4191        TypeVariant::ShortHashSeed,
4192        TypeVariant::BinaryFuseFilterType,
4193        TypeVariant::SerializedBinaryFuseFilter,
4194        TypeVariant::PoolId,
4195        TypeVariant::ClaimableBalanceIdType,
4196        TypeVariant::ClaimableBalanceId,
4197        #[cfg(feature = "test_feature")]
4198        TypeVariant::TestNextType,
4199    ];
4200    pub const VARIANTS: [TypeVariant; Self::_VARIANTS.len()] = {
4201        let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
4202        let mut i = 1;
4203        while i < Self::_VARIANTS.len() {
4204            arr[i] = Self::_VARIANTS[i];
4205            i += 1;
4206        }
4207        arr
4208    };
4209    const _VARIANTS_STR: &[&str] = &[
4210        "Value",
4211        "ScpBallot",
4212        "ScpStatementType",
4213        "ScpNomination",
4214        "ScpStatement",
4215        "ScpStatementPledges",
4216        "ScpStatementPrepare",
4217        "ScpStatementConfirm",
4218        "ScpStatementExternalize",
4219        "ScpEnvelope",
4220        "ScpQuorumSet",
4221        "EncodedLedgerKey",
4222        "ConfigSettingContractExecutionLanesV0",
4223        "ConfigSettingContractComputeV0",
4224        "ConfigSettingContractParallelComputeV0",
4225        "ConfigSettingContractLedgerCostV0",
4226        "ConfigSettingContractLedgerCostExtV0",
4227        "ConfigSettingContractHistoricalDataV0",
4228        "ConfigSettingContractEventsV0",
4229        "ConfigSettingContractBandwidthV0",
4230        "ContractCostType",
4231        "ContractCostParamEntry",
4232        "StateArchivalSettings",
4233        "EvictionIterator",
4234        "ConfigSettingScpTiming",
4235        "FrozenLedgerKeys",
4236        "FrozenLedgerKeysDelta",
4237        "FreezeBypassTxs",
4238        "FreezeBypassTxsDelta",
4239        "ContractCostParams",
4240        "ConfigSettingId",
4241        "ConfigSettingEntry",
4242        "ScEnvMetaKind",
4243        "ScEnvMetaEntry",
4244        "ScEnvMetaEntryInterfaceVersion",
4245        "ScMetaV0",
4246        "ScMetaKind",
4247        "ScMetaEntry",
4248        "ScSpecType",
4249        "ScSpecTypeOption",
4250        "ScSpecTypeResult",
4251        "ScSpecTypeVec",
4252        "ScSpecTypeMap",
4253        "ScSpecTypeTuple",
4254        "ScSpecTypeBytesN",
4255        "ScSpecTypeUdt",
4256        "ScSpecTypeDef",
4257        "ScSpecUdtStructFieldV0",
4258        "ScSpecUdtStructV0",
4259        "ScSpecUdtUnionCaseVoidV0",
4260        "ScSpecUdtUnionCaseTupleV0",
4261        "ScSpecUdtUnionCaseV0Kind",
4262        "ScSpecUdtUnionCaseV0",
4263        "ScSpecUdtUnionV0",
4264        "ScSpecUdtEnumCaseV0",
4265        "ScSpecUdtEnumV0",
4266        "ScSpecUdtErrorEnumCaseV0",
4267        "ScSpecUdtErrorEnumV0",
4268        "ScSpecFunctionInputV0",
4269        "ScSpecFunctionV0",
4270        "ScSpecEventParamLocationV0",
4271        "ScSpecEventParamV0",
4272        "ScSpecEventDataFormat",
4273        "ScSpecEventV0",
4274        "ScSpecEntryKind",
4275        "ScSpecEntry",
4276        "ScBytes",
4277        "ScString",
4278        "ScSymbol",
4279        "ScValType",
4280        "ScErrorType",
4281        "ScErrorCode",
4282        "ScError",
4283        "UInt128Parts",
4284        "Int128Parts",
4285        "UInt256Parts",
4286        "Int256Parts",
4287        "ContractExecutableType",
4288        "ScAddressType",
4289        "MuxedEd25519Account",
4290        #[cfg(feature = "cap_0084_muxed_contract")]
4291        "MuxedContract",
4292        "ScAddress",
4293        "ContractExecutableExternalRef",
4294        "ContractExecutable",
4295        "ScVec",
4296        "ScMap",
4297        "ScNonceKey",
4298        "ScContractInstance",
4299        "ScVal",
4300        "ScMapEntry",
4301        "LedgerCloseMetaBatch",
4302        "StoredTransactionSet",
4303        "StoredDebugTransactionSet",
4304        "PersistedScpStateV0",
4305        "PersistedScpStateV1",
4306        "PersistedScpState",
4307        "Thresholds",
4308        "String32",
4309        "String64",
4310        "SequenceNumber",
4311        "DataValue",
4312        "AssetCode4",
4313        "AssetCode12",
4314        "AssetType",
4315        "AssetCode",
4316        "AlphaNum4",
4317        "AlphaNum12",
4318        "Asset",
4319        "Price",
4320        "Liabilities",
4321        "ThresholdIndexes",
4322        "LedgerEntryType",
4323        "Signer",
4324        "AccountFlags",
4325        "SponsorshipDescriptor",
4326        "AccountEntryExtensionV3",
4327        "AccountEntryExtensionV2",
4328        "AccountEntryExtensionV2Ext",
4329        "AccountEntryExtensionV1",
4330        "AccountEntryExtensionV1Ext",
4331        "AccountEntry",
4332        "AccountEntryExt",
4333        "TrustLineFlags",
4334        "LiquidityPoolType",
4335        "TrustLineAsset",
4336        "TrustLineEntryExtensionV2",
4337        "TrustLineEntryExtensionV2Ext",
4338        "TrustLineEntry",
4339        "TrustLineEntryExt",
4340        "TrustLineEntryV1",
4341        "TrustLineEntryV1Ext",
4342        "OfferEntryFlags",
4343        "OfferEntry",
4344        "OfferEntryExt",
4345        "DataEntry",
4346        "DataEntryExt",
4347        "ClaimPredicateType",
4348        "ClaimPredicate",
4349        "ClaimantType",
4350        "Claimant",
4351        "ClaimantV0",
4352        "ClaimableBalanceFlags",
4353        "ClaimableBalanceEntryExtensionV1",
4354        "ClaimableBalanceEntryExtensionV1Ext",
4355        "ClaimableBalanceEntry",
4356        "ClaimableBalanceEntryExt",
4357        "LiquidityPoolConstantProductParameters",
4358        "LiquidityPoolEntry",
4359        "LiquidityPoolEntryBody",
4360        "LiquidityPoolEntryConstantProduct",
4361        "ContractDataDurability",
4362        "ContractDataEntry",
4363        "ContractCodeCostInputs",
4364        "ContractCodeEntry",
4365        "ContractCodeEntryExt",
4366        "ContractCodeEntryV1",
4367        "TtlEntry",
4368        "LedgerEntryExtensionV1",
4369        "LedgerEntryExtensionV1Ext",
4370        "LedgerEntry",
4371        "LedgerEntryData",
4372        "LedgerEntryExt",
4373        "LedgerKey",
4374        "LedgerKeyAccount",
4375        "LedgerKeyTrustLine",
4376        "LedgerKeyOffer",
4377        "LedgerKeyData",
4378        "LedgerKeyClaimableBalance",
4379        "LedgerKeyLiquidityPool",
4380        "LedgerKeyContractData",
4381        "LedgerKeyContractCode",
4382        "LedgerKeyConfigSetting",
4383        "LedgerKeyTtl",
4384        "EnvelopeType",
4385        "BucketListType",
4386        "BucketEntryType",
4387        "HotArchiveBucketEntryType",
4388        "BucketMetadata",
4389        "BucketMetadataExt",
4390        "BucketEntry",
4391        "HotArchiveBucketEntry",
4392        "UpgradeType",
4393        "StellarValueType",
4394        "LedgerCloseValueSignature",
4395        "StellarValue",
4396        "StellarValueExt",
4397        "StellarValueProposedValue",
4398        "LedgerHeaderFlags",
4399        "LedgerHeaderExtensionV1",
4400        "LedgerHeaderExtensionV1Ext",
4401        "LedgerHeader",
4402        "LedgerHeaderExt",
4403        "LedgerUpgradeType",
4404        "ConfigUpgradeSetKey",
4405        "LedgerUpgrade",
4406        "ConfigUpgradeSet",
4407        "TxSetComponentType",
4408        "DependentTxCluster",
4409        "ParallelTxExecutionStage",
4410        "ParallelTxsComponent",
4411        "TxSetComponent",
4412        "TxSetComponentTxsMaybeDiscountedFee",
4413        "TransactionPhase",
4414        "TransactionSet",
4415        "TransactionSetV1",
4416        "GeneralizedTransactionSet",
4417        "TransactionResultPair",
4418        "TransactionResultSet",
4419        "TransactionHistoryEntry",
4420        "TransactionHistoryEntryExt",
4421        "TransactionHistoryResultEntry",
4422        "TransactionHistoryResultEntryExt",
4423        "LedgerHeaderHistoryEntry",
4424        "LedgerHeaderHistoryEntryExt",
4425        "LedgerScpMessages",
4426        "ScpHistoryEntryV0",
4427        "ScpHistoryEntry",
4428        "LedgerEntryChangeType",
4429        "LedgerEntryChange",
4430        "LedgerEntryChanges",
4431        "OperationMeta",
4432        "TransactionMetaV1",
4433        "TransactionMetaV2",
4434        "ContractEventType",
4435        "ContractEvent",
4436        "ContractEventBody",
4437        "ContractEventV0",
4438        "DiagnosticEvent",
4439        "SorobanTransactionMetaExtV1",
4440        "SorobanTransactionMetaExt",
4441        "SorobanTransactionMeta",
4442        "TransactionMetaV3",
4443        "OperationMetaV2",
4444        "SorobanTransactionMetaV2",
4445        "TransactionEventStage",
4446        "TransactionEvent",
4447        "TransactionMetaV4",
4448        "InvokeHostFunctionSuccessPreImage",
4449        "TransactionMeta",
4450        "TransactionResultMeta",
4451        "TransactionResultMetaV1",
4452        "UpgradeEntryMeta",
4453        "LedgerCloseMetaV0",
4454        "LedgerCloseMetaExtV1",
4455        "LedgerCloseMetaExt",
4456        "LedgerCloseMetaV1",
4457        "LedgerCloseMetaV2",
4458        "LedgerCloseMeta",
4459        "ErrorCode",
4460        "SError",
4461        "SendMore",
4462        "SendMoreExtended",
4463        "AuthCert",
4464        "Hello",
4465        "Auth",
4466        "IpAddrType",
4467        "PeerAddress",
4468        "PeerAddressIp",
4469        "MessageType",
4470        "DontHave",
4471        "SurveyMessageCommandType",
4472        "SurveyMessageResponseType",
4473        "TimeSlicedSurveyStartCollectingMessage",
4474        "SignedTimeSlicedSurveyStartCollectingMessage",
4475        "TimeSlicedSurveyStopCollectingMessage",
4476        "SignedTimeSlicedSurveyStopCollectingMessage",
4477        "SurveyRequestMessage",
4478        "TimeSlicedSurveyRequestMessage",
4479        "SignedTimeSlicedSurveyRequestMessage",
4480        "EncryptedBody",
4481        "SurveyResponseMessage",
4482        "TimeSlicedSurveyResponseMessage",
4483        "SignedTimeSlicedSurveyResponseMessage",
4484        "PeerStats",
4485        "TimeSlicedNodeData",
4486        "TimeSlicedPeerData",
4487        "TimeSlicedPeerDataList",
4488        "TopologyResponseBodyV2",
4489        "SurveyResponseBody",
4490        "TxAdvertVector",
4491        "FloodAdvert",
4492        "TxDemandVector",
4493        "FloodDemand",
4494        "StellarMessage",
4495        "AuthenticatedMessage",
4496        "AuthenticatedMessageV0",
4497        "LiquidityPoolParameters",
4498        "MuxedAccount",
4499        "MuxedAccountMed25519",
4500        "DecoratedSignature",
4501        "OperationType",
4502        "CreateAccountOp",
4503        "PaymentOp",
4504        "PathPaymentStrictReceiveOp",
4505        "PathPaymentStrictSendOp",
4506        "ManageSellOfferOp",
4507        "ManageBuyOfferOp",
4508        "CreatePassiveSellOfferOp",
4509        "SetOptionsOp",
4510        "ChangeTrustAsset",
4511        "ChangeTrustOp",
4512        "AllowTrustOp",
4513        "ManageDataOp",
4514        "BumpSequenceOp",
4515        "CreateClaimableBalanceOp",
4516        "ClaimClaimableBalanceOp",
4517        "BeginSponsoringFutureReservesOp",
4518        "RevokeSponsorshipType",
4519        "RevokeSponsorshipOp",
4520        "RevokeSponsorshipOpSigner",
4521        "ClawbackOp",
4522        "ClawbackClaimableBalanceOp",
4523        "SetTrustLineFlagsOp",
4524        "LiquidityPoolDepositOp",
4525        "LiquidityPoolWithdrawOp",
4526        "HostFunctionType",
4527        "ContractIdPreimageType",
4528        "ContractIdPreimage",
4529        "ContractIdPreimageFromAddress",
4530        "CreateContractArgs",
4531        "CreateContractArgsV2",
4532        "InvokeContractArgs",
4533        "HostFunction",
4534        "SorobanAuthorizedFunctionType",
4535        "SorobanAuthorizedFunction",
4536        "SorobanAuthorizedInvocation",
4537        "SorobanAddressCredentials",
4538        "SorobanDelegateSignature",
4539        "SorobanAddressCredentialsWithDelegates",
4540        "SorobanCredentialsType",
4541        "SorobanCredentials",
4542        "SorobanAuthorizationEntry",
4543        "SorobanAuthorizationEntries",
4544        "InvokeHostFunctionOp",
4545        "ExtendFootprintTtlOp",
4546        "RestoreFootprintOp",
4547        "Operation",
4548        "OperationBody",
4549        "HashIdPreimage",
4550        "HashIdPreimageOperationId",
4551        "HashIdPreimageRevokeId",
4552        "HashIdPreimageContractId",
4553        "HashIdPreimageSorobanAuthorization",
4554        "HashIdPreimageSorobanAuthorizationWithAddress",
4555        "MemoType",
4556        "Memo",
4557        "TimeBounds",
4558        "LedgerBounds",
4559        "PreconditionsV2",
4560        "PreconditionType",
4561        "Preconditions",
4562        "LedgerFootprint",
4563        "SorobanResources",
4564        "SorobanResourcesExtV0",
4565        "SorobanTransactionData",
4566        "SorobanTransactionDataExt",
4567        "TransactionV0",
4568        "TransactionV0Ext",
4569        "TransactionV0Envelope",
4570        "Transaction",
4571        "TransactionExt",
4572        "TransactionV1Envelope",
4573        "FeeBumpTransaction",
4574        "FeeBumpTransactionInnerTx",
4575        "FeeBumpTransactionExt",
4576        "FeeBumpTransactionEnvelope",
4577        "TransactionEnvelope",
4578        "TransactionSignaturePayload",
4579        "TransactionSignaturePayloadTaggedTransaction",
4580        "ClaimAtomType",
4581        "ClaimOfferAtomV0",
4582        "ClaimOfferAtom",
4583        "ClaimLiquidityAtom",
4584        "ClaimAtom",
4585        "CreateAccountResultCode",
4586        "CreateAccountResult",
4587        "PaymentResultCode",
4588        "PaymentResult",
4589        "PathPaymentStrictReceiveResultCode",
4590        "SimplePaymentResult",
4591        "PathPaymentStrictReceiveResult",
4592        "PathPaymentStrictReceiveResultSuccess",
4593        "PathPaymentStrictSendResultCode",
4594        "PathPaymentStrictSendResult",
4595        "PathPaymentStrictSendResultSuccess",
4596        "ManageSellOfferResultCode",
4597        "ManageOfferEffect",
4598        "ManageOfferSuccessResult",
4599        "ManageOfferSuccessResultOffer",
4600        "ManageSellOfferResult",
4601        "ManageBuyOfferResultCode",
4602        "ManageBuyOfferResult",
4603        "SetOptionsResultCode",
4604        "SetOptionsResult",
4605        "ChangeTrustResultCode",
4606        "ChangeTrustResult",
4607        "AllowTrustResultCode",
4608        "AllowTrustResult",
4609        "AccountMergeResultCode",
4610        "AccountMergeResult",
4611        "InflationResultCode",
4612        "InflationPayout",
4613        "InflationResult",
4614        "ManageDataResultCode",
4615        "ManageDataResult",
4616        "BumpSequenceResultCode",
4617        "BumpSequenceResult",
4618        "CreateClaimableBalanceResultCode",
4619        "CreateClaimableBalanceResult",
4620        "ClaimClaimableBalanceResultCode",
4621        "ClaimClaimableBalanceResult",
4622        "BeginSponsoringFutureReservesResultCode",
4623        "BeginSponsoringFutureReservesResult",
4624        "EndSponsoringFutureReservesResultCode",
4625        "EndSponsoringFutureReservesResult",
4626        "RevokeSponsorshipResultCode",
4627        "RevokeSponsorshipResult",
4628        "ClawbackResultCode",
4629        "ClawbackResult",
4630        "ClawbackClaimableBalanceResultCode",
4631        "ClawbackClaimableBalanceResult",
4632        "SetTrustLineFlagsResultCode",
4633        "SetTrustLineFlagsResult",
4634        "LiquidityPoolDepositResultCode",
4635        "LiquidityPoolDepositResult",
4636        "LiquidityPoolWithdrawResultCode",
4637        "LiquidityPoolWithdrawResult",
4638        "InvokeHostFunctionResultCode",
4639        "InvokeHostFunctionResult",
4640        "ExtendFootprintTtlResultCode",
4641        "ExtendFootprintTtlResult",
4642        "RestoreFootprintResultCode",
4643        "RestoreFootprintResult",
4644        "OperationResultCode",
4645        "OperationResult",
4646        "OperationResultTr",
4647        "TransactionResultCode",
4648        "InnerTransactionResult",
4649        "InnerTransactionResultResult",
4650        "InnerTransactionResultExt",
4651        "InnerTransactionResultPair",
4652        "TransactionResult",
4653        "TransactionResultResult",
4654        "TransactionResultExt",
4655        "Hash",
4656        "Uint256",
4657        "Uint32",
4658        "Int32",
4659        "Uint64",
4660        "Int64",
4661        "TimePoint",
4662        "Duration",
4663        "ExtensionPoint",
4664        "CryptoKeyType",
4665        "PublicKeyType",
4666        "SignerKeyType",
4667        "PublicKey",
4668        "SignerKey",
4669        "SignerKeyEd25519SignedPayload",
4670        "Signature",
4671        "SignatureHint",
4672        "NodeId",
4673        "AccountId",
4674        "ContractId",
4675        "Curve25519Secret",
4676        "Curve25519Public",
4677        "HmacSha256Key",
4678        "HmacSha256Mac",
4679        "ShortHashSeed",
4680        "BinaryFuseFilterType",
4681        "SerializedBinaryFuseFilter",
4682        "PoolId",
4683        "ClaimableBalanceIdType",
4684        "ClaimableBalanceId",
4685        #[cfg(feature = "test_feature")]
4686        "TestNextType",
4687    ];
4688    pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
4689        let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
4690        let mut i = 1;
4691        while i < Self::_VARIANTS_STR.len() {
4692            arr[i] = Self::_VARIANTS_STR[i];
4693            i += 1;
4694        }
4695        arr
4696    };
4697
4698    #[cfg(feature = "std")]
4699    #[allow(clippy::too_many_lines)]
4700    pub fn read_xdr<R: Read>(v: TypeVariant, r: &mut Limited<R>) -> Result<Self, Error> {
4701        match v {
4702            TypeVariant::Value => {
4703                r.with_limited_depth(|r| Ok(Self::Value(Box::new(Value::read_xdr(r)?))))
4704            }
4705            TypeVariant::ScpBallot => {
4706                r.with_limited_depth(|r| Ok(Self::ScpBallot(Box::new(ScpBallot::read_xdr(r)?))))
4707            }
4708            TypeVariant::ScpStatementType => r.with_limited_depth(|r| {
4709                Ok(Self::ScpStatementType(Box::new(
4710                    ScpStatementType::read_xdr(r)?,
4711                )))
4712            }),
4713            TypeVariant::ScpNomination => r.with_limited_depth(|r| {
4714                Ok(Self::ScpNomination(Box::new(ScpNomination::read_xdr(r)?)))
4715            }),
4716            TypeVariant::ScpStatement => r.with_limited_depth(|r| {
4717                Ok(Self::ScpStatement(Box::new(ScpStatement::read_xdr(r)?)))
4718            }),
4719            TypeVariant::ScpStatementPledges => r.with_limited_depth(|r| {
4720                Ok(Self::ScpStatementPledges(Box::new(
4721                    ScpStatementPledges::read_xdr(r)?,
4722                )))
4723            }),
4724            TypeVariant::ScpStatementPrepare => r.with_limited_depth(|r| {
4725                Ok(Self::ScpStatementPrepare(Box::new(
4726                    ScpStatementPrepare::read_xdr(r)?,
4727                )))
4728            }),
4729            TypeVariant::ScpStatementConfirm => r.with_limited_depth(|r| {
4730                Ok(Self::ScpStatementConfirm(Box::new(
4731                    ScpStatementConfirm::read_xdr(r)?,
4732                )))
4733            }),
4734            TypeVariant::ScpStatementExternalize => r.with_limited_depth(|r| {
4735                Ok(Self::ScpStatementExternalize(Box::new(
4736                    ScpStatementExternalize::read_xdr(r)?,
4737                )))
4738            }),
4739            TypeVariant::ScpEnvelope => {
4740                r.with_limited_depth(|r| Ok(Self::ScpEnvelope(Box::new(ScpEnvelope::read_xdr(r)?))))
4741            }
4742            TypeVariant::ScpQuorumSet => r.with_limited_depth(|r| {
4743                Ok(Self::ScpQuorumSet(Box::new(ScpQuorumSet::read_xdr(r)?)))
4744            }),
4745            TypeVariant::EncodedLedgerKey => r.with_limited_depth(|r| {
4746                Ok(Self::EncodedLedgerKey(Box::new(
4747                    EncodedLedgerKey::read_xdr(r)?,
4748                )))
4749            }),
4750            TypeVariant::ConfigSettingContractExecutionLanesV0 => r.with_limited_depth(|r| {
4751                Ok(Self::ConfigSettingContractExecutionLanesV0(Box::new(
4752                    ConfigSettingContractExecutionLanesV0::read_xdr(r)?,
4753                )))
4754            }),
4755            TypeVariant::ConfigSettingContractComputeV0 => r.with_limited_depth(|r| {
4756                Ok(Self::ConfigSettingContractComputeV0(Box::new(
4757                    ConfigSettingContractComputeV0::read_xdr(r)?,
4758                )))
4759            }),
4760            TypeVariant::ConfigSettingContractParallelComputeV0 => r.with_limited_depth(|r| {
4761                Ok(Self::ConfigSettingContractParallelComputeV0(Box::new(
4762                    ConfigSettingContractParallelComputeV0::read_xdr(r)?,
4763                )))
4764            }),
4765            TypeVariant::ConfigSettingContractLedgerCostV0 => r.with_limited_depth(|r| {
4766                Ok(Self::ConfigSettingContractLedgerCostV0(Box::new(
4767                    ConfigSettingContractLedgerCostV0::read_xdr(r)?,
4768                )))
4769            }),
4770            TypeVariant::ConfigSettingContractLedgerCostExtV0 => r.with_limited_depth(|r| {
4771                Ok(Self::ConfigSettingContractLedgerCostExtV0(Box::new(
4772                    ConfigSettingContractLedgerCostExtV0::read_xdr(r)?,
4773                )))
4774            }),
4775            TypeVariant::ConfigSettingContractHistoricalDataV0 => r.with_limited_depth(|r| {
4776                Ok(Self::ConfigSettingContractHistoricalDataV0(Box::new(
4777                    ConfigSettingContractHistoricalDataV0::read_xdr(r)?,
4778                )))
4779            }),
4780            TypeVariant::ConfigSettingContractEventsV0 => r.with_limited_depth(|r| {
4781                Ok(Self::ConfigSettingContractEventsV0(Box::new(
4782                    ConfigSettingContractEventsV0::read_xdr(r)?,
4783                )))
4784            }),
4785            TypeVariant::ConfigSettingContractBandwidthV0 => r.with_limited_depth(|r| {
4786                Ok(Self::ConfigSettingContractBandwidthV0(Box::new(
4787                    ConfigSettingContractBandwidthV0::read_xdr(r)?,
4788                )))
4789            }),
4790            TypeVariant::ContractCostType => r.with_limited_depth(|r| {
4791                Ok(Self::ContractCostType(Box::new(
4792                    ContractCostType::read_xdr(r)?,
4793                )))
4794            }),
4795            TypeVariant::ContractCostParamEntry => r.with_limited_depth(|r| {
4796                Ok(Self::ContractCostParamEntry(Box::new(
4797                    ContractCostParamEntry::read_xdr(r)?,
4798                )))
4799            }),
4800            TypeVariant::StateArchivalSettings => r.with_limited_depth(|r| {
4801                Ok(Self::StateArchivalSettings(Box::new(
4802                    StateArchivalSettings::read_xdr(r)?,
4803                )))
4804            }),
4805            TypeVariant::EvictionIterator => r.with_limited_depth(|r| {
4806                Ok(Self::EvictionIterator(Box::new(
4807                    EvictionIterator::read_xdr(r)?,
4808                )))
4809            }),
4810            TypeVariant::ConfigSettingScpTiming => r.with_limited_depth(|r| {
4811                Ok(Self::ConfigSettingScpTiming(Box::new(
4812                    ConfigSettingScpTiming::read_xdr(r)?,
4813                )))
4814            }),
4815            TypeVariant::FrozenLedgerKeys => r.with_limited_depth(|r| {
4816                Ok(Self::FrozenLedgerKeys(Box::new(
4817                    FrozenLedgerKeys::read_xdr(r)?,
4818                )))
4819            }),
4820            TypeVariant::FrozenLedgerKeysDelta => r.with_limited_depth(|r| {
4821                Ok(Self::FrozenLedgerKeysDelta(Box::new(
4822                    FrozenLedgerKeysDelta::read_xdr(r)?,
4823                )))
4824            }),
4825            TypeVariant::FreezeBypassTxs => r.with_limited_depth(|r| {
4826                Ok(Self::FreezeBypassTxs(Box::new(FreezeBypassTxs::read_xdr(
4827                    r,
4828                )?)))
4829            }),
4830            TypeVariant::FreezeBypassTxsDelta => r.with_limited_depth(|r| {
4831                Ok(Self::FreezeBypassTxsDelta(Box::new(
4832                    FreezeBypassTxsDelta::read_xdr(r)?,
4833                )))
4834            }),
4835            TypeVariant::ContractCostParams => r.with_limited_depth(|r| {
4836                Ok(Self::ContractCostParams(Box::new(
4837                    ContractCostParams::read_xdr(r)?,
4838                )))
4839            }),
4840            TypeVariant::ConfigSettingId => r.with_limited_depth(|r| {
4841                Ok(Self::ConfigSettingId(Box::new(ConfigSettingId::read_xdr(
4842                    r,
4843                )?)))
4844            }),
4845            TypeVariant::ConfigSettingEntry => r.with_limited_depth(|r| {
4846                Ok(Self::ConfigSettingEntry(Box::new(
4847                    ConfigSettingEntry::read_xdr(r)?,
4848                )))
4849            }),
4850            TypeVariant::ScEnvMetaKind => r.with_limited_depth(|r| {
4851                Ok(Self::ScEnvMetaKind(Box::new(ScEnvMetaKind::read_xdr(r)?)))
4852            }),
4853            TypeVariant::ScEnvMetaEntry => r.with_limited_depth(|r| {
4854                Ok(Self::ScEnvMetaEntry(Box::new(ScEnvMetaEntry::read_xdr(r)?)))
4855            }),
4856            TypeVariant::ScEnvMetaEntryInterfaceVersion => r.with_limited_depth(|r| {
4857                Ok(Self::ScEnvMetaEntryInterfaceVersion(Box::new(
4858                    ScEnvMetaEntryInterfaceVersion::read_xdr(r)?,
4859                )))
4860            }),
4861            TypeVariant::ScMetaV0 => {
4862                r.with_limited_depth(|r| Ok(Self::ScMetaV0(Box::new(ScMetaV0::read_xdr(r)?))))
4863            }
4864            TypeVariant::ScMetaKind => {
4865                r.with_limited_depth(|r| Ok(Self::ScMetaKind(Box::new(ScMetaKind::read_xdr(r)?))))
4866            }
4867            TypeVariant::ScMetaEntry => {
4868                r.with_limited_depth(|r| Ok(Self::ScMetaEntry(Box::new(ScMetaEntry::read_xdr(r)?))))
4869            }
4870            TypeVariant::ScSpecType => {
4871                r.with_limited_depth(|r| Ok(Self::ScSpecType(Box::new(ScSpecType::read_xdr(r)?))))
4872            }
4873            TypeVariant::ScSpecTypeOption => r.with_limited_depth(|r| {
4874                Ok(Self::ScSpecTypeOption(Box::new(
4875                    ScSpecTypeOption::read_xdr(r)?,
4876                )))
4877            }),
4878            TypeVariant::ScSpecTypeResult => r.with_limited_depth(|r| {
4879                Ok(Self::ScSpecTypeResult(Box::new(
4880                    ScSpecTypeResult::read_xdr(r)?,
4881                )))
4882            }),
4883            TypeVariant::ScSpecTypeVec => r.with_limited_depth(|r| {
4884                Ok(Self::ScSpecTypeVec(Box::new(ScSpecTypeVec::read_xdr(r)?)))
4885            }),
4886            TypeVariant::ScSpecTypeMap => r.with_limited_depth(|r| {
4887                Ok(Self::ScSpecTypeMap(Box::new(ScSpecTypeMap::read_xdr(r)?)))
4888            }),
4889            TypeVariant::ScSpecTypeTuple => r.with_limited_depth(|r| {
4890                Ok(Self::ScSpecTypeTuple(Box::new(ScSpecTypeTuple::read_xdr(
4891                    r,
4892                )?)))
4893            }),
4894            TypeVariant::ScSpecTypeBytesN => r.with_limited_depth(|r| {
4895                Ok(Self::ScSpecTypeBytesN(Box::new(
4896                    ScSpecTypeBytesN::read_xdr(r)?,
4897                )))
4898            }),
4899            TypeVariant::ScSpecTypeUdt => r.with_limited_depth(|r| {
4900                Ok(Self::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::read_xdr(r)?)))
4901            }),
4902            TypeVariant::ScSpecTypeDef => r.with_limited_depth(|r| {
4903                Ok(Self::ScSpecTypeDef(Box::new(ScSpecTypeDef::read_xdr(r)?)))
4904            }),
4905            TypeVariant::ScSpecUdtStructFieldV0 => r.with_limited_depth(|r| {
4906                Ok(Self::ScSpecUdtStructFieldV0(Box::new(
4907                    ScSpecUdtStructFieldV0::read_xdr(r)?,
4908                )))
4909            }),
4910            TypeVariant::ScSpecUdtStructV0 => r.with_limited_depth(|r| {
4911                Ok(Self::ScSpecUdtStructV0(Box::new(
4912                    ScSpecUdtStructV0::read_xdr(r)?,
4913                )))
4914            }),
4915            TypeVariant::ScSpecUdtUnionCaseVoidV0 => r.with_limited_depth(|r| {
4916                Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
4917                    ScSpecUdtUnionCaseVoidV0::read_xdr(r)?,
4918                )))
4919            }),
4920            TypeVariant::ScSpecUdtUnionCaseTupleV0 => r.with_limited_depth(|r| {
4921                Ok(Self::ScSpecUdtUnionCaseTupleV0(Box::new(
4922                    ScSpecUdtUnionCaseTupleV0::read_xdr(r)?,
4923                )))
4924            }),
4925            TypeVariant::ScSpecUdtUnionCaseV0Kind => r.with_limited_depth(|r| {
4926                Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
4927                    ScSpecUdtUnionCaseV0Kind::read_xdr(r)?,
4928                )))
4929            }),
4930            TypeVariant::ScSpecUdtUnionCaseV0 => r.with_limited_depth(|r| {
4931                Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
4932                    ScSpecUdtUnionCaseV0::read_xdr(r)?,
4933                )))
4934            }),
4935            TypeVariant::ScSpecUdtUnionV0 => r.with_limited_depth(|r| {
4936                Ok(Self::ScSpecUdtUnionV0(Box::new(
4937                    ScSpecUdtUnionV0::read_xdr(r)?,
4938                )))
4939            }),
4940            TypeVariant::ScSpecUdtEnumCaseV0 => r.with_limited_depth(|r| {
4941                Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
4942                    ScSpecUdtEnumCaseV0::read_xdr(r)?,
4943                )))
4944            }),
4945            TypeVariant::ScSpecUdtEnumV0 => r.with_limited_depth(|r| {
4946                Ok(Self::ScSpecUdtEnumV0(Box::new(ScSpecUdtEnumV0::read_xdr(
4947                    r,
4948                )?)))
4949            }),
4950            TypeVariant::ScSpecUdtErrorEnumCaseV0 => r.with_limited_depth(|r| {
4951                Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
4952                    ScSpecUdtErrorEnumCaseV0::read_xdr(r)?,
4953                )))
4954            }),
4955            TypeVariant::ScSpecUdtErrorEnumV0 => r.with_limited_depth(|r| {
4956                Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
4957                    ScSpecUdtErrorEnumV0::read_xdr(r)?,
4958                )))
4959            }),
4960            TypeVariant::ScSpecFunctionInputV0 => r.with_limited_depth(|r| {
4961                Ok(Self::ScSpecFunctionInputV0(Box::new(
4962                    ScSpecFunctionInputV0::read_xdr(r)?,
4963                )))
4964            }),
4965            TypeVariant::ScSpecFunctionV0 => r.with_limited_depth(|r| {
4966                Ok(Self::ScSpecFunctionV0(Box::new(
4967                    ScSpecFunctionV0::read_xdr(r)?,
4968                )))
4969            }),
4970            TypeVariant::ScSpecEventParamLocationV0 => r.with_limited_depth(|r| {
4971                Ok(Self::ScSpecEventParamLocationV0(Box::new(
4972                    ScSpecEventParamLocationV0::read_xdr(r)?,
4973                )))
4974            }),
4975            TypeVariant::ScSpecEventParamV0 => r.with_limited_depth(|r| {
4976                Ok(Self::ScSpecEventParamV0(Box::new(
4977                    ScSpecEventParamV0::read_xdr(r)?,
4978                )))
4979            }),
4980            TypeVariant::ScSpecEventDataFormat => r.with_limited_depth(|r| {
4981                Ok(Self::ScSpecEventDataFormat(Box::new(
4982                    ScSpecEventDataFormat::read_xdr(r)?,
4983                )))
4984            }),
4985            TypeVariant::ScSpecEventV0 => r.with_limited_depth(|r| {
4986                Ok(Self::ScSpecEventV0(Box::new(ScSpecEventV0::read_xdr(r)?)))
4987            }),
4988            TypeVariant::ScSpecEntryKind => r.with_limited_depth(|r| {
4989                Ok(Self::ScSpecEntryKind(Box::new(ScSpecEntryKind::read_xdr(
4990                    r,
4991                )?)))
4992            }),
4993            TypeVariant::ScSpecEntry => {
4994                r.with_limited_depth(|r| Ok(Self::ScSpecEntry(Box::new(ScSpecEntry::read_xdr(r)?))))
4995            }
4996            TypeVariant::ScBytes => {
4997                r.with_limited_depth(|r| Ok(Self::ScBytes(Box::new(ScBytes::read_xdr(r)?))))
4998            }
4999            TypeVariant::ScString => {
5000                r.with_limited_depth(|r| Ok(Self::ScString(Box::new(ScString::read_xdr(r)?))))
5001            }
5002            TypeVariant::ScSymbol => {
5003                r.with_limited_depth(|r| Ok(Self::ScSymbol(Box::new(ScSymbol::read_xdr(r)?))))
5004            }
5005            TypeVariant::ScValType => {
5006                r.with_limited_depth(|r| Ok(Self::ScValType(Box::new(ScValType::read_xdr(r)?))))
5007            }
5008            TypeVariant::ScErrorType => {
5009                r.with_limited_depth(|r| Ok(Self::ScErrorType(Box::new(ScErrorType::read_xdr(r)?))))
5010            }
5011            TypeVariant::ScErrorCode => {
5012                r.with_limited_depth(|r| Ok(Self::ScErrorCode(Box::new(ScErrorCode::read_xdr(r)?))))
5013            }
5014            TypeVariant::ScError => {
5015                r.with_limited_depth(|r| Ok(Self::ScError(Box::new(ScError::read_xdr(r)?))))
5016            }
5017            TypeVariant::UInt128Parts => r.with_limited_depth(|r| {
5018                Ok(Self::UInt128Parts(Box::new(UInt128Parts::read_xdr(r)?)))
5019            }),
5020            TypeVariant::Int128Parts => {
5021                r.with_limited_depth(|r| Ok(Self::Int128Parts(Box::new(Int128Parts::read_xdr(r)?))))
5022            }
5023            TypeVariant::UInt256Parts => r.with_limited_depth(|r| {
5024                Ok(Self::UInt256Parts(Box::new(UInt256Parts::read_xdr(r)?)))
5025            }),
5026            TypeVariant::Int256Parts => {
5027                r.with_limited_depth(|r| Ok(Self::Int256Parts(Box::new(Int256Parts::read_xdr(r)?))))
5028            }
5029            TypeVariant::ContractExecutableType => r.with_limited_depth(|r| {
5030                Ok(Self::ContractExecutableType(Box::new(
5031                    ContractExecutableType::read_xdr(r)?,
5032                )))
5033            }),
5034            TypeVariant::ScAddressType => r.with_limited_depth(|r| {
5035                Ok(Self::ScAddressType(Box::new(ScAddressType::read_xdr(r)?)))
5036            }),
5037            TypeVariant::MuxedEd25519Account => r.with_limited_depth(|r| {
5038                Ok(Self::MuxedEd25519Account(Box::new(
5039                    MuxedEd25519Account::read_xdr(r)?,
5040                )))
5041            }),
5042            #[cfg(feature = "cap_0084_muxed_contract")]
5043            TypeVariant::MuxedContract => r.with_limited_depth(|r| {
5044                Ok(Self::MuxedContract(Box::new(MuxedContract::read_xdr(r)?)))
5045            }),
5046            TypeVariant::ScAddress => {
5047                r.with_limited_depth(|r| Ok(Self::ScAddress(Box::new(ScAddress::read_xdr(r)?))))
5048            }
5049            TypeVariant::ContractExecutableExternalRef => r.with_limited_depth(|r| {
5050                Ok(Self::ContractExecutableExternalRef(Box::new(
5051                    ContractExecutableExternalRef::read_xdr(r)?,
5052                )))
5053            }),
5054            TypeVariant::ContractExecutable => r.with_limited_depth(|r| {
5055                Ok(Self::ContractExecutable(Box::new(
5056                    ContractExecutable::read_xdr(r)?,
5057                )))
5058            }),
5059            TypeVariant::ScVec => {
5060                r.with_limited_depth(|r| Ok(Self::ScVec(Box::new(ScVec::read_xdr(r)?))))
5061            }
5062            TypeVariant::ScMap => {
5063                r.with_limited_depth(|r| Ok(Self::ScMap(Box::new(ScMap::read_xdr(r)?))))
5064            }
5065            TypeVariant::ScNonceKey => {
5066                r.with_limited_depth(|r| Ok(Self::ScNonceKey(Box::new(ScNonceKey::read_xdr(r)?))))
5067            }
5068            TypeVariant::ScContractInstance => r.with_limited_depth(|r| {
5069                Ok(Self::ScContractInstance(Box::new(
5070                    ScContractInstance::read_xdr(r)?,
5071                )))
5072            }),
5073            TypeVariant::ScVal => {
5074                r.with_limited_depth(|r| Ok(Self::ScVal(Box::new(ScVal::read_xdr(r)?))))
5075            }
5076            TypeVariant::ScMapEntry => {
5077                r.with_limited_depth(|r| Ok(Self::ScMapEntry(Box::new(ScMapEntry::read_xdr(r)?))))
5078            }
5079            TypeVariant::LedgerCloseMetaBatch => r.with_limited_depth(|r| {
5080                Ok(Self::LedgerCloseMetaBatch(Box::new(
5081                    LedgerCloseMetaBatch::read_xdr(r)?,
5082                )))
5083            }),
5084            TypeVariant::StoredTransactionSet => r.with_limited_depth(|r| {
5085                Ok(Self::StoredTransactionSet(Box::new(
5086                    StoredTransactionSet::read_xdr(r)?,
5087                )))
5088            }),
5089            TypeVariant::StoredDebugTransactionSet => r.with_limited_depth(|r| {
5090                Ok(Self::StoredDebugTransactionSet(Box::new(
5091                    StoredDebugTransactionSet::read_xdr(r)?,
5092                )))
5093            }),
5094            TypeVariant::PersistedScpStateV0 => r.with_limited_depth(|r| {
5095                Ok(Self::PersistedScpStateV0(Box::new(
5096                    PersistedScpStateV0::read_xdr(r)?,
5097                )))
5098            }),
5099            TypeVariant::PersistedScpStateV1 => r.with_limited_depth(|r| {
5100                Ok(Self::PersistedScpStateV1(Box::new(
5101                    PersistedScpStateV1::read_xdr(r)?,
5102                )))
5103            }),
5104            TypeVariant::PersistedScpState => r.with_limited_depth(|r| {
5105                Ok(Self::PersistedScpState(Box::new(
5106                    PersistedScpState::read_xdr(r)?,
5107                )))
5108            }),
5109            TypeVariant::Thresholds => {
5110                r.with_limited_depth(|r| Ok(Self::Thresholds(Box::new(Thresholds::read_xdr(r)?))))
5111            }
5112            TypeVariant::String32 => {
5113                r.with_limited_depth(|r| Ok(Self::String32(Box::new(String32::read_xdr(r)?))))
5114            }
5115            TypeVariant::String64 => {
5116                r.with_limited_depth(|r| Ok(Self::String64(Box::new(String64::read_xdr(r)?))))
5117            }
5118            TypeVariant::SequenceNumber => r.with_limited_depth(|r| {
5119                Ok(Self::SequenceNumber(Box::new(SequenceNumber::read_xdr(r)?)))
5120            }),
5121            TypeVariant::DataValue => {
5122                r.with_limited_depth(|r| Ok(Self::DataValue(Box::new(DataValue::read_xdr(r)?))))
5123            }
5124            TypeVariant::AssetCode4 => {
5125                r.with_limited_depth(|r| Ok(Self::AssetCode4(Box::new(AssetCode4::read_xdr(r)?))))
5126            }
5127            TypeVariant::AssetCode12 => {
5128                r.with_limited_depth(|r| Ok(Self::AssetCode12(Box::new(AssetCode12::read_xdr(r)?))))
5129            }
5130            TypeVariant::AssetType => {
5131                r.with_limited_depth(|r| Ok(Self::AssetType(Box::new(AssetType::read_xdr(r)?))))
5132            }
5133            TypeVariant::AssetCode => {
5134                r.with_limited_depth(|r| Ok(Self::AssetCode(Box::new(AssetCode::read_xdr(r)?))))
5135            }
5136            TypeVariant::AlphaNum4 => {
5137                r.with_limited_depth(|r| Ok(Self::AlphaNum4(Box::new(AlphaNum4::read_xdr(r)?))))
5138            }
5139            TypeVariant::AlphaNum12 => {
5140                r.with_limited_depth(|r| Ok(Self::AlphaNum12(Box::new(AlphaNum12::read_xdr(r)?))))
5141            }
5142            TypeVariant::Asset => {
5143                r.with_limited_depth(|r| Ok(Self::Asset(Box::new(Asset::read_xdr(r)?))))
5144            }
5145            TypeVariant::Price => {
5146                r.with_limited_depth(|r| Ok(Self::Price(Box::new(Price::read_xdr(r)?))))
5147            }
5148            TypeVariant::Liabilities => {
5149                r.with_limited_depth(|r| Ok(Self::Liabilities(Box::new(Liabilities::read_xdr(r)?))))
5150            }
5151            TypeVariant::ThresholdIndexes => r.with_limited_depth(|r| {
5152                Ok(Self::ThresholdIndexes(Box::new(
5153                    ThresholdIndexes::read_xdr(r)?,
5154                )))
5155            }),
5156            TypeVariant::LedgerEntryType => r.with_limited_depth(|r| {
5157                Ok(Self::LedgerEntryType(Box::new(LedgerEntryType::read_xdr(
5158                    r,
5159                )?)))
5160            }),
5161            TypeVariant::Signer => {
5162                r.with_limited_depth(|r| Ok(Self::Signer(Box::new(Signer::read_xdr(r)?))))
5163            }
5164            TypeVariant::AccountFlags => r.with_limited_depth(|r| {
5165                Ok(Self::AccountFlags(Box::new(AccountFlags::read_xdr(r)?)))
5166            }),
5167            TypeVariant::SponsorshipDescriptor => r.with_limited_depth(|r| {
5168                Ok(Self::SponsorshipDescriptor(Box::new(
5169                    SponsorshipDescriptor::read_xdr(r)?,
5170                )))
5171            }),
5172            TypeVariant::AccountEntryExtensionV3 => r.with_limited_depth(|r| {
5173                Ok(Self::AccountEntryExtensionV3(Box::new(
5174                    AccountEntryExtensionV3::read_xdr(r)?,
5175                )))
5176            }),
5177            TypeVariant::AccountEntryExtensionV2 => r.with_limited_depth(|r| {
5178                Ok(Self::AccountEntryExtensionV2(Box::new(
5179                    AccountEntryExtensionV2::read_xdr(r)?,
5180                )))
5181            }),
5182            TypeVariant::AccountEntryExtensionV2Ext => r.with_limited_depth(|r| {
5183                Ok(Self::AccountEntryExtensionV2Ext(Box::new(
5184                    AccountEntryExtensionV2Ext::read_xdr(r)?,
5185                )))
5186            }),
5187            TypeVariant::AccountEntryExtensionV1 => r.with_limited_depth(|r| {
5188                Ok(Self::AccountEntryExtensionV1(Box::new(
5189                    AccountEntryExtensionV1::read_xdr(r)?,
5190                )))
5191            }),
5192            TypeVariant::AccountEntryExtensionV1Ext => r.with_limited_depth(|r| {
5193                Ok(Self::AccountEntryExtensionV1Ext(Box::new(
5194                    AccountEntryExtensionV1Ext::read_xdr(r)?,
5195                )))
5196            }),
5197            TypeVariant::AccountEntry => r.with_limited_depth(|r| {
5198                Ok(Self::AccountEntry(Box::new(AccountEntry::read_xdr(r)?)))
5199            }),
5200            TypeVariant::AccountEntryExt => r.with_limited_depth(|r| {
5201                Ok(Self::AccountEntryExt(Box::new(AccountEntryExt::read_xdr(
5202                    r,
5203                )?)))
5204            }),
5205            TypeVariant::TrustLineFlags => r.with_limited_depth(|r| {
5206                Ok(Self::TrustLineFlags(Box::new(TrustLineFlags::read_xdr(r)?)))
5207            }),
5208            TypeVariant::LiquidityPoolType => r.with_limited_depth(|r| {
5209                Ok(Self::LiquidityPoolType(Box::new(
5210                    LiquidityPoolType::read_xdr(r)?,
5211                )))
5212            }),
5213            TypeVariant::TrustLineAsset => r.with_limited_depth(|r| {
5214                Ok(Self::TrustLineAsset(Box::new(TrustLineAsset::read_xdr(r)?)))
5215            }),
5216            TypeVariant::TrustLineEntryExtensionV2 => r.with_limited_depth(|r| {
5217                Ok(Self::TrustLineEntryExtensionV2(Box::new(
5218                    TrustLineEntryExtensionV2::read_xdr(r)?,
5219                )))
5220            }),
5221            TypeVariant::TrustLineEntryExtensionV2Ext => r.with_limited_depth(|r| {
5222                Ok(Self::TrustLineEntryExtensionV2Ext(Box::new(
5223                    TrustLineEntryExtensionV2Ext::read_xdr(r)?,
5224                )))
5225            }),
5226            TypeVariant::TrustLineEntry => r.with_limited_depth(|r| {
5227                Ok(Self::TrustLineEntry(Box::new(TrustLineEntry::read_xdr(r)?)))
5228            }),
5229            TypeVariant::TrustLineEntryExt => r.with_limited_depth(|r| {
5230                Ok(Self::TrustLineEntryExt(Box::new(
5231                    TrustLineEntryExt::read_xdr(r)?,
5232                )))
5233            }),
5234            TypeVariant::TrustLineEntryV1 => r.with_limited_depth(|r| {
5235                Ok(Self::TrustLineEntryV1(Box::new(
5236                    TrustLineEntryV1::read_xdr(r)?,
5237                )))
5238            }),
5239            TypeVariant::TrustLineEntryV1Ext => r.with_limited_depth(|r| {
5240                Ok(Self::TrustLineEntryV1Ext(Box::new(
5241                    TrustLineEntryV1Ext::read_xdr(r)?,
5242                )))
5243            }),
5244            TypeVariant::OfferEntryFlags => r.with_limited_depth(|r| {
5245                Ok(Self::OfferEntryFlags(Box::new(OfferEntryFlags::read_xdr(
5246                    r,
5247                )?)))
5248            }),
5249            TypeVariant::OfferEntry => {
5250                r.with_limited_depth(|r| Ok(Self::OfferEntry(Box::new(OfferEntry::read_xdr(r)?))))
5251            }
5252            TypeVariant::OfferEntryExt => r.with_limited_depth(|r| {
5253                Ok(Self::OfferEntryExt(Box::new(OfferEntryExt::read_xdr(r)?)))
5254            }),
5255            TypeVariant::DataEntry => {
5256                r.with_limited_depth(|r| Ok(Self::DataEntry(Box::new(DataEntry::read_xdr(r)?))))
5257            }
5258            TypeVariant::DataEntryExt => r.with_limited_depth(|r| {
5259                Ok(Self::DataEntryExt(Box::new(DataEntryExt::read_xdr(r)?)))
5260            }),
5261            TypeVariant::ClaimPredicateType => r.with_limited_depth(|r| {
5262                Ok(Self::ClaimPredicateType(Box::new(
5263                    ClaimPredicateType::read_xdr(r)?,
5264                )))
5265            }),
5266            TypeVariant::ClaimPredicate => r.with_limited_depth(|r| {
5267                Ok(Self::ClaimPredicate(Box::new(ClaimPredicate::read_xdr(r)?)))
5268            }),
5269            TypeVariant::ClaimantType => r.with_limited_depth(|r| {
5270                Ok(Self::ClaimantType(Box::new(ClaimantType::read_xdr(r)?)))
5271            }),
5272            TypeVariant::Claimant => {
5273                r.with_limited_depth(|r| Ok(Self::Claimant(Box::new(Claimant::read_xdr(r)?))))
5274            }
5275            TypeVariant::ClaimantV0 => {
5276                r.with_limited_depth(|r| Ok(Self::ClaimantV0(Box::new(ClaimantV0::read_xdr(r)?))))
5277            }
5278            TypeVariant::ClaimableBalanceFlags => r.with_limited_depth(|r| {
5279                Ok(Self::ClaimableBalanceFlags(Box::new(
5280                    ClaimableBalanceFlags::read_xdr(r)?,
5281                )))
5282            }),
5283            TypeVariant::ClaimableBalanceEntryExtensionV1 => r.with_limited_depth(|r| {
5284                Ok(Self::ClaimableBalanceEntryExtensionV1(Box::new(
5285                    ClaimableBalanceEntryExtensionV1::read_xdr(r)?,
5286                )))
5287            }),
5288            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => r.with_limited_depth(|r| {
5289                Ok(Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(
5290                    ClaimableBalanceEntryExtensionV1Ext::read_xdr(r)?,
5291                )))
5292            }),
5293            TypeVariant::ClaimableBalanceEntry => r.with_limited_depth(|r| {
5294                Ok(Self::ClaimableBalanceEntry(Box::new(
5295                    ClaimableBalanceEntry::read_xdr(r)?,
5296                )))
5297            }),
5298            TypeVariant::ClaimableBalanceEntryExt => r.with_limited_depth(|r| {
5299                Ok(Self::ClaimableBalanceEntryExt(Box::new(
5300                    ClaimableBalanceEntryExt::read_xdr(r)?,
5301                )))
5302            }),
5303            TypeVariant::LiquidityPoolConstantProductParameters => r.with_limited_depth(|r| {
5304                Ok(Self::LiquidityPoolConstantProductParameters(Box::new(
5305                    LiquidityPoolConstantProductParameters::read_xdr(r)?,
5306                )))
5307            }),
5308            TypeVariant::LiquidityPoolEntry => r.with_limited_depth(|r| {
5309                Ok(Self::LiquidityPoolEntry(Box::new(
5310                    LiquidityPoolEntry::read_xdr(r)?,
5311                )))
5312            }),
5313            TypeVariant::LiquidityPoolEntryBody => r.with_limited_depth(|r| {
5314                Ok(Self::LiquidityPoolEntryBody(Box::new(
5315                    LiquidityPoolEntryBody::read_xdr(r)?,
5316                )))
5317            }),
5318            TypeVariant::LiquidityPoolEntryConstantProduct => r.with_limited_depth(|r| {
5319                Ok(Self::LiquidityPoolEntryConstantProduct(Box::new(
5320                    LiquidityPoolEntryConstantProduct::read_xdr(r)?,
5321                )))
5322            }),
5323            TypeVariant::ContractDataDurability => r.with_limited_depth(|r| {
5324                Ok(Self::ContractDataDurability(Box::new(
5325                    ContractDataDurability::read_xdr(r)?,
5326                )))
5327            }),
5328            TypeVariant::ContractDataEntry => r.with_limited_depth(|r| {
5329                Ok(Self::ContractDataEntry(Box::new(
5330                    ContractDataEntry::read_xdr(r)?,
5331                )))
5332            }),
5333            TypeVariant::ContractCodeCostInputs => r.with_limited_depth(|r| {
5334                Ok(Self::ContractCodeCostInputs(Box::new(
5335                    ContractCodeCostInputs::read_xdr(r)?,
5336                )))
5337            }),
5338            TypeVariant::ContractCodeEntry => r.with_limited_depth(|r| {
5339                Ok(Self::ContractCodeEntry(Box::new(
5340                    ContractCodeEntry::read_xdr(r)?,
5341                )))
5342            }),
5343            TypeVariant::ContractCodeEntryExt => r.with_limited_depth(|r| {
5344                Ok(Self::ContractCodeEntryExt(Box::new(
5345                    ContractCodeEntryExt::read_xdr(r)?,
5346                )))
5347            }),
5348            TypeVariant::ContractCodeEntryV1 => r.with_limited_depth(|r| {
5349                Ok(Self::ContractCodeEntryV1(Box::new(
5350                    ContractCodeEntryV1::read_xdr(r)?,
5351                )))
5352            }),
5353            TypeVariant::TtlEntry => {
5354                r.with_limited_depth(|r| Ok(Self::TtlEntry(Box::new(TtlEntry::read_xdr(r)?))))
5355            }
5356            TypeVariant::LedgerEntryExtensionV1 => r.with_limited_depth(|r| {
5357                Ok(Self::LedgerEntryExtensionV1(Box::new(
5358                    LedgerEntryExtensionV1::read_xdr(r)?,
5359                )))
5360            }),
5361            TypeVariant::LedgerEntryExtensionV1Ext => r.with_limited_depth(|r| {
5362                Ok(Self::LedgerEntryExtensionV1Ext(Box::new(
5363                    LedgerEntryExtensionV1Ext::read_xdr(r)?,
5364                )))
5365            }),
5366            TypeVariant::LedgerEntry => {
5367                r.with_limited_depth(|r| Ok(Self::LedgerEntry(Box::new(LedgerEntry::read_xdr(r)?))))
5368            }
5369            TypeVariant::LedgerEntryData => r.with_limited_depth(|r| {
5370                Ok(Self::LedgerEntryData(Box::new(LedgerEntryData::read_xdr(
5371                    r,
5372                )?)))
5373            }),
5374            TypeVariant::LedgerEntryExt => r.with_limited_depth(|r| {
5375                Ok(Self::LedgerEntryExt(Box::new(LedgerEntryExt::read_xdr(r)?)))
5376            }),
5377            TypeVariant::LedgerKey => {
5378                r.with_limited_depth(|r| Ok(Self::LedgerKey(Box::new(LedgerKey::read_xdr(r)?))))
5379            }
5380            TypeVariant::LedgerKeyAccount => r.with_limited_depth(|r| {
5381                Ok(Self::LedgerKeyAccount(Box::new(
5382                    LedgerKeyAccount::read_xdr(r)?,
5383                )))
5384            }),
5385            TypeVariant::LedgerKeyTrustLine => r.with_limited_depth(|r| {
5386                Ok(Self::LedgerKeyTrustLine(Box::new(
5387                    LedgerKeyTrustLine::read_xdr(r)?,
5388                )))
5389            }),
5390            TypeVariant::LedgerKeyOffer => r.with_limited_depth(|r| {
5391                Ok(Self::LedgerKeyOffer(Box::new(LedgerKeyOffer::read_xdr(r)?)))
5392            }),
5393            TypeVariant::LedgerKeyData => r.with_limited_depth(|r| {
5394                Ok(Self::LedgerKeyData(Box::new(LedgerKeyData::read_xdr(r)?)))
5395            }),
5396            TypeVariant::LedgerKeyClaimableBalance => r.with_limited_depth(|r| {
5397                Ok(Self::LedgerKeyClaimableBalance(Box::new(
5398                    LedgerKeyClaimableBalance::read_xdr(r)?,
5399                )))
5400            }),
5401            TypeVariant::LedgerKeyLiquidityPool => r.with_limited_depth(|r| {
5402                Ok(Self::LedgerKeyLiquidityPool(Box::new(
5403                    LedgerKeyLiquidityPool::read_xdr(r)?,
5404                )))
5405            }),
5406            TypeVariant::LedgerKeyContractData => r.with_limited_depth(|r| {
5407                Ok(Self::LedgerKeyContractData(Box::new(
5408                    LedgerKeyContractData::read_xdr(r)?,
5409                )))
5410            }),
5411            TypeVariant::LedgerKeyContractCode => r.with_limited_depth(|r| {
5412                Ok(Self::LedgerKeyContractCode(Box::new(
5413                    LedgerKeyContractCode::read_xdr(r)?,
5414                )))
5415            }),
5416            TypeVariant::LedgerKeyConfigSetting => r.with_limited_depth(|r| {
5417                Ok(Self::LedgerKeyConfigSetting(Box::new(
5418                    LedgerKeyConfigSetting::read_xdr(r)?,
5419                )))
5420            }),
5421            TypeVariant::LedgerKeyTtl => r.with_limited_depth(|r| {
5422                Ok(Self::LedgerKeyTtl(Box::new(LedgerKeyTtl::read_xdr(r)?)))
5423            }),
5424            TypeVariant::EnvelopeType => r.with_limited_depth(|r| {
5425                Ok(Self::EnvelopeType(Box::new(EnvelopeType::read_xdr(r)?)))
5426            }),
5427            TypeVariant::BucketListType => r.with_limited_depth(|r| {
5428                Ok(Self::BucketListType(Box::new(BucketListType::read_xdr(r)?)))
5429            }),
5430            TypeVariant::BucketEntryType => r.with_limited_depth(|r| {
5431                Ok(Self::BucketEntryType(Box::new(BucketEntryType::read_xdr(
5432                    r,
5433                )?)))
5434            }),
5435            TypeVariant::HotArchiveBucketEntryType => r.with_limited_depth(|r| {
5436                Ok(Self::HotArchiveBucketEntryType(Box::new(
5437                    HotArchiveBucketEntryType::read_xdr(r)?,
5438                )))
5439            }),
5440            TypeVariant::BucketMetadata => r.with_limited_depth(|r| {
5441                Ok(Self::BucketMetadata(Box::new(BucketMetadata::read_xdr(r)?)))
5442            }),
5443            TypeVariant::BucketMetadataExt => r.with_limited_depth(|r| {
5444                Ok(Self::BucketMetadataExt(Box::new(
5445                    BucketMetadataExt::read_xdr(r)?,
5446                )))
5447            }),
5448            TypeVariant::BucketEntry => {
5449                r.with_limited_depth(|r| Ok(Self::BucketEntry(Box::new(BucketEntry::read_xdr(r)?))))
5450            }
5451            TypeVariant::HotArchiveBucketEntry => r.with_limited_depth(|r| {
5452                Ok(Self::HotArchiveBucketEntry(Box::new(
5453                    HotArchiveBucketEntry::read_xdr(r)?,
5454                )))
5455            }),
5456            TypeVariant::UpgradeType => {
5457                r.with_limited_depth(|r| Ok(Self::UpgradeType(Box::new(UpgradeType::read_xdr(r)?))))
5458            }
5459            TypeVariant::StellarValueType => r.with_limited_depth(|r| {
5460                Ok(Self::StellarValueType(Box::new(
5461                    StellarValueType::read_xdr(r)?,
5462                )))
5463            }),
5464            TypeVariant::LedgerCloseValueSignature => r.with_limited_depth(|r| {
5465                Ok(Self::LedgerCloseValueSignature(Box::new(
5466                    LedgerCloseValueSignature::read_xdr(r)?,
5467                )))
5468            }),
5469            TypeVariant::StellarValue => r.with_limited_depth(|r| {
5470                Ok(Self::StellarValue(Box::new(StellarValue::read_xdr(r)?)))
5471            }),
5472            TypeVariant::StellarValueExt => r.with_limited_depth(|r| {
5473                Ok(Self::StellarValueExt(Box::new(StellarValueExt::read_xdr(
5474                    r,
5475                )?)))
5476            }),
5477            TypeVariant::StellarValueProposedValue => r.with_limited_depth(|r| {
5478                Ok(Self::StellarValueProposedValue(Box::new(
5479                    StellarValueProposedValue::read_xdr(r)?,
5480                )))
5481            }),
5482            TypeVariant::LedgerHeaderFlags => r.with_limited_depth(|r| {
5483                Ok(Self::LedgerHeaderFlags(Box::new(
5484                    LedgerHeaderFlags::read_xdr(r)?,
5485                )))
5486            }),
5487            TypeVariant::LedgerHeaderExtensionV1 => r.with_limited_depth(|r| {
5488                Ok(Self::LedgerHeaderExtensionV1(Box::new(
5489                    LedgerHeaderExtensionV1::read_xdr(r)?,
5490                )))
5491            }),
5492            TypeVariant::LedgerHeaderExtensionV1Ext => r.with_limited_depth(|r| {
5493                Ok(Self::LedgerHeaderExtensionV1Ext(Box::new(
5494                    LedgerHeaderExtensionV1Ext::read_xdr(r)?,
5495                )))
5496            }),
5497            TypeVariant::LedgerHeader => r.with_limited_depth(|r| {
5498                Ok(Self::LedgerHeader(Box::new(LedgerHeader::read_xdr(r)?)))
5499            }),
5500            TypeVariant::LedgerHeaderExt => r.with_limited_depth(|r| {
5501                Ok(Self::LedgerHeaderExt(Box::new(LedgerHeaderExt::read_xdr(
5502                    r,
5503                )?)))
5504            }),
5505            TypeVariant::LedgerUpgradeType => r.with_limited_depth(|r| {
5506                Ok(Self::LedgerUpgradeType(Box::new(
5507                    LedgerUpgradeType::read_xdr(r)?,
5508                )))
5509            }),
5510            TypeVariant::ConfigUpgradeSetKey => r.with_limited_depth(|r| {
5511                Ok(Self::ConfigUpgradeSetKey(Box::new(
5512                    ConfigUpgradeSetKey::read_xdr(r)?,
5513                )))
5514            }),
5515            TypeVariant::LedgerUpgrade => r.with_limited_depth(|r| {
5516                Ok(Self::LedgerUpgrade(Box::new(LedgerUpgrade::read_xdr(r)?)))
5517            }),
5518            TypeVariant::ConfigUpgradeSet => r.with_limited_depth(|r| {
5519                Ok(Self::ConfigUpgradeSet(Box::new(
5520                    ConfigUpgradeSet::read_xdr(r)?,
5521                )))
5522            }),
5523            TypeVariant::TxSetComponentType => r.with_limited_depth(|r| {
5524                Ok(Self::TxSetComponentType(Box::new(
5525                    TxSetComponentType::read_xdr(r)?,
5526                )))
5527            }),
5528            TypeVariant::DependentTxCluster => r.with_limited_depth(|r| {
5529                Ok(Self::DependentTxCluster(Box::new(
5530                    DependentTxCluster::read_xdr(r)?,
5531                )))
5532            }),
5533            TypeVariant::ParallelTxExecutionStage => r.with_limited_depth(|r| {
5534                Ok(Self::ParallelTxExecutionStage(Box::new(
5535                    ParallelTxExecutionStage::read_xdr(r)?,
5536                )))
5537            }),
5538            TypeVariant::ParallelTxsComponent => r.with_limited_depth(|r| {
5539                Ok(Self::ParallelTxsComponent(Box::new(
5540                    ParallelTxsComponent::read_xdr(r)?,
5541                )))
5542            }),
5543            TypeVariant::TxSetComponent => r.with_limited_depth(|r| {
5544                Ok(Self::TxSetComponent(Box::new(TxSetComponent::read_xdr(r)?)))
5545            }),
5546            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => r.with_limited_depth(|r| {
5547                Ok(Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(
5548                    TxSetComponentTxsMaybeDiscountedFee::read_xdr(r)?,
5549                )))
5550            }),
5551            TypeVariant::TransactionPhase => r.with_limited_depth(|r| {
5552                Ok(Self::TransactionPhase(Box::new(
5553                    TransactionPhase::read_xdr(r)?,
5554                )))
5555            }),
5556            TypeVariant::TransactionSet => r.with_limited_depth(|r| {
5557                Ok(Self::TransactionSet(Box::new(TransactionSet::read_xdr(r)?)))
5558            }),
5559            TypeVariant::TransactionSetV1 => r.with_limited_depth(|r| {
5560                Ok(Self::TransactionSetV1(Box::new(
5561                    TransactionSetV1::read_xdr(r)?,
5562                )))
5563            }),
5564            TypeVariant::GeneralizedTransactionSet => r.with_limited_depth(|r| {
5565                Ok(Self::GeneralizedTransactionSet(Box::new(
5566                    GeneralizedTransactionSet::read_xdr(r)?,
5567                )))
5568            }),
5569            TypeVariant::TransactionResultPair => r.with_limited_depth(|r| {
5570                Ok(Self::TransactionResultPair(Box::new(
5571                    TransactionResultPair::read_xdr(r)?,
5572                )))
5573            }),
5574            TypeVariant::TransactionResultSet => r.with_limited_depth(|r| {
5575                Ok(Self::TransactionResultSet(Box::new(
5576                    TransactionResultSet::read_xdr(r)?,
5577                )))
5578            }),
5579            TypeVariant::TransactionHistoryEntry => r.with_limited_depth(|r| {
5580                Ok(Self::TransactionHistoryEntry(Box::new(
5581                    TransactionHistoryEntry::read_xdr(r)?,
5582                )))
5583            }),
5584            TypeVariant::TransactionHistoryEntryExt => r.with_limited_depth(|r| {
5585                Ok(Self::TransactionHistoryEntryExt(Box::new(
5586                    TransactionHistoryEntryExt::read_xdr(r)?,
5587                )))
5588            }),
5589            TypeVariant::TransactionHistoryResultEntry => r.with_limited_depth(|r| {
5590                Ok(Self::TransactionHistoryResultEntry(Box::new(
5591                    TransactionHistoryResultEntry::read_xdr(r)?,
5592                )))
5593            }),
5594            TypeVariant::TransactionHistoryResultEntryExt => r.with_limited_depth(|r| {
5595                Ok(Self::TransactionHistoryResultEntryExt(Box::new(
5596                    TransactionHistoryResultEntryExt::read_xdr(r)?,
5597                )))
5598            }),
5599            TypeVariant::LedgerHeaderHistoryEntry => r.with_limited_depth(|r| {
5600                Ok(Self::LedgerHeaderHistoryEntry(Box::new(
5601                    LedgerHeaderHistoryEntry::read_xdr(r)?,
5602                )))
5603            }),
5604            TypeVariant::LedgerHeaderHistoryEntryExt => r.with_limited_depth(|r| {
5605                Ok(Self::LedgerHeaderHistoryEntryExt(Box::new(
5606                    LedgerHeaderHistoryEntryExt::read_xdr(r)?,
5607                )))
5608            }),
5609            TypeVariant::LedgerScpMessages => r.with_limited_depth(|r| {
5610                Ok(Self::LedgerScpMessages(Box::new(
5611                    LedgerScpMessages::read_xdr(r)?,
5612                )))
5613            }),
5614            TypeVariant::ScpHistoryEntryV0 => r.with_limited_depth(|r| {
5615                Ok(Self::ScpHistoryEntryV0(Box::new(
5616                    ScpHistoryEntryV0::read_xdr(r)?,
5617                )))
5618            }),
5619            TypeVariant::ScpHistoryEntry => r.with_limited_depth(|r| {
5620                Ok(Self::ScpHistoryEntry(Box::new(ScpHistoryEntry::read_xdr(
5621                    r,
5622                )?)))
5623            }),
5624            TypeVariant::LedgerEntryChangeType => r.with_limited_depth(|r| {
5625                Ok(Self::LedgerEntryChangeType(Box::new(
5626                    LedgerEntryChangeType::read_xdr(r)?,
5627                )))
5628            }),
5629            TypeVariant::LedgerEntryChange => r.with_limited_depth(|r| {
5630                Ok(Self::LedgerEntryChange(Box::new(
5631                    LedgerEntryChange::read_xdr(r)?,
5632                )))
5633            }),
5634            TypeVariant::LedgerEntryChanges => r.with_limited_depth(|r| {
5635                Ok(Self::LedgerEntryChanges(Box::new(
5636                    LedgerEntryChanges::read_xdr(r)?,
5637                )))
5638            }),
5639            TypeVariant::OperationMeta => r.with_limited_depth(|r| {
5640                Ok(Self::OperationMeta(Box::new(OperationMeta::read_xdr(r)?)))
5641            }),
5642            TypeVariant::TransactionMetaV1 => r.with_limited_depth(|r| {
5643                Ok(Self::TransactionMetaV1(Box::new(
5644                    TransactionMetaV1::read_xdr(r)?,
5645                )))
5646            }),
5647            TypeVariant::TransactionMetaV2 => r.with_limited_depth(|r| {
5648                Ok(Self::TransactionMetaV2(Box::new(
5649                    TransactionMetaV2::read_xdr(r)?,
5650                )))
5651            }),
5652            TypeVariant::ContractEventType => r.with_limited_depth(|r| {
5653                Ok(Self::ContractEventType(Box::new(
5654                    ContractEventType::read_xdr(r)?,
5655                )))
5656            }),
5657            TypeVariant::ContractEvent => r.with_limited_depth(|r| {
5658                Ok(Self::ContractEvent(Box::new(ContractEvent::read_xdr(r)?)))
5659            }),
5660            TypeVariant::ContractEventBody => r.with_limited_depth(|r| {
5661                Ok(Self::ContractEventBody(Box::new(
5662                    ContractEventBody::read_xdr(r)?,
5663                )))
5664            }),
5665            TypeVariant::ContractEventV0 => r.with_limited_depth(|r| {
5666                Ok(Self::ContractEventV0(Box::new(ContractEventV0::read_xdr(
5667                    r,
5668                )?)))
5669            }),
5670            TypeVariant::DiagnosticEvent => r.with_limited_depth(|r| {
5671                Ok(Self::DiagnosticEvent(Box::new(DiagnosticEvent::read_xdr(
5672                    r,
5673                )?)))
5674            }),
5675            TypeVariant::SorobanTransactionMetaExtV1 => r.with_limited_depth(|r| {
5676                Ok(Self::SorobanTransactionMetaExtV1(Box::new(
5677                    SorobanTransactionMetaExtV1::read_xdr(r)?,
5678                )))
5679            }),
5680            TypeVariant::SorobanTransactionMetaExt => r.with_limited_depth(|r| {
5681                Ok(Self::SorobanTransactionMetaExt(Box::new(
5682                    SorobanTransactionMetaExt::read_xdr(r)?,
5683                )))
5684            }),
5685            TypeVariant::SorobanTransactionMeta => r.with_limited_depth(|r| {
5686                Ok(Self::SorobanTransactionMeta(Box::new(
5687                    SorobanTransactionMeta::read_xdr(r)?,
5688                )))
5689            }),
5690            TypeVariant::TransactionMetaV3 => r.with_limited_depth(|r| {
5691                Ok(Self::TransactionMetaV3(Box::new(
5692                    TransactionMetaV3::read_xdr(r)?,
5693                )))
5694            }),
5695            TypeVariant::OperationMetaV2 => r.with_limited_depth(|r| {
5696                Ok(Self::OperationMetaV2(Box::new(OperationMetaV2::read_xdr(
5697                    r,
5698                )?)))
5699            }),
5700            TypeVariant::SorobanTransactionMetaV2 => r.with_limited_depth(|r| {
5701                Ok(Self::SorobanTransactionMetaV2(Box::new(
5702                    SorobanTransactionMetaV2::read_xdr(r)?,
5703                )))
5704            }),
5705            TypeVariant::TransactionEventStage => r.with_limited_depth(|r| {
5706                Ok(Self::TransactionEventStage(Box::new(
5707                    TransactionEventStage::read_xdr(r)?,
5708                )))
5709            }),
5710            TypeVariant::TransactionEvent => r.with_limited_depth(|r| {
5711                Ok(Self::TransactionEvent(Box::new(
5712                    TransactionEvent::read_xdr(r)?,
5713                )))
5714            }),
5715            TypeVariant::TransactionMetaV4 => r.with_limited_depth(|r| {
5716                Ok(Self::TransactionMetaV4(Box::new(
5717                    TransactionMetaV4::read_xdr(r)?,
5718                )))
5719            }),
5720            TypeVariant::InvokeHostFunctionSuccessPreImage => r.with_limited_depth(|r| {
5721                Ok(Self::InvokeHostFunctionSuccessPreImage(Box::new(
5722                    InvokeHostFunctionSuccessPreImage::read_xdr(r)?,
5723                )))
5724            }),
5725            TypeVariant::TransactionMeta => r.with_limited_depth(|r| {
5726                Ok(Self::TransactionMeta(Box::new(TransactionMeta::read_xdr(
5727                    r,
5728                )?)))
5729            }),
5730            TypeVariant::TransactionResultMeta => r.with_limited_depth(|r| {
5731                Ok(Self::TransactionResultMeta(Box::new(
5732                    TransactionResultMeta::read_xdr(r)?,
5733                )))
5734            }),
5735            TypeVariant::TransactionResultMetaV1 => r.with_limited_depth(|r| {
5736                Ok(Self::TransactionResultMetaV1(Box::new(
5737                    TransactionResultMetaV1::read_xdr(r)?,
5738                )))
5739            }),
5740            TypeVariant::UpgradeEntryMeta => r.with_limited_depth(|r| {
5741                Ok(Self::UpgradeEntryMeta(Box::new(
5742                    UpgradeEntryMeta::read_xdr(r)?,
5743                )))
5744            }),
5745            TypeVariant::LedgerCloseMetaV0 => r.with_limited_depth(|r| {
5746                Ok(Self::LedgerCloseMetaV0(Box::new(
5747                    LedgerCloseMetaV0::read_xdr(r)?,
5748                )))
5749            }),
5750            TypeVariant::LedgerCloseMetaExtV1 => r.with_limited_depth(|r| {
5751                Ok(Self::LedgerCloseMetaExtV1(Box::new(
5752                    LedgerCloseMetaExtV1::read_xdr(r)?,
5753                )))
5754            }),
5755            TypeVariant::LedgerCloseMetaExt => r.with_limited_depth(|r| {
5756                Ok(Self::LedgerCloseMetaExt(Box::new(
5757                    LedgerCloseMetaExt::read_xdr(r)?,
5758                )))
5759            }),
5760            TypeVariant::LedgerCloseMetaV1 => r.with_limited_depth(|r| {
5761                Ok(Self::LedgerCloseMetaV1(Box::new(
5762                    LedgerCloseMetaV1::read_xdr(r)?,
5763                )))
5764            }),
5765            TypeVariant::LedgerCloseMetaV2 => r.with_limited_depth(|r| {
5766                Ok(Self::LedgerCloseMetaV2(Box::new(
5767                    LedgerCloseMetaV2::read_xdr(r)?,
5768                )))
5769            }),
5770            TypeVariant::LedgerCloseMeta => r.with_limited_depth(|r| {
5771                Ok(Self::LedgerCloseMeta(Box::new(LedgerCloseMeta::read_xdr(
5772                    r,
5773                )?)))
5774            }),
5775            TypeVariant::ErrorCode => {
5776                r.with_limited_depth(|r| Ok(Self::ErrorCode(Box::new(ErrorCode::read_xdr(r)?))))
5777            }
5778            TypeVariant::SError => {
5779                r.with_limited_depth(|r| Ok(Self::SError(Box::new(SError::read_xdr(r)?))))
5780            }
5781            TypeVariant::SendMore => {
5782                r.with_limited_depth(|r| Ok(Self::SendMore(Box::new(SendMore::read_xdr(r)?))))
5783            }
5784            TypeVariant::SendMoreExtended => r.with_limited_depth(|r| {
5785                Ok(Self::SendMoreExtended(Box::new(
5786                    SendMoreExtended::read_xdr(r)?,
5787                )))
5788            }),
5789            TypeVariant::AuthCert => {
5790                r.with_limited_depth(|r| Ok(Self::AuthCert(Box::new(AuthCert::read_xdr(r)?))))
5791            }
5792            TypeVariant::Hello => {
5793                r.with_limited_depth(|r| Ok(Self::Hello(Box::new(Hello::read_xdr(r)?))))
5794            }
5795            TypeVariant::Auth => {
5796                r.with_limited_depth(|r| Ok(Self::Auth(Box::new(Auth::read_xdr(r)?))))
5797            }
5798            TypeVariant::IpAddrType => {
5799                r.with_limited_depth(|r| Ok(Self::IpAddrType(Box::new(IpAddrType::read_xdr(r)?))))
5800            }
5801            TypeVariant::PeerAddress => {
5802                r.with_limited_depth(|r| Ok(Self::PeerAddress(Box::new(PeerAddress::read_xdr(r)?))))
5803            }
5804            TypeVariant::PeerAddressIp => r.with_limited_depth(|r| {
5805                Ok(Self::PeerAddressIp(Box::new(PeerAddressIp::read_xdr(r)?)))
5806            }),
5807            TypeVariant::MessageType => {
5808                r.with_limited_depth(|r| Ok(Self::MessageType(Box::new(MessageType::read_xdr(r)?))))
5809            }
5810            TypeVariant::DontHave => {
5811                r.with_limited_depth(|r| Ok(Self::DontHave(Box::new(DontHave::read_xdr(r)?))))
5812            }
5813            TypeVariant::SurveyMessageCommandType => r.with_limited_depth(|r| {
5814                Ok(Self::SurveyMessageCommandType(Box::new(
5815                    SurveyMessageCommandType::read_xdr(r)?,
5816                )))
5817            }),
5818            TypeVariant::SurveyMessageResponseType => r.with_limited_depth(|r| {
5819                Ok(Self::SurveyMessageResponseType(Box::new(
5820                    SurveyMessageResponseType::read_xdr(r)?,
5821                )))
5822            }),
5823            TypeVariant::TimeSlicedSurveyStartCollectingMessage => r.with_limited_depth(|r| {
5824                Ok(Self::TimeSlicedSurveyStartCollectingMessage(Box::new(
5825                    TimeSlicedSurveyStartCollectingMessage::read_xdr(r)?,
5826                )))
5827            }),
5828            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
5829                r.with_limited_depth(|r| {
5830                    Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
5831                        Box::new(SignedTimeSlicedSurveyStartCollectingMessage::read_xdr(r)?),
5832                    ))
5833                })
5834            }
5835            TypeVariant::TimeSlicedSurveyStopCollectingMessage => r.with_limited_depth(|r| {
5836                Ok(Self::TimeSlicedSurveyStopCollectingMessage(Box::new(
5837                    TimeSlicedSurveyStopCollectingMessage::read_xdr(r)?,
5838                )))
5839            }),
5840            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => r.with_limited_depth(|r| {
5841                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
5842                    SignedTimeSlicedSurveyStopCollectingMessage::read_xdr(r)?,
5843                )))
5844            }),
5845            TypeVariant::SurveyRequestMessage => r.with_limited_depth(|r| {
5846                Ok(Self::SurveyRequestMessage(Box::new(
5847                    SurveyRequestMessage::read_xdr(r)?,
5848                )))
5849            }),
5850            TypeVariant::TimeSlicedSurveyRequestMessage => r.with_limited_depth(|r| {
5851                Ok(Self::TimeSlicedSurveyRequestMessage(Box::new(
5852                    TimeSlicedSurveyRequestMessage::read_xdr(r)?,
5853                )))
5854            }),
5855            TypeVariant::SignedTimeSlicedSurveyRequestMessage => r.with_limited_depth(|r| {
5856                Ok(Self::SignedTimeSlicedSurveyRequestMessage(Box::new(
5857                    SignedTimeSlicedSurveyRequestMessage::read_xdr(r)?,
5858                )))
5859            }),
5860            TypeVariant::EncryptedBody => r.with_limited_depth(|r| {
5861                Ok(Self::EncryptedBody(Box::new(EncryptedBody::read_xdr(r)?)))
5862            }),
5863            TypeVariant::SurveyResponseMessage => r.with_limited_depth(|r| {
5864                Ok(Self::SurveyResponseMessage(Box::new(
5865                    SurveyResponseMessage::read_xdr(r)?,
5866                )))
5867            }),
5868            TypeVariant::TimeSlicedSurveyResponseMessage => r.with_limited_depth(|r| {
5869                Ok(Self::TimeSlicedSurveyResponseMessage(Box::new(
5870                    TimeSlicedSurveyResponseMessage::read_xdr(r)?,
5871                )))
5872            }),
5873            TypeVariant::SignedTimeSlicedSurveyResponseMessage => r.with_limited_depth(|r| {
5874                Ok(Self::SignedTimeSlicedSurveyResponseMessage(Box::new(
5875                    SignedTimeSlicedSurveyResponseMessage::read_xdr(r)?,
5876                )))
5877            }),
5878            TypeVariant::PeerStats => {
5879                r.with_limited_depth(|r| Ok(Self::PeerStats(Box::new(PeerStats::read_xdr(r)?))))
5880            }
5881            TypeVariant::TimeSlicedNodeData => r.with_limited_depth(|r| {
5882                Ok(Self::TimeSlicedNodeData(Box::new(
5883                    TimeSlicedNodeData::read_xdr(r)?,
5884                )))
5885            }),
5886            TypeVariant::TimeSlicedPeerData => r.with_limited_depth(|r| {
5887                Ok(Self::TimeSlicedPeerData(Box::new(
5888                    TimeSlicedPeerData::read_xdr(r)?,
5889                )))
5890            }),
5891            TypeVariant::TimeSlicedPeerDataList => r.with_limited_depth(|r| {
5892                Ok(Self::TimeSlicedPeerDataList(Box::new(
5893                    TimeSlicedPeerDataList::read_xdr(r)?,
5894                )))
5895            }),
5896            TypeVariant::TopologyResponseBodyV2 => r.with_limited_depth(|r| {
5897                Ok(Self::TopologyResponseBodyV2(Box::new(
5898                    TopologyResponseBodyV2::read_xdr(r)?,
5899                )))
5900            }),
5901            TypeVariant::SurveyResponseBody => r.with_limited_depth(|r| {
5902                Ok(Self::SurveyResponseBody(Box::new(
5903                    SurveyResponseBody::read_xdr(r)?,
5904                )))
5905            }),
5906            TypeVariant::TxAdvertVector => r.with_limited_depth(|r| {
5907                Ok(Self::TxAdvertVector(Box::new(TxAdvertVector::read_xdr(r)?)))
5908            }),
5909            TypeVariant::FloodAdvert => {
5910                r.with_limited_depth(|r| Ok(Self::FloodAdvert(Box::new(FloodAdvert::read_xdr(r)?))))
5911            }
5912            TypeVariant::TxDemandVector => r.with_limited_depth(|r| {
5913                Ok(Self::TxDemandVector(Box::new(TxDemandVector::read_xdr(r)?)))
5914            }),
5915            TypeVariant::FloodDemand => {
5916                r.with_limited_depth(|r| Ok(Self::FloodDemand(Box::new(FloodDemand::read_xdr(r)?))))
5917            }
5918            TypeVariant::StellarMessage => r.with_limited_depth(|r| {
5919                Ok(Self::StellarMessage(Box::new(StellarMessage::read_xdr(r)?)))
5920            }),
5921            TypeVariant::AuthenticatedMessage => r.with_limited_depth(|r| {
5922                Ok(Self::AuthenticatedMessage(Box::new(
5923                    AuthenticatedMessage::read_xdr(r)?,
5924                )))
5925            }),
5926            TypeVariant::AuthenticatedMessageV0 => r.with_limited_depth(|r| {
5927                Ok(Self::AuthenticatedMessageV0(Box::new(
5928                    AuthenticatedMessageV0::read_xdr(r)?,
5929                )))
5930            }),
5931            TypeVariant::LiquidityPoolParameters => r.with_limited_depth(|r| {
5932                Ok(Self::LiquidityPoolParameters(Box::new(
5933                    LiquidityPoolParameters::read_xdr(r)?,
5934                )))
5935            }),
5936            TypeVariant::MuxedAccount => r.with_limited_depth(|r| {
5937                Ok(Self::MuxedAccount(Box::new(MuxedAccount::read_xdr(r)?)))
5938            }),
5939            TypeVariant::MuxedAccountMed25519 => r.with_limited_depth(|r| {
5940                Ok(Self::MuxedAccountMed25519(Box::new(
5941                    MuxedAccountMed25519::read_xdr(r)?,
5942                )))
5943            }),
5944            TypeVariant::DecoratedSignature => r.with_limited_depth(|r| {
5945                Ok(Self::DecoratedSignature(Box::new(
5946                    DecoratedSignature::read_xdr(r)?,
5947                )))
5948            }),
5949            TypeVariant::OperationType => r.with_limited_depth(|r| {
5950                Ok(Self::OperationType(Box::new(OperationType::read_xdr(r)?)))
5951            }),
5952            TypeVariant::CreateAccountOp => r.with_limited_depth(|r| {
5953                Ok(Self::CreateAccountOp(Box::new(CreateAccountOp::read_xdr(
5954                    r,
5955                )?)))
5956            }),
5957            TypeVariant::PaymentOp => {
5958                r.with_limited_depth(|r| Ok(Self::PaymentOp(Box::new(PaymentOp::read_xdr(r)?))))
5959            }
5960            TypeVariant::PathPaymentStrictReceiveOp => r.with_limited_depth(|r| {
5961                Ok(Self::PathPaymentStrictReceiveOp(Box::new(
5962                    PathPaymentStrictReceiveOp::read_xdr(r)?,
5963                )))
5964            }),
5965            TypeVariant::PathPaymentStrictSendOp => r.with_limited_depth(|r| {
5966                Ok(Self::PathPaymentStrictSendOp(Box::new(
5967                    PathPaymentStrictSendOp::read_xdr(r)?,
5968                )))
5969            }),
5970            TypeVariant::ManageSellOfferOp => r.with_limited_depth(|r| {
5971                Ok(Self::ManageSellOfferOp(Box::new(
5972                    ManageSellOfferOp::read_xdr(r)?,
5973                )))
5974            }),
5975            TypeVariant::ManageBuyOfferOp => r.with_limited_depth(|r| {
5976                Ok(Self::ManageBuyOfferOp(Box::new(
5977                    ManageBuyOfferOp::read_xdr(r)?,
5978                )))
5979            }),
5980            TypeVariant::CreatePassiveSellOfferOp => r.with_limited_depth(|r| {
5981                Ok(Self::CreatePassiveSellOfferOp(Box::new(
5982                    CreatePassiveSellOfferOp::read_xdr(r)?,
5983                )))
5984            }),
5985            TypeVariant::SetOptionsOp => r.with_limited_depth(|r| {
5986                Ok(Self::SetOptionsOp(Box::new(SetOptionsOp::read_xdr(r)?)))
5987            }),
5988            TypeVariant::ChangeTrustAsset => r.with_limited_depth(|r| {
5989                Ok(Self::ChangeTrustAsset(Box::new(
5990                    ChangeTrustAsset::read_xdr(r)?,
5991                )))
5992            }),
5993            TypeVariant::ChangeTrustOp => r.with_limited_depth(|r| {
5994                Ok(Self::ChangeTrustOp(Box::new(ChangeTrustOp::read_xdr(r)?)))
5995            }),
5996            TypeVariant::AllowTrustOp => r.with_limited_depth(|r| {
5997                Ok(Self::AllowTrustOp(Box::new(AllowTrustOp::read_xdr(r)?)))
5998            }),
5999            TypeVariant::ManageDataOp => r.with_limited_depth(|r| {
6000                Ok(Self::ManageDataOp(Box::new(ManageDataOp::read_xdr(r)?)))
6001            }),
6002            TypeVariant::BumpSequenceOp => r.with_limited_depth(|r| {
6003                Ok(Self::BumpSequenceOp(Box::new(BumpSequenceOp::read_xdr(r)?)))
6004            }),
6005            TypeVariant::CreateClaimableBalanceOp => r.with_limited_depth(|r| {
6006                Ok(Self::CreateClaimableBalanceOp(Box::new(
6007                    CreateClaimableBalanceOp::read_xdr(r)?,
6008                )))
6009            }),
6010            TypeVariant::ClaimClaimableBalanceOp => r.with_limited_depth(|r| {
6011                Ok(Self::ClaimClaimableBalanceOp(Box::new(
6012                    ClaimClaimableBalanceOp::read_xdr(r)?,
6013                )))
6014            }),
6015            TypeVariant::BeginSponsoringFutureReservesOp => r.with_limited_depth(|r| {
6016                Ok(Self::BeginSponsoringFutureReservesOp(Box::new(
6017                    BeginSponsoringFutureReservesOp::read_xdr(r)?,
6018                )))
6019            }),
6020            TypeVariant::RevokeSponsorshipType => r.with_limited_depth(|r| {
6021                Ok(Self::RevokeSponsorshipType(Box::new(
6022                    RevokeSponsorshipType::read_xdr(r)?,
6023                )))
6024            }),
6025            TypeVariant::RevokeSponsorshipOp => r.with_limited_depth(|r| {
6026                Ok(Self::RevokeSponsorshipOp(Box::new(
6027                    RevokeSponsorshipOp::read_xdr(r)?,
6028                )))
6029            }),
6030            TypeVariant::RevokeSponsorshipOpSigner => r.with_limited_depth(|r| {
6031                Ok(Self::RevokeSponsorshipOpSigner(Box::new(
6032                    RevokeSponsorshipOpSigner::read_xdr(r)?,
6033                )))
6034            }),
6035            TypeVariant::ClawbackOp => {
6036                r.with_limited_depth(|r| Ok(Self::ClawbackOp(Box::new(ClawbackOp::read_xdr(r)?))))
6037            }
6038            TypeVariant::ClawbackClaimableBalanceOp => r.with_limited_depth(|r| {
6039                Ok(Self::ClawbackClaimableBalanceOp(Box::new(
6040                    ClawbackClaimableBalanceOp::read_xdr(r)?,
6041                )))
6042            }),
6043            TypeVariant::SetTrustLineFlagsOp => r.with_limited_depth(|r| {
6044                Ok(Self::SetTrustLineFlagsOp(Box::new(
6045                    SetTrustLineFlagsOp::read_xdr(r)?,
6046                )))
6047            }),
6048            TypeVariant::LiquidityPoolDepositOp => r.with_limited_depth(|r| {
6049                Ok(Self::LiquidityPoolDepositOp(Box::new(
6050                    LiquidityPoolDepositOp::read_xdr(r)?,
6051                )))
6052            }),
6053            TypeVariant::LiquidityPoolWithdrawOp => r.with_limited_depth(|r| {
6054                Ok(Self::LiquidityPoolWithdrawOp(Box::new(
6055                    LiquidityPoolWithdrawOp::read_xdr(r)?,
6056                )))
6057            }),
6058            TypeVariant::HostFunctionType => r.with_limited_depth(|r| {
6059                Ok(Self::HostFunctionType(Box::new(
6060                    HostFunctionType::read_xdr(r)?,
6061                )))
6062            }),
6063            TypeVariant::ContractIdPreimageType => r.with_limited_depth(|r| {
6064                Ok(Self::ContractIdPreimageType(Box::new(
6065                    ContractIdPreimageType::read_xdr(r)?,
6066                )))
6067            }),
6068            TypeVariant::ContractIdPreimage => r.with_limited_depth(|r| {
6069                Ok(Self::ContractIdPreimage(Box::new(
6070                    ContractIdPreimage::read_xdr(r)?,
6071                )))
6072            }),
6073            TypeVariant::ContractIdPreimageFromAddress => r.with_limited_depth(|r| {
6074                Ok(Self::ContractIdPreimageFromAddress(Box::new(
6075                    ContractIdPreimageFromAddress::read_xdr(r)?,
6076                )))
6077            }),
6078            TypeVariant::CreateContractArgs => r.with_limited_depth(|r| {
6079                Ok(Self::CreateContractArgs(Box::new(
6080                    CreateContractArgs::read_xdr(r)?,
6081                )))
6082            }),
6083            TypeVariant::CreateContractArgsV2 => r.with_limited_depth(|r| {
6084                Ok(Self::CreateContractArgsV2(Box::new(
6085                    CreateContractArgsV2::read_xdr(r)?,
6086                )))
6087            }),
6088            TypeVariant::InvokeContractArgs => r.with_limited_depth(|r| {
6089                Ok(Self::InvokeContractArgs(Box::new(
6090                    InvokeContractArgs::read_xdr(r)?,
6091                )))
6092            }),
6093            TypeVariant::HostFunction => r.with_limited_depth(|r| {
6094                Ok(Self::HostFunction(Box::new(HostFunction::read_xdr(r)?)))
6095            }),
6096            TypeVariant::SorobanAuthorizedFunctionType => r.with_limited_depth(|r| {
6097                Ok(Self::SorobanAuthorizedFunctionType(Box::new(
6098                    SorobanAuthorizedFunctionType::read_xdr(r)?,
6099                )))
6100            }),
6101            TypeVariant::SorobanAuthorizedFunction => r.with_limited_depth(|r| {
6102                Ok(Self::SorobanAuthorizedFunction(Box::new(
6103                    SorobanAuthorizedFunction::read_xdr(r)?,
6104                )))
6105            }),
6106            TypeVariant::SorobanAuthorizedInvocation => r.with_limited_depth(|r| {
6107                Ok(Self::SorobanAuthorizedInvocation(Box::new(
6108                    SorobanAuthorizedInvocation::read_xdr(r)?,
6109                )))
6110            }),
6111            TypeVariant::SorobanAddressCredentials => r.with_limited_depth(|r| {
6112                Ok(Self::SorobanAddressCredentials(Box::new(
6113                    SorobanAddressCredentials::read_xdr(r)?,
6114                )))
6115            }),
6116            TypeVariant::SorobanDelegateSignature => r.with_limited_depth(|r| {
6117                Ok(Self::SorobanDelegateSignature(Box::new(
6118                    SorobanDelegateSignature::read_xdr(r)?,
6119                )))
6120            }),
6121            TypeVariant::SorobanAddressCredentialsWithDelegates => r.with_limited_depth(|r| {
6122                Ok(Self::SorobanAddressCredentialsWithDelegates(Box::new(
6123                    SorobanAddressCredentialsWithDelegates::read_xdr(r)?,
6124                )))
6125            }),
6126            TypeVariant::SorobanCredentialsType => r.with_limited_depth(|r| {
6127                Ok(Self::SorobanCredentialsType(Box::new(
6128                    SorobanCredentialsType::read_xdr(r)?,
6129                )))
6130            }),
6131            TypeVariant::SorobanCredentials => r.with_limited_depth(|r| {
6132                Ok(Self::SorobanCredentials(Box::new(
6133                    SorobanCredentials::read_xdr(r)?,
6134                )))
6135            }),
6136            TypeVariant::SorobanAuthorizationEntry => r.with_limited_depth(|r| {
6137                Ok(Self::SorobanAuthorizationEntry(Box::new(
6138                    SorobanAuthorizationEntry::read_xdr(r)?,
6139                )))
6140            }),
6141            TypeVariant::SorobanAuthorizationEntries => r.with_limited_depth(|r| {
6142                Ok(Self::SorobanAuthorizationEntries(Box::new(
6143                    SorobanAuthorizationEntries::read_xdr(r)?,
6144                )))
6145            }),
6146            TypeVariant::InvokeHostFunctionOp => r.with_limited_depth(|r| {
6147                Ok(Self::InvokeHostFunctionOp(Box::new(
6148                    InvokeHostFunctionOp::read_xdr(r)?,
6149                )))
6150            }),
6151            TypeVariant::ExtendFootprintTtlOp => r.with_limited_depth(|r| {
6152                Ok(Self::ExtendFootprintTtlOp(Box::new(
6153                    ExtendFootprintTtlOp::read_xdr(r)?,
6154                )))
6155            }),
6156            TypeVariant::RestoreFootprintOp => r.with_limited_depth(|r| {
6157                Ok(Self::RestoreFootprintOp(Box::new(
6158                    RestoreFootprintOp::read_xdr(r)?,
6159                )))
6160            }),
6161            TypeVariant::Operation => {
6162                r.with_limited_depth(|r| Ok(Self::Operation(Box::new(Operation::read_xdr(r)?))))
6163            }
6164            TypeVariant::OperationBody => r.with_limited_depth(|r| {
6165                Ok(Self::OperationBody(Box::new(OperationBody::read_xdr(r)?)))
6166            }),
6167            TypeVariant::HashIdPreimage => r.with_limited_depth(|r| {
6168                Ok(Self::HashIdPreimage(Box::new(HashIdPreimage::read_xdr(r)?)))
6169            }),
6170            TypeVariant::HashIdPreimageOperationId => r.with_limited_depth(|r| {
6171                Ok(Self::HashIdPreimageOperationId(Box::new(
6172                    HashIdPreimageOperationId::read_xdr(r)?,
6173                )))
6174            }),
6175            TypeVariant::HashIdPreimageRevokeId => r.with_limited_depth(|r| {
6176                Ok(Self::HashIdPreimageRevokeId(Box::new(
6177                    HashIdPreimageRevokeId::read_xdr(r)?,
6178                )))
6179            }),
6180            TypeVariant::HashIdPreimageContractId => r.with_limited_depth(|r| {
6181                Ok(Self::HashIdPreimageContractId(Box::new(
6182                    HashIdPreimageContractId::read_xdr(r)?,
6183                )))
6184            }),
6185            TypeVariant::HashIdPreimageSorobanAuthorization => r.with_limited_depth(|r| {
6186                Ok(Self::HashIdPreimageSorobanAuthorization(Box::new(
6187                    HashIdPreimageSorobanAuthorization::read_xdr(r)?,
6188                )))
6189            }),
6190            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
6191                r.with_limited_depth(|r| {
6192                    Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
6193                        Box::new(HashIdPreimageSorobanAuthorizationWithAddress::read_xdr(r)?),
6194                    ))
6195                })
6196            }
6197            TypeVariant::MemoType => {
6198                r.with_limited_depth(|r| Ok(Self::MemoType(Box::new(MemoType::read_xdr(r)?))))
6199            }
6200            TypeVariant::Memo => {
6201                r.with_limited_depth(|r| Ok(Self::Memo(Box::new(Memo::read_xdr(r)?))))
6202            }
6203            TypeVariant::TimeBounds => {
6204                r.with_limited_depth(|r| Ok(Self::TimeBounds(Box::new(TimeBounds::read_xdr(r)?))))
6205            }
6206            TypeVariant::LedgerBounds => r.with_limited_depth(|r| {
6207                Ok(Self::LedgerBounds(Box::new(LedgerBounds::read_xdr(r)?)))
6208            }),
6209            TypeVariant::PreconditionsV2 => r.with_limited_depth(|r| {
6210                Ok(Self::PreconditionsV2(Box::new(PreconditionsV2::read_xdr(
6211                    r,
6212                )?)))
6213            }),
6214            TypeVariant::PreconditionType => r.with_limited_depth(|r| {
6215                Ok(Self::PreconditionType(Box::new(
6216                    PreconditionType::read_xdr(r)?,
6217                )))
6218            }),
6219            TypeVariant::Preconditions => r.with_limited_depth(|r| {
6220                Ok(Self::Preconditions(Box::new(Preconditions::read_xdr(r)?)))
6221            }),
6222            TypeVariant::LedgerFootprint => r.with_limited_depth(|r| {
6223                Ok(Self::LedgerFootprint(Box::new(LedgerFootprint::read_xdr(
6224                    r,
6225                )?)))
6226            }),
6227            TypeVariant::SorobanResources => r.with_limited_depth(|r| {
6228                Ok(Self::SorobanResources(Box::new(
6229                    SorobanResources::read_xdr(r)?,
6230                )))
6231            }),
6232            TypeVariant::SorobanResourcesExtV0 => r.with_limited_depth(|r| {
6233                Ok(Self::SorobanResourcesExtV0(Box::new(
6234                    SorobanResourcesExtV0::read_xdr(r)?,
6235                )))
6236            }),
6237            TypeVariant::SorobanTransactionData => r.with_limited_depth(|r| {
6238                Ok(Self::SorobanTransactionData(Box::new(
6239                    SorobanTransactionData::read_xdr(r)?,
6240                )))
6241            }),
6242            TypeVariant::SorobanTransactionDataExt => r.with_limited_depth(|r| {
6243                Ok(Self::SorobanTransactionDataExt(Box::new(
6244                    SorobanTransactionDataExt::read_xdr(r)?,
6245                )))
6246            }),
6247            TypeVariant::TransactionV0 => r.with_limited_depth(|r| {
6248                Ok(Self::TransactionV0(Box::new(TransactionV0::read_xdr(r)?)))
6249            }),
6250            TypeVariant::TransactionV0Ext => r.with_limited_depth(|r| {
6251                Ok(Self::TransactionV0Ext(Box::new(
6252                    TransactionV0Ext::read_xdr(r)?,
6253                )))
6254            }),
6255            TypeVariant::TransactionV0Envelope => r.with_limited_depth(|r| {
6256                Ok(Self::TransactionV0Envelope(Box::new(
6257                    TransactionV0Envelope::read_xdr(r)?,
6258                )))
6259            }),
6260            TypeVariant::Transaction => {
6261                r.with_limited_depth(|r| Ok(Self::Transaction(Box::new(Transaction::read_xdr(r)?))))
6262            }
6263            TypeVariant::TransactionExt => r.with_limited_depth(|r| {
6264                Ok(Self::TransactionExt(Box::new(TransactionExt::read_xdr(r)?)))
6265            }),
6266            TypeVariant::TransactionV1Envelope => r.with_limited_depth(|r| {
6267                Ok(Self::TransactionV1Envelope(Box::new(
6268                    TransactionV1Envelope::read_xdr(r)?,
6269                )))
6270            }),
6271            TypeVariant::FeeBumpTransaction => r.with_limited_depth(|r| {
6272                Ok(Self::FeeBumpTransaction(Box::new(
6273                    FeeBumpTransaction::read_xdr(r)?,
6274                )))
6275            }),
6276            TypeVariant::FeeBumpTransactionInnerTx => r.with_limited_depth(|r| {
6277                Ok(Self::FeeBumpTransactionInnerTx(Box::new(
6278                    FeeBumpTransactionInnerTx::read_xdr(r)?,
6279                )))
6280            }),
6281            TypeVariant::FeeBumpTransactionExt => r.with_limited_depth(|r| {
6282                Ok(Self::FeeBumpTransactionExt(Box::new(
6283                    FeeBumpTransactionExt::read_xdr(r)?,
6284                )))
6285            }),
6286            TypeVariant::FeeBumpTransactionEnvelope => r.with_limited_depth(|r| {
6287                Ok(Self::FeeBumpTransactionEnvelope(Box::new(
6288                    FeeBumpTransactionEnvelope::read_xdr(r)?,
6289                )))
6290            }),
6291            TypeVariant::TransactionEnvelope => r.with_limited_depth(|r| {
6292                Ok(Self::TransactionEnvelope(Box::new(
6293                    TransactionEnvelope::read_xdr(r)?,
6294                )))
6295            }),
6296            TypeVariant::TransactionSignaturePayload => r.with_limited_depth(|r| {
6297                Ok(Self::TransactionSignaturePayload(Box::new(
6298                    TransactionSignaturePayload::read_xdr(r)?,
6299                )))
6300            }),
6301            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
6302                r.with_limited_depth(|r| {
6303                    Ok(Self::TransactionSignaturePayloadTaggedTransaction(
6304                        Box::new(TransactionSignaturePayloadTaggedTransaction::read_xdr(r)?),
6305                    ))
6306                })
6307            }
6308            TypeVariant::ClaimAtomType => r.with_limited_depth(|r| {
6309                Ok(Self::ClaimAtomType(Box::new(ClaimAtomType::read_xdr(r)?)))
6310            }),
6311            TypeVariant::ClaimOfferAtomV0 => r.with_limited_depth(|r| {
6312                Ok(Self::ClaimOfferAtomV0(Box::new(
6313                    ClaimOfferAtomV0::read_xdr(r)?,
6314                )))
6315            }),
6316            TypeVariant::ClaimOfferAtom => r.with_limited_depth(|r| {
6317                Ok(Self::ClaimOfferAtom(Box::new(ClaimOfferAtom::read_xdr(r)?)))
6318            }),
6319            TypeVariant::ClaimLiquidityAtom => r.with_limited_depth(|r| {
6320                Ok(Self::ClaimLiquidityAtom(Box::new(
6321                    ClaimLiquidityAtom::read_xdr(r)?,
6322                )))
6323            }),
6324            TypeVariant::ClaimAtom => {
6325                r.with_limited_depth(|r| Ok(Self::ClaimAtom(Box::new(ClaimAtom::read_xdr(r)?))))
6326            }
6327            TypeVariant::CreateAccountResultCode => r.with_limited_depth(|r| {
6328                Ok(Self::CreateAccountResultCode(Box::new(
6329                    CreateAccountResultCode::read_xdr(r)?,
6330                )))
6331            }),
6332            TypeVariant::CreateAccountResult => r.with_limited_depth(|r| {
6333                Ok(Self::CreateAccountResult(Box::new(
6334                    CreateAccountResult::read_xdr(r)?,
6335                )))
6336            }),
6337            TypeVariant::PaymentResultCode => r.with_limited_depth(|r| {
6338                Ok(Self::PaymentResultCode(Box::new(
6339                    PaymentResultCode::read_xdr(r)?,
6340                )))
6341            }),
6342            TypeVariant::PaymentResult => r.with_limited_depth(|r| {
6343                Ok(Self::PaymentResult(Box::new(PaymentResult::read_xdr(r)?)))
6344            }),
6345            TypeVariant::PathPaymentStrictReceiveResultCode => r.with_limited_depth(|r| {
6346                Ok(Self::PathPaymentStrictReceiveResultCode(Box::new(
6347                    PathPaymentStrictReceiveResultCode::read_xdr(r)?,
6348                )))
6349            }),
6350            TypeVariant::SimplePaymentResult => r.with_limited_depth(|r| {
6351                Ok(Self::SimplePaymentResult(Box::new(
6352                    SimplePaymentResult::read_xdr(r)?,
6353                )))
6354            }),
6355            TypeVariant::PathPaymentStrictReceiveResult => r.with_limited_depth(|r| {
6356                Ok(Self::PathPaymentStrictReceiveResult(Box::new(
6357                    PathPaymentStrictReceiveResult::read_xdr(r)?,
6358                )))
6359            }),
6360            TypeVariant::PathPaymentStrictReceiveResultSuccess => r.with_limited_depth(|r| {
6361                Ok(Self::PathPaymentStrictReceiveResultSuccess(Box::new(
6362                    PathPaymentStrictReceiveResultSuccess::read_xdr(r)?,
6363                )))
6364            }),
6365            TypeVariant::PathPaymentStrictSendResultCode => r.with_limited_depth(|r| {
6366                Ok(Self::PathPaymentStrictSendResultCode(Box::new(
6367                    PathPaymentStrictSendResultCode::read_xdr(r)?,
6368                )))
6369            }),
6370            TypeVariant::PathPaymentStrictSendResult => r.with_limited_depth(|r| {
6371                Ok(Self::PathPaymentStrictSendResult(Box::new(
6372                    PathPaymentStrictSendResult::read_xdr(r)?,
6373                )))
6374            }),
6375            TypeVariant::PathPaymentStrictSendResultSuccess => r.with_limited_depth(|r| {
6376                Ok(Self::PathPaymentStrictSendResultSuccess(Box::new(
6377                    PathPaymentStrictSendResultSuccess::read_xdr(r)?,
6378                )))
6379            }),
6380            TypeVariant::ManageSellOfferResultCode => r.with_limited_depth(|r| {
6381                Ok(Self::ManageSellOfferResultCode(Box::new(
6382                    ManageSellOfferResultCode::read_xdr(r)?,
6383                )))
6384            }),
6385            TypeVariant::ManageOfferEffect => r.with_limited_depth(|r| {
6386                Ok(Self::ManageOfferEffect(Box::new(
6387                    ManageOfferEffect::read_xdr(r)?,
6388                )))
6389            }),
6390            TypeVariant::ManageOfferSuccessResult => r.with_limited_depth(|r| {
6391                Ok(Self::ManageOfferSuccessResult(Box::new(
6392                    ManageOfferSuccessResult::read_xdr(r)?,
6393                )))
6394            }),
6395            TypeVariant::ManageOfferSuccessResultOffer => r.with_limited_depth(|r| {
6396                Ok(Self::ManageOfferSuccessResultOffer(Box::new(
6397                    ManageOfferSuccessResultOffer::read_xdr(r)?,
6398                )))
6399            }),
6400            TypeVariant::ManageSellOfferResult => r.with_limited_depth(|r| {
6401                Ok(Self::ManageSellOfferResult(Box::new(
6402                    ManageSellOfferResult::read_xdr(r)?,
6403                )))
6404            }),
6405            TypeVariant::ManageBuyOfferResultCode => r.with_limited_depth(|r| {
6406                Ok(Self::ManageBuyOfferResultCode(Box::new(
6407                    ManageBuyOfferResultCode::read_xdr(r)?,
6408                )))
6409            }),
6410            TypeVariant::ManageBuyOfferResult => r.with_limited_depth(|r| {
6411                Ok(Self::ManageBuyOfferResult(Box::new(
6412                    ManageBuyOfferResult::read_xdr(r)?,
6413                )))
6414            }),
6415            TypeVariant::SetOptionsResultCode => r.with_limited_depth(|r| {
6416                Ok(Self::SetOptionsResultCode(Box::new(
6417                    SetOptionsResultCode::read_xdr(r)?,
6418                )))
6419            }),
6420            TypeVariant::SetOptionsResult => r.with_limited_depth(|r| {
6421                Ok(Self::SetOptionsResult(Box::new(
6422                    SetOptionsResult::read_xdr(r)?,
6423                )))
6424            }),
6425            TypeVariant::ChangeTrustResultCode => r.with_limited_depth(|r| {
6426                Ok(Self::ChangeTrustResultCode(Box::new(
6427                    ChangeTrustResultCode::read_xdr(r)?,
6428                )))
6429            }),
6430            TypeVariant::ChangeTrustResult => r.with_limited_depth(|r| {
6431                Ok(Self::ChangeTrustResult(Box::new(
6432                    ChangeTrustResult::read_xdr(r)?,
6433                )))
6434            }),
6435            TypeVariant::AllowTrustResultCode => r.with_limited_depth(|r| {
6436                Ok(Self::AllowTrustResultCode(Box::new(
6437                    AllowTrustResultCode::read_xdr(r)?,
6438                )))
6439            }),
6440            TypeVariant::AllowTrustResult => r.with_limited_depth(|r| {
6441                Ok(Self::AllowTrustResult(Box::new(
6442                    AllowTrustResult::read_xdr(r)?,
6443                )))
6444            }),
6445            TypeVariant::AccountMergeResultCode => r.with_limited_depth(|r| {
6446                Ok(Self::AccountMergeResultCode(Box::new(
6447                    AccountMergeResultCode::read_xdr(r)?,
6448                )))
6449            }),
6450            TypeVariant::AccountMergeResult => r.with_limited_depth(|r| {
6451                Ok(Self::AccountMergeResult(Box::new(
6452                    AccountMergeResult::read_xdr(r)?,
6453                )))
6454            }),
6455            TypeVariant::InflationResultCode => r.with_limited_depth(|r| {
6456                Ok(Self::InflationResultCode(Box::new(
6457                    InflationResultCode::read_xdr(r)?,
6458                )))
6459            }),
6460            TypeVariant::InflationPayout => r.with_limited_depth(|r| {
6461                Ok(Self::InflationPayout(Box::new(InflationPayout::read_xdr(
6462                    r,
6463                )?)))
6464            }),
6465            TypeVariant::InflationResult => r.with_limited_depth(|r| {
6466                Ok(Self::InflationResult(Box::new(InflationResult::read_xdr(
6467                    r,
6468                )?)))
6469            }),
6470            TypeVariant::ManageDataResultCode => r.with_limited_depth(|r| {
6471                Ok(Self::ManageDataResultCode(Box::new(
6472                    ManageDataResultCode::read_xdr(r)?,
6473                )))
6474            }),
6475            TypeVariant::ManageDataResult => r.with_limited_depth(|r| {
6476                Ok(Self::ManageDataResult(Box::new(
6477                    ManageDataResult::read_xdr(r)?,
6478                )))
6479            }),
6480            TypeVariant::BumpSequenceResultCode => r.with_limited_depth(|r| {
6481                Ok(Self::BumpSequenceResultCode(Box::new(
6482                    BumpSequenceResultCode::read_xdr(r)?,
6483                )))
6484            }),
6485            TypeVariant::BumpSequenceResult => r.with_limited_depth(|r| {
6486                Ok(Self::BumpSequenceResult(Box::new(
6487                    BumpSequenceResult::read_xdr(r)?,
6488                )))
6489            }),
6490            TypeVariant::CreateClaimableBalanceResultCode => r.with_limited_depth(|r| {
6491                Ok(Self::CreateClaimableBalanceResultCode(Box::new(
6492                    CreateClaimableBalanceResultCode::read_xdr(r)?,
6493                )))
6494            }),
6495            TypeVariant::CreateClaimableBalanceResult => r.with_limited_depth(|r| {
6496                Ok(Self::CreateClaimableBalanceResult(Box::new(
6497                    CreateClaimableBalanceResult::read_xdr(r)?,
6498                )))
6499            }),
6500            TypeVariant::ClaimClaimableBalanceResultCode => r.with_limited_depth(|r| {
6501                Ok(Self::ClaimClaimableBalanceResultCode(Box::new(
6502                    ClaimClaimableBalanceResultCode::read_xdr(r)?,
6503                )))
6504            }),
6505            TypeVariant::ClaimClaimableBalanceResult => r.with_limited_depth(|r| {
6506                Ok(Self::ClaimClaimableBalanceResult(Box::new(
6507                    ClaimClaimableBalanceResult::read_xdr(r)?,
6508                )))
6509            }),
6510            TypeVariant::BeginSponsoringFutureReservesResultCode => r.with_limited_depth(|r| {
6511                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
6512                    BeginSponsoringFutureReservesResultCode::read_xdr(r)?,
6513                )))
6514            }),
6515            TypeVariant::BeginSponsoringFutureReservesResult => r.with_limited_depth(|r| {
6516                Ok(Self::BeginSponsoringFutureReservesResult(Box::new(
6517                    BeginSponsoringFutureReservesResult::read_xdr(r)?,
6518                )))
6519            }),
6520            TypeVariant::EndSponsoringFutureReservesResultCode => r.with_limited_depth(|r| {
6521                Ok(Self::EndSponsoringFutureReservesResultCode(Box::new(
6522                    EndSponsoringFutureReservesResultCode::read_xdr(r)?,
6523                )))
6524            }),
6525            TypeVariant::EndSponsoringFutureReservesResult => r.with_limited_depth(|r| {
6526                Ok(Self::EndSponsoringFutureReservesResult(Box::new(
6527                    EndSponsoringFutureReservesResult::read_xdr(r)?,
6528                )))
6529            }),
6530            TypeVariant::RevokeSponsorshipResultCode => r.with_limited_depth(|r| {
6531                Ok(Self::RevokeSponsorshipResultCode(Box::new(
6532                    RevokeSponsorshipResultCode::read_xdr(r)?,
6533                )))
6534            }),
6535            TypeVariant::RevokeSponsorshipResult => r.with_limited_depth(|r| {
6536                Ok(Self::RevokeSponsorshipResult(Box::new(
6537                    RevokeSponsorshipResult::read_xdr(r)?,
6538                )))
6539            }),
6540            TypeVariant::ClawbackResultCode => r.with_limited_depth(|r| {
6541                Ok(Self::ClawbackResultCode(Box::new(
6542                    ClawbackResultCode::read_xdr(r)?,
6543                )))
6544            }),
6545            TypeVariant::ClawbackResult => r.with_limited_depth(|r| {
6546                Ok(Self::ClawbackResult(Box::new(ClawbackResult::read_xdr(r)?)))
6547            }),
6548            TypeVariant::ClawbackClaimableBalanceResultCode => r.with_limited_depth(|r| {
6549                Ok(Self::ClawbackClaimableBalanceResultCode(Box::new(
6550                    ClawbackClaimableBalanceResultCode::read_xdr(r)?,
6551                )))
6552            }),
6553            TypeVariant::ClawbackClaimableBalanceResult => r.with_limited_depth(|r| {
6554                Ok(Self::ClawbackClaimableBalanceResult(Box::new(
6555                    ClawbackClaimableBalanceResult::read_xdr(r)?,
6556                )))
6557            }),
6558            TypeVariant::SetTrustLineFlagsResultCode => r.with_limited_depth(|r| {
6559                Ok(Self::SetTrustLineFlagsResultCode(Box::new(
6560                    SetTrustLineFlagsResultCode::read_xdr(r)?,
6561                )))
6562            }),
6563            TypeVariant::SetTrustLineFlagsResult => r.with_limited_depth(|r| {
6564                Ok(Self::SetTrustLineFlagsResult(Box::new(
6565                    SetTrustLineFlagsResult::read_xdr(r)?,
6566                )))
6567            }),
6568            TypeVariant::LiquidityPoolDepositResultCode => r.with_limited_depth(|r| {
6569                Ok(Self::LiquidityPoolDepositResultCode(Box::new(
6570                    LiquidityPoolDepositResultCode::read_xdr(r)?,
6571                )))
6572            }),
6573            TypeVariant::LiquidityPoolDepositResult => r.with_limited_depth(|r| {
6574                Ok(Self::LiquidityPoolDepositResult(Box::new(
6575                    LiquidityPoolDepositResult::read_xdr(r)?,
6576                )))
6577            }),
6578            TypeVariant::LiquidityPoolWithdrawResultCode => r.with_limited_depth(|r| {
6579                Ok(Self::LiquidityPoolWithdrawResultCode(Box::new(
6580                    LiquidityPoolWithdrawResultCode::read_xdr(r)?,
6581                )))
6582            }),
6583            TypeVariant::LiquidityPoolWithdrawResult => r.with_limited_depth(|r| {
6584                Ok(Self::LiquidityPoolWithdrawResult(Box::new(
6585                    LiquidityPoolWithdrawResult::read_xdr(r)?,
6586                )))
6587            }),
6588            TypeVariant::InvokeHostFunctionResultCode => r.with_limited_depth(|r| {
6589                Ok(Self::InvokeHostFunctionResultCode(Box::new(
6590                    InvokeHostFunctionResultCode::read_xdr(r)?,
6591                )))
6592            }),
6593            TypeVariant::InvokeHostFunctionResult => r.with_limited_depth(|r| {
6594                Ok(Self::InvokeHostFunctionResult(Box::new(
6595                    InvokeHostFunctionResult::read_xdr(r)?,
6596                )))
6597            }),
6598            TypeVariant::ExtendFootprintTtlResultCode => r.with_limited_depth(|r| {
6599                Ok(Self::ExtendFootprintTtlResultCode(Box::new(
6600                    ExtendFootprintTtlResultCode::read_xdr(r)?,
6601                )))
6602            }),
6603            TypeVariant::ExtendFootprintTtlResult => r.with_limited_depth(|r| {
6604                Ok(Self::ExtendFootprintTtlResult(Box::new(
6605                    ExtendFootprintTtlResult::read_xdr(r)?,
6606                )))
6607            }),
6608            TypeVariant::RestoreFootprintResultCode => r.with_limited_depth(|r| {
6609                Ok(Self::RestoreFootprintResultCode(Box::new(
6610                    RestoreFootprintResultCode::read_xdr(r)?,
6611                )))
6612            }),
6613            TypeVariant::RestoreFootprintResult => r.with_limited_depth(|r| {
6614                Ok(Self::RestoreFootprintResult(Box::new(
6615                    RestoreFootprintResult::read_xdr(r)?,
6616                )))
6617            }),
6618            TypeVariant::OperationResultCode => r.with_limited_depth(|r| {
6619                Ok(Self::OperationResultCode(Box::new(
6620                    OperationResultCode::read_xdr(r)?,
6621                )))
6622            }),
6623            TypeVariant::OperationResult => r.with_limited_depth(|r| {
6624                Ok(Self::OperationResult(Box::new(OperationResult::read_xdr(
6625                    r,
6626                )?)))
6627            }),
6628            TypeVariant::OperationResultTr => r.with_limited_depth(|r| {
6629                Ok(Self::OperationResultTr(Box::new(
6630                    OperationResultTr::read_xdr(r)?,
6631                )))
6632            }),
6633            TypeVariant::TransactionResultCode => r.with_limited_depth(|r| {
6634                Ok(Self::TransactionResultCode(Box::new(
6635                    TransactionResultCode::read_xdr(r)?,
6636                )))
6637            }),
6638            TypeVariant::InnerTransactionResult => r.with_limited_depth(|r| {
6639                Ok(Self::InnerTransactionResult(Box::new(
6640                    InnerTransactionResult::read_xdr(r)?,
6641                )))
6642            }),
6643            TypeVariant::InnerTransactionResultResult => r.with_limited_depth(|r| {
6644                Ok(Self::InnerTransactionResultResult(Box::new(
6645                    InnerTransactionResultResult::read_xdr(r)?,
6646                )))
6647            }),
6648            TypeVariant::InnerTransactionResultExt => r.with_limited_depth(|r| {
6649                Ok(Self::InnerTransactionResultExt(Box::new(
6650                    InnerTransactionResultExt::read_xdr(r)?,
6651                )))
6652            }),
6653            TypeVariant::InnerTransactionResultPair => r.with_limited_depth(|r| {
6654                Ok(Self::InnerTransactionResultPair(Box::new(
6655                    InnerTransactionResultPair::read_xdr(r)?,
6656                )))
6657            }),
6658            TypeVariant::TransactionResult => r.with_limited_depth(|r| {
6659                Ok(Self::TransactionResult(Box::new(
6660                    TransactionResult::read_xdr(r)?,
6661                )))
6662            }),
6663            TypeVariant::TransactionResultResult => r.with_limited_depth(|r| {
6664                Ok(Self::TransactionResultResult(Box::new(
6665                    TransactionResultResult::read_xdr(r)?,
6666                )))
6667            }),
6668            TypeVariant::TransactionResultExt => r.with_limited_depth(|r| {
6669                Ok(Self::TransactionResultExt(Box::new(
6670                    TransactionResultExt::read_xdr(r)?,
6671                )))
6672            }),
6673            TypeVariant::Hash => {
6674                r.with_limited_depth(|r| Ok(Self::Hash(Box::new(Hash::read_xdr(r)?))))
6675            }
6676            TypeVariant::Uint256 => {
6677                r.with_limited_depth(|r| Ok(Self::Uint256(Box::new(Uint256::read_xdr(r)?))))
6678            }
6679            TypeVariant::Uint32 => {
6680                r.with_limited_depth(|r| Ok(Self::Uint32(Box::new(Uint32::read_xdr(r)?))))
6681            }
6682            TypeVariant::Int32 => {
6683                r.with_limited_depth(|r| Ok(Self::Int32(Box::new(Int32::read_xdr(r)?))))
6684            }
6685            TypeVariant::Uint64 => {
6686                r.with_limited_depth(|r| Ok(Self::Uint64(Box::new(Uint64::read_xdr(r)?))))
6687            }
6688            TypeVariant::Int64 => {
6689                r.with_limited_depth(|r| Ok(Self::Int64(Box::new(Int64::read_xdr(r)?))))
6690            }
6691            TypeVariant::TimePoint => {
6692                r.with_limited_depth(|r| Ok(Self::TimePoint(Box::new(TimePoint::read_xdr(r)?))))
6693            }
6694            TypeVariant::Duration => {
6695                r.with_limited_depth(|r| Ok(Self::Duration(Box::new(Duration::read_xdr(r)?))))
6696            }
6697            TypeVariant::ExtensionPoint => r.with_limited_depth(|r| {
6698                Ok(Self::ExtensionPoint(Box::new(ExtensionPoint::read_xdr(r)?)))
6699            }),
6700            TypeVariant::CryptoKeyType => r.with_limited_depth(|r| {
6701                Ok(Self::CryptoKeyType(Box::new(CryptoKeyType::read_xdr(r)?)))
6702            }),
6703            TypeVariant::PublicKeyType => r.with_limited_depth(|r| {
6704                Ok(Self::PublicKeyType(Box::new(PublicKeyType::read_xdr(r)?)))
6705            }),
6706            TypeVariant::SignerKeyType => r.with_limited_depth(|r| {
6707                Ok(Self::SignerKeyType(Box::new(SignerKeyType::read_xdr(r)?)))
6708            }),
6709            TypeVariant::PublicKey => {
6710                r.with_limited_depth(|r| Ok(Self::PublicKey(Box::new(PublicKey::read_xdr(r)?))))
6711            }
6712            TypeVariant::SignerKey => {
6713                r.with_limited_depth(|r| Ok(Self::SignerKey(Box::new(SignerKey::read_xdr(r)?))))
6714            }
6715            TypeVariant::SignerKeyEd25519SignedPayload => r.with_limited_depth(|r| {
6716                Ok(Self::SignerKeyEd25519SignedPayload(Box::new(
6717                    SignerKeyEd25519SignedPayload::read_xdr(r)?,
6718                )))
6719            }),
6720            TypeVariant::Signature => {
6721                r.with_limited_depth(|r| Ok(Self::Signature(Box::new(Signature::read_xdr(r)?))))
6722            }
6723            TypeVariant::SignatureHint => r.with_limited_depth(|r| {
6724                Ok(Self::SignatureHint(Box::new(SignatureHint::read_xdr(r)?)))
6725            }),
6726            TypeVariant::NodeId => {
6727                r.with_limited_depth(|r| Ok(Self::NodeId(Box::new(NodeId::read_xdr(r)?))))
6728            }
6729            TypeVariant::AccountId => {
6730                r.with_limited_depth(|r| Ok(Self::AccountId(Box::new(AccountId::read_xdr(r)?))))
6731            }
6732            TypeVariant::ContractId => {
6733                r.with_limited_depth(|r| Ok(Self::ContractId(Box::new(ContractId::read_xdr(r)?))))
6734            }
6735            TypeVariant::Curve25519Secret => r.with_limited_depth(|r| {
6736                Ok(Self::Curve25519Secret(Box::new(
6737                    Curve25519Secret::read_xdr(r)?,
6738                )))
6739            }),
6740            TypeVariant::Curve25519Public => r.with_limited_depth(|r| {
6741                Ok(Self::Curve25519Public(Box::new(
6742                    Curve25519Public::read_xdr(r)?,
6743                )))
6744            }),
6745            TypeVariant::HmacSha256Key => r.with_limited_depth(|r| {
6746                Ok(Self::HmacSha256Key(Box::new(HmacSha256Key::read_xdr(r)?)))
6747            }),
6748            TypeVariant::HmacSha256Mac => r.with_limited_depth(|r| {
6749                Ok(Self::HmacSha256Mac(Box::new(HmacSha256Mac::read_xdr(r)?)))
6750            }),
6751            TypeVariant::ShortHashSeed => r.with_limited_depth(|r| {
6752                Ok(Self::ShortHashSeed(Box::new(ShortHashSeed::read_xdr(r)?)))
6753            }),
6754            TypeVariant::BinaryFuseFilterType => r.with_limited_depth(|r| {
6755                Ok(Self::BinaryFuseFilterType(Box::new(
6756                    BinaryFuseFilterType::read_xdr(r)?,
6757                )))
6758            }),
6759            TypeVariant::SerializedBinaryFuseFilter => r.with_limited_depth(|r| {
6760                Ok(Self::SerializedBinaryFuseFilter(Box::new(
6761                    SerializedBinaryFuseFilter::read_xdr(r)?,
6762                )))
6763            }),
6764            TypeVariant::PoolId => {
6765                r.with_limited_depth(|r| Ok(Self::PoolId(Box::new(PoolId::read_xdr(r)?))))
6766            }
6767            TypeVariant::ClaimableBalanceIdType => r.with_limited_depth(|r| {
6768                Ok(Self::ClaimableBalanceIdType(Box::new(
6769                    ClaimableBalanceIdType::read_xdr(r)?,
6770                )))
6771            }),
6772            TypeVariant::ClaimableBalanceId => r.with_limited_depth(|r| {
6773                Ok(Self::ClaimableBalanceId(Box::new(
6774                    ClaimableBalanceId::read_xdr(r)?,
6775                )))
6776            }),
6777            #[cfg(feature = "test_feature")]
6778            TypeVariant::TestNextType => r.with_limited_depth(|r| {
6779                Ok(Self::TestNextType(Box::new(TestNextType::read_xdr(r)?)))
6780            }),
6781        }
6782    }
6783
6784    #[cfg(feature = "base64")]
6785    pub fn read_xdr_base64<R: Read>(v: TypeVariant, r: &mut Limited<R>) -> Result<Self, Error> {
6786        let mut dec = Limited::new(
6787            base64::read::DecoderReader::new(
6788                SkipWhitespace::new(&mut r.inner),
6789                &base64::engine::general_purpose::STANDARD,
6790            ),
6791            r.limits.clone(),
6792        );
6793        let t = Self::read_xdr(v, &mut dec)?;
6794        Ok(t)
6795    }
6796
6797    #[cfg(feature = "std")]
6798    pub fn read_xdr_to_end<R: Read>(v: TypeVariant, r: &mut Limited<R>) -> Result<Self, Error> {
6799        let s = Self::read_xdr(v, r)?;
6800        // Check that any further reads, such as this read of one byte, read no
6801        // data, indicating EOF. If a byte is read the data is invalid.
6802        if r.read(&mut [0u8; 1])? == 0 {
6803            Ok(s)
6804        } else {
6805            Err(Error::Invalid)
6806        }
6807    }
6808
6809    #[cfg(feature = "base64")]
6810    pub fn read_xdr_base64_to_end<R: Read>(
6811        v: TypeVariant,
6812        r: &mut Limited<R>,
6813    ) -> Result<Self, Error> {
6814        let mut dec = Limited::new(
6815            base64::read::DecoderReader::new(
6816                SkipWhitespace::new(&mut r.inner),
6817                &base64::engine::general_purpose::STANDARD,
6818            ),
6819            r.limits.clone(),
6820        );
6821        let t = Self::read_xdr_to_end(v, &mut dec)?;
6822        Ok(t)
6823    }
6824
6825    #[cfg(feature = "std")]
6826    #[allow(clippy::too_many_lines)]
6827    pub fn read_xdr_iter<R: Read>(
6828        v: TypeVariant,
6829        r: &mut Limited<R>,
6830    ) -> Box<dyn Iterator<Item = Result<Self, Error>> + '_> {
6831        match v {
6832            TypeVariant::Value => Box::new(
6833                ReadXdrIter::<_, Value>::new(&mut r.inner, r.limits.clone())
6834                    .map(|r| r.map(|t| Self::Value(Box::new(t)))),
6835            ),
6836            TypeVariant::ScpBallot => Box::new(
6837                ReadXdrIter::<_, ScpBallot>::new(&mut r.inner, r.limits.clone())
6838                    .map(|r| r.map(|t| Self::ScpBallot(Box::new(t)))),
6839            ),
6840            TypeVariant::ScpStatementType => Box::new(
6841                ReadXdrIter::<_, ScpStatementType>::new(&mut r.inner, r.limits.clone())
6842                    .map(|r| r.map(|t| Self::ScpStatementType(Box::new(t)))),
6843            ),
6844            TypeVariant::ScpNomination => Box::new(
6845                ReadXdrIter::<_, ScpNomination>::new(&mut r.inner, r.limits.clone())
6846                    .map(|r| r.map(|t| Self::ScpNomination(Box::new(t)))),
6847            ),
6848            TypeVariant::ScpStatement => Box::new(
6849                ReadXdrIter::<_, ScpStatement>::new(&mut r.inner, r.limits.clone())
6850                    .map(|r| r.map(|t| Self::ScpStatement(Box::new(t)))),
6851            ),
6852            TypeVariant::ScpStatementPledges => Box::new(
6853                ReadXdrIter::<_, ScpStatementPledges>::new(&mut r.inner, r.limits.clone())
6854                    .map(|r| r.map(|t| Self::ScpStatementPledges(Box::new(t)))),
6855            ),
6856            TypeVariant::ScpStatementPrepare => Box::new(
6857                ReadXdrIter::<_, ScpStatementPrepare>::new(&mut r.inner, r.limits.clone())
6858                    .map(|r| r.map(|t| Self::ScpStatementPrepare(Box::new(t)))),
6859            ),
6860            TypeVariant::ScpStatementConfirm => Box::new(
6861                ReadXdrIter::<_, ScpStatementConfirm>::new(&mut r.inner, r.limits.clone())
6862                    .map(|r| r.map(|t| Self::ScpStatementConfirm(Box::new(t)))),
6863            ),
6864            TypeVariant::ScpStatementExternalize => Box::new(
6865                ReadXdrIter::<_, ScpStatementExternalize>::new(&mut r.inner, r.limits.clone())
6866                    .map(|r| r.map(|t| Self::ScpStatementExternalize(Box::new(t)))),
6867            ),
6868            TypeVariant::ScpEnvelope => Box::new(
6869                ReadXdrIter::<_, ScpEnvelope>::new(&mut r.inner, r.limits.clone())
6870                    .map(|r| r.map(|t| Self::ScpEnvelope(Box::new(t)))),
6871            ),
6872            TypeVariant::ScpQuorumSet => Box::new(
6873                ReadXdrIter::<_, ScpQuorumSet>::new(&mut r.inner, r.limits.clone())
6874                    .map(|r| r.map(|t| Self::ScpQuorumSet(Box::new(t)))),
6875            ),
6876            TypeVariant::EncodedLedgerKey => Box::new(
6877                ReadXdrIter::<_, EncodedLedgerKey>::new(&mut r.inner, r.limits.clone())
6878                    .map(|r| r.map(|t| Self::EncodedLedgerKey(Box::new(t)))),
6879            ),
6880            TypeVariant::ConfigSettingContractExecutionLanesV0 => Box::new(
6881                ReadXdrIter::<_, ConfigSettingContractExecutionLanesV0>::new(
6882                    &mut r.inner,
6883                    r.limits.clone(),
6884                )
6885                .map(|r| r.map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t)))),
6886            ),
6887            TypeVariant::ConfigSettingContractComputeV0 => Box::new(
6888                ReadXdrIter::<_, ConfigSettingContractComputeV0>::new(
6889                    &mut r.inner,
6890                    r.limits.clone(),
6891                )
6892                .map(|r| r.map(|t| Self::ConfigSettingContractComputeV0(Box::new(t)))),
6893            ),
6894            TypeVariant::ConfigSettingContractParallelComputeV0 => Box::new(
6895                ReadXdrIter::<_, ConfigSettingContractParallelComputeV0>::new(
6896                    &mut r.inner,
6897                    r.limits.clone(),
6898                )
6899                .map(|r| r.map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t)))),
6900            ),
6901            TypeVariant::ConfigSettingContractLedgerCostV0 => Box::new(
6902                ReadXdrIter::<_, ConfigSettingContractLedgerCostV0>::new(
6903                    &mut r.inner,
6904                    r.limits.clone(),
6905                )
6906                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t)))),
6907            ),
6908            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Box::new(
6909                ReadXdrIter::<_, ConfigSettingContractLedgerCostExtV0>::new(
6910                    &mut r.inner,
6911                    r.limits.clone(),
6912                )
6913                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t)))),
6914            ),
6915            TypeVariant::ConfigSettingContractHistoricalDataV0 => Box::new(
6916                ReadXdrIter::<_, ConfigSettingContractHistoricalDataV0>::new(
6917                    &mut r.inner,
6918                    r.limits.clone(),
6919                )
6920                .map(|r| r.map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t)))),
6921            ),
6922            TypeVariant::ConfigSettingContractEventsV0 => Box::new(
6923                ReadXdrIter::<_, ConfigSettingContractEventsV0>::new(
6924                    &mut r.inner,
6925                    r.limits.clone(),
6926                )
6927                .map(|r| r.map(|t| Self::ConfigSettingContractEventsV0(Box::new(t)))),
6928            ),
6929            TypeVariant::ConfigSettingContractBandwidthV0 => Box::new(
6930                ReadXdrIter::<_, ConfigSettingContractBandwidthV0>::new(
6931                    &mut r.inner,
6932                    r.limits.clone(),
6933                )
6934                .map(|r| r.map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t)))),
6935            ),
6936            TypeVariant::ContractCostType => Box::new(
6937                ReadXdrIter::<_, ContractCostType>::new(&mut r.inner, r.limits.clone())
6938                    .map(|r| r.map(|t| Self::ContractCostType(Box::new(t)))),
6939            ),
6940            TypeVariant::ContractCostParamEntry => Box::new(
6941                ReadXdrIter::<_, ContractCostParamEntry>::new(&mut r.inner, r.limits.clone())
6942                    .map(|r| r.map(|t| Self::ContractCostParamEntry(Box::new(t)))),
6943            ),
6944            TypeVariant::StateArchivalSettings => Box::new(
6945                ReadXdrIter::<_, StateArchivalSettings>::new(&mut r.inner, r.limits.clone())
6946                    .map(|r| r.map(|t| Self::StateArchivalSettings(Box::new(t)))),
6947            ),
6948            TypeVariant::EvictionIterator => Box::new(
6949                ReadXdrIter::<_, EvictionIterator>::new(&mut r.inner, r.limits.clone())
6950                    .map(|r| r.map(|t| Self::EvictionIterator(Box::new(t)))),
6951            ),
6952            TypeVariant::ConfigSettingScpTiming => Box::new(
6953                ReadXdrIter::<_, ConfigSettingScpTiming>::new(&mut r.inner, r.limits.clone())
6954                    .map(|r| r.map(|t| Self::ConfigSettingScpTiming(Box::new(t)))),
6955            ),
6956            TypeVariant::FrozenLedgerKeys => Box::new(
6957                ReadXdrIter::<_, FrozenLedgerKeys>::new(&mut r.inner, r.limits.clone())
6958                    .map(|r| r.map(|t| Self::FrozenLedgerKeys(Box::new(t)))),
6959            ),
6960            TypeVariant::FrozenLedgerKeysDelta => Box::new(
6961                ReadXdrIter::<_, FrozenLedgerKeysDelta>::new(&mut r.inner, r.limits.clone())
6962                    .map(|r| r.map(|t| Self::FrozenLedgerKeysDelta(Box::new(t)))),
6963            ),
6964            TypeVariant::FreezeBypassTxs => Box::new(
6965                ReadXdrIter::<_, FreezeBypassTxs>::new(&mut r.inner, r.limits.clone())
6966                    .map(|r| r.map(|t| Self::FreezeBypassTxs(Box::new(t)))),
6967            ),
6968            TypeVariant::FreezeBypassTxsDelta => Box::new(
6969                ReadXdrIter::<_, FreezeBypassTxsDelta>::new(&mut r.inner, r.limits.clone())
6970                    .map(|r| r.map(|t| Self::FreezeBypassTxsDelta(Box::new(t)))),
6971            ),
6972            TypeVariant::ContractCostParams => Box::new(
6973                ReadXdrIter::<_, ContractCostParams>::new(&mut r.inner, r.limits.clone())
6974                    .map(|r| r.map(|t| Self::ContractCostParams(Box::new(t)))),
6975            ),
6976            TypeVariant::ConfigSettingId => Box::new(
6977                ReadXdrIter::<_, ConfigSettingId>::new(&mut r.inner, r.limits.clone())
6978                    .map(|r| r.map(|t| Self::ConfigSettingId(Box::new(t)))),
6979            ),
6980            TypeVariant::ConfigSettingEntry => Box::new(
6981                ReadXdrIter::<_, ConfigSettingEntry>::new(&mut r.inner, r.limits.clone())
6982                    .map(|r| r.map(|t| Self::ConfigSettingEntry(Box::new(t)))),
6983            ),
6984            TypeVariant::ScEnvMetaKind => Box::new(
6985                ReadXdrIter::<_, ScEnvMetaKind>::new(&mut r.inner, r.limits.clone())
6986                    .map(|r| r.map(|t| Self::ScEnvMetaKind(Box::new(t)))),
6987            ),
6988            TypeVariant::ScEnvMetaEntry => Box::new(
6989                ReadXdrIter::<_, ScEnvMetaEntry>::new(&mut r.inner, r.limits.clone())
6990                    .map(|r| r.map(|t| Self::ScEnvMetaEntry(Box::new(t)))),
6991            ),
6992            TypeVariant::ScEnvMetaEntryInterfaceVersion => Box::new(
6993                ReadXdrIter::<_, ScEnvMetaEntryInterfaceVersion>::new(
6994                    &mut r.inner,
6995                    r.limits.clone(),
6996                )
6997                .map(|r| r.map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t)))),
6998            ),
6999            TypeVariant::ScMetaV0 => Box::new(
7000                ReadXdrIter::<_, ScMetaV0>::new(&mut r.inner, r.limits.clone())
7001                    .map(|r| r.map(|t| Self::ScMetaV0(Box::new(t)))),
7002            ),
7003            TypeVariant::ScMetaKind => Box::new(
7004                ReadXdrIter::<_, ScMetaKind>::new(&mut r.inner, r.limits.clone())
7005                    .map(|r| r.map(|t| Self::ScMetaKind(Box::new(t)))),
7006            ),
7007            TypeVariant::ScMetaEntry => Box::new(
7008                ReadXdrIter::<_, ScMetaEntry>::new(&mut r.inner, r.limits.clone())
7009                    .map(|r| r.map(|t| Self::ScMetaEntry(Box::new(t)))),
7010            ),
7011            TypeVariant::ScSpecType => Box::new(
7012                ReadXdrIter::<_, ScSpecType>::new(&mut r.inner, r.limits.clone())
7013                    .map(|r| r.map(|t| Self::ScSpecType(Box::new(t)))),
7014            ),
7015            TypeVariant::ScSpecTypeOption => Box::new(
7016                ReadXdrIter::<_, ScSpecTypeOption>::new(&mut r.inner, r.limits.clone())
7017                    .map(|r| r.map(|t| Self::ScSpecTypeOption(Box::new(t)))),
7018            ),
7019            TypeVariant::ScSpecTypeResult => Box::new(
7020                ReadXdrIter::<_, ScSpecTypeResult>::new(&mut r.inner, r.limits.clone())
7021                    .map(|r| r.map(|t| Self::ScSpecTypeResult(Box::new(t)))),
7022            ),
7023            TypeVariant::ScSpecTypeVec => Box::new(
7024                ReadXdrIter::<_, ScSpecTypeVec>::new(&mut r.inner, r.limits.clone())
7025                    .map(|r| r.map(|t| Self::ScSpecTypeVec(Box::new(t)))),
7026            ),
7027            TypeVariant::ScSpecTypeMap => Box::new(
7028                ReadXdrIter::<_, ScSpecTypeMap>::new(&mut r.inner, r.limits.clone())
7029                    .map(|r| r.map(|t| Self::ScSpecTypeMap(Box::new(t)))),
7030            ),
7031            TypeVariant::ScSpecTypeTuple => Box::new(
7032                ReadXdrIter::<_, ScSpecTypeTuple>::new(&mut r.inner, r.limits.clone())
7033                    .map(|r| r.map(|t| Self::ScSpecTypeTuple(Box::new(t)))),
7034            ),
7035            TypeVariant::ScSpecTypeBytesN => Box::new(
7036                ReadXdrIter::<_, ScSpecTypeBytesN>::new(&mut r.inner, r.limits.clone())
7037                    .map(|r| r.map(|t| Self::ScSpecTypeBytesN(Box::new(t)))),
7038            ),
7039            TypeVariant::ScSpecTypeUdt => Box::new(
7040                ReadXdrIter::<_, ScSpecTypeUdt>::new(&mut r.inner, r.limits.clone())
7041                    .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t)))),
7042            ),
7043            TypeVariant::ScSpecTypeDef => Box::new(
7044                ReadXdrIter::<_, ScSpecTypeDef>::new(&mut r.inner, r.limits.clone())
7045                    .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t)))),
7046            ),
7047            TypeVariant::ScSpecUdtStructFieldV0 => Box::new(
7048                ReadXdrIter::<_, ScSpecUdtStructFieldV0>::new(&mut r.inner, r.limits.clone())
7049                    .map(|r| r.map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t)))),
7050            ),
7051            TypeVariant::ScSpecUdtStructV0 => Box::new(
7052                ReadXdrIter::<_, ScSpecUdtStructV0>::new(&mut r.inner, r.limits.clone())
7053                    .map(|r| r.map(|t| Self::ScSpecUdtStructV0(Box::new(t)))),
7054            ),
7055            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Box::new(
7056                ReadXdrIter::<_, ScSpecUdtUnionCaseVoidV0>::new(&mut r.inner, r.limits.clone())
7057                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t)))),
7058            ),
7059            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Box::new(
7060                ReadXdrIter::<_, ScSpecUdtUnionCaseTupleV0>::new(&mut r.inner, r.limits.clone())
7061                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t)))),
7062            ),
7063            TypeVariant::ScSpecUdtUnionCaseV0Kind => Box::new(
7064                ReadXdrIter::<_, ScSpecUdtUnionCaseV0Kind>::new(&mut r.inner, r.limits.clone())
7065                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t)))),
7066            ),
7067            TypeVariant::ScSpecUdtUnionCaseV0 => Box::new(
7068                ReadXdrIter::<_, ScSpecUdtUnionCaseV0>::new(&mut r.inner, r.limits.clone())
7069                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t)))),
7070            ),
7071            TypeVariant::ScSpecUdtUnionV0 => Box::new(
7072                ReadXdrIter::<_, ScSpecUdtUnionV0>::new(&mut r.inner, r.limits.clone())
7073                    .map(|r| r.map(|t| Self::ScSpecUdtUnionV0(Box::new(t)))),
7074            ),
7075            TypeVariant::ScSpecUdtEnumCaseV0 => Box::new(
7076                ReadXdrIter::<_, ScSpecUdtEnumCaseV0>::new(&mut r.inner, r.limits.clone())
7077                    .map(|r| r.map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t)))),
7078            ),
7079            TypeVariant::ScSpecUdtEnumV0 => Box::new(
7080                ReadXdrIter::<_, ScSpecUdtEnumV0>::new(&mut r.inner, r.limits.clone())
7081                    .map(|r| r.map(|t| Self::ScSpecUdtEnumV0(Box::new(t)))),
7082            ),
7083            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Box::new(
7084                ReadXdrIter::<_, ScSpecUdtErrorEnumCaseV0>::new(&mut r.inner, r.limits.clone())
7085                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t)))),
7086            ),
7087            TypeVariant::ScSpecUdtErrorEnumV0 => Box::new(
7088                ReadXdrIter::<_, ScSpecUdtErrorEnumV0>::new(&mut r.inner, r.limits.clone())
7089                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t)))),
7090            ),
7091            TypeVariant::ScSpecFunctionInputV0 => Box::new(
7092                ReadXdrIter::<_, ScSpecFunctionInputV0>::new(&mut r.inner, r.limits.clone())
7093                    .map(|r| r.map(|t| Self::ScSpecFunctionInputV0(Box::new(t)))),
7094            ),
7095            TypeVariant::ScSpecFunctionV0 => Box::new(
7096                ReadXdrIter::<_, ScSpecFunctionV0>::new(&mut r.inner, r.limits.clone())
7097                    .map(|r| r.map(|t| Self::ScSpecFunctionV0(Box::new(t)))),
7098            ),
7099            TypeVariant::ScSpecEventParamLocationV0 => Box::new(
7100                ReadXdrIter::<_, ScSpecEventParamLocationV0>::new(&mut r.inner, r.limits.clone())
7101                    .map(|r| r.map(|t| Self::ScSpecEventParamLocationV0(Box::new(t)))),
7102            ),
7103            TypeVariant::ScSpecEventParamV0 => Box::new(
7104                ReadXdrIter::<_, ScSpecEventParamV0>::new(&mut r.inner, r.limits.clone())
7105                    .map(|r| r.map(|t| Self::ScSpecEventParamV0(Box::new(t)))),
7106            ),
7107            TypeVariant::ScSpecEventDataFormat => Box::new(
7108                ReadXdrIter::<_, ScSpecEventDataFormat>::new(&mut r.inner, r.limits.clone())
7109                    .map(|r| r.map(|t| Self::ScSpecEventDataFormat(Box::new(t)))),
7110            ),
7111            TypeVariant::ScSpecEventV0 => Box::new(
7112                ReadXdrIter::<_, ScSpecEventV0>::new(&mut r.inner, r.limits.clone())
7113                    .map(|r| r.map(|t| Self::ScSpecEventV0(Box::new(t)))),
7114            ),
7115            TypeVariant::ScSpecEntryKind => Box::new(
7116                ReadXdrIter::<_, ScSpecEntryKind>::new(&mut r.inner, r.limits.clone())
7117                    .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t)))),
7118            ),
7119            TypeVariant::ScSpecEntry => Box::new(
7120                ReadXdrIter::<_, ScSpecEntry>::new(&mut r.inner, r.limits.clone())
7121                    .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t)))),
7122            ),
7123            TypeVariant::ScBytes => Box::new(
7124                ReadXdrIter::<_, ScBytes>::new(&mut r.inner, r.limits.clone())
7125                    .map(|r| r.map(|t| Self::ScBytes(Box::new(t)))),
7126            ),
7127            TypeVariant::ScString => Box::new(
7128                ReadXdrIter::<_, ScString>::new(&mut r.inner, r.limits.clone())
7129                    .map(|r| r.map(|t| Self::ScString(Box::new(t)))),
7130            ),
7131            TypeVariant::ScSymbol => Box::new(
7132                ReadXdrIter::<_, ScSymbol>::new(&mut r.inner, r.limits.clone())
7133                    .map(|r| r.map(|t| Self::ScSymbol(Box::new(t)))),
7134            ),
7135            TypeVariant::ScValType => Box::new(
7136                ReadXdrIter::<_, ScValType>::new(&mut r.inner, r.limits.clone())
7137                    .map(|r| r.map(|t| Self::ScValType(Box::new(t)))),
7138            ),
7139            TypeVariant::ScErrorType => Box::new(
7140                ReadXdrIter::<_, ScErrorType>::new(&mut r.inner, r.limits.clone())
7141                    .map(|r| r.map(|t| Self::ScErrorType(Box::new(t)))),
7142            ),
7143            TypeVariant::ScErrorCode => Box::new(
7144                ReadXdrIter::<_, ScErrorCode>::new(&mut r.inner, r.limits.clone())
7145                    .map(|r| r.map(|t| Self::ScErrorCode(Box::new(t)))),
7146            ),
7147            TypeVariant::ScError => Box::new(
7148                ReadXdrIter::<_, ScError>::new(&mut r.inner, r.limits.clone())
7149                    .map(|r| r.map(|t| Self::ScError(Box::new(t)))),
7150            ),
7151            TypeVariant::UInt128Parts => Box::new(
7152                ReadXdrIter::<_, UInt128Parts>::new(&mut r.inner, r.limits.clone())
7153                    .map(|r| r.map(|t| Self::UInt128Parts(Box::new(t)))),
7154            ),
7155            TypeVariant::Int128Parts => Box::new(
7156                ReadXdrIter::<_, Int128Parts>::new(&mut r.inner, r.limits.clone())
7157                    .map(|r| r.map(|t| Self::Int128Parts(Box::new(t)))),
7158            ),
7159            TypeVariant::UInt256Parts => Box::new(
7160                ReadXdrIter::<_, UInt256Parts>::new(&mut r.inner, r.limits.clone())
7161                    .map(|r| r.map(|t| Self::UInt256Parts(Box::new(t)))),
7162            ),
7163            TypeVariant::Int256Parts => Box::new(
7164                ReadXdrIter::<_, Int256Parts>::new(&mut r.inner, r.limits.clone())
7165                    .map(|r| r.map(|t| Self::Int256Parts(Box::new(t)))),
7166            ),
7167            TypeVariant::ContractExecutableType => Box::new(
7168                ReadXdrIter::<_, ContractExecutableType>::new(&mut r.inner, r.limits.clone())
7169                    .map(|r| r.map(|t| Self::ContractExecutableType(Box::new(t)))),
7170            ),
7171            TypeVariant::ScAddressType => Box::new(
7172                ReadXdrIter::<_, ScAddressType>::new(&mut r.inner, r.limits.clone())
7173                    .map(|r| r.map(|t| Self::ScAddressType(Box::new(t)))),
7174            ),
7175            TypeVariant::MuxedEd25519Account => Box::new(
7176                ReadXdrIter::<_, MuxedEd25519Account>::new(&mut r.inner, r.limits.clone())
7177                    .map(|r| r.map(|t| Self::MuxedEd25519Account(Box::new(t)))),
7178            ),
7179            #[cfg(feature = "cap_0084_muxed_contract")]
7180            TypeVariant::MuxedContract => Box::new(
7181                ReadXdrIter::<_, MuxedContract>::new(&mut r.inner, r.limits.clone())
7182                    .map(|r| r.map(|t| Self::MuxedContract(Box::new(t)))),
7183            ),
7184            TypeVariant::ScAddress => Box::new(
7185                ReadXdrIter::<_, ScAddress>::new(&mut r.inner, r.limits.clone())
7186                    .map(|r| r.map(|t| Self::ScAddress(Box::new(t)))),
7187            ),
7188            TypeVariant::ContractExecutableExternalRef => Box::new(
7189                ReadXdrIter::<_, ContractExecutableExternalRef>::new(
7190                    &mut r.inner,
7191                    r.limits.clone(),
7192                )
7193                .map(|r| r.map(|t| Self::ContractExecutableExternalRef(Box::new(t)))),
7194            ),
7195            TypeVariant::ContractExecutable => Box::new(
7196                ReadXdrIter::<_, ContractExecutable>::new(&mut r.inner, r.limits.clone())
7197                    .map(|r| r.map(|t| Self::ContractExecutable(Box::new(t)))),
7198            ),
7199            TypeVariant::ScVec => Box::new(
7200                ReadXdrIter::<_, ScVec>::new(&mut r.inner, r.limits.clone())
7201                    .map(|r| r.map(|t| Self::ScVec(Box::new(t)))),
7202            ),
7203            TypeVariant::ScMap => Box::new(
7204                ReadXdrIter::<_, ScMap>::new(&mut r.inner, r.limits.clone())
7205                    .map(|r| r.map(|t| Self::ScMap(Box::new(t)))),
7206            ),
7207            TypeVariant::ScNonceKey => Box::new(
7208                ReadXdrIter::<_, ScNonceKey>::new(&mut r.inner, r.limits.clone())
7209                    .map(|r| r.map(|t| Self::ScNonceKey(Box::new(t)))),
7210            ),
7211            TypeVariant::ScContractInstance => Box::new(
7212                ReadXdrIter::<_, ScContractInstance>::new(&mut r.inner, r.limits.clone())
7213                    .map(|r| r.map(|t| Self::ScContractInstance(Box::new(t)))),
7214            ),
7215            TypeVariant::ScVal => Box::new(
7216                ReadXdrIter::<_, ScVal>::new(&mut r.inner, r.limits.clone())
7217                    .map(|r| r.map(|t| Self::ScVal(Box::new(t)))),
7218            ),
7219            TypeVariant::ScMapEntry => Box::new(
7220                ReadXdrIter::<_, ScMapEntry>::new(&mut r.inner, r.limits.clone())
7221                    .map(|r| r.map(|t| Self::ScMapEntry(Box::new(t)))),
7222            ),
7223            TypeVariant::LedgerCloseMetaBatch => Box::new(
7224                ReadXdrIter::<_, LedgerCloseMetaBatch>::new(&mut r.inner, r.limits.clone())
7225                    .map(|r| r.map(|t| Self::LedgerCloseMetaBatch(Box::new(t)))),
7226            ),
7227            TypeVariant::StoredTransactionSet => Box::new(
7228                ReadXdrIter::<_, StoredTransactionSet>::new(&mut r.inner, r.limits.clone())
7229                    .map(|r| r.map(|t| Self::StoredTransactionSet(Box::new(t)))),
7230            ),
7231            TypeVariant::StoredDebugTransactionSet => Box::new(
7232                ReadXdrIter::<_, StoredDebugTransactionSet>::new(&mut r.inner, r.limits.clone())
7233                    .map(|r| r.map(|t| Self::StoredDebugTransactionSet(Box::new(t)))),
7234            ),
7235            TypeVariant::PersistedScpStateV0 => Box::new(
7236                ReadXdrIter::<_, PersistedScpStateV0>::new(&mut r.inner, r.limits.clone())
7237                    .map(|r| r.map(|t| Self::PersistedScpStateV0(Box::new(t)))),
7238            ),
7239            TypeVariant::PersistedScpStateV1 => Box::new(
7240                ReadXdrIter::<_, PersistedScpStateV1>::new(&mut r.inner, r.limits.clone())
7241                    .map(|r| r.map(|t| Self::PersistedScpStateV1(Box::new(t)))),
7242            ),
7243            TypeVariant::PersistedScpState => Box::new(
7244                ReadXdrIter::<_, PersistedScpState>::new(&mut r.inner, r.limits.clone())
7245                    .map(|r| r.map(|t| Self::PersistedScpState(Box::new(t)))),
7246            ),
7247            TypeVariant::Thresholds => Box::new(
7248                ReadXdrIter::<_, Thresholds>::new(&mut r.inner, r.limits.clone())
7249                    .map(|r| r.map(|t| Self::Thresholds(Box::new(t)))),
7250            ),
7251            TypeVariant::String32 => Box::new(
7252                ReadXdrIter::<_, String32>::new(&mut r.inner, r.limits.clone())
7253                    .map(|r| r.map(|t| Self::String32(Box::new(t)))),
7254            ),
7255            TypeVariant::String64 => Box::new(
7256                ReadXdrIter::<_, String64>::new(&mut r.inner, r.limits.clone())
7257                    .map(|r| r.map(|t| Self::String64(Box::new(t)))),
7258            ),
7259            TypeVariant::SequenceNumber => Box::new(
7260                ReadXdrIter::<_, SequenceNumber>::new(&mut r.inner, r.limits.clone())
7261                    .map(|r| r.map(|t| Self::SequenceNumber(Box::new(t)))),
7262            ),
7263            TypeVariant::DataValue => Box::new(
7264                ReadXdrIter::<_, DataValue>::new(&mut r.inner, r.limits.clone())
7265                    .map(|r| r.map(|t| Self::DataValue(Box::new(t)))),
7266            ),
7267            TypeVariant::AssetCode4 => Box::new(
7268                ReadXdrIter::<_, AssetCode4>::new(&mut r.inner, r.limits.clone())
7269                    .map(|r| r.map(|t| Self::AssetCode4(Box::new(t)))),
7270            ),
7271            TypeVariant::AssetCode12 => Box::new(
7272                ReadXdrIter::<_, AssetCode12>::new(&mut r.inner, r.limits.clone())
7273                    .map(|r| r.map(|t| Self::AssetCode12(Box::new(t)))),
7274            ),
7275            TypeVariant::AssetType => Box::new(
7276                ReadXdrIter::<_, AssetType>::new(&mut r.inner, r.limits.clone())
7277                    .map(|r| r.map(|t| Self::AssetType(Box::new(t)))),
7278            ),
7279            TypeVariant::AssetCode => Box::new(
7280                ReadXdrIter::<_, AssetCode>::new(&mut r.inner, r.limits.clone())
7281                    .map(|r| r.map(|t| Self::AssetCode(Box::new(t)))),
7282            ),
7283            TypeVariant::AlphaNum4 => Box::new(
7284                ReadXdrIter::<_, AlphaNum4>::new(&mut r.inner, r.limits.clone())
7285                    .map(|r| r.map(|t| Self::AlphaNum4(Box::new(t)))),
7286            ),
7287            TypeVariant::AlphaNum12 => Box::new(
7288                ReadXdrIter::<_, AlphaNum12>::new(&mut r.inner, r.limits.clone())
7289                    .map(|r| r.map(|t| Self::AlphaNum12(Box::new(t)))),
7290            ),
7291            TypeVariant::Asset => Box::new(
7292                ReadXdrIter::<_, Asset>::new(&mut r.inner, r.limits.clone())
7293                    .map(|r| r.map(|t| Self::Asset(Box::new(t)))),
7294            ),
7295            TypeVariant::Price => Box::new(
7296                ReadXdrIter::<_, Price>::new(&mut r.inner, r.limits.clone())
7297                    .map(|r| r.map(|t| Self::Price(Box::new(t)))),
7298            ),
7299            TypeVariant::Liabilities => Box::new(
7300                ReadXdrIter::<_, Liabilities>::new(&mut r.inner, r.limits.clone())
7301                    .map(|r| r.map(|t| Self::Liabilities(Box::new(t)))),
7302            ),
7303            TypeVariant::ThresholdIndexes => Box::new(
7304                ReadXdrIter::<_, ThresholdIndexes>::new(&mut r.inner, r.limits.clone())
7305                    .map(|r| r.map(|t| Self::ThresholdIndexes(Box::new(t)))),
7306            ),
7307            TypeVariant::LedgerEntryType => Box::new(
7308                ReadXdrIter::<_, LedgerEntryType>::new(&mut r.inner, r.limits.clone())
7309                    .map(|r| r.map(|t| Self::LedgerEntryType(Box::new(t)))),
7310            ),
7311            TypeVariant::Signer => Box::new(
7312                ReadXdrIter::<_, Signer>::new(&mut r.inner, r.limits.clone())
7313                    .map(|r| r.map(|t| Self::Signer(Box::new(t)))),
7314            ),
7315            TypeVariant::AccountFlags => Box::new(
7316                ReadXdrIter::<_, AccountFlags>::new(&mut r.inner, r.limits.clone())
7317                    .map(|r| r.map(|t| Self::AccountFlags(Box::new(t)))),
7318            ),
7319            TypeVariant::SponsorshipDescriptor => Box::new(
7320                ReadXdrIter::<_, SponsorshipDescriptor>::new(&mut r.inner, r.limits.clone())
7321                    .map(|r| r.map(|t| Self::SponsorshipDescriptor(Box::new(t)))),
7322            ),
7323            TypeVariant::AccountEntryExtensionV3 => Box::new(
7324                ReadXdrIter::<_, AccountEntryExtensionV3>::new(&mut r.inner, r.limits.clone())
7325                    .map(|r| r.map(|t| Self::AccountEntryExtensionV3(Box::new(t)))),
7326            ),
7327            TypeVariant::AccountEntryExtensionV2 => Box::new(
7328                ReadXdrIter::<_, AccountEntryExtensionV2>::new(&mut r.inner, r.limits.clone())
7329                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2(Box::new(t)))),
7330            ),
7331            TypeVariant::AccountEntryExtensionV2Ext => Box::new(
7332                ReadXdrIter::<_, AccountEntryExtensionV2Ext>::new(&mut r.inner, r.limits.clone())
7333                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t)))),
7334            ),
7335            TypeVariant::AccountEntryExtensionV1 => Box::new(
7336                ReadXdrIter::<_, AccountEntryExtensionV1>::new(&mut r.inner, r.limits.clone())
7337                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1(Box::new(t)))),
7338            ),
7339            TypeVariant::AccountEntryExtensionV1Ext => Box::new(
7340                ReadXdrIter::<_, AccountEntryExtensionV1Ext>::new(&mut r.inner, r.limits.clone())
7341                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t)))),
7342            ),
7343            TypeVariant::AccountEntry => Box::new(
7344                ReadXdrIter::<_, AccountEntry>::new(&mut r.inner, r.limits.clone())
7345                    .map(|r| r.map(|t| Self::AccountEntry(Box::new(t)))),
7346            ),
7347            TypeVariant::AccountEntryExt => Box::new(
7348                ReadXdrIter::<_, AccountEntryExt>::new(&mut r.inner, r.limits.clone())
7349                    .map(|r| r.map(|t| Self::AccountEntryExt(Box::new(t)))),
7350            ),
7351            TypeVariant::TrustLineFlags => Box::new(
7352                ReadXdrIter::<_, TrustLineFlags>::new(&mut r.inner, r.limits.clone())
7353                    .map(|r| r.map(|t| Self::TrustLineFlags(Box::new(t)))),
7354            ),
7355            TypeVariant::LiquidityPoolType => Box::new(
7356                ReadXdrIter::<_, LiquidityPoolType>::new(&mut r.inner, r.limits.clone())
7357                    .map(|r| r.map(|t| Self::LiquidityPoolType(Box::new(t)))),
7358            ),
7359            TypeVariant::TrustLineAsset => Box::new(
7360                ReadXdrIter::<_, TrustLineAsset>::new(&mut r.inner, r.limits.clone())
7361                    .map(|r| r.map(|t| Self::TrustLineAsset(Box::new(t)))),
7362            ),
7363            TypeVariant::TrustLineEntryExtensionV2 => Box::new(
7364                ReadXdrIter::<_, TrustLineEntryExtensionV2>::new(&mut r.inner, r.limits.clone())
7365                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2(Box::new(t)))),
7366            ),
7367            TypeVariant::TrustLineEntryExtensionV2Ext => Box::new(
7368                ReadXdrIter::<_, TrustLineEntryExtensionV2Ext>::new(&mut r.inner, r.limits.clone())
7369                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t)))),
7370            ),
7371            TypeVariant::TrustLineEntry => Box::new(
7372                ReadXdrIter::<_, TrustLineEntry>::new(&mut r.inner, r.limits.clone())
7373                    .map(|r| r.map(|t| Self::TrustLineEntry(Box::new(t)))),
7374            ),
7375            TypeVariant::TrustLineEntryExt => Box::new(
7376                ReadXdrIter::<_, TrustLineEntryExt>::new(&mut r.inner, r.limits.clone())
7377                    .map(|r| r.map(|t| Self::TrustLineEntryExt(Box::new(t)))),
7378            ),
7379            TypeVariant::TrustLineEntryV1 => Box::new(
7380                ReadXdrIter::<_, TrustLineEntryV1>::new(&mut r.inner, r.limits.clone())
7381                    .map(|r| r.map(|t| Self::TrustLineEntryV1(Box::new(t)))),
7382            ),
7383            TypeVariant::TrustLineEntryV1Ext => Box::new(
7384                ReadXdrIter::<_, TrustLineEntryV1Ext>::new(&mut r.inner, r.limits.clone())
7385                    .map(|r| r.map(|t| Self::TrustLineEntryV1Ext(Box::new(t)))),
7386            ),
7387            TypeVariant::OfferEntryFlags => Box::new(
7388                ReadXdrIter::<_, OfferEntryFlags>::new(&mut r.inner, r.limits.clone())
7389                    .map(|r| r.map(|t| Self::OfferEntryFlags(Box::new(t)))),
7390            ),
7391            TypeVariant::OfferEntry => Box::new(
7392                ReadXdrIter::<_, OfferEntry>::new(&mut r.inner, r.limits.clone())
7393                    .map(|r| r.map(|t| Self::OfferEntry(Box::new(t)))),
7394            ),
7395            TypeVariant::OfferEntryExt => Box::new(
7396                ReadXdrIter::<_, OfferEntryExt>::new(&mut r.inner, r.limits.clone())
7397                    .map(|r| r.map(|t| Self::OfferEntryExt(Box::new(t)))),
7398            ),
7399            TypeVariant::DataEntry => Box::new(
7400                ReadXdrIter::<_, DataEntry>::new(&mut r.inner, r.limits.clone())
7401                    .map(|r| r.map(|t| Self::DataEntry(Box::new(t)))),
7402            ),
7403            TypeVariant::DataEntryExt => Box::new(
7404                ReadXdrIter::<_, DataEntryExt>::new(&mut r.inner, r.limits.clone())
7405                    .map(|r| r.map(|t| Self::DataEntryExt(Box::new(t)))),
7406            ),
7407            TypeVariant::ClaimPredicateType => Box::new(
7408                ReadXdrIter::<_, ClaimPredicateType>::new(&mut r.inner, r.limits.clone())
7409                    .map(|r| r.map(|t| Self::ClaimPredicateType(Box::new(t)))),
7410            ),
7411            TypeVariant::ClaimPredicate => Box::new(
7412                ReadXdrIter::<_, ClaimPredicate>::new(&mut r.inner, r.limits.clone())
7413                    .map(|r| r.map(|t| Self::ClaimPredicate(Box::new(t)))),
7414            ),
7415            TypeVariant::ClaimantType => Box::new(
7416                ReadXdrIter::<_, ClaimantType>::new(&mut r.inner, r.limits.clone())
7417                    .map(|r| r.map(|t| Self::ClaimantType(Box::new(t)))),
7418            ),
7419            TypeVariant::Claimant => Box::new(
7420                ReadXdrIter::<_, Claimant>::new(&mut r.inner, r.limits.clone())
7421                    .map(|r| r.map(|t| Self::Claimant(Box::new(t)))),
7422            ),
7423            TypeVariant::ClaimantV0 => Box::new(
7424                ReadXdrIter::<_, ClaimantV0>::new(&mut r.inner, r.limits.clone())
7425                    .map(|r| r.map(|t| Self::ClaimantV0(Box::new(t)))),
7426            ),
7427            TypeVariant::ClaimableBalanceFlags => Box::new(
7428                ReadXdrIter::<_, ClaimableBalanceFlags>::new(&mut r.inner, r.limits.clone())
7429                    .map(|r| r.map(|t| Self::ClaimableBalanceFlags(Box::new(t)))),
7430            ),
7431            TypeVariant::ClaimableBalanceEntryExtensionV1 => Box::new(
7432                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1>::new(
7433                    &mut r.inner,
7434                    r.limits.clone(),
7435                )
7436                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t)))),
7437            ),
7438            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Box::new(
7439                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1Ext>::new(
7440                    &mut r.inner,
7441                    r.limits.clone(),
7442                )
7443                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t)))),
7444            ),
7445            TypeVariant::ClaimableBalanceEntry => Box::new(
7446                ReadXdrIter::<_, ClaimableBalanceEntry>::new(&mut r.inner, r.limits.clone())
7447                    .map(|r| r.map(|t| Self::ClaimableBalanceEntry(Box::new(t)))),
7448            ),
7449            TypeVariant::ClaimableBalanceEntryExt => Box::new(
7450                ReadXdrIter::<_, ClaimableBalanceEntryExt>::new(&mut r.inner, r.limits.clone())
7451                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExt(Box::new(t)))),
7452            ),
7453            TypeVariant::LiquidityPoolConstantProductParameters => Box::new(
7454                ReadXdrIter::<_, LiquidityPoolConstantProductParameters>::new(
7455                    &mut r.inner,
7456                    r.limits.clone(),
7457                )
7458                .map(|r| r.map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t)))),
7459            ),
7460            TypeVariant::LiquidityPoolEntry => Box::new(
7461                ReadXdrIter::<_, LiquidityPoolEntry>::new(&mut r.inner, r.limits.clone())
7462                    .map(|r| r.map(|t| Self::LiquidityPoolEntry(Box::new(t)))),
7463            ),
7464            TypeVariant::LiquidityPoolEntryBody => Box::new(
7465                ReadXdrIter::<_, LiquidityPoolEntryBody>::new(&mut r.inner, r.limits.clone())
7466                    .map(|r| r.map(|t| Self::LiquidityPoolEntryBody(Box::new(t)))),
7467            ),
7468            TypeVariant::LiquidityPoolEntryConstantProduct => Box::new(
7469                ReadXdrIter::<_, LiquidityPoolEntryConstantProduct>::new(
7470                    &mut r.inner,
7471                    r.limits.clone(),
7472                )
7473                .map(|r| r.map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t)))),
7474            ),
7475            TypeVariant::ContractDataDurability => Box::new(
7476                ReadXdrIter::<_, ContractDataDurability>::new(&mut r.inner, r.limits.clone())
7477                    .map(|r| r.map(|t| Self::ContractDataDurability(Box::new(t)))),
7478            ),
7479            TypeVariant::ContractDataEntry => Box::new(
7480                ReadXdrIter::<_, ContractDataEntry>::new(&mut r.inner, r.limits.clone())
7481                    .map(|r| r.map(|t| Self::ContractDataEntry(Box::new(t)))),
7482            ),
7483            TypeVariant::ContractCodeCostInputs => Box::new(
7484                ReadXdrIter::<_, ContractCodeCostInputs>::new(&mut r.inner, r.limits.clone())
7485                    .map(|r| r.map(|t| Self::ContractCodeCostInputs(Box::new(t)))),
7486            ),
7487            TypeVariant::ContractCodeEntry => Box::new(
7488                ReadXdrIter::<_, ContractCodeEntry>::new(&mut r.inner, r.limits.clone())
7489                    .map(|r| r.map(|t| Self::ContractCodeEntry(Box::new(t)))),
7490            ),
7491            TypeVariant::ContractCodeEntryExt => Box::new(
7492                ReadXdrIter::<_, ContractCodeEntryExt>::new(&mut r.inner, r.limits.clone())
7493                    .map(|r| r.map(|t| Self::ContractCodeEntryExt(Box::new(t)))),
7494            ),
7495            TypeVariant::ContractCodeEntryV1 => Box::new(
7496                ReadXdrIter::<_, ContractCodeEntryV1>::new(&mut r.inner, r.limits.clone())
7497                    .map(|r| r.map(|t| Self::ContractCodeEntryV1(Box::new(t)))),
7498            ),
7499            TypeVariant::TtlEntry => Box::new(
7500                ReadXdrIter::<_, TtlEntry>::new(&mut r.inner, r.limits.clone())
7501                    .map(|r| r.map(|t| Self::TtlEntry(Box::new(t)))),
7502            ),
7503            TypeVariant::LedgerEntryExtensionV1 => Box::new(
7504                ReadXdrIter::<_, LedgerEntryExtensionV1>::new(&mut r.inner, r.limits.clone())
7505                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1(Box::new(t)))),
7506            ),
7507            TypeVariant::LedgerEntryExtensionV1Ext => Box::new(
7508                ReadXdrIter::<_, LedgerEntryExtensionV1Ext>::new(&mut r.inner, r.limits.clone())
7509                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t)))),
7510            ),
7511            TypeVariant::LedgerEntry => Box::new(
7512                ReadXdrIter::<_, LedgerEntry>::new(&mut r.inner, r.limits.clone())
7513                    .map(|r| r.map(|t| Self::LedgerEntry(Box::new(t)))),
7514            ),
7515            TypeVariant::LedgerEntryData => Box::new(
7516                ReadXdrIter::<_, LedgerEntryData>::new(&mut r.inner, r.limits.clone())
7517                    .map(|r| r.map(|t| Self::LedgerEntryData(Box::new(t)))),
7518            ),
7519            TypeVariant::LedgerEntryExt => Box::new(
7520                ReadXdrIter::<_, LedgerEntryExt>::new(&mut r.inner, r.limits.clone())
7521                    .map(|r| r.map(|t| Self::LedgerEntryExt(Box::new(t)))),
7522            ),
7523            TypeVariant::LedgerKey => Box::new(
7524                ReadXdrIter::<_, LedgerKey>::new(&mut r.inner, r.limits.clone())
7525                    .map(|r| r.map(|t| Self::LedgerKey(Box::new(t)))),
7526            ),
7527            TypeVariant::LedgerKeyAccount => Box::new(
7528                ReadXdrIter::<_, LedgerKeyAccount>::new(&mut r.inner, r.limits.clone())
7529                    .map(|r| r.map(|t| Self::LedgerKeyAccount(Box::new(t)))),
7530            ),
7531            TypeVariant::LedgerKeyTrustLine => Box::new(
7532                ReadXdrIter::<_, LedgerKeyTrustLine>::new(&mut r.inner, r.limits.clone())
7533                    .map(|r| r.map(|t| Self::LedgerKeyTrustLine(Box::new(t)))),
7534            ),
7535            TypeVariant::LedgerKeyOffer => Box::new(
7536                ReadXdrIter::<_, LedgerKeyOffer>::new(&mut r.inner, r.limits.clone())
7537                    .map(|r| r.map(|t| Self::LedgerKeyOffer(Box::new(t)))),
7538            ),
7539            TypeVariant::LedgerKeyData => Box::new(
7540                ReadXdrIter::<_, LedgerKeyData>::new(&mut r.inner, r.limits.clone())
7541                    .map(|r| r.map(|t| Self::LedgerKeyData(Box::new(t)))),
7542            ),
7543            TypeVariant::LedgerKeyClaimableBalance => Box::new(
7544                ReadXdrIter::<_, LedgerKeyClaimableBalance>::new(&mut r.inner, r.limits.clone())
7545                    .map(|r| r.map(|t| Self::LedgerKeyClaimableBalance(Box::new(t)))),
7546            ),
7547            TypeVariant::LedgerKeyLiquidityPool => Box::new(
7548                ReadXdrIter::<_, LedgerKeyLiquidityPool>::new(&mut r.inner, r.limits.clone())
7549                    .map(|r| r.map(|t| Self::LedgerKeyLiquidityPool(Box::new(t)))),
7550            ),
7551            TypeVariant::LedgerKeyContractData => Box::new(
7552                ReadXdrIter::<_, LedgerKeyContractData>::new(&mut r.inner, r.limits.clone())
7553                    .map(|r| r.map(|t| Self::LedgerKeyContractData(Box::new(t)))),
7554            ),
7555            TypeVariant::LedgerKeyContractCode => Box::new(
7556                ReadXdrIter::<_, LedgerKeyContractCode>::new(&mut r.inner, r.limits.clone())
7557                    .map(|r| r.map(|t| Self::LedgerKeyContractCode(Box::new(t)))),
7558            ),
7559            TypeVariant::LedgerKeyConfigSetting => Box::new(
7560                ReadXdrIter::<_, LedgerKeyConfigSetting>::new(&mut r.inner, r.limits.clone())
7561                    .map(|r| r.map(|t| Self::LedgerKeyConfigSetting(Box::new(t)))),
7562            ),
7563            TypeVariant::LedgerKeyTtl => Box::new(
7564                ReadXdrIter::<_, LedgerKeyTtl>::new(&mut r.inner, r.limits.clone())
7565                    .map(|r| r.map(|t| Self::LedgerKeyTtl(Box::new(t)))),
7566            ),
7567            TypeVariant::EnvelopeType => Box::new(
7568                ReadXdrIter::<_, EnvelopeType>::new(&mut r.inner, r.limits.clone())
7569                    .map(|r| r.map(|t| Self::EnvelopeType(Box::new(t)))),
7570            ),
7571            TypeVariant::BucketListType => Box::new(
7572                ReadXdrIter::<_, BucketListType>::new(&mut r.inner, r.limits.clone())
7573                    .map(|r| r.map(|t| Self::BucketListType(Box::new(t)))),
7574            ),
7575            TypeVariant::BucketEntryType => Box::new(
7576                ReadXdrIter::<_, BucketEntryType>::new(&mut r.inner, r.limits.clone())
7577                    .map(|r| r.map(|t| Self::BucketEntryType(Box::new(t)))),
7578            ),
7579            TypeVariant::HotArchiveBucketEntryType => Box::new(
7580                ReadXdrIter::<_, HotArchiveBucketEntryType>::new(&mut r.inner, r.limits.clone())
7581                    .map(|r| r.map(|t| Self::HotArchiveBucketEntryType(Box::new(t)))),
7582            ),
7583            TypeVariant::BucketMetadata => Box::new(
7584                ReadXdrIter::<_, BucketMetadata>::new(&mut r.inner, r.limits.clone())
7585                    .map(|r| r.map(|t| Self::BucketMetadata(Box::new(t)))),
7586            ),
7587            TypeVariant::BucketMetadataExt => Box::new(
7588                ReadXdrIter::<_, BucketMetadataExt>::new(&mut r.inner, r.limits.clone())
7589                    .map(|r| r.map(|t| Self::BucketMetadataExt(Box::new(t)))),
7590            ),
7591            TypeVariant::BucketEntry => Box::new(
7592                ReadXdrIter::<_, BucketEntry>::new(&mut r.inner, r.limits.clone())
7593                    .map(|r| r.map(|t| Self::BucketEntry(Box::new(t)))),
7594            ),
7595            TypeVariant::HotArchiveBucketEntry => Box::new(
7596                ReadXdrIter::<_, HotArchiveBucketEntry>::new(&mut r.inner, r.limits.clone())
7597                    .map(|r| r.map(|t| Self::HotArchiveBucketEntry(Box::new(t)))),
7598            ),
7599            TypeVariant::UpgradeType => Box::new(
7600                ReadXdrIter::<_, UpgradeType>::new(&mut r.inner, r.limits.clone())
7601                    .map(|r| r.map(|t| Self::UpgradeType(Box::new(t)))),
7602            ),
7603            TypeVariant::StellarValueType => Box::new(
7604                ReadXdrIter::<_, StellarValueType>::new(&mut r.inner, r.limits.clone())
7605                    .map(|r| r.map(|t| Self::StellarValueType(Box::new(t)))),
7606            ),
7607            TypeVariant::LedgerCloseValueSignature => Box::new(
7608                ReadXdrIter::<_, LedgerCloseValueSignature>::new(&mut r.inner, r.limits.clone())
7609                    .map(|r| r.map(|t| Self::LedgerCloseValueSignature(Box::new(t)))),
7610            ),
7611            TypeVariant::StellarValue => Box::new(
7612                ReadXdrIter::<_, StellarValue>::new(&mut r.inner, r.limits.clone())
7613                    .map(|r| r.map(|t| Self::StellarValue(Box::new(t)))),
7614            ),
7615            TypeVariant::StellarValueExt => Box::new(
7616                ReadXdrIter::<_, StellarValueExt>::new(&mut r.inner, r.limits.clone())
7617                    .map(|r| r.map(|t| Self::StellarValueExt(Box::new(t)))),
7618            ),
7619            TypeVariant::StellarValueProposedValue => Box::new(
7620                ReadXdrIter::<_, StellarValueProposedValue>::new(&mut r.inner, r.limits.clone())
7621                    .map(|r| r.map(|t| Self::StellarValueProposedValue(Box::new(t)))),
7622            ),
7623            TypeVariant::LedgerHeaderFlags => Box::new(
7624                ReadXdrIter::<_, LedgerHeaderFlags>::new(&mut r.inner, r.limits.clone())
7625                    .map(|r| r.map(|t| Self::LedgerHeaderFlags(Box::new(t)))),
7626            ),
7627            TypeVariant::LedgerHeaderExtensionV1 => Box::new(
7628                ReadXdrIter::<_, LedgerHeaderExtensionV1>::new(&mut r.inner, r.limits.clone())
7629                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1(Box::new(t)))),
7630            ),
7631            TypeVariant::LedgerHeaderExtensionV1Ext => Box::new(
7632                ReadXdrIter::<_, LedgerHeaderExtensionV1Ext>::new(&mut r.inner, r.limits.clone())
7633                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t)))),
7634            ),
7635            TypeVariant::LedgerHeader => Box::new(
7636                ReadXdrIter::<_, LedgerHeader>::new(&mut r.inner, r.limits.clone())
7637                    .map(|r| r.map(|t| Self::LedgerHeader(Box::new(t)))),
7638            ),
7639            TypeVariant::LedgerHeaderExt => Box::new(
7640                ReadXdrIter::<_, LedgerHeaderExt>::new(&mut r.inner, r.limits.clone())
7641                    .map(|r| r.map(|t| Self::LedgerHeaderExt(Box::new(t)))),
7642            ),
7643            TypeVariant::LedgerUpgradeType => Box::new(
7644                ReadXdrIter::<_, LedgerUpgradeType>::new(&mut r.inner, r.limits.clone())
7645                    .map(|r| r.map(|t| Self::LedgerUpgradeType(Box::new(t)))),
7646            ),
7647            TypeVariant::ConfigUpgradeSetKey => Box::new(
7648                ReadXdrIter::<_, ConfigUpgradeSetKey>::new(&mut r.inner, r.limits.clone())
7649                    .map(|r| r.map(|t| Self::ConfigUpgradeSetKey(Box::new(t)))),
7650            ),
7651            TypeVariant::LedgerUpgrade => Box::new(
7652                ReadXdrIter::<_, LedgerUpgrade>::new(&mut r.inner, r.limits.clone())
7653                    .map(|r| r.map(|t| Self::LedgerUpgrade(Box::new(t)))),
7654            ),
7655            TypeVariant::ConfigUpgradeSet => Box::new(
7656                ReadXdrIter::<_, ConfigUpgradeSet>::new(&mut r.inner, r.limits.clone())
7657                    .map(|r| r.map(|t| Self::ConfigUpgradeSet(Box::new(t)))),
7658            ),
7659            TypeVariant::TxSetComponentType => Box::new(
7660                ReadXdrIter::<_, TxSetComponentType>::new(&mut r.inner, r.limits.clone())
7661                    .map(|r| r.map(|t| Self::TxSetComponentType(Box::new(t)))),
7662            ),
7663            TypeVariant::DependentTxCluster => Box::new(
7664                ReadXdrIter::<_, DependentTxCluster>::new(&mut r.inner, r.limits.clone())
7665                    .map(|r| r.map(|t| Self::DependentTxCluster(Box::new(t)))),
7666            ),
7667            TypeVariant::ParallelTxExecutionStage => Box::new(
7668                ReadXdrIter::<_, ParallelTxExecutionStage>::new(&mut r.inner, r.limits.clone())
7669                    .map(|r| r.map(|t| Self::ParallelTxExecutionStage(Box::new(t)))),
7670            ),
7671            TypeVariant::ParallelTxsComponent => Box::new(
7672                ReadXdrIter::<_, ParallelTxsComponent>::new(&mut r.inner, r.limits.clone())
7673                    .map(|r| r.map(|t| Self::ParallelTxsComponent(Box::new(t)))),
7674            ),
7675            TypeVariant::TxSetComponent => Box::new(
7676                ReadXdrIter::<_, TxSetComponent>::new(&mut r.inner, r.limits.clone())
7677                    .map(|r| r.map(|t| Self::TxSetComponent(Box::new(t)))),
7678            ),
7679            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Box::new(
7680                ReadXdrIter::<_, TxSetComponentTxsMaybeDiscountedFee>::new(
7681                    &mut r.inner,
7682                    r.limits.clone(),
7683                )
7684                .map(|r| r.map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t)))),
7685            ),
7686            TypeVariant::TransactionPhase => Box::new(
7687                ReadXdrIter::<_, TransactionPhase>::new(&mut r.inner, r.limits.clone())
7688                    .map(|r| r.map(|t| Self::TransactionPhase(Box::new(t)))),
7689            ),
7690            TypeVariant::TransactionSet => Box::new(
7691                ReadXdrIter::<_, TransactionSet>::new(&mut r.inner, r.limits.clone())
7692                    .map(|r| r.map(|t| Self::TransactionSet(Box::new(t)))),
7693            ),
7694            TypeVariant::TransactionSetV1 => Box::new(
7695                ReadXdrIter::<_, TransactionSetV1>::new(&mut r.inner, r.limits.clone())
7696                    .map(|r| r.map(|t| Self::TransactionSetV1(Box::new(t)))),
7697            ),
7698            TypeVariant::GeneralizedTransactionSet => Box::new(
7699                ReadXdrIter::<_, GeneralizedTransactionSet>::new(&mut r.inner, r.limits.clone())
7700                    .map(|r| r.map(|t| Self::GeneralizedTransactionSet(Box::new(t)))),
7701            ),
7702            TypeVariant::TransactionResultPair => Box::new(
7703                ReadXdrIter::<_, TransactionResultPair>::new(&mut r.inner, r.limits.clone())
7704                    .map(|r| r.map(|t| Self::TransactionResultPair(Box::new(t)))),
7705            ),
7706            TypeVariant::TransactionResultSet => Box::new(
7707                ReadXdrIter::<_, TransactionResultSet>::new(&mut r.inner, r.limits.clone())
7708                    .map(|r| r.map(|t| Self::TransactionResultSet(Box::new(t)))),
7709            ),
7710            TypeVariant::TransactionHistoryEntry => Box::new(
7711                ReadXdrIter::<_, TransactionHistoryEntry>::new(&mut r.inner, r.limits.clone())
7712                    .map(|r| r.map(|t| Self::TransactionHistoryEntry(Box::new(t)))),
7713            ),
7714            TypeVariant::TransactionHistoryEntryExt => Box::new(
7715                ReadXdrIter::<_, TransactionHistoryEntryExt>::new(&mut r.inner, r.limits.clone())
7716                    .map(|r| r.map(|t| Self::TransactionHistoryEntryExt(Box::new(t)))),
7717            ),
7718            TypeVariant::TransactionHistoryResultEntry => Box::new(
7719                ReadXdrIter::<_, TransactionHistoryResultEntry>::new(
7720                    &mut r.inner,
7721                    r.limits.clone(),
7722                )
7723                .map(|r| r.map(|t| Self::TransactionHistoryResultEntry(Box::new(t)))),
7724            ),
7725            TypeVariant::TransactionHistoryResultEntryExt => Box::new(
7726                ReadXdrIter::<_, TransactionHistoryResultEntryExt>::new(
7727                    &mut r.inner,
7728                    r.limits.clone(),
7729                )
7730                .map(|r| r.map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t)))),
7731            ),
7732            TypeVariant::LedgerHeaderHistoryEntry => Box::new(
7733                ReadXdrIter::<_, LedgerHeaderHistoryEntry>::new(&mut r.inner, r.limits.clone())
7734                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t)))),
7735            ),
7736            TypeVariant::LedgerHeaderHistoryEntryExt => Box::new(
7737                ReadXdrIter::<_, LedgerHeaderHistoryEntryExt>::new(&mut r.inner, r.limits.clone())
7738                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t)))),
7739            ),
7740            TypeVariant::LedgerScpMessages => Box::new(
7741                ReadXdrIter::<_, LedgerScpMessages>::new(&mut r.inner, r.limits.clone())
7742                    .map(|r| r.map(|t| Self::LedgerScpMessages(Box::new(t)))),
7743            ),
7744            TypeVariant::ScpHistoryEntryV0 => Box::new(
7745                ReadXdrIter::<_, ScpHistoryEntryV0>::new(&mut r.inner, r.limits.clone())
7746                    .map(|r| r.map(|t| Self::ScpHistoryEntryV0(Box::new(t)))),
7747            ),
7748            TypeVariant::ScpHistoryEntry => Box::new(
7749                ReadXdrIter::<_, ScpHistoryEntry>::new(&mut r.inner, r.limits.clone())
7750                    .map(|r| r.map(|t| Self::ScpHistoryEntry(Box::new(t)))),
7751            ),
7752            TypeVariant::LedgerEntryChangeType => Box::new(
7753                ReadXdrIter::<_, LedgerEntryChangeType>::new(&mut r.inner, r.limits.clone())
7754                    .map(|r| r.map(|t| Self::LedgerEntryChangeType(Box::new(t)))),
7755            ),
7756            TypeVariant::LedgerEntryChange => Box::new(
7757                ReadXdrIter::<_, LedgerEntryChange>::new(&mut r.inner, r.limits.clone())
7758                    .map(|r| r.map(|t| Self::LedgerEntryChange(Box::new(t)))),
7759            ),
7760            TypeVariant::LedgerEntryChanges => Box::new(
7761                ReadXdrIter::<_, LedgerEntryChanges>::new(&mut r.inner, r.limits.clone())
7762                    .map(|r| r.map(|t| Self::LedgerEntryChanges(Box::new(t)))),
7763            ),
7764            TypeVariant::OperationMeta => Box::new(
7765                ReadXdrIter::<_, OperationMeta>::new(&mut r.inner, r.limits.clone())
7766                    .map(|r| r.map(|t| Self::OperationMeta(Box::new(t)))),
7767            ),
7768            TypeVariant::TransactionMetaV1 => Box::new(
7769                ReadXdrIter::<_, TransactionMetaV1>::new(&mut r.inner, r.limits.clone())
7770                    .map(|r| r.map(|t| Self::TransactionMetaV1(Box::new(t)))),
7771            ),
7772            TypeVariant::TransactionMetaV2 => Box::new(
7773                ReadXdrIter::<_, TransactionMetaV2>::new(&mut r.inner, r.limits.clone())
7774                    .map(|r| r.map(|t| Self::TransactionMetaV2(Box::new(t)))),
7775            ),
7776            TypeVariant::ContractEventType => Box::new(
7777                ReadXdrIter::<_, ContractEventType>::new(&mut r.inner, r.limits.clone())
7778                    .map(|r| r.map(|t| Self::ContractEventType(Box::new(t)))),
7779            ),
7780            TypeVariant::ContractEvent => Box::new(
7781                ReadXdrIter::<_, ContractEvent>::new(&mut r.inner, r.limits.clone())
7782                    .map(|r| r.map(|t| Self::ContractEvent(Box::new(t)))),
7783            ),
7784            TypeVariant::ContractEventBody => Box::new(
7785                ReadXdrIter::<_, ContractEventBody>::new(&mut r.inner, r.limits.clone())
7786                    .map(|r| r.map(|t| Self::ContractEventBody(Box::new(t)))),
7787            ),
7788            TypeVariant::ContractEventV0 => Box::new(
7789                ReadXdrIter::<_, ContractEventV0>::new(&mut r.inner, r.limits.clone())
7790                    .map(|r| r.map(|t| Self::ContractEventV0(Box::new(t)))),
7791            ),
7792            TypeVariant::DiagnosticEvent => Box::new(
7793                ReadXdrIter::<_, DiagnosticEvent>::new(&mut r.inner, r.limits.clone())
7794                    .map(|r| r.map(|t| Self::DiagnosticEvent(Box::new(t)))),
7795            ),
7796            TypeVariant::SorobanTransactionMetaExtV1 => Box::new(
7797                ReadXdrIter::<_, SorobanTransactionMetaExtV1>::new(&mut r.inner, r.limits.clone())
7798                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t)))),
7799            ),
7800            TypeVariant::SorobanTransactionMetaExt => Box::new(
7801                ReadXdrIter::<_, SorobanTransactionMetaExt>::new(&mut r.inner, r.limits.clone())
7802                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExt(Box::new(t)))),
7803            ),
7804            TypeVariant::SorobanTransactionMeta => Box::new(
7805                ReadXdrIter::<_, SorobanTransactionMeta>::new(&mut r.inner, r.limits.clone())
7806                    .map(|r| r.map(|t| Self::SorobanTransactionMeta(Box::new(t)))),
7807            ),
7808            TypeVariant::TransactionMetaV3 => Box::new(
7809                ReadXdrIter::<_, TransactionMetaV3>::new(&mut r.inner, r.limits.clone())
7810                    .map(|r| r.map(|t| Self::TransactionMetaV3(Box::new(t)))),
7811            ),
7812            TypeVariant::OperationMetaV2 => Box::new(
7813                ReadXdrIter::<_, OperationMetaV2>::new(&mut r.inner, r.limits.clone())
7814                    .map(|r| r.map(|t| Self::OperationMetaV2(Box::new(t)))),
7815            ),
7816            TypeVariant::SorobanTransactionMetaV2 => Box::new(
7817                ReadXdrIter::<_, SorobanTransactionMetaV2>::new(&mut r.inner, r.limits.clone())
7818                    .map(|r| r.map(|t| Self::SorobanTransactionMetaV2(Box::new(t)))),
7819            ),
7820            TypeVariant::TransactionEventStage => Box::new(
7821                ReadXdrIter::<_, TransactionEventStage>::new(&mut r.inner, r.limits.clone())
7822                    .map(|r| r.map(|t| Self::TransactionEventStage(Box::new(t)))),
7823            ),
7824            TypeVariant::TransactionEvent => Box::new(
7825                ReadXdrIter::<_, TransactionEvent>::new(&mut r.inner, r.limits.clone())
7826                    .map(|r| r.map(|t| Self::TransactionEvent(Box::new(t)))),
7827            ),
7828            TypeVariant::TransactionMetaV4 => Box::new(
7829                ReadXdrIter::<_, TransactionMetaV4>::new(&mut r.inner, r.limits.clone())
7830                    .map(|r| r.map(|t| Self::TransactionMetaV4(Box::new(t)))),
7831            ),
7832            TypeVariant::InvokeHostFunctionSuccessPreImage => Box::new(
7833                ReadXdrIter::<_, InvokeHostFunctionSuccessPreImage>::new(
7834                    &mut r.inner,
7835                    r.limits.clone(),
7836                )
7837                .map(|r| r.map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t)))),
7838            ),
7839            TypeVariant::TransactionMeta => Box::new(
7840                ReadXdrIter::<_, TransactionMeta>::new(&mut r.inner, r.limits.clone())
7841                    .map(|r| r.map(|t| Self::TransactionMeta(Box::new(t)))),
7842            ),
7843            TypeVariant::TransactionResultMeta => Box::new(
7844                ReadXdrIter::<_, TransactionResultMeta>::new(&mut r.inner, r.limits.clone())
7845                    .map(|r| r.map(|t| Self::TransactionResultMeta(Box::new(t)))),
7846            ),
7847            TypeVariant::TransactionResultMetaV1 => Box::new(
7848                ReadXdrIter::<_, TransactionResultMetaV1>::new(&mut r.inner, r.limits.clone())
7849                    .map(|r| r.map(|t| Self::TransactionResultMetaV1(Box::new(t)))),
7850            ),
7851            TypeVariant::UpgradeEntryMeta => Box::new(
7852                ReadXdrIter::<_, UpgradeEntryMeta>::new(&mut r.inner, r.limits.clone())
7853                    .map(|r| r.map(|t| Self::UpgradeEntryMeta(Box::new(t)))),
7854            ),
7855            TypeVariant::LedgerCloseMetaV0 => Box::new(
7856                ReadXdrIter::<_, LedgerCloseMetaV0>::new(&mut r.inner, r.limits.clone())
7857                    .map(|r| r.map(|t| Self::LedgerCloseMetaV0(Box::new(t)))),
7858            ),
7859            TypeVariant::LedgerCloseMetaExtV1 => Box::new(
7860                ReadXdrIter::<_, LedgerCloseMetaExtV1>::new(&mut r.inner, r.limits.clone())
7861                    .map(|r| r.map(|t| Self::LedgerCloseMetaExtV1(Box::new(t)))),
7862            ),
7863            TypeVariant::LedgerCloseMetaExt => Box::new(
7864                ReadXdrIter::<_, LedgerCloseMetaExt>::new(&mut r.inner, r.limits.clone())
7865                    .map(|r| r.map(|t| Self::LedgerCloseMetaExt(Box::new(t)))),
7866            ),
7867            TypeVariant::LedgerCloseMetaV1 => Box::new(
7868                ReadXdrIter::<_, LedgerCloseMetaV1>::new(&mut r.inner, r.limits.clone())
7869                    .map(|r| r.map(|t| Self::LedgerCloseMetaV1(Box::new(t)))),
7870            ),
7871            TypeVariant::LedgerCloseMetaV2 => Box::new(
7872                ReadXdrIter::<_, LedgerCloseMetaV2>::new(&mut r.inner, r.limits.clone())
7873                    .map(|r| r.map(|t| Self::LedgerCloseMetaV2(Box::new(t)))),
7874            ),
7875            TypeVariant::LedgerCloseMeta => Box::new(
7876                ReadXdrIter::<_, LedgerCloseMeta>::new(&mut r.inner, r.limits.clone())
7877                    .map(|r| r.map(|t| Self::LedgerCloseMeta(Box::new(t)))),
7878            ),
7879            TypeVariant::ErrorCode => Box::new(
7880                ReadXdrIter::<_, ErrorCode>::new(&mut r.inner, r.limits.clone())
7881                    .map(|r| r.map(|t| Self::ErrorCode(Box::new(t)))),
7882            ),
7883            TypeVariant::SError => Box::new(
7884                ReadXdrIter::<_, SError>::new(&mut r.inner, r.limits.clone())
7885                    .map(|r| r.map(|t| Self::SError(Box::new(t)))),
7886            ),
7887            TypeVariant::SendMore => Box::new(
7888                ReadXdrIter::<_, SendMore>::new(&mut r.inner, r.limits.clone())
7889                    .map(|r| r.map(|t| Self::SendMore(Box::new(t)))),
7890            ),
7891            TypeVariant::SendMoreExtended => Box::new(
7892                ReadXdrIter::<_, SendMoreExtended>::new(&mut r.inner, r.limits.clone())
7893                    .map(|r| r.map(|t| Self::SendMoreExtended(Box::new(t)))),
7894            ),
7895            TypeVariant::AuthCert => Box::new(
7896                ReadXdrIter::<_, AuthCert>::new(&mut r.inner, r.limits.clone())
7897                    .map(|r| r.map(|t| Self::AuthCert(Box::new(t)))),
7898            ),
7899            TypeVariant::Hello => Box::new(
7900                ReadXdrIter::<_, Hello>::new(&mut r.inner, r.limits.clone())
7901                    .map(|r| r.map(|t| Self::Hello(Box::new(t)))),
7902            ),
7903            TypeVariant::Auth => Box::new(
7904                ReadXdrIter::<_, Auth>::new(&mut r.inner, r.limits.clone())
7905                    .map(|r| r.map(|t| Self::Auth(Box::new(t)))),
7906            ),
7907            TypeVariant::IpAddrType => Box::new(
7908                ReadXdrIter::<_, IpAddrType>::new(&mut r.inner, r.limits.clone())
7909                    .map(|r| r.map(|t| Self::IpAddrType(Box::new(t)))),
7910            ),
7911            TypeVariant::PeerAddress => Box::new(
7912                ReadXdrIter::<_, PeerAddress>::new(&mut r.inner, r.limits.clone())
7913                    .map(|r| r.map(|t| Self::PeerAddress(Box::new(t)))),
7914            ),
7915            TypeVariant::PeerAddressIp => Box::new(
7916                ReadXdrIter::<_, PeerAddressIp>::new(&mut r.inner, r.limits.clone())
7917                    .map(|r| r.map(|t| Self::PeerAddressIp(Box::new(t)))),
7918            ),
7919            TypeVariant::MessageType => Box::new(
7920                ReadXdrIter::<_, MessageType>::new(&mut r.inner, r.limits.clone())
7921                    .map(|r| r.map(|t| Self::MessageType(Box::new(t)))),
7922            ),
7923            TypeVariant::DontHave => Box::new(
7924                ReadXdrIter::<_, DontHave>::new(&mut r.inner, r.limits.clone())
7925                    .map(|r| r.map(|t| Self::DontHave(Box::new(t)))),
7926            ),
7927            TypeVariant::SurveyMessageCommandType => Box::new(
7928                ReadXdrIter::<_, SurveyMessageCommandType>::new(&mut r.inner, r.limits.clone())
7929                    .map(|r| r.map(|t| Self::SurveyMessageCommandType(Box::new(t)))),
7930            ),
7931            TypeVariant::SurveyMessageResponseType => Box::new(
7932                ReadXdrIter::<_, SurveyMessageResponseType>::new(&mut r.inner, r.limits.clone())
7933                    .map(|r| r.map(|t| Self::SurveyMessageResponseType(Box::new(t)))),
7934            ),
7935            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Box::new(
7936                ReadXdrIter::<_, TimeSlicedSurveyStartCollectingMessage>::new(
7937                    &mut r.inner,
7938                    r.limits.clone(),
7939                )
7940                .map(|r| r.map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t)))),
7941            ),
7942            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => Box::new(
7943                ReadXdrIter::<_, SignedTimeSlicedSurveyStartCollectingMessage>::new(
7944                    &mut r.inner,
7945                    r.limits.clone(),
7946                )
7947                .map(|r| {
7948                    r.map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t)))
7949                }),
7950            ),
7951            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Box::new(
7952                ReadXdrIter::<_, TimeSlicedSurveyStopCollectingMessage>::new(
7953                    &mut r.inner,
7954                    r.limits.clone(),
7955                )
7956                .map(|r| r.map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
7957            ),
7958            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => Box::new(
7959                ReadXdrIter::<_, SignedTimeSlicedSurveyStopCollectingMessage>::new(
7960                    &mut r.inner,
7961                    r.limits.clone(),
7962                )
7963                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
7964            ),
7965            TypeVariant::SurveyRequestMessage => Box::new(
7966                ReadXdrIter::<_, SurveyRequestMessage>::new(&mut r.inner, r.limits.clone())
7967                    .map(|r| r.map(|t| Self::SurveyRequestMessage(Box::new(t)))),
7968            ),
7969            TypeVariant::TimeSlicedSurveyRequestMessage => Box::new(
7970                ReadXdrIter::<_, TimeSlicedSurveyRequestMessage>::new(
7971                    &mut r.inner,
7972                    r.limits.clone(),
7973                )
7974                .map(|r| r.map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t)))),
7975            ),
7976            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Box::new(
7977                ReadXdrIter::<_, SignedTimeSlicedSurveyRequestMessage>::new(
7978                    &mut r.inner,
7979                    r.limits.clone(),
7980                )
7981                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t)))),
7982            ),
7983            TypeVariant::EncryptedBody => Box::new(
7984                ReadXdrIter::<_, EncryptedBody>::new(&mut r.inner, r.limits.clone())
7985                    .map(|r| r.map(|t| Self::EncryptedBody(Box::new(t)))),
7986            ),
7987            TypeVariant::SurveyResponseMessage => Box::new(
7988                ReadXdrIter::<_, SurveyResponseMessage>::new(&mut r.inner, r.limits.clone())
7989                    .map(|r| r.map(|t| Self::SurveyResponseMessage(Box::new(t)))),
7990            ),
7991            TypeVariant::TimeSlicedSurveyResponseMessage => Box::new(
7992                ReadXdrIter::<_, TimeSlicedSurveyResponseMessage>::new(
7993                    &mut r.inner,
7994                    r.limits.clone(),
7995                )
7996                .map(|r| r.map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t)))),
7997            ),
7998            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Box::new(
7999                ReadXdrIter::<_, SignedTimeSlicedSurveyResponseMessage>::new(
8000                    &mut r.inner,
8001                    r.limits.clone(),
8002                )
8003                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t)))),
8004            ),
8005            TypeVariant::PeerStats => Box::new(
8006                ReadXdrIter::<_, PeerStats>::new(&mut r.inner, r.limits.clone())
8007                    .map(|r| r.map(|t| Self::PeerStats(Box::new(t)))),
8008            ),
8009            TypeVariant::TimeSlicedNodeData => Box::new(
8010                ReadXdrIter::<_, TimeSlicedNodeData>::new(&mut r.inner, r.limits.clone())
8011                    .map(|r| r.map(|t| Self::TimeSlicedNodeData(Box::new(t)))),
8012            ),
8013            TypeVariant::TimeSlicedPeerData => Box::new(
8014                ReadXdrIter::<_, TimeSlicedPeerData>::new(&mut r.inner, r.limits.clone())
8015                    .map(|r| r.map(|t| Self::TimeSlicedPeerData(Box::new(t)))),
8016            ),
8017            TypeVariant::TimeSlicedPeerDataList => Box::new(
8018                ReadXdrIter::<_, TimeSlicedPeerDataList>::new(&mut r.inner, r.limits.clone())
8019                    .map(|r| r.map(|t| Self::TimeSlicedPeerDataList(Box::new(t)))),
8020            ),
8021            TypeVariant::TopologyResponseBodyV2 => Box::new(
8022                ReadXdrIter::<_, TopologyResponseBodyV2>::new(&mut r.inner, r.limits.clone())
8023                    .map(|r| r.map(|t| Self::TopologyResponseBodyV2(Box::new(t)))),
8024            ),
8025            TypeVariant::SurveyResponseBody => Box::new(
8026                ReadXdrIter::<_, SurveyResponseBody>::new(&mut r.inner, r.limits.clone())
8027                    .map(|r| r.map(|t| Self::SurveyResponseBody(Box::new(t)))),
8028            ),
8029            TypeVariant::TxAdvertVector => Box::new(
8030                ReadXdrIter::<_, TxAdvertVector>::new(&mut r.inner, r.limits.clone())
8031                    .map(|r| r.map(|t| Self::TxAdvertVector(Box::new(t)))),
8032            ),
8033            TypeVariant::FloodAdvert => Box::new(
8034                ReadXdrIter::<_, FloodAdvert>::new(&mut r.inner, r.limits.clone())
8035                    .map(|r| r.map(|t| Self::FloodAdvert(Box::new(t)))),
8036            ),
8037            TypeVariant::TxDemandVector => Box::new(
8038                ReadXdrIter::<_, TxDemandVector>::new(&mut r.inner, r.limits.clone())
8039                    .map(|r| r.map(|t| Self::TxDemandVector(Box::new(t)))),
8040            ),
8041            TypeVariant::FloodDemand => Box::new(
8042                ReadXdrIter::<_, FloodDemand>::new(&mut r.inner, r.limits.clone())
8043                    .map(|r| r.map(|t| Self::FloodDemand(Box::new(t)))),
8044            ),
8045            TypeVariant::StellarMessage => Box::new(
8046                ReadXdrIter::<_, StellarMessage>::new(&mut r.inner, r.limits.clone())
8047                    .map(|r| r.map(|t| Self::StellarMessage(Box::new(t)))),
8048            ),
8049            TypeVariant::AuthenticatedMessage => Box::new(
8050                ReadXdrIter::<_, AuthenticatedMessage>::new(&mut r.inner, r.limits.clone())
8051                    .map(|r| r.map(|t| Self::AuthenticatedMessage(Box::new(t)))),
8052            ),
8053            TypeVariant::AuthenticatedMessageV0 => Box::new(
8054                ReadXdrIter::<_, AuthenticatedMessageV0>::new(&mut r.inner, r.limits.clone())
8055                    .map(|r| r.map(|t| Self::AuthenticatedMessageV0(Box::new(t)))),
8056            ),
8057            TypeVariant::LiquidityPoolParameters => Box::new(
8058                ReadXdrIter::<_, LiquidityPoolParameters>::new(&mut r.inner, r.limits.clone())
8059                    .map(|r| r.map(|t| Self::LiquidityPoolParameters(Box::new(t)))),
8060            ),
8061            TypeVariant::MuxedAccount => Box::new(
8062                ReadXdrIter::<_, MuxedAccount>::new(&mut r.inner, r.limits.clone())
8063                    .map(|r| r.map(|t| Self::MuxedAccount(Box::new(t)))),
8064            ),
8065            TypeVariant::MuxedAccountMed25519 => Box::new(
8066                ReadXdrIter::<_, MuxedAccountMed25519>::new(&mut r.inner, r.limits.clone())
8067                    .map(|r| r.map(|t| Self::MuxedAccountMed25519(Box::new(t)))),
8068            ),
8069            TypeVariant::DecoratedSignature => Box::new(
8070                ReadXdrIter::<_, DecoratedSignature>::new(&mut r.inner, r.limits.clone())
8071                    .map(|r| r.map(|t| Self::DecoratedSignature(Box::new(t)))),
8072            ),
8073            TypeVariant::OperationType => Box::new(
8074                ReadXdrIter::<_, OperationType>::new(&mut r.inner, r.limits.clone())
8075                    .map(|r| r.map(|t| Self::OperationType(Box::new(t)))),
8076            ),
8077            TypeVariant::CreateAccountOp => Box::new(
8078                ReadXdrIter::<_, CreateAccountOp>::new(&mut r.inner, r.limits.clone())
8079                    .map(|r| r.map(|t| Self::CreateAccountOp(Box::new(t)))),
8080            ),
8081            TypeVariant::PaymentOp => Box::new(
8082                ReadXdrIter::<_, PaymentOp>::new(&mut r.inner, r.limits.clone())
8083                    .map(|r| r.map(|t| Self::PaymentOp(Box::new(t)))),
8084            ),
8085            TypeVariant::PathPaymentStrictReceiveOp => Box::new(
8086                ReadXdrIter::<_, PathPaymentStrictReceiveOp>::new(&mut r.inner, r.limits.clone())
8087                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t)))),
8088            ),
8089            TypeVariant::PathPaymentStrictSendOp => Box::new(
8090                ReadXdrIter::<_, PathPaymentStrictSendOp>::new(&mut r.inner, r.limits.clone())
8091                    .map(|r| r.map(|t| Self::PathPaymentStrictSendOp(Box::new(t)))),
8092            ),
8093            TypeVariant::ManageSellOfferOp => Box::new(
8094                ReadXdrIter::<_, ManageSellOfferOp>::new(&mut r.inner, r.limits.clone())
8095                    .map(|r| r.map(|t| Self::ManageSellOfferOp(Box::new(t)))),
8096            ),
8097            TypeVariant::ManageBuyOfferOp => Box::new(
8098                ReadXdrIter::<_, ManageBuyOfferOp>::new(&mut r.inner, r.limits.clone())
8099                    .map(|r| r.map(|t| Self::ManageBuyOfferOp(Box::new(t)))),
8100            ),
8101            TypeVariant::CreatePassiveSellOfferOp => Box::new(
8102                ReadXdrIter::<_, CreatePassiveSellOfferOp>::new(&mut r.inner, r.limits.clone())
8103                    .map(|r| r.map(|t| Self::CreatePassiveSellOfferOp(Box::new(t)))),
8104            ),
8105            TypeVariant::SetOptionsOp => Box::new(
8106                ReadXdrIter::<_, SetOptionsOp>::new(&mut r.inner, r.limits.clone())
8107                    .map(|r| r.map(|t| Self::SetOptionsOp(Box::new(t)))),
8108            ),
8109            TypeVariant::ChangeTrustAsset => Box::new(
8110                ReadXdrIter::<_, ChangeTrustAsset>::new(&mut r.inner, r.limits.clone())
8111                    .map(|r| r.map(|t| Self::ChangeTrustAsset(Box::new(t)))),
8112            ),
8113            TypeVariant::ChangeTrustOp => Box::new(
8114                ReadXdrIter::<_, ChangeTrustOp>::new(&mut r.inner, r.limits.clone())
8115                    .map(|r| r.map(|t| Self::ChangeTrustOp(Box::new(t)))),
8116            ),
8117            TypeVariant::AllowTrustOp => Box::new(
8118                ReadXdrIter::<_, AllowTrustOp>::new(&mut r.inner, r.limits.clone())
8119                    .map(|r| r.map(|t| Self::AllowTrustOp(Box::new(t)))),
8120            ),
8121            TypeVariant::ManageDataOp => Box::new(
8122                ReadXdrIter::<_, ManageDataOp>::new(&mut r.inner, r.limits.clone())
8123                    .map(|r| r.map(|t| Self::ManageDataOp(Box::new(t)))),
8124            ),
8125            TypeVariant::BumpSequenceOp => Box::new(
8126                ReadXdrIter::<_, BumpSequenceOp>::new(&mut r.inner, r.limits.clone())
8127                    .map(|r| r.map(|t| Self::BumpSequenceOp(Box::new(t)))),
8128            ),
8129            TypeVariant::CreateClaimableBalanceOp => Box::new(
8130                ReadXdrIter::<_, CreateClaimableBalanceOp>::new(&mut r.inner, r.limits.clone())
8131                    .map(|r| r.map(|t| Self::CreateClaimableBalanceOp(Box::new(t)))),
8132            ),
8133            TypeVariant::ClaimClaimableBalanceOp => Box::new(
8134                ReadXdrIter::<_, ClaimClaimableBalanceOp>::new(&mut r.inner, r.limits.clone())
8135                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceOp(Box::new(t)))),
8136            ),
8137            TypeVariant::BeginSponsoringFutureReservesOp => Box::new(
8138                ReadXdrIter::<_, BeginSponsoringFutureReservesOp>::new(
8139                    &mut r.inner,
8140                    r.limits.clone(),
8141                )
8142                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t)))),
8143            ),
8144            TypeVariant::RevokeSponsorshipType => Box::new(
8145                ReadXdrIter::<_, RevokeSponsorshipType>::new(&mut r.inner, r.limits.clone())
8146                    .map(|r| r.map(|t| Self::RevokeSponsorshipType(Box::new(t)))),
8147            ),
8148            TypeVariant::RevokeSponsorshipOp => Box::new(
8149                ReadXdrIter::<_, RevokeSponsorshipOp>::new(&mut r.inner, r.limits.clone())
8150                    .map(|r| r.map(|t| Self::RevokeSponsorshipOp(Box::new(t)))),
8151            ),
8152            TypeVariant::RevokeSponsorshipOpSigner => Box::new(
8153                ReadXdrIter::<_, RevokeSponsorshipOpSigner>::new(&mut r.inner, r.limits.clone())
8154                    .map(|r| r.map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t)))),
8155            ),
8156            TypeVariant::ClawbackOp => Box::new(
8157                ReadXdrIter::<_, ClawbackOp>::new(&mut r.inner, r.limits.clone())
8158                    .map(|r| r.map(|t| Self::ClawbackOp(Box::new(t)))),
8159            ),
8160            TypeVariant::ClawbackClaimableBalanceOp => Box::new(
8161                ReadXdrIter::<_, ClawbackClaimableBalanceOp>::new(&mut r.inner, r.limits.clone())
8162                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t)))),
8163            ),
8164            TypeVariant::SetTrustLineFlagsOp => Box::new(
8165                ReadXdrIter::<_, SetTrustLineFlagsOp>::new(&mut r.inner, r.limits.clone())
8166                    .map(|r| r.map(|t| Self::SetTrustLineFlagsOp(Box::new(t)))),
8167            ),
8168            TypeVariant::LiquidityPoolDepositOp => Box::new(
8169                ReadXdrIter::<_, LiquidityPoolDepositOp>::new(&mut r.inner, r.limits.clone())
8170                    .map(|r| r.map(|t| Self::LiquidityPoolDepositOp(Box::new(t)))),
8171            ),
8172            TypeVariant::LiquidityPoolWithdrawOp => Box::new(
8173                ReadXdrIter::<_, LiquidityPoolWithdrawOp>::new(&mut r.inner, r.limits.clone())
8174                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t)))),
8175            ),
8176            TypeVariant::HostFunctionType => Box::new(
8177                ReadXdrIter::<_, HostFunctionType>::new(&mut r.inner, r.limits.clone())
8178                    .map(|r| r.map(|t| Self::HostFunctionType(Box::new(t)))),
8179            ),
8180            TypeVariant::ContractIdPreimageType => Box::new(
8181                ReadXdrIter::<_, ContractIdPreimageType>::new(&mut r.inner, r.limits.clone())
8182                    .map(|r| r.map(|t| Self::ContractIdPreimageType(Box::new(t)))),
8183            ),
8184            TypeVariant::ContractIdPreimage => Box::new(
8185                ReadXdrIter::<_, ContractIdPreimage>::new(&mut r.inner, r.limits.clone())
8186                    .map(|r| r.map(|t| Self::ContractIdPreimage(Box::new(t)))),
8187            ),
8188            TypeVariant::ContractIdPreimageFromAddress => Box::new(
8189                ReadXdrIter::<_, ContractIdPreimageFromAddress>::new(
8190                    &mut r.inner,
8191                    r.limits.clone(),
8192                )
8193                .map(|r| r.map(|t| Self::ContractIdPreimageFromAddress(Box::new(t)))),
8194            ),
8195            TypeVariant::CreateContractArgs => Box::new(
8196                ReadXdrIter::<_, CreateContractArgs>::new(&mut r.inner, r.limits.clone())
8197                    .map(|r| r.map(|t| Self::CreateContractArgs(Box::new(t)))),
8198            ),
8199            TypeVariant::CreateContractArgsV2 => Box::new(
8200                ReadXdrIter::<_, CreateContractArgsV2>::new(&mut r.inner, r.limits.clone())
8201                    .map(|r| r.map(|t| Self::CreateContractArgsV2(Box::new(t)))),
8202            ),
8203            TypeVariant::InvokeContractArgs => Box::new(
8204                ReadXdrIter::<_, InvokeContractArgs>::new(&mut r.inner, r.limits.clone())
8205                    .map(|r| r.map(|t| Self::InvokeContractArgs(Box::new(t)))),
8206            ),
8207            TypeVariant::HostFunction => Box::new(
8208                ReadXdrIter::<_, HostFunction>::new(&mut r.inner, r.limits.clone())
8209                    .map(|r| r.map(|t| Self::HostFunction(Box::new(t)))),
8210            ),
8211            TypeVariant::SorobanAuthorizedFunctionType => Box::new(
8212                ReadXdrIter::<_, SorobanAuthorizedFunctionType>::new(
8213                    &mut r.inner,
8214                    r.limits.clone(),
8215                )
8216                .map(|r| r.map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t)))),
8217            ),
8218            TypeVariant::SorobanAuthorizedFunction => Box::new(
8219                ReadXdrIter::<_, SorobanAuthorizedFunction>::new(&mut r.inner, r.limits.clone())
8220                    .map(|r| r.map(|t| Self::SorobanAuthorizedFunction(Box::new(t)))),
8221            ),
8222            TypeVariant::SorobanAuthorizedInvocation => Box::new(
8223                ReadXdrIter::<_, SorobanAuthorizedInvocation>::new(&mut r.inner, r.limits.clone())
8224                    .map(|r| r.map(|t| Self::SorobanAuthorizedInvocation(Box::new(t)))),
8225            ),
8226            TypeVariant::SorobanAddressCredentials => Box::new(
8227                ReadXdrIter::<_, SorobanAddressCredentials>::new(&mut r.inner, r.limits.clone())
8228                    .map(|r| r.map(|t| Self::SorobanAddressCredentials(Box::new(t)))),
8229            ),
8230            TypeVariant::SorobanDelegateSignature => Box::new(
8231                ReadXdrIter::<_, SorobanDelegateSignature>::new(&mut r.inner, r.limits.clone())
8232                    .map(|r| r.map(|t| Self::SorobanDelegateSignature(Box::new(t)))),
8233            ),
8234            TypeVariant::SorobanAddressCredentialsWithDelegates => Box::new(
8235                ReadXdrIter::<_, SorobanAddressCredentialsWithDelegates>::new(
8236                    &mut r.inner,
8237                    r.limits.clone(),
8238                )
8239                .map(|r| r.map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t)))),
8240            ),
8241            TypeVariant::SorobanCredentialsType => Box::new(
8242                ReadXdrIter::<_, SorobanCredentialsType>::new(&mut r.inner, r.limits.clone())
8243                    .map(|r| r.map(|t| Self::SorobanCredentialsType(Box::new(t)))),
8244            ),
8245            TypeVariant::SorobanCredentials => Box::new(
8246                ReadXdrIter::<_, SorobanCredentials>::new(&mut r.inner, r.limits.clone())
8247                    .map(|r| r.map(|t| Self::SorobanCredentials(Box::new(t)))),
8248            ),
8249            TypeVariant::SorobanAuthorizationEntry => Box::new(
8250                ReadXdrIter::<_, SorobanAuthorizationEntry>::new(&mut r.inner, r.limits.clone())
8251                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntry(Box::new(t)))),
8252            ),
8253            TypeVariant::SorobanAuthorizationEntries => Box::new(
8254                ReadXdrIter::<_, SorobanAuthorizationEntries>::new(&mut r.inner, r.limits.clone())
8255                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntries(Box::new(t)))),
8256            ),
8257            TypeVariant::InvokeHostFunctionOp => Box::new(
8258                ReadXdrIter::<_, InvokeHostFunctionOp>::new(&mut r.inner, r.limits.clone())
8259                    .map(|r| r.map(|t| Self::InvokeHostFunctionOp(Box::new(t)))),
8260            ),
8261            TypeVariant::ExtendFootprintTtlOp => Box::new(
8262                ReadXdrIter::<_, ExtendFootprintTtlOp>::new(&mut r.inner, r.limits.clone())
8263                    .map(|r| r.map(|t| Self::ExtendFootprintTtlOp(Box::new(t)))),
8264            ),
8265            TypeVariant::RestoreFootprintOp => Box::new(
8266                ReadXdrIter::<_, RestoreFootprintOp>::new(&mut r.inner, r.limits.clone())
8267                    .map(|r| r.map(|t| Self::RestoreFootprintOp(Box::new(t)))),
8268            ),
8269            TypeVariant::Operation => Box::new(
8270                ReadXdrIter::<_, Operation>::new(&mut r.inner, r.limits.clone())
8271                    .map(|r| r.map(|t| Self::Operation(Box::new(t)))),
8272            ),
8273            TypeVariant::OperationBody => Box::new(
8274                ReadXdrIter::<_, OperationBody>::new(&mut r.inner, r.limits.clone())
8275                    .map(|r| r.map(|t| Self::OperationBody(Box::new(t)))),
8276            ),
8277            TypeVariant::HashIdPreimage => Box::new(
8278                ReadXdrIter::<_, HashIdPreimage>::new(&mut r.inner, r.limits.clone())
8279                    .map(|r| r.map(|t| Self::HashIdPreimage(Box::new(t)))),
8280            ),
8281            TypeVariant::HashIdPreimageOperationId => Box::new(
8282                ReadXdrIter::<_, HashIdPreimageOperationId>::new(&mut r.inner, r.limits.clone())
8283                    .map(|r| r.map(|t| Self::HashIdPreimageOperationId(Box::new(t)))),
8284            ),
8285            TypeVariant::HashIdPreimageRevokeId => Box::new(
8286                ReadXdrIter::<_, HashIdPreimageRevokeId>::new(&mut r.inner, r.limits.clone())
8287                    .map(|r| r.map(|t| Self::HashIdPreimageRevokeId(Box::new(t)))),
8288            ),
8289            TypeVariant::HashIdPreimageContractId => Box::new(
8290                ReadXdrIter::<_, HashIdPreimageContractId>::new(&mut r.inner, r.limits.clone())
8291                    .map(|r| r.map(|t| Self::HashIdPreimageContractId(Box::new(t)))),
8292            ),
8293            TypeVariant::HashIdPreimageSorobanAuthorization => Box::new(
8294                ReadXdrIter::<_, HashIdPreimageSorobanAuthorization>::new(
8295                    &mut r.inner,
8296                    r.limits.clone(),
8297                )
8298                .map(|r| r.map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t)))),
8299            ),
8300            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => Box::new(
8301                ReadXdrIter::<_, HashIdPreimageSorobanAuthorizationWithAddress>::new(
8302                    &mut r.inner,
8303                    r.limits.clone(),
8304                )
8305                .map(|r| {
8306                    r.map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t)))
8307                }),
8308            ),
8309            TypeVariant::MemoType => Box::new(
8310                ReadXdrIter::<_, MemoType>::new(&mut r.inner, r.limits.clone())
8311                    .map(|r| r.map(|t| Self::MemoType(Box::new(t)))),
8312            ),
8313            TypeVariant::Memo => Box::new(
8314                ReadXdrIter::<_, Memo>::new(&mut r.inner, r.limits.clone())
8315                    .map(|r| r.map(|t| Self::Memo(Box::new(t)))),
8316            ),
8317            TypeVariant::TimeBounds => Box::new(
8318                ReadXdrIter::<_, TimeBounds>::new(&mut r.inner, r.limits.clone())
8319                    .map(|r| r.map(|t| Self::TimeBounds(Box::new(t)))),
8320            ),
8321            TypeVariant::LedgerBounds => Box::new(
8322                ReadXdrIter::<_, LedgerBounds>::new(&mut r.inner, r.limits.clone())
8323                    .map(|r| r.map(|t| Self::LedgerBounds(Box::new(t)))),
8324            ),
8325            TypeVariant::PreconditionsV2 => Box::new(
8326                ReadXdrIter::<_, PreconditionsV2>::new(&mut r.inner, r.limits.clone())
8327                    .map(|r| r.map(|t| Self::PreconditionsV2(Box::new(t)))),
8328            ),
8329            TypeVariant::PreconditionType => Box::new(
8330                ReadXdrIter::<_, PreconditionType>::new(&mut r.inner, r.limits.clone())
8331                    .map(|r| r.map(|t| Self::PreconditionType(Box::new(t)))),
8332            ),
8333            TypeVariant::Preconditions => Box::new(
8334                ReadXdrIter::<_, Preconditions>::new(&mut r.inner, r.limits.clone())
8335                    .map(|r| r.map(|t| Self::Preconditions(Box::new(t)))),
8336            ),
8337            TypeVariant::LedgerFootprint => Box::new(
8338                ReadXdrIter::<_, LedgerFootprint>::new(&mut r.inner, r.limits.clone())
8339                    .map(|r| r.map(|t| Self::LedgerFootprint(Box::new(t)))),
8340            ),
8341            TypeVariant::SorobanResources => Box::new(
8342                ReadXdrIter::<_, SorobanResources>::new(&mut r.inner, r.limits.clone())
8343                    .map(|r| r.map(|t| Self::SorobanResources(Box::new(t)))),
8344            ),
8345            TypeVariant::SorobanResourcesExtV0 => Box::new(
8346                ReadXdrIter::<_, SorobanResourcesExtV0>::new(&mut r.inner, r.limits.clone())
8347                    .map(|r| r.map(|t| Self::SorobanResourcesExtV0(Box::new(t)))),
8348            ),
8349            TypeVariant::SorobanTransactionData => Box::new(
8350                ReadXdrIter::<_, SorobanTransactionData>::new(&mut r.inner, r.limits.clone())
8351                    .map(|r| r.map(|t| Self::SorobanTransactionData(Box::new(t)))),
8352            ),
8353            TypeVariant::SorobanTransactionDataExt => Box::new(
8354                ReadXdrIter::<_, SorobanTransactionDataExt>::new(&mut r.inner, r.limits.clone())
8355                    .map(|r| r.map(|t| Self::SorobanTransactionDataExt(Box::new(t)))),
8356            ),
8357            TypeVariant::TransactionV0 => Box::new(
8358                ReadXdrIter::<_, TransactionV0>::new(&mut r.inner, r.limits.clone())
8359                    .map(|r| r.map(|t| Self::TransactionV0(Box::new(t)))),
8360            ),
8361            TypeVariant::TransactionV0Ext => Box::new(
8362                ReadXdrIter::<_, TransactionV0Ext>::new(&mut r.inner, r.limits.clone())
8363                    .map(|r| r.map(|t| Self::TransactionV0Ext(Box::new(t)))),
8364            ),
8365            TypeVariant::TransactionV0Envelope => Box::new(
8366                ReadXdrIter::<_, TransactionV0Envelope>::new(&mut r.inner, r.limits.clone())
8367                    .map(|r| r.map(|t| Self::TransactionV0Envelope(Box::new(t)))),
8368            ),
8369            TypeVariant::Transaction => Box::new(
8370                ReadXdrIter::<_, Transaction>::new(&mut r.inner, r.limits.clone())
8371                    .map(|r| r.map(|t| Self::Transaction(Box::new(t)))),
8372            ),
8373            TypeVariant::TransactionExt => Box::new(
8374                ReadXdrIter::<_, TransactionExt>::new(&mut r.inner, r.limits.clone())
8375                    .map(|r| r.map(|t| Self::TransactionExt(Box::new(t)))),
8376            ),
8377            TypeVariant::TransactionV1Envelope => Box::new(
8378                ReadXdrIter::<_, TransactionV1Envelope>::new(&mut r.inner, r.limits.clone())
8379                    .map(|r| r.map(|t| Self::TransactionV1Envelope(Box::new(t)))),
8380            ),
8381            TypeVariant::FeeBumpTransaction => Box::new(
8382                ReadXdrIter::<_, FeeBumpTransaction>::new(&mut r.inner, r.limits.clone())
8383                    .map(|r| r.map(|t| Self::FeeBumpTransaction(Box::new(t)))),
8384            ),
8385            TypeVariant::FeeBumpTransactionInnerTx => Box::new(
8386                ReadXdrIter::<_, FeeBumpTransactionInnerTx>::new(&mut r.inner, r.limits.clone())
8387                    .map(|r| r.map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t)))),
8388            ),
8389            TypeVariant::FeeBumpTransactionExt => Box::new(
8390                ReadXdrIter::<_, FeeBumpTransactionExt>::new(&mut r.inner, r.limits.clone())
8391                    .map(|r| r.map(|t| Self::FeeBumpTransactionExt(Box::new(t)))),
8392            ),
8393            TypeVariant::FeeBumpTransactionEnvelope => Box::new(
8394                ReadXdrIter::<_, FeeBumpTransactionEnvelope>::new(&mut r.inner, r.limits.clone())
8395                    .map(|r| r.map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t)))),
8396            ),
8397            TypeVariant::TransactionEnvelope => Box::new(
8398                ReadXdrIter::<_, TransactionEnvelope>::new(&mut r.inner, r.limits.clone())
8399                    .map(|r| r.map(|t| Self::TransactionEnvelope(Box::new(t)))),
8400            ),
8401            TypeVariant::TransactionSignaturePayload => Box::new(
8402                ReadXdrIter::<_, TransactionSignaturePayload>::new(&mut r.inner, r.limits.clone())
8403                    .map(|r| r.map(|t| Self::TransactionSignaturePayload(Box::new(t)))),
8404            ),
8405            TypeVariant::TransactionSignaturePayloadTaggedTransaction => Box::new(
8406                ReadXdrIter::<_, TransactionSignaturePayloadTaggedTransaction>::new(
8407                    &mut r.inner,
8408                    r.limits.clone(),
8409                )
8410                .map(|r| {
8411                    r.map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t)))
8412                }),
8413            ),
8414            TypeVariant::ClaimAtomType => Box::new(
8415                ReadXdrIter::<_, ClaimAtomType>::new(&mut r.inner, r.limits.clone())
8416                    .map(|r| r.map(|t| Self::ClaimAtomType(Box::new(t)))),
8417            ),
8418            TypeVariant::ClaimOfferAtomV0 => Box::new(
8419                ReadXdrIter::<_, ClaimOfferAtomV0>::new(&mut r.inner, r.limits.clone())
8420                    .map(|r| r.map(|t| Self::ClaimOfferAtomV0(Box::new(t)))),
8421            ),
8422            TypeVariant::ClaimOfferAtom => Box::new(
8423                ReadXdrIter::<_, ClaimOfferAtom>::new(&mut r.inner, r.limits.clone())
8424                    .map(|r| r.map(|t| Self::ClaimOfferAtom(Box::new(t)))),
8425            ),
8426            TypeVariant::ClaimLiquidityAtom => Box::new(
8427                ReadXdrIter::<_, ClaimLiquidityAtom>::new(&mut r.inner, r.limits.clone())
8428                    .map(|r| r.map(|t| Self::ClaimLiquidityAtom(Box::new(t)))),
8429            ),
8430            TypeVariant::ClaimAtom => Box::new(
8431                ReadXdrIter::<_, ClaimAtom>::new(&mut r.inner, r.limits.clone())
8432                    .map(|r| r.map(|t| Self::ClaimAtom(Box::new(t)))),
8433            ),
8434            TypeVariant::CreateAccountResultCode => Box::new(
8435                ReadXdrIter::<_, CreateAccountResultCode>::new(&mut r.inner, r.limits.clone())
8436                    .map(|r| r.map(|t| Self::CreateAccountResultCode(Box::new(t)))),
8437            ),
8438            TypeVariant::CreateAccountResult => Box::new(
8439                ReadXdrIter::<_, CreateAccountResult>::new(&mut r.inner, r.limits.clone())
8440                    .map(|r| r.map(|t| Self::CreateAccountResult(Box::new(t)))),
8441            ),
8442            TypeVariant::PaymentResultCode => Box::new(
8443                ReadXdrIter::<_, PaymentResultCode>::new(&mut r.inner, r.limits.clone())
8444                    .map(|r| r.map(|t| Self::PaymentResultCode(Box::new(t)))),
8445            ),
8446            TypeVariant::PaymentResult => Box::new(
8447                ReadXdrIter::<_, PaymentResult>::new(&mut r.inner, r.limits.clone())
8448                    .map(|r| r.map(|t| Self::PaymentResult(Box::new(t)))),
8449            ),
8450            TypeVariant::PathPaymentStrictReceiveResultCode => Box::new(
8451                ReadXdrIter::<_, PathPaymentStrictReceiveResultCode>::new(
8452                    &mut r.inner,
8453                    r.limits.clone(),
8454                )
8455                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t)))),
8456            ),
8457            TypeVariant::SimplePaymentResult => Box::new(
8458                ReadXdrIter::<_, SimplePaymentResult>::new(&mut r.inner, r.limits.clone())
8459                    .map(|r| r.map(|t| Self::SimplePaymentResult(Box::new(t)))),
8460            ),
8461            TypeVariant::PathPaymentStrictReceiveResult => Box::new(
8462                ReadXdrIter::<_, PathPaymentStrictReceiveResult>::new(
8463                    &mut r.inner,
8464                    r.limits.clone(),
8465                )
8466                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t)))),
8467            ),
8468            TypeVariant::PathPaymentStrictReceiveResultSuccess => Box::new(
8469                ReadXdrIter::<_, PathPaymentStrictReceiveResultSuccess>::new(
8470                    &mut r.inner,
8471                    r.limits.clone(),
8472                )
8473                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t)))),
8474            ),
8475            TypeVariant::PathPaymentStrictSendResultCode => Box::new(
8476                ReadXdrIter::<_, PathPaymentStrictSendResultCode>::new(
8477                    &mut r.inner,
8478                    r.limits.clone(),
8479                )
8480                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t)))),
8481            ),
8482            TypeVariant::PathPaymentStrictSendResult => Box::new(
8483                ReadXdrIter::<_, PathPaymentStrictSendResult>::new(&mut r.inner, r.limits.clone())
8484                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResult(Box::new(t)))),
8485            ),
8486            TypeVariant::PathPaymentStrictSendResultSuccess => Box::new(
8487                ReadXdrIter::<_, PathPaymentStrictSendResultSuccess>::new(
8488                    &mut r.inner,
8489                    r.limits.clone(),
8490                )
8491                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t)))),
8492            ),
8493            TypeVariant::ManageSellOfferResultCode => Box::new(
8494                ReadXdrIter::<_, ManageSellOfferResultCode>::new(&mut r.inner, r.limits.clone())
8495                    .map(|r| r.map(|t| Self::ManageSellOfferResultCode(Box::new(t)))),
8496            ),
8497            TypeVariant::ManageOfferEffect => Box::new(
8498                ReadXdrIter::<_, ManageOfferEffect>::new(&mut r.inner, r.limits.clone())
8499                    .map(|r| r.map(|t| Self::ManageOfferEffect(Box::new(t)))),
8500            ),
8501            TypeVariant::ManageOfferSuccessResult => Box::new(
8502                ReadXdrIter::<_, ManageOfferSuccessResult>::new(&mut r.inner, r.limits.clone())
8503                    .map(|r| r.map(|t| Self::ManageOfferSuccessResult(Box::new(t)))),
8504            ),
8505            TypeVariant::ManageOfferSuccessResultOffer => Box::new(
8506                ReadXdrIter::<_, ManageOfferSuccessResultOffer>::new(
8507                    &mut r.inner,
8508                    r.limits.clone(),
8509                )
8510                .map(|r| r.map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t)))),
8511            ),
8512            TypeVariant::ManageSellOfferResult => Box::new(
8513                ReadXdrIter::<_, ManageSellOfferResult>::new(&mut r.inner, r.limits.clone())
8514                    .map(|r| r.map(|t| Self::ManageSellOfferResult(Box::new(t)))),
8515            ),
8516            TypeVariant::ManageBuyOfferResultCode => Box::new(
8517                ReadXdrIter::<_, ManageBuyOfferResultCode>::new(&mut r.inner, r.limits.clone())
8518                    .map(|r| r.map(|t| Self::ManageBuyOfferResultCode(Box::new(t)))),
8519            ),
8520            TypeVariant::ManageBuyOfferResult => Box::new(
8521                ReadXdrIter::<_, ManageBuyOfferResult>::new(&mut r.inner, r.limits.clone())
8522                    .map(|r| r.map(|t| Self::ManageBuyOfferResult(Box::new(t)))),
8523            ),
8524            TypeVariant::SetOptionsResultCode => Box::new(
8525                ReadXdrIter::<_, SetOptionsResultCode>::new(&mut r.inner, r.limits.clone())
8526                    .map(|r| r.map(|t| Self::SetOptionsResultCode(Box::new(t)))),
8527            ),
8528            TypeVariant::SetOptionsResult => Box::new(
8529                ReadXdrIter::<_, SetOptionsResult>::new(&mut r.inner, r.limits.clone())
8530                    .map(|r| r.map(|t| Self::SetOptionsResult(Box::new(t)))),
8531            ),
8532            TypeVariant::ChangeTrustResultCode => Box::new(
8533                ReadXdrIter::<_, ChangeTrustResultCode>::new(&mut r.inner, r.limits.clone())
8534                    .map(|r| r.map(|t| Self::ChangeTrustResultCode(Box::new(t)))),
8535            ),
8536            TypeVariant::ChangeTrustResult => Box::new(
8537                ReadXdrIter::<_, ChangeTrustResult>::new(&mut r.inner, r.limits.clone())
8538                    .map(|r| r.map(|t| Self::ChangeTrustResult(Box::new(t)))),
8539            ),
8540            TypeVariant::AllowTrustResultCode => Box::new(
8541                ReadXdrIter::<_, AllowTrustResultCode>::new(&mut r.inner, r.limits.clone())
8542                    .map(|r| r.map(|t| Self::AllowTrustResultCode(Box::new(t)))),
8543            ),
8544            TypeVariant::AllowTrustResult => Box::new(
8545                ReadXdrIter::<_, AllowTrustResult>::new(&mut r.inner, r.limits.clone())
8546                    .map(|r| r.map(|t| Self::AllowTrustResult(Box::new(t)))),
8547            ),
8548            TypeVariant::AccountMergeResultCode => Box::new(
8549                ReadXdrIter::<_, AccountMergeResultCode>::new(&mut r.inner, r.limits.clone())
8550                    .map(|r| r.map(|t| Self::AccountMergeResultCode(Box::new(t)))),
8551            ),
8552            TypeVariant::AccountMergeResult => Box::new(
8553                ReadXdrIter::<_, AccountMergeResult>::new(&mut r.inner, r.limits.clone())
8554                    .map(|r| r.map(|t| Self::AccountMergeResult(Box::new(t)))),
8555            ),
8556            TypeVariant::InflationResultCode => Box::new(
8557                ReadXdrIter::<_, InflationResultCode>::new(&mut r.inner, r.limits.clone())
8558                    .map(|r| r.map(|t| Self::InflationResultCode(Box::new(t)))),
8559            ),
8560            TypeVariant::InflationPayout => Box::new(
8561                ReadXdrIter::<_, InflationPayout>::new(&mut r.inner, r.limits.clone())
8562                    .map(|r| r.map(|t| Self::InflationPayout(Box::new(t)))),
8563            ),
8564            TypeVariant::InflationResult => Box::new(
8565                ReadXdrIter::<_, InflationResult>::new(&mut r.inner, r.limits.clone())
8566                    .map(|r| r.map(|t| Self::InflationResult(Box::new(t)))),
8567            ),
8568            TypeVariant::ManageDataResultCode => Box::new(
8569                ReadXdrIter::<_, ManageDataResultCode>::new(&mut r.inner, r.limits.clone())
8570                    .map(|r| r.map(|t| Self::ManageDataResultCode(Box::new(t)))),
8571            ),
8572            TypeVariant::ManageDataResult => Box::new(
8573                ReadXdrIter::<_, ManageDataResult>::new(&mut r.inner, r.limits.clone())
8574                    .map(|r| r.map(|t| Self::ManageDataResult(Box::new(t)))),
8575            ),
8576            TypeVariant::BumpSequenceResultCode => Box::new(
8577                ReadXdrIter::<_, BumpSequenceResultCode>::new(&mut r.inner, r.limits.clone())
8578                    .map(|r| r.map(|t| Self::BumpSequenceResultCode(Box::new(t)))),
8579            ),
8580            TypeVariant::BumpSequenceResult => Box::new(
8581                ReadXdrIter::<_, BumpSequenceResult>::new(&mut r.inner, r.limits.clone())
8582                    .map(|r| r.map(|t| Self::BumpSequenceResult(Box::new(t)))),
8583            ),
8584            TypeVariant::CreateClaimableBalanceResultCode => Box::new(
8585                ReadXdrIter::<_, CreateClaimableBalanceResultCode>::new(
8586                    &mut r.inner,
8587                    r.limits.clone(),
8588                )
8589                .map(|r| r.map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t)))),
8590            ),
8591            TypeVariant::CreateClaimableBalanceResult => Box::new(
8592                ReadXdrIter::<_, CreateClaimableBalanceResult>::new(&mut r.inner, r.limits.clone())
8593                    .map(|r| r.map(|t| Self::CreateClaimableBalanceResult(Box::new(t)))),
8594            ),
8595            TypeVariant::ClaimClaimableBalanceResultCode => Box::new(
8596                ReadXdrIter::<_, ClaimClaimableBalanceResultCode>::new(
8597                    &mut r.inner,
8598                    r.limits.clone(),
8599                )
8600                .map(|r| r.map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t)))),
8601            ),
8602            TypeVariant::ClaimClaimableBalanceResult => Box::new(
8603                ReadXdrIter::<_, ClaimClaimableBalanceResult>::new(&mut r.inner, r.limits.clone())
8604                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceResult(Box::new(t)))),
8605            ),
8606            TypeVariant::BeginSponsoringFutureReservesResultCode => Box::new(
8607                ReadXdrIter::<_, BeginSponsoringFutureReservesResultCode>::new(
8608                    &mut r.inner,
8609                    r.limits.clone(),
8610                )
8611                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t)))),
8612            ),
8613            TypeVariant::BeginSponsoringFutureReservesResult => Box::new(
8614                ReadXdrIter::<_, BeginSponsoringFutureReservesResult>::new(
8615                    &mut r.inner,
8616                    r.limits.clone(),
8617                )
8618                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t)))),
8619            ),
8620            TypeVariant::EndSponsoringFutureReservesResultCode => Box::new(
8621                ReadXdrIter::<_, EndSponsoringFutureReservesResultCode>::new(
8622                    &mut r.inner,
8623                    r.limits.clone(),
8624                )
8625                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t)))),
8626            ),
8627            TypeVariant::EndSponsoringFutureReservesResult => Box::new(
8628                ReadXdrIter::<_, EndSponsoringFutureReservesResult>::new(
8629                    &mut r.inner,
8630                    r.limits.clone(),
8631                )
8632                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t)))),
8633            ),
8634            TypeVariant::RevokeSponsorshipResultCode => Box::new(
8635                ReadXdrIter::<_, RevokeSponsorshipResultCode>::new(&mut r.inner, r.limits.clone())
8636                    .map(|r| r.map(|t| Self::RevokeSponsorshipResultCode(Box::new(t)))),
8637            ),
8638            TypeVariant::RevokeSponsorshipResult => Box::new(
8639                ReadXdrIter::<_, RevokeSponsorshipResult>::new(&mut r.inner, r.limits.clone())
8640                    .map(|r| r.map(|t| Self::RevokeSponsorshipResult(Box::new(t)))),
8641            ),
8642            TypeVariant::ClawbackResultCode => Box::new(
8643                ReadXdrIter::<_, ClawbackResultCode>::new(&mut r.inner, r.limits.clone())
8644                    .map(|r| r.map(|t| Self::ClawbackResultCode(Box::new(t)))),
8645            ),
8646            TypeVariant::ClawbackResult => Box::new(
8647                ReadXdrIter::<_, ClawbackResult>::new(&mut r.inner, r.limits.clone())
8648                    .map(|r| r.map(|t| Self::ClawbackResult(Box::new(t)))),
8649            ),
8650            TypeVariant::ClawbackClaimableBalanceResultCode => Box::new(
8651                ReadXdrIter::<_, ClawbackClaimableBalanceResultCode>::new(
8652                    &mut r.inner,
8653                    r.limits.clone(),
8654                )
8655                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t)))),
8656            ),
8657            TypeVariant::ClawbackClaimableBalanceResult => Box::new(
8658                ReadXdrIter::<_, ClawbackClaimableBalanceResult>::new(
8659                    &mut r.inner,
8660                    r.limits.clone(),
8661                )
8662                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t)))),
8663            ),
8664            TypeVariant::SetTrustLineFlagsResultCode => Box::new(
8665                ReadXdrIter::<_, SetTrustLineFlagsResultCode>::new(&mut r.inner, r.limits.clone())
8666                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t)))),
8667            ),
8668            TypeVariant::SetTrustLineFlagsResult => Box::new(
8669                ReadXdrIter::<_, SetTrustLineFlagsResult>::new(&mut r.inner, r.limits.clone())
8670                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResult(Box::new(t)))),
8671            ),
8672            TypeVariant::LiquidityPoolDepositResultCode => Box::new(
8673                ReadXdrIter::<_, LiquidityPoolDepositResultCode>::new(
8674                    &mut r.inner,
8675                    r.limits.clone(),
8676                )
8677                .map(|r| r.map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t)))),
8678            ),
8679            TypeVariant::LiquidityPoolDepositResult => Box::new(
8680                ReadXdrIter::<_, LiquidityPoolDepositResult>::new(&mut r.inner, r.limits.clone())
8681                    .map(|r| r.map(|t| Self::LiquidityPoolDepositResult(Box::new(t)))),
8682            ),
8683            TypeVariant::LiquidityPoolWithdrawResultCode => Box::new(
8684                ReadXdrIter::<_, LiquidityPoolWithdrawResultCode>::new(
8685                    &mut r.inner,
8686                    r.limits.clone(),
8687                )
8688                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t)))),
8689            ),
8690            TypeVariant::LiquidityPoolWithdrawResult => Box::new(
8691                ReadXdrIter::<_, LiquidityPoolWithdrawResult>::new(&mut r.inner, r.limits.clone())
8692                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t)))),
8693            ),
8694            TypeVariant::InvokeHostFunctionResultCode => Box::new(
8695                ReadXdrIter::<_, InvokeHostFunctionResultCode>::new(&mut r.inner, r.limits.clone())
8696                    .map(|r| r.map(|t| Self::InvokeHostFunctionResultCode(Box::new(t)))),
8697            ),
8698            TypeVariant::InvokeHostFunctionResult => Box::new(
8699                ReadXdrIter::<_, InvokeHostFunctionResult>::new(&mut r.inner, r.limits.clone())
8700                    .map(|r| r.map(|t| Self::InvokeHostFunctionResult(Box::new(t)))),
8701            ),
8702            TypeVariant::ExtendFootprintTtlResultCode => Box::new(
8703                ReadXdrIter::<_, ExtendFootprintTtlResultCode>::new(&mut r.inner, r.limits.clone())
8704                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t)))),
8705            ),
8706            TypeVariant::ExtendFootprintTtlResult => Box::new(
8707                ReadXdrIter::<_, ExtendFootprintTtlResult>::new(&mut r.inner, r.limits.clone())
8708                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResult(Box::new(t)))),
8709            ),
8710            TypeVariant::RestoreFootprintResultCode => Box::new(
8711                ReadXdrIter::<_, RestoreFootprintResultCode>::new(&mut r.inner, r.limits.clone())
8712                    .map(|r| r.map(|t| Self::RestoreFootprintResultCode(Box::new(t)))),
8713            ),
8714            TypeVariant::RestoreFootprintResult => Box::new(
8715                ReadXdrIter::<_, RestoreFootprintResult>::new(&mut r.inner, r.limits.clone())
8716                    .map(|r| r.map(|t| Self::RestoreFootprintResult(Box::new(t)))),
8717            ),
8718            TypeVariant::OperationResultCode => Box::new(
8719                ReadXdrIter::<_, OperationResultCode>::new(&mut r.inner, r.limits.clone())
8720                    .map(|r| r.map(|t| Self::OperationResultCode(Box::new(t)))),
8721            ),
8722            TypeVariant::OperationResult => Box::new(
8723                ReadXdrIter::<_, OperationResult>::new(&mut r.inner, r.limits.clone())
8724                    .map(|r| r.map(|t| Self::OperationResult(Box::new(t)))),
8725            ),
8726            TypeVariant::OperationResultTr => Box::new(
8727                ReadXdrIter::<_, OperationResultTr>::new(&mut r.inner, r.limits.clone())
8728                    .map(|r| r.map(|t| Self::OperationResultTr(Box::new(t)))),
8729            ),
8730            TypeVariant::TransactionResultCode => Box::new(
8731                ReadXdrIter::<_, TransactionResultCode>::new(&mut r.inner, r.limits.clone())
8732                    .map(|r| r.map(|t| Self::TransactionResultCode(Box::new(t)))),
8733            ),
8734            TypeVariant::InnerTransactionResult => Box::new(
8735                ReadXdrIter::<_, InnerTransactionResult>::new(&mut r.inner, r.limits.clone())
8736                    .map(|r| r.map(|t| Self::InnerTransactionResult(Box::new(t)))),
8737            ),
8738            TypeVariant::InnerTransactionResultResult => Box::new(
8739                ReadXdrIter::<_, InnerTransactionResultResult>::new(&mut r.inner, r.limits.clone())
8740                    .map(|r| r.map(|t| Self::InnerTransactionResultResult(Box::new(t)))),
8741            ),
8742            TypeVariant::InnerTransactionResultExt => Box::new(
8743                ReadXdrIter::<_, InnerTransactionResultExt>::new(&mut r.inner, r.limits.clone())
8744                    .map(|r| r.map(|t| Self::InnerTransactionResultExt(Box::new(t)))),
8745            ),
8746            TypeVariant::InnerTransactionResultPair => Box::new(
8747                ReadXdrIter::<_, InnerTransactionResultPair>::new(&mut r.inner, r.limits.clone())
8748                    .map(|r| r.map(|t| Self::InnerTransactionResultPair(Box::new(t)))),
8749            ),
8750            TypeVariant::TransactionResult => Box::new(
8751                ReadXdrIter::<_, TransactionResult>::new(&mut r.inner, r.limits.clone())
8752                    .map(|r| r.map(|t| Self::TransactionResult(Box::new(t)))),
8753            ),
8754            TypeVariant::TransactionResultResult => Box::new(
8755                ReadXdrIter::<_, TransactionResultResult>::new(&mut r.inner, r.limits.clone())
8756                    .map(|r| r.map(|t| Self::TransactionResultResult(Box::new(t)))),
8757            ),
8758            TypeVariant::TransactionResultExt => Box::new(
8759                ReadXdrIter::<_, TransactionResultExt>::new(&mut r.inner, r.limits.clone())
8760                    .map(|r| r.map(|t| Self::TransactionResultExt(Box::new(t)))),
8761            ),
8762            TypeVariant::Hash => Box::new(
8763                ReadXdrIter::<_, Hash>::new(&mut r.inner, r.limits.clone())
8764                    .map(|r| r.map(|t| Self::Hash(Box::new(t)))),
8765            ),
8766            TypeVariant::Uint256 => Box::new(
8767                ReadXdrIter::<_, Uint256>::new(&mut r.inner, r.limits.clone())
8768                    .map(|r| r.map(|t| Self::Uint256(Box::new(t)))),
8769            ),
8770            TypeVariant::Uint32 => Box::new(
8771                ReadXdrIter::<_, Uint32>::new(&mut r.inner, r.limits.clone())
8772                    .map(|r| r.map(|t| Self::Uint32(Box::new(t)))),
8773            ),
8774            TypeVariant::Int32 => Box::new(
8775                ReadXdrIter::<_, Int32>::new(&mut r.inner, r.limits.clone())
8776                    .map(|r| r.map(|t| Self::Int32(Box::new(t)))),
8777            ),
8778            TypeVariant::Uint64 => Box::new(
8779                ReadXdrIter::<_, Uint64>::new(&mut r.inner, r.limits.clone())
8780                    .map(|r| r.map(|t| Self::Uint64(Box::new(t)))),
8781            ),
8782            TypeVariant::Int64 => Box::new(
8783                ReadXdrIter::<_, Int64>::new(&mut r.inner, r.limits.clone())
8784                    .map(|r| r.map(|t| Self::Int64(Box::new(t)))),
8785            ),
8786            TypeVariant::TimePoint => Box::new(
8787                ReadXdrIter::<_, TimePoint>::new(&mut r.inner, r.limits.clone())
8788                    .map(|r| r.map(|t| Self::TimePoint(Box::new(t)))),
8789            ),
8790            TypeVariant::Duration => Box::new(
8791                ReadXdrIter::<_, Duration>::new(&mut r.inner, r.limits.clone())
8792                    .map(|r| r.map(|t| Self::Duration(Box::new(t)))),
8793            ),
8794            TypeVariant::ExtensionPoint => Box::new(
8795                ReadXdrIter::<_, ExtensionPoint>::new(&mut r.inner, r.limits.clone())
8796                    .map(|r| r.map(|t| Self::ExtensionPoint(Box::new(t)))),
8797            ),
8798            TypeVariant::CryptoKeyType => Box::new(
8799                ReadXdrIter::<_, CryptoKeyType>::new(&mut r.inner, r.limits.clone())
8800                    .map(|r| r.map(|t| Self::CryptoKeyType(Box::new(t)))),
8801            ),
8802            TypeVariant::PublicKeyType => Box::new(
8803                ReadXdrIter::<_, PublicKeyType>::new(&mut r.inner, r.limits.clone())
8804                    .map(|r| r.map(|t| Self::PublicKeyType(Box::new(t)))),
8805            ),
8806            TypeVariant::SignerKeyType => Box::new(
8807                ReadXdrIter::<_, SignerKeyType>::new(&mut r.inner, r.limits.clone())
8808                    .map(|r| r.map(|t| Self::SignerKeyType(Box::new(t)))),
8809            ),
8810            TypeVariant::PublicKey => Box::new(
8811                ReadXdrIter::<_, PublicKey>::new(&mut r.inner, r.limits.clone())
8812                    .map(|r| r.map(|t| Self::PublicKey(Box::new(t)))),
8813            ),
8814            TypeVariant::SignerKey => Box::new(
8815                ReadXdrIter::<_, SignerKey>::new(&mut r.inner, r.limits.clone())
8816                    .map(|r| r.map(|t| Self::SignerKey(Box::new(t)))),
8817            ),
8818            TypeVariant::SignerKeyEd25519SignedPayload => Box::new(
8819                ReadXdrIter::<_, SignerKeyEd25519SignedPayload>::new(
8820                    &mut r.inner,
8821                    r.limits.clone(),
8822                )
8823                .map(|r| r.map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t)))),
8824            ),
8825            TypeVariant::Signature => Box::new(
8826                ReadXdrIter::<_, Signature>::new(&mut r.inner, r.limits.clone())
8827                    .map(|r| r.map(|t| Self::Signature(Box::new(t)))),
8828            ),
8829            TypeVariant::SignatureHint => Box::new(
8830                ReadXdrIter::<_, SignatureHint>::new(&mut r.inner, r.limits.clone())
8831                    .map(|r| r.map(|t| Self::SignatureHint(Box::new(t)))),
8832            ),
8833            TypeVariant::NodeId => Box::new(
8834                ReadXdrIter::<_, NodeId>::new(&mut r.inner, r.limits.clone())
8835                    .map(|r| r.map(|t| Self::NodeId(Box::new(t)))),
8836            ),
8837            TypeVariant::AccountId => Box::new(
8838                ReadXdrIter::<_, AccountId>::new(&mut r.inner, r.limits.clone())
8839                    .map(|r| r.map(|t| Self::AccountId(Box::new(t)))),
8840            ),
8841            TypeVariant::ContractId => Box::new(
8842                ReadXdrIter::<_, ContractId>::new(&mut r.inner, r.limits.clone())
8843                    .map(|r| r.map(|t| Self::ContractId(Box::new(t)))),
8844            ),
8845            TypeVariant::Curve25519Secret => Box::new(
8846                ReadXdrIter::<_, Curve25519Secret>::new(&mut r.inner, r.limits.clone())
8847                    .map(|r| r.map(|t| Self::Curve25519Secret(Box::new(t)))),
8848            ),
8849            TypeVariant::Curve25519Public => Box::new(
8850                ReadXdrIter::<_, Curve25519Public>::new(&mut r.inner, r.limits.clone())
8851                    .map(|r| r.map(|t| Self::Curve25519Public(Box::new(t)))),
8852            ),
8853            TypeVariant::HmacSha256Key => Box::new(
8854                ReadXdrIter::<_, HmacSha256Key>::new(&mut r.inner, r.limits.clone())
8855                    .map(|r| r.map(|t| Self::HmacSha256Key(Box::new(t)))),
8856            ),
8857            TypeVariant::HmacSha256Mac => Box::new(
8858                ReadXdrIter::<_, HmacSha256Mac>::new(&mut r.inner, r.limits.clone())
8859                    .map(|r| r.map(|t| Self::HmacSha256Mac(Box::new(t)))),
8860            ),
8861            TypeVariant::ShortHashSeed => Box::new(
8862                ReadXdrIter::<_, ShortHashSeed>::new(&mut r.inner, r.limits.clone())
8863                    .map(|r| r.map(|t| Self::ShortHashSeed(Box::new(t)))),
8864            ),
8865            TypeVariant::BinaryFuseFilterType => Box::new(
8866                ReadXdrIter::<_, BinaryFuseFilterType>::new(&mut r.inner, r.limits.clone())
8867                    .map(|r| r.map(|t| Self::BinaryFuseFilterType(Box::new(t)))),
8868            ),
8869            TypeVariant::SerializedBinaryFuseFilter => Box::new(
8870                ReadXdrIter::<_, SerializedBinaryFuseFilter>::new(&mut r.inner, r.limits.clone())
8871                    .map(|r| r.map(|t| Self::SerializedBinaryFuseFilter(Box::new(t)))),
8872            ),
8873            TypeVariant::PoolId => Box::new(
8874                ReadXdrIter::<_, PoolId>::new(&mut r.inner, r.limits.clone())
8875                    .map(|r| r.map(|t| Self::PoolId(Box::new(t)))),
8876            ),
8877            TypeVariant::ClaimableBalanceIdType => Box::new(
8878                ReadXdrIter::<_, ClaimableBalanceIdType>::new(&mut r.inner, r.limits.clone())
8879                    .map(|r| r.map(|t| Self::ClaimableBalanceIdType(Box::new(t)))),
8880            ),
8881            TypeVariant::ClaimableBalanceId => Box::new(
8882                ReadXdrIter::<_, ClaimableBalanceId>::new(&mut r.inner, r.limits.clone())
8883                    .map(|r| r.map(|t| Self::ClaimableBalanceId(Box::new(t)))),
8884            ),
8885            #[cfg(feature = "test_feature")]
8886            TypeVariant::TestNextType => Box::new(
8887                ReadXdrIter::<_, TestNextType>::new(&mut r.inner, r.limits.clone())
8888                    .map(|r| r.map(|t| Self::TestNextType(Box::new(t)))),
8889            ),
8890        }
8891    }
8892
8893    #[cfg(feature = "std")]
8894    #[allow(clippy::too_many_lines)]
8895    pub fn read_xdr_framed_iter<R: Read>(
8896        v: TypeVariant,
8897        r: &mut Limited<R>,
8898    ) -> Box<dyn Iterator<Item = Result<Self, Error>> + '_> {
8899        match v {
8900            TypeVariant::Value => Box::new(
8901                ReadXdrIter::<_, Frame<Value>>::new(&mut r.inner, r.limits.clone())
8902                    .map(|r| r.map(|t| Self::Value(Box::new(t.0)))),
8903            ),
8904            TypeVariant::ScpBallot => Box::new(
8905                ReadXdrIter::<_, Frame<ScpBallot>>::new(&mut r.inner, r.limits.clone())
8906                    .map(|r| r.map(|t| Self::ScpBallot(Box::new(t.0)))),
8907            ),
8908            TypeVariant::ScpStatementType => Box::new(
8909                ReadXdrIter::<_, Frame<ScpStatementType>>::new(&mut r.inner, r.limits.clone())
8910                    .map(|r| r.map(|t| Self::ScpStatementType(Box::new(t.0)))),
8911            ),
8912            TypeVariant::ScpNomination => Box::new(
8913                ReadXdrIter::<_, Frame<ScpNomination>>::new(&mut r.inner, r.limits.clone())
8914                    .map(|r| r.map(|t| Self::ScpNomination(Box::new(t.0)))),
8915            ),
8916            TypeVariant::ScpStatement => Box::new(
8917                ReadXdrIter::<_, Frame<ScpStatement>>::new(&mut r.inner, r.limits.clone())
8918                    .map(|r| r.map(|t| Self::ScpStatement(Box::new(t.0)))),
8919            ),
8920            TypeVariant::ScpStatementPledges => Box::new(
8921                ReadXdrIter::<_, Frame<ScpStatementPledges>>::new(&mut r.inner, r.limits.clone())
8922                    .map(|r| r.map(|t| Self::ScpStatementPledges(Box::new(t.0)))),
8923            ),
8924            TypeVariant::ScpStatementPrepare => Box::new(
8925                ReadXdrIter::<_, Frame<ScpStatementPrepare>>::new(&mut r.inner, r.limits.clone())
8926                    .map(|r| r.map(|t| Self::ScpStatementPrepare(Box::new(t.0)))),
8927            ),
8928            TypeVariant::ScpStatementConfirm => Box::new(
8929                ReadXdrIter::<_, Frame<ScpStatementConfirm>>::new(&mut r.inner, r.limits.clone())
8930                    .map(|r| r.map(|t| Self::ScpStatementConfirm(Box::new(t.0)))),
8931            ),
8932            TypeVariant::ScpStatementExternalize => Box::new(
8933                ReadXdrIter::<_, Frame<ScpStatementExternalize>>::new(
8934                    &mut r.inner,
8935                    r.limits.clone(),
8936                )
8937                .map(|r| r.map(|t| Self::ScpStatementExternalize(Box::new(t.0)))),
8938            ),
8939            TypeVariant::ScpEnvelope => Box::new(
8940                ReadXdrIter::<_, Frame<ScpEnvelope>>::new(&mut r.inner, r.limits.clone())
8941                    .map(|r| r.map(|t| Self::ScpEnvelope(Box::new(t.0)))),
8942            ),
8943            TypeVariant::ScpQuorumSet => Box::new(
8944                ReadXdrIter::<_, Frame<ScpQuorumSet>>::new(&mut r.inner, r.limits.clone())
8945                    .map(|r| r.map(|t| Self::ScpQuorumSet(Box::new(t.0)))),
8946            ),
8947            TypeVariant::EncodedLedgerKey => Box::new(
8948                ReadXdrIter::<_, Frame<EncodedLedgerKey>>::new(&mut r.inner, r.limits.clone())
8949                    .map(|r| r.map(|t| Self::EncodedLedgerKey(Box::new(t.0)))),
8950            ),
8951            TypeVariant::ConfigSettingContractExecutionLanesV0 => Box::new(
8952                ReadXdrIter::<_, Frame<ConfigSettingContractExecutionLanesV0>>::new(
8953                    &mut r.inner,
8954                    r.limits.clone(),
8955                )
8956                .map(|r| r.map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t.0)))),
8957            ),
8958            TypeVariant::ConfigSettingContractComputeV0 => Box::new(
8959                ReadXdrIter::<_, Frame<ConfigSettingContractComputeV0>>::new(
8960                    &mut r.inner,
8961                    r.limits.clone(),
8962                )
8963                .map(|r| r.map(|t| Self::ConfigSettingContractComputeV0(Box::new(t.0)))),
8964            ),
8965            TypeVariant::ConfigSettingContractParallelComputeV0 => Box::new(
8966                ReadXdrIter::<_, Frame<ConfigSettingContractParallelComputeV0>>::new(
8967                    &mut r.inner,
8968                    r.limits.clone(),
8969                )
8970                .map(|r| r.map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t.0)))),
8971            ),
8972            TypeVariant::ConfigSettingContractLedgerCostV0 => Box::new(
8973                ReadXdrIter::<_, Frame<ConfigSettingContractLedgerCostV0>>::new(
8974                    &mut r.inner,
8975                    r.limits.clone(),
8976                )
8977                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t.0)))),
8978            ),
8979            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Box::new(
8980                ReadXdrIter::<_, Frame<ConfigSettingContractLedgerCostExtV0>>::new(
8981                    &mut r.inner,
8982                    r.limits.clone(),
8983                )
8984                .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t.0)))),
8985            ),
8986            TypeVariant::ConfigSettingContractHistoricalDataV0 => Box::new(
8987                ReadXdrIter::<_, Frame<ConfigSettingContractHistoricalDataV0>>::new(
8988                    &mut r.inner,
8989                    r.limits.clone(),
8990                )
8991                .map(|r| r.map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t.0)))),
8992            ),
8993            TypeVariant::ConfigSettingContractEventsV0 => Box::new(
8994                ReadXdrIter::<_, Frame<ConfigSettingContractEventsV0>>::new(
8995                    &mut r.inner,
8996                    r.limits.clone(),
8997                )
8998                .map(|r| r.map(|t| Self::ConfigSettingContractEventsV0(Box::new(t.0)))),
8999            ),
9000            TypeVariant::ConfigSettingContractBandwidthV0 => Box::new(
9001                ReadXdrIter::<_, Frame<ConfigSettingContractBandwidthV0>>::new(
9002                    &mut r.inner,
9003                    r.limits.clone(),
9004                )
9005                .map(|r| r.map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t.0)))),
9006            ),
9007            TypeVariant::ContractCostType => Box::new(
9008                ReadXdrIter::<_, Frame<ContractCostType>>::new(&mut r.inner, r.limits.clone())
9009                    .map(|r| r.map(|t| Self::ContractCostType(Box::new(t.0)))),
9010            ),
9011            TypeVariant::ContractCostParamEntry => Box::new(
9012                ReadXdrIter::<_, Frame<ContractCostParamEntry>>::new(
9013                    &mut r.inner,
9014                    r.limits.clone(),
9015                )
9016                .map(|r| r.map(|t| Self::ContractCostParamEntry(Box::new(t.0)))),
9017            ),
9018            TypeVariant::StateArchivalSettings => Box::new(
9019                ReadXdrIter::<_, Frame<StateArchivalSettings>>::new(&mut r.inner, r.limits.clone())
9020                    .map(|r| r.map(|t| Self::StateArchivalSettings(Box::new(t.0)))),
9021            ),
9022            TypeVariant::EvictionIterator => Box::new(
9023                ReadXdrIter::<_, Frame<EvictionIterator>>::new(&mut r.inner, r.limits.clone())
9024                    .map(|r| r.map(|t| Self::EvictionIterator(Box::new(t.0)))),
9025            ),
9026            TypeVariant::ConfigSettingScpTiming => Box::new(
9027                ReadXdrIter::<_, Frame<ConfigSettingScpTiming>>::new(
9028                    &mut r.inner,
9029                    r.limits.clone(),
9030                )
9031                .map(|r| r.map(|t| Self::ConfigSettingScpTiming(Box::new(t.0)))),
9032            ),
9033            TypeVariant::FrozenLedgerKeys => Box::new(
9034                ReadXdrIter::<_, Frame<FrozenLedgerKeys>>::new(&mut r.inner, r.limits.clone())
9035                    .map(|r| r.map(|t| Self::FrozenLedgerKeys(Box::new(t.0)))),
9036            ),
9037            TypeVariant::FrozenLedgerKeysDelta => Box::new(
9038                ReadXdrIter::<_, Frame<FrozenLedgerKeysDelta>>::new(&mut r.inner, r.limits.clone())
9039                    .map(|r| r.map(|t| Self::FrozenLedgerKeysDelta(Box::new(t.0)))),
9040            ),
9041            TypeVariant::FreezeBypassTxs => Box::new(
9042                ReadXdrIter::<_, Frame<FreezeBypassTxs>>::new(&mut r.inner, r.limits.clone())
9043                    .map(|r| r.map(|t| Self::FreezeBypassTxs(Box::new(t.0)))),
9044            ),
9045            TypeVariant::FreezeBypassTxsDelta => Box::new(
9046                ReadXdrIter::<_, Frame<FreezeBypassTxsDelta>>::new(&mut r.inner, r.limits.clone())
9047                    .map(|r| r.map(|t| Self::FreezeBypassTxsDelta(Box::new(t.0)))),
9048            ),
9049            TypeVariant::ContractCostParams => Box::new(
9050                ReadXdrIter::<_, Frame<ContractCostParams>>::new(&mut r.inner, r.limits.clone())
9051                    .map(|r| r.map(|t| Self::ContractCostParams(Box::new(t.0)))),
9052            ),
9053            TypeVariant::ConfigSettingId => Box::new(
9054                ReadXdrIter::<_, Frame<ConfigSettingId>>::new(&mut r.inner, r.limits.clone())
9055                    .map(|r| r.map(|t| Self::ConfigSettingId(Box::new(t.0)))),
9056            ),
9057            TypeVariant::ConfigSettingEntry => Box::new(
9058                ReadXdrIter::<_, Frame<ConfigSettingEntry>>::new(&mut r.inner, r.limits.clone())
9059                    .map(|r| r.map(|t| Self::ConfigSettingEntry(Box::new(t.0)))),
9060            ),
9061            TypeVariant::ScEnvMetaKind => Box::new(
9062                ReadXdrIter::<_, Frame<ScEnvMetaKind>>::new(&mut r.inner, r.limits.clone())
9063                    .map(|r| r.map(|t| Self::ScEnvMetaKind(Box::new(t.0)))),
9064            ),
9065            TypeVariant::ScEnvMetaEntry => Box::new(
9066                ReadXdrIter::<_, Frame<ScEnvMetaEntry>>::new(&mut r.inner, r.limits.clone())
9067                    .map(|r| r.map(|t| Self::ScEnvMetaEntry(Box::new(t.0)))),
9068            ),
9069            TypeVariant::ScEnvMetaEntryInterfaceVersion => Box::new(
9070                ReadXdrIter::<_, Frame<ScEnvMetaEntryInterfaceVersion>>::new(
9071                    &mut r.inner,
9072                    r.limits.clone(),
9073                )
9074                .map(|r| r.map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t.0)))),
9075            ),
9076            TypeVariant::ScMetaV0 => Box::new(
9077                ReadXdrIter::<_, Frame<ScMetaV0>>::new(&mut r.inner, r.limits.clone())
9078                    .map(|r| r.map(|t| Self::ScMetaV0(Box::new(t.0)))),
9079            ),
9080            TypeVariant::ScMetaKind => Box::new(
9081                ReadXdrIter::<_, Frame<ScMetaKind>>::new(&mut r.inner, r.limits.clone())
9082                    .map(|r| r.map(|t| Self::ScMetaKind(Box::new(t.0)))),
9083            ),
9084            TypeVariant::ScMetaEntry => Box::new(
9085                ReadXdrIter::<_, Frame<ScMetaEntry>>::new(&mut r.inner, r.limits.clone())
9086                    .map(|r| r.map(|t| Self::ScMetaEntry(Box::new(t.0)))),
9087            ),
9088            TypeVariant::ScSpecType => Box::new(
9089                ReadXdrIter::<_, Frame<ScSpecType>>::new(&mut r.inner, r.limits.clone())
9090                    .map(|r| r.map(|t| Self::ScSpecType(Box::new(t.0)))),
9091            ),
9092            TypeVariant::ScSpecTypeOption => Box::new(
9093                ReadXdrIter::<_, Frame<ScSpecTypeOption>>::new(&mut r.inner, r.limits.clone())
9094                    .map(|r| r.map(|t| Self::ScSpecTypeOption(Box::new(t.0)))),
9095            ),
9096            TypeVariant::ScSpecTypeResult => Box::new(
9097                ReadXdrIter::<_, Frame<ScSpecTypeResult>>::new(&mut r.inner, r.limits.clone())
9098                    .map(|r| r.map(|t| Self::ScSpecTypeResult(Box::new(t.0)))),
9099            ),
9100            TypeVariant::ScSpecTypeVec => Box::new(
9101                ReadXdrIter::<_, Frame<ScSpecTypeVec>>::new(&mut r.inner, r.limits.clone())
9102                    .map(|r| r.map(|t| Self::ScSpecTypeVec(Box::new(t.0)))),
9103            ),
9104            TypeVariant::ScSpecTypeMap => Box::new(
9105                ReadXdrIter::<_, Frame<ScSpecTypeMap>>::new(&mut r.inner, r.limits.clone())
9106                    .map(|r| r.map(|t| Self::ScSpecTypeMap(Box::new(t.0)))),
9107            ),
9108            TypeVariant::ScSpecTypeTuple => Box::new(
9109                ReadXdrIter::<_, Frame<ScSpecTypeTuple>>::new(&mut r.inner, r.limits.clone())
9110                    .map(|r| r.map(|t| Self::ScSpecTypeTuple(Box::new(t.0)))),
9111            ),
9112            TypeVariant::ScSpecTypeBytesN => Box::new(
9113                ReadXdrIter::<_, Frame<ScSpecTypeBytesN>>::new(&mut r.inner, r.limits.clone())
9114                    .map(|r| r.map(|t| Self::ScSpecTypeBytesN(Box::new(t.0)))),
9115            ),
9116            TypeVariant::ScSpecTypeUdt => Box::new(
9117                ReadXdrIter::<_, Frame<ScSpecTypeUdt>>::new(&mut r.inner, r.limits.clone())
9118                    .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t.0)))),
9119            ),
9120            TypeVariant::ScSpecTypeDef => Box::new(
9121                ReadXdrIter::<_, Frame<ScSpecTypeDef>>::new(&mut r.inner, r.limits.clone())
9122                    .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t.0)))),
9123            ),
9124            TypeVariant::ScSpecUdtStructFieldV0 => Box::new(
9125                ReadXdrIter::<_, Frame<ScSpecUdtStructFieldV0>>::new(
9126                    &mut r.inner,
9127                    r.limits.clone(),
9128                )
9129                .map(|r| r.map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t.0)))),
9130            ),
9131            TypeVariant::ScSpecUdtStructV0 => Box::new(
9132                ReadXdrIter::<_, Frame<ScSpecUdtStructV0>>::new(&mut r.inner, r.limits.clone())
9133                    .map(|r| r.map(|t| Self::ScSpecUdtStructV0(Box::new(t.0)))),
9134            ),
9135            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Box::new(
9136                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseVoidV0>>::new(
9137                    &mut r.inner,
9138                    r.limits.clone(),
9139                )
9140                .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t.0)))),
9141            ),
9142            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Box::new(
9143                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseTupleV0>>::new(
9144                    &mut r.inner,
9145                    r.limits.clone(),
9146                )
9147                .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t.0)))),
9148            ),
9149            TypeVariant::ScSpecUdtUnionCaseV0Kind => Box::new(
9150                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseV0Kind>>::new(
9151                    &mut r.inner,
9152                    r.limits.clone(),
9153                )
9154                .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t.0)))),
9155            ),
9156            TypeVariant::ScSpecUdtUnionCaseV0 => Box::new(
9157                ReadXdrIter::<_, Frame<ScSpecUdtUnionCaseV0>>::new(&mut r.inner, r.limits.clone())
9158                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t.0)))),
9159            ),
9160            TypeVariant::ScSpecUdtUnionV0 => Box::new(
9161                ReadXdrIter::<_, Frame<ScSpecUdtUnionV0>>::new(&mut r.inner, r.limits.clone())
9162                    .map(|r| r.map(|t| Self::ScSpecUdtUnionV0(Box::new(t.0)))),
9163            ),
9164            TypeVariant::ScSpecUdtEnumCaseV0 => Box::new(
9165                ReadXdrIter::<_, Frame<ScSpecUdtEnumCaseV0>>::new(&mut r.inner, r.limits.clone())
9166                    .map(|r| r.map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t.0)))),
9167            ),
9168            TypeVariant::ScSpecUdtEnumV0 => Box::new(
9169                ReadXdrIter::<_, Frame<ScSpecUdtEnumV0>>::new(&mut r.inner, r.limits.clone())
9170                    .map(|r| r.map(|t| Self::ScSpecUdtEnumV0(Box::new(t.0)))),
9171            ),
9172            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Box::new(
9173                ReadXdrIter::<_, Frame<ScSpecUdtErrorEnumCaseV0>>::new(
9174                    &mut r.inner,
9175                    r.limits.clone(),
9176                )
9177                .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t.0)))),
9178            ),
9179            TypeVariant::ScSpecUdtErrorEnumV0 => Box::new(
9180                ReadXdrIter::<_, Frame<ScSpecUdtErrorEnumV0>>::new(&mut r.inner, r.limits.clone())
9181                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t.0)))),
9182            ),
9183            TypeVariant::ScSpecFunctionInputV0 => Box::new(
9184                ReadXdrIter::<_, Frame<ScSpecFunctionInputV0>>::new(&mut r.inner, r.limits.clone())
9185                    .map(|r| r.map(|t| Self::ScSpecFunctionInputV0(Box::new(t.0)))),
9186            ),
9187            TypeVariant::ScSpecFunctionV0 => Box::new(
9188                ReadXdrIter::<_, Frame<ScSpecFunctionV0>>::new(&mut r.inner, r.limits.clone())
9189                    .map(|r| r.map(|t| Self::ScSpecFunctionV0(Box::new(t.0)))),
9190            ),
9191            TypeVariant::ScSpecEventParamLocationV0 => Box::new(
9192                ReadXdrIter::<_, Frame<ScSpecEventParamLocationV0>>::new(
9193                    &mut r.inner,
9194                    r.limits.clone(),
9195                )
9196                .map(|r| r.map(|t| Self::ScSpecEventParamLocationV0(Box::new(t.0)))),
9197            ),
9198            TypeVariant::ScSpecEventParamV0 => Box::new(
9199                ReadXdrIter::<_, Frame<ScSpecEventParamV0>>::new(&mut r.inner, r.limits.clone())
9200                    .map(|r| r.map(|t| Self::ScSpecEventParamV0(Box::new(t.0)))),
9201            ),
9202            TypeVariant::ScSpecEventDataFormat => Box::new(
9203                ReadXdrIter::<_, Frame<ScSpecEventDataFormat>>::new(&mut r.inner, r.limits.clone())
9204                    .map(|r| r.map(|t| Self::ScSpecEventDataFormat(Box::new(t.0)))),
9205            ),
9206            TypeVariant::ScSpecEventV0 => Box::new(
9207                ReadXdrIter::<_, Frame<ScSpecEventV0>>::new(&mut r.inner, r.limits.clone())
9208                    .map(|r| r.map(|t| Self::ScSpecEventV0(Box::new(t.0)))),
9209            ),
9210            TypeVariant::ScSpecEntryKind => Box::new(
9211                ReadXdrIter::<_, Frame<ScSpecEntryKind>>::new(&mut r.inner, r.limits.clone())
9212                    .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t.0)))),
9213            ),
9214            TypeVariant::ScSpecEntry => Box::new(
9215                ReadXdrIter::<_, Frame<ScSpecEntry>>::new(&mut r.inner, r.limits.clone())
9216                    .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t.0)))),
9217            ),
9218            TypeVariant::ScBytes => Box::new(
9219                ReadXdrIter::<_, Frame<ScBytes>>::new(&mut r.inner, r.limits.clone())
9220                    .map(|r| r.map(|t| Self::ScBytes(Box::new(t.0)))),
9221            ),
9222            TypeVariant::ScString => Box::new(
9223                ReadXdrIter::<_, Frame<ScString>>::new(&mut r.inner, r.limits.clone())
9224                    .map(|r| r.map(|t| Self::ScString(Box::new(t.0)))),
9225            ),
9226            TypeVariant::ScSymbol => Box::new(
9227                ReadXdrIter::<_, Frame<ScSymbol>>::new(&mut r.inner, r.limits.clone())
9228                    .map(|r| r.map(|t| Self::ScSymbol(Box::new(t.0)))),
9229            ),
9230            TypeVariant::ScValType => Box::new(
9231                ReadXdrIter::<_, Frame<ScValType>>::new(&mut r.inner, r.limits.clone())
9232                    .map(|r| r.map(|t| Self::ScValType(Box::new(t.0)))),
9233            ),
9234            TypeVariant::ScErrorType => Box::new(
9235                ReadXdrIter::<_, Frame<ScErrorType>>::new(&mut r.inner, r.limits.clone())
9236                    .map(|r| r.map(|t| Self::ScErrorType(Box::new(t.0)))),
9237            ),
9238            TypeVariant::ScErrorCode => Box::new(
9239                ReadXdrIter::<_, Frame<ScErrorCode>>::new(&mut r.inner, r.limits.clone())
9240                    .map(|r| r.map(|t| Self::ScErrorCode(Box::new(t.0)))),
9241            ),
9242            TypeVariant::ScError => Box::new(
9243                ReadXdrIter::<_, Frame<ScError>>::new(&mut r.inner, r.limits.clone())
9244                    .map(|r| r.map(|t| Self::ScError(Box::new(t.0)))),
9245            ),
9246            TypeVariant::UInt128Parts => Box::new(
9247                ReadXdrIter::<_, Frame<UInt128Parts>>::new(&mut r.inner, r.limits.clone())
9248                    .map(|r| r.map(|t| Self::UInt128Parts(Box::new(t.0)))),
9249            ),
9250            TypeVariant::Int128Parts => Box::new(
9251                ReadXdrIter::<_, Frame<Int128Parts>>::new(&mut r.inner, r.limits.clone())
9252                    .map(|r| r.map(|t| Self::Int128Parts(Box::new(t.0)))),
9253            ),
9254            TypeVariant::UInt256Parts => Box::new(
9255                ReadXdrIter::<_, Frame<UInt256Parts>>::new(&mut r.inner, r.limits.clone())
9256                    .map(|r| r.map(|t| Self::UInt256Parts(Box::new(t.0)))),
9257            ),
9258            TypeVariant::Int256Parts => Box::new(
9259                ReadXdrIter::<_, Frame<Int256Parts>>::new(&mut r.inner, r.limits.clone())
9260                    .map(|r| r.map(|t| Self::Int256Parts(Box::new(t.0)))),
9261            ),
9262            TypeVariant::ContractExecutableType => Box::new(
9263                ReadXdrIter::<_, Frame<ContractExecutableType>>::new(
9264                    &mut r.inner,
9265                    r.limits.clone(),
9266                )
9267                .map(|r| r.map(|t| Self::ContractExecutableType(Box::new(t.0)))),
9268            ),
9269            TypeVariant::ScAddressType => Box::new(
9270                ReadXdrIter::<_, Frame<ScAddressType>>::new(&mut r.inner, r.limits.clone())
9271                    .map(|r| r.map(|t| Self::ScAddressType(Box::new(t.0)))),
9272            ),
9273            TypeVariant::MuxedEd25519Account => Box::new(
9274                ReadXdrIter::<_, Frame<MuxedEd25519Account>>::new(&mut r.inner, r.limits.clone())
9275                    .map(|r| r.map(|t| Self::MuxedEd25519Account(Box::new(t.0)))),
9276            ),
9277            #[cfg(feature = "cap_0084_muxed_contract")]
9278            TypeVariant::MuxedContract => Box::new(
9279                ReadXdrIter::<_, Frame<MuxedContract>>::new(&mut r.inner, r.limits.clone())
9280                    .map(|r| r.map(|t| Self::MuxedContract(Box::new(t.0)))),
9281            ),
9282            TypeVariant::ScAddress => Box::new(
9283                ReadXdrIter::<_, Frame<ScAddress>>::new(&mut r.inner, r.limits.clone())
9284                    .map(|r| r.map(|t| Self::ScAddress(Box::new(t.0)))),
9285            ),
9286            TypeVariant::ContractExecutableExternalRef => Box::new(
9287                ReadXdrIter::<_, Frame<ContractExecutableExternalRef>>::new(
9288                    &mut r.inner,
9289                    r.limits.clone(),
9290                )
9291                .map(|r| r.map(|t| Self::ContractExecutableExternalRef(Box::new(t.0)))),
9292            ),
9293            TypeVariant::ContractExecutable => Box::new(
9294                ReadXdrIter::<_, Frame<ContractExecutable>>::new(&mut r.inner, r.limits.clone())
9295                    .map(|r| r.map(|t| Self::ContractExecutable(Box::new(t.0)))),
9296            ),
9297            TypeVariant::ScVec => Box::new(
9298                ReadXdrIter::<_, Frame<ScVec>>::new(&mut r.inner, r.limits.clone())
9299                    .map(|r| r.map(|t| Self::ScVec(Box::new(t.0)))),
9300            ),
9301            TypeVariant::ScMap => Box::new(
9302                ReadXdrIter::<_, Frame<ScMap>>::new(&mut r.inner, r.limits.clone())
9303                    .map(|r| r.map(|t| Self::ScMap(Box::new(t.0)))),
9304            ),
9305            TypeVariant::ScNonceKey => Box::new(
9306                ReadXdrIter::<_, Frame<ScNonceKey>>::new(&mut r.inner, r.limits.clone())
9307                    .map(|r| r.map(|t| Self::ScNonceKey(Box::new(t.0)))),
9308            ),
9309            TypeVariant::ScContractInstance => Box::new(
9310                ReadXdrIter::<_, Frame<ScContractInstance>>::new(&mut r.inner, r.limits.clone())
9311                    .map(|r| r.map(|t| Self::ScContractInstance(Box::new(t.0)))),
9312            ),
9313            TypeVariant::ScVal => Box::new(
9314                ReadXdrIter::<_, Frame<ScVal>>::new(&mut r.inner, r.limits.clone())
9315                    .map(|r| r.map(|t| Self::ScVal(Box::new(t.0)))),
9316            ),
9317            TypeVariant::ScMapEntry => Box::new(
9318                ReadXdrIter::<_, Frame<ScMapEntry>>::new(&mut r.inner, r.limits.clone())
9319                    .map(|r| r.map(|t| Self::ScMapEntry(Box::new(t.0)))),
9320            ),
9321            TypeVariant::LedgerCloseMetaBatch => Box::new(
9322                ReadXdrIter::<_, Frame<LedgerCloseMetaBatch>>::new(&mut r.inner, r.limits.clone())
9323                    .map(|r| r.map(|t| Self::LedgerCloseMetaBatch(Box::new(t.0)))),
9324            ),
9325            TypeVariant::StoredTransactionSet => Box::new(
9326                ReadXdrIter::<_, Frame<StoredTransactionSet>>::new(&mut r.inner, r.limits.clone())
9327                    .map(|r| r.map(|t| Self::StoredTransactionSet(Box::new(t.0)))),
9328            ),
9329            TypeVariant::StoredDebugTransactionSet => Box::new(
9330                ReadXdrIter::<_, Frame<StoredDebugTransactionSet>>::new(
9331                    &mut r.inner,
9332                    r.limits.clone(),
9333                )
9334                .map(|r| r.map(|t| Self::StoredDebugTransactionSet(Box::new(t.0)))),
9335            ),
9336            TypeVariant::PersistedScpStateV0 => Box::new(
9337                ReadXdrIter::<_, Frame<PersistedScpStateV0>>::new(&mut r.inner, r.limits.clone())
9338                    .map(|r| r.map(|t| Self::PersistedScpStateV0(Box::new(t.0)))),
9339            ),
9340            TypeVariant::PersistedScpStateV1 => Box::new(
9341                ReadXdrIter::<_, Frame<PersistedScpStateV1>>::new(&mut r.inner, r.limits.clone())
9342                    .map(|r| r.map(|t| Self::PersistedScpStateV1(Box::new(t.0)))),
9343            ),
9344            TypeVariant::PersistedScpState => Box::new(
9345                ReadXdrIter::<_, Frame<PersistedScpState>>::new(&mut r.inner, r.limits.clone())
9346                    .map(|r| r.map(|t| Self::PersistedScpState(Box::new(t.0)))),
9347            ),
9348            TypeVariant::Thresholds => Box::new(
9349                ReadXdrIter::<_, Frame<Thresholds>>::new(&mut r.inner, r.limits.clone())
9350                    .map(|r| r.map(|t| Self::Thresholds(Box::new(t.0)))),
9351            ),
9352            TypeVariant::String32 => Box::new(
9353                ReadXdrIter::<_, Frame<String32>>::new(&mut r.inner, r.limits.clone())
9354                    .map(|r| r.map(|t| Self::String32(Box::new(t.0)))),
9355            ),
9356            TypeVariant::String64 => Box::new(
9357                ReadXdrIter::<_, Frame<String64>>::new(&mut r.inner, r.limits.clone())
9358                    .map(|r| r.map(|t| Self::String64(Box::new(t.0)))),
9359            ),
9360            TypeVariant::SequenceNumber => Box::new(
9361                ReadXdrIter::<_, Frame<SequenceNumber>>::new(&mut r.inner, r.limits.clone())
9362                    .map(|r| r.map(|t| Self::SequenceNumber(Box::new(t.0)))),
9363            ),
9364            TypeVariant::DataValue => Box::new(
9365                ReadXdrIter::<_, Frame<DataValue>>::new(&mut r.inner, r.limits.clone())
9366                    .map(|r| r.map(|t| Self::DataValue(Box::new(t.0)))),
9367            ),
9368            TypeVariant::AssetCode4 => Box::new(
9369                ReadXdrIter::<_, Frame<AssetCode4>>::new(&mut r.inner, r.limits.clone())
9370                    .map(|r| r.map(|t| Self::AssetCode4(Box::new(t.0)))),
9371            ),
9372            TypeVariant::AssetCode12 => Box::new(
9373                ReadXdrIter::<_, Frame<AssetCode12>>::new(&mut r.inner, r.limits.clone())
9374                    .map(|r| r.map(|t| Self::AssetCode12(Box::new(t.0)))),
9375            ),
9376            TypeVariant::AssetType => Box::new(
9377                ReadXdrIter::<_, Frame<AssetType>>::new(&mut r.inner, r.limits.clone())
9378                    .map(|r| r.map(|t| Self::AssetType(Box::new(t.0)))),
9379            ),
9380            TypeVariant::AssetCode => Box::new(
9381                ReadXdrIter::<_, Frame<AssetCode>>::new(&mut r.inner, r.limits.clone())
9382                    .map(|r| r.map(|t| Self::AssetCode(Box::new(t.0)))),
9383            ),
9384            TypeVariant::AlphaNum4 => Box::new(
9385                ReadXdrIter::<_, Frame<AlphaNum4>>::new(&mut r.inner, r.limits.clone())
9386                    .map(|r| r.map(|t| Self::AlphaNum4(Box::new(t.0)))),
9387            ),
9388            TypeVariant::AlphaNum12 => Box::new(
9389                ReadXdrIter::<_, Frame<AlphaNum12>>::new(&mut r.inner, r.limits.clone())
9390                    .map(|r| r.map(|t| Self::AlphaNum12(Box::new(t.0)))),
9391            ),
9392            TypeVariant::Asset => Box::new(
9393                ReadXdrIter::<_, Frame<Asset>>::new(&mut r.inner, r.limits.clone())
9394                    .map(|r| r.map(|t| Self::Asset(Box::new(t.0)))),
9395            ),
9396            TypeVariant::Price => Box::new(
9397                ReadXdrIter::<_, Frame<Price>>::new(&mut r.inner, r.limits.clone())
9398                    .map(|r| r.map(|t| Self::Price(Box::new(t.0)))),
9399            ),
9400            TypeVariant::Liabilities => Box::new(
9401                ReadXdrIter::<_, Frame<Liabilities>>::new(&mut r.inner, r.limits.clone())
9402                    .map(|r| r.map(|t| Self::Liabilities(Box::new(t.0)))),
9403            ),
9404            TypeVariant::ThresholdIndexes => Box::new(
9405                ReadXdrIter::<_, Frame<ThresholdIndexes>>::new(&mut r.inner, r.limits.clone())
9406                    .map(|r| r.map(|t| Self::ThresholdIndexes(Box::new(t.0)))),
9407            ),
9408            TypeVariant::LedgerEntryType => Box::new(
9409                ReadXdrIter::<_, Frame<LedgerEntryType>>::new(&mut r.inner, r.limits.clone())
9410                    .map(|r| r.map(|t| Self::LedgerEntryType(Box::new(t.0)))),
9411            ),
9412            TypeVariant::Signer => Box::new(
9413                ReadXdrIter::<_, Frame<Signer>>::new(&mut r.inner, r.limits.clone())
9414                    .map(|r| r.map(|t| Self::Signer(Box::new(t.0)))),
9415            ),
9416            TypeVariant::AccountFlags => Box::new(
9417                ReadXdrIter::<_, Frame<AccountFlags>>::new(&mut r.inner, r.limits.clone())
9418                    .map(|r| r.map(|t| Self::AccountFlags(Box::new(t.0)))),
9419            ),
9420            TypeVariant::SponsorshipDescriptor => Box::new(
9421                ReadXdrIter::<_, Frame<SponsorshipDescriptor>>::new(&mut r.inner, r.limits.clone())
9422                    .map(|r| r.map(|t| Self::SponsorshipDescriptor(Box::new(t.0)))),
9423            ),
9424            TypeVariant::AccountEntryExtensionV3 => Box::new(
9425                ReadXdrIter::<_, Frame<AccountEntryExtensionV3>>::new(
9426                    &mut r.inner,
9427                    r.limits.clone(),
9428                )
9429                .map(|r| r.map(|t| Self::AccountEntryExtensionV3(Box::new(t.0)))),
9430            ),
9431            TypeVariant::AccountEntryExtensionV2 => Box::new(
9432                ReadXdrIter::<_, Frame<AccountEntryExtensionV2>>::new(
9433                    &mut r.inner,
9434                    r.limits.clone(),
9435                )
9436                .map(|r| r.map(|t| Self::AccountEntryExtensionV2(Box::new(t.0)))),
9437            ),
9438            TypeVariant::AccountEntryExtensionV2Ext => Box::new(
9439                ReadXdrIter::<_, Frame<AccountEntryExtensionV2Ext>>::new(
9440                    &mut r.inner,
9441                    r.limits.clone(),
9442                )
9443                .map(|r| r.map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t.0)))),
9444            ),
9445            TypeVariant::AccountEntryExtensionV1 => Box::new(
9446                ReadXdrIter::<_, Frame<AccountEntryExtensionV1>>::new(
9447                    &mut r.inner,
9448                    r.limits.clone(),
9449                )
9450                .map(|r| r.map(|t| Self::AccountEntryExtensionV1(Box::new(t.0)))),
9451            ),
9452            TypeVariant::AccountEntryExtensionV1Ext => Box::new(
9453                ReadXdrIter::<_, Frame<AccountEntryExtensionV1Ext>>::new(
9454                    &mut r.inner,
9455                    r.limits.clone(),
9456                )
9457                .map(|r| r.map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t.0)))),
9458            ),
9459            TypeVariant::AccountEntry => Box::new(
9460                ReadXdrIter::<_, Frame<AccountEntry>>::new(&mut r.inner, r.limits.clone())
9461                    .map(|r| r.map(|t| Self::AccountEntry(Box::new(t.0)))),
9462            ),
9463            TypeVariant::AccountEntryExt => Box::new(
9464                ReadXdrIter::<_, Frame<AccountEntryExt>>::new(&mut r.inner, r.limits.clone())
9465                    .map(|r| r.map(|t| Self::AccountEntryExt(Box::new(t.0)))),
9466            ),
9467            TypeVariant::TrustLineFlags => Box::new(
9468                ReadXdrIter::<_, Frame<TrustLineFlags>>::new(&mut r.inner, r.limits.clone())
9469                    .map(|r| r.map(|t| Self::TrustLineFlags(Box::new(t.0)))),
9470            ),
9471            TypeVariant::LiquidityPoolType => Box::new(
9472                ReadXdrIter::<_, Frame<LiquidityPoolType>>::new(&mut r.inner, r.limits.clone())
9473                    .map(|r| r.map(|t| Self::LiquidityPoolType(Box::new(t.0)))),
9474            ),
9475            TypeVariant::TrustLineAsset => Box::new(
9476                ReadXdrIter::<_, Frame<TrustLineAsset>>::new(&mut r.inner, r.limits.clone())
9477                    .map(|r| r.map(|t| Self::TrustLineAsset(Box::new(t.0)))),
9478            ),
9479            TypeVariant::TrustLineEntryExtensionV2 => Box::new(
9480                ReadXdrIter::<_, Frame<TrustLineEntryExtensionV2>>::new(
9481                    &mut r.inner,
9482                    r.limits.clone(),
9483                )
9484                .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2(Box::new(t.0)))),
9485            ),
9486            TypeVariant::TrustLineEntryExtensionV2Ext => Box::new(
9487                ReadXdrIter::<_, Frame<TrustLineEntryExtensionV2Ext>>::new(
9488                    &mut r.inner,
9489                    r.limits.clone(),
9490                )
9491                .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t.0)))),
9492            ),
9493            TypeVariant::TrustLineEntry => Box::new(
9494                ReadXdrIter::<_, Frame<TrustLineEntry>>::new(&mut r.inner, r.limits.clone())
9495                    .map(|r| r.map(|t| Self::TrustLineEntry(Box::new(t.0)))),
9496            ),
9497            TypeVariant::TrustLineEntryExt => Box::new(
9498                ReadXdrIter::<_, Frame<TrustLineEntryExt>>::new(&mut r.inner, r.limits.clone())
9499                    .map(|r| r.map(|t| Self::TrustLineEntryExt(Box::new(t.0)))),
9500            ),
9501            TypeVariant::TrustLineEntryV1 => Box::new(
9502                ReadXdrIter::<_, Frame<TrustLineEntryV1>>::new(&mut r.inner, r.limits.clone())
9503                    .map(|r| r.map(|t| Self::TrustLineEntryV1(Box::new(t.0)))),
9504            ),
9505            TypeVariant::TrustLineEntryV1Ext => Box::new(
9506                ReadXdrIter::<_, Frame<TrustLineEntryV1Ext>>::new(&mut r.inner, r.limits.clone())
9507                    .map(|r| r.map(|t| Self::TrustLineEntryV1Ext(Box::new(t.0)))),
9508            ),
9509            TypeVariant::OfferEntryFlags => Box::new(
9510                ReadXdrIter::<_, Frame<OfferEntryFlags>>::new(&mut r.inner, r.limits.clone())
9511                    .map(|r| r.map(|t| Self::OfferEntryFlags(Box::new(t.0)))),
9512            ),
9513            TypeVariant::OfferEntry => Box::new(
9514                ReadXdrIter::<_, Frame<OfferEntry>>::new(&mut r.inner, r.limits.clone())
9515                    .map(|r| r.map(|t| Self::OfferEntry(Box::new(t.0)))),
9516            ),
9517            TypeVariant::OfferEntryExt => Box::new(
9518                ReadXdrIter::<_, Frame<OfferEntryExt>>::new(&mut r.inner, r.limits.clone())
9519                    .map(|r| r.map(|t| Self::OfferEntryExt(Box::new(t.0)))),
9520            ),
9521            TypeVariant::DataEntry => Box::new(
9522                ReadXdrIter::<_, Frame<DataEntry>>::new(&mut r.inner, r.limits.clone())
9523                    .map(|r| r.map(|t| Self::DataEntry(Box::new(t.0)))),
9524            ),
9525            TypeVariant::DataEntryExt => Box::new(
9526                ReadXdrIter::<_, Frame<DataEntryExt>>::new(&mut r.inner, r.limits.clone())
9527                    .map(|r| r.map(|t| Self::DataEntryExt(Box::new(t.0)))),
9528            ),
9529            TypeVariant::ClaimPredicateType => Box::new(
9530                ReadXdrIter::<_, Frame<ClaimPredicateType>>::new(&mut r.inner, r.limits.clone())
9531                    .map(|r| r.map(|t| Self::ClaimPredicateType(Box::new(t.0)))),
9532            ),
9533            TypeVariant::ClaimPredicate => Box::new(
9534                ReadXdrIter::<_, Frame<ClaimPredicate>>::new(&mut r.inner, r.limits.clone())
9535                    .map(|r| r.map(|t| Self::ClaimPredicate(Box::new(t.0)))),
9536            ),
9537            TypeVariant::ClaimantType => Box::new(
9538                ReadXdrIter::<_, Frame<ClaimantType>>::new(&mut r.inner, r.limits.clone())
9539                    .map(|r| r.map(|t| Self::ClaimantType(Box::new(t.0)))),
9540            ),
9541            TypeVariant::Claimant => Box::new(
9542                ReadXdrIter::<_, Frame<Claimant>>::new(&mut r.inner, r.limits.clone())
9543                    .map(|r| r.map(|t| Self::Claimant(Box::new(t.0)))),
9544            ),
9545            TypeVariant::ClaimantV0 => Box::new(
9546                ReadXdrIter::<_, Frame<ClaimantV0>>::new(&mut r.inner, r.limits.clone())
9547                    .map(|r| r.map(|t| Self::ClaimantV0(Box::new(t.0)))),
9548            ),
9549            TypeVariant::ClaimableBalanceFlags => Box::new(
9550                ReadXdrIter::<_, Frame<ClaimableBalanceFlags>>::new(&mut r.inner, r.limits.clone())
9551                    .map(|r| r.map(|t| Self::ClaimableBalanceFlags(Box::new(t.0)))),
9552            ),
9553            TypeVariant::ClaimableBalanceEntryExtensionV1 => Box::new(
9554                ReadXdrIter::<_, Frame<ClaimableBalanceEntryExtensionV1>>::new(
9555                    &mut r.inner,
9556                    r.limits.clone(),
9557                )
9558                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t.0)))),
9559            ),
9560            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Box::new(
9561                ReadXdrIter::<_, Frame<ClaimableBalanceEntryExtensionV1Ext>>::new(
9562                    &mut r.inner,
9563                    r.limits.clone(),
9564                )
9565                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t.0)))),
9566            ),
9567            TypeVariant::ClaimableBalanceEntry => Box::new(
9568                ReadXdrIter::<_, Frame<ClaimableBalanceEntry>>::new(&mut r.inner, r.limits.clone())
9569                    .map(|r| r.map(|t| Self::ClaimableBalanceEntry(Box::new(t.0)))),
9570            ),
9571            TypeVariant::ClaimableBalanceEntryExt => Box::new(
9572                ReadXdrIter::<_, Frame<ClaimableBalanceEntryExt>>::new(
9573                    &mut r.inner,
9574                    r.limits.clone(),
9575                )
9576                .map(|r| r.map(|t| Self::ClaimableBalanceEntryExt(Box::new(t.0)))),
9577            ),
9578            TypeVariant::LiquidityPoolConstantProductParameters => Box::new(
9579                ReadXdrIter::<_, Frame<LiquidityPoolConstantProductParameters>>::new(
9580                    &mut r.inner,
9581                    r.limits.clone(),
9582                )
9583                .map(|r| r.map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t.0)))),
9584            ),
9585            TypeVariant::LiquidityPoolEntry => Box::new(
9586                ReadXdrIter::<_, Frame<LiquidityPoolEntry>>::new(&mut r.inner, r.limits.clone())
9587                    .map(|r| r.map(|t| Self::LiquidityPoolEntry(Box::new(t.0)))),
9588            ),
9589            TypeVariant::LiquidityPoolEntryBody => Box::new(
9590                ReadXdrIter::<_, Frame<LiquidityPoolEntryBody>>::new(
9591                    &mut r.inner,
9592                    r.limits.clone(),
9593                )
9594                .map(|r| r.map(|t| Self::LiquidityPoolEntryBody(Box::new(t.0)))),
9595            ),
9596            TypeVariant::LiquidityPoolEntryConstantProduct => Box::new(
9597                ReadXdrIter::<_, Frame<LiquidityPoolEntryConstantProduct>>::new(
9598                    &mut r.inner,
9599                    r.limits.clone(),
9600                )
9601                .map(|r| r.map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t.0)))),
9602            ),
9603            TypeVariant::ContractDataDurability => Box::new(
9604                ReadXdrIter::<_, Frame<ContractDataDurability>>::new(
9605                    &mut r.inner,
9606                    r.limits.clone(),
9607                )
9608                .map(|r| r.map(|t| Self::ContractDataDurability(Box::new(t.0)))),
9609            ),
9610            TypeVariant::ContractDataEntry => Box::new(
9611                ReadXdrIter::<_, Frame<ContractDataEntry>>::new(&mut r.inner, r.limits.clone())
9612                    .map(|r| r.map(|t| Self::ContractDataEntry(Box::new(t.0)))),
9613            ),
9614            TypeVariant::ContractCodeCostInputs => Box::new(
9615                ReadXdrIter::<_, Frame<ContractCodeCostInputs>>::new(
9616                    &mut r.inner,
9617                    r.limits.clone(),
9618                )
9619                .map(|r| r.map(|t| Self::ContractCodeCostInputs(Box::new(t.0)))),
9620            ),
9621            TypeVariant::ContractCodeEntry => Box::new(
9622                ReadXdrIter::<_, Frame<ContractCodeEntry>>::new(&mut r.inner, r.limits.clone())
9623                    .map(|r| r.map(|t| Self::ContractCodeEntry(Box::new(t.0)))),
9624            ),
9625            TypeVariant::ContractCodeEntryExt => Box::new(
9626                ReadXdrIter::<_, Frame<ContractCodeEntryExt>>::new(&mut r.inner, r.limits.clone())
9627                    .map(|r| r.map(|t| Self::ContractCodeEntryExt(Box::new(t.0)))),
9628            ),
9629            TypeVariant::ContractCodeEntryV1 => Box::new(
9630                ReadXdrIter::<_, Frame<ContractCodeEntryV1>>::new(&mut r.inner, r.limits.clone())
9631                    .map(|r| r.map(|t| Self::ContractCodeEntryV1(Box::new(t.0)))),
9632            ),
9633            TypeVariant::TtlEntry => Box::new(
9634                ReadXdrIter::<_, Frame<TtlEntry>>::new(&mut r.inner, r.limits.clone())
9635                    .map(|r| r.map(|t| Self::TtlEntry(Box::new(t.0)))),
9636            ),
9637            TypeVariant::LedgerEntryExtensionV1 => Box::new(
9638                ReadXdrIter::<_, Frame<LedgerEntryExtensionV1>>::new(
9639                    &mut r.inner,
9640                    r.limits.clone(),
9641                )
9642                .map(|r| r.map(|t| Self::LedgerEntryExtensionV1(Box::new(t.0)))),
9643            ),
9644            TypeVariant::LedgerEntryExtensionV1Ext => Box::new(
9645                ReadXdrIter::<_, Frame<LedgerEntryExtensionV1Ext>>::new(
9646                    &mut r.inner,
9647                    r.limits.clone(),
9648                )
9649                .map(|r| r.map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t.0)))),
9650            ),
9651            TypeVariant::LedgerEntry => Box::new(
9652                ReadXdrIter::<_, Frame<LedgerEntry>>::new(&mut r.inner, r.limits.clone())
9653                    .map(|r| r.map(|t| Self::LedgerEntry(Box::new(t.0)))),
9654            ),
9655            TypeVariant::LedgerEntryData => Box::new(
9656                ReadXdrIter::<_, Frame<LedgerEntryData>>::new(&mut r.inner, r.limits.clone())
9657                    .map(|r| r.map(|t| Self::LedgerEntryData(Box::new(t.0)))),
9658            ),
9659            TypeVariant::LedgerEntryExt => Box::new(
9660                ReadXdrIter::<_, Frame<LedgerEntryExt>>::new(&mut r.inner, r.limits.clone())
9661                    .map(|r| r.map(|t| Self::LedgerEntryExt(Box::new(t.0)))),
9662            ),
9663            TypeVariant::LedgerKey => Box::new(
9664                ReadXdrIter::<_, Frame<LedgerKey>>::new(&mut r.inner, r.limits.clone())
9665                    .map(|r| r.map(|t| Self::LedgerKey(Box::new(t.0)))),
9666            ),
9667            TypeVariant::LedgerKeyAccount => Box::new(
9668                ReadXdrIter::<_, Frame<LedgerKeyAccount>>::new(&mut r.inner, r.limits.clone())
9669                    .map(|r| r.map(|t| Self::LedgerKeyAccount(Box::new(t.0)))),
9670            ),
9671            TypeVariant::LedgerKeyTrustLine => Box::new(
9672                ReadXdrIter::<_, Frame<LedgerKeyTrustLine>>::new(&mut r.inner, r.limits.clone())
9673                    .map(|r| r.map(|t| Self::LedgerKeyTrustLine(Box::new(t.0)))),
9674            ),
9675            TypeVariant::LedgerKeyOffer => Box::new(
9676                ReadXdrIter::<_, Frame<LedgerKeyOffer>>::new(&mut r.inner, r.limits.clone())
9677                    .map(|r| r.map(|t| Self::LedgerKeyOffer(Box::new(t.0)))),
9678            ),
9679            TypeVariant::LedgerKeyData => Box::new(
9680                ReadXdrIter::<_, Frame<LedgerKeyData>>::new(&mut r.inner, r.limits.clone())
9681                    .map(|r| r.map(|t| Self::LedgerKeyData(Box::new(t.0)))),
9682            ),
9683            TypeVariant::LedgerKeyClaimableBalance => Box::new(
9684                ReadXdrIter::<_, Frame<LedgerKeyClaimableBalance>>::new(
9685                    &mut r.inner,
9686                    r.limits.clone(),
9687                )
9688                .map(|r| r.map(|t| Self::LedgerKeyClaimableBalance(Box::new(t.0)))),
9689            ),
9690            TypeVariant::LedgerKeyLiquidityPool => Box::new(
9691                ReadXdrIter::<_, Frame<LedgerKeyLiquidityPool>>::new(
9692                    &mut r.inner,
9693                    r.limits.clone(),
9694                )
9695                .map(|r| r.map(|t| Self::LedgerKeyLiquidityPool(Box::new(t.0)))),
9696            ),
9697            TypeVariant::LedgerKeyContractData => Box::new(
9698                ReadXdrIter::<_, Frame<LedgerKeyContractData>>::new(&mut r.inner, r.limits.clone())
9699                    .map(|r| r.map(|t| Self::LedgerKeyContractData(Box::new(t.0)))),
9700            ),
9701            TypeVariant::LedgerKeyContractCode => Box::new(
9702                ReadXdrIter::<_, Frame<LedgerKeyContractCode>>::new(&mut r.inner, r.limits.clone())
9703                    .map(|r| r.map(|t| Self::LedgerKeyContractCode(Box::new(t.0)))),
9704            ),
9705            TypeVariant::LedgerKeyConfigSetting => Box::new(
9706                ReadXdrIter::<_, Frame<LedgerKeyConfigSetting>>::new(
9707                    &mut r.inner,
9708                    r.limits.clone(),
9709                )
9710                .map(|r| r.map(|t| Self::LedgerKeyConfigSetting(Box::new(t.0)))),
9711            ),
9712            TypeVariant::LedgerKeyTtl => Box::new(
9713                ReadXdrIter::<_, Frame<LedgerKeyTtl>>::new(&mut r.inner, r.limits.clone())
9714                    .map(|r| r.map(|t| Self::LedgerKeyTtl(Box::new(t.0)))),
9715            ),
9716            TypeVariant::EnvelopeType => Box::new(
9717                ReadXdrIter::<_, Frame<EnvelopeType>>::new(&mut r.inner, r.limits.clone())
9718                    .map(|r| r.map(|t| Self::EnvelopeType(Box::new(t.0)))),
9719            ),
9720            TypeVariant::BucketListType => Box::new(
9721                ReadXdrIter::<_, Frame<BucketListType>>::new(&mut r.inner, r.limits.clone())
9722                    .map(|r| r.map(|t| Self::BucketListType(Box::new(t.0)))),
9723            ),
9724            TypeVariant::BucketEntryType => Box::new(
9725                ReadXdrIter::<_, Frame<BucketEntryType>>::new(&mut r.inner, r.limits.clone())
9726                    .map(|r| r.map(|t| Self::BucketEntryType(Box::new(t.0)))),
9727            ),
9728            TypeVariant::HotArchiveBucketEntryType => Box::new(
9729                ReadXdrIter::<_, Frame<HotArchiveBucketEntryType>>::new(
9730                    &mut r.inner,
9731                    r.limits.clone(),
9732                )
9733                .map(|r| r.map(|t| Self::HotArchiveBucketEntryType(Box::new(t.0)))),
9734            ),
9735            TypeVariant::BucketMetadata => Box::new(
9736                ReadXdrIter::<_, Frame<BucketMetadata>>::new(&mut r.inner, r.limits.clone())
9737                    .map(|r| r.map(|t| Self::BucketMetadata(Box::new(t.0)))),
9738            ),
9739            TypeVariant::BucketMetadataExt => Box::new(
9740                ReadXdrIter::<_, Frame<BucketMetadataExt>>::new(&mut r.inner, r.limits.clone())
9741                    .map(|r| r.map(|t| Self::BucketMetadataExt(Box::new(t.0)))),
9742            ),
9743            TypeVariant::BucketEntry => Box::new(
9744                ReadXdrIter::<_, Frame<BucketEntry>>::new(&mut r.inner, r.limits.clone())
9745                    .map(|r| r.map(|t| Self::BucketEntry(Box::new(t.0)))),
9746            ),
9747            TypeVariant::HotArchiveBucketEntry => Box::new(
9748                ReadXdrIter::<_, Frame<HotArchiveBucketEntry>>::new(&mut r.inner, r.limits.clone())
9749                    .map(|r| r.map(|t| Self::HotArchiveBucketEntry(Box::new(t.0)))),
9750            ),
9751            TypeVariant::UpgradeType => Box::new(
9752                ReadXdrIter::<_, Frame<UpgradeType>>::new(&mut r.inner, r.limits.clone())
9753                    .map(|r| r.map(|t| Self::UpgradeType(Box::new(t.0)))),
9754            ),
9755            TypeVariant::StellarValueType => Box::new(
9756                ReadXdrIter::<_, Frame<StellarValueType>>::new(&mut r.inner, r.limits.clone())
9757                    .map(|r| r.map(|t| Self::StellarValueType(Box::new(t.0)))),
9758            ),
9759            TypeVariant::LedgerCloseValueSignature => Box::new(
9760                ReadXdrIter::<_, Frame<LedgerCloseValueSignature>>::new(
9761                    &mut r.inner,
9762                    r.limits.clone(),
9763                )
9764                .map(|r| r.map(|t| Self::LedgerCloseValueSignature(Box::new(t.0)))),
9765            ),
9766            TypeVariant::StellarValue => Box::new(
9767                ReadXdrIter::<_, Frame<StellarValue>>::new(&mut r.inner, r.limits.clone())
9768                    .map(|r| r.map(|t| Self::StellarValue(Box::new(t.0)))),
9769            ),
9770            TypeVariant::StellarValueExt => Box::new(
9771                ReadXdrIter::<_, Frame<StellarValueExt>>::new(&mut r.inner, r.limits.clone())
9772                    .map(|r| r.map(|t| Self::StellarValueExt(Box::new(t.0)))),
9773            ),
9774            TypeVariant::StellarValueProposedValue => Box::new(
9775                ReadXdrIter::<_, Frame<StellarValueProposedValue>>::new(
9776                    &mut r.inner,
9777                    r.limits.clone(),
9778                )
9779                .map(|r| r.map(|t| Self::StellarValueProposedValue(Box::new(t.0)))),
9780            ),
9781            TypeVariant::LedgerHeaderFlags => Box::new(
9782                ReadXdrIter::<_, Frame<LedgerHeaderFlags>>::new(&mut r.inner, r.limits.clone())
9783                    .map(|r| r.map(|t| Self::LedgerHeaderFlags(Box::new(t.0)))),
9784            ),
9785            TypeVariant::LedgerHeaderExtensionV1 => Box::new(
9786                ReadXdrIter::<_, Frame<LedgerHeaderExtensionV1>>::new(
9787                    &mut r.inner,
9788                    r.limits.clone(),
9789                )
9790                .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1(Box::new(t.0)))),
9791            ),
9792            TypeVariant::LedgerHeaderExtensionV1Ext => Box::new(
9793                ReadXdrIter::<_, Frame<LedgerHeaderExtensionV1Ext>>::new(
9794                    &mut r.inner,
9795                    r.limits.clone(),
9796                )
9797                .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t.0)))),
9798            ),
9799            TypeVariant::LedgerHeader => Box::new(
9800                ReadXdrIter::<_, Frame<LedgerHeader>>::new(&mut r.inner, r.limits.clone())
9801                    .map(|r| r.map(|t| Self::LedgerHeader(Box::new(t.0)))),
9802            ),
9803            TypeVariant::LedgerHeaderExt => Box::new(
9804                ReadXdrIter::<_, Frame<LedgerHeaderExt>>::new(&mut r.inner, r.limits.clone())
9805                    .map(|r| r.map(|t| Self::LedgerHeaderExt(Box::new(t.0)))),
9806            ),
9807            TypeVariant::LedgerUpgradeType => Box::new(
9808                ReadXdrIter::<_, Frame<LedgerUpgradeType>>::new(&mut r.inner, r.limits.clone())
9809                    .map(|r| r.map(|t| Self::LedgerUpgradeType(Box::new(t.0)))),
9810            ),
9811            TypeVariant::ConfigUpgradeSetKey => Box::new(
9812                ReadXdrIter::<_, Frame<ConfigUpgradeSetKey>>::new(&mut r.inner, r.limits.clone())
9813                    .map(|r| r.map(|t| Self::ConfigUpgradeSetKey(Box::new(t.0)))),
9814            ),
9815            TypeVariant::LedgerUpgrade => Box::new(
9816                ReadXdrIter::<_, Frame<LedgerUpgrade>>::new(&mut r.inner, r.limits.clone())
9817                    .map(|r| r.map(|t| Self::LedgerUpgrade(Box::new(t.0)))),
9818            ),
9819            TypeVariant::ConfigUpgradeSet => Box::new(
9820                ReadXdrIter::<_, Frame<ConfigUpgradeSet>>::new(&mut r.inner, r.limits.clone())
9821                    .map(|r| r.map(|t| Self::ConfigUpgradeSet(Box::new(t.0)))),
9822            ),
9823            TypeVariant::TxSetComponentType => Box::new(
9824                ReadXdrIter::<_, Frame<TxSetComponentType>>::new(&mut r.inner, r.limits.clone())
9825                    .map(|r| r.map(|t| Self::TxSetComponentType(Box::new(t.0)))),
9826            ),
9827            TypeVariant::DependentTxCluster => Box::new(
9828                ReadXdrIter::<_, Frame<DependentTxCluster>>::new(&mut r.inner, r.limits.clone())
9829                    .map(|r| r.map(|t| Self::DependentTxCluster(Box::new(t.0)))),
9830            ),
9831            TypeVariant::ParallelTxExecutionStage => Box::new(
9832                ReadXdrIter::<_, Frame<ParallelTxExecutionStage>>::new(
9833                    &mut r.inner,
9834                    r.limits.clone(),
9835                )
9836                .map(|r| r.map(|t| Self::ParallelTxExecutionStage(Box::new(t.0)))),
9837            ),
9838            TypeVariant::ParallelTxsComponent => Box::new(
9839                ReadXdrIter::<_, Frame<ParallelTxsComponent>>::new(&mut r.inner, r.limits.clone())
9840                    .map(|r| r.map(|t| Self::ParallelTxsComponent(Box::new(t.0)))),
9841            ),
9842            TypeVariant::TxSetComponent => Box::new(
9843                ReadXdrIter::<_, Frame<TxSetComponent>>::new(&mut r.inner, r.limits.clone())
9844                    .map(|r| r.map(|t| Self::TxSetComponent(Box::new(t.0)))),
9845            ),
9846            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Box::new(
9847                ReadXdrIter::<_, Frame<TxSetComponentTxsMaybeDiscountedFee>>::new(
9848                    &mut r.inner,
9849                    r.limits.clone(),
9850                )
9851                .map(|r| r.map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t.0)))),
9852            ),
9853            TypeVariant::TransactionPhase => Box::new(
9854                ReadXdrIter::<_, Frame<TransactionPhase>>::new(&mut r.inner, r.limits.clone())
9855                    .map(|r| r.map(|t| Self::TransactionPhase(Box::new(t.0)))),
9856            ),
9857            TypeVariant::TransactionSet => Box::new(
9858                ReadXdrIter::<_, Frame<TransactionSet>>::new(&mut r.inner, r.limits.clone())
9859                    .map(|r| r.map(|t| Self::TransactionSet(Box::new(t.0)))),
9860            ),
9861            TypeVariant::TransactionSetV1 => Box::new(
9862                ReadXdrIter::<_, Frame<TransactionSetV1>>::new(&mut r.inner, r.limits.clone())
9863                    .map(|r| r.map(|t| Self::TransactionSetV1(Box::new(t.0)))),
9864            ),
9865            TypeVariant::GeneralizedTransactionSet => Box::new(
9866                ReadXdrIter::<_, Frame<GeneralizedTransactionSet>>::new(
9867                    &mut r.inner,
9868                    r.limits.clone(),
9869                )
9870                .map(|r| r.map(|t| Self::GeneralizedTransactionSet(Box::new(t.0)))),
9871            ),
9872            TypeVariant::TransactionResultPair => Box::new(
9873                ReadXdrIter::<_, Frame<TransactionResultPair>>::new(&mut r.inner, r.limits.clone())
9874                    .map(|r| r.map(|t| Self::TransactionResultPair(Box::new(t.0)))),
9875            ),
9876            TypeVariant::TransactionResultSet => Box::new(
9877                ReadXdrIter::<_, Frame<TransactionResultSet>>::new(&mut r.inner, r.limits.clone())
9878                    .map(|r| r.map(|t| Self::TransactionResultSet(Box::new(t.0)))),
9879            ),
9880            TypeVariant::TransactionHistoryEntry => Box::new(
9881                ReadXdrIter::<_, Frame<TransactionHistoryEntry>>::new(
9882                    &mut r.inner,
9883                    r.limits.clone(),
9884                )
9885                .map(|r| r.map(|t| Self::TransactionHistoryEntry(Box::new(t.0)))),
9886            ),
9887            TypeVariant::TransactionHistoryEntryExt => Box::new(
9888                ReadXdrIter::<_, Frame<TransactionHistoryEntryExt>>::new(
9889                    &mut r.inner,
9890                    r.limits.clone(),
9891                )
9892                .map(|r| r.map(|t| Self::TransactionHistoryEntryExt(Box::new(t.0)))),
9893            ),
9894            TypeVariant::TransactionHistoryResultEntry => Box::new(
9895                ReadXdrIter::<_, Frame<TransactionHistoryResultEntry>>::new(
9896                    &mut r.inner,
9897                    r.limits.clone(),
9898                )
9899                .map(|r| r.map(|t| Self::TransactionHistoryResultEntry(Box::new(t.0)))),
9900            ),
9901            TypeVariant::TransactionHistoryResultEntryExt => Box::new(
9902                ReadXdrIter::<_, Frame<TransactionHistoryResultEntryExt>>::new(
9903                    &mut r.inner,
9904                    r.limits.clone(),
9905                )
9906                .map(|r| r.map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t.0)))),
9907            ),
9908            TypeVariant::LedgerHeaderHistoryEntry => Box::new(
9909                ReadXdrIter::<_, Frame<LedgerHeaderHistoryEntry>>::new(
9910                    &mut r.inner,
9911                    r.limits.clone(),
9912                )
9913                .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t.0)))),
9914            ),
9915            TypeVariant::LedgerHeaderHistoryEntryExt => Box::new(
9916                ReadXdrIter::<_, Frame<LedgerHeaderHistoryEntryExt>>::new(
9917                    &mut r.inner,
9918                    r.limits.clone(),
9919                )
9920                .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t.0)))),
9921            ),
9922            TypeVariant::LedgerScpMessages => Box::new(
9923                ReadXdrIter::<_, Frame<LedgerScpMessages>>::new(&mut r.inner, r.limits.clone())
9924                    .map(|r| r.map(|t| Self::LedgerScpMessages(Box::new(t.0)))),
9925            ),
9926            TypeVariant::ScpHistoryEntryV0 => Box::new(
9927                ReadXdrIter::<_, Frame<ScpHistoryEntryV0>>::new(&mut r.inner, r.limits.clone())
9928                    .map(|r| r.map(|t| Self::ScpHistoryEntryV0(Box::new(t.0)))),
9929            ),
9930            TypeVariant::ScpHistoryEntry => Box::new(
9931                ReadXdrIter::<_, Frame<ScpHistoryEntry>>::new(&mut r.inner, r.limits.clone())
9932                    .map(|r| r.map(|t| Self::ScpHistoryEntry(Box::new(t.0)))),
9933            ),
9934            TypeVariant::LedgerEntryChangeType => Box::new(
9935                ReadXdrIter::<_, Frame<LedgerEntryChangeType>>::new(&mut r.inner, r.limits.clone())
9936                    .map(|r| r.map(|t| Self::LedgerEntryChangeType(Box::new(t.0)))),
9937            ),
9938            TypeVariant::LedgerEntryChange => Box::new(
9939                ReadXdrIter::<_, Frame<LedgerEntryChange>>::new(&mut r.inner, r.limits.clone())
9940                    .map(|r| r.map(|t| Self::LedgerEntryChange(Box::new(t.0)))),
9941            ),
9942            TypeVariant::LedgerEntryChanges => Box::new(
9943                ReadXdrIter::<_, Frame<LedgerEntryChanges>>::new(&mut r.inner, r.limits.clone())
9944                    .map(|r| r.map(|t| Self::LedgerEntryChanges(Box::new(t.0)))),
9945            ),
9946            TypeVariant::OperationMeta => Box::new(
9947                ReadXdrIter::<_, Frame<OperationMeta>>::new(&mut r.inner, r.limits.clone())
9948                    .map(|r| r.map(|t| Self::OperationMeta(Box::new(t.0)))),
9949            ),
9950            TypeVariant::TransactionMetaV1 => Box::new(
9951                ReadXdrIter::<_, Frame<TransactionMetaV1>>::new(&mut r.inner, r.limits.clone())
9952                    .map(|r| r.map(|t| Self::TransactionMetaV1(Box::new(t.0)))),
9953            ),
9954            TypeVariant::TransactionMetaV2 => Box::new(
9955                ReadXdrIter::<_, Frame<TransactionMetaV2>>::new(&mut r.inner, r.limits.clone())
9956                    .map(|r| r.map(|t| Self::TransactionMetaV2(Box::new(t.0)))),
9957            ),
9958            TypeVariant::ContractEventType => Box::new(
9959                ReadXdrIter::<_, Frame<ContractEventType>>::new(&mut r.inner, r.limits.clone())
9960                    .map(|r| r.map(|t| Self::ContractEventType(Box::new(t.0)))),
9961            ),
9962            TypeVariant::ContractEvent => Box::new(
9963                ReadXdrIter::<_, Frame<ContractEvent>>::new(&mut r.inner, r.limits.clone())
9964                    .map(|r| r.map(|t| Self::ContractEvent(Box::new(t.0)))),
9965            ),
9966            TypeVariant::ContractEventBody => Box::new(
9967                ReadXdrIter::<_, Frame<ContractEventBody>>::new(&mut r.inner, r.limits.clone())
9968                    .map(|r| r.map(|t| Self::ContractEventBody(Box::new(t.0)))),
9969            ),
9970            TypeVariant::ContractEventV0 => Box::new(
9971                ReadXdrIter::<_, Frame<ContractEventV0>>::new(&mut r.inner, r.limits.clone())
9972                    .map(|r| r.map(|t| Self::ContractEventV0(Box::new(t.0)))),
9973            ),
9974            TypeVariant::DiagnosticEvent => Box::new(
9975                ReadXdrIter::<_, Frame<DiagnosticEvent>>::new(&mut r.inner, r.limits.clone())
9976                    .map(|r| r.map(|t| Self::DiagnosticEvent(Box::new(t.0)))),
9977            ),
9978            TypeVariant::SorobanTransactionMetaExtV1 => Box::new(
9979                ReadXdrIter::<_, Frame<SorobanTransactionMetaExtV1>>::new(
9980                    &mut r.inner,
9981                    r.limits.clone(),
9982                )
9983                .map(|r| r.map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t.0)))),
9984            ),
9985            TypeVariant::SorobanTransactionMetaExt => Box::new(
9986                ReadXdrIter::<_, Frame<SorobanTransactionMetaExt>>::new(
9987                    &mut r.inner,
9988                    r.limits.clone(),
9989                )
9990                .map(|r| r.map(|t| Self::SorobanTransactionMetaExt(Box::new(t.0)))),
9991            ),
9992            TypeVariant::SorobanTransactionMeta => Box::new(
9993                ReadXdrIter::<_, Frame<SorobanTransactionMeta>>::new(
9994                    &mut r.inner,
9995                    r.limits.clone(),
9996                )
9997                .map(|r| r.map(|t| Self::SorobanTransactionMeta(Box::new(t.0)))),
9998            ),
9999            TypeVariant::TransactionMetaV3 => Box::new(
10000                ReadXdrIter::<_, Frame<TransactionMetaV3>>::new(&mut r.inner, r.limits.clone())
10001                    .map(|r| r.map(|t| Self::TransactionMetaV3(Box::new(t.0)))),
10002            ),
10003            TypeVariant::OperationMetaV2 => Box::new(
10004                ReadXdrIter::<_, Frame<OperationMetaV2>>::new(&mut r.inner, r.limits.clone())
10005                    .map(|r| r.map(|t| Self::OperationMetaV2(Box::new(t.0)))),
10006            ),
10007            TypeVariant::SorobanTransactionMetaV2 => Box::new(
10008                ReadXdrIter::<_, Frame<SorobanTransactionMetaV2>>::new(
10009                    &mut r.inner,
10010                    r.limits.clone(),
10011                )
10012                .map(|r| r.map(|t| Self::SorobanTransactionMetaV2(Box::new(t.0)))),
10013            ),
10014            TypeVariant::TransactionEventStage => Box::new(
10015                ReadXdrIter::<_, Frame<TransactionEventStage>>::new(&mut r.inner, r.limits.clone())
10016                    .map(|r| r.map(|t| Self::TransactionEventStage(Box::new(t.0)))),
10017            ),
10018            TypeVariant::TransactionEvent => Box::new(
10019                ReadXdrIter::<_, Frame<TransactionEvent>>::new(&mut r.inner, r.limits.clone())
10020                    .map(|r| r.map(|t| Self::TransactionEvent(Box::new(t.0)))),
10021            ),
10022            TypeVariant::TransactionMetaV4 => Box::new(
10023                ReadXdrIter::<_, Frame<TransactionMetaV4>>::new(&mut r.inner, r.limits.clone())
10024                    .map(|r| r.map(|t| Self::TransactionMetaV4(Box::new(t.0)))),
10025            ),
10026            TypeVariant::InvokeHostFunctionSuccessPreImage => Box::new(
10027                ReadXdrIter::<_, Frame<InvokeHostFunctionSuccessPreImage>>::new(
10028                    &mut r.inner,
10029                    r.limits.clone(),
10030                )
10031                .map(|r| r.map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t.0)))),
10032            ),
10033            TypeVariant::TransactionMeta => Box::new(
10034                ReadXdrIter::<_, Frame<TransactionMeta>>::new(&mut r.inner, r.limits.clone())
10035                    .map(|r| r.map(|t| Self::TransactionMeta(Box::new(t.0)))),
10036            ),
10037            TypeVariant::TransactionResultMeta => Box::new(
10038                ReadXdrIter::<_, Frame<TransactionResultMeta>>::new(&mut r.inner, r.limits.clone())
10039                    .map(|r| r.map(|t| Self::TransactionResultMeta(Box::new(t.0)))),
10040            ),
10041            TypeVariant::TransactionResultMetaV1 => Box::new(
10042                ReadXdrIter::<_, Frame<TransactionResultMetaV1>>::new(
10043                    &mut r.inner,
10044                    r.limits.clone(),
10045                )
10046                .map(|r| r.map(|t| Self::TransactionResultMetaV1(Box::new(t.0)))),
10047            ),
10048            TypeVariant::UpgradeEntryMeta => Box::new(
10049                ReadXdrIter::<_, Frame<UpgradeEntryMeta>>::new(&mut r.inner, r.limits.clone())
10050                    .map(|r| r.map(|t| Self::UpgradeEntryMeta(Box::new(t.0)))),
10051            ),
10052            TypeVariant::LedgerCloseMetaV0 => Box::new(
10053                ReadXdrIter::<_, Frame<LedgerCloseMetaV0>>::new(&mut r.inner, r.limits.clone())
10054                    .map(|r| r.map(|t| Self::LedgerCloseMetaV0(Box::new(t.0)))),
10055            ),
10056            TypeVariant::LedgerCloseMetaExtV1 => Box::new(
10057                ReadXdrIter::<_, Frame<LedgerCloseMetaExtV1>>::new(&mut r.inner, r.limits.clone())
10058                    .map(|r| r.map(|t| Self::LedgerCloseMetaExtV1(Box::new(t.0)))),
10059            ),
10060            TypeVariant::LedgerCloseMetaExt => Box::new(
10061                ReadXdrIter::<_, Frame<LedgerCloseMetaExt>>::new(&mut r.inner, r.limits.clone())
10062                    .map(|r| r.map(|t| Self::LedgerCloseMetaExt(Box::new(t.0)))),
10063            ),
10064            TypeVariant::LedgerCloseMetaV1 => Box::new(
10065                ReadXdrIter::<_, Frame<LedgerCloseMetaV1>>::new(&mut r.inner, r.limits.clone())
10066                    .map(|r| r.map(|t| Self::LedgerCloseMetaV1(Box::new(t.0)))),
10067            ),
10068            TypeVariant::LedgerCloseMetaV2 => Box::new(
10069                ReadXdrIter::<_, Frame<LedgerCloseMetaV2>>::new(&mut r.inner, r.limits.clone())
10070                    .map(|r| r.map(|t| Self::LedgerCloseMetaV2(Box::new(t.0)))),
10071            ),
10072            TypeVariant::LedgerCloseMeta => Box::new(
10073                ReadXdrIter::<_, Frame<LedgerCloseMeta>>::new(&mut r.inner, r.limits.clone())
10074                    .map(|r| r.map(|t| Self::LedgerCloseMeta(Box::new(t.0)))),
10075            ),
10076            TypeVariant::ErrorCode => Box::new(
10077                ReadXdrIter::<_, Frame<ErrorCode>>::new(&mut r.inner, r.limits.clone())
10078                    .map(|r| r.map(|t| Self::ErrorCode(Box::new(t.0)))),
10079            ),
10080            TypeVariant::SError => Box::new(
10081                ReadXdrIter::<_, Frame<SError>>::new(&mut r.inner, r.limits.clone())
10082                    .map(|r| r.map(|t| Self::SError(Box::new(t.0)))),
10083            ),
10084            TypeVariant::SendMore => Box::new(
10085                ReadXdrIter::<_, Frame<SendMore>>::new(&mut r.inner, r.limits.clone())
10086                    .map(|r| r.map(|t| Self::SendMore(Box::new(t.0)))),
10087            ),
10088            TypeVariant::SendMoreExtended => Box::new(
10089                ReadXdrIter::<_, Frame<SendMoreExtended>>::new(&mut r.inner, r.limits.clone())
10090                    .map(|r| r.map(|t| Self::SendMoreExtended(Box::new(t.0)))),
10091            ),
10092            TypeVariant::AuthCert => Box::new(
10093                ReadXdrIter::<_, Frame<AuthCert>>::new(&mut r.inner, r.limits.clone())
10094                    .map(|r| r.map(|t| Self::AuthCert(Box::new(t.0)))),
10095            ),
10096            TypeVariant::Hello => Box::new(
10097                ReadXdrIter::<_, Frame<Hello>>::new(&mut r.inner, r.limits.clone())
10098                    .map(|r| r.map(|t| Self::Hello(Box::new(t.0)))),
10099            ),
10100            TypeVariant::Auth => Box::new(
10101                ReadXdrIter::<_, Frame<Auth>>::new(&mut r.inner, r.limits.clone())
10102                    .map(|r| r.map(|t| Self::Auth(Box::new(t.0)))),
10103            ),
10104            TypeVariant::IpAddrType => Box::new(
10105                ReadXdrIter::<_, Frame<IpAddrType>>::new(&mut r.inner, r.limits.clone())
10106                    .map(|r| r.map(|t| Self::IpAddrType(Box::new(t.0)))),
10107            ),
10108            TypeVariant::PeerAddress => Box::new(
10109                ReadXdrIter::<_, Frame<PeerAddress>>::new(&mut r.inner, r.limits.clone())
10110                    .map(|r| r.map(|t| Self::PeerAddress(Box::new(t.0)))),
10111            ),
10112            TypeVariant::PeerAddressIp => Box::new(
10113                ReadXdrIter::<_, Frame<PeerAddressIp>>::new(&mut r.inner, r.limits.clone())
10114                    .map(|r| r.map(|t| Self::PeerAddressIp(Box::new(t.0)))),
10115            ),
10116            TypeVariant::MessageType => Box::new(
10117                ReadXdrIter::<_, Frame<MessageType>>::new(&mut r.inner, r.limits.clone())
10118                    .map(|r| r.map(|t| Self::MessageType(Box::new(t.0)))),
10119            ),
10120            TypeVariant::DontHave => Box::new(
10121                ReadXdrIter::<_, Frame<DontHave>>::new(&mut r.inner, r.limits.clone())
10122                    .map(|r| r.map(|t| Self::DontHave(Box::new(t.0)))),
10123            ),
10124            TypeVariant::SurveyMessageCommandType => Box::new(
10125                ReadXdrIter::<_, Frame<SurveyMessageCommandType>>::new(
10126                    &mut r.inner,
10127                    r.limits.clone(),
10128                )
10129                .map(|r| r.map(|t| Self::SurveyMessageCommandType(Box::new(t.0)))),
10130            ),
10131            TypeVariant::SurveyMessageResponseType => Box::new(
10132                ReadXdrIter::<_, Frame<SurveyMessageResponseType>>::new(
10133                    &mut r.inner,
10134                    r.limits.clone(),
10135                )
10136                .map(|r| r.map(|t| Self::SurveyMessageResponseType(Box::new(t.0)))),
10137            ),
10138            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Box::new(
10139                ReadXdrIter::<_, Frame<TimeSlicedSurveyStartCollectingMessage>>::new(
10140                    &mut r.inner,
10141                    r.limits.clone(),
10142                )
10143                .map(|r| r.map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t.0)))),
10144            ),
10145            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => Box::new(
10146                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyStartCollectingMessage>>::new(
10147                    &mut r.inner,
10148                    r.limits.clone(),
10149                )
10150                .map(|r| {
10151                    r.map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t.0)))
10152                }),
10153            ),
10154            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Box::new(
10155                ReadXdrIter::<_, Frame<TimeSlicedSurveyStopCollectingMessage>>::new(
10156                    &mut r.inner,
10157                    r.limits.clone(),
10158                )
10159                .map(|r| r.map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t.0)))),
10160            ),
10161            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => Box::new(
10162                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyStopCollectingMessage>>::new(
10163                    &mut r.inner,
10164                    r.limits.clone(),
10165                )
10166                .map(|r| {
10167                    r.map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t.0)))
10168                }),
10169            ),
10170            TypeVariant::SurveyRequestMessage => Box::new(
10171                ReadXdrIter::<_, Frame<SurveyRequestMessage>>::new(&mut r.inner, r.limits.clone())
10172                    .map(|r| r.map(|t| Self::SurveyRequestMessage(Box::new(t.0)))),
10173            ),
10174            TypeVariant::TimeSlicedSurveyRequestMessage => Box::new(
10175                ReadXdrIter::<_, Frame<TimeSlicedSurveyRequestMessage>>::new(
10176                    &mut r.inner,
10177                    r.limits.clone(),
10178                )
10179                .map(|r| r.map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t.0)))),
10180            ),
10181            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Box::new(
10182                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyRequestMessage>>::new(
10183                    &mut r.inner,
10184                    r.limits.clone(),
10185                )
10186                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t.0)))),
10187            ),
10188            TypeVariant::EncryptedBody => Box::new(
10189                ReadXdrIter::<_, Frame<EncryptedBody>>::new(&mut r.inner, r.limits.clone())
10190                    .map(|r| r.map(|t| Self::EncryptedBody(Box::new(t.0)))),
10191            ),
10192            TypeVariant::SurveyResponseMessage => Box::new(
10193                ReadXdrIter::<_, Frame<SurveyResponseMessage>>::new(&mut r.inner, r.limits.clone())
10194                    .map(|r| r.map(|t| Self::SurveyResponseMessage(Box::new(t.0)))),
10195            ),
10196            TypeVariant::TimeSlicedSurveyResponseMessage => Box::new(
10197                ReadXdrIter::<_, Frame<TimeSlicedSurveyResponseMessage>>::new(
10198                    &mut r.inner,
10199                    r.limits.clone(),
10200                )
10201                .map(|r| r.map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t.0)))),
10202            ),
10203            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Box::new(
10204                ReadXdrIter::<_, Frame<SignedTimeSlicedSurveyResponseMessage>>::new(
10205                    &mut r.inner,
10206                    r.limits.clone(),
10207                )
10208                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t.0)))),
10209            ),
10210            TypeVariant::PeerStats => Box::new(
10211                ReadXdrIter::<_, Frame<PeerStats>>::new(&mut r.inner, r.limits.clone())
10212                    .map(|r| r.map(|t| Self::PeerStats(Box::new(t.0)))),
10213            ),
10214            TypeVariant::TimeSlicedNodeData => Box::new(
10215                ReadXdrIter::<_, Frame<TimeSlicedNodeData>>::new(&mut r.inner, r.limits.clone())
10216                    .map(|r| r.map(|t| Self::TimeSlicedNodeData(Box::new(t.0)))),
10217            ),
10218            TypeVariant::TimeSlicedPeerData => Box::new(
10219                ReadXdrIter::<_, Frame<TimeSlicedPeerData>>::new(&mut r.inner, r.limits.clone())
10220                    .map(|r| r.map(|t| Self::TimeSlicedPeerData(Box::new(t.0)))),
10221            ),
10222            TypeVariant::TimeSlicedPeerDataList => Box::new(
10223                ReadXdrIter::<_, Frame<TimeSlicedPeerDataList>>::new(
10224                    &mut r.inner,
10225                    r.limits.clone(),
10226                )
10227                .map(|r| r.map(|t| Self::TimeSlicedPeerDataList(Box::new(t.0)))),
10228            ),
10229            TypeVariant::TopologyResponseBodyV2 => Box::new(
10230                ReadXdrIter::<_, Frame<TopologyResponseBodyV2>>::new(
10231                    &mut r.inner,
10232                    r.limits.clone(),
10233                )
10234                .map(|r| r.map(|t| Self::TopologyResponseBodyV2(Box::new(t.0)))),
10235            ),
10236            TypeVariant::SurveyResponseBody => Box::new(
10237                ReadXdrIter::<_, Frame<SurveyResponseBody>>::new(&mut r.inner, r.limits.clone())
10238                    .map(|r| r.map(|t| Self::SurveyResponseBody(Box::new(t.0)))),
10239            ),
10240            TypeVariant::TxAdvertVector => Box::new(
10241                ReadXdrIter::<_, Frame<TxAdvertVector>>::new(&mut r.inner, r.limits.clone())
10242                    .map(|r| r.map(|t| Self::TxAdvertVector(Box::new(t.0)))),
10243            ),
10244            TypeVariant::FloodAdvert => Box::new(
10245                ReadXdrIter::<_, Frame<FloodAdvert>>::new(&mut r.inner, r.limits.clone())
10246                    .map(|r| r.map(|t| Self::FloodAdvert(Box::new(t.0)))),
10247            ),
10248            TypeVariant::TxDemandVector => Box::new(
10249                ReadXdrIter::<_, Frame<TxDemandVector>>::new(&mut r.inner, r.limits.clone())
10250                    .map(|r| r.map(|t| Self::TxDemandVector(Box::new(t.0)))),
10251            ),
10252            TypeVariant::FloodDemand => Box::new(
10253                ReadXdrIter::<_, Frame<FloodDemand>>::new(&mut r.inner, r.limits.clone())
10254                    .map(|r| r.map(|t| Self::FloodDemand(Box::new(t.0)))),
10255            ),
10256            TypeVariant::StellarMessage => Box::new(
10257                ReadXdrIter::<_, Frame<StellarMessage>>::new(&mut r.inner, r.limits.clone())
10258                    .map(|r| r.map(|t| Self::StellarMessage(Box::new(t.0)))),
10259            ),
10260            TypeVariant::AuthenticatedMessage => Box::new(
10261                ReadXdrIter::<_, Frame<AuthenticatedMessage>>::new(&mut r.inner, r.limits.clone())
10262                    .map(|r| r.map(|t| Self::AuthenticatedMessage(Box::new(t.0)))),
10263            ),
10264            TypeVariant::AuthenticatedMessageV0 => Box::new(
10265                ReadXdrIter::<_, Frame<AuthenticatedMessageV0>>::new(
10266                    &mut r.inner,
10267                    r.limits.clone(),
10268                )
10269                .map(|r| r.map(|t| Self::AuthenticatedMessageV0(Box::new(t.0)))),
10270            ),
10271            TypeVariant::LiquidityPoolParameters => Box::new(
10272                ReadXdrIter::<_, Frame<LiquidityPoolParameters>>::new(
10273                    &mut r.inner,
10274                    r.limits.clone(),
10275                )
10276                .map(|r| r.map(|t| Self::LiquidityPoolParameters(Box::new(t.0)))),
10277            ),
10278            TypeVariant::MuxedAccount => Box::new(
10279                ReadXdrIter::<_, Frame<MuxedAccount>>::new(&mut r.inner, r.limits.clone())
10280                    .map(|r| r.map(|t| Self::MuxedAccount(Box::new(t.0)))),
10281            ),
10282            TypeVariant::MuxedAccountMed25519 => Box::new(
10283                ReadXdrIter::<_, Frame<MuxedAccountMed25519>>::new(&mut r.inner, r.limits.clone())
10284                    .map(|r| r.map(|t| Self::MuxedAccountMed25519(Box::new(t.0)))),
10285            ),
10286            TypeVariant::DecoratedSignature => Box::new(
10287                ReadXdrIter::<_, Frame<DecoratedSignature>>::new(&mut r.inner, r.limits.clone())
10288                    .map(|r| r.map(|t| Self::DecoratedSignature(Box::new(t.0)))),
10289            ),
10290            TypeVariant::OperationType => Box::new(
10291                ReadXdrIter::<_, Frame<OperationType>>::new(&mut r.inner, r.limits.clone())
10292                    .map(|r| r.map(|t| Self::OperationType(Box::new(t.0)))),
10293            ),
10294            TypeVariant::CreateAccountOp => Box::new(
10295                ReadXdrIter::<_, Frame<CreateAccountOp>>::new(&mut r.inner, r.limits.clone())
10296                    .map(|r| r.map(|t| Self::CreateAccountOp(Box::new(t.0)))),
10297            ),
10298            TypeVariant::PaymentOp => Box::new(
10299                ReadXdrIter::<_, Frame<PaymentOp>>::new(&mut r.inner, r.limits.clone())
10300                    .map(|r| r.map(|t| Self::PaymentOp(Box::new(t.0)))),
10301            ),
10302            TypeVariant::PathPaymentStrictReceiveOp => Box::new(
10303                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveOp>>::new(
10304                    &mut r.inner,
10305                    r.limits.clone(),
10306                )
10307                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t.0)))),
10308            ),
10309            TypeVariant::PathPaymentStrictSendOp => Box::new(
10310                ReadXdrIter::<_, Frame<PathPaymentStrictSendOp>>::new(
10311                    &mut r.inner,
10312                    r.limits.clone(),
10313                )
10314                .map(|r| r.map(|t| Self::PathPaymentStrictSendOp(Box::new(t.0)))),
10315            ),
10316            TypeVariant::ManageSellOfferOp => Box::new(
10317                ReadXdrIter::<_, Frame<ManageSellOfferOp>>::new(&mut r.inner, r.limits.clone())
10318                    .map(|r| r.map(|t| Self::ManageSellOfferOp(Box::new(t.0)))),
10319            ),
10320            TypeVariant::ManageBuyOfferOp => Box::new(
10321                ReadXdrIter::<_, Frame<ManageBuyOfferOp>>::new(&mut r.inner, r.limits.clone())
10322                    .map(|r| r.map(|t| Self::ManageBuyOfferOp(Box::new(t.0)))),
10323            ),
10324            TypeVariant::CreatePassiveSellOfferOp => Box::new(
10325                ReadXdrIter::<_, Frame<CreatePassiveSellOfferOp>>::new(
10326                    &mut r.inner,
10327                    r.limits.clone(),
10328                )
10329                .map(|r| r.map(|t| Self::CreatePassiveSellOfferOp(Box::new(t.0)))),
10330            ),
10331            TypeVariant::SetOptionsOp => Box::new(
10332                ReadXdrIter::<_, Frame<SetOptionsOp>>::new(&mut r.inner, r.limits.clone())
10333                    .map(|r| r.map(|t| Self::SetOptionsOp(Box::new(t.0)))),
10334            ),
10335            TypeVariant::ChangeTrustAsset => Box::new(
10336                ReadXdrIter::<_, Frame<ChangeTrustAsset>>::new(&mut r.inner, r.limits.clone())
10337                    .map(|r| r.map(|t| Self::ChangeTrustAsset(Box::new(t.0)))),
10338            ),
10339            TypeVariant::ChangeTrustOp => Box::new(
10340                ReadXdrIter::<_, Frame<ChangeTrustOp>>::new(&mut r.inner, r.limits.clone())
10341                    .map(|r| r.map(|t| Self::ChangeTrustOp(Box::new(t.0)))),
10342            ),
10343            TypeVariant::AllowTrustOp => Box::new(
10344                ReadXdrIter::<_, Frame<AllowTrustOp>>::new(&mut r.inner, r.limits.clone())
10345                    .map(|r| r.map(|t| Self::AllowTrustOp(Box::new(t.0)))),
10346            ),
10347            TypeVariant::ManageDataOp => Box::new(
10348                ReadXdrIter::<_, Frame<ManageDataOp>>::new(&mut r.inner, r.limits.clone())
10349                    .map(|r| r.map(|t| Self::ManageDataOp(Box::new(t.0)))),
10350            ),
10351            TypeVariant::BumpSequenceOp => Box::new(
10352                ReadXdrIter::<_, Frame<BumpSequenceOp>>::new(&mut r.inner, r.limits.clone())
10353                    .map(|r| r.map(|t| Self::BumpSequenceOp(Box::new(t.0)))),
10354            ),
10355            TypeVariant::CreateClaimableBalanceOp => Box::new(
10356                ReadXdrIter::<_, Frame<CreateClaimableBalanceOp>>::new(
10357                    &mut r.inner,
10358                    r.limits.clone(),
10359                )
10360                .map(|r| r.map(|t| Self::CreateClaimableBalanceOp(Box::new(t.0)))),
10361            ),
10362            TypeVariant::ClaimClaimableBalanceOp => Box::new(
10363                ReadXdrIter::<_, Frame<ClaimClaimableBalanceOp>>::new(
10364                    &mut r.inner,
10365                    r.limits.clone(),
10366                )
10367                .map(|r| r.map(|t| Self::ClaimClaimableBalanceOp(Box::new(t.0)))),
10368            ),
10369            TypeVariant::BeginSponsoringFutureReservesOp => Box::new(
10370                ReadXdrIter::<_, Frame<BeginSponsoringFutureReservesOp>>::new(
10371                    &mut r.inner,
10372                    r.limits.clone(),
10373                )
10374                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t.0)))),
10375            ),
10376            TypeVariant::RevokeSponsorshipType => Box::new(
10377                ReadXdrIter::<_, Frame<RevokeSponsorshipType>>::new(&mut r.inner, r.limits.clone())
10378                    .map(|r| r.map(|t| Self::RevokeSponsorshipType(Box::new(t.0)))),
10379            ),
10380            TypeVariant::RevokeSponsorshipOp => Box::new(
10381                ReadXdrIter::<_, Frame<RevokeSponsorshipOp>>::new(&mut r.inner, r.limits.clone())
10382                    .map(|r| r.map(|t| Self::RevokeSponsorshipOp(Box::new(t.0)))),
10383            ),
10384            TypeVariant::RevokeSponsorshipOpSigner => Box::new(
10385                ReadXdrIter::<_, Frame<RevokeSponsorshipOpSigner>>::new(
10386                    &mut r.inner,
10387                    r.limits.clone(),
10388                )
10389                .map(|r| r.map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t.0)))),
10390            ),
10391            TypeVariant::ClawbackOp => Box::new(
10392                ReadXdrIter::<_, Frame<ClawbackOp>>::new(&mut r.inner, r.limits.clone())
10393                    .map(|r| r.map(|t| Self::ClawbackOp(Box::new(t.0)))),
10394            ),
10395            TypeVariant::ClawbackClaimableBalanceOp => Box::new(
10396                ReadXdrIter::<_, Frame<ClawbackClaimableBalanceOp>>::new(
10397                    &mut r.inner,
10398                    r.limits.clone(),
10399                )
10400                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t.0)))),
10401            ),
10402            TypeVariant::SetTrustLineFlagsOp => Box::new(
10403                ReadXdrIter::<_, Frame<SetTrustLineFlagsOp>>::new(&mut r.inner, r.limits.clone())
10404                    .map(|r| r.map(|t| Self::SetTrustLineFlagsOp(Box::new(t.0)))),
10405            ),
10406            TypeVariant::LiquidityPoolDepositOp => Box::new(
10407                ReadXdrIter::<_, Frame<LiquidityPoolDepositOp>>::new(
10408                    &mut r.inner,
10409                    r.limits.clone(),
10410                )
10411                .map(|r| r.map(|t| Self::LiquidityPoolDepositOp(Box::new(t.0)))),
10412            ),
10413            TypeVariant::LiquidityPoolWithdrawOp => Box::new(
10414                ReadXdrIter::<_, Frame<LiquidityPoolWithdrawOp>>::new(
10415                    &mut r.inner,
10416                    r.limits.clone(),
10417                )
10418                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t.0)))),
10419            ),
10420            TypeVariant::HostFunctionType => Box::new(
10421                ReadXdrIter::<_, Frame<HostFunctionType>>::new(&mut r.inner, r.limits.clone())
10422                    .map(|r| r.map(|t| Self::HostFunctionType(Box::new(t.0)))),
10423            ),
10424            TypeVariant::ContractIdPreimageType => Box::new(
10425                ReadXdrIter::<_, Frame<ContractIdPreimageType>>::new(
10426                    &mut r.inner,
10427                    r.limits.clone(),
10428                )
10429                .map(|r| r.map(|t| Self::ContractIdPreimageType(Box::new(t.0)))),
10430            ),
10431            TypeVariant::ContractIdPreimage => Box::new(
10432                ReadXdrIter::<_, Frame<ContractIdPreimage>>::new(&mut r.inner, r.limits.clone())
10433                    .map(|r| r.map(|t| Self::ContractIdPreimage(Box::new(t.0)))),
10434            ),
10435            TypeVariant::ContractIdPreimageFromAddress => Box::new(
10436                ReadXdrIter::<_, Frame<ContractIdPreimageFromAddress>>::new(
10437                    &mut r.inner,
10438                    r.limits.clone(),
10439                )
10440                .map(|r| r.map(|t| Self::ContractIdPreimageFromAddress(Box::new(t.0)))),
10441            ),
10442            TypeVariant::CreateContractArgs => Box::new(
10443                ReadXdrIter::<_, Frame<CreateContractArgs>>::new(&mut r.inner, r.limits.clone())
10444                    .map(|r| r.map(|t| Self::CreateContractArgs(Box::new(t.0)))),
10445            ),
10446            TypeVariant::CreateContractArgsV2 => Box::new(
10447                ReadXdrIter::<_, Frame<CreateContractArgsV2>>::new(&mut r.inner, r.limits.clone())
10448                    .map(|r| r.map(|t| Self::CreateContractArgsV2(Box::new(t.0)))),
10449            ),
10450            TypeVariant::InvokeContractArgs => Box::new(
10451                ReadXdrIter::<_, Frame<InvokeContractArgs>>::new(&mut r.inner, r.limits.clone())
10452                    .map(|r| r.map(|t| Self::InvokeContractArgs(Box::new(t.0)))),
10453            ),
10454            TypeVariant::HostFunction => Box::new(
10455                ReadXdrIter::<_, Frame<HostFunction>>::new(&mut r.inner, r.limits.clone())
10456                    .map(|r| r.map(|t| Self::HostFunction(Box::new(t.0)))),
10457            ),
10458            TypeVariant::SorobanAuthorizedFunctionType => Box::new(
10459                ReadXdrIter::<_, Frame<SorobanAuthorizedFunctionType>>::new(
10460                    &mut r.inner,
10461                    r.limits.clone(),
10462                )
10463                .map(|r| r.map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t.0)))),
10464            ),
10465            TypeVariant::SorobanAuthorizedFunction => Box::new(
10466                ReadXdrIter::<_, Frame<SorobanAuthorizedFunction>>::new(
10467                    &mut r.inner,
10468                    r.limits.clone(),
10469                )
10470                .map(|r| r.map(|t| Self::SorobanAuthorizedFunction(Box::new(t.0)))),
10471            ),
10472            TypeVariant::SorobanAuthorizedInvocation => Box::new(
10473                ReadXdrIter::<_, Frame<SorobanAuthorizedInvocation>>::new(
10474                    &mut r.inner,
10475                    r.limits.clone(),
10476                )
10477                .map(|r| r.map(|t| Self::SorobanAuthorizedInvocation(Box::new(t.0)))),
10478            ),
10479            TypeVariant::SorobanAddressCredentials => Box::new(
10480                ReadXdrIter::<_, Frame<SorobanAddressCredentials>>::new(
10481                    &mut r.inner,
10482                    r.limits.clone(),
10483                )
10484                .map(|r| r.map(|t| Self::SorobanAddressCredentials(Box::new(t.0)))),
10485            ),
10486            TypeVariant::SorobanDelegateSignature => Box::new(
10487                ReadXdrIter::<_, Frame<SorobanDelegateSignature>>::new(
10488                    &mut r.inner,
10489                    r.limits.clone(),
10490                )
10491                .map(|r| r.map(|t| Self::SorobanDelegateSignature(Box::new(t.0)))),
10492            ),
10493            TypeVariant::SorobanAddressCredentialsWithDelegates => Box::new(
10494                ReadXdrIter::<_, Frame<SorobanAddressCredentialsWithDelegates>>::new(
10495                    &mut r.inner,
10496                    r.limits.clone(),
10497                )
10498                .map(|r| r.map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t.0)))),
10499            ),
10500            TypeVariant::SorobanCredentialsType => Box::new(
10501                ReadXdrIter::<_, Frame<SorobanCredentialsType>>::new(
10502                    &mut r.inner,
10503                    r.limits.clone(),
10504                )
10505                .map(|r| r.map(|t| Self::SorobanCredentialsType(Box::new(t.0)))),
10506            ),
10507            TypeVariant::SorobanCredentials => Box::new(
10508                ReadXdrIter::<_, Frame<SorobanCredentials>>::new(&mut r.inner, r.limits.clone())
10509                    .map(|r| r.map(|t| Self::SorobanCredentials(Box::new(t.0)))),
10510            ),
10511            TypeVariant::SorobanAuthorizationEntry => Box::new(
10512                ReadXdrIter::<_, Frame<SorobanAuthorizationEntry>>::new(
10513                    &mut r.inner,
10514                    r.limits.clone(),
10515                )
10516                .map(|r| r.map(|t| Self::SorobanAuthorizationEntry(Box::new(t.0)))),
10517            ),
10518            TypeVariant::SorobanAuthorizationEntries => Box::new(
10519                ReadXdrIter::<_, Frame<SorobanAuthorizationEntries>>::new(
10520                    &mut r.inner,
10521                    r.limits.clone(),
10522                )
10523                .map(|r| r.map(|t| Self::SorobanAuthorizationEntries(Box::new(t.0)))),
10524            ),
10525            TypeVariant::InvokeHostFunctionOp => Box::new(
10526                ReadXdrIter::<_, Frame<InvokeHostFunctionOp>>::new(&mut r.inner, r.limits.clone())
10527                    .map(|r| r.map(|t| Self::InvokeHostFunctionOp(Box::new(t.0)))),
10528            ),
10529            TypeVariant::ExtendFootprintTtlOp => Box::new(
10530                ReadXdrIter::<_, Frame<ExtendFootprintTtlOp>>::new(&mut r.inner, r.limits.clone())
10531                    .map(|r| r.map(|t| Self::ExtendFootprintTtlOp(Box::new(t.0)))),
10532            ),
10533            TypeVariant::RestoreFootprintOp => Box::new(
10534                ReadXdrIter::<_, Frame<RestoreFootprintOp>>::new(&mut r.inner, r.limits.clone())
10535                    .map(|r| r.map(|t| Self::RestoreFootprintOp(Box::new(t.0)))),
10536            ),
10537            TypeVariant::Operation => Box::new(
10538                ReadXdrIter::<_, Frame<Operation>>::new(&mut r.inner, r.limits.clone())
10539                    .map(|r| r.map(|t| Self::Operation(Box::new(t.0)))),
10540            ),
10541            TypeVariant::OperationBody => Box::new(
10542                ReadXdrIter::<_, Frame<OperationBody>>::new(&mut r.inner, r.limits.clone())
10543                    .map(|r| r.map(|t| Self::OperationBody(Box::new(t.0)))),
10544            ),
10545            TypeVariant::HashIdPreimage => Box::new(
10546                ReadXdrIter::<_, Frame<HashIdPreimage>>::new(&mut r.inner, r.limits.clone())
10547                    .map(|r| r.map(|t| Self::HashIdPreimage(Box::new(t.0)))),
10548            ),
10549            TypeVariant::HashIdPreimageOperationId => Box::new(
10550                ReadXdrIter::<_, Frame<HashIdPreimageOperationId>>::new(
10551                    &mut r.inner,
10552                    r.limits.clone(),
10553                )
10554                .map(|r| r.map(|t| Self::HashIdPreimageOperationId(Box::new(t.0)))),
10555            ),
10556            TypeVariant::HashIdPreimageRevokeId => Box::new(
10557                ReadXdrIter::<_, Frame<HashIdPreimageRevokeId>>::new(
10558                    &mut r.inner,
10559                    r.limits.clone(),
10560                )
10561                .map(|r| r.map(|t| Self::HashIdPreimageRevokeId(Box::new(t.0)))),
10562            ),
10563            TypeVariant::HashIdPreimageContractId => Box::new(
10564                ReadXdrIter::<_, Frame<HashIdPreimageContractId>>::new(
10565                    &mut r.inner,
10566                    r.limits.clone(),
10567                )
10568                .map(|r| r.map(|t| Self::HashIdPreimageContractId(Box::new(t.0)))),
10569            ),
10570            TypeVariant::HashIdPreimageSorobanAuthorization => Box::new(
10571                ReadXdrIter::<_, Frame<HashIdPreimageSorobanAuthorization>>::new(
10572                    &mut r.inner,
10573                    r.limits.clone(),
10574                )
10575                .map(|r| r.map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t.0)))),
10576            ),
10577            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => Box::new(
10578                ReadXdrIter::<_, Frame<HashIdPreimageSorobanAuthorizationWithAddress>>::new(
10579                    &mut r.inner,
10580                    r.limits.clone(),
10581                )
10582                .map(|r| {
10583                    r.map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t.0)))
10584                }),
10585            ),
10586            TypeVariant::MemoType => Box::new(
10587                ReadXdrIter::<_, Frame<MemoType>>::new(&mut r.inner, r.limits.clone())
10588                    .map(|r| r.map(|t| Self::MemoType(Box::new(t.0)))),
10589            ),
10590            TypeVariant::Memo => Box::new(
10591                ReadXdrIter::<_, Frame<Memo>>::new(&mut r.inner, r.limits.clone())
10592                    .map(|r| r.map(|t| Self::Memo(Box::new(t.0)))),
10593            ),
10594            TypeVariant::TimeBounds => Box::new(
10595                ReadXdrIter::<_, Frame<TimeBounds>>::new(&mut r.inner, r.limits.clone())
10596                    .map(|r| r.map(|t| Self::TimeBounds(Box::new(t.0)))),
10597            ),
10598            TypeVariant::LedgerBounds => Box::new(
10599                ReadXdrIter::<_, Frame<LedgerBounds>>::new(&mut r.inner, r.limits.clone())
10600                    .map(|r| r.map(|t| Self::LedgerBounds(Box::new(t.0)))),
10601            ),
10602            TypeVariant::PreconditionsV2 => Box::new(
10603                ReadXdrIter::<_, Frame<PreconditionsV2>>::new(&mut r.inner, r.limits.clone())
10604                    .map(|r| r.map(|t| Self::PreconditionsV2(Box::new(t.0)))),
10605            ),
10606            TypeVariant::PreconditionType => Box::new(
10607                ReadXdrIter::<_, Frame<PreconditionType>>::new(&mut r.inner, r.limits.clone())
10608                    .map(|r| r.map(|t| Self::PreconditionType(Box::new(t.0)))),
10609            ),
10610            TypeVariant::Preconditions => Box::new(
10611                ReadXdrIter::<_, Frame<Preconditions>>::new(&mut r.inner, r.limits.clone())
10612                    .map(|r| r.map(|t| Self::Preconditions(Box::new(t.0)))),
10613            ),
10614            TypeVariant::LedgerFootprint => Box::new(
10615                ReadXdrIter::<_, Frame<LedgerFootprint>>::new(&mut r.inner, r.limits.clone())
10616                    .map(|r| r.map(|t| Self::LedgerFootprint(Box::new(t.0)))),
10617            ),
10618            TypeVariant::SorobanResources => Box::new(
10619                ReadXdrIter::<_, Frame<SorobanResources>>::new(&mut r.inner, r.limits.clone())
10620                    .map(|r| r.map(|t| Self::SorobanResources(Box::new(t.0)))),
10621            ),
10622            TypeVariant::SorobanResourcesExtV0 => Box::new(
10623                ReadXdrIter::<_, Frame<SorobanResourcesExtV0>>::new(&mut r.inner, r.limits.clone())
10624                    .map(|r| r.map(|t| Self::SorobanResourcesExtV0(Box::new(t.0)))),
10625            ),
10626            TypeVariant::SorobanTransactionData => Box::new(
10627                ReadXdrIter::<_, Frame<SorobanTransactionData>>::new(
10628                    &mut r.inner,
10629                    r.limits.clone(),
10630                )
10631                .map(|r| r.map(|t| Self::SorobanTransactionData(Box::new(t.0)))),
10632            ),
10633            TypeVariant::SorobanTransactionDataExt => Box::new(
10634                ReadXdrIter::<_, Frame<SorobanTransactionDataExt>>::new(
10635                    &mut r.inner,
10636                    r.limits.clone(),
10637                )
10638                .map(|r| r.map(|t| Self::SorobanTransactionDataExt(Box::new(t.0)))),
10639            ),
10640            TypeVariant::TransactionV0 => Box::new(
10641                ReadXdrIter::<_, Frame<TransactionV0>>::new(&mut r.inner, r.limits.clone())
10642                    .map(|r| r.map(|t| Self::TransactionV0(Box::new(t.0)))),
10643            ),
10644            TypeVariant::TransactionV0Ext => Box::new(
10645                ReadXdrIter::<_, Frame<TransactionV0Ext>>::new(&mut r.inner, r.limits.clone())
10646                    .map(|r| r.map(|t| Self::TransactionV0Ext(Box::new(t.0)))),
10647            ),
10648            TypeVariant::TransactionV0Envelope => Box::new(
10649                ReadXdrIter::<_, Frame<TransactionV0Envelope>>::new(&mut r.inner, r.limits.clone())
10650                    .map(|r| r.map(|t| Self::TransactionV0Envelope(Box::new(t.0)))),
10651            ),
10652            TypeVariant::Transaction => Box::new(
10653                ReadXdrIter::<_, Frame<Transaction>>::new(&mut r.inner, r.limits.clone())
10654                    .map(|r| r.map(|t| Self::Transaction(Box::new(t.0)))),
10655            ),
10656            TypeVariant::TransactionExt => Box::new(
10657                ReadXdrIter::<_, Frame<TransactionExt>>::new(&mut r.inner, r.limits.clone())
10658                    .map(|r| r.map(|t| Self::TransactionExt(Box::new(t.0)))),
10659            ),
10660            TypeVariant::TransactionV1Envelope => Box::new(
10661                ReadXdrIter::<_, Frame<TransactionV1Envelope>>::new(&mut r.inner, r.limits.clone())
10662                    .map(|r| r.map(|t| Self::TransactionV1Envelope(Box::new(t.0)))),
10663            ),
10664            TypeVariant::FeeBumpTransaction => Box::new(
10665                ReadXdrIter::<_, Frame<FeeBumpTransaction>>::new(&mut r.inner, r.limits.clone())
10666                    .map(|r| r.map(|t| Self::FeeBumpTransaction(Box::new(t.0)))),
10667            ),
10668            TypeVariant::FeeBumpTransactionInnerTx => Box::new(
10669                ReadXdrIter::<_, Frame<FeeBumpTransactionInnerTx>>::new(
10670                    &mut r.inner,
10671                    r.limits.clone(),
10672                )
10673                .map(|r| r.map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t.0)))),
10674            ),
10675            TypeVariant::FeeBumpTransactionExt => Box::new(
10676                ReadXdrIter::<_, Frame<FeeBumpTransactionExt>>::new(&mut r.inner, r.limits.clone())
10677                    .map(|r| r.map(|t| Self::FeeBumpTransactionExt(Box::new(t.0)))),
10678            ),
10679            TypeVariant::FeeBumpTransactionEnvelope => Box::new(
10680                ReadXdrIter::<_, Frame<FeeBumpTransactionEnvelope>>::new(
10681                    &mut r.inner,
10682                    r.limits.clone(),
10683                )
10684                .map(|r| r.map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t.0)))),
10685            ),
10686            TypeVariant::TransactionEnvelope => Box::new(
10687                ReadXdrIter::<_, Frame<TransactionEnvelope>>::new(&mut r.inner, r.limits.clone())
10688                    .map(|r| r.map(|t| Self::TransactionEnvelope(Box::new(t.0)))),
10689            ),
10690            TypeVariant::TransactionSignaturePayload => Box::new(
10691                ReadXdrIter::<_, Frame<TransactionSignaturePayload>>::new(
10692                    &mut r.inner,
10693                    r.limits.clone(),
10694                )
10695                .map(|r| r.map(|t| Self::TransactionSignaturePayload(Box::new(t.0)))),
10696            ),
10697            TypeVariant::TransactionSignaturePayloadTaggedTransaction => Box::new(
10698                ReadXdrIter::<_, Frame<TransactionSignaturePayloadTaggedTransaction>>::new(
10699                    &mut r.inner,
10700                    r.limits.clone(),
10701                )
10702                .map(|r| {
10703                    r.map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t.0)))
10704                }),
10705            ),
10706            TypeVariant::ClaimAtomType => Box::new(
10707                ReadXdrIter::<_, Frame<ClaimAtomType>>::new(&mut r.inner, r.limits.clone())
10708                    .map(|r| r.map(|t| Self::ClaimAtomType(Box::new(t.0)))),
10709            ),
10710            TypeVariant::ClaimOfferAtomV0 => Box::new(
10711                ReadXdrIter::<_, Frame<ClaimOfferAtomV0>>::new(&mut r.inner, r.limits.clone())
10712                    .map(|r| r.map(|t| Self::ClaimOfferAtomV0(Box::new(t.0)))),
10713            ),
10714            TypeVariant::ClaimOfferAtom => Box::new(
10715                ReadXdrIter::<_, Frame<ClaimOfferAtom>>::new(&mut r.inner, r.limits.clone())
10716                    .map(|r| r.map(|t| Self::ClaimOfferAtom(Box::new(t.0)))),
10717            ),
10718            TypeVariant::ClaimLiquidityAtom => Box::new(
10719                ReadXdrIter::<_, Frame<ClaimLiquidityAtom>>::new(&mut r.inner, r.limits.clone())
10720                    .map(|r| r.map(|t| Self::ClaimLiquidityAtom(Box::new(t.0)))),
10721            ),
10722            TypeVariant::ClaimAtom => Box::new(
10723                ReadXdrIter::<_, Frame<ClaimAtom>>::new(&mut r.inner, r.limits.clone())
10724                    .map(|r| r.map(|t| Self::ClaimAtom(Box::new(t.0)))),
10725            ),
10726            TypeVariant::CreateAccountResultCode => Box::new(
10727                ReadXdrIter::<_, Frame<CreateAccountResultCode>>::new(
10728                    &mut r.inner,
10729                    r.limits.clone(),
10730                )
10731                .map(|r| r.map(|t| Self::CreateAccountResultCode(Box::new(t.0)))),
10732            ),
10733            TypeVariant::CreateAccountResult => Box::new(
10734                ReadXdrIter::<_, Frame<CreateAccountResult>>::new(&mut r.inner, r.limits.clone())
10735                    .map(|r| r.map(|t| Self::CreateAccountResult(Box::new(t.0)))),
10736            ),
10737            TypeVariant::PaymentResultCode => Box::new(
10738                ReadXdrIter::<_, Frame<PaymentResultCode>>::new(&mut r.inner, r.limits.clone())
10739                    .map(|r| r.map(|t| Self::PaymentResultCode(Box::new(t.0)))),
10740            ),
10741            TypeVariant::PaymentResult => Box::new(
10742                ReadXdrIter::<_, Frame<PaymentResult>>::new(&mut r.inner, r.limits.clone())
10743                    .map(|r| r.map(|t| Self::PaymentResult(Box::new(t.0)))),
10744            ),
10745            TypeVariant::PathPaymentStrictReceiveResultCode => Box::new(
10746                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveResultCode>>::new(
10747                    &mut r.inner,
10748                    r.limits.clone(),
10749                )
10750                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t.0)))),
10751            ),
10752            TypeVariant::SimplePaymentResult => Box::new(
10753                ReadXdrIter::<_, Frame<SimplePaymentResult>>::new(&mut r.inner, r.limits.clone())
10754                    .map(|r| r.map(|t| Self::SimplePaymentResult(Box::new(t.0)))),
10755            ),
10756            TypeVariant::PathPaymentStrictReceiveResult => Box::new(
10757                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveResult>>::new(
10758                    &mut r.inner,
10759                    r.limits.clone(),
10760                )
10761                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t.0)))),
10762            ),
10763            TypeVariant::PathPaymentStrictReceiveResultSuccess => Box::new(
10764                ReadXdrIter::<_, Frame<PathPaymentStrictReceiveResultSuccess>>::new(
10765                    &mut r.inner,
10766                    r.limits.clone(),
10767                )
10768                .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t.0)))),
10769            ),
10770            TypeVariant::PathPaymentStrictSendResultCode => Box::new(
10771                ReadXdrIter::<_, Frame<PathPaymentStrictSendResultCode>>::new(
10772                    &mut r.inner,
10773                    r.limits.clone(),
10774                )
10775                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t.0)))),
10776            ),
10777            TypeVariant::PathPaymentStrictSendResult => Box::new(
10778                ReadXdrIter::<_, Frame<PathPaymentStrictSendResult>>::new(
10779                    &mut r.inner,
10780                    r.limits.clone(),
10781                )
10782                .map(|r| r.map(|t| Self::PathPaymentStrictSendResult(Box::new(t.0)))),
10783            ),
10784            TypeVariant::PathPaymentStrictSendResultSuccess => Box::new(
10785                ReadXdrIter::<_, Frame<PathPaymentStrictSendResultSuccess>>::new(
10786                    &mut r.inner,
10787                    r.limits.clone(),
10788                )
10789                .map(|r| r.map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t.0)))),
10790            ),
10791            TypeVariant::ManageSellOfferResultCode => Box::new(
10792                ReadXdrIter::<_, Frame<ManageSellOfferResultCode>>::new(
10793                    &mut r.inner,
10794                    r.limits.clone(),
10795                )
10796                .map(|r| r.map(|t| Self::ManageSellOfferResultCode(Box::new(t.0)))),
10797            ),
10798            TypeVariant::ManageOfferEffect => Box::new(
10799                ReadXdrIter::<_, Frame<ManageOfferEffect>>::new(&mut r.inner, r.limits.clone())
10800                    .map(|r| r.map(|t| Self::ManageOfferEffect(Box::new(t.0)))),
10801            ),
10802            TypeVariant::ManageOfferSuccessResult => Box::new(
10803                ReadXdrIter::<_, Frame<ManageOfferSuccessResult>>::new(
10804                    &mut r.inner,
10805                    r.limits.clone(),
10806                )
10807                .map(|r| r.map(|t| Self::ManageOfferSuccessResult(Box::new(t.0)))),
10808            ),
10809            TypeVariant::ManageOfferSuccessResultOffer => Box::new(
10810                ReadXdrIter::<_, Frame<ManageOfferSuccessResultOffer>>::new(
10811                    &mut r.inner,
10812                    r.limits.clone(),
10813                )
10814                .map(|r| r.map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t.0)))),
10815            ),
10816            TypeVariant::ManageSellOfferResult => Box::new(
10817                ReadXdrIter::<_, Frame<ManageSellOfferResult>>::new(&mut r.inner, r.limits.clone())
10818                    .map(|r| r.map(|t| Self::ManageSellOfferResult(Box::new(t.0)))),
10819            ),
10820            TypeVariant::ManageBuyOfferResultCode => Box::new(
10821                ReadXdrIter::<_, Frame<ManageBuyOfferResultCode>>::new(
10822                    &mut r.inner,
10823                    r.limits.clone(),
10824                )
10825                .map(|r| r.map(|t| Self::ManageBuyOfferResultCode(Box::new(t.0)))),
10826            ),
10827            TypeVariant::ManageBuyOfferResult => Box::new(
10828                ReadXdrIter::<_, Frame<ManageBuyOfferResult>>::new(&mut r.inner, r.limits.clone())
10829                    .map(|r| r.map(|t| Self::ManageBuyOfferResult(Box::new(t.0)))),
10830            ),
10831            TypeVariant::SetOptionsResultCode => Box::new(
10832                ReadXdrIter::<_, Frame<SetOptionsResultCode>>::new(&mut r.inner, r.limits.clone())
10833                    .map(|r| r.map(|t| Self::SetOptionsResultCode(Box::new(t.0)))),
10834            ),
10835            TypeVariant::SetOptionsResult => Box::new(
10836                ReadXdrIter::<_, Frame<SetOptionsResult>>::new(&mut r.inner, r.limits.clone())
10837                    .map(|r| r.map(|t| Self::SetOptionsResult(Box::new(t.0)))),
10838            ),
10839            TypeVariant::ChangeTrustResultCode => Box::new(
10840                ReadXdrIter::<_, Frame<ChangeTrustResultCode>>::new(&mut r.inner, r.limits.clone())
10841                    .map(|r| r.map(|t| Self::ChangeTrustResultCode(Box::new(t.0)))),
10842            ),
10843            TypeVariant::ChangeTrustResult => Box::new(
10844                ReadXdrIter::<_, Frame<ChangeTrustResult>>::new(&mut r.inner, r.limits.clone())
10845                    .map(|r| r.map(|t| Self::ChangeTrustResult(Box::new(t.0)))),
10846            ),
10847            TypeVariant::AllowTrustResultCode => Box::new(
10848                ReadXdrIter::<_, Frame<AllowTrustResultCode>>::new(&mut r.inner, r.limits.clone())
10849                    .map(|r| r.map(|t| Self::AllowTrustResultCode(Box::new(t.0)))),
10850            ),
10851            TypeVariant::AllowTrustResult => Box::new(
10852                ReadXdrIter::<_, Frame<AllowTrustResult>>::new(&mut r.inner, r.limits.clone())
10853                    .map(|r| r.map(|t| Self::AllowTrustResult(Box::new(t.0)))),
10854            ),
10855            TypeVariant::AccountMergeResultCode => Box::new(
10856                ReadXdrIter::<_, Frame<AccountMergeResultCode>>::new(
10857                    &mut r.inner,
10858                    r.limits.clone(),
10859                )
10860                .map(|r| r.map(|t| Self::AccountMergeResultCode(Box::new(t.0)))),
10861            ),
10862            TypeVariant::AccountMergeResult => Box::new(
10863                ReadXdrIter::<_, Frame<AccountMergeResult>>::new(&mut r.inner, r.limits.clone())
10864                    .map(|r| r.map(|t| Self::AccountMergeResult(Box::new(t.0)))),
10865            ),
10866            TypeVariant::InflationResultCode => Box::new(
10867                ReadXdrIter::<_, Frame<InflationResultCode>>::new(&mut r.inner, r.limits.clone())
10868                    .map(|r| r.map(|t| Self::InflationResultCode(Box::new(t.0)))),
10869            ),
10870            TypeVariant::InflationPayout => Box::new(
10871                ReadXdrIter::<_, Frame<InflationPayout>>::new(&mut r.inner, r.limits.clone())
10872                    .map(|r| r.map(|t| Self::InflationPayout(Box::new(t.0)))),
10873            ),
10874            TypeVariant::InflationResult => Box::new(
10875                ReadXdrIter::<_, Frame<InflationResult>>::new(&mut r.inner, r.limits.clone())
10876                    .map(|r| r.map(|t| Self::InflationResult(Box::new(t.0)))),
10877            ),
10878            TypeVariant::ManageDataResultCode => Box::new(
10879                ReadXdrIter::<_, Frame<ManageDataResultCode>>::new(&mut r.inner, r.limits.clone())
10880                    .map(|r| r.map(|t| Self::ManageDataResultCode(Box::new(t.0)))),
10881            ),
10882            TypeVariant::ManageDataResult => Box::new(
10883                ReadXdrIter::<_, Frame<ManageDataResult>>::new(&mut r.inner, r.limits.clone())
10884                    .map(|r| r.map(|t| Self::ManageDataResult(Box::new(t.0)))),
10885            ),
10886            TypeVariant::BumpSequenceResultCode => Box::new(
10887                ReadXdrIter::<_, Frame<BumpSequenceResultCode>>::new(
10888                    &mut r.inner,
10889                    r.limits.clone(),
10890                )
10891                .map(|r| r.map(|t| Self::BumpSequenceResultCode(Box::new(t.0)))),
10892            ),
10893            TypeVariant::BumpSequenceResult => Box::new(
10894                ReadXdrIter::<_, Frame<BumpSequenceResult>>::new(&mut r.inner, r.limits.clone())
10895                    .map(|r| r.map(|t| Self::BumpSequenceResult(Box::new(t.0)))),
10896            ),
10897            TypeVariant::CreateClaimableBalanceResultCode => Box::new(
10898                ReadXdrIter::<_, Frame<CreateClaimableBalanceResultCode>>::new(
10899                    &mut r.inner,
10900                    r.limits.clone(),
10901                )
10902                .map(|r| r.map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t.0)))),
10903            ),
10904            TypeVariant::CreateClaimableBalanceResult => Box::new(
10905                ReadXdrIter::<_, Frame<CreateClaimableBalanceResult>>::new(
10906                    &mut r.inner,
10907                    r.limits.clone(),
10908                )
10909                .map(|r| r.map(|t| Self::CreateClaimableBalanceResult(Box::new(t.0)))),
10910            ),
10911            TypeVariant::ClaimClaimableBalanceResultCode => Box::new(
10912                ReadXdrIter::<_, Frame<ClaimClaimableBalanceResultCode>>::new(
10913                    &mut r.inner,
10914                    r.limits.clone(),
10915                )
10916                .map(|r| r.map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t.0)))),
10917            ),
10918            TypeVariant::ClaimClaimableBalanceResult => Box::new(
10919                ReadXdrIter::<_, Frame<ClaimClaimableBalanceResult>>::new(
10920                    &mut r.inner,
10921                    r.limits.clone(),
10922                )
10923                .map(|r| r.map(|t| Self::ClaimClaimableBalanceResult(Box::new(t.0)))),
10924            ),
10925            TypeVariant::BeginSponsoringFutureReservesResultCode => Box::new(
10926                ReadXdrIter::<_, Frame<BeginSponsoringFutureReservesResultCode>>::new(
10927                    &mut r.inner,
10928                    r.limits.clone(),
10929                )
10930                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t.0)))),
10931            ),
10932            TypeVariant::BeginSponsoringFutureReservesResult => Box::new(
10933                ReadXdrIter::<_, Frame<BeginSponsoringFutureReservesResult>>::new(
10934                    &mut r.inner,
10935                    r.limits.clone(),
10936                )
10937                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t.0)))),
10938            ),
10939            TypeVariant::EndSponsoringFutureReservesResultCode => Box::new(
10940                ReadXdrIter::<_, Frame<EndSponsoringFutureReservesResultCode>>::new(
10941                    &mut r.inner,
10942                    r.limits.clone(),
10943                )
10944                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t.0)))),
10945            ),
10946            TypeVariant::EndSponsoringFutureReservesResult => Box::new(
10947                ReadXdrIter::<_, Frame<EndSponsoringFutureReservesResult>>::new(
10948                    &mut r.inner,
10949                    r.limits.clone(),
10950                )
10951                .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t.0)))),
10952            ),
10953            TypeVariant::RevokeSponsorshipResultCode => Box::new(
10954                ReadXdrIter::<_, Frame<RevokeSponsorshipResultCode>>::new(
10955                    &mut r.inner,
10956                    r.limits.clone(),
10957                )
10958                .map(|r| r.map(|t| Self::RevokeSponsorshipResultCode(Box::new(t.0)))),
10959            ),
10960            TypeVariant::RevokeSponsorshipResult => Box::new(
10961                ReadXdrIter::<_, Frame<RevokeSponsorshipResult>>::new(
10962                    &mut r.inner,
10963                    r.limits.clone(),
10964                )
10965                .map(|r| r.map(|t| Self::RevokeSponsorshipResult(Box::new(t.0)))),
10966            ),
10967            TypeVariant::ClawbackResultCode => Box::new(
10968                ReadXdrIter::<_, Frame<ClawbackResultCode>>::new(&mut r.inner, r.limits.clone())
10969                    .map(|r| r.map(|t| Self::ClawbackResultCode(Box::new(t.0)))),
10970            ),
10971            TypeVariant::ClawbackResult => Box::new(
10972                ReadXdrIter::<_, Frame<ClawbackResult>>::new(&mut r.inner, r.limits.clone())
10973                    .map(|r| r.map(|t| Self::ClawbackResult(Box::new(t.0)))),
10974            ),
10975            TypeVariant::ClawbackClaimableBalanceResultCode => Box::new(
10976                ReadXdrIter::<_, Frame<ClawbackClaimableBalanceResultCode>>::new(
10977                    &mut r.inner,
10978                    r.limits.clone(),
10979                )
10980                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t.0)))),
10981            ),
10982            TypeVariant::ClawbackClaimableBalanceResult => Box::new(
10983                ReadXdrIter::<_, Frame<ClawbackClaimableBalanceResult>>::new(
10984                    &mut r.inner,
10985                    r.limits.clone(),
10986                )
10987                .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t.0)))),
10988            ),
10989            TypeVariant::SetTrustLineFlagsResultCode => Box::new(
10990                ReadXdrIter::<_, Frame<SetTrustLineFlagsResultCode>>::new(
10991                    &mut r.inner,
10992                    r.limits.clone(),
10993                )
10994                .map(|r| r.map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t.0)))),
10995            ),
10996            TypeVariant::SetTrustLineFlagsResult => Box::new(
10997                ReadXdrIter::<_, Frame<SetTrustLineFlagsResult>>::new(
10998                    &mut r.inner,
10999                    r.limits.clone(),
11000                )
11001                .map(|r| r.map(|t| Self::SetTrustLineFlagsResult(Box::new(t.0)))),
11002            ),
11003            TypeVariant::LiquidityPoolDepositResultCode => Box::new(
11004                ReadXdrIter::<_, Frame<LiquidityPoolDepositResultCode>>::new(
11005                    &mut r.inner,
11006                    r.limits.clone(),
11007                )
11008                .map(|r| r.map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t.0)))),
11009            ),
11010            TypeVariant::LiquidityPoolDepositResult => Box::new(
11011                ReadXdrIter::<_, Frame<LiquidityPoolDepositResult>>::new(
11012                    &mut r.inner,
11013                    r.limits.clone(),
11014                )
11015                .map(|r| r.map(|t| Self::LiquidityPoolDepositResult(Box::new(t.0)))),
11016            ),
11017            TypeVariant::LiquidityPoolWithdrawResultCode => Box::new(
11018                ReadXdrIter::<_, Frame<LiquidityPoolWithdrawResultCode>>::new(
11019                    &mut r.inner,
11020                    r.limits.clone(),
11021                )
11022                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t.0)))),
11023            ),
11024            TypeVariant::LiquidityPoolWithdrawResult => Box::new(
11025                ReadXdrIter::<_, Frame<LiquidityPoolWithdrawResult>>::new(
11026                    &mut r.inner,
11027                    r.limits.clone(),
11028                )
11029                .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t.0)))),
11030            ),
11031            TypeVariant::InvokeHostFunctionResultCode => Box::new(
11032                ReadXdrIter::<_, Frame<InvokeHostFunctionResultCode>>::new(
11033                    &mut r.inner,
11034                    r.limits.clone(),
11035                )
11036                .map(|r| r.map(|t| Self::InvokeHostFunctionResultCode(Box::new(t.0)))),
11037            ),
11038            TypeVariant::InvokeHostFunctionResult => Box::new(
11039                ReadXdrIter::<_, Frame<InvokeHostFunctionResult>>::new(
11040                    &mut r.inner,
11041                    r.limits.clone(),
11042                )
11043                .map(|r| r.map(|t| Self::InvokeHostFunctionResult(Box::new(t.0)))),
11044            ),
11045            TypeVariant::ExtendFootprintTtlResultCode => Box::new(
11046                ReadXdrIter::<_, Frame<ExtendFootprintTtlResultCode>>::new(
11047                    &mut r.inner,
11048                    r.limits.clone(),
11049                )
11050                .map(|r| r.map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t.0)))),
11051            ),
11052            TypeVariant::ExtendFootprintTtlResult => Box::new(
11053                ReadXdrIter::<_, Frame<ExtendFootprintTtlResult>>::new(
11054                    &mut r.inner,
11055                    r.limits.clone(),
11056                )
11057                .map(|r| r.map(|t| Self::ExtendFootprintTtlResult(Box::new(t.0)))),
11058            ),
11059            TypeVariant::RestoreFootprintResultCode => Box::new(
11060                ReadXdrIter::<_, Frame<RestoreFootprintResultCode>>::new(
11061                    &mut r.inner,
11062                    r.limits.clone(),
11063                )
11064                .map(|r| r.map(|t| Self::RestoreFootprintResultCode(Box::new(t.0)))),
11065            ),
11066            TypeVariant::RestoreFootprintResult => Box::new(
11067                ReadXdrIter::<_, Frame<RestoreFootprintResult>>::new(
11068                    &mut r.inner,
11069                    r.limits.clone(),
11070                )
11071                .map(|r| r.map(|t| Self::RestoreFootprintResult(Box::new(t.0)))),
11072            ),
11073            TypeVariant::OperationResultCode => Box::new(
11074                ReadXdrIter::<_, Frame<OperationResultCode>>::new(&mut r.inner, r.limits.clone())
11075                    .map(|r| r.map(|t| Self::OperationResultCode(Box::new(t.0)))),
11076            ),
11077            TypeVariant::OperationResult => Box::new(
11078                ReadXdrIter::<_, Frame<OperationResult>>::new(&mut r.inner, r.limits.clone())
11079                    .map(|r| r.map(|t| Self::OperationResult(Box::new(t.0)))),
11080            ),
11081            TypeVariant::OperationResultTr => Box::new(
11082                ReadXdrIter::<_, Frame<OperationResultTr>>::new(&mut r.inner, r.limits.clone())
11083                    .map(|r| r.map(|t| Self::OperationResultTr(Box::new(t.0)))),
11084            ),
11085            TypeVariant::TransactionResultCode => Box::new(
11086                ReadXdrIter::<_, Frame<TransactionResultCode>>::new(&mut r.inner, r.limits.clone())
11087                    .map(|r| r.map(|t| Self::TransactionResultCode(Box::new(t.0)))),
11088            ),
11089            TypeVariant::InnerTransactionResult => Box::new(
11090                ReadXdrIter::<_, Frame<InnerTransactionResult>>::new(
11091                    &mut r.inner,
11092                    r.limits.clone(),
11093                )
11094                .map(|r| r.map(|t| Self::InnerTransactionResult(Box::new(t.0)))),
11095            ),
11096            TypeVariant::InnerTransactionResultResult => Box::new(
11097                ReadXdrIter::<_, Frame<InnerTransactionResultResult>>::new(
11098                    &mut r.inner,
11099                    r.limits.clone(),
11100                )
11101                .map(|r| r.map(|t| Self::InnerTransactionResultResult(Box::new(t.0)))),
11102            ),
11103            TypeVariant::InnerTransactionResultExt => Box::new(
11104                ReadXdrIter::<_, Frame<InnerTransactionResultExt>>::new(
11105                    &mut r.inner,
11106                    r.limits.clone(),
11107                )
11108                .map(|r| r.map(|t| Self::InnerTransactionResultExt(Box::new(t.0)))),
11109            ),
11110            TypeVariant::InnerTransactionResultPair => Box::new(
11111                ReadXdrIter::<_, Frame<InnerTransactionResultPair>>::new(
11112                    &mut r.inner,
11113                    r.limits.clone(),
11114                )
11115                .map(|r| r.map(|t| Self::InnerTransactionResultPair(Box::new(t.0)))),
11116            ),
11117            TypeVariant::TransactionResult => Box::new(
11118                ReadXdrIter::<_, Frame<TransactionResult>>::new(&mut r.inner, r.limits.clone())
11119                    .map(|r| r.map(|t| Self::TransactionResult(Box::new(t.0)))),
11120            ),
11121            TypeVariant::TransactionResultResult => Box::new(
11122                ReadXdrIter::<_, Frame<TransactionResultResult>>::new(
11123                    &mut r.inner,
11124                    r.limits.clone(),
11125                )
11126                .map(|r| r.map(|t| Self::TransactionResultResult(Box::new(t.0)))),
11127            ),
11128            TypeVariant::TransactionResultExt => Box::new(
11129                ReadXdrIter::<_, Frame<TransactionResultExt>>::new(&mut r.inner, r.limits.clone())
11130                    .map(|r| r.map(|t| Self::TransactionResultExt(Box::new(t.0)))),
11131            ),
11132            TypeVariant::Hash => Box::new(
11133                ReadXdrIter::<_, Frame<Hash>>::new(&mut r.inner, r.limits.clone())
11134                    .map(|r| r.map(|t| Self::Hash(Box::new(t.0)))),
11135            ),
11136            TypeVariant::Uint256 => Box::new(
11137                ReadXdrIter::<_, Frame<Uint256>>::new(&mut r.inner, r.limits.clone())
11138                    .map(|r| r.map(|t| Self::Uint256(Box::new(t.0)))),
11139            ),
11140            TypeVariant::Uint32 => Box::new(
11141                ReadXdrIter::<_, Frame<Uint32>>::new(&mut r.inner, r.limits.clone())
11142                    .map(|r| r.map(|t| Self::Uint32(Box::new(t.0)))),
11143            ),
11144            TypeVariant::Int32 => Box::new(
11145                ReadXdrIter::<_, Frame<Int32>>::new(&mut r.inner, r.limits.clone())
11146                    .map(|r| r.map(|t| Self::Int32(Box::new(t.0)))),
11147            ),
11148            TypeVariant::Uint64 => Box::new(
11149                ReadXdrIter::<_, Frame<Uint64>>::new(&mut r.inner, r.limits.clone())
11150                    .map(|r| r.map(|t| Self::Uint64(Box::new(t.0)))),
11151            ),
11152            TypeVariant::Int64 => Box::new(
11153                ReadXdrIter::<_, Frame<Int64>>::new(&mut r.inner, r.limits.clone())
11154                    .map(|r| r.map(|t| Self::Int64(Box::new(t.0)))),
11155            ),
11156            TypeVariant::TimePoint => Box::new(
11157                ReadXdrIter::<_, Frame<TimePoint>>::new(&mut r.inner, r.limits.clone())
11158                    .map(|r| r.map(|t| Self::TimePoint(Box::new(t.0)))),
11159            ),
11160            TypeVariant::Duration => Box::new(
11161                ReadXdrIter::<_, Frame<Duration>>::new(&mut r.inner, r.limits.clone())
11162                    .map(|r| r.map(|t| Self::Duration(Box::new(t.0)))),
11163            ),
11164            TypeVariant::ExtensionPoint => Box::new(
11165                ReadXdrIter::<_, Frame<ExtensionPoint>>::new(&mut r.inner, r.limits.clone())
11166                    .map(|r| r.map(|t| Self::ExtensionPoint(Box::new(t.0)))),
11167            ),
11168            TypeVariant::CryptoKeyType => Box::new(
11169                ReadXdrIter::<_, Frame<CryptoKeyType>>::new(&mut r.inner, r.limits.clone())
11170                    .map(|r| r.map(|t| Self::CryptoKeyType(Box::new(t.0)))),
11171            ),
11172            TypeVariant::PublicKeyType => Box::new(
11173                ReadXdrIter::<_, Frame<PublicKeyType>>::new(&mut r.inner, r.limits.clone())
11174                    .map(|r| r.map(|t| Self::PublicKeyType(Box::new(t.0)))),
11175            ),
11176            TypeVariant::SignerKeyType => Box::new(
11177                ReadXdrIter::<_, Frame<SignerKeyType>>::new(&mut r.inner, r.limits.clone())
11178                    .map(|r| r.map(|t| Self::SignerKeyType(Box::new(t.0)))),
11179            ),
11180            TypeVariant::PublicKey => Box::new(
11181                ReadXdrIter::<_, Frame<PublicKey>>::new(&mut r.inner, r.limits.clone())
11182                    .map(|r| r.map(|t| Self::PublicKey(Box::new(t.0)))),
11183            ),
11184            TypeVariant::SignerKey => Box::new(
11185                ReadXdrIter::<_, Frame<SignerKey>>::new(&mut r.inner, r.limits.clone())
11186                    .map(|r| r.map(|t| Self::SignerKey(Box::new(t.0)))),
11187            ),
11188            TypeVariant::SignerKeyEd25519SignedPayload => Box::new(
11189                ReadXdrIter::<_, Frame<SignerKeyEd25519SignedPayload>>::new(
11190                    &mut r.inner,
11191                    r.limits.clone(),
11192                )
11193                .map(|r| r.map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t.0)))),
11194            ),
11195            TypeVariant::Signature => Box::new(
11196                ReadXdrIter::<_, Frame<Signature>>::new(&mut r.inner, r.limits.clone())
11197                    .map(|r| r.map(|t| Self::Signature(Box::new(t.0)))),
11198            ),
11199            TypeVariant::SignatureHint => Box::new(
11200                ReadXdrIter::<_, Frame<SignatureHint>>::new(&mut r.inner, r.limits.clone())
11201                    .map(|r| r.map(|t| Self::SignatureHint(Box::new(t.0)))),
11202            ),
11203            TypeVariant::NodeId => Box::new(
11204                ReadXdrIter::<_, Frame<NodeId>>::new(&mut r.inner, r.limits.clone())
11205                    .map(|r| r.map(|t| Self::NodeId(Box::new(t.0)))),
11206            ),
11207            TypeVariant::AccountId => Box::new(
11208                ReadXdrIter::<_, Frame<AccountId>>::new(&mut r.inner, r.limits.clone())
11209                    .map(|r| r.map(|t| Self::AccountId(Box::new(t.0)))),
11210            ),
11211            TypeVariant::ContractId => Box::new(
11212                ReadXdrIter::<_, Frame<ContractId>>::new(&mut r.inner, r.limits.clone())
11213                    .map(|r| r.map(|t| Self::ContractId(Box::new(t.0)))),
11214            ),
11215            TypeVariant::Curve25519Secret => Box::new(
11216                ReadXdrIter::<_, Frame<Curve25519Secret>>::new(&mut r.inner, r.limits.clone())
11217                    .map(|r| r.map(|t| Self::Curve25519Secret(Box::new(t.0)))),
11218            ),
11219            TypeVariant::Curve25519Public => Box::new(
11220                ReadXdrIter::<_, Frame<Curve25519Public>>::new(&mut r.inner, r.limits.clone())
11221                    .map(|r| r.map(|t| Self::Curve25519Public(Box::new(t.0)))),
11222            ),
11223            TypeVariant::HmacSha256Key => Box::new(
11224                ReadXdrIter::<_, Frame<HmacSha256Key>>::new(&mut r.inner, r.limits.clone())
11225                    .map(|r| r.map(|t| Self::HmacSha256Key(Box::new(t.0)))),
11226            ),
11227            TypeVariant::HmacSha256Mac => Box::new(
11228                ReadXdrIter::<_, Frame<HmacSha256Mac>>::new(&mut r.inner, r.limits.clone())
11229                    .map(|r| r.map(|t| Self::HmacSha256Mac(Box::new(t.0)))),
11230            ),
11231            TypeVariant::ShortHashSeed => Box::new(
11232                ReadXdrIter::<_, Frame<ShortHashSeed>>::new(&mut r.inner, r.limits.clone())
11233                    .map(|r| r.map(|t| Self::ShortHashSeed(Box::new(t.0)))),
11234            ),
11235            TypeVariant::BinaryFuseFilterType => Box::new(
11236                ReadXdrIter::<_, Frame<BinaryFuseFilterType>>::new(&mut r.inner, r.limits.clone())
11237                    .map(|r| r.map(|t| Self::BinaryFuseFilterType(Box::new(t.0)))),
11238            ),
11239            TypeVariant::SerializedBinaryFuseFilter => Box::new(
11240                ReadXdrIter::<_, Frame<SerializedBinaryFuseFilter>>::new(
11241                    &mut r.inner,
11242                    r.limits.clone(),
11243                )
11244                .map(|r| r.map(|t| Self::SerializedBinaryFuseFilter(Box::new(t.0)))),
11245            ),
11246            TypeVariant::PoolId => Box::new(
11247                ReadXdrIter::<_, Frame<PoolId>>::new(&mut r.inner, r.limits.clone())
11248                    .map(|r| r.map(|t| Self::PoolId(Box::new(t.0)))),
11249            ),
11250            TypeVariant::ClaimableBalanceIdType => Box::new(
11251                ReadXdrIter::<_, Frame<ClaimableBalanceIdType>>::new(
11252                    &mut r.inner,
11253                    r.limits.clone(),
11254                )
11255                .map(|r| r.map(|t| Self::ClaimableBalanceIdType(Box::new(t.0)))),
11256            ),
11257            TypeVariant::ClaimableBalanceId => Box::new(
11258                ReadXdrIter::<_, Frame<ClaimableBalanceId>>::new(&mut r.inner, r.limits.clone())
11259                    .map(|r| r.map(|t| Self::ClaimableBalanceId(Box::new(t.0)))),
11260            ),
11261            #[cfg(feature = "test_feature")]
11262            TypeVariant::TestNextType => Box::new(
11263                ReadXdrIter::<_, Frame<TestNextType>>::new(&mut r.inner, r.limits.clone())
11264                    .map(|r| r.map(|t| Self::TestNextType(Box::new(t.0)))),
11265            ),
11266        }
11267    }
11268
11269    #[cfg(feature = "base64")]
11270    #[allow(clippy::too_many_lines)]
11271    pub fn read_xdr_base64_iter<R: Read>(
11272        v: TypeVariant,
11273        r: &mut Limited<R>,
11274    ) -> Box<dyn Iterator<Item = Result<Self, Error>> + '_> {
11275        let dec = base64::read::DecoderReader::new(
11276            SkipWhitespace::new(&mut r.inner),
11277            &base64::engine::general_purpose::STANDARD,
11278        );
11279        match v {
11280            TypeVariant::Value => Box::new(
11281                ReadXdrIter::<_, Value>::new(dec, r.limits.clone())
11282                    .map(|r| r.map(|t| Self::Value(Box::new(t)))),
11283            ),
11284            TypeVariant::ScpBallot => Box::new(
11285                ReadXdrIter::<_, ScpBallot>::new(dec, r.limits.clone())
11286                    .map(|r| r.map(|t| Self::ScpBallot(Box::new(t)))),
11287            ),
11288            TypeVariant::ScpStatementType => Box::new(
11289                ReadXdrIter::<_, ScpStatementType>::new(dec, r.limits.clone())
11290                    .map(|r| r.map(|t| Self::ScpStatementType(Box::new(t)))),
11291            ),
11292            TypeVariant::ScpNomination => Box::new(
11293                ReadXdrIter::<_, ScpNomination>::new(dec, r.limits.clone())
11294                    .map(|r| r.map(|t| Self::ScpNomination(Box::new(t)))),
11295            ),
11296            TypeVariant::ScpStatement => Box::new(
11297                ReadXdrIter::<_, ScpStatement>::new(dec, r.limits.clone())
11298                    .map(|r| r.map(|t| Self::ScpStatement(Box::new(t)))),
11299            ),
11300            TypeVariant::ScpStatementPledges => Box::new(
11301                ReadXdrIter::<_, ScpStatementPledges>::new(dec, r.limits.clone())
11302                    .map(|r| r.map(|t| Self::ScpStatementPledges(Box::new(t)))),
11303            ),
11304            TypeVariant::ScpStatementPrepare => Box::new(
11305                ReadXdrIter::<_, ScpStatementPrepare>::new(dec, r.limits.clone())
11306                    .map(|r| r.map(|t| Self::ScpStatementPrepare(Box::new(t)))),
11307            ),
11308            TypeVariant::ScpStatementConfirm => Box::new(
11309                ReadXdrIter::<_, ScpStatementConfirm>::new(dec, r.limits.clone())
11310                    .map(|r| r.map(|t| Self::ScpStatementConfirm(Box::new(t)))),
11311            ),
11312            TypeVariant::ScpStatementExternalize => Box::new(
11313                ReadXdrIter::<_, ScpStatementExternalize>::new(dec, r.limits.clone())
11314                    .map(|r| r.map(|t| Self::ScpStatementExternalize(Box::new(t)))),
11315            ),
11316            TypeVariant::ScpEnvelope => Box::new(
11317                ReadXdrIter::<_, ScpEnvelope>::new(dec, r.limits.clone())
11318                    .map(|r| r.map(|t| Self::ScpEnvelope(Box::new(t)))),
11319            ),
11320            TypeVariant::ScpQuorumSet => Box::new(
11321                ReadXdrIter::<_, ScpQuorumSet>::new(dec, r.limits.clone())
11322                    .map(|r| r.map(|t| Self::ScpQuorumSet(Box::new(t)))),
11323            ),
11324            TypeVariant::EncodedLedgerKey => Box::new(
11325                ReadXdrIter::<_, EncodedLedgerKey>::new(dec, r.limits.clone())
11326                    .map(|r| r.map(|t| Self::EncodedLedgerKey(Box::new(t)))),
11327            ),
11328            TypeVariant::ConfigSettingContractExecutionLanesV0 => Box::new(
11329                ReadXdrIter::<_, ConfigSettingContractExecutionLanesV0>::new(dec, r.limits.clone())
11330                    .map(|r| r.map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t)))),
11331            ),
11332            TypeVariant::ConfigSettingContractComputeV0 => Box::new(
11333                ReadXdrIter::<_, ConfigSettingContractComputeV0>::new(dec, r.limits.clone())
11334                    .map(|r| r.map(|t| Self::ConfigSettingContractComputeV0(Box::new(t)))),
11335            ),
11336            TypeVariant::ConfigSettingContractParallelComputeV0 => Box::new(
11337                ReadXdrIter::<_, ConfigSettingContractParallelComputeV0>::new(
11338                    dec,
11339                    r.limits.clone(),
11340                )
11341                .map(|r| r.map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t)))),
11342            ),
11343            TypeVariant::ConfigSettingContractLedgerCostV0 => Box::new(
11344                ReadXdrIter::<_, ConfigSettingContractLedgerCostV0>::new(dec, r.limits.clone())
11345                    .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t)))),
11346            ),
11347            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Box::new(
11348                ReadXdrIter::<_, ConfigSettingContractLedgerCostExtV0>::new(dec, r.limits.clone())
11349                    .map(|r| r.map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t)))),
11350            ),
11351            TypeVariant::ConfigSettingContractHistoricalDataV0 => Box::new(
11352                ReadXdrIter::<_, ConfigSettingContractHistoricalDataV0>::new(dec, r.limits.clone())
11353                    .map(|r| r.map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t)))),
11354            ),
11355            TypeVariant::ConfigSettingContractEventsV0 => Box::new(
11356                ReadXdrIter::<_, ConfigSettingContractEventsV0>::new(dec, r.limits.clone())
11357                    .map(|r| r.map(|t| Self::ConfigSettingContractEventsV0(Box::new(t)))),
11358            ),
11359            TypeVariant::ConfigSettingContractBandwidthV0 => Box::new(
11360                ReadXdrIter::<_, ConfigSettingContractBandwidthV0>::new(dec, r.limits.clone())
11361                    .map(|r| r.map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t)))),
11362            ),
11363            TypeVariant::ContractCostType => Box::new(
11364                ReadXdrIter::<_, ContractCostType>::new(dec, r.limits.clone())
11365                    .map(|r| r.map(|t| Self::ContractCostType(Box::new(t)))),
11366            ),
11367            TypeVariant::ContractCostParamEntry => Box::new(
11368                ReadXdrIter::<_, ContractCostParamEntry>::new(dec, r.limits.clone())
11369                    .map(|r| r.map(|t| Self::ContractCostParamEntry(Box::new(t)))),
11370            ),
11371            TypeVariant::StateArchivalSettings => Box::new(
11372                ReadXdrIter::<_, StateArchivalSettings>::new(dec, r.limits.clone())
11373                    .map(|r| r.map(|t| Self::StateArchivalSettings(Box::new(t)))),
11374            ),
11375            TypeVariant::EvictionIterator => Box::new(
11376                ReadXdrIter::<_, EvictionIterator>::new(dec, r.limits.clone())
11377                    .map(|r| r.map(|t| Self::EvictionIterator(Box::new(t)))),
11378            ),
11379            TypeVariant::ConfigSettingScpTiming => Box::new(
11380                ReadXdrIter::<_, ConfigSettingScpTiming>::new(dec, r.limits.clone())
11381                    .map(|r| r.map(|t| Self::ConfigSettingScpTiming(Box::new(t)))),
11382            ),
11383            TypeVariant::FrozenLedgerKeys => Box::new(
11384                ReadXdrIter::<_, FrozenLedgerKeys>::new(dec, r.limits.clone())
11385                    .map(|r| r.map(|t| Self::FrozenLedgerKeys(Box::new(t)))),
11386            ),
11387            TypeVariant::FrozenLedgerKeysDelta => Box::new(
11388                ReadXdrIter::<_, FrozenLedgerKeysDelta>::new(dec, r.limits.clone())
11389                    .map(|r| r.map(|t| Self::FrozenLedgerKeysDelta(Box::new(t)))),
11390            ),
11391            TypeVariant::FreezeBypassTxs => Box::new(
11392                ReadXdrIter::<_, FreezeBypassTxs>::new(dec, r.limits.clone())
11393                    .map(|r| r.map(|t| Self::FreezeBypassTxs(Box::new(t)))),
11394            ),
11395            TypeVariant::FreezeBypassTxsDelta => Box::new(
11396                ReadXdrIter::<_, FreezeBypassTxsDelta>::new(dec, r.limits.clone())
11397                    .map(|r| r.map(|t| Self::FreezeBypassTxsDelta(Box::new(t)))),
11398            ),
11399            TypeVariant::ContractCostParams => Box::new(
11400                ReadXdrIter::<_, ContractCostParams>::new(dec, r.limits.clone())
11401                    .map(|r| r.map(|t| Self::ContractCostParams(Box::new(t)))),
11402            ),
11403            TypeVariant::ConfigSettingId => Box::new(
11404                ReadXdrIter::<_, ConfigSettingId>::new(dec, r.limits.clone())
11405                    .map(|r| r.map(|t| Self::ConfigSettingId(Box::new(t)))),
11406            ),
11407            TypeVariant::ConfigSettingEntry => Box::new(
11408                ReadXdrIter::<_, ConfigSettingEntry>::new(dec, r.limits.clone())
11409                    .map(|r| r.map(|t| Self::ConfigSettingEntry(Box::new(t)))),
11410            ),
11411            TypeVariant::ScEnvMetaKind => Box::new(
11412                ReadXdrIter::<_, ScEnvMetaKind>::new(dec, r.limits.clone())
11413                    .map(|r| r.map(|t| Self::ScEnvMetaKind(Box::new(t)))),
11414            ),
11415            TypeVariant::ScEnvMetaEntry => Box::new(
11416                ReadXdrIter::<_, ScEnvMetaEntry>::new(dec, r.limits.clone())
11417                    .map(|r| r.map(|t| Self::ScEnvMetaEntry(Box::new(t)))),
11418            ),
11419            TypeVariant::ScEnvMetaEntryInterfaceVersion => Box::new(
11420                ReadXdrIter::<_, ScEnvMetaEntryInterfaceVersion>::new(dec, r.limits.clone())
11421                    .map(|r| r.map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t)))),
11422            ),
11423            TypeVariant::ScMetaV0 => Box::new(
11424                ReadXdrIter::<_, ScMetaV0>::new(dec, r.limits.clone())
11425                    .map(|r| r.map(|t| Self::ScMetaV0(Box::new(t)))),
11426            ),
11427            TypeVariant::ScMetaKind => Box::new(
11428                ReadXdrIter::<_, ScMetaKind>::new(dec, r.limits.clone())
11429                    .map(|r| r.map(|t| Self::ScMetaKind(Box::new(t)))),
11430            ),
11431            TypeVariant::ScMetaEntry => Box::new(
11432                ReadXdrIter::<_, ScMetaEntry>::new(dec, r.limits.clone())
11433                    .map(|r| r.map(|t| Self::ScMetaEntry(Box::new(t)))),
11434            ),
11435            TypeVariant::ScSpecType => Box::new(
11436                ReadXdrIter::<_, ScSpecType>::new(dec, r.limits.clone())
11437                    .map(|r| r.map(|t| Self::ScSpecType(Box::new(t)))),
11438            ),
11439            TypeVariant::ScSpecTypeOption => Box::new(
11440                ReadXdrIter::<_, ScSpecTypeOption>::new(dec, r.limits.clone())
11441                    .map(|r| r.map(|t| Self::ScSpecTypeOption(Box::new(t)))),
11442            ),
11443            TypeVariant::ScSpecTypeResult => Box::new(
11444                ReadXdrIter::<_, ScSpecTypeResult>::new(dec, r.limits.clone())
11445                    .map(|r| r.map(|t| Self::ScSpecTypeResult(Box::new(t)))),
11446            ),
11447            TypeVariant::ScSpecTypeVec => Box::new(
11448                ReadXdrIter::<_, ScSpecTypeVec>::new(dec, r.limits.clone())
11449                    .map(|r| r.map(|t| Self::ScSpecTypeVec(Box::new(t)))),
11450            ),
11451            TypeVariant::ScSpecTypeMap => Box::new(
11452                ReadXdrIter::<_, ScSpecTypeMap>::new(dec, r.limits.clone())
11453                    .map(|r| r.map(|t| Self::ScSpecTypeMap(Box::new(t)))),
11454            ),
11455            TypeVariant::ScSpecTypeTuple => Box::new(
11456                ReadXdrIter::<_, ScSpecTypeTuple>::new(dec, r.limits.clone())
11457                    .map(|r| r.map(|t| Self::ScSpecTypeTuple(Box::new(t)))),
11458            ),
11459            TypeVariant::ScSpecTypeBytesN => Box::new(
11460                ReadXdrIter::<_, ScSpecTypeBytesN>::new(dec, r.limits.clone())
11461                    .map(|r| r.map(|t| Self::ScSpecTypeBytesN(Box::new(t)))),
11462            ),
11463            TypeVariant::ScSpecTypeUdt => Box::new(
11464                ReadXdrIter::<_, ScSpecTypeUdt>::new(dec, r.limits.clone())
11465                    .map(|r| r.map(|t| Self::ScSpecTypeUdt(Box::new(t)))),
11466            ),
11467            TypeVariant::ScSpecTypeDef => Box::new(
11468                ReadXdrIter::<_, ScSpecTypeDef>::new(dec, r.limits.clone())
11469                    .map(|r| r.map(|t| Self::ScSpecTypeDef(Box::new(t)))),
11470            ),
11471            TypeVariant::ScSpecUdtStructFieldV0 => Box::new(
11472                ReadXdrIter::<_, ScSpecUdtStructFieldV0>::new(dec, r.limits.clone())
11473                    .map(|r| r.map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t)))),
11474            ),
11475            TypeVariant::ScSpecUdtStructV0 => Box::new(
11476                ReadXdrIter::<_, ScSpecUdtStructV0>::new(dec, r.limits.clone())
11477                    .map(|r| r.map(|t| Self::ScSpecUdtStructV0(Box::new(t)))),
11478            ),
11479            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Box::new(
11480                ReadXdrIter::<_, ScSpecUdtUnionCaseVoidV0>::new(dec, r.limits.clone())
11481                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t)))),
11482            ),
11483            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Box::new(
11484                ReadXdrIter::<_, ScSpecUdtUnionCaseTupleV0>::new(dec, r.limits.clone())
11485                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t)))),
11486            ),
11487            TypeVariant::ScSpecUdtUnionCaseV0Kind => Box::new(
11488                ReadXdrIter::<_, ScSpecUdtUnionCaseV0Kind>::new(dec, r.limits.clone())
11489                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t)))),
11490            ),
11491            TypeVariant::ScSpecUdtUnionCaseV0 => Box::new(
11492                ReadXdrIter::<_, ScSpecUdtUnionCaseV0>::new(dec, r.limits.clone())
11493                    .map(|r| r.map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t)))),
11494            ),
11495            TypeVariant::ScSpecUdtUnionV0 => Box::new(
11496                ReadXdrIter::<_, ScSpecUdtUnionV0>::new(dec, r.limits.clone())
11497                    .map(|r| r.map(|t| Self::ScSpecUdtUnionV0(Box::new(t)))),
11498            ),
11499            TypeVariant::ScSpecUdtEnumCaseV0 => Box::new(
11500                ReadXdrIter::<_, ScSpecUdtEnumCaseV0>::new(dec, r.limits.clone())
11501                    .map(|r| r.map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t)))),
11502            ),
11503            TypeVariant::ScSpecUdtEnumV0 => Box::new(
11504                ReadXdrIter::<_, ScSpecUdtEnumV0>::new(dec, r.limits.clone())
11505                    .map(|r| r.map(|t| Self::ScSpecUdtEnumV0(Box::new(t)))),
11506            ),
11507            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Box::new(
11508                ReadXdrIter::<_, ScSpecUdtErrorEnumCaseV0>::new(dec, r.limits.clone())
11509                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t)))),
11510            ),
11511            TypeVariant::ScSpecUdtErrorEnumV0 => Box::new(
11512                ReadXdrIter::<_, ScSpecUdtErrorEnumV0>::new(dec, r.limits.clone())
11513                    .map(|r| r.map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t)))),
11514            ),
11515            TypeVariant::ScSpecFunctionInputV0 => Box::new(
11516                ReadXdrIter::<_, ScSpecFunctionInputV0>::new(dec, r.limits.clone())
11517                    .map(|r| r.map(|t| Self::ScSpecFunctionInputV0(Box::new(t)))),
11518            ),
11519            TypeVariant::ScSpecFunctionV0 => Box::new(
11520                ReadXdrIter::<_, ScSpecFunctionV0>::new(dec, r.limits.clone())
11521                    .map(|r| r.map(|t| Self::ScSpecFunctionV0(Box::new(t)))),
11522            ),
11523            TypeVariant::ScSpecEventParamLocationV0 => Box::new(
11524                ReadXdrIter::<_, ScSpecEventParamLocationV0>::new(dec, r.limits.clone())
11525                    .map(|r| r.map(|t| Self::ScSpecEventParamLocationV0(Box::new(t)))),
11526            ),
11527            TypeVariant::ScSpecEventParamV0 => Box::new(
11528                ReadXdrIter::<_, ScSpecEventParamV0>::new(dec, r.limits.clone())
11529                    .map(|r| r.map(|t| Self::ScSpecEventParamV0(Box::new(t)))),
11530            ),
11531            TypeVariant::ScSpecEventDataFormat => Box::new(
11532                ReadXdrIter::<_, ScSpecEventDataFormat>::new(dec, r.limits.clone())
11533                    .map(|r| r.map(|t| Self::ScSpecEventDataFormat(Box::new(t)))),
11534            ),
11535            TypeVariant::ScSpecEventV0 => Box::new(
11536                ReadXdrIter::<_, ScSpecEventV0>::new(dec, r.limits.clone())
11537                    .map(|r| r.map(|t| Self::ScSpecEventV0(Box::new(t)))),
11538            ),
11539            TypeVariant::ScSpecEntryKind => Box::new(
11540                ReadXdrIter::<_, ScSpecEntryKind>::new(dec, r.limits.clone())
11541                    .map(|r| r.map(|t| Self::ScSpecEntryKind(Box::new(t)))),
11542            ),
11543            TypeVariant::ScSpecEntry => Box::new(
11544                ReadXdrIter::<_, ScSpecEntry>::new(dec, r.limits.clone())
11545                    .map(|r| r.map(|t| Self::ScSpecEntry(Box::new(t)))),
11546            ),
11547            TypeVariant::ScBytes => Box::new(
11548                ReadXdrIter::<_, ScBytes>::new(dec, r.limits.clone())
11549                    .map(|r| r.map(|t| Self::ScBytes(Box::new(t)))),
11550            ),
11551            TypeVariant::ScString => Box::new(
11552                ReadXdrIter::<_, ScString>::new(dec, r.limits.clone())
11553                    .map(|r| r.map(|t| Self::ScString(Box::new(t)))),
11554            ),
11555            TypeVariant::ScSymbol => Box::new(
11556                ReadXdrIter::<_, ScSymbol>::new(dec, r.limits.clone())
11557                    .map(|r| r.map(|t| Self::ScSymbol(Box::new(t)))),
11558            ),
11559            TypeVariant::ScValType => Box::new(
11560                ReadXdrIter::<_, ScValType>::new(dec, r.limits.clone())
11561                    .map(|r| r.map(|t| Self::ScValType(Box::new(t)))),
11562            ),
11563            TypeVariant::ScErrorType => Box::new(
11564                ReadXdrIter::<_, ScErrorType>::new(dec, r.limits.clone())
11565                    .map(|r| r.map(|t| Self::ScErrorType(Box::new(t)))),
11566            ),
11567            TypeVariant::ScErrorCode => Box::new(
11568                ReadXdrIter::<_, ScErrorCode>::new(dec, r.limits.clone())
11569                    .map(|r| r.map(|t| Self::ScErrorCode(Box::new(t)))),
11570            ),
11571            TypeVariant::ScError => Box::new(
11572                ReadXdrIter::<_, ScError>::new(dec, r.limits.clone())
11573                    .map(|r| r.map(|t| Self::ScError(Box::new(t)))),
11574            ),
11575            TypeVariant::UInt128Parts => Box::new(
11576                ReadXdrIter::<_, UInt128Parts>::new(dec, r.limits.clone())
11577                    .map(|r| r.map(|t| Self::UInt128Parts(Box::new(t)))),
11578            ),
11579            TypeVariant::Int128Parts => Box::new(
11580                ReadXdrIter::<_, Int128Parts>::new(dec, r.limits.clone())
11581                    .map(|r| r.map(|t| Self::Int128Parts(Box::new(t)))),
11582            ),
11583            TypeVariant::UInt256Parts => Box::new(
11584                ReadXdrIter::<_, UInt256Parts>::new(dec, r.limits.clone())
11585                    .map(|r| r.map(|t| Self::UInt256Parts(Box::new(t)))),
11586            ),
11587            TypeVariant::Int256Parts => Box::new(
11588                ReadXdrIter::<_, Int256Parts>::new(dec, r.limits.clone())
11589                    .map(|r| r.map(|t| Self::Int256Parts(Box::new(t)))),
11590            ),
11591            TypeVariant::ContractExecutableType => Box::new(
11592                ReadXdrIter::<_, ContractExecutableType>::new(dec, r.limits.clone())
11593                    .map(|r| r.map(|t| Self::ContractExecutableType(Box::new(t)))),
11594            ),
11595            TypeVariant::ScAddressType => Box::new(
11596                ReadXdrIter::<_, ScAddressType>::new(dec, r.limits.clone())
11597                    .map(|r| r.map(|t| Self::ScAddressType(Box::new(t)))),
11598            ),
11599            TypeVariant::MuxedEd25519Account => Box::new(
11600                ReadXdrIter::<_, MuxedEd25519Account>::new(dec, r.limits.clone())
11601                    .map(|r| r.map(|t| Self::MuxedEd25519Account(Box::new(t)))),
11602            ),
11603            #[cfg(feature = "cap_0084_muxed_contract")]
11604            TypeVariant::MuxedContract => Box::new(
11605                ReadXdrIter::<_, MuxedContract>::new(dec, r.limits.clone())
11606                    .map(|r| r.map(|t| Self::MuxedContract(Box::new(t)))),
11607            ),
11608            TypeVariant::ScAddress => Box::new(
11609                ReadXdrIter::<_, ScAddress>::new(dec, r.limits.clone())
11610                    .map(|r| r.map(|t| Self::ScAddress(Box::new(t)))),
11611            ),
11612            TypeVariant::ContractExecutableExternalRef => Box::new(
11613                ReadXdrIter::<_, ContractExecutableExternalRef>::new(dec, r.limits.clone())
11614                    .map(|r| r.map(|t| Self::ContractExecutableExternalRef(Box::new(t)))),
11615            ),
11616            TypeVariant::ContractExecutable => Box::new(
11617                ReadXdrIter::<_, ContractExecutable>::new(dec, r.limits.clone())
11618                    .map(|r| r.map(|t| Self::ContractExecutable(Box::new(t)))),
11619            ),
11620            TypeVariant::ScVec => Box::new(
11621                ReadXdrIter::<_, ScVec>::new(dec, r.limits.clone())
11622                    .map(|r| r.map(|t| Self::ScVec(Box::new(t)))),
11623            ),
11624            TypeVariant::ScMap => Box::new(
11625                ReadXdrIter::<_, ScMap>::new(dec, r.limits.clone())
11626                    .map(|r| r.map(|t| Self::ScMap(Box::new(t)))),
11627            ),
11628            TypeVariant::ScNonceKey => Box::new(
11629                ReadXdrIter::<_, ScNonceKey>::new(dec, r.limits.clone())
11630                    .map(|r| r.map(|t| Self::ScNonceKey(Box::new(t)))),
11631            ),
11632            TypeVariant::ScContractInstance => Box::new(
11633                ReadXdrIter::<_, ScContractInstance>::new(dec, r.limits.clone())
11634                    .map(|r| r.map(|t| Self::ScContractInstance(Box::new(t)))),
11635            ),
11636            TypeVariant::ScVal => Box::new(
11637                ReadXdrIter::<_, ScVal>::new(dec, r.limits.clone())
11638                    .map(|r| r.map(|t| Self::ScVal(Box::new(t)))),
11639            ),
11640            TypeVariant::ScMapEntry => Box::new(
11641                ReadXdrIter::<_, ScMapEntry>::new(dec, r.limits.clone())
11642                    .map(|r| r.map(|t| Self::ScMapEntry(Box::new(t)))),
11643            ),
11644            TypeVariant::LedgerCloseMetaBatch => Box::new(
11645                ReadXdrIter::<_, LedgerCloseMetaBatch>::new(dec, r.limits.clone())
11646                    .map(|r| r.map(|t| Self::LedgerCloseMetaBatch(Box::new(t)))),
11647            ),
11648            TypeVariant::StoredTransactionSet => Box::new(
11649                ReadXdrIter::<_, StoredTransactionSet>::new(dec, r.limits.clone())
11650                    .map(|r| r.map(|t| Self::StoredTransactionSet(Box::new(t)))),
11651            ),
11652            TypeVariant::StoredDebugTransactionSet => Box::new(
11653                ReadXdrIter::<_, StoredDebugTransactionSet>::new(dec, r.limits.clone())
11654                    .map(|r| r.map(|t| Self::StoredDebugTransactionSet(Box::new(t)))),
11655            ),
11656            TypeVariant::PersistedScpStateV0 => Box::new(
11657                ReadXdrIter::<_, PersistedScpStateV0>::new(dec, r.limits.clone())
11658                    .map(|r| r.map(|t| Self::PersistedScpStateV0(Box::new(t)))),
11659            ),
11660            TypeVariant::PersistedScpStateV1 => Box::new(
11661                ReadXdrIter::<_, PersistedScpStateV1>::new(dec, r.limits.clone())
11662                    .map(|r| r.map(|t| Self::PersistedScpStateV1(Box::new(t)))),
11663            ),
11664            TypeVariant::PersistedScpState => Box::new(
11665                ReadXdrIter::<_, PersistedScpState>::new(dec, r.limits.clone())
11666                    .map(|r| r.map(|t| Self::PersistedScpState(Box::new(t)))),
11667            ),
11668            TypeVariant::Thresholds => Box::new(
11669                ReadXdrIter::<_, Thresholds>::new(dec, r.limits.clone())
11670                    .map(|r| r.map(|t| Self::Thresholds(Box::new(t)))),
11671            ),
11672            TypeVariant::String32 => Box::new(
11673                ReadXdrIter::<_, String32>::new(dec, r.limits.clone())
11674                    .map(|r| r.map(|t| Self::String32(Box::new(t)))),
11675            ),
11676            TypeVariant::String64 => Box::new(
11677                ReadXdrIter::<_, String64>::new(dec, r.limits.clone())
11678                    .map(|r| r.map(|t| Self::String64(Box::new(t)))),
11679            ),
11680            TypeVariant::SequenceNumber => Box::new(
11681                ReadXdrIter::<_, SequenceNumber>::new(dec, r.limits.clone())
11682                    .map(|r| r.map(|t| Self::SequenceNumber(Box::new(t)))),
11683            ),
11684            TypeVariant::DataValue => Box::new(
11685                ReadXdrIter::<_, DataValue>::new(dec, r.limits.clone())
11686                    .map(|r| r.map(|t| Self::DataValue(Box::new(t)))),
11687            ),
11688            TypeVariant::AssetCode4 => Box::new(
11689                ReadXdrIter::<_, AssetCode4>::new(dec, r.limits.clone())
11690                    .map(|r| r.map(|t| Self::AssetCode4(Box::new(t)))),
11691            ),
11692            TypeVariant::AssetCode12 => Box::new(
11693                ReadXdrIter::<_, AssetCode12>::new(dec, r.limits.clone())
11694                    .map(|r| r.map(|t| Self::AssetCode12(Box::new(t)))),
11695            ),
11696            TypeVariant::AssetType => Box::new(
11697                ReadXdrIter::<_, AssetType>::new(dec, r.limits.clone())
11698                    .map(|r| r.map(|t| Self::AssetType(Box::new(t)))),
11699            ),
11700            TypeVariant::AssetCode => Box::new(
11701                ReadXdrIter::<_, AssetCode>::new(dec, r.limits.clone())
11702                    .map(|r| r.map(|t| Self::AssetCode(Box::new(t)))),
11703            ),
11704            TypeVariant::AlphaNum4 => Box::new(
11705                ReadXdrIter::<_, AlphaNum4>::new(dec, r.limits.clone())
11706                    .map(|r| r.map(|t| Self::AlphaNum4(Box::new(t)))),
11707            ),
11708            TypeVariant::AlphaNum12 => Box::new(
11709                ReadXdrIter::<_, AlphaNum12>::new(dec, r.limits.clone())
11710                    .map(|r| r.map(|t| Self::AlphaNum12(Box::new(t)))),
11711            ),
11712            TypeVariant::Asset => Box::new(
11713                ReadXdrIter::<_, Asset>::new(dec, r.limits.clone())
11714                    .map(|r| r.map(|t| Self::Asset(Box::new(t)))),
11715            ),
11716            TypeVariant::Price => Box::new(
11717                ReadXdrIter::<_, Price>::new(dec, r.limits.clone())
11718                    .map(|r| r.map(|t| Self::Price(Box::new(t)))),
11719            ),
11720            TypeVariant::Liabilities => Box::new(
11721                ReadXdrIter::<_, Liabilities>::new(dec, r.limits.clone())
11722                    .map(|r| r.map(|t| Self::Liabilities(Box::new(t)))),
11723            ),
11724            TypeVariant::ThresholdIndexes => Box::new(
11725                ReadXdrIter::<_, ThresholdIndexes>::new(dec, r.limits.clone())
11726                    .map(|r| r.map(|t| Self::ThresholdIndexes(Box::new(t)))),
11727            ),
11728            TypeVariant::LedgerEntryType => Box::new(
11729                ReadXdrIter::<_, LedgerEntryType>::new(dec, r.limits.clone())
11730                    .map(|r| r.map(|t| Self::LedgerEntryType(Box::new(t)))),
11731            ),
11732            TypeVariant::Signer => Box::new(
11733                ReadXdrIter::<_, Signer>::new(dec, r.limits.clone())
11734                    .map(|r| r.map(|t| Self::Signer(Box::new(t)))),
11735            ),
11736            TypeVariant::AccountFlags => Box::new(
11737                ReadXdrIter::<_, AccountFlags>::new(dec, r.limits.clone())
11738                    .map(|r| r.map(|t| Self::AccountFlags(Box::new(t)))),
11739            ),
11740            TypeVariant::SponsorshipDescriptor => Box::new(
11741                ReadXdrIter::<_, SponsorshipDescriptor>::new(dec, r.limits.clone())
11742                    .map(|r| r.map(|t| Self::SponsorshipDescriptor(Box::new(t)))),
11743            ),
11744            TypeVariant::AccountEntryExtensionV3 => Box::new(
11745                ReadXdrIter::<_, AccountEntryExtensionV3>::new(dec, r.limits.clone())
11746                    .map(|r| r.map(|t| Self::AccountEntryExtensionV3(Box::new(t)))),
11747            ),
11748            TypeVariant::AccountEntryExtensionV2 => Box::new(
11749                ReadXdrIter::<_, AccountEntryExtensionV2>::new(dec, r.limits.clone())
11750                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2(Box::new(t)))),
11751            ),
11752            TypeVariant::AccountEntryExtensionV2Ext => Box::new(
11753                ReadXdrIter::<_, AccountEntryExtensionV2Ext>::new(dec, r.limits.clone())
11754                    .map(|r| r.map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t)))),
11755            ),
11756            TypeVariant::AccountEntryExtensionV1 => Box::new(
11757                ReadXdrIter::<_, AccountEntryExtensionV1>::new(dec, r.limits.clone())
11758                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1(Box::new(t)))),
11759            ),
11760            TypeVariant::AccountEntryExtensionV1Ext => Box::new(
11761                ReadXdrIter::<_, AccountEntryExtensionV1Ext>::new(dec, r.limits.clone())
11762                    .map(|r| r.map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t)))),
11763            ),
11764            TypeVariant::AccountEntry => Box::new(
11765                ReadXdrIter::<_, AccountEntry>::new(dec, r.limits.clone())
11766                    .map(|r| r.map(|t| Self::AccountEntry(Box::new(t)))),
11767            ),
11768            TypeVariant::AccountEntryExt => Box::new(
11769                ReadXdrIter::<_, AccountEntryExt>::new(dec, r.limits.clone())
11770                    .map(|r| r.map(|t| Self::AccountEntryExt(Box::new(t)))),
11771            ),
11772            TypeVariant::TrustLineFlags => Box::new(
11773                ReadXdrIter::<_, TrustLineFlags>::new(dec, r.limits.clone())
11774                    .map(|r| r.map(|t| Self::TrustLineFlags(Box::new(t)))),
11775            ),
11776            TypeVariant::LiquidityPoolType => Box::new(
11777                ReadXdrIter::<_, LiquidityPoolType>::new(dec, r.limits.clone())
11778                    .map(|r| r.map(|t| Self::LiquidityPoolType(Box::new(t)))),
11779            ),
11780            TypeVariant::TrustLineAsset => Box::new(
11781                ReadXdrIter::<_, TrustLineAsset>::new(dec, r.limits.clone())
11782                    .map(|r| r.map(|t| Self::TrustLineAsset(Box::new(t)))),
11783            ),
11784            TypeVariant::TrustLineEntryExtensionV2 => Box::new(
11785                ReadXdrIter::<_, TrustLineEntryExtensionV2>::new(dec, r.limits.clone())
11786                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2(Box::new(t)))),
11787            ),
11788            TypeVariant::TrustLineEntryExtensionV2Ext => Box::new(
11789                ReadXdrIter::<_, TrustLineEntryExtensionV2Ext>::new(dec, r.limits.clone())
11790                    .map(|r| r.map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t)))),
11791            ),
11792            TypeVariant::TrustLineEntry => Box::new(
11793                ReadXdrIter::<_, TrustLineEntry>::new(dec, r.limits.clone())
11794                    .map(|r| r.map(|t| Self::TrustLineEntry(Box::new(t)))),
11795            ),
11796            TypeVariant::TrustLineEntryExt => Box::new(
11797                ReadXdrIter::<_, TrustLineEntryExt>::new(dec, r.limits.clone())
11798                    .map(|r| r.map(|t| Self::TrustLineEntryExt(Box::new(t)))),
11799            ),
11800            TypeVariant::TrustLineEntryV1 => Box::new(
11801                ReadXdrIter::<_, TrustLineEntryV1>::new(dec, r.limits.clone())
11802                    .map(|r| r.map(|t| Self::TrustLineEntryV1(Box::new(t)))),
11803            ),
11804            TypeVariant::TrustLineEntryV1Ext => Box::new(
11805                ReadXdrIter::<_, TrustLineEntryV1Ext>::new(dec, r.limits.clone())
11806                    .map(|r| r.map(|t| Self::TrustLineEntryV1Ext(Box::new(t)))),
11807            ),
11808            TypeVariant::OfferEntryFlags => Box::new(
11809                ReadXdrIter::<_, OfferEntryFlags>::new(dec, r.limits.clone())
11810                    .map(|r| r.map(|t| Self::OfferEntryFlags(Box::new(t)))),
11811            ),
11812            TypeVariant::OfferEntry => Box::new(
11813                ReadXdrIter::<_, OfferEntry>::new(dec, r.limits.clone())
11814                    .map(|r| r.map(|t| Self::OfferEntry(Box::new(t)))),
11815            ),
11816            TypeVariant::OfferEntryExt => Box::new(
11817                ReadXdrIter::<_, OfferEntryExt>::new(dec, r.limits.clone())
11818                    .map(|r| r.map(|t| Self::OfferEntryExt(Box::new(t)))),
11819            ),
11820            TypeVariant::DataEntry => Box::new(
11821                ReadXdrIter::<_, DataEntry>::new(dec, r.limits.clone())
11822                    .map(|r| r.map(|t| Self::DataEntry(Box::new(t)))),
11823            ),
11824            TypeVariant::DataEntryExt => Box::new(
11825                ReadXdrIter::<_, DataEntryExt>::new(dec, r.limits.clone())
11826                    .map(|r| r.map(|t| Self::DataEntryExt(Box::new(t)))),
11827            ),
11828            TypeVariant::ClaimPredicateType => Box::new(
11829                ReadXdrIter::<_, ClaimPredicateType>::new(dec, r.limits.clone())
11830                    .map(|r| r.map(|t| Self::ClaimPredicateType(Box::new(t)))),
11831            ),
11832            TypeVariant::ClaimPredicate => Box::new(
11833                ReadXdrIter::<_, ClaimPredicate>::new(dec, r.limits.clone())
11834                    .map(|r| r.map(|t| Self::ClaimPredicate(Box::new(t)))),
11835            ),
11836            TypeVariant::ClaimantType => Box::new(
11837                ReadXdrIter::<_, ClaimantType>::new(dec, r.limits.clone())
11838                    .map(|r| r.map(|t| Self::ClaimantType(Box::new(t)))),
11839            ),
11840            TypeVariant::Claimant => Box::new(
11841                ReadXdrIter::<_, Claimant>::new(dec, r.limits.clone())
11842                    .map(|r| r.map(|t| Self::Claimant(Box::new(t)))),
11843            ),
11844            TypeVariant::ClaimantV0 => Box::new(
11845                ReadXdrIter::<_, ClaimantV0>::new(dec, r.limits.clone())
11846                    .map(|r| r.map(|t| Self::ClaimantV0(Box::new(t)))),
11847            ),
11848            TypeVariant::ClaimableBalanceFlags => Box::new(
11849                ReadXdrIter::<_, ClaimableBalanceFlags>::new(dec, r.limits.clone())
11850                    .map(|r| r.map(|t| Self::ClaimableBalanceFlags(Box::new(t)))),
11851            ),
11852            TypeVariant::ClaimableBalanceEntryExtensionV1 => Box::new(
11853                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1>::new(dec, r.limits.clone())
11854                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t)))),
11855            ),
11856            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Box::new(
11857                ReadXdrIter::<_, ClaimableBalanceEntryExtensionV1Ext>::new(dec, r.limits.clone())
11858                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t)))),
11859            ),
11860            TypeVariant::ClaimableBalanceEntry => Box::new(
11861                ReadXdrIter::<_, ClaimableBalanceEntry>::new(dec, r.limits.clone())
11862                    .map(|r| r.map(|t| Self::ClaimableBalanceEntry(Box::new(t)))),
11863            ),
11864            TypeVariant::ClaimableBalanceEntryExt => Box::new(
11865                ReadXdrIter::<_, ClaimableBalanceEntryExt>::new(dec, r.limits.clone())
11866                    .map(|r| r.map(|t| Self::ClaimableBalanceEntryExt(Box::new(t)))),
11867            ),
11868            TypeVariant::LiquidityPoolConstantProductParameters => Box::new(
11869                ReadXdrIter::<_, LiquidityPoolConstantProductParameters>::new(
11870                    dec,
11871                    r.limits.clone(),
11872                )
11873                .map(|r| r.map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t)))),
11874            ),
11875            TypeVariant::LiquidityPoolEntry => Box::new(
11876                ReadXdrIter::<_, LiquidityPoolEntry>::new(dec, r.limits.clone())
11877                    .map(|r| r.map(|t| Self::LiquidityPoolEntry(Box::new(t)))),
11878            ),
11879            TypeVariant::LiquidityPoolEntryBody => Box::new(
11880                ReadXdrIter::<_, LiquidityPoolEntryBody>::new(dec, r.limits.clone())
11881                    .map(|r| r.map(|t| Self::LiquidityPoolEntryBody(Box::new(t)))),
11882            ),
11883            TypeVariant::LiquidityPoolEntryConstantProduct => Box::new(
11884                ReadXdrIter::<_, LiquidityPoolEntryConstantProduct>::new(dec, r.limits.clone())
11885                    .map(|r| r.map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t)))),
11886            ),
11887            TypeVariant::ContractDataDurability => Box::new(
11888                ReadXdrIter::<_, ContractDataDurability>::new(dec, r.limits.clone())
11889                    .map(|r| r.map(|t| Self::ContractDataDurability(Box::new(t)))),
11890            ),
11891            TypeVariant::ContractDataEntry => Box::new(
11892                ReadXdrIter::<_, ContractDataEntry>::new(dec, r.limits.clone())
11893                    .map(|r| r.map(|t| Self::ContractDataEntry(Box::new(t)))),
11894            ),
11895            TypeVariant::ContractCodeCostInputs => Box::new(
11896                ReadXdrIter::<_, ContractCodeCostInputs>::new(dec, r.limits.clone())
11897                    .map(|r| r.map(|t| Self::ContractCodeCostInputs(Box::new(t)))),
11898            ),
11899            TypeVariant::ContractCodeEntry => Box::new(
11900                ReadXdrIter::<_, ContractCodeEntry>::new(dec, r.limits.clone())
11901                    .map(|r| r.map(|t| Self::ContractCodeEntry(Box::new(t)))),
11902            ),
11903            TypeVariant::ContractCodeEntryExt => Box::new(
11904                ReadXdrIter::<_, ContractCodeEntryExt>::new(dec, r.limits.clone())
11905                    .map(|r| r.map(|t| Self::ContractCodeEntryExt(Box::new(t)))),
11906            ),
11907            TypeVariant::ContractCodeEntryV1 => Box::new(
11908                ReadXdrIter::<_, ContractCodeEntryV1>::new(dec, r.limits.clone())
11909                    .map(|r| r.map(|t| Self::ContractCodeEntryV1(Box::new(t)))),
11910            ),
11911            TypeVariant::TtlEntry => Box::new(
11912                ReadXdrIter::<_, TtlEntry>::new(dec, r.limits.clone())
11913                    .map(|r| r.map(|t| Self::TtlEntry(Box::new(t)))),
11914            ),
11915            TypeVariant::LedgerEntryExtensionV1 => Box::new(
11916                ReadXdrIter::<_, LedgerEntryExtensionV1>::new(dec, r.limits.clone())
11917                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1(Box::new(t)))),
11918            ),
11919            TypeVariant::LedgerEntryExtensionV1Ext => Box::new(
11920                ReadXdrIter::<_, LedgerEntryExtensionV1Ext>::new(dec, r.limits.clone())
11921                    .map(|r| r.map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t)))),
11922            ),
11923            TypeVariant::LedgerEntry => Box::new(
11924                ReadXdrIter::<_, LedgerEntry>::new(dec, r.limits.clone())
11925                    .map(|r| r.map(|t| Self::LedgerEntry(Box::new(t)))),
11926            ),
11927            TypeVariant::LedgerEntryData => Box::new(
11928                ReadXdrIter::<_, LedgerEntryData>::new(dec, r.limits.clone())
11929                    .map(|r| r.map(|t| Self::LedgerEntryData(Box::new(t)))),
11930            ),
11931            TypeVariant::LedgerEntryExt => Box::new(
11932                ReadXdrIter::<_, LedgerEntryExt>::new(dec, r.limits.clone())
11933                    .map(|r| r.map(|t| Self::LedgerEntryExt(Box::new(t)))),
11934            ),
11935            TypeVariant::LedgerKey => Box::new(
11936                ReadXdrIter::<_, LedgerKey>::new(dec, r.limits.clone())
11937                    .map(|r| r.map(|t| Self::LedgerKey(Box::new(t)))),
11938            ),
11939            TypeVariant::LedgerKeyAccount => Box::new(
11940                ReadXdrIter::<_, LedgerKeyAccount>::new(dec, r.limits.clone())
11941                    .map(|r| r.map(|t| Self::LedgerKeyAccount(Box::new(t)))),
11942            ),
11943            TypeVariant::LedgerKeyTrustLine => Box::new(
11944                ReadXdrIter::<_, LedgerKeyTrustLine>::new(dec, r.limits.clone())
11945                    .map(|r| r.map(|t| Self::LedgerKeyTrustLine(Box::new(t)))),
11946            ),
11947            TypeVariant::LedgerKeyOffer => Box::new(
11948                ReadXdrIter::<_, LedgerKeyOffer>::new(dec, r.limits.clone())
11949                    .map(|r| r.map(|t| Self::LedgerKeyOffer(Box::new(t)))),
11950            ),
11951            TypeVariant::LedgerKeyData => Box::new(
11952                ReadXdrIter::<_, LedgerKeyData>::new(dec, r.limits.clone())
11953                    .map(|r| r.map(|t| Self::LedgerKeyData(Box::new(t)))),
11954            ),
11955            TypeVariant::LedgerKeyClaimableBalance => Box::new(
11956                ReadXdrIter::<_, LedgerKeyClaimableBalance>::new(dec, r.limits.clone())
11957                    .map(|r| r.map(|t| Self::LedgerKeyClaimableBalance(Box::new(t)))),
11958            ),
11959            TypeVariant::LedgerKeyLiquidityPool => Box::new(
11960                ReadXdrIter::<_, LedgerKeyLiquidityPool>::new(dec, r.limits.clone())
11961                    .map(|r| r.map(|t| Self::LedgerKeyLiquidityPool(Box::new(t)))),
11962            ),
11963            TypeVariant::LedgerKeyContractData => Box::new(
11964                ReadXdrIter::<_, LedgerKeyContractData>::new(dec, r.limits.clone())
11965                    .map(|r| r.map(|t| Self::LedgerKeyContractData(Box::new(t)))),
11966            ),
11967            TypeVariant::LedgerKeyContractCode => Box::new(
11968                ReadXdrIter::<_, LedgerKeyContractCode>::new(dec, r.limits.clone())
11969                    .map(|r| r.map(|t| Self::LedgerKeyContractCode(Box::new(t)))),
11970            ),
11971            TypeVariant::LedgerKeyConfigSetting => Box::new(
11972                ReadXdrIter::<_, LedgerKeyConfigSetting>::new(dec, r.limits.clone())
11973                    .map(|r| r.map(|t| Self::LedgerKeyConfigSetting(Box::new(t)))),
11974            ),
11975            TypeVariant::LedgerKeyTtl => Box::new(
11976                ReadXdrIter::<_, LedgerKeyTtl>::new(dec, r.limits.clone())
11977                    .map(|r| r.map(|t| Self::LedgerKeyTtl(Box::new(t)))),
11978            ),
11979            TypeVariant::EnvelopeType => Box::new(
11980                ReadXdrIter::<_, EnvelopeType>::new(dec, r.limits.clone())
11981                    .map(|r| r.map(|t| Self::EnvelopeType(Box::new(t)))),
11982            ),
11983            TypeVariant::BucketListType => Box::new(
11984                ReadXdrIter::<_, BucketListType>::new(dec, r.limits.clone())
11985                    .map(|r| r.map(|t| Self::BucketListType(Box::new(t)))),
11986            ),
11987            TypeVariant::BucketEntryType => Box::new(
11988                ReadXdrIter::<_, BucketEntryType>::new(dec, r.limits.clone())
11989                    .map(|r| r.map(|t| Self::BucketEntryType(Box::new(t)))),
11990            ),
11991            TypeVariant::HotArchiveBucketEntryType => Box::new(
11992                ReadXdrIter::<_, HotArchiveBucketEntryType>::new(dec, r.limits.clone())
11993                    .map(|r| r.map(|t| Self::HotArchiveBucketEntryType(Box::new(t)))),
11994            ),
11995            TypeVariant::BucketMetadata => Box::new(
11996                ReadXdrIter::<_, BucketMetadata>::new(dec, r.limits.clone())
11997                    .map(|r| r.map(|t| Self::BucketMetadata(Box::new(t)))),
11998            ),
11999            TypeVariant::BucketMetadataExt => Box::new(
12000                ReadXdrIter::<_, BucketMetadataExt>::new(dec, r.limits.clone())
12001                    .map(|r| r.map(|t| Self::BucketMetadataExt(Box::new(t)))),
12002            ),
12003            TypeVariant::BucketEntry => Box::new(
12004                ReadXdrIter::<_, BucketEntry>::new(dec, r.limits.clone())
12005                    .map(|r| r.map(|t| Self::BucketEntry(Box::new(t)))),
12006            ),
12007            TypeVariant::HotArchiveBucketEntry => Box::new(
12008                ReadXdrIter::<_, HotArchiveBucketEntry>::new(dec, r.limits.clone())
12009                    .map(|r| r.map(|t| Self::HotArchiveBucketEntry(Box::new(t)))),
12010            ),
12011            TypeVariant::UpgradeType => Box::new(
12012                ReadXdrIter::<_, UpgradeType>::new(dec, r.limits.clone())
12013                    .map(|r| r.map(|t| Self::UpgradeType(Box::new(t)))),
12014            ),
12015            TypeVariant::StellarValueType => Box::new(
12016                ReadXdrIter::<_, StellarValueType>::new(dec, r.limits.clone())
12017                    .map(|r| r.map(|t| Self::StellarValueType(Box::new(t)))),
12018            ),
12019            TypeVariant::LedgerCloseValueSignature => Box::new(
12020                ReadXdrIter::<_, LedgerCloseValueSignature>::new(dec, r.limits.clone())
12021                    .map(|r| r.map(|t| Self::LedgerCloseValueSignature(Box::new(t)))),
12022            ),
12023            TypeVariant::StellarValue => Box::new(
12024                ReadXdrIter::<_, StellarValue>::new(dec, r.limits.clone())
12025                    .map(|r| r.map(|t| Self::StellarValue(Box::new(t)))),
12026            ),
12027            TypeVariant::StellarValueExt => Box::new(
12028                ReadXdrIter::<_, StellarValueExt>::new(dec, r.limits.clone())
12029                    .map(|r| r.map(|t| Self::StellarValueExt(Box::new(t)))),
12030            ),
12031            TypeVariant::StellarValueProposedValue => Box::new(
12032                ReadXdrIter::<_, StellarValueProposedValue>::new(dec, r.limits.clone())
12033                    .map(|r| r.map(|t| Self::StellarValueProposedValue(Box::new(t)))),
12034            ),
12035            TypeVariant::LedgerHeaderFlags => Box::new(
12036                ReadXdrIter::<_, LedgerHeaderFlags>::new(dec, r.limits.clone())
12037                    .map(|r| r.map(|t| Self::LedgerHeaderFlags(Box::new(t)))),
12038            ),
12039            TypeVariant::LedgerHeaderExtensionV1 => Box::new(
12040                ReadXdrIter::<_, LedgerHeaderExtensionV1>::new(dec, r.limits.clone())
12041                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1(Box::new(t)))),
12042            ),
12043            TypeVariant::LedgerHeaderExtensionV1Ext => Box::new(
12044                ReadXdrIter::<_, LedgerHeaderExtensionV1Ext>::new(dec, r.limits.clone())
12045                    .map(|r| r.map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t)))),
12046            ),
12047            TypeVariant::LedgerHeader => Box::new(
12048                ReadXdrIter::<_, LedgerHeader>::new(dec, r.limits.clone())
12049                    .map(|r| r.map(|t| Self::LedgerHeader(Box::new(t)))),
12050            ),
12051            TypeVariant::LedgerHeaderExt => Box::new(
12052                ReadXdrIter::<_, LedgerHeaderExt>::new(dec, r.limits.clone())
12053                    .map(|r| r.map(|t| Self::LedgerHeaderExt(Box::new(t)))),
12054            ),
12055            TypeVariant::LedgerUpgradeType => Box::new(
12056                ReadXdrIter::<_, LedgerUpgradeType>::new(dec, r.limits.clone())
12057                    .map(|r| r.map(|t| Self::LedgerUpgradeType(Box::new(t)))),
12058            ),
12059            TypeVariant::ConfigUpgradeSetKey => Box::new(
12060                ReadXdrIter::<_, ConfigUpgradeSetKey>::new(dec, r.limits.clone())
12061                    .map(|r| r.map(|t| Self::ConfigUpgradeSetKey(Box::new(t)))),
12062            ),
12063            TypeVariant::LedgerUpgrade => Box::new(
12064                ReadXdrIter::<_, LedgerUpgrade>::new(dec, r.limits.clone())
12065                    .map(|r| r.map(|t| Self::LedgerUpgrade(Box::new(t)))),
12066            ),
12067            TypeVariant::ConfigUpgradeSet => Box::new(
12068                ReadXdrIter::<_, ConfigUpgradeSet>::new(dec, r.limits.clone())
12069                    .map(|r| r.map(|t| Self::ConfigUpgradeSet(Box::new(t)))),
12070            ),
12071            TypeVariant::TxSetComponentType => Box::new(
12072                ReadXdrIter::<_, TxSetComponentType>::new(dec, r.limits.clone())
12073                    .map(|r| r.map(|t| Self::TxSetComponentType(Box::new(t)))),
12074            ),
12075            TypeVariant::DependentTxCluster => Box::new(
12076                ReadXdrIter::<_, DependentTxCluster>::new(dec, r.limits.clone())
12077                    .map(|r| r.map(|t| Self::DependentTxCluster(Box::new(t)))),
12078            ),
12079            TypeVariant::ParallelTxExecutionStage => Box::new(
12080                ReadXdrIter::<_, ParallelTxExecutionStage>::new(dec, r.limits.clone())
12081                    .map(|r| r.map(|t| Self::ParallelTxExecutionStage(Box::new(t)))),
12082            ),
12083            TypeVariant::ParallelTxsComponent => Box::new(
12084                ReadXdrIter::<_, ParallelTxsComponent>::new(dec, r.limits.clone())
12085                    .map(|r| r.map(|t| Self::ParallelTxsComponent(Box::new(t)))),
12086            ),
12087            TypeVariant::TxSetComponent => Box::new(
12088                ReadXdrIter::<_, TxSetComponent>::new(dec, r.limits.clone())
12089                    .map(|r| r.map(|t| Self::TxSetComponent(Box::new(t)))),
12090            ),
12091            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Box::new(
12092                ReadXdrIter::<_, TxSetComponentTxsMaybeDiscountedFee>::new(dec, r.limits.clone())
12093                    .map(|r| r.map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t)))),
12094            ),
12095            TypeVariant::TransactionPhase => Box::new(
12096                ReadXdrIter::<_, TransactionPhase>::new(dec, r.limits.clone())
12097                    .map(|r| r.map(|t| Self::TransactionPhase(Box::new(t)))),
12098            ),
12099            TypeVariant::TransactionSet => Box::new(
12100                ReadXdrIter::<_, TransactionSet>::new(dec, r.limits.clone())
12101                    .map(|r| r.map(|t| Self::TransactionSet(Box::new(t)))),
12102            ),
12103            TypeVariant::TransactionSetV1 => Box::new(
12104                ReadXdrIter::<_, TransactionSetV1>::new(dec, r.limits.clone())
12105                    .map(|r| r.map(|t| Self::TransactionSetV1(Box::new(t)))),
12106            ),
12107            TypeVariant::GeneralizedTransactionSet => Box::new(
12108                ReadXdrIter::<_, GeneralizedTransactionSet>::new(dec, r.limits.clone())
12109                    .map(|r| r.map(|t| Self::GeneralizedTransactionSet(Box::new(t)))),
12110            ),
12111            TypeVariant::TransactionResultPair => Box::new(
12112                ReadXdrIter::<_, TransactionResultPair>::new(dec, r.limits.clone())
12113                    .map(|r| r.map(|t| Self::TransactionResultPair(Box::new(t)))),
12114            ),
12115            TypeVariant::TransactionResultSet => Box::new(
12116                ReadXdrIter::<_, TransactionResultSet>::new(dec, r.limits.clone())
12117                    .map(|r| r.map(|t| Self::TransactionResultSet(Box::new(t)))),
12118            ),
12119            TypeVariant::TransactionHistoryEntry => Box::new(
12120                ReadXdrIter::<_, TransactionHistoryEntry>::new(dec, r.limits.clone())
12121                    .map(|r| r.map(|t| Self::TransactionHistoryEntry(Box::new(t)))),
12122            ),
12123            TypeVariant::TransactionHistoryEntryExt => Box::new(
12124                ReadXdrIter::<_, TransactionHistoryEntryExt>::new(dec, r.limits.clone())
12125                    .map(|r| r.map(|t| Self::TransactionHistoryEntryExt(Box::new(t)))),
12126            ),
12127            TypeVariant::TransactionHistoryResultEntry => Box::new(
12128                ReadXdrIter::<_, TransactionHistoryResultEntry>::new(dec, r.limits.clone())
12129                    .map(|r| r.map(|t| Self::TransactionHistoryResultEntry(Box::new(t)))),
12130            ),
12131            TypeVariant::TransactionHistoryResultEntryExt => Box::new(
12132                ReadXdrIter::<_, TransactionHistoryResultEntryExt>::new(dec, r.limits.clone())
12133                    .map(|r| r.map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t)))),
12134            ),
12135            TypeVariant::LedgerHeaderHistoryEntry => Box::new(
12136                ReadXdrIter::<_, LedgerHeaderHistoryEntry>::new(dec, r.limits.clone())
12137                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t)))),
12138            ),
12139            TypeVariant::LedgerHeaderHistoryEntryExt => Box::new(
12140                ReadXdrIter::<_, LedgerHeaderHistoryEntryExt>::new(dec, r.limits.clone())
12141                    .map(|r| r.map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t)))),
12142            ),
12143            TypeVariant::LedgerScpMessages => Box::new(
12144                ReadXdrIter::<_, LedgerScpMessages>::new(dec, r.limits.clone())
12145                    .map(|r| r.map(|t| Self::LedgerScpMessages(Box::new(t)))),
12146            ),
12147            TypeVariant::ScpHistoryEntryV0 => Box::new(
12148                ReadXdrIter::<_, ScpHistoryEntryV0>::new(dec, r.limits.clone())
12149                    .map(|r| r.map(|t| Self::ScpHistoryEntryV0(Box::new(t)))),
12150            ),
12151            TypeVariant::ScpHistoryEntry => Box::new(
12152                ReadXdrIter::<_, ScpHistoryEntry>::new(dec, r.limits.clone())
12153                    .map(|r| r.map(|t| Self::ScpHistoryEntry(Box::new(t)))),
12154            ),
12155            TypeVariant::LedgerEntryChangeType => Box::new(
12156                ReadXdrIter::<_, LedgerEntryChangeType>::new(dec, r.limits.clone())
12157                    .map(|r| r.map(|t| Self::LedgerEntryChangeType(Box::new(t)))),
12158            ),
12159            TypeVariant::LedgerEntryChange => Box::new(
12160                ReadXdrIter::<_, LedgerEntryChange>::new(dec, r.limits.clone())
12161                    .map(|r| r.map(|t| Self::LedgerEntryChange(Box::new(t)))),
12162            ),
12163            TypeVariant::LedgerEntryChanges => Box::new(
12164                ReadXdrIter::<_, LedgerEntryChanges>::new(dec, r.limits.clone())
12165                    .map(|r| r.map(|t| Self::LedgerEntryChanges(Box::new(t)))),
12166            ),
12167            TypeVariant::OperationMeta => Box::new(
12168                ReadXdrIter::<_, OperationMeta>::new(dec, r.limits.clone())
12169                    .map(|r| r.map(|t| Self::OperationMeta(Box::new(t)))),
12170            ),
12171            TypeVariant::TransactionMetaV1 => Box::new(
12172                ReadXdrIter::<_, TransactionMetaV1>::new(dec, r.limits.clone())
12173                    .map(|r| r.map(|t| Self::TransactionMetaV1(Box::new(t)))),
12174            ),
12175            TypeVariant::TransactionMetaV2 => Box::new(
12176                ReadXdrIter::<_, TransactionMetaV2>::new(dec, r.limits.clone())
12177                    .map(|r| r.map(|t| Self::TransactionMetaV2(Box::new(t)))),
12178            ),
12179            TypeVariant::ContractEventType => Box::new(
12180                ReadXdrIter::<_, ContractEventType>::new(dec, r.limits.clone())
12181                    .map(|r| r.map(|t| Self::ContractEventType(Box::new(t)))),
12182            ),
12183            TypeVariant::ContractEvent => Box::new(
12184                ReadXdrIter::<_, ContractEvent>::new(dec, r.limits.clone())
12185                    .map(|r| r.map(|t| Self::ContractEvent(Box::new(t)))),
12186            ),
12187            TypeVariant::ContractEventBody => Box::new(
12188                ReadXdrIter::<_, ContractEventBody>::new(dec, r.limits.clone())
12189                    .map(|r| r.map(|t| Self::ContractEventBody(Box::new(t)))),
12190            ),
12191            TypeVariant::ContractEventV0 => Box::new(
12192                ReadXdrIter::<_, ContractEventV0>::new(dec, r.limits.clone())
12193                    .map(|r| r.map(|t| Self::ContractEventV0(Box::new(t)))),
12194            ),
12195            TypeVariant::DiagnosticEvent => Box::new(
12196                ReadXdrIter::<_, DiagnosticEvent>::new(dec, r.limits.clone())
12197                    .map(|r| r.map(|t| Self::DiagnosticEvent(Box::new(t)))),
12198            ),
12199            TypeVariant::SorobanTransactionMetaExtV1 => Box::new(
12200                ReadXdrIter::<_, SorobanTransactionMetaExtV1>::new(dec, r.limits.clone())
12201                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t)))),
12202            ),
12203            TypeVariant::SorobanTransactionMetaExt => Box::new(
12204                ReadXdrIter::<_, SorobanTransactionMetaExt>::new(dec, r.limits.clone())
12205                    .map(|r| r.map(|t| Self::SorobanTransactionMetaExt(Box::new(t)))),
12206            ),
12207            TypeVariant::SorobanTransactionMeta => Box::new(
12208                ReadXdrIter::<_, SorobanTransactionMeta>::new(dec, r.limits.clone())
12209                    .map(|r| r.map(|t| Self::SorobanTransactionMeta(Box::new(t)))),
12210            ),
12211            TypeVariant::TransactionMetaV3 => Box::new(
12212                ReadXdrIter::<_, TransactionMetaV3>::new(dec, r.limits.clone())
12213                    .map(|r| r.map(|t| Self::TransactionMetaV3(Box::new(t)))),
12214            ),
12215            TypeVariant::OperationMetaV2 => Box::new(
12216                ReadXdrIter::<_, OperationMetaV2>::new(dec, r.limits.clone())
12217                    .map(|r| r.map(|t| Self::OperationMetaV2(Box::new(t)))),
12218            ),
12219            TypeVariant::SorobanTransactionMetaV2 => Box::new(
12220                ReadXdrIter::<_, SorobanTransactionMetaV2>::new(dec, r.limits.clone())
12221                    .map(|r| r.map(|t| Self::SorobanTransactionMetaV2(Box::new(t)))),
12222            ),
12223            TypeVariant::TransactionEventStage => Box::new(
12224                ReadXdrIter::<_, TransactionEventStage>::new(dec, r.limits.clone())
12225                    .map(|r| r.map(|t| Self::TransactionEventStage(Box::new(t)))),
12226            ),
12227            TypeVariant::TransactionEvent => Box::new(
12228                ReadXdrIter::<_, TransactionEvent>::new(dec, r.limits.clone())
12229                    .map(|r| r.map(|t| Self::TransactionEvent(Box::new(t)))),
12230            ),
12231            TypeVariant::TransactionMetaV4 => Box::new(
12232                ReadXdrIter::<_, TransactionMetaV4>::new(dec, r.limits.clone())
12233                    .map(|r| r.map(|t| Self::TransactionMetaV4(Box::new(t)))),
12234            ),
12235            TypeVariant::InvokeHostFunctionSuccessPreImage => Box::new(
12236                ReadXdrIter::<_, InvokeHostFunctionSuccessPreImage>::new(dec, r.limits.clone())
12237                    .map(|r| r.map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t)))),
12238            ),
12239            TypeVariant::TransactionMeta => Box::new(
12240                ReadXdrIter::<_, TransactionMeta>::new(dec, r.limits.clone())
12241                    .map(|r| r.map(|t| Self::TransactionMeta(Box::new(t)))),
12242            ),
12243            TypeVariant::TransactionResultMeta => Box::new(
12244                ReadXdrIter::<_, TransactionResultMeta>::new(dec, r.limits.clone())
12245                    .map(|r| r.map(|t| Self::TransactionResultMeta(Box::new(t)))),
12246            ),
12247            TypeVariant::TransactionResultMetaV1 => Box::new(
12248                ReadXdrIter::<_, TransactionResultMetaV1>::new(dec, r.limits.clone())
12249                    .map(|r| r.map(|t| Self::TransactionResultMetaV1(Box::new(t)))),
12250            ),
12251            TypeVariant::UpgradeEntryMeta => Box::new(
12252                ReadXdrIter::<_, UpgradeEntryMeta>::new(dec, r.limits.clone())
12253                    .map(|r| r.map(|t| Self::UpgradeEntryMeta(Box::new(t)))),
12254            ),
12255            TypeVariant::LedgerCloseMetaV0 => Box::new(
12256                ReadXdrIter::<_, LedgerCloseMetaV0>::new(dec, r.limits.clone())
12257                    .map(|r| r.map(|t| Self::LedgerCloseMetaV0(Box::new(t)))),
12258            ),
12259            TypeVariant::LedgerCloseMetaExtV1 => Box::new(
12260                ReadXdrIter::<_, LedgerCloseMetaExtV1>::new(dec, r.limits.clone())
12261                    .map(|r| r.map(|t| Self::LedgerCloseMetaExtV1(Box::new(t)))),
12262            ),
12263            TypeVariant::LedgerCloseMetaExt => Box::new(
12264                ReadXdrIter::<_, LedgerCloseMetaExt>::new(dec, r.limits.clone())
12265                    .map(|r| r.map(|t| Self::LedgerCloseMetaExt(Box::new(t)))),
12266            ),
12267            TypeVariant::LedgerCloseMetaV1 => Box::new(
12268                ReadXdrIter::<_, LedgerCloseMetaV1>::new(dec, r.limits.clone())
12269                    .map(|r| r.map(|t| Self::LedgerCloseMetaV1(Box::new(t)))),
12270            ),
12271            TypeVariant::LedgerCloseMetaV2 => Box::new(
12272                ReadXdrIter::<_, LedgerCloseMetaV2>::new(dec, r.limits.clone())
12273                    .map(|r| r.map(|t| Self::LedgerCloseMetaV2(Box::new(t)))),
12274            ),
12275            TypeVariant::LedgerCloseMeta => Box::new(
12276                ReadXdrIter::<_, LedgerCloseMeta>::new(dec, r.limits.clone())
12277                    .map(|r| r.map(|t| Self::LedgerCloseMeta(Box::new(t)))),
12278            ),
12279            TypeVariant::ErrorCode => Box::new(
12280                ReadXdrIter::<_, ErrorCode>::new(dec, r.limits.clone())
12281                    .map(|r| r.map(|t| Self::ErrorCode(Box::new(t)))),
12282            ),
12283            TypeVariant::SError => Box::new(
12284                ReadXdrIter::<_, SError>::new(dec, r.limits.clone())
12285                    .map(|r| r.map(|t| Self::SError(Box::new(t)))),
12286            ),
12287            TypeVariant::SendMore => Box::new(
12288                ReadXdrIter::<_, SendMore>::new(dec, r.limits.clone())
12289                    .map(|r| r.map(|t| Self::SendMore(Box::new(t)))),
12290            ),
12291            TypeVariant::SendMoreExtended => Box::new(
12292                ReadXdrIter::<_, SendMoreExtended>::new(dec, r.limits.clone())
12293                    .map(|r| r.map(|t| Self::SendMoreExtended(Box::new(t)))),
12294            ),
12295            TypeVariant::AuthCert => Box::new(
12296                ReadXdrIter::<_, AuthCert>::new(dec, r.limits.clone())
12297                    .map(|r| r.map(|t| Self::AuthCert(Box::new(t)))),
12298            ),
12299            TypeVariant::Hello => Box::new(
12300                ReadXdrIter::<_, Hello>::new(dec, r.limits.clone())
12301                    .map(|r| r.map(|t| Self::Hello(Box::new(t)))),
12302            ),
12303            TypeVariant::Auth => Box::new(
12304                ReadXdrIter::<_, Auth>::new(dec, r.limits.clone())
12305                    .map(|r| r.map(|t| Self::Auth(Box::new(t)))),
12306            ),
12307            TypeVariant::IpAddrType => Box::new(
12308                ReadXdrIter::<_, IpAddrType>::new(dec, r.limits.clone())
12309                    .map(|r| r.map(|t| Self::IpAddrType(Box::new(t)))),
12310            ),
12311            TypeVariant::PeerAddress => Box::new(
12312                ReadXdrIter::<_, PeerAddress>::new(dec, r.limits.clone())
12313                    .map(|r| r.map(|t| Self::PeerAddress(Box::new(t)))),
12314            ),
12315            TypeVariant::PeerAddressIp => Box::new(
12316                ReadXdrIter::<_, PeerAddressIp>::new(dec, r.limits.clone())
12317                    .map(|r| r.map(|t| Self::PeerAddressIp(Box::new(t)))),
12318            ),
12319            TypeVariant::MessageType => Box::new(
12320                ReadXdrIter::<_, MessageType>::new(dec, r.limits.clone())
12321                    .map(|r| r.map(|t| Self::MessageType(Box::new(t)))),
12322            ),
12323            TypeVariant::DontHave => Box::new(
12324                ReadXdrIter::<_, DontHave>::new(dec, r.limits.clone())
12325                    .map(|r| r.map(|t| Self::DontHave(Box::new(t)))),
12326            ),
12327            TypeVariant::SurveyMessageCommandType => Box::new(
12328                ReadXdrIter::<_, SurveyMessageCommandType>::new(dec, r.limits.clone())
12329                    .map(|r| r.map(|t| Self::SurveyMessageCommandType(Box::new(t)))),
12330            ),
12331            TypeVariant::SurveyMessageResponseType => Box::new(
12332                ReadXdrIter::<_, SurveyMessageResponseType>::new(dec, r.limits.clone())
12333                    .map(|r| r.map(|t| Self::SurveyMessageResponseType(Box::new(t)))),
12334            ),
12335            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Box::new(
12336                ReadXdrIter::<_, TimeSlicedSurveyStartCollectingMessage>::new(
12337                    dec,
12338                    r.limits.clone(),
12339                )
12340                .map(|r| r.map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t)))),
12341            ),
12342            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => Box::new(
12343                ReadXdrIter::<_, SignedTimeSlicedSurveyStartCollectingMessage>::new(
12344                    dec,
12345                    r.limits.clone(),
12346                )
12347                .map(|r| {
12348                    r.map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t)))
12349                }),
12350            ),
12351            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Box::new(
12352                ReadXdrIter::<_, TimeSlicedSurveyStopCollectingMessage>::new(dec, r.limits.clone())
12353                    .map(|r| r.map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
12354            ),
12355            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => Box::new(
12356                ReadXdrIter::<_, SignedTimeSlicedSurveyStopCollectingMessage>::new(
12357                    dec,
12358                    r.limits.clone(),
12359                )
12360                .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t)))),
12361            ),
12362            TypeVariant::SurveyRequestMessage => Box::new(
12363                ReadXdrIter::<_, SurveyRequestMessage>::new(dec, r.limits.clone())
12364                    .map(|r| r.map(|t| Self::SurveyRequestMessage(Box::new(t)))),
12365            ),
12366            TypeVariant::TimeSlicedSurveyRequestMessage => Box::new(
12367                ReadXdrIter::<_, TimeSlicedSurveyRequestMessage>::new(dec, r.limits.clone())
12368                    .map(|r| r.map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t)))),
12369            ),
12370            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Box::new(
12371                ReadXdrIter::<_, SignedTimeSlicedSurveyRequestMessage>::new(dec, r.limits.clone())
12372                    .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t)))),
12373            ),
12374            TypeVariant::EncryptedBody => Box::new(
12375                ReadXdrIter::<_, EncryptedBody>::new(dec, r.limits.clone())
12376                    .map(|r| r.map(|t| Self::EncryptedBody(Box::new(t)))),
12377            ),
12378            TypeVariant::SurveyResponseMessage => Box::new(
12379                ReadXdrIter::<_, SurveyResponseMessage>::new(dec, r.limits.clone())
12380                    .map(|r| r.map(|t| Self::SurveyResponseMessage(Box::new(t)))),
12381            ),
12382            TypeVariant::TimeSlicedSurveyResponseMessage => Box::new(
12383                ReadXdrIter::<_, TimeSlicedSurveyResponseMessage>::new(dec, r.limits.clone())
12384                    .map(|r| r.map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t)))),
12385            ),
12386            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Box::new(
12387                ReadXdrIter::<_, SignedTimeSlicedSurveyResponseMessage>::new(dec, r.limits.clone())
12388                    .map(|r| r.map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t)))),
12389            ),
12390            TypeVariant::PeerStats => Box::new(
12391                ReadXdrIter::<_, PeerStats>::new(dec, r.limits.clone())
12392                    .map(|r| r.map(|t| Self::PeerStats(Box::new(t)))),
12393            ),
12394            TypeVariant::TimeSlicedNodeData => Box::new(
12395                ReadXdrIter::<_, TimeSlicedNodeData>::new(dec, r.limits.clone())
12396                    .map(|r| r.map(|t| Self::TimeSlicedNodeData(Box::new(t)))),
12397            ),
12398            TypeVariant::TimeSlicedPeerData => Box::new(
12399                ReadXdrIter::<_, TimeSlicedPeerData>::new(dec, r.limits.clone())
12400                    .map(|r| r.map(|t| Self::TimeSlicedPeerData(Box::new(t)))),
12401            ),
12402            TypeVariant::TimeSlicedPeerDataList => Box::new(
12403                ReadXdrIter::<_, TimeSlicedPeerDataList>::new(dec, r.limits.clone())
12404                    .map(|r| r.map(|t| Self::TimeSlicedPeerDataList(Box::new(t)))),
12405            ),
12406            TypeVariant::TopologyResponseBodyV2 => Box::new(
12407                ReadXdrIter::<_, TopologyResponseBodyV2>::new(dec, r.limits.clone())
12408                    .map(|r| r.map(|t| Self::TopologyResponseBodyV2(Box::new(t)))),
12409            ),
12410            TypeVariant::SurveyResponseBody => Box::new(
12411                ReadXdrIter::<_, SurveyResponseBody>::new(dec, r.limits.clone())
12412                    .map(|r| r.map(|t| Self::SurveyResponseBody(Box::new(t)))),
12413            ),
12414            TypeVariant::TxAdvertVector => Box::new(
12415                ReadXdrIter::<_, TxAdvertVector>::new(dec, r.limits.clone())
12416                    .map(|r| r.map(|t| Self::TxAdvertVector(Box::new(t)))),
12417            ),
12418            TypeVariant::FloodAdvert => Box::new(
12419                ReadXdrIter::<_, FloodAdvert>::new(dec, r.limits.clone())
12420                    .map(|r| r.map(|t| Self::FloodAdvert(Box::new(t)))),
12421            ),
12422            TypeVariant::TxDemandVector => Box::new(
12423                ReadXdrIter::<_, TxDemandVector>::new(dec, r.limits.clone())
12424                    .map(|r| r.map(|t| Self::TxDemandVector(Box::new(t)))),
12425            ),
12426            TypeVariant::FloodDemand => Box::new(
12427                ReadXdrIter::<_, FloodDemand>::new(dec, r.limits.clone())
12428                    .map(|r| r.map(|t| Self::FloodDemand(Box::new(t)))),
12429            ),
12430            TypeVariant::StellarMessage => Box::new(
12431                ReadXdrIter::<_, StellarMessage>::new(dec, r.limits.clone())
12432                    .map(|r| r.map(|t| Self::StellarMessage(Box::new(t)))),
12433            ),
12434            TypeVariant::AuthenticatedMessage => Box::new(
12435                ReadXdrIter::<_, AuthenticatedMessage>::new(dec, r.limits.clone())
12436                    .map(|r| r.map(|t| Self::AuthenticatedMessage(Box::new(t)))),
12437            ),
12438            TypeVariant::AuthenticatedMessageV0 => Box::new(
12439                ReadXdrIter::<_, AuthenticatedMessageV0>::new(dec, r.limits.clone())
12440                    .map(|r| r.map(|t| Self::AuthenticatedMessageV0(Box::new(t)))),
12441            ),
12442            TypeVariant::LiquidityPoolParameters => Box::new(
12443                ReadXdrIter::<_, LiquidityPoolParameters>::new(dec, r.limits.clone())
12444                    .map(|r| r.map(|t| Self::LiquidityPoolParameters(Box::new(t)))),
12445            ),
12446            TypeVariant::MuxedAccount => Box::new(
12447                ReadXdrIter::<_, MuxedAccount>::new(dec, r.limits.clone())
12448                    .map(|r| r.map(|t| Self::MuxedAccount(Box::new(t)))),
12449            ),
12450            TypeVariant::MuxedAccountMed25519 => Box::new(
12451                ReadXdrIter::<_, MuxedAccountMed25519>::new(dec, r.limits.clone())
12452                    .map(|r| r.map(|t| Self::MuxedAccountMed25519(Box::new(t)))),
12453            ),
12454            TypeVariant::DecoratedSignature => Box::new(
12455                ReadXdrIter::<_, DecoratedSignature>::new(dec, r.limits.clone())
12456                    .map(|r| r.map(|t| Self::DecoratedSignature(Box::new(t)))),
12457            ),
12458            TypeVariant::OperationType => Box::new(
12459                ReadXdrIter::<_, OperationType>::new(dec, r.limits.clone())
12460                    .map(|r| r.map(|t| Self::OperationType(Box::new(t)))),
12461            ),
12462            TypeVariant::CreateAccountOp => Box::new(
12463                ReadXdrIter::<_, CreateAccountOp>::new(dec, r.limits.clone())
12464                    .map(|r| r.map(|t| Self::CreateAccountOp(Box::new(t)))),
12465            ),
12466            TypeVariant::PaymentOp => Box::new(
12467                ReadXdrIter::<_, PaymentOp>::new(dec, r.limits.clone())
12468                    .map(|r| r.map(|t| Self::PaymentOp(Box::new(t)))),
12469            ),
12470            TypeVariant::PathPaymentStrictReceiveOp => Box::new(
12471                ReadXdrIter::<_, PathPaymentStrictReceiveOp>::new(dec, r.limits.clone())
12472                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t)))),
12473            ),
12474            TypeVariant::PathPaymentStrictSendOp => Box::new(
12475                ReadXdrIter::<_, PathPaymentStrictSendOp>::new(dec, r.limits.clone())
12476                    .map(|r| r.map(|t| Self::PathPaymentStrictSendOp(Box::new(t)))),
12477            ),
12478            TypeVariant::ManageSellOfferOp => Box::new(
12479                ReadXdrIter::<_, ManageSellOfferOp>::new(dec, r.limits.clone())
12480                    .map(|r| r.map(|t| Self::ManageSellOfferOp(Box::new(t)))),
12481            ),
12482            TypeVariant::ManageBuyOfferOp => Box::new(
12483                ReadXdrIter::<_, ManageBuyOfferOp>::new(dec, r.limits.clone())
12484                    .map(|r| r.map(|t| Self::ManageBuyOfferOp(Box::new(t)))),
12485            ),
12486            TypeVariant::CreatePassiveSellOfferOp => Box::new(
12487                ReadXdrIter::<_, CreatePassiveSellOfferOp>::new(dec, r.limits.clone())
12488                    .map(|r| r.map(|t| Self::CreatePassiveSellOfferOp(Box::new(t)))),
12489            ),
12490            TypeVariant::SetOptionsOp => Box::new(
12491                ReadXdrIter::<_, SetOptionsOp>::new(dec, r.limits.clone())
12492                    .map(|r| r.map(|t| Self::SetOptionsOp(Box::new(t)))),
12493            ),
12494            TypeVariant::ChangeTrustAsset => Box::new(
12495                ReadXdrIter::<_, ChangeTrustAsset>::new(dec, r.limits.clone())
12496                    .map(|r| r.map(|t| Self::ChangeTrustAsset(Box::new(t)))),
12497            ),
12498            TypeVariant::ChangeTrustOp => Box::new(
12499                ReadXdrIter::<_, ChangeTrustOp>::new(dec, r.limits.clone())
12500                    .map(|r| r.map(|t| Self::ChangeTrustOp(Box::new(t)))),
12501            ),
12502            TypeVariant::AllowTrustOp => Box::new(
12503                ReadXdrIter::<_, AllowTrustOp>::new(dec, r.limits.clone())
12504                    .map(|r| r.map(|t| Self::AllowTrustOp(Box::new(t)))),
12505            ),
12506            TypeVariant::ManageDataOp => Box::new(
12507                ReadXdrIter::<_, ManageDataOp>::new(dec, r.limits.clone())
12508                    .map(|r| r.map(|t| Self::ManageDataOp(Box::new(t)))),
12509            ),
12510            TypeVariant::BumpSequenceOp => Box::new(
12511                ReadXdrIter::<_, BumpSequenceOp>::new(dec, r.limits.clone())
12512                    .map(|r| r.map(|t| Self::BumpSequenceOp(Box::new(t)))),
12513            ),
12514            TypeVariant::CreateClaimableBalanceOp => Box::new(
12515                ReadXdrIter::<_, CreateClaimableBalanceOp>::new(dec, r.limits.clone())
12516                    .map(|r| r.map(|t| Self::CreateClaimableBalanceOp(Box::new(t)))),
12517            ),
12518            TypeVariant::ClaimClaimableBalanceOp => Box::new(
12519                ReadXdrIter::<_, ClaimClaimableBalanceOp>::new(dec, r.limits.clone())
12520                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceOp(Box::new(t)))),
12521            ),
12522            TypeVariant::BeginSponsoringFutureReservesOp => Box::new(
12523                ReadXdrIter::<_, BeginSponsoringFutureReservesOp>::new(dec, r.limits.clone())
12524                    .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t)))),
12525            ),
12526            TypeVariant::RevokeSponsorshipType => Box::new(
12527                ReadXdrIter::<_, RevokeSponsorshipType>::new(dec, r.limits.clone())
12528                    .map(|r| r.map(|t| Self::RevokeSponsorshipType(Box::new(t)))),
12529            ),
12530            TypeVariant::RevokeSponsorshipOp => Box::new(
12531                ReadXdrIter::<_, RevokeSponsorshipOp>::new(dec, r.limits.clone())
12532                    .map(|r| r.map(|t| Self::RevokeSponsorshipOp(Box::new(t)))),
12533            ),
12534            TypeVariant::RevokeSponsorshipOpSigner => Box::new(
12535                ReadXdrIter::<_, RevokeSponsorshipOpSigner>::new(dec, r.limits.clone())
12536                    .map(|r| r.map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t)))),
12537            ),
12538            TypeVariant::ClawbackOp => Box::new(
12539                ReadXdrIter::<_, ClawbackOp>::new(dec, r.limits.clone())
12540                    .map(|r| r.map(|t| Self::ClawbackOp(Box::new(t)))),
12541            ),
12542            TypeVariant::ClawbackClaimableBalanceOp => Box::new(
12543                ReadXdrIter::<_, ClawbackClaimableBalanceOp>::new(dec, r.limits.clone())
12544                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t)))),
12545            ),
12546            TypeVariant::SetTrustLineFlagsOp => Box::new(
12547                ReadXdrIter::<_, SetTrustLineFlagsOp>::new(dec, r.limits.clone())
12548                    .map(|r| r.map(|t| Self::SetTrustLineFlagsOp(Box::new(t)))),
12549            ),
12550            TypeVariant::LiquidityPoolDepositOp => Box::new(
12551                ReadXdrIter::<_, LiquidityPoolDepositOp>::new(dec, r.limits.clone())
12552                    .map(|r| r.map(|t| Self::LiquidityPoolDepositOp(Box::new(t)))),
12553            ),
12554            TypeVariant::LiquidityPoolWithdrawOp => Box::new(
12555                ReadXdrIter::<_, LiquidityPoolWithdrawOp>::new(dec, r.limits.clone())
12556                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t)))),
12557            ),
12558            TypeVariant::HostFunctionType => Box::new(
12559                ReadXdrIter::<_, HostFunctionType>::new(dec, r.limits.clone())
12560                    .map(|r| r.map(|t| Self::HostFunctionType(Box::new(t)))),
12561            ),
12562            TypeVariant::ContractIdPreimageType => Box::new(
12563                ReadXdrIter::<_, ContractIdPreimageType>::new(dec, r.limits.clone())
12564                    .map(|r| r.map(|t| Self::ContractIdPreimageType(Box::new(t)))),
12565            ),
12566            TypeVariant::ContractIdPreimage => Box::new(
12567                ReadXdrIter::<_, ContractIdPreimage>::new(dec, r.limits.clone())
12568                    .map(|r| r.map(|t| Self::ContractIdPreimage(Box::new(t)))),
12569            ),
12570            TypeVariant::ContractIdPreimageFromAddress => Box::new(
12571                ReadXdrIter::<_, ContractIdPreimageFromAddress>::new(dec, r.limits.clone())
12572                    .map(|r| r.map(|t| Self::ContractIdPreimageFromAddress(Box::new(t)))),
12573            ),
12574            TypeVariant::CreateContractArgs => Box::new(
12575                ReadXdrIter::<_, CreateContractArgs>::new(dec, r.limits.clone())
12576                    .map(|r| r.map(|t| Self::CreateContractArgs(Box::new(t)))),
12577            ),
12578            TypeVariant::CreateContractArgsV2 => Box::new(
12579                ReadXdrIter::<_, CreateContractArgsV2>::new(dec, r.limits.clone())
12580                    .map(|r| r.map(|t| Self::CreateContractArgsV2(Box::new(t)))),
12581            ),
12582            TypeVariant::InvokeContractArgs => Box::new(
12583                ReadXdrIter::<_, InvokeContractArgs>::new(dec, r.limits.clone())
12584                    .map(|r| r.map(|t| Self::InvokeContractArgs(Box::new(t)))),
12585            ),
12586            TypeVariant::HostFunction => Box::new(
12587                ReadXdrIter::<_, HostFunction>::new(dec, r.limits.clone())
12588                    .map(|r| r.map(|t| Self::HostFunction(Box::new(t)))),
12589            ),
12590            TypeVariant::SorobanAuthorizedFunctionType => Box::new(
12591                ReadXdrIter::<_, SorobanAuthorizedFunctionType>::new(dec, r.limits.clone())
12592                    .map(|r| r.map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t)))),
12593            ),
12594            TypeVariant::SorobanAuthorizedFunction => Box::new(
12595                ReadXdrIter::<_, SorobanAuthorizedFunction>::new(dec, r.limits.clone())
12596                    .map(|r| r.map(|t| Self::SorobanAuthorizedFunction(Box::new(t)))),
12597            ),
12598            TypeVariant::SorobanAuthorizedInvocation => Box::new(
12599                ReadXdrIter::<_, SorobanAuthorizedInvocation>::new(dec, r.limits.clone())
12600                    .map(|r| r.map(|t| Self::SorobanAuthorizedInvocation(Box::new(t)))),
12601            ),
12602            TypeVariant::SorobanAddressCredentials => Box::new(
12603                ReadXdrIter::<_, SorobanAddressCredentials>::new(dec, r.limits.clone())
12604                    .map(|r| r.map(|t| Self::SorobanAddressCredentials(Box::new(t)))),
12605            ),
12606            TypeVariant::SorobanDelegateSignature => Box::new(
12607                ReadXdrIter::<_, SorobanDelegateSignature>::new(dec, r.limits.clone())
12608                    .map(|r| r.map(|t| Self::SorobanDelegateSignature(Box::new(t)))),
12609            ),
12610            TypeVariant::SorobanAddressCredentialsWithDelegates => Box::new(
12611                ReadXdrIter::<_, SorobanAddressCredentialsWithDelegates>::new(
12612                    dec,
12613                    r.limits.clone(),
12614                )
12615                .map(|r| r.map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t)))),
12616            ),
12617            TypeVariant::SorobanCredentialsType => Box::new(
12618                ReadXdrIter::<_, SorobanCredentialsType>::new(dec, r.limits.clone())
12619                    .map(|r| r.map(|t| Self::SorobanCredentialsType(Box::new(t)))),
12620            ),
12621            TypeVariant::SorobanCredentials => Box::new(
12622                ReadXdrIter::<_, SorobanCredentials>::new(dec, r.limits.clone())
12623                    .map(|r| r.map(|t| Self::SorobanCredentials(Box::new(t)))),
12624            ),
12625            TypeVariant::SorobanAuthorizationEntry => Box::new(
12626                ReadXdrIter::<_, SorobanAuthorizationEntry>::new(dec, r.limits.clone())
12627                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntry(Box::new(t)))),
12628            ),
12629            TypeVariant::SorobanAuthorizationEntries => Box::new(
12630                ReadXdrIter::<_, SorobanAuthorizationEntries>::new(dec, r.limits.clone())
12631                    .map(|r| r.map(|t| Self::SorobanAuthorizationEntries(Box::new(t)))),
12632            ),
12633            TypeVariant::InvokeHostFunctionOp => Box::new(
12634                ReadXdrIter::<_, InvokeHostFunctionOp>::new(dec, r.limits.clone())
12635                    .map(|r| r.map(|t| Self::InvokeHostFunctionOp(Box::new(t)))),
12636            ),
12637            TypeVariant::ExtendFootprintTtlOp => Box::new(
12638                ReadXdrIter::<_, ExtendFootprintTtlOp>::new(dec, r.limits.clone())
12639                    .map(|r| r.map(|t| Self::ExtendFootprintTtlOp(Box::new(t)))),
12640            ),
12641            TypeVariant::RestoreFootprintOp => Box::new(
12642                ReadXdrIter::<_, RestoreFootprintOp>::new(dec, r.limits.clone())
12643                    .map(|r| r.map(|t| Self::RestoreFootprintOp(Box::new(t)))),
12644            ),
12645            TypeVariant::Operation => Box::new(
12646                ReadXdrIter::<_, Operation>::new(dec, r.limits.clone())
12647                    .map(|r| r.map(|t| Self::Operation(Box::new(t)))),
12648            ),
12649            TypeVariant::OperationBody => Box::new(
12650                ReadXdrIter::<_, OperationBody>::new(dec, r.limits.clone())
12651                    .map(|r| r.map(|t| Self::OperationBody(Box::new(t)))),
12652            ),
12653            TypeVariant::HashIdPreimage => Box::new(
12654                ReadXdrIter::<_, HashIdPreimage>::new(dec, r.limits.clone())
12655                    .map(|r| r.map(|t| Self::HashIdPreimage(Box::new(t)))),
12656            ),
12657            TypeVariant::HashIdPreimageOperationId => Box::new(
12658                ReadXdrIter::<_, HashIdPreimageOperationId>::new(dec, r.limits.clone())
12659                    .map(|r| r.map(|t| Self::HashIdPreimageOperationId(Box::new(t)))),
12660            ),
12661            TypeVariant::HashIdPreimageRevokeId => Box::new(
12662                ReadXdrIter::<_, HashIdPreimageRevokeId>::new(dec, r.limits.clone())
12663                    .map(|r| r.map(|t| Self::HashIdPreimageRevokeId(Box::new(t)))),
12664            ),
12665            TypeVariant::HashIdPreimageContractId => Box::new(
12666                ReadXdrIter::<_, HashIdPreimageContractId>::new(dec, r.limits.clone())
12667                    .map(|r| r.map(|t| Self::HashIdPreimageContractId(Box::new(t)))),
12668            ),
12669            TypeVariant::HashIdPreimageSorobanAuthorization => Box::new(
12670                ReadXdrIter::<_, HashIdPreimageSorobanAuthorization>::new(dec, r.limits.clone())
12671                    .map(|r| r.map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t)))),
12672            ),
12673            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => Box::new(
12674                ReadXdrIter::<_, HashIdPreimageSorobanAuthorizationWithAddress>::new(
12675                    dec,
12676                    r.limits.clone(),
12677                )
12678                .map(|r| {
12679                    r.map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t)))
12680                }),
12681            ),
12682            TypeVariant::MemoType => Box::new(
12683                ReadXdrIter::<_, MemoType>::new(dec, r.limits.clone())
12684                    .map(|r| r.map(|t| Self::MemoType(Box::new(t)))),
12685            ),
12686            TypeVariant::Memo => Box::new(
12687                ReadXdrIter::<_, Memo>::new(dec, r.limits.clone())
12688                    .map(|r| r.map(|t| Self::Memo(Box::new(t)))),
12689            ),
12690            TypeVariant::TimeBounds => Box::new(
12691                ReadXdrIter::<_, TimeBounds>::new(dec, r.limits.clone())
12692                    .map(|r| r.map(|t| Self::TimeBounds(Box::new(t)))),
12693            ),
12694            TypeVariant::LedgerBounds => Box::new(
12695                ReadXdrIter::<_, LedgerBounds>::new(dec, r.limits.clone())
12696                    .map(|r| r.map(|t| Self::LedgerBounds(Box::new(t)))),
12697            ),
12698            TypeVariant::PreconditionsV2 => Box::new(
12699                ReadXdrIter::<_, PreconditionsV2>::new(dec, r.limits.clone())
12700                    .map(|r| r.map(|t| Self::PreconditionsV2(Box::new(t)))),
12701            ),
12702            TypeVariant::PreconditionType => Box::new(
12703                ReadXdrIter::<_, PreconditionType>::new(dec, r.limits.clone())
12704                    .map(|r| r.map(|t| Self::PreconditionType(Box::new(t)))),
12705            ),
12706            TypeVariant::Preconditions => Box::new(
12707                ReadXdrIter::<_, Preconditions>::new(dec, r.limits.clone())
12708                    .map(|r| r.map(|t| Self::Preconditions(Box::new(t)))),
12709            ),
12710            TypeVariant::LedgerFootprint => Box::new(
12711                ReadXdrIter::<_, LedgerFootprint>::new(dec, r.limits.clone())
12712                    .map(|r| r.map(|t| Self::LedgerFootprint(Box::new(t)))),
12713            ),
12714            TypeVariant::SorobanResources => Box::new(
12715                ReadXdrIter::<_, SorobanResources>::new(dec, r.limits.clone())
12716                    .map(|r| r.map(|t| Self::SorobanResources(Box::new(t)))),
12717            ),
12718            TypeVariant::SorobanResourcesExtV0 => Box::new(
12719                ReadXdrIter::<_, SorobanResourcesExtV0>::new(dec, r.limits.clone())
12720                    .map(|r| r.map(|t| Self::SorobanResourcesExtV0(Box::new(t)))),
12721            ),
12722            TypeVariant::SorobanTransactionData => Box::new(
12723                ReadXdrIter::<_, SorobanTransactionData>::new(dec, r.limits.clone())
12724                    .map(|r| r.map(|t| Self::SorobanTransactionData(Box::new(t)))),
12725            ),
12726            TypeVariant::SorobanTransactionDataExt => Box::new(
12727                ReadXdrIter::<_, SorobanTransactionDataExt>::new(dec, r.limits.clone())
12728                    .map(|r| r.map(|t| Self::SorobanTransactionDataExt(Box::new(t)))),
12729            ),
12730            TypeVariant::TransactionV0 => Box::new(
12731                ReadXdrIter::<_, TransactionV0>::new(dec, r.limits.clone())
12732                    .map(|r| r.map(|t| Self::TransactionV0(Box::new(t)))),
12733            ),
12734            TypeVariant::TransactionV0Ext => Box::new(
12735                ReadXdrIter::<_, TransactionV0Ext>::new(dec, r.limits.clone())
12736                    .map(|r| r.map(|t| Self::TransactionV0Ext(Box::new(t)))),
12737            ),
12738            TypeVariant::TransactionV0Envelope => Box::new(
12739                ReadXdrIter::<_, TransactionV0Envelope>::new(dec, r.limits.clone())
12740                    .map(|r| r.map(|t| Self::TransactionV0Envelope(Box::new(t)))),
12741            ),
12742            TypeVariant::Transaction => Box::new(
12743                ReadXdrIter::<_, Transaction>::new(dec, r.limits.clone())
12744                    .map(|r| r.map(|t| Self::Transaction(Box::new(t)))),
12745            ),
12746            TypeVariant::TransactionExt => Box::new(
12747                ReadXdrIter::<_, TransactionExt>::new(dec, r.limits.clone())
12748                    .map(|r| r.map(|t| Self::TransactionExt(Box::new(t)))),
12749            ),
12750            TypeVariant::TransactionV1Envelope => Box::new(
12751                ReadXdrIter::<_, TransactionV1Envelope>::new(dec, r.limits.clone())
12752                    .map(|r| r.map(|t| Self::TransactionV1Envelope(Box::new(t)))),
12753            ),
12754            TypeVariant::FeeBumpTransaction => Box::new(
12755                ReadXdrIter::<_, FeeBumpTransaction>::new(dec, r.limits.clone())
12756                    .map(|r| r.map(|t| Self::FeeBumpTransaction(Box::new(t)))),
12757            ),
12758            TypeVariant::FeeBumpTransactionInnerTx => Box::new(
12759                ReadXdrIter::<_, FeeBumpTransactionInnerTx>::new(dec, r.limits.clone())
12760                    .map(|r| r.map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t)))),
12761            ),
12762            TypeVariant::FeeBumpTransactionExt => Box::new(
12763                ReadXdrIter::<_, FeeBumpTransactionExt>::new(dec, r.limits.clone())
12764                    .map(|r| r.map(|t| Self::FeeBumpTransactionExt(Box::new(t)))),
12765            ),
12766            TypeVariant::FeeBumpTransactionEnvelope => Box::new(
12767                ReadXdrIter::<_, FeeBumpTransactionEnvelope>::new(dec, r.limits.clone())
12768                    .map(|r| r.map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t)))),
12769            ),
12770            TypeVariant::TransactionEnvelope => Box::new(
12771                ReadXdrIter::<_, TransactionEnvelope>::new(dec, r.limits.clone())
12772                    .map(|r| r.map(|t| Self::TransactionEnvelope(Box::new(t)))),
12773            ),
12774            TypeVariant::TransactionSignaturePayload => Box::new(
12775                ReadXdrIter::<_, TransactionSignaturePayload>::new(dec, r.limits.clone())
12776                    .map(|r| r.map(|t| Self::TransactionSignaturePayload(Box::new(t)))),
12777            ),
12778            TypeVariant::TransactionSignaturePayloadTaggedTransaction => Box::new(
12779                ReadXdrIter::<_, TransactionSignaturePayloadTaggedTransaction>::new(
12780                    dec,
12781                    r.limits.clone(),
12782                )
12783                .map(|r| {
12784                    r.map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t)))
12785                }),
12786            ),
12787            TypeVariant::ClaimAtomType => Box::new(
12788                ReadXdrIter::<_, ClaimAtomType>::new(dec, r.limits.clone())
12789                    .map(|r| r.map(|t| Self::ClaimAtomType(Box::new(t)))),
12790            ),
12791            TypeVariant::ClaimOfferAtomV0 => Box::new(
12792                ReadXdrIter::<_, ClaimOfferAtomV0>::new(dec, r.limits.clone())
12793                    .map(|r| r.map(|t| Self::ClaimOfferAtomV0(Box::new(t)))),
12794            ),
12795            TypeVariant::ClaimOfferAtom => Box::new(
12796                ReadXdrIter::<_, ClaimOfferAtom>::new(dec, r.limits.clone())
12797                    .map(|r| r.map(|t| Self::ClaimOfferAtom(Box::new(t)))),
12798            ),
12799            TypeVariant::ClaimLiquidityAtom => Box::new(
12800                ReadXdrIter::<_, ClaimLiquidityAtom>::new(dec, r.limits.clone())
12801                    .map(|r| r.map(|t| Self::ClaimLiquidityAtom(Box::new(t)))),
12802            ),
12803            TypeVariant::ClaimAtom => Box::new(
12804                ReadXdrIter::<_, ClaimAtom>::new(dec, r.limits.clone())
12805                    .map(|r| r.map(|t| Self::ClaimAtom(Box::new(t)))),
12806            ),
12807            TypeVariant::CreateAccountResultCode => Box::new(
12808                ReadXdrIter::<_, CreateAccountResultCode>::new(dec, r.limits.clone())
12809                    .map(|r| r.map(|t| Self::CreateAccountResultCode(Box::new(t)))),
12810            ),
12811            TypeVariant::CreateAccountResult => Box::new(
12812                ReadXdrIter::<_, CreateAccountResult>::new(dec, r.limits.clone())
12813                    .map(|r| r.map(|t| Self::CreateAccountResult(Box::new(t)))),
12814            ),
12815            TypeVariant::PaymentResultCode => Box::new(
12816                ReadXdrIter::<_, PaymentResultCode>::new(dec, r.limits.clone())
12817                    .map(|r| r.map(|t| Self::PaymentResultCode(Box::new(t)))),
12818            ),
12819            TypeVariant::PaymentResult => Box::new(
12820                ReadXdrIter::<_, PaymentResult>::new(dec, r.limits.clone())
12821                    .map(|r| r.map(|t| Self::PaymentResult(Box::new(t)))),
12822            ),
12823            TypeVariant::PathPaymentStrictReceiveResultCode => Box::new(
12824                ReadXdrIter::<_, PathPaymentStrictReceiveResultCode>::new(dec, r.limits.clone())
12825                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t)))),
12826            ),
12827            TypeVariant::SimplePaymentResult => Box::new(
12828                ReadXdrIter::<_, SimplePaymentResult>::new(dec, r.limits.clone())
12829                    .map(|r| r.map(|t| Self::SimplePaymentResult(Box::new(t)))),
12830            ),
12831            TypeVariant::PathPaymentStrictReceiveResult => Box::new(
12832                ReadXdrIter::<_, PathPaymentStrictReceiveResult>::new(dec, r.limits.clone())
12833                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t)))),
12834            ),
12835            TypeVariant::PathPaymentStrictReceiveResultSuccess => Box::new(
12836                ReadXdrIter::<_, PathPaymentStrictReceiveResultSuccess>::new(dec, r.limits.clone())
12837                    .map(|r| r.map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t)))),
12838            ),
12839            TypeVariant::PathPaymentStrictSendResultCode => Box::new(
12840                ReadXdrIter::<_, PathPaymentStrictSendResultCode>::new(dec, r.limits.clone())
12841                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t)))),
12842            ),
12843            TypeVariant::PathPaymentStrictSendResult => Box::new(
12844                ReadXdrIter::<_, PathPaymentStrictSendResult>::new(dec, r.limits.clone())
12845                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResult(Box::new(t)))),
12846            ),
12847            TypeVariant::PathPaymentStrictSendResultSuccess => Box::new(
12848                ReadXdrIter::<_, PathPaymentStrictSendResultSuccess>::new(dec, r.limits.clone())
12849                    .map(|r| r.map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t)))),
12850            ),
12851            TypeVariant::ManageSellOfferResultCode => Box::new(
12852                ReadXdrIter::<_, ManageSellOfferResultCode>::new(dec, r.limits.clone())
12853                    .map(|r| r.map(|t| Self::ManageSellOfferResultCode(Box::new(t)))),
12854            ),
12855            TypeVariant::ManageOfferEffect => Box::new(
12856                ReadXdrIter::<_, ManageOfferEffect>::new(dec, r.limits.clone())
12857                    .map(|r| r.map(|t| Self::ManageOfferEffect(Box::new(t)))),
12858            ),
12859            TypeVariant::ManageOfferSuccessResult => Box::new(
12860                ReadXdrIter::<_, ManageOfferSuccessResult>::new(dec, r.limits.clone())
12861                    .map(|r| r.map(|t| Self::ManageOfferSuccessResult(Box::new(t)))),
12862            ),
12863            TypeVariant::ManageOfferSuccessResultOffer => Box::new(
12864                ReadXdrIter::<_, ManageOfferSuccessResultOffer>::new(dec, r.limits.clone())
12865                    .map(|r| r.map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t)))),
12866            ),
12867            TypeVariant::ManageSellOfferResult => Box::new(
12868                ReadXdrIter::<_, ManageSellOfferResult>::new(dec, r.limits.clone())
12869                    .map(|r| r.map(|t| Self::ManageSellOfferResult(Box::new(t)))),
12870            ),
12871            TypeVariant::ManageBuyOfferResultCode => Box::new(
12872                ReadXdrIter::<_, ManageBuyOfferResultCode>::new(dec, r.limits.clone())
12873                    .map(|r| r.map(|t| Self::ManageBuyOfferResultCode(Box::new(t)))),
12874            ),
12875            TypeVariant::ManageBuyOfferResult => Box::new(
12876                ReadXdrIter::<_, ManageBuyOfferResult>::new(dec, r.limits.clone())
12877                    .map(|r| r.map(|t| Self::ManageBuyOfferResult(Box::new(t)))),
12878            ),
12879            TypeVariant::SetOptionsResultCode => Box::new(
12880                ReadXdrIter::<_, SetOptionsResultCode>::new(dec, r.limits.clone())
12881                    .map(|r| r.map(|t| Self::SetOptionsResultCode(Box::new(t)))),
12882            ),
12883            TypeVariant::SetOptionsResult => Box::new(
12884                ReadXdrIter::<_, SetOptionsResult>::new(dec, r.limits.clone())
12885                    .map(|r| r.map(|t| Self::SetOptionsResult(Box::new(t)))),
12886            ),
12887            TypeVariant::ChangeTrustResultCode => Box::new(
12888                ReadXdrIter::<_, ChangeTrustResultCode>::new(dec, r.limits.clone())
12889                    .map(|r| r.map(|t| Self::ChangeTrustResultCode(Box::new(t)))),
12890            ),
12891            TypeVariant::ChangeTrustResult => Box::new(
12892                ReadXdrIter::<_, ChangeTrustResult>::new(dec, r.limits.clone())
12893                    .map(|r| r.map(|t| Self::ChangeTrustResult(Box::new(t)))),
12894            ),
12895            TypeVariant::AllowTrustResultCode => Box::new(
12896                ReadXdrIter::<_, AllowTrustResultCode>::new(dec, r.limits.clone())
12897                    .map(|r| r.map(|t| Self::AllowTrustResultCode(Box::new(t)))),
12898            ),
12899            TypeVariant::AllowTrustResult => Box::new(
12900                ReadXdrIter::<_, AllowTrustResult>::new(dec, r.limits.clone())
12901                    .map(|r| r.map(|t| Self::AllowTrustResult(Box::new(t)))),
12902            ),
12903            TypeVariant::AccountMergeResultCode => Box::new(
12904                ReadXdrIter::<_, AccountMergeResultCode>::new(dec, r.limits.clone())
12905                    .map(|r| r.map(|t| Self::AccountMergeResultCode(Box::new(t)))),
12906            ),
12907            TypeVariant::AccountMergeResult => Box::new(
12908                ReadXdrIter::<_, AccountMergeResult>::new(dec, r.limits.clone())
12909                    .map(|r| r.map(|t| Self::AccountMergeResult(Box::new(t)))),
12910            ),
12911            TypeVariant::InflationResultCode => Box::new(
12912                ReadXdrIter::<_, InflationResultCode>::new(dec, r.limits.clone())
12913                    .map(|r| r.map(|t| Self::InflationResultCode(Box::new(t)))),
12914            ),
12915            TypeVariant::InflationPayout => Box::new(
12916                ReadXdrIter::<_, InflationPayout>::new(dec, r.limits.clone())
12917                    .map(|r| r.map(|t| Self::InflationPayout(Box::new(t)))),
12918            ),
12919            TypeVariant::InflationResult => Box::new(
12920                ReadXdrIter::<_, InflationResult>::new(dec, r.limits.clone())
12921                    .map(|r| r.map(|t| Self::InflationResult(Box::new(t)))),
12922            ),
12923            TypeVariant::ManageDataResultCode => Box::new(
12924                ReadXdrIter::<_, ManageDataResultCode>::new(dec, r.limits.clone())
12925                    .map(|r| r.map(|t| Self::ManageDataResultCode(Box::new(t)))),
12926            ),
12927            TypeVariant::ManageDataResult => Box::new(
12928                ReadXdrIter::<_, ManageDataResult>::new(dec, r.limits.clone())
12929                    .map(|r| r.map(|t| Self::ManageDataResult(Box::new(t)))),
12930            ),
12931            TypeVariant::BumpSequenceResultCode => Box::new(
12932                ReadXdrIter::<_, BumpSequenceResultCode>::new(dec, r.limits.clone())
12933                    .map(|r| r.map(|t| Self::BumpSequenceResultCode(Box::new(t)))),
12934            ),
12935            TypeVariant::BumpSequenceResult => Box::new(
12936                ReadXdrIter::<_, BumpSequenceResult>::new(dec, r.limits.clone())
12937                    .map(|r| r.map(|t| Self::BumpSequenceResult(Box::new(t)))),
12938            ),
12939            TypeVariant::CreateClaimableBalanceResultCode => Box::new(
12940                ReadXdrIter::<_, CreateClaimableBalanceResultCode>::new(dec, r.limits.clone())
12941                    .map(|r| r.map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t)))),
12942            ),
12943            TypeVariant::CreateClaimableBalanceResult => Box::new(
12944                ReadXdrIter::<_, CreateClaimableBalanceResult>::new(dec, r.limits.clone())
12945                    .map(|r| r.map(|t| Self::CreateClaimableBalanceResult(Box::new(t)))),
12946            ),
12947            TypeVariant::ClaimClaimableBalanceResultCode => Box::new(
12948                ReadXdrIter::<_, ClaimClaimableBalanceResultCode>::new(dec, r.limits.clone())
12949                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t)))),
12950            ),
12951            TypeVariant::ClaimClaimableBalanceResult => Box::new(
12952                ReadXdrIter::<_, ClaimClaimableBalanceResult>::new(dec, r.limits.clone())
12953                    .map(|r| r.map(|t| Self::ClaimClaimableBalanceResult(Box::new(t)))),
12954            ),
12955            TypeVariant::BeginSponsoringFutureReservesResultCode => Box::new(
12956                ReadXdrIter::<_, BeginSponsoringFutureReservesResultCode>::new(
12957                    dec,
12958                    r.limits.clone(),
12959                )
12960                .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t)))),
12961            ),
12962            TypeVariant::BeginSponsoringFutureReservesResult => Box::new(
12963                ReadXdrIter::<_, BeginSponsoringFutureReservesResult>::new(dec, r.limits.clone())
12964                    .map(|r| r.map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t)))),
12965            ),
12966            TypeVariant::EndSponsoringFutureReservesResultCode => Box::new(
12967                ReadXdrIter::<_, EndSponsoringFutureReservesResultCode>::new(dec, r.limits.clone())
12968                    .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t)))),
12969            ),
12970            TypeVariant::EndSponsoringFutureReservesResult => Box::new(
12971                ReadXdrIter::<_, EndSponsoringFutureReservesResult>::new(dec, r.limits.clone())
12972                    .map(|r| r.map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t)))),
12973            ),
12974            TypeVariant::RevokeSponsorshipResultCode => Box::new(
12975                ReadXdrIter::<_, RevokeSponsorshipResultCode>::new(dec, r.limits.clone())
12976                    .map(|r| r.map(|t| Self::RevokeSponsorshipResultCode(Box::new(t)))),
12977            ),
12978            TypeVariant::RevokeSponsorshipResult => Box::new(
12979                ReadXdrIter::<_, RevokeSponsorshipResult>::new(dec, r.limits.clone())
12980                    .map(|r| r.map(|t| Self::RevokeSponsorshipResult(Box::new(t)))),
12981            ),
12982            TypeVariant::ClawbackResultCode => Box::new(
12983                ReadXdrIter::<_, ClawbackResultCode>::new(dec, r.limits.clone())
12984                    .map(|r| r.map(|t| Self::ClawbackResultCode(Box::new(t)))),
12985            ),
12986            TypeVariant::ClawbackResult => Box::new(
12987                ReadXdrIter::<_, ClawbackResult>::new(dec, r.limits.clone())
12988                    .map(|r| r.map(|t| Self::ClawbackResult(Box::new(t)))),
12989            ),
12990            TypeVariant::ClawbackClaimableBalanceResultCode => Box::new(
12991                ReadXdrIter::<_, ClawbackClaimableBalanceResultCode>::new(dec, r.limits.clone())
12992                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t)))),
12993            ),
12994            TypeVariant::ClawbackClaimableBalanceResult => Box::new(
12995                ReadXdrIter::<_, ClawbackClaimableBalanceResult>::new(dec, r.limits.clone())
12996                    .map(|r| r.map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t)))),
12997            ),
12998            TypeVariant::SetTrustLineFlagsResultCode => Box::new(
12999                ReadXdrIter::<_, SetTrustLineFlagsResultCode>::new(dec, r.limits.clone())
13000                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t)))),
13001            ),
13002            TypeVariant::SetTrustLineFlagsResult => Box::new(
13003                ReadXdrIter::<_, SetTrustLineFlagsResult>::new(dec, r.limits.clone())
13004                    .map(|r| r.map(|t| Self::SetTrustLineFlagsResult(Box::new(t)))),
13005            ),
13006            TypeVariant::LiquidityPoolDepositResultCode => Box::new(
13007                ReadXdrIter::<_, LiquidityPoolDepositResultCode>::new(dec, r.limits.clone())
13008                    .map(|r| r.map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t)))),
13009            ),
13010            TypeVariant::LiquidityPoolDepositResult => Box::new(
13011                ReadXdrIter::<_, LiquidityPoolDepositResult>::new(dec, r.limits.clone())
13012                    .map(|r| r.map(|t| Self::LiquidityPoolDepositResult(Box::new(t)))),
13013            ),
13014            TypeVariant::LiquidityPoolWithdrawResultCode => Box::new(
13015                ReadXdrIter::<_, LiquidityPoolWithdrawResultCode>::new(dec, r.limits.clone())
13016                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t)))),
13017            ),
13018            TypeVariant::LiquidityPoolWithdrawResult => Box::new(
13019                ReadXdrIter::<_, LiquidityPoolWithdrawResult>::new(dec, r.limits.clone())
13020                    .map(|r| r.map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t)))),
13021            ),
13022            TypeVariant::InvokeHostFunctionResultCode => Box::new(
13023                ReadXdrIter::<_, InvokeHostFunctionResultCode>::new(dec, r.limits.clone())
13024                    .map(|r| r.map(|t| Self::InvokeHostFunctionResultCode(Box::new(t)))),
13025            ),
13026            TypeVariant::InvokeHostFunctionResult => Box::new(
13027                ReadXdrIter::<_, InvokeHostFunctionResult>::new(dec, r.limits.clone())
13028                    .map(|r| r.map(|t| Self::InvokeHostFunctionResult(Box::new(t)))),
13029            ),
13030            TypeVariant::ExtendFootprintTtlResultCode => Box::new(
13031                ReadXdrIter::<_, ExtendFootprintTtlResultCode>::new(dec, r.limits.clone())
13032                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t)))),
13033            ),
13034            TypeVariant::ExtendFootprintTtlResult => Box::new(
13035                ReadXdrIter::<_, ExtendFootprintTtlResult>::new(dec, r.limits.clone())
13036                    .map(|r| r.map(|t| Self::ExtendFootprintTtlResult(Box::new(t)))),
13037            ),
13038            TypeVariant::RestoreFootprintResultCode => Box::new(
13039                ReadXdrIter::<_, RestoreFootprintResultCode>::new(dec, r.limits.clone())
13040                    .map(|r| r.map(|t| Self::RestoreFootprintResultCode(Box::new(t)))),
13041            ),
13042            TypeVariant::RestoreFootprintResult => Box::new(
13043                ReadXdrIter::<_, RestoreFootprintResult>::new(dec, r.limits.clone())
13044                    .map(|r| r.map(|t| Self::RestoreFootprintResult(Box::new(t)))),
13045            ),
13046            TypeVariant::OperationResultCode => Box::new(
13047                ReadXdrIter::<_, OperationResultCode>::new(dec, r.limits.clone())
13048                    .map(|r| r.map(|t| Self::OperationResultCode(Box::new(t)))),
13049            ),
13050            TypeVariant::OperationResult => Box::new(
13051                ReadXdrIter::<_, OperationResult>::new(dec, r.limits.clone())
13052                    .map(|r| r.map(|t| Self::OperationResult(Box::new(t)))),
13053            ),
13054            TypeVariant::OperationResultTr => Box::new(
13055                ReadXdrIter::<_, OperationResultTr>::new(dec, r.limits.clone())
13056                    .map(|r| r.map(|t| Self::OperationResultTr(Box::new(t)))),
13057            ),
13058            TypeVariant::TransactionResultCode => Box::new(
13059                ReadXdrIter::<_, TransactionResultCode>::new(dec, r.limits.clone())
13060                    .map(|r| r.map(|t| Self::TransactionResultCode(Box::new(t)))),
13061            ),
13062            TypeVariant::InnerTransactionResult => Box::new(
13063                ReadXdrIter::<_, InnerTransactionResult>::new(dec, r.limits.clone())
13064                    .map(|r| r.map(|t| Self::InnerTransactionResult(Box::new(t)))),
13065            ),
13066            TypeVariant::InnerTransactionResultResult => Box::new(
13067                ReadXdrIter::<_, InnerTransactionResultResult>::new(dec, r.limits.clone())
13068                    .map(|r| r.map(|t| Self::InnerTransactionResultResult(Box::new(t)))),
13069            ),
13070            TypeVariant::InnerTransactionResultExt => Box::new(
13071                ReadXdrIter::<_, InnerTransactionResultExt>::new(dec, r.limits.clone())
13072                    .map(|r| r.map(|t| Self::InnerTransactionResultExt(Box::new(t)))),
13073            ),
13074            TypeVariant::InnerTransactionResultPair => Box::new(
13075                ReadXdrIter::<_, InnerTransactionResultPair>::new(dec, r.limits.clone())
13076                    .map(|r| r.map(|t| Self::InnerTransactionResultPair(Box::new(t)))),
13077            ),
13078            TypeVariant::TransactionResult => Box::new(
13079                ReadXdrIter::<_, TransactionResult>::new(dec, r.limits.clone())
13080                    .map(|r| r.map(|t| Self::TransactionResult(Box::new(t)))),
13081            ),
13082            TypeVariant::TransactionResultResult => Box::new(
13083                ReadXdrIter::<_, TransactionResultResult>::new(dec, r.limits.clone())
13084                    .map(|r| r.map(|t| Self::TransactionResultResult(Box::new(t)))),
13085            ),
13086            TypeVariant::TransactionResultExt => Box::new(
13087                ReadXdrIter::<_, TransactionResultExt>::new(dec, r.limits.clone())
13088                    .map(|r| r.map(|t| Self::TransactionResultExt(Box::new(t)))),
13089            ),
13090            TypeVariant::Hash => Box::new(
13091                ReadXdrIter::<_, Hash>::new(dec, r.limits.clone())
13092                    .map(|r| r.map(|t| Self::Hash(Box::new(t)))),
13093            ),
13094            TypeVariant::Uint256 => Box::new(
13095                ReadXdrIter::<_, Uint256>::new(dec, r.limits.clone())
13096                    .map(|r| r.map(|t| Self::Uint256(Box::new(t)))),
13097            ),
13098            TypeVariant::Uint32 => Box::new(
13099                ReadXdrIter::<_, Uint32>::new(dec, r.limits.clone())
13100                    .map(|r| r.map(|t| Self::Uint32(Box::new(t)))),
13101            ),
13102            TypeVariant::Int32 => Box::new(
13103                ReadXdrIter::<_, Int32>::new(dec, r.limits.clone())
13104                    .map(|r| r.map(|t| Self::Int32(Box::new(t)))),
13105            ),
13106            TypeVariant::Uint64 => Box::new(
13107                ReadXdrIter::<_, Uint64>::new(dec, r.limits.clone())
13108                    .map(|r| r.map(|t| Self::Uint64(Box::new(t)))),
13109            ),
13110            TypeVariant::Int64 => Box::new(
13111                ReadXdrIter::<_, Int64>::new(dec, r.limits.clone())
13112                    .map(|r| r.map(|t| Self::Int64(Box::new(t)))),
13113            ),
13114            TypeVariant::TimePoint => Box::new(
13115                ReadXdrIter::<_, TimePoint>::new(dec, r.limits.clone())
13116                    .map(|r| r.map(|t| Self::TimePoint(Box::new(t)))),
13117            ),
13118            TypeVariant::Duration => Box::new(
13119                ReadXdrIter::<_, Duration>::new(dec, r.limits.clone())
13120                    .map(|r| r.map(|t| Self::Duration(Box::new(t)))),
13121            ),
13122            TypeVariant::ExtensionPoint => Box::new(
13123                ReadXdrIter::<_, ExtensionPoint>::new(dec, r.limits.clone())
13124                    .map(|r| r.map(|t| Self::ExtensionPoint(Box::new(t)))),
13125            ),
13126            TypeVariant::CryptoKeyType => Box::new(
13127                ReadXdrIter::<_, CryptoKeyType>::new(dec, r.limits.clone())
13128                    .map(|r| r.map(|t| Self::CryptoKeyType(Box::new(t)))),
13129            ),
13130            TypeVariant::PublicKeyType => Box::new(
13131                ReadXdrIter::<_, PublicKeyType>::new(dec, r.limits.clone())
13132                    .map(|r| r.map(|t| Self::PublicKeyType(Box::new(t)))),
13133            ),
13134            TypeVariant::SignerKeyType => Box::new(
13135                ReadXdrIter::<_, SignerKeyType>::new(dec, r.limits.clone())
13136                    .map(|r| r.map(|t| Self::SignerKeyType(Box::new(t)))),
13137            ),
13138            TypeVariant::PublicKey => Box::new(
13139                ReadXdrIter::<_, PublicKey>::new(dec, r.limits.clone())
13140                    .map(|r| r.map(|t| Self::PublicKey(Box::new(t)))),
13141            ),
13142            TypeVariant::SignerKey => Box::new(
13143                ReadXdrIter::<_, SignerKey>::new(dec, r.limits.clone())
13144                    .map(|r| r.map(|t| Self::SignerKey(Box::new(t)))),
13145            ),
13146            TypeVariant::SignerKeyEd25519SignedPayload => Box::new(
13147                ReadXdrIter::<_, SignerKeyEd25519SignedPayload>::new(dec, r.limits.clone())
13148                    .map(|r| r.map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t)))),
13149            ),
13150            TypeVariant::Signature => Box::new(
13151                ReadXdrIter::<_, Signature>::new(dec, r.limits.clone())
13152                    .map(|r| r.map(|t| Self::Signature(Box::new(t)))),
13153            ),
13154            TypeVariant::SignatureHint => Box::new(
13155                ReadXdrIter::<_, SignatureHint>::new(dec, r.limits.clone())
13156                    .map(|r| r.map(|t| Self::SignatureHint(Box::new(t)))),
13157            ),
13158            TypeVariant::NodeId => Box::new(
13159                ReadXdrIter::<_, NodeId>::new(dec, r.limits.clone())
13160                    .map(|r| r.map(|t| Self::NodeId(Box::new(t)))),
13161            ),
13162            TypeVariant::AccountId => Box::new(
13163                ReadXdrIter::<_, AccountId>::new(dec, r.limits.clone())
13164                    .map(|r| r.map(|t| Self::AccountId(Box::new(t)))),
13165            ),
13166            TypeVariant::ContractId => Box::new(
13167                ReadXdrIter::<_, ContractId>::new(dec, r.limits.clone())
13168                    .map(|r| r.map(|t| Self::ContractId(Box::new(t)))),
13169            ),
13170            TypeVariant::Curve25519Secret => Box::new(
13171                ReadXdrIter::<_, Curve25519Secret>::new(dec, r.limits.clone())
13172                    .map(|r| r.map(|t| Self::Curve25519Secret(Box::new(t)))),
13173            ),
13174            TypeVariant::Curve25519Public => Box::new(
13175                ReadXdrIter::<_, Curve25519Public>::new(dec, r.limits.clone())
13176                    .map(|r| r.map(|t| Self::Curve25519Public(Box::new(t)))),
13177            ),
13178            TypeVariant::HmacSha256Key => Box::new(
13179                ReadXdrIter::<_, HmacSha256Key>::new(dec, r.limits.clone())
13180                    .map(|r| r.map(|t| Self::HmacSha256Key(Box::new(t)))),
13181            ),
13182            TypeVariant::HmacSha256Mac => Box::new(
13183                ReadXdrIter::<_, HmacSha256Mac>::new(dec, r.limits.clone())
13184                    .map(|r| r.map(|t| Self::HmacSha256Mac(Box::new(t)))),
13185            ),
13186            TypeVariant::ShortHashSeed => Box::new(
13187                ReadXdrIter::<_, ShortHashSeed>::new(dec, r.limits.clone())
13188                    .map(|r| r.map(|t| Self::ShortHashSeed(Box::new(t)))),
13189            ),
13190            TypeVariant::BinaryFuseFilterType => Box::new(
13191                ReadXdrIter::<_, BinaryFuseFilterType>::new(dec, r.limits.clone())
13192                    .map(|r| r.map(|t| Self::BinaryFuseFilterType(Box::new(t)))),
13193            ),
13194            TypeVariant::SerializedBinaryFuseFilter => Box::new(
13195                ReadXdrIter::<_, SerializedBinaryFuseFilter>::new(dec, r.limits.clone())
13196                    .map(|r| r.map(|t| Self::SerializedBinaryFuseFilter(Box::new(t)))),
13197            ),
13198            TypeVariant::PoolId => Box::new(
13199                ReadXdrIter::<_, PoolId>::new(dec, r.limits.clone())
13200                    .map(|r| r.map(|t| Self::PoolId(Box::new(t)))),
13201            ),
13202            TypeVariant::ClaimableBalanceIdType => Box::new(
13203                ReadXdrIter::<_, ClaimableBalanceIdType>::new(dec, r.limits.clone())
13204                    .map(|r| r.map(|t| Self::ClaimableBalanceIdType(Box::new(t)))),
13205            ),
13206            TypeVariant::ClaimableBalanceId => Box::new(
13207                ReadXdrIter::<_, ClaimableBalanceId>::new(dec, r.limits.clone())
13208                    .map(|r| r.map(|t| Self::ClaimableBalanceId(Box::new(t)))),
13209            ),
13210            #[cfg(feature = "test_feature")]
13211            TypeVariant::TestNextType => Box::new(
13212                ReadXdrIter::<_, TestNextType>::new(dec, r.limits.clone())
13213                    .map(|r| r.map(|t| Self::TestNextType(Box::new(t)))),
13214            ),
13215        }
13216    }
13217
13218    #[cfg(feature = "std")]
13219    pub fn from_xdr<B: AsRef<[u8]>>(
13220        v: TypeVariant,
13221        bytes: B,
13222        limits: Limits,
13223    ) -> Result<Self, Error> {
13224        let mut cursor = Limited::new(Cursor::new(bytes.as_ref()), limits);
13225        let t = Self::read_xdr_to_end(v, &mut cursor)?;
13226        Ok(t)
13227    }
13228
13229    #[cfg(feature = "base64")]
13230    pub fn from_xdr_base64(
13231        v: TypeVariant,
13232        b64: impl AsRef<[u8]>,
13233        limits: Limits,
13234    ) -> Result<Self, Error> {
13235        let mut dec = Limited::new(
13236            base64::read::DecoderReader::new(
13237                SkipWhitespace::new(Cursor::new(b64)),
13238                &base64::engine::general_purpose::STANDARD,
13239            ),
13240            limits,
13241        );
13242        let t = Self::read_xdr_to_end(v, &mut dec)?;
13243        Ok(t)
13244    }
13245
13246    #[cfg(all(feature = "std", feature = "serde_json"))]
13247    #[deprecated(note = "use from_json")]
13248    pub fn read_json(v: TypeVariant, r: impl Read) -> Result<Self, Error> {
13249        Self::from_json(v, r)
13250    }
13251
13252    #[cfg(all(feature = "std", feature = "serde_json"))]
13253    #[allow(clippy::too_many_lines)]
13254    pub fn from_json(v: TypeVariant, r: impl Read) -> Result<Self, Error> {
13255        match v {
13256            TypeVariant::Value => Ok(Self::Value(Box::new(serde_json::from_reader(r)?))),
13257            TypeVariant::ScpBallot => Ok(Self::ScpBallot(Box::new(serde_json::from_reader(r)?))),
13258            TypeVariant::ScpStatementType => Ok(Self::ScpStatementType(Box::new(
13259                serde_json::from_reader(r)?,
13260            ))),
13261            TypeVariant::ScpNomination => {
13262                Ok(Self::ScpNomination(Box::new(serde_json::from_reader(r)?)))
13263            }
13264            TypeVariant::ScpStatement => {
13265                Ok(Self::ScpStatement(Box::new(serde_json::from_reader(r)?)))
13266            }
13267            TypeVariant::ScpStatementPledges => Ok(Self::ScpStatementPledges(Box::new(
13268                serde_json::from_reader(r)?,
13269            ))),
13270            TypeVariant::ScpStatementPrepare => Ok(Self::ScpStatementPrepare(Box::new(
13271                serde_json::from_reader(r)?,
13272            ))),
13273            TypeVariant::ScpStatementConfirm => Ok(Self::ScpStatementConfirm(Box::new(
13274                serde_json::from_reader(r)?,
13275            ))),
13276            TypeVariant::ScpStatementExternalize => Ok(Self::ScpStatementExternalize(Box::new(
13277                serde_json::from_reader(r)?,
13278            ))),
13279            TypeVariant::ScpEnvelope => {
13280                Ok(Self::ScpEnvelope(Box::new(serde_json::from_reader(r)?)))
13281            }
13282            TypeVariant::ScpQuorumSet => {
13283                Ok(Self::ScpQuorumSet(Box::new(serde_json::from_reader(r)?)))
13284            }
13285            TypeVariant::EncodedLedgerKey => Ok(Self::EncodedLedgerKey(Box::new(
13286                serde_json::from_reader(r)?,
13287            ))),
13288            TypeVariant::ConfigSettingContractExecutionLanesV0 => Ok(
13289                Self::ConfigSettingContractExecutionLanesV0(Box::new(serde_json::from_reader(r)?)),
13290            ),
13291            TypeVariant::ConfigSettingContractComputeV0 => Ok(
13292                Self::ConfigSettingContractComputeV0(Box::new(serde_json::from_reader(r)?)),
13293            ),
13294            TypeVariant::ConfigSettingContractParallelComputeV0 => Ok(
13295                Self::ConfigSettingContractParallelComputeV0(Box::new(serde_json::from_reader(r)?)),
13296            ),
13297            TypeVariant::ConfigSettingContractLedgerCostV0 => Ok(
13298                Self::ConfigSettingContractLedgerCostV0(Box::new(serde_json::from_reader(r)?)),
13299            ),
13300            TypeVariant::ConfigSettingContractLedgerCostExtV0 => Ok(
13301                Self::ConfigSettingContractLedgerCostExtV0(Box::new(serde_json::from_reader(r)?)),
13302            ),
13303            TypeVariant::ConfigSettingContractHistoricalDataV0 => Ok(
13304                Self::ConfigSettingContractHistoricalDataV0(Box::new(serde_json::from_reader(r)?)),
13305            ),
13306            TypeVariant::ConfigSettingContractEventsV0 => Ok(Self::ConfigSettingContractEventsV0(
13307                Box::new(serde_json::from_reader(r)?),
13308            )),
13309            TypeVariant::ConfigSettingContractBandwidthV0 => Ok(
13310                Self::ConfigSettingContractBandwidthV0(Box::new(serde_json::from_reader(r)?)),
13311            ),
13312            TypeVariant::ContractCostType => Ok(Self::ContractCostType(Box::new(
13313                serde_json::from_reader(r)?,
13314            ))),
13315            TypeVariant::ContractCostParamEntry => Ok(Self::ContractCostParamEntry(Box::new(
13316                serde_json::from_reader(r)?,
13317            ))),
13318            TypeVariant::StateArchivalSettings => Ok(Self::StateArchivalSettings(Box::new(
13319                serde_json::from_reader(r)?,
13320            ))),
13321            TypeVariant::EvictionIterator => Ok(Self::EvictionIterator(Box::new(
13322                serde_json::from_reader(r)?,
13323            ))),
13324            TypeVariant::ConfigSettingScpTiming => Ok(Self::ConfigSettingScpTiming(Box::new(
13325                serde_json::from_reader(r)?,
13326            ))),
13327            TypeVariant::FrozenLedgerKeys => Ok(Self::FrozenLedgerKeys(Box::new(
13328                serde_json::from_reader(r)?,
13329            ))),
13330            TypeVariant::FrozenLedgerKeysDelta => Ok(Self::FrozenLedgerKeysDelta(Box::new(
13331                serde_json::from_reader(r)?,
13332            ))),
13333            TypeVariant::FreezeBypassTxs => {
13334                Ok(Self::FreezeBypassTxs(Box::new(serde_json::from_reader(r)?)))
13335            }
13336            TypeVariant::FreezeBypassTxsDelta => Ok(Self::FreezeBypassTxsDelta(Box::new(
13337                serde_json::from_reader(r)?,
13338            ))),
13339            TypeVariant::ContractCostParams => Ok(Self::ContractCostParams(Box::new(
13340                serde_json::from_reader(r)?,
13341            ))),
13342            TypeVariant::ConfigSettingId => {
13343                Ok(Self::ConfigSettingId(Box::new(serde_json::from_reader(r)?)))
13344            }
13345            TypeVariant::ConfigSettingEntry => Ok(Self::ConfigSettingEntry(Box::new(
13346                serde_json::from_reader(r)?,
13347            ))),
13348            TypeVariant::ScEnvMetaKind => {
13349                Ok(Self::ScEnvMetaKind(Box::new(serde_json::from_reader(r)?)))
13350            }
13351            TypeVariant::ScEnvMetaEntry => {
13352                Ok(Self::ScEnvMetaEntry(Box::new(serde_json::from_reader(r)?)))
13353            }
13354            TypeVariant::ScEnvMetaEntryInterfaceVersion => Ok(
13355                Self::ScEnvMetaEntryInterfaceVersion(Box::new(serde_json::from_reader(r)?)),
13356            ),
13357            TypeVariant::ScMetaV0 => Ok(Self::ScMetaV0(Box::new(serde_json::from_reader(r)?))),
13358            TypeVariant::ScMetaKind => Ok(Self::ScMetaKind(Box::new(serde_json::from_reader(r)?))),
13359            TypeVariant::ScMetaEntry => {
13360                Ok(Self::ScMetaEntry(Box::new(serde_json::from_reader(r)?)))
13361            }
13362            TypeVariant::ScSpecType => Ok(Self::ScSpecType(Box::new(serde_json::from_reader(r)?))),
13363            TypeVariant::ScSpecTypeOption => Ok(Self::ScSpecTypeOption(Box::new(
13364                serde_json::from_reader(r)?,
13365            ))),
13366            TypeVariant::ScSpecTypeResult => Ok(Self::ScSpecTypeResult(Box::new(
13367                serde_json::from_reader(r)?,
13368            ))),
13369            TypeVariant::ScSpecTypeVec => {
13370                Ok(Self::ScSpecTypeVec(Box::new(serde_json::from_reader(r)?)))
13371            }
13372            TypeVariant::ScSpecTypeMap => {
13373                Ok(Self::ScSpecTypeMap(Box::new(serde_json::from_reader(r)?)))
13374            }
13375            TypeVariant::ScSpecTypeTuple => {
13376                Ok(Self::ScSpecTypeTuple(Box::new(serde_json::from_reader(r)?)))
13377            }
13378            TypeVariant::ScSpecTypeBytesN => Ok(Self::ScSpecTypeBytesN(Box::new(
13379                serde_json::from_reader(r)?,
13380            ))),
13381            TypeVariant::ScSpecTypeUdt => {
13382                Ok(Self::ScSpecTypeUdt(Box::new(serde_json::from_reader(r)?)))
13383            }
13384            TypeVariant::ScSpecTypeDef => {
13385                Ok(Self::ScSpecTypeDef(Box::new(serde_json::from_reader(r)?)))
13386            }
13387            TypeVariant::ScSpecUdtStructFieldV0 => Ok(Self::ScSpecUdtStructFieldV0(Box::new(
13388                serde_json::from_reader(r)?,
13389            ))),
13390            TypeVariant::ScSpecUdtStructV0 => Ok(Self::ScSpecUdtStructV0(Box::new(
13391                serde_json::from_reader(r)?,
13392            ))),
13393            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
13394                serde_json::from_reader(r)?,
13395            ))),
13396            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Ok(Self::ScSpecUdtUnionCaseTupleV0(
13397                Box::new(serde_json::from_reader(r)?),
13398            )),
13399            TypeVariant::ScSpecUdtUnionCaseV0Kind => Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
13400                serde_json::from_reader(r)?,
13401            ))),
13402            TypeVariant::ScSpecUdtUnionCaseV0 => Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
13403                serde_json::from_reader(r)?,
13404            ))),
13405            TypeVariant::ScSpecUdtUnionV0 => Ok(Self::ScSpecUdtUnionV0(Box::new(
13406                serde_json::from_reader(r)?,
13407            ))),
13408            TypeVariant::ScSpecUdtEnumCaseV0 => Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
13409                serde_json::from_reader(r)?,
13410            ))),
13411            TypeVariant::ScSpecUdtEnumV0 => {
13412                Ok(Self::ScSpecUdtEnumV0(Box::new(serde_json::from_reader(r)?)))
13413            }
13414            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
13415                serde_json::from_reader(r)?,
13416            ))),
13417            TypeVariant::ScSpecUdtErrorEnumV0 => Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
13418                serde_json::from_reader(r)?,
13419            ))),
13420            TypeVariant::ScSpecFunctionInputV0 => Ok(Self::ScSpecFunctionInputV0(Box::new(
13421                serde_json::from_reader(r)?,
13422            ))),
13423            TypeVariant::ScSpecFunctionV0 => Ok(Self::ScSpecFunctionV0(Box::new(
13424                serde_json::from_reader(r)?,
13425            ))),
13426            TypeVariant::ScSpecEventParamLocationV0 => Ok(Self::ScSpecEventParamLocationV0(
13427                Box::new(serde_json::from_reader(r)?),
13428            )),
13429            TypeVariant::ScSpecEventParamV0 => Ok(Self::ScSpecEventParamV0(Box::new(
13430                serde_json::from_reader(r)?,
13431            ))),
13432            TypeVariant::ScSpecEventDataFormat => Ok(Self::ScSpecEventDataFormat(Box::new(
13433                serde_json::from_reader(r)?,
13434            ))),
13435            TypeVariant::ScSpecEventV0 => {
13436                Ok(Self::ScSpecEventV0(Box::new(serde_json::from_reader(r)?)))
13437            }
13438            TypeVariant::ScSpecEntryKind => {
13439                Ok(Self::ScSpecEntryKind(Box::new(serde_json::from_reader(r)?)))
13440            }
13441            TypeVariant::ScSpecEntry => {
13442                Ok(Self::ScSpecEntry(Box::new(serde_json::from_reader(r)?)))
13443            }
13444            TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(serde_json::from_reader(r)?))),
13445            TypeVariant::ScString => Ok(Self::ScString(Box::new(serde_json::from_reader(r)?))),
13446            TypeVariant::ScSymbol => Ok(Self::ScSymbol(Box::new(serde_json::from_reader(r)?))),
13447            TypeVariant::ScValType => Ok(Self::ScValType(Box::new(serde_json::from_reader(r)?))),
13448            TypeVariant::ScErrorType => {
13449                Ok(Self::ScErrorType(Box::new(serde_json::from_reader(r)?)))
13450            }
13451            TypeVariant::ScErrorCode => {
13452                Ok(Self::ScErrorCode(Box::new(serde_json::from_reader(r)?)))
13453            }
13454            TypeVariant::ScError => Ok(Self::ScError(Box::new(serde_json::from_reader(r)?))),
13455            TypeVariant::UInt128Parts => {
13456                Ok(Self::UInt128Parts(Box::new(serde_json::from_reader(r)?)))
13457            }
13458            TypeVariant::Int128Parts => {
13459                Ok(Self::Int128Parts(Box::new(serde_json::from_reader(r)?)))
13460            }
13461            TypeVariant::UInt256Parts => {
13462                Ok(Self::UInt256Parts(Box::new(serde_json::from_reader(r)?)))
13463            }
13464            TypeVariant::Int256Parts => {
13465                Ok(Self::Int256Parts(Box::new(serde_json::from_reader(r)?)))
13466            }
13467            TypeVariant::ContractExecutableType => Ok(Self::ContractExecutableType(Box::new(
13468                serde_json::from_reader(r)?,
13469            ))),
13470            TypeVariant::ScAddressType => {
13471                Ok(Self::ScAddressType(Box::new(serde_json::from_reader(r)?)))
13472            }
13473            TypeVariant::MuxedEd25519Account => Ok(Self::MuxedEd25519Account(Box::new(
13474                serde_json::from_reader(r)?,
13475            ))),
13476            #[cfg(feature = "cap_0084_muxed_contract")]
13477            TypeVariant::MuxedContract => {
13478                Ok(Self::MuxedContract(Box::new(serde_json::from_reader(r)?)))
13479            }
13480            TypeVariant::ScAddress => Ok(Self::ScAddress(Box::new(serde_json::from_reader(r)?))),
13481            TypeVariant::ContractExecutableExternalRef => Ok(Self::ContractExecutableExternalRef(
13482                Box::new(serde_json::from_reader(r)?),
13483            )),
13484            TypeVariant::ContractExecutable => Ok(Self::ContractExecutable(Box::new(
13485                serde_json::from_reader(r)?,
13486            ))),
13487            TypeVariant::ScVec => Ok(Self::ScVec(Box::new(serde_json::from_reader(r)?))),
13488            TypeVariant::ScMap => Ok(Self::ScMap(Box::new(serde_json::from_reader(r)?))),
13489            TypeVariant::ScNonceKey => Ok(Self::ScNonceKey(Box::new(serde_json::from_reader(r)?))),
13490            TypeVariant::ScContractInstance => Ok(Self::ScContractInstance(Box::new(
13491                serde_json::from_reader(r)?,
13492            ))),
13493            TypeVariant::ScVal => Ok(Self::ScVal(Box::new(serde_json::from_reader(r)?))),
13494            TypeVariant::ScMapEntry => Ok(Self::ScMapEntry(Box::new(serde_json::from_reader(r)?))),
13495            TypeVariant::LedgerCloseMetaBatch => Ok(Self::LedgerCloseMetaBatch(Box::new(
13496                serde_json::from_reader(r)?,
13497            ))),
13498            TypeVariant::StoredTransactionSet => Ok(Self::StoredTransactionSet(Box::new(
13499                serde_json::from_reader(r)?,
13500            ))),
13501            TypeVariant::StoredDebugTransactionSet => Ok(Self::StoredDebugTransactionSet(
13502                Box::new(serde_json::from_reader(r)?),
13503            )),
13504            TypeVariant::PersistedScpStateV0 => Ok(Self::PersistedScpStateV0(Box::new(
13505                serde_json::from_reader(r)?,
13506            ))),
13507            TypeVariant::PersistedScpStateV1 => Ok(Self::PersistedScpStateV1(Box::new(
13508                serde_json::from_reader(r)?,
13509            ))),
13510            TypeVariant::PersistedScpState => Ok(Self::PersistedScpState(Box::new(
13511                serde_json::from_reader(r)?,
13512            ))),
13513            TypeVariant::Thresholds => Ok(Self::Thresholds(Box::new(serde_json::from_reader(r)?))),
13514            TypeVariant::String32 => Ok(Self::String32(Box::new(serde_json::from_reader(r)?))),
13515            TypeVariant::String64 => Ok(Self::String64(Box::new(serde_json::from_reader(r)?))),
13516            TypeVariant::SequenceNumber => {
13517                Ok(Self::SequenceNumber(Box::new(serde_json::from_reader(r)?)))
13518            }
13519            TypeVariant::DataValue => Ok(Self::DataValue(Box::new(serde_json::from_reader(r)?))),
13520            TypeVariant::AssetCode4 => Ok(Self::AssetCode4(Box::new(serde_json::from_reader(r)?))),
13521            TypeVariant::AssetCode12 => {
13522                Ok(Self::AssetCode12(Box::new(serde_json::from_reader(r)?)))
13523            }
13524            TypeVariant::AssetType => Ok(Self::AssetType(Box::new(serde_json::from_reader(r)?))),
13525            TypeVariant::AssetCode => Ok(Self::AssetCode(Box::new(serde_json::from_reader(r)?))),
13526            TypeVariant::AlphaNum4 => Ok(Self::AlphaNum4(Box::new(serde_json::from_reader(r)?))),
13527            TypeVariant::AlphaNum12 => Ok(Self::AlphaNum12(Box::new(serde_json::from_reader(r)?))),
13528            TypeVariant::Asset => Ok(Self::Asset(Box::new(serde_json::from_reader(r)?))),
13529            TypeVariant::Price => Ok(Self::Price(Box::new(serde_json::from_reader(r)?))),
13530            TypeVariant::Liabilities => {
13531                Ok(Self::Liabilities(Box::new(serde_json::from_reader(r)?)))
13532            }
13533            TypeVariant::ThresholdIndexes => Ok(Self::ThresholdIndexes(Box::new(
13534                serde_json::from_reader(r)?,
13535            ))),
13536            TypeVariant::LedgerEntryType => {
13537                Ok(Self::LedgerEntryType(Box::new(serde_json::from_reader(r)?)))
13538            }
13539            TypeVariant::Signer => Ok(Self::Signer(Box::new(serde_json::from_reader(r)?))),
13540            TypeVariant::AccountFlags => {
13541                Ok(Self::AccountFlags(Box::new(serde_json::from_reader(r)?)))
13542            }
13543            TypeVariant::SponsorshipDescriptor => Ok(Self::SponsorshipDescriptor(Box::new(
13544                serde_json::from_reader(r)?,
13545            ))),
13546            TypeVariant::AccountEntryExtensionV3 => Ok(Self::AccountEntryExtensionV3(Box::new(
13547                serde_json::from_reader(r)?,
13548            ))),
13549            TypeVariant::AccountEntryExtensionV2 => Ok(Self::AccountEntryExtensionV2(Box::new(
13550                serde_json::from_reader(r)?,
13551            ))),
13552            TypeVariant::AccountEntryExtensionV2Ext => Ok(Self::AccountEntryExtensionV2Ext(
13553                Box::new(serde_json::from_reader(r)?),
13554            )),
13555            TypeVariant::AccountEntryExtensionV1 => Ok(Self::AccountEntryExtensionV1(Box::new(
13556                serde_json::from_reader(r)?,
13557            ))),
13558            TypeVariant::AccountEntryExtensionV1Ext => Ok(Self::AccountEntryExtensionV1Ext(
13559                Box::new(serde_json::from_reader(r)?),
13560            )),
13561            TypeVariant::AccountEntry => {
13562                Ok(Self::AccountEntry(Box::new(serde_json::from_reader(r)?)))
13563            }
13564            TypeVariant::AccountEntryExt => {
13565                Ok(Self::AccountEntryExt(Box::new(serde_json::from_reader(r)?)))
13566            }
13567            TypeVariant::TrustLineFlags => {
13568                Ok(Self::TrustLineFlags(Box::new(serde_json::from_reader(r)?)))
13569            }
13570            TypeVariant::LiquidityPoolType => Ok(Self::LiquidityPoolType(Box::new(
13571                serde_json::from_reader(r)?,
13572            ))),
13573            TypeVariant::TrustLineAsset => {
13574                Ok(Self::TrustLineAsset(Box::new(serde_json::from_reader(r)?)))
13575            }
13576            TypeVariant::TrustLineEntryExtensionV2 => Ok(Self::TrustLineEntryExtensionV2(
13577                Box::new(serde_json::from_reader(r)?),
13578            )),
13579            TypeVariant::TrustLineEntryExtensionV2Ext => Ok(Self::TrustLineEntryExtensionV2Ext(
13580                Box::new(serde_json::from_reader(r)?),
13581            )),
13582            TypeVariant::TrustLineEntry => {
13583                Ok(Self::TrustLineEntry(Box::new(serde_json::from_reader(r)?)))
13584            }
13585            TypeVariant::TrustLineEntryExt => Ok(Self::TrustLineEntryExt(Box::new(
13586                serde_json::from_reader(r)?,
13587            ))),
13588            TypeVariant::TrustLineEntryV1 => Ok(Self::TrustLineEntryV1(Box::new(
13589                serde_json::from_reader(r)?,
13590            ))),
13591            TypeVariant::TrustLineEntryV1Ext => Ok(Self::TrustLineEntryV1Ext(Box::new(
13592                serde_json::from_reader(r)?,
13593            ))),
13594            TypeVariant::OfferEntryFlags => {
13595                Ok(Self::OfferEntryFlags(Box::new(serde_json::from_reader(r)?)))
13596            }
13597            TypeVariant::OfferEntry => Ok(Self::OfferEntry(Box::new(serde_json::from_reader(r)?))),
13598            TypeVariant::OfferEntryExt => {
13599                Ok(Self::OfferEntryExt(Box::new(serde_json::from_reader(r)?)))
13600            }
13601            TypeVariant::DataEntry => Ok(Self::DataEntry(Box::new(serde_json::from_reader(r)?))),
13602            TypeVariant::DataEntryExt => {
13603                Ok(Self::DataEntryExt(Box::new(serde_json::from_reader(r)?)))
13604            }
13605            TypeVariant::ClaimPredicateType => Ok(Self::ClaimPredicateType(Box::new(
13606                serde_json::from_reader(r)?,
13607            ))),
13608            TypeVariant::ClaimPredicate => {
13609                Ok(Self::ClaimPredicate(Box::new(serde_json::from_reader(r)?)))
13610            }
13611            TypeVariant::ClaimantType => {
13612                Ok(Self::ClaimantType(Box::new(serde_json::from_reader(r)?)))
13613            }
13614            TypeVariant::Claimant => Ok(Self::Claimant(Box::new(serde_json::from_reader(r)?))),
13615            TypeVariant::ClaimantV0 => Ok(Self::ClaimantV0(Box::new(serde_json::from_reader(r)?))),
13616            TypeVariant::ClaimableBalanceFlags => Ok(Self::ClaimableBalanceFlags(Box::new(
13617                serde_json::from_reader(r)?,
13618            ))),
13619            TypeVariant::ClaimableBalanceEntryExtensionV1 => Ok(
13620                Self::ClaimableBalanceEntryExtensionV1(Box::new(serde_json::from_reader(r)?)),
13621            ),
13622            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => Ok(
13623                Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(serde_json::from_reader(r)?)),
13624            ),
13625            TypeVariant::ClaimableBalanceEntry => Ok(Self::ClaimableBalanceEntry(Box::new(
13626                serde_json::from_reader(r)?,
13627            ))),
13628            TypeVariant::ClaimableBalanceEntryExt => Ok(Self::ClaimableBalanceEntryExt(Box::new(
13629                serde_json::from_reader(r)?,
13630            ))),
13631            TypeVariant::LiquidityPoolConstantProductParameters => Ok(
13632                Self::LiquidityPoolConstantProductParameters(Box::new(serde_json::from_reader(r)?)),
13633            ),
13634            TypeVariant::LiquidityPoolEntry => Ok(Self::LiquidityPoolEntry(Box::new(
13635                serde_json::from_reader(r)?,
13636            ))),
13637            TypeVariant::LiquidityPoolEntryBody => Ok(Self::LiquidityPoolEntryBody(Box::new(
13638                serde_json::from_reader(r)?,
13639            ))),
13640            TypeVariant::LiquidityPoolEntryConstantProduct => Ok(
13641                Self::LiquidityPoolEntryConstantProduct(Box::new(serde_json::from_reader(r)?)),
13642            ),
13643            TypeVariant::ContractDataDurability => Ok(Self::ContractDataDurability(Box::new(
13644                serde_json::from_reader(r)?,
13645            ))),
13646            TypeVariant::ContractDataEntry => Ok(Self::ContractDataEntry(Box::new(
13647                serde_json::from_reader(r)?,
13648            ))),
13649            TypeVariant::ContractCodeCostInputs => Ok(Self::ContractCodeCostInputs(Box::new(
13650                serde_json::from_reader(r)?,
13651            ))),
13652            TypeVariant::ContractCodeEntry => Ok(Self::ContractCodeEntry(Box::new(
13653                serde_json::from_reader(r)?,
13654            ))),
13655            TypeVariant::ContractCodeEntryExt => Ok(Self::ContractCodeEntryExt(Box::new(
13656                serde_json::from_reader(r)?,
13657            ))),
13658            TypeVariant::ContractCodeEntryV1 => Ok(Self::ContractCodeEntryV1(Box::new(
13659                serde_json::from_reader(r)?,
13660            ))),
13661            TypeVariant::TtlEntry => Ok(Self::TtlEntry(Box::new(serde_json::from_reader(r)?))),
13662            TypeVariant::LedgerEntryExtensionV1 => Ok(Self::LedgerEntryExtensionV1(Box::new(
13663                serde_json::from_reader(r)?,
13664            ))),
13665            TypeVariant::LedgerEntryExtensionV1Ext => Ok(Self::LedgerEntryExtensionV1Ext(
13666                Box::new(serde_json::from_reader(r)?),
13667            )),
13668            TypeVariant::LedgerEntry => {
13669                Ok(Self::LedgerEntry(Box::new(serde_json::from_reader(r)?)))
13670            }
13671            TypeVariant::LedgerEntryData => {
13672                Ok(Self::LedgerEntryData(Box::new(serde_json::from_reader(r)?)))
13673            }
13674            TypeVariant::LedgerEntryExt => {
13675                Ok(Self::LedgerEntryExt(Box::new(serde_json::from_reader(r)?)))
13676            }
13677            TypeVariant::LedgerKey => Ok(Self::LedgerKey(Box::new(serde_json::from_reader(r)?))),
13678            TypeVariant::LedgerKeyAccount => Ok(Self::LedgerKeyAccount(Box::new(
13679                serde_json::from_reader(r)?,
13680            ))),
13681            TypeVariant::LedgerKeyTrustLine => Ok(Self::LedgerKeyTrustLine(Box::new(
13682                serde_json::from_reader(r)?,
13683            ))),
13684            TypeVariant::LedgerKeyOffer => {
13685                Ok(Self::LedgerKeyOffer(Box::new(serde_json::from_reader(r)?)))
13686            }
13687            TypeVariant::LedgerKeyData => {
13688                Ok(Self::LedgerKeyData(Box::new(serde_json::from_reader(r)?)))
13689            }
13690            TypeVariant::LedgerKeyClaimableBalance => Ok(Self::LedgerKeyClaimableBalance(
13691                Box::new(serde_json::from_reader(r)?),
13692            )),
13693            TypeVariant::LedgerKeyLiquidityPool => Ok(Self::LedgerKeyLiquidityPool(Box::new(
13694                serde_json::from_reader(r)?,
13695            ))),
13696            TypeVariant::LedgerKeyContractData => Ok(Self::LedgerKeyContractData(Box::new(
13697                serde_json::from_reader(r)?,
13698            ))),
13699            TypeVariant::LedgerKeyContractCode => Ok(Self::LedgerKeyContractCode(Box::new(
13700                serde_json::from_reader(r)?,
13701            ))),
13702            TypeVariant::LedgerKeyConfigSetting => Ok(Self::LedgerKeyConfigSetting(Box::new(
13703                serde_json::from_reader(r)?,
13704            ))),
13705            TypeVariant::LedgerKeyTtl => {
13706                Ok(Self::LedgerKeyTtl(Box::new(serde_json::from_reader(r)?)))
13707            }
13708            TypeVariant::EnvelopeType => {
13709                Ok(Self::EnvelopeType(Box::new(serde_json::from_reader(r)?)))
13710            }
13711            TypeVariant::BucketListType => {
13712                Ok(Self::BucketListType(Box::new(serde_json::from_reader(r)?)))
13713            }
13714            TypeVariant::BucketEntryType => {
13715                Ok(Self::BucketEntryType(Box::new(serde_json::from_reader(r)?)))
13716            }
13717            TypeVariant::HotArchiveBucketEntryType => Ok(Self::HotArchiveBucketEntryType(
13718                Box::new(serde_json::from_reader(r)?),
13719            )),
13720            TypeVariant::BucketMetadata => {
13721                Ok(Self::BucketMetadata(Box::new(serde_json::from_reader(r)?)))
13722            }
13723            TypeVariant::BucketMetadataExt => Ok(Self::BucketMetadataExt(Box::new(
13724                serde_json::from_reader(r)?,
13725            ))),
13726            TypeVariant::BucketEntry => {
13727                Ok(Self::BucketEntry(Box::new(serde_json::from_reader(r)?)))
13728            }
13729            TypeVariant::HotArchiveBucketEntry => Ok(Self::HotArchiveBucketEntry(Box::new(
13730                serde_json::from_reader(r)?,
13731            ))),
13732            TypeVariant::UpgradeType => {
13733                Ok(Self::UpgradeType(Box::new(serde_json::from_reader(r)?)))
13734            }
13735            TypeVariant::StellarValueType => Ok(Self::StellarValueType(Box::new(
13736                serde_json::from_reader(r)?,
13737            ))),
13738            TypeVariant::LedgerCloseValueSignature => Ok(Self::LedgerCloseValueSignature(
13739                Box::new(serde_json::from_reader(r)?),
13740            )),
13741            TypeVariant::StellarValue => {
13742                Ok(Self::StellarValue(Box::new(serde_json::from_reader(r)?)))
13743            }
13744            TypeVariant::StellarValueExt => {
13745                Ok(Self::StellarValueExt(Box::new(serde_json::from_reader(r)?)))
13746            }
13747            TypeVariant::StellarValueProposedValue => Ok(Self::StellarValueProposedValue(
13748                Box::new(serde_json::from_reader(r)?),
13749            )),
13750            TypeVariant::LedgerHeaderFlags => Ok(Self::LedgerHeaderFlags(Box::new(
13751                serde_json::from_reader(r)?,
13752            ))),
13753            TypeVariant::LedgerHeaderExtensionV1 => Ok(Self::LedgerHeaderExtensionV1(Box::new(
13754                serde_json::from_reader(r)?,
13755            ))),
13756            TypeVariant::LedgerHeaderExtensionV1Ext => Ok(Self::LedgerHeaderExtensionV1Ext(
13757                Box::new(serde_json::from_reader(r)?),
13758            )),
13759            TypeVariant::LedgerHeader => {
13760                Ok(Self::LedgerHeader(Box::new(serde_json::from_reader(r)?)))
13761            }
13762            TypeVariant::LedgerHeaderExt => {
13763                Ok(Self::LedgerHeaderExt(Box::new(serde_json::from_reader(r)?)))
13764            }
13765            TypeVariant::LedgerUpgradeType => Ok(Self::LedgerUpgradeType(Box::new(
13766                serde_json::from_reader(r)?,
13767            ))),
13768            TypeVariant::ConfigUpgradeSetKey => Ok(Self::ConfigUpgradeSetKey(Box::new(
13769                serde_json::from_reader(r)?,
13770            ))),
13771            TypeVariant::LedgerUpgrade => {
13772                Ok(Self::LedgerUpgrade(Box::new(serde_json::from_reader(r)?)))
13773            }
13774            TypeVariant::ConfigUpgradeSet => Ok(Self::ConfigUpgradeSet(Box::new(
13775                serde_json::from_reader(r)?,
13776            ))),
13777            TypeVariant::TxSetComponentType => Ok(Self::TxSetComponentType(Box::new(
13778                serde_json::from_reader(r)?,
13779            ))),
13780            TypeVariant::DependentTxCluster => Ok(Self::DependentTxCluster(Box::new(
13781                serde_json::from_reader(r)?,
13782            ))),
13783            TypeVariant::ParallelTxExecutionStage => Ok(Self::ParallelTxExecutionStage(Box::new(
13784                serde_json::from_reader(r)?,
13785            ))),
13786            TypeVariant::ParallelTxsComponent => Ok(Self::ParallelTxsComponent(Box::new(
13787                serde_json::from_reader(r)?,
13788            ))),
13789            TypeVariant::TxSetComponent => {
13790                Ok(Self::TxSetComponent(Box::new(serde_json::from_reader(r)?)))
13791            }
13792            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => Ok(
13793                Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(serde_json::from_reader(r)?)),
13794            ),
13795            TypeVariant::TransactionPhase => Ok(Self::TransactionPhase(Box::new(
13796                serde_json::from_reader(r)?,
13797            ))),
13798            TypeVariant::TransactionSet => {
13799                Ok(Self::TransactionSet(Box::new(serde_json::from_reader(r)?)))
13800            }
13801            TypeVariant::TransactionSetV1 => Ok(Self::TransactionSetV1(Box::new(
13802                serde_json::from_reader(r)?,
13803            ))),
13804            TypeVariant::GeneralizedTransactionSet => Ok(Self::GeneralizedTransactionSet(
13805                Box::new(serde_json::from_reader(r)?),
13806            )),
13807            TypeVariant::TransactionResultPair => Ok(Self::TransactionResultPair(Box::new(
13808                serde_json::from_reader(r)?,
13809            ))),
13810            TypeVariant::TransactionResultSet => Ok(Self::TransactionResultSet(Box::new(
13811                serde_json::from_reader(r)?,
13812            ))),
13813            TypeVariant::TransactionHistoryEntry => Ok(Self::TransactionHistoryEntry(Box::new(
13814                serde_json::from_reader(r)?,
13815            ))),
13816            TypeVariant::TransactionHistoryEntryExt => Ok(Self::TransactionHistoryEntryExt(
13817                Box::new(serde_json::from_reader(r)?),
13818            )),
13819            TypeVariant::TransactionHistoryResultEntry => Ok(Self::TransactionHistoryResultEntry(
13820                Box::new(serde_json::from_reader(r)?),
13821            )),
13822            TypeVariant::TransactionHistoryResultEntryExt => Ok(
13823                Self::TransactionHistoryResultEntryExt(Box::new(serde_json::from_reader(r)?)),
13824            ),
13825            TypeVariant::LedgerHeaderHistoryEntry => Ok(Self::LedgerHeaderHistoryEntry(Box::new(
13826                serde_json::from_reader(r)?,
13827            ))),
13828            TypeVariant::LedgerHeaderHistoryEntryExt => Ok(Self::LedgerHeaderHistoryEntryExt(
13829                Box::new(serde_json::from_reader(r)?),
13830            )),
13831            TypeVariant::LedgerScpMessages => Ok(Self::LedgerScpMessages(Box::new(
13832                serde_json::from_reader(r)?,
13833            ))),
13834            TypeVariant::ScpHistoryEntryV0 => Ok(Self::ScpHistoryEntryV0(Box::new(
13835                serde_json::from_reader(r)?,
13836            ))),
13837            TypeVariant::ScpHistoryEntry => {
13838                Ok(Self::ScpHistoryEntry(Box::new(serde_json::from_reader(r)?)))
13839            }
13840            TypeVariant::LedgerEntryChangeType => Ok(Self::LedgerEntryChangeType(Box::new(
13841                serde_json::from_reader(r)?,
13842            ))),
13843            TypeVariant::LedgerEntryChange => Ok(Self::LedgerEntryChange(Box::new(
13844                serde_json::from_reader(r)?,
13845            ))),
13846            TypeVariant::LedgerEntryChanges => Ok(Self::LedgerEntryChanges(Box::new(
13847                serde_json::from_reader(r)?,
13848            ))),
13849            TypeVariant::OperationMeta => {
13850                Ok(Self::OperationMeta(Box::new(serde_json::from_reader(r)?)))
13851            }
13852            TypeVariant::TransactionMetaV1 => Ok(Self::TransactionMetaV1(Box::new(
13853                serde_json::from_reader(r)?,
13854            ))),
13855            TypeVariant::TransactionMetaV2 => Ok(Self::TransactionMetaV2(Box::new(
13856                serde_json::from_reader(r)?,
13857            ))),
13858            TypeVariant::ContractEventType => Ok(Self::ContractEventType(Box::new(
13859                serde_json::from_reader(r)?,
13860            ))),
13861            TypeVariant::ContractEvent => {
13862                Ok(Self::ContractEvent(Box::new(serde_json::from_reader(r)?)))
13863            }
13864            TypeVariant::ContractEventBody => Ok(Self::ContractEventBody(Box::new(
13865                serde_json::from_reader(r)?,
13866            ))),
13867            TypeVariant::ContractEventV0 => {
13868                Ok(Self::ContractEventV0(Box::new(serde_json::from_reader(r)?)))
13869            }
13870            TypeVariant::DiagnosticEvent => {
13871                Ok(Self::DiagnosticEvent(Box::new(serde_json::from_reader(r)?)))
13872            }
13873            TypeVariant::SorobanTransactionMetaExtV1 => Ok(Self::SorobanTransactionMetaExtV1(
13874                Box::new(serde_json::from_reader(r)?),
13875            )),
13876            TypeVariant::SorobanTransactionMetaExt => Ok(Self::SorobanTransactionMetaExt(
13877                Box::new(serde_json::from_reader(r)?),
13878            )),
13879            TypeVariant::SorobanTransactionMeta => Ok(Self::SorobanTransactionMeta(Box::new(
13880                serde_json::from_reader(r)?,
13881            ))),
13882            TypeVariant::TransactionMetaV3 => Ok(Self::TransactionMetaV3(Box::new(
13883                serde_json::from_reader(r)?,
13884            ))),
13885            TypeVariant::OperationMetaV2 => {
13886                Ok(Self::OperationMetaV2(Box::new(serde_json::from_reader(r)?)))
13887            }
13888            TypeVariant::SorobanTransactionMetaV2 => Ok(Self::SorobanTransactionMetaV2(Box::new(
13889                serde_json::from_reader(r)?,
13890            ))),
13891            TypeVariant::TransactionEventStage => Ok(Self::TransactionEventStage(Box::new(
13892                serde_json::from_reader(r)?,
13893            ))),
13894            TypeVariant::TransactionEvent => Ok(Self::TransactionEvent(Box::new(
13895                serde_json::from_reader(r)?,
13896            ))),
13897            TypeVariant::TransactionMetaV4 => Ok(Self::TransactionMetaV4(Box::new(
13898                serde_json::from_reader(r)?,
13899            ))),
13900            TypeVariant::InvokeHostFunctionSuccessPreImage => Ok(
13901                Self::InvokeHostFunctionSuccessPreImage(Box::new(serde_json::from_reader(r)?)),
13902            ),
13903            TypeVariant::TransactionMeta => {
13904                Ok(Self::TransactionMeta(Box::new(serde_json::from_reader(r)?)))
13905            }
13906            TypeVariant::TransactionResultMeta => Ok(Self::TransactionResultMeta(Box::new(
13907                serde_json::from_reader(r)?,
13908            ))),
13909            TypeVariant::TransactionResultMetaV1 => Ok(Self::TransactionResultMetaV1(Box::new(
13910                serde_json::from_reader(r)?,
13911            ))),
13912            TypeVariant::UpgradeEntryMeta => Ok(Self::UpgradeEntryMeta(Box::new(
13913                serde_json::from_reader(r)?,
13914            ))),
13915            TypeVariant::LedgerCloseMetaV0 => Ok(Self::LedgerCloseMetaV0(Box::new(
13916                serde_json::from_reader(r)?,
13917            ))),
13918            TypeVariant::LedgerCloseMetaExtV1 => Ok(Self::LedgerCloseMetaExtV1(Box::new(
13919                serde_json::from_reader(r)?,
13920            ))),
13921            TypeVariant::LedgerCloseMetaExt => Ok(Self::LedgerCloseMetaExt(Box::new(
13922                serde_json::from_reader(r)?,
13923            ))),
13924            TypeVariant::LedgerCloseMetaV1 => Ok(Self::LedgerCloseMetaV1(Box::new(
13925                serde_json::from_reader(r)?,
13926            ))),
13927            TypeVariant::LedgerCloseMetaV2 => Ok(Self::LedgerCloseMetaV2(Box::new(
13928                serde_json::from_reader(r)?,
13929            ))),
13930            TypeVariant::LedgerCloseMeta => {
13931                Ok(Self::LedgerCloseMeta(Box::new(serde_json::from_reader(r)?)))
13932            }
13933            TypeVariant::ErrorCode => Ok(Self::ErrorCode(Box::new(serde_json::from_reader(r)?))),
13934            TypeVariant::SError => Ok(Self::SError(Box::new(serde_json::from_reader(r)?))),
13935            TypeVariant::SendMore => Ok(Self::SendMore(Box::new(serde_json::from_reader(r)?))),
13936            TypeVariant::SendMoreExtended => Ok(Self::SendMoreExtended(Box::new(
13937                serde_json::from_reader(r)?,
13938            ))),
13939            TypeVariant::AuthCert => Ok(Self::AuthCert(Box::new(serde_json::from_reader(r)?))),
13940            TypeVariant::Hello => Ok(Self::Hello(Box::new(serde_json::from_reader(r)?))),
13941            TypeVariant::Auth => Ok(Self::Auth(Box::new(serde_json::from_reader(r)?))),
13942            TypeVariant::IpAddrType => Ok(Self::IpAddrType(Box::new(serde_json::from_reader(r)?))),
13943            TypeVariant::PeerAddress => {
13944                Ok(Self::PeerAddress(Box::new(serde_json::from_reader(r)?)))
13945            }
13946            TypeVariant::PeerAddressIp => {
13947                Ok(Self::PeerAddressIp(Box::new(serde_json::from_reader(r)?)))
13948            }
13949            TypeVariant::MessageType => {
13950                Ok(Self::MessageType(Box::new(serde_json::from_reader(r)?)))
13951            }
13952            TypeVariant::DontHave => Ok(Self::DontHave(Box::new(serde_json::from_reader(r)?))),
13953            TypeVariant::SurveyMessageCommandType => Ok(Self::SurveyMessageCommandType(Box::new(
13954                serde_json::from_reader(r)?,
13955            ))),
13956            TypeVariant::SurveyMessageResponseType => Ok(Self::SurveyMessageResponseType(
13957                Box::new(serde_json::from_reader(r)?),
13958            )),
13959            TypeVariant::TimeSlicedSurveyStartCollectingMessage => Ok(
13960                Self::TimeSlicedSurveyStartCollectingMessage(Box::new(serde_json::from_reader(r)?)),
13961            ),
13962            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
13963                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
13964                    Box::new(serde_json::from_reader(r)?),
13965                ))
13966            }
13967            TypeVariant::TimeSlicedSurveyStopCollectingMessage => Ok(
13968                Self::TimeSlicedSurveyStopCollectingMessage(Box::new(serde_json::from_reader(r)?)),
13969            ),
13970            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
13971                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
13972                    serde_json::from_reader(r)?,
13973                )))
13974            }
13975            TypeVariant::SurveyRequestMessage => Ok(Self::SurveyRequestMessage(Box::new(
13976                serde_json::from_reader(r)?,
13977            ))),
13978            TypeVariant::TimeSlicedSurveyRequestMessage => Ok(
13979                Self::TimeSlicedSurveyRequestMessage(Box::new(serde_json::from_reader(r)?)),
13980            ),
13981            TypeVariant::SignedTimeSlicedSurveyRequestMessage => Ok(
13982                Self::SignedTimeSlicedSurveyRequestMessage(Box::new(serde_json::from_reader(r)?)),
13983            ),
13984            TypeVariant::EncryptedBody => {
13985                Ok(Self::EncryptedBody(Box::new(serde_json::from_reader(r)?)))
13986            }
13987            TypeVariant::SurveyResponseMessage => Ok(Self::SurveyResponseMessage(Box::new(
13988                serde_json::from_reader(r)?,
13989            ))),
13990            TypeVariant::TimeSlicedSurveyResponseMessage => Ok(
13991                Self::TimeSlicedSurveyResponseMessage(Box::new(serde_json::from_reader(r)?)),
13992            ),
13993            TypeVariant::SignedTimeSlicedSurveyResponseMessage => Ok(
13994                Self::SignedTimeSlicedSurveyResponseMessage(Box::new(serde_json::from_reader(r)?)),
13995            ),
13996            TypeVariant::PeerStats => Ok(Self::PeerStats(Box::new(serde_json::from_reader(r)?))),
13997            TypeVariant::TimeSlicedNodeData => Ok(Self::TimeSlicedNodeData(Box::new(
13998                serde_json::from_reader(r)?,
13999            ))),
14000            TypeVariant::TimeSlicedPeerData => Ok(Self::TimeSlicedPeerData(Box::new(
14001                serde_json::from_reader(r)?,
14002            ))),
14003            TypeVariant::TimeSlicedPeerDataList => Ok(Self::TimeSlicedPeerDataList(Box::new(
14004                serde_json::from_reader(r)?,
14005            ))),
14006            TypeVariant::TopologyResponseBodyV2 => Ok(Self::TopologyResponseBodyV2(Box::new(
14007                serde_json::from_reader(r)?,
14008            ))),
14009            TypeVariant::SurveyResponseBody => Ok(Self::SurveyResponseBody(Box::new(
14010                serde_json::from_reader(r)?,
14011            ))),
14012            TypeVariant::TxAdvertVector => {
14013                Ok(Self::TxAdvertVector(Box::new(serde_json::from_reader(r)?)))
14014            }
14015            TypeVariant::FloodAdvert => {
14016                Ok(Self::FloodAdvert(Box::new(serde_json::from_reader(r)?)))
14017            }
14018            TypeVariant::TxDemandVector => {
14019                Ok(Self::TxDemandVector(Box::new(serde_json::from_reader(r)?)))
14020            }
14021            TypeVariant::FloodDemand => {
14022                Ok(Self::FloodDemand(Box::new(serde_json::from_reader(r)?)))
14023            }
14024            TypeVariant::StellarMessage => {
14025                Ok(Self::StellarMessage(Box::new(serde_json::from_reader(r)?)))
14026            }
14027            TypeVariant::AuthenticatedMessage => Ok(Self::AuthenticatedMessage(Box::new(
14028                serde_json::from_reader(r)?,
14029            ))),
14030            TypeVariant::AuthenticatedMessageV0 => Ok(Self::AuthenticatedMessageV0(Box::new(
14031                serde_json::from_reader(r)?,
14032            ))),
14033            TypeVariant::LiquidityPoolParameters => Ok(Self::LiquidityPoolParameters(Box::new(
14034                serde_json::from_reader(r)?,
14035            ))),
14036            TypeVariant::MuxedAccount => {
14037                Ok(Self::MuxedAccount(Box::new(serde_json::from_reader(r)?)))
14038            }
14039            TypeVariant::MuxedAccountMed25519 => Ok(Self::MuxedAccountMed25519(Box::new(
14040                serde_json::from_reader(r)?,
14041            ))),
14042            TypeVariant::DecoratedSignature => Ok(Self::DecoratedSignature(Box::new(
14043                serde_json::from_reader(r)?,
14044            ))),
14045            TypeVariant::OperationType => {
14046                Ok(Self::OperationType(Box::new(serde_json::from_reader(r)?)))
14047            }
14048            TypeVariant::CreateAccountOp => {
14049                Ok(Self::CreateAccountOp(Box::new(serde_json::from_reader(r)?)))
14050            }
14051            TypeVariant::PaymentOp => Ok(Self::PaymentOp(Box::new(serde_json::from_reader(r)?))),
14052            TypeVariant::PathPaymentStrictReceiveOp => Ok(Self::PathPaymentStrictReceiveOp(
14053                Box::new(serde_json::from_reader(r)?),
14054            )),
14055            TypeVariant::PathPaymentStrictSendOp => Ok(Self::PathPaymentStrictSendOp(Box::new(
14056                serde_json::from_reader(r)?,
14057            ))),
14058            TypeVariant::ManageSellOfferOp => Ok(Self::ManageSellOfferOp(Box::new(
14059                serde_json::from_reader(r)?,
14060            ))),
14061            TypeVariant::ManageBuyOfferOp => Ok(Self::ManageBuyOfferOp(Box::new(
14062                serde_json::from_reader(r)?,
14063            ))),
14064            TypeVariant::CreatePassiveSellOfferOp => Ok(Self::CreatePassiveSellOfferOp(Box::new(
14065                serde_json::from_reader(r)?,
14066            ))),
14067            TypeVariant::SetOptionsOp => {
14068                Ok(Self::SetOptionsOp(Box::new(serde_json::from_reader(r)?)))
14069            }
14070            TypeVariant::ChangeTrustAsset => Ok(Self::ChangeTrustAsset(Box::new(
14071                serde_json::from_reader(r)?,
14072            ))),
14073            TypeVariant::ChangeTrustOp => {
14074                Ok(Self::ChangeTrustOp(Box::new(serde_json::from_reader(r)?)))
14075            }
14076            TypeVariant::AllowTrustOp => {
14077                Ok(Self::AllowTrustOp(Box::new(serde_json::from_reader(r)?)))
14078            }
14079            TypeVariant::ManageDataOp => {
14080                Ok(Self::ManageDataOp(Box::new(serde_json::from_reader(r)?)))
14081            }
14082            TypeVariant::BumpSequenceOp => {
14083                Ok(Self::BumpSequenceOp(Box::new(serde_json::from_reader(r)?)))
14084            }
14085            TypeVariant::CreateClaimableBalanceOp => Ok(Self::CreateClaimableBalanceOp(Box::new(
14086                serde_json::from_reader(r)?,
14087            ))),
14088            TypeVariant::ClaimClaimableBalanceOp => Ok(Self::ClaimClaimableBalanceOp(Box::new(
14089                serde_json::from_reader(r)?,
14090            ))),
14091            TypeVariant::BeginSponsoringFutureReservesOp => Ok(
14092                Self::BeginSponsoringFutureReservesOp(Box::new(serde_json::from_reader(r)?)),
14093            ),
14094            TypeVariant::RevokeSponsorshipType => Ok(Self::RevokeSponsorshipType(Box::new(
14095                serde_json::from_reader(r)?,
14096            ))),
14097            TypeVariant::RevokeSponsorshipOp => Ok(Self::RevokeSponsorshipOp(Box::new(
14098                serde_json::from_reader(r)?,
14099            ))),
14100            TypeVariant::RevokeSponsorshipOpSigner => Ok(Self::RevokeSponsorshipOpSigner(
14101                Box::new(serde_json::from_reader(r)?),
14102            )),
14103            TypeVariant::ClawbackOp => Ok(Self::ClawbackOp(Box::new(serde_json::from_reader(r)?))),
14104            TypeVariant::ClawbackClaimableBalanceOp => Ok(Self::ClawbackClaimableBalanceOp(
14105                Box::new(serde_json::from_reader(r)?),
14106            )),
14107            TypeVariant::SetTrustLineFlagsOp => Ok(Self::SetTrustLineFlagsOp(Box::new(
14108                serde_json::from_reader(r)?,
14109            ))),
14110            TypeVariant::LiquidityPoolDepositOp => Ok(Self::LiquidityPoolDepositOp(Box::new(
14111                serde_json::from_reader(r)?,
14112            ))),
14113            TypeVariant::LiquidityPoolWithdrawOp => Ok(Self::LiquidityPoolWithdrawOp(Box::new(
14114                serde_json::from_reader(r)?,
14115            ))),
14116            TypeVariant::HostFunctionType => Ok(Self::HostFunctionType(Box::new(
14117                serde_json::from_reader(r)?,
14118            ))),
14119            TypeVariant::ContractIdPreimageType => Ok(Self::ContractIdPreimageType(Box::new(
14120                serde_json::from_reader(r)?,
14121            ))),
14122            TypeVariant::ContractIdPreimage => Ok(Self::ContractIdPreimage(Box::new(
14123                serde_json::from_reader(r)?,
14124            ))),
14125            TypeVariant::ContractIdPreimageFromAddress => Ok(Self::ContractIdPreimageFromAddress(
14126                Box::new(serde_json::from_reader(r)?),
14127            )),
14128            TypeVariant::CreateContractArgs => Ok(Self::CreateContractArgs(Box::new(
14129                serde_json::from_reader(r)?,
14130            ))),
14131            TypeVariant::CreateContractArgsV2 => Ok(Self::CreateContractArgsV2(Box::new(
14132                serde_json::from_reader(r)?,
14133            ))),
14134            TypeVariant::InvokeContractArgs => Ok(Self::InvokeContractArgs(Box::new(
14135                serde_json::from_reader(r)?,
14136            ))),
14137            TypeVariant::HostFunction => {
14138                Ok(Self::HostFunction(Box::new(serde_json::from_reader(r)?)))
14139            }
14140            TypeVariant::SorobanAuthorizedFunctionType => Ok(Self::SorobanAuthorizedFunctionType(
14141                Box::new(serde_json::from_reader(r)?),
14142            )),
14143            TypeVariant::SorobanAuthorizedFunction => Ok(Self::SorobanAuthorizedFunction(
14144                Box::new(serde_json::from_reader(r)?),
14145            )),
14146            TypeVariant::SorobanAuthorizedInvocation => Ok(Self::SorobanAuthorizedInvocation(
14147                Box::new(serde_json::from_reader(r)?),
14148            )),
14149            TypeVariant::SorobanAddressCredentials => Ok(Self::SorobanAddressCredentials(
14150                Box::new(serde_json::from_reader(r)?),
14151            )),
14152            TypeVariant::SorobanDelegateSignature => Ok(Self::SorobanDelegateSignature(Box::new(
14153                serde_json::from_reader(r)?,
14154            ))),
14155            TypeVariant::SorobanAddressCredentialsWithDelegates => Ok(
14156                Self::SorobanAddressCredentialsWithDelegates(Box::new(serde_json::from_reader(r)?)),
14157            ),
14158            TypeVariant::SorobanCredentialsType => Ok(Self::SorobanCredentialsType(Box::new(
14159                serde_json::from_reader(r)?,
14160            ))),
14161            TypeVariant::SorobanCredentials => Ok(Self::SorobanCredentials(Box::new(
14162                serde_json::from_reader(r)?,
14163            ))),
14164            TypeVariant::SorobanAuthorizationEntry => Ok(Self::SorobanAuthorizationEntry(
14165                Box::new(serde_json::from_reader(r)?),
14166            )),
14167            TypeVariant::SorobanAuthorizationEntries => Ok(Self::SorobanAuthorizationEntries(
14168                Box::new(serde_json::from_reader(r)?),
14169            )),
14170            TypeVariant::InvokeHostFunctionOp => Ok(Self::InvokeHostFunctionOp(Box::new(
14171                serde_json::from_reader(r)?,
14172            ))),
14173            TypeVariant::ExtendFootprintTtlOp => Ok(Self::ExtendFootprintTtlOp(Box::new(
14174                serde_json::from_reader(r)?,
14175            ))),
14176            TypeVariant::RestoreFootprintOp => Ok(Self::RestoreFootprintOp(Box::new(
14177                serde_json::from_reader(r)?,
14178            ))),
14179            TypeVariant::Operation => Ok(Self::Operation(Box::new(serde_json::from_reader(r)?))),
14180            TypeVariant::OperationBody => {
14181                Ok(Self::OperationBody(Box::new(serde_json::from_reader(r)?)))
14182            }
14183            TypeVariant::HashIdPreimage => {
14184                Ok(Self::HashIdPreimage(Box::new(serde_json::from_reader(r)?)))
14185            }
14186            TypeVariant::HashIdPreimageOperationId => Ok(Self::HashIdPreimageOperationId(
14187                Box::new(serde_json::from_reader(r)?),
14188            )),
14189            TypeVariant::HashIdPreimageRevokeId => Ok(Self::HashIdPreimageRevokeId(Box::new(
14190                serde_json::from_reader(r)?,
14191            ))),
14192            TypeVariant::HashIdPreimageContractId => Ok(Self::HashIdPreimageContractId(Box::new(
14193                serde_json::from_reader(r)?,
14194            ))),
14195            TypeVariant::HashIdPreimageSorobanAuthorization => Ok(
14196                Self::HashIdPreimageSorobanAuthorization(Box::new(serde_json::from_reader(r)?)),
14197            ),
14198            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
14199                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
14200                    Box::new(serde_json::from_reader(r)?),
14201                ))
14202            }
14203            TypeVariant::MemoType => Ok(Self::MemoType(Box::new(serde_json::from_reader(r)?))),
14204            TypeVariant::Memo => Ok(Self::Memo(Box::new(serde_json::from_reader(r)?))),
14205            TypeVariant::TimeBounds => Ok(Self::TimeBounds(Box::new(serde_json::from_reader(r)?))),
14206            TypeVariant::LedgerBounds => {
14207                Ok(Self::LedgerBounds(Box::new(serde_json::from_reader(r)?)))
14208            }
14209            TypeVariant::PreconditionsV2 => {
14210                Ok(Self::PreconditionsV2(Box::new(serde_json::from_reader(r)?)))
14211            }
14212            TypeVariant::PreconditionType => Ok(Self::PreconditionType(Box::new(
14213                serde_json::from_reader(r)?,
14214            ))),
14215            TypeVariant::Preconditions => {
14216                Ok(Self::Preconditions(Box::new(serde_json::from_reader(r)?)))
14217            }
14218            TypeVariant::LedgerFootprint => {
14219                Ok(Self::LedgerFootprint(Box::new(serde_json::from_reader(r)?)))
14220            }
14221            TypeVariant::SorobanResources => Ok(Self::SorobanResources(Box::new(
14222                serde_json::from_reader(r)?,
14223            ))),
14224            TypeVariant::SorobanResourcesExtV0 => Ok(Self::SorobanResourcesExtV0(Box::new(
14225                serde_json::from_reader(r)?,
14226            ))),
14227            TypeVariant::SorobanTransactionData => Ok(Self::SorobanTransactionData(Box::new(
14228                serde_json::from_reader(r)?,
14229            ))),
14230            TypeVariant::SorobanTransactionDataExt => Ok(Self::SorobanTransactionDataExt(
14231                Box::new(serde_json::from_reader(r)?),
14232            )),
14233            TypeVariant::TransactionV0 => {
14234                Ok(Self::TransactionV0(Box::new(serde_json::from_reader(r)?)))
14235            }
14236            TypeVariant::TransactionV0Ext => Ok(Self::TransactionV0Ext(Box::new(
14237                serde_json::from_reader(r)?,
14238            ))),
14239            TypeVariant::TransactionV0Envelope => Ok(Self::TransactionV0Envelope(Box::new(
14240                serde_json::from_reader(r)?,
14241            ))),
14242            TypeVariant::Transaction => {
14243                Ok(Self::Transaction(Box::new(serde_json::from_reader(r)?)))
14244            }
14245            TypeVariant::TransactionExt => {
14246                Ok(Self::TransactionExt(Box::new(serde_json::from_reader(r)?)))
14247            }
14248            TypeVariant::TransactionV1Envelope => Ok(Self::TransactionV1Envelope(Box::new(
14249                serde_json::from_reader(r)?,
14250            ))),
14251            TypeVariant::FeeBumpTransaction => Ok(Self::FeeBumpTransaction(Box::new(
14252                serde_json::from_reader(r)?,
14253            ))),
14254            TypeVariant::FeeBumpTransactionInnerTx => Ok(Self::FeeBumpTransactionInnerTx(
14255                Box::new(serde_json::from_reader(r)?),
14256            )),
14257            TypeVariant::FeeBumpTransactionExt => Ok(Self::FeeBumpTransactionExt(Box::new(
14258                serde_json::from_reader(r)?,
14259            ))),
14260            TypeVariant::FeeBumpTransactionEnvelope => Ok(Self::FeeBumpTransactionEnvelope(
14261                Box::new(serde_json::from_reader(r)?),
14262            )),
14263            TypeVariant::TransactionEnvelope => Ok(Self::TransactionEnvelope(Box::new(
14264                serde_json::from_reader(r)?,
14265            ))),
14266            TypeVariant::TransactionSignaturePayload => Ok(Self::TransactionSignaturePayload(
14267                Box::new(serde_json::from_reader(r)?),
14268            )),
14269            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
14270                Ok(Self::TransactionSignaturePayloadTaggedTransaction(
14271                    Box::new(serde_json::from_reader(r)?),
14272                ))
14273            }
14274            TypeVariant::ClaimAtomType => {
14275                Ok(Self::ClaimAtomType(Box::new(serde_json::from_reader(r)?)))
14276            }
14277            TypeVariant::ClaimOfferAtomV0 => Ok(Self::ClaimOfferAtomV0(Box::new(
14278                serde_json::from_reader(r)?,
14279            ))),
14280            TypeVariant::ClaimOfferAtom => {
14281                Ok(Self::ClaimOfferAtom(Box::new(serde_json::from_reader(r)?)))
14282            }
14283            TypeVariant::ClaimLiquidityAtom => Ok(Self::ClaimLiquidityAtom(Box::new(
14284                serde_json::from_reader(r)?,
14285            ))),
14286            TypeVariant::ClaimAtom => Ok(Self::ClaimAtom(Box::new(serde_json::from_reader(r)?))),
14287            TypeVariant::CreateAccountResultCode => Ok(Self::CreateAccountResultCode(Box::new(
14288                serde_json::from_reader(r)?,
14289            ))),
14290            TypeVariant::CreateAccountResult => Ok(Self::CreateAccountResult(Box::new(
14291                serde_json::from_reader(r)?,
14292            ))),
14293            TypeVariant::PaymentResultCode => Ok(Self::PaymentResultCode(Box::new(
14294                serde_json::from_reader(r)?,
14295            ))),
14296            TypeVariant::PaymentResult => {
14297                Ok(Self::PaymentResult(Box::new(serde_json::from_reader(r)?)))
14298            }
14299            TypeVariant::PathPaymentStrictReceiveResultCode => Ok(
14300                Self::PathPaymentStrictReceiveResultCode(Box::new(serde_json::from_reader(r)?)),
14301            ),
14302            TypeVariant::SimplePaymentResult => Ok(Self::SimplePaymentResult(Box::new(
14303                serde_json::from_reader(r)?,
14304            ))),
14305            TypeVariant::PathPaymentStrictReceiveResult => Ok(
14306                Self::PathPaymentStrictReceiveResult(Box::new(serde_json::from_reader(r)?)),
14307            ),
14308            TypeVariant::PathPaymentStrictReceiveResultSuccess => Ok(
14309                Self::PathPaymentStrictReceiveResultSuccess(Box::new(serde_json::from_reader(r)?)),
14310            ),
14311            TypeVariant::PathPaymentStrictSendResultCode => Ok(
14312                Self::PathPaymentStrictSendResultCode(Box::new(serde_json::from_reader(r)?)),
14313            ),
14314            TypeVariant::PathPaymentStrictSendResult => Ok(Self::PathPaymentStrictSendResult(
14315                Box::new(serde_json::from_reader(r)?),
14316            )),
14317            TypeVariant::PathPaymentStrictSendResultSuccess => Ok(
14318                Self::PathPaymentStrictSendResultSuccess(Box::new(serde_json::from_reader(r)?)),
14319            ),
14320            TypeVariant::ManageSellOfferResultCode => Ok(Self::ManageSellOfferResultCode(
14321                Box::new(serde_json::from_reader(r)?),
14322            )),
14323            TypeVariant::ManageOfferEffect => Ok(Self::ManageOfferEffect(Box::new(
14324                serde_json::from_reader(r)?,
14325            ))),
14326            TypeVariant::ManageOfferSuccessResult => Ok(Self::ManageOfferSuccessResult(Box::new(
14327                serde_json::from_reader(r)?,
14328            ))),
14329            TypeVariant::ManageOfferSuccessResultOffer => Ok(Self::ManageOfferSuccessResultOffer(
14330                Box::new(serde_json::from_reader(r)?),
14331            )),
14332            TypeVariant::ManageSellOfferResult => Ok(Self::ManageSellOfferResult(Box::new(
14333                serde_json::from_reader(r)?,
14334            ))),
14335            TypeVariant::ManageBuyOfferResultCode => Ok(Self::ManageBuyOfferResultCode(Box::new(
14336                serde_json::from_reader(r)?,
14337            ))),
14338            TypeVariant::ManageBuyOfferResult => Ok(Self::ManageBuyOfferResult(Box::new(
14339                serde_json::from_reader(r)?,
14340            ))),
14341            TypeVariant::SetOptionsResultCode => Ok(Self::SetOptionsResultCode(Box::new(
14342                serde_json::from_reader(r)?,
14343            ))),
14344            TypeVariant::SetOptionsResult => Ok(Self::SetOptionsResult(Box::new(
14345                serde_json::from_reader(r)?,
14346            ))),
14347            TypeVariant::ChangeTrustResultCode => Ok(Self::ChangeTrustResultCode(Box::new(
14348                serde_json::from_reader(r)?,
14349            ))),
14350            TypeVariant::ChangeTrustResult => Ok(Self::ChangeTrustResult(Box::new(
14351                serde_json::from_reader(r)?,
14352            ))),
14353            TypeVariant::AllowTrustResultCode => Ok(Self::AllowTrustResultCode(Box::new(
14354                serde_json::from_reader(r)?,
14355            ))),
14356            TypeVariant::AllowTrustResult => Ok(Self::AllowTrustResult(Box::new(
14357                serde_json::from_reader(r)?,
14358            ))),
14359            TypeVariant::AccountMergeResultCode => Ok(Self::AccountMergeResultCode(Box::new(
14360                serde_json::from_reader(r)?,
14361            ))),
14362            TypeVariant::AccountMergeResult => Ok(Self::AccountMergeResult(Box::new(
14363                serde_json::from_reader(r)?,
14364            ))),
14365            TypeVariant::InflationResultCode => Ok(Self::InflationResultCode(Box::new(
14366                serde_json::from_reader(r)?,
14367            ))),
14368            TypeVariant::InflationPayout => {
14369                Ok(Self::InflationPayout(Box::new(serde_json::from_reader(r)?)))
14370            }
14371            TypeVariant::InflationResult => {
14372                Ok(Self::InflationResult(Box::new(serde_json::from_reader(r)?)))
14373            }
14374            TypeVariant::ManageDataResultCode => Ok(Self::ManageDataResultCode(Box::new(
14375                serde_json::from_reader(r)?,
14376            ))),
14377            TypeVariant::ManageDataResult => Ok(Self::ManageDataResult(Box::new(
14378                serde_json::from_reader(r)?,
14379            ))),
14380            TypeVariant::BumpSequenceResultCode => Ok(Self::BumpSequenceResultCode(Box::new(
14381                serde_json::from_reader(r)?,
14382            ))),
14383            TypeVariant::BumpSequenceResult => Ok(Self::BumpSequenceResult(Box::new(
14384                serde_json::from_reader(r)?,
14385            ))),
14386            TypeVariant::CreateClaimableBalanceResultCode => Ok(
14387                Self::CreateClaimableBalanceResultCode(Box::new(serde_json::from_reader(r)?)),
14388            ),
14389            TypeVariant::CreateClaimableBalanceResult => Ok(Self::CreateClaimableBalanceResult(
14390                Box::new(serde_json::from_reader(r)?),
14391            )),
14392            TypeVariant::ClaimClaimableBalanceResultCode => Ok(
14393                Self::ClaimClaimableBalanceResultCode(Box::new(serde_json::from_reader(r)?)),
14394            ),
14395            TypeVariant::ClaimClaimableBalanceResult => Ok(Self::ClaimClaimableBalanceResult(
14396                Box::new(serde_json::from_reader(r)?),
14397            )),
14398            TypeVariant::BeginSponsoringFutureReservesResultCode => {
14399                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
14400                    serde_json::from_reader(r)?,
14401                )))
14402            }
14403            TypeVariant::BeginSponsoringFutureReservesResult => Ok(
14404                Self::BeginSponsoringFutureReservesResult(Box::new(serde_json::from_reader(r)?)),
14405            ),
14406            TypeVariant::EndSponsoringFutureReservesResultCode => Ok(
14407                Self::EndSponsoringFutureReservesResultCode(Box::new(serde_json::from_reader(r)?)),
14408            ),
14409            TypeVariant::EndSponsoringFutureReservesResult => Ok(
14410                Self::EndSponsoringFutureReservesResult(Box::new(serde_json::from_reader(r)?)),
14411            ),
14412            TypeVariant::RevokeSponsorshipResultCode => Ok(Self::RevokeSponsorshipResultCode(
14413                Box::new(serde_json::from_reader(r)?),
14414            )),
14415            TypeVariant::RevokeSponsorshipResult => Ok(Self::RevokeSponsorshipResult(Box::new(
14416                serde_json::from_reader(r)?,
14417            ))),
14418            TypeVariant::ClawbackResultCode => Ok(Self::ClawbackResultCode(Box::new(
14419                serde_json::from_reader(r)?,
14420            ))),
14421            TypeVariant::ClawbackResult => {
14422                Ok(Self::ClawbackResult(Box::new(serde_json::from_reader(r)?)))
14423            }
14424            TypeVariant::ClawbackClaimableBalanceResultCode => Ok(
14425                Self::ClawbackClaimableBalanceResultCode(Box::new(serde_json::from_reader(r)?)),
14426            ),
14427            TypeVariant::ClawbackClaimableBalanceResult => Ok(
14428                Self::ClawbackClaimableBalanceResult(Box::new(serde_json::from_reader(r)?)),
14429            ),
14430            TypeVariant::SetTrustLineFlagsResultCode => Ok(Self::SetTrustLineFlagsResultCode(
14431                Box::new(serde_json::from_reader(r)?),
14432            )),
14433            TypeVariant::SetTrustLineFlagsResult => Ok(Self::SetTrustLineFlagsResult(Box::new(
14434                serde_json::from_reader(r)?,
14435            ))),
14436            TypeVariant::LiquidityPoolDepositResultCode => Ok(
14437                Self::LiquidityPoolDepositResultCode(Box::new(serde_json::from_reader(r)?)),
14438            ),
14439            TypeVariant::LiquidityPoolDepositResult => Ok(Self::LiquidityPoolDepositResult(
14440                Box::new(serde_json::from_reader(r)?),
14441            )),
14442            TypeVariant::LiquidityPoolWithdrawResultCode => Ok(
14443                Self::LiquidityPoolWithdrawResultCode(Box::new(serde_json::from_reader(r)?)),
14444            ),
14445            TypeVariant::LiquidityPoolWithdrawResult => Ok(Self::LiquidityPoolWithdrawResult(
14446                Box::new(serde_json::from_reader(r)?),
14447            )),
14448            TypeVariant::InvokeHostFunctionResultCode => Ok(Self::InvokeHostFunctionResultCode(
14449                Box::new(serde_json::from_reader(r)?),
14450            )),
14451            TypeVariant::InvokeHostFunctionResult => Ok(Self::InvokeHostFunctionResult(Box::new(
14452                serde_json::from_reader(r)?,
14453            ))),
14454            TypeVariant::ExtendFootprintTtlResultCode => Ok(Self::ExtendFootprintTtlResultCode(
14455                Box::new(serde_json::from_reader(r)?),
14456            )),
14457            TypeVariant::ExtendFootprintTtlResult => Ok(Self::ExtendFootprintTtlResult(Box::new(
14458                serde_json::from_reader(r)?,
14459            ))),
14460            TypeVariant::RestoreFootprintResultCode => Ok(Self::RestoreFootprintResultCode(
14461                Box::new(serde_json::from_reader(r)?),
14462            )),
14463            TypeVariant::RestoreFootprintResult => Ok(Self::RestoreFootprintResult(Box::new(
14464                serde_json::from_reader(r)?,
14465            ))),
14466            TypeVariant::OperationResultCode => Ok(Self::OperationResultCode(Box::new(
14467                serde_json::from_reader(r)?,
14468            ))),
14469            TypeVariant::OperationResult => {
14470                Ok(Self::OperationResult(Box::new(serde_json::from_reader(r)?)))
14471            }
14472            TypeVariant::OperationResultTr => Ok(Self::OperationResultTr(Box::new(
14473                serde_json::from_reader(r)?,
14474            ))),
14475            TypeVariant::TransactionResultCode => Ok(Self::TransactionResultCode(Box::new(
14476                serde_json::from_reader(r)?,
14477            ))),
14478            TypeVariant::InnerTransactionResult => Ok(Self::InnerTransactionResult(Box::new(
14479                serde_json::from_reader(r)?,
14480            ))),
14481            TypeVariant::InnerTransactionResultResult => Ok(Self::InnerTransactionResultResult(
14482                Box::new(serde_json::from_reader(r)?),
14483            )),
14484            TypeVariant::InnerTransactionResultExt => Ok(Self::InnerTransactionResultExt(
14485                Box::new(serde_json::from_reader(r)?),
14486            )),
14487            TypeVariant::InnerTransactionResultPair => Ok(Self::InnerTransactionResultPair(
14488                Box::new(serde_json::from_reader(r)?),
14489            )),
14490            TypeVariant::TransactionResult => Ok(Self::TransactionResult(Box::new(
14491                serde_json::from_reader(r)?,
14492            ))),
14493            TypeVariant::TransactionResultResult => Ok(Self::TransactionResultResult(Box::new(
14494                serde_json::from_reader(r)?,
14495            ))),
14496            TypeVariant::TransactionResultExt => Ok(Self::TransactionResultExt(Box::new(
14497                serde_json::from_reader(r)?,
14498            ))),
14499            TypeVariant::Hash => Ok(Self::Hash(Box::new(serde_json::from_reader(r)?))),
14500            TypeVariant::Uint256 => Ok(Self::Uint256(Box::new(serde_json::from_reader(r)?))),
14501            TypeVariant::Uint32 => Ok(Self::Uint32(Box::new(serde_json::from_reader(r)?))),
14502            TypeVariant::Int32 => Ok(Self::Int32(Box::new(serde_json::from_reader(r)?))),
14503            TypeVariant::Uint64 => Ok(Self::Uint64(Box::new(serde_json::from_reader(r)?))),
14504            TypeVariant::Int64 => Ok(Self::Int64(Box::new(serde_json::from_reader(r)?))),
14505            TypeVariant::TimePoint => Ok(Self::TimePoint(Box::new(serde_json::from_reader(r)?))),
14506            TypeVariant::Duration => Ok(Self::Duration(Box::new(serde_json::from_reader(r)?))),
14507            TypeVariant::ExtensionPoint => {
14508                Ok(Self::ExtensionPoint(Box::new(serde_json::from_reader(r)?)))
14509            }
14510            TypeVariant::CryptoKeyType => {
14511                Ok(Self::CryptoKeyType(Box::new(serde_json::from_reader(r)?)))
14512            }
14513            TypeVariant::PublicKeyType => {
14514                Ok(Self::PublicKeyType(Box::new(serde_json::from_reader(r)?)))
14515            }
14516            TypeVariant::SignerKeyType => {
14517                Ok(Self::SignerKeyType(Box::new(serde_json::from_reader(r)?)))
14518            }
14519            TypeVariant::PublicKey => Ok(Self::PublicKey(Box::new(serde_json::from_reader(r)?))),
14520            TypeVariant::SignerKey => Ok(Self::SignerKey(Box::new(serde_json::from_reader(r)?))),
14521            TypeVariant::SignerKeyEd25519SignedPayload => Ok(Self::SignerKeyEd25519SignedPayload(
14522                Box::new(serde_json::from_reader(r)?),
14523            )),
14524            TypeVariant::Signature => Ok(Self::Signature(Box::new(serde_json::from_reader(r)?))),
14525            TypeVariant::SignatureHint => {
14526                Ok(Self::SignatureHint(Box::new(serde_json::from_reader(r)?)))
14527            }
14528            TypeVariant::NodeId => Ok(Self::NodeId(Box::new(serde_json::from_reader(r)?))),
14529            TypeVariant::AccountId => Ok(Self::AccountId(Box::new(serde_json::from_reader(r)?))),
14530            TypeVariant::ContractId => Ok(Self::ContractId(Box::new(serde_json::from_reader(r)?))),
14531            TypeVariant::Curve25519Secret => Ok(Self::Curve25519Secret(Box::new(
14532                serde_json::from_reader(r)?,
14533            ))),
14534            TypeVariant::Curve25519Public => Ok(Self::Curve25519Public(Box::new(
14535                serde_json::from_reader(r)?,
14536            ))),
14537            TypeVariant::HmacSha256Key => {
14538                Ok(Self::HmacSha256Key(Box::new(serde_json::from_reader(r)?)))
14539            }
14540            TypeVariant::HmacSha256Mac => {
14541                Ok(Self::HmacSha256Mac(Box::new(serde_json::from_reader(r)?)))
14542            }
14543            TypeVariant::ShortHashSeed => {
14544                Ok(Self::ShortHashSeed(Box::new(serde_json::from_reader(r)?)))
14545            }
14546            TypeVariant::BinaryFuseFilterType => Ok(Self::BinaryFuseFilterType(Box::new(
14547                serde_json::from_reader(r)?,
14548            ))),
14549            TypeVariant::SerializedBinaryFuseFilter => Ok(Self::SerializedBinaryFuseFilter(
14550                Box::new(serde_json::from_reader(r)?),
14551            )),
14552            TypeVariant::PoolId => Ok(Self::PoolId(Box::new(serde_json::from_reader(r)?))),
14553            TypeVariant::ClaimableBalanceIdType => Ok(Self::ClaimableBalanceIdType(Box::new(
14554                serde_json::from_reader(r)?,
14555            ))),
14556            TypeVariant::ClaimableBalanceId => Ok(Self::ClaimableBalanceId(Box::new(
14557                serde_json::from_reader(r)?,
14558            ))),
14559            #[cfg(feature = "test_feature")]
14560            TypeVariant::TestNextType => {
14561                Ok(Self::TestNextType(Box::new(serde_json::from_reader(r)?)))
14562            }
14563        }
14564    }
14565
14566    #[cfg(all(feature = "std", feature = "serde_json"))]
14567    #[allow(clippy::too_many_lines)]
14568    pub fn deserialize_json<'r, R: serde_json::de::Read<'r>>(
14569        v: TypeVariant,
14570        r: &mut serde_json::de::Deserializer<R>,
14571    ) -> Result<Self, Error> {
14572        match v {
14573            TypeVariant::Value => Ok(Self::Value(Box::new(serde::de::Deserialize::deserialize(
14574                r,
14575            )?))),
14576            TypeVariant::ScpBallot => Ok(Self::ScpBallot(Box::new(
14577                serde::de::Deserialize::deserialize(r)?,
14578            ))),
14579            TypeVariant::ScpStatementType => Ok(Self::ScpStatementType(Box::new(
14580                serde::de::Deserialize::deserialize(r)?,
14581            ))),
14582            TypeVariant::ScpNomination => Ok(Self::ScpNomination(Box::new(
14583                serde::de::Deserialize::deserialize(r)?,
14584            ))),
14585            TypeVariant::ScpStatement => Ok(Self::ScpStatement(Box::new(
14586                serde::de::Deserialize::deserialize(r)?,
14587            ))),
14588            TypeVariant::ScpStatementPledges => Ok(Self::ScpStatementPledges(Box::new(
14589                serde::de::Deserialize::deserialize(r)?,
14590            ))),
14591            TypeVariant::ScpStatementPrepare => Ok(Self::ScpStatementPrepare(Box::new(
14592                serde::de::Deserialize::deserialize(r)?,
14593            ))),
14594            TypeVariant::ScpStatementConfirm => Ok(Self::ScpStatementConfirm(Box::new(
14595                serde::de::Deserialize::deserialize(r)?,
14596            ))),
14597            TypeVariant::ScpStatementExternalize => Ok(Self::ScpStatementExternalize(Box::new(
14598                serde::de::Deserialize::deserialize(r)?,
14599            ))),
14600            TypeVariant::ScpEnvelope => Ok(Self::ScpEnvelope(Box::new(
14601                serde::de::Deserialize::deserialize(r)?,
14602            ))),
14603            TypeVariant::ScpQuorumSet => Ok(Self::ScpQuorumSet(Box::new(
14604                serde::de::Deserialize::deserialize(r)?,
14605            ))),
14606            TypeVariant::EncodedLedgerKey => Ok(Self::EncodedLedgerKey(Box::new(
14607                serde::de::Deserialize::deserialize(r)?,
14608            ))),
14609            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
14610                Ok(Self::ConfigSettingContractExecutionLanesV0(Box::new(
14611                    serde::de::Deserialize::deserialize(r)?,
14612                )))
14613            }
14614            TypeVariant::ConfigSettingContractComputeV0 => {
14615                Ok(Self::ConfigSettingContractComputeV0(Box::new(
14616                    serde::de::Deserialize::deserialize(r)?,
14617                )))
14618            }
14619            TypeVariant::ConfigSettingContractParallelComputeV0 => {
14620                Ok(Self::ConfigSettingContractParallelComputeV0(Box::new(
14621                    serde::de::Deserialize::deserialize(r)?,
14622                )))
14623            }
14624            TypeVariant::ConfigSettingContractLedgerCostV0 => {
14625                Ok(Self::ConfigSettingContractLedgerCostV0(Box::new(
14626                    serde::de::Deserialize::deserialize(r)?,
14627                )))
14628            }
14629            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
14630                Ok(Self::ConfigSettingContractLedgerCostExtV0(Box::new(
14631                    serde::de::Deserialize::deserialize(r)?,
14632                )))
14633            }
14634            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
14635                Ok(Self::ConfigSettingContractHistoricalDataV0(Box::new(
14636                    serde::de::Deserialize::deserialize(r)?,
14637                )))
14638            }
14639            TypeVariant::ConfigSettingContractEventsV0 => Ok(Self::ConfigSettingContractEventsV0(
14640                Box::new(serde::de::Deserialize::deserialize(r)?),
14641            )),
14642            TypeVariant::ConfigSettingContractBandwidthV0 => {
14643                Ok(Self::ConfigSettingContractBandwidthV0(Box::new(
14644                    serde::de::Deserialize::deserialize(r)?,
14645                )))
14646            }
14647            TypeVariant::ContractCostType => Ok(Self::ContractCostType(Box::new(
14648                serde::de::Deserialize::deserialize(r)?,
14649            ))),
14650            TypeVariant::ContractCostParamEntry => Ok(Self::ContractCostParamEntry(Box::new(
14651                serde::de::Deserialize::deserialize(r)?,
14652            ))),
14653            TypeVariant::StateArchivalSettings => Ok(Self::StateArchivalSettings(Box::new(
14654                serde::de::Deserialize::deserialize(r)?,
14655            ))),
14656            TypeVariant::EvictionIterator => Ok(Self::EvictionIterator(Box::new(
14657                serde::de::Deserialize::deserialize(r)?,
14658            ))),
14659            TypeVariant::ConfigSettingScpTiming => Ok(Self::ConfigSettingScpTiming(Box::new(
14660                serde::de::Deserialize::deserialize(r)?,
14661            ))),
14662            TypeVariant::FrozenLedgerKeys => Ok(Self::FrozenLedgerKeys(Box::new(
14663                serde::de::Deserialize::deserialize(r)?,
14664            ))),
14665            TypeVariant::FrozenLedgerKeysDelta => Ok(Self::FrozenLedgerKeysDelta(Box::new(
14666                serde::de::Deserialize::deserialize(r)?,
14667            ))),
14668            TypeVariant::FreezeBypassTxs => Ok(Self::FreezeBypassTxs(Box::new(
14669                serde::de::Deserialize::deserialize(r)?,
14670            ))),
14671            TypeVariant::FreezeBypassTxsDelta => Ok(Self::FreezeBypassTxsDelta(Box::new(
14672                serde::de::Deserialize::deserialize(r)?,
14673            ))),
14674            TypeVariant::ContractCostParams => Ok(Self::ContractCostParams(Box::new(
14675                serde::de::Deserialize::deserialize(r)?,
14676            ))),
14677            TypeVariant::ConfigSettingId => Ok(Self::ConfigSettingId(Box::new(
14678                serde::de::Deserialize::deserialize(r)?,
14679            ))),
14680            TypeVariant::ConfigSettingEntry => Ok(Self::ConfigSettingEntry(Box::new(
14681                serde::de::Deserialize::deserialize(r)?,
14682            ))),
14683            TypeVariant::ScEnvMetaKind => Ok(Self::ScEnvMetaKind(Box::new(
14684                serde::de::Deserialize::deserialize(r)?,
14685            ))),
14686            TypeVariant::ScEnvMetaEntry => Ok(Self::ScEnvMetaEntry(Box::new(
14687                serde::de::Deserialize::deserialize(r)?,
14688            ))),
14689            TypeVariant::ScEnvMetaEntryInterfaceVersion => {
14690                Ok(Self::ScEnvMetaEntryInterfaceVersion(Box::new(
14691                    serde::de::Deserialize::deserialize(r)?,
14692                )))
14693            }
14694            TypeVariant::ScMetaV0 => Ok(Self::ScMetaV0(Box::new(
14695                serde::de::Deserialize::deserialize(r)?,
14696            ))),
14697            TypeVariant::ScMetaKind => Ok(Self::ScMetaKind(Box::new(
14698                serde::de::Deserialize::deserialize(r)?,
14699            ))),
14700            TypeVariant::ScMetaEntry => Ok(Self::ScMetaEntry(Box::new(
14701                serde::de::Deserialize::deserialize(r)?,
14702            ))),
14703            TypeVariant::ScSpecType => Ok(Self::ScSpecType(Box::new(
14704                serde::de::Deserialize::deserialize(r)?,
14705            ))),
14706            TypeVariant::ScSpecTypeOption => Ok(Self::ScSpecTypeOption(Box::new(
14707                serde::de::Deserialize::deserialize(r)?,
14708            ))),
14709            TypeVariant::ScSpecTypeResult => Ok(Self::ScSpecTypeResult(Box::new(
14710                serde::de::Deserialize::deserialize(r)?,
14711            ))),
14712            TypeVariant::ScSpecTypeVec => Ok(Self::ScSpecTypeVec(Box::new(
14713                serde::de::Deserialize::deserialize(r)?,
14714            ))),
14715            TypeVariant::ScSpecTypeMap => Ok(Self::ScSpecTypeMap(Box::new(
14716                serde::de::Deserialize::deserialize(r)?,
14717            ))),
14718            TypeVariant::ScSpecTypeTuple => Ok(Self::ScSpecTypeTuple(Box::new(
14719                serde::de::Deserialize::deserialize(r)?,
14720            ))),
14721            TypeVariant::ScSpecTypeBytesN => Ok(Self::ScSpecTypeBytesN(Box::new(
14722                serde::de::Deserialize::deserialize(r)?,
14723            ))),
14724            TypeVariant::ScSpecTypeUdt => Ok(Self::ScSpecTypeUdt(Box::new(
14725                serde::de::Deserialize::deserialize(r)?,
14726            ))),
14727            TypeVariant::ScSpecTypeDef => Ok(Self::ScSpecTypeDef(Box::new(
14728                serde::de::Deserialize::deserialize(r)?,
14729            ))),
14730            TypeVariant::ScSpecUdtStructFieldV0 => Ok(Self::ScSpecUdtStructFieldV0(Box::new(
14731                serde::de::Deserialize::deserialize(r)?,
14732            ))),
14733            TypeVariant::ScSpecUdtStructV0 => Ok(Self::ScSpecUdtStructV0(Box::new(
14734                serde::de::Deserialize::deserialize(r)?,
14735            ))),
14736            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
14737                serde::de::Deserialize::deserialize(r)?,
14738            ))),
14739            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Ok(Self::ScSpecUdtUnionCaseTupleV0(
14740                Box::new(serde::de::Deserialize::deserialize(r)?),
14741            )),
14742            TypeVariant::ScSpecUdtUnionCaseV0Kind => Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
14743                serde::de::Deserialize::deserialize(r)?,
14744            ))),
14745            TypeVariant::ScSpecUdtUnionCaseV0 => Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
14746                serde::de::Deserialize::deserialize(r)?,
14747            ))),
14748            TypeVariant::ScSpecUdtUnionV0 => Ok(Self::ScSpecUdtUnionV0(Box::new(
14749                serde::de::Deserialize::deserialize(r)?,
14750            ))),
14751            TypeVariant::ScSpecUdtEnumCaseV0 => Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
14752                serde::de::Deserialize::deserialize(r)?,
14753            ))),
14754            TypeVariant::ScSpecUdtEnumV0 => Ok(Self::ScSpecUdtEnumV0(Box::new(
14755                serde::de::Deserialize::deserialize(r)?,
14756            ))),
14757            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
14758                serde::de::Deserialize::deserialize(r)?,
14759            ))),
14760            TypeVariant::ScSpecUdtErrorEnumV0 => Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
14761                serde::de::Deserialize::deserialize(r)?,
14762            ))),
14763            TypeVariant::ScSpecFunctionInputV0 => Ok(Self::ScSpecFunctionInputV0(Box::new(
14764                serde::de::Deserialize::deserialize(r)?,
14765            ))),
14766            TypeVariant::ScSpecFunctionV0 => Ok(Self::ScSpecFunctionV0(Box::new(
14767                serde::de::Deserialize::deserialize(r)?,
14768            ))),
14769            TypeVariant::ScSpecEventParamLocationV0 => Ok(Self::ScSpecEventParamLocationV0(
14770                Box::new(serde::de::Deserialize::deserialize(r)?),
14771            )),
14772            TypeVariant::ScSpecEventParamV0 => Ok(Self::ScSpecEventParamV0(Box::new(
14773                serde::de::Deserialize::deserialize(r)?,
14774            ))),
14775            TypeVariant::ScSpecEventDataFormat => Ok(Self::ScSpecEventDataFormat(Box::new(
14776                serde::de::Deserialize::deserialize(r)?,
14777            ))),
14778            TypeVariant::ScSpecEventV0 => Ok(Self::ScSpecEventV0(Box::new(
14779                serde::de::Deserialize::deserialize(r)?,
14780            ))),
14781            TypeVariant::ScSpecEntryKind => Ok(Self::ScSpecEntryKind(Box::new(
14782                serde::de::Deserialize::deserialize(r)?,
14783            ))),
14784            TypeVariant::ScSpecEntry => Ok(Self::ScSpecEntry(Box::new(
14785                serde::de::Deserialize::deserialize(r)?,
14786            ))),
14787            TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(
14788                serde::de::Deserialize::deserialize(r)?,
14789            ))),
14790            TypeVariant::ScString => Ok(Self::ScString(Box::new(
14791                serde::de::Deserialize::deserialize(r)?,
14792            ))),
14793            TypeVariant::ScSymbol => Ok(Self::ScSymbol(Box::new(
14794                serde::de::Deserialize::deserialize(r)?,
14795            ))),
14796            TypeVariant::ScValType => Ok(Self::ScValType(Box::new(
14797                serde::de::Deserialize::deserialize(r)?,
14798            ))),
14799            TypeVariant::ScErrorType => Ok(Self::ScErrorType(Box::new(
14800                serde::de::Deserialize::deserialize(r)?,
14801            ))),
14802            TypeVariant::ScErrorCode => Ok(Self::ScErrorCode(Box::new(
14803                serde::de::Deserialize::deserialize(r)?,
14804            ))),
14805            TypeVariant::ScError => Ok(Self::ScError(Box::new(
14806                serde::de::Deserialize::deserialize(r)?,
14807            ))),
14808            TypeVariant::UInt128Parts => Ok(Self::UInt128Parts(Box::new(
14809                serde::de::Deserialize::deserialize(r)?,
14810            ))),
14811            TypeVariant::Int128Parts => Ok(Self::Int128Parts(Box::new(
14812                serde::de::Deserialize::deserialize(r)?,
14813            ))),
14814            TypeVariant::UInt256Parts => Ok(Self::UInt256Parts(Box::new(
14815                serde::de::Deserialize::deserialize(r)?,
14816            ))),
14817            TypeVariant::Int256Parts => Ok(Self::Int256Parts(Box::new(
14818                serde::de::Deserialize::deserialize(r)?,
14819            ))),
14820            TypeVariant::ContractExecutableType => Ok(Self::ContractExecutableType(Box::new(
14821                serde::de::Deserialize::deserialize(r)?,
14822            ))),
14823            TypeVariant::ScAddressType => Ok(Self::ScAddressType(Box::new(
14824                serde::de::Deserialize::deserialize(r)?,
14825            ))),
14826            TypeVariant::MuxedEd25519Account => Ok(Self::MuxedEd25519Account(Box::new(
14827                serde::de::Deserialize::deserialize(r)?,
14828            ))),
14829            #[cfg(feature = "cap_0084_muxed_contract")]
14830            TypeVariant::MuxedContract => Ok(Self::MuxedContract(Box::new(
14831                serde::de::Deserialize::deserialize(r)?,
14832            ))),
14833            TypeVariant::ScAddress => Ok(Self::ScAddress(Box::new(
14834                serde::de::Deserialize::deserialize(r)?,
14835            ))),
14836            TypeVariant::ContractExecutableExternalRef => Ok(Self::ContractExecutableExternalRef(
14837                Box::new(serde::de::Deserialize::deserialize(r)?),
14838            )),
14839            TypeVariant::ContractExecutable => Ok(Self::ContractExecutable(Box::new(
14840                serde::de::Deserialize::deserialize(r)?,
14841            ))),
14842            TypeVariant::ScVec => Ok(Self::ScVec(Box::new(serde::de::Deserialize::deserialize(
14843                r,
14844            )?))),
14845            TypeVariant::ScMap => Ok(Self::ScMap(Box::new(serde::de::Deserialize::deserialize(
14846                r,
14847            )?))),
14848            TypeVariant::ScNonceKey => Ok(Self::ScNonceKey(Box::new(
14849                serde::de::Deserialize::deserialize(r)?,
14850            ))),
14851            TypeVariant::ScContractInstance => Ok(Self::ScContractInstance(Box::new(
14852                serde::de::Deserialize::deserialize(r)?,
14853            ))),
14854            TypeVariant::ScVal => Ok(Self::ScVal(Box::new(serde::de::Deserialize::deserialize(
14855                r,
14856            )?))),
14857            TypeVariant::ScMapEntry => Ok(Self::ScMapEntry(Box::new(
14858                serde::de::Deserialize::deserialize(r)?,
14859            ))),
14860            TypeVariant::LedgerCloseMetaBatch => Ok(Self::LedgerCloseMetaBatch(Box::new(
14861                serde::de::Deserialize::deserialize(r)?,
14862            ))),
14863            TypeVariant::StoredTransactionSet => Ok(Self::StoredTransactionSet(Box::new(
14864                serde::de::Deserialize::deserialize(r)?,
14865            ))),
14866            TypeVariant::StoredDebugTransactionSet => Ok(Self::StoredDebugTransactionSet(
14867                Box::new(serde::de::Deserialize::deserialize(r)?),
14868            )),
14869            TypeVariant::PersistedScpStateV0 => Ok(Self::PersistedScpStateV0(Box::new(
14870                serde::de::Deserialize::deserialize(r)?,
14871            ))),
14872            TypeVariant::PersistedScpStateV1 => Ok(Self::PersistedScpStateV1(Box::new(
14873                serde::de::Deserialize::deserialize(r)?,
14874            ))),
14875            TypeVariant::PersistedScpState => Ok(Self::PersistedScpState(Box::new(
14876                serde::de::Deserialize::deserialize(r)?,
14877            ))),
14878            TypeVariant::Thresholds => Ok(Self::Thresholds(Box::new(
14879                serde::de::Deserialize::deserialize(r)?,
14880            ))),
14881            TypeVariant::String32 => Ok(Self::String32(Box::new(
14882                serde::de::Deserialize::deserialize(r)?,
14883            ))),
14884            TypeVariant::String64 => Ok(Self::String64(Box::new(
14885                serde::de::Deserialize::deserialize(r)?,
14886            ))),
14887            TypeVariant::SequenceNumber => Ok(Self::SequenceNumber(Box::new(
14888                serde::de::Deserialize::deserialize(r)?,
14889            ))),
14890            TypeVariant::DataValue => Ok(Self::DataValue(Box::new(
14891                serde::de::Deserialize::deserialize(r)?,
14892            ))),
14893            TypeVariant::AssetCode4 => Ok(Self::AssetCode4(Box::new(
14894                serde::de::Deserialize::deserialize(r)?,
14895            ))),
14896            TypeVariant::AssetCode12 => Ok(Self::AssetCode12(Box::new(
14897                serde::de::Deserialize::deserialize(r)?,
14898            ))),
14899            TypeVariant::AssetType => Ok(Self::AssetType(Box::new(
14900                serde::de::Deserialize::deserialize(r)?,
14901            ))),
14902            TypeVariant::AssetCode => Ok(Self::AssetCode(Box::new(
14903                serde::de::Deserialize::deserialize(r)?,
14904            ))),
14905            TypeVariant::AlphaNum4 => Ok(Self::AlphaNum4(Box::new(
14906                serde::de::Deserialize::deserialize(r)?,
14907            ))),
14908            TypeVariant::AlphaNum12 => Ok(Self::AlphaNum12(Box::new(
14909                serde::de::Deserialize::deserialize(r)?,
14910            ))),
14911            TypeVariant::Asset => Ok(Self::Asset(Box::new(serde::de::Deserialize::deserialize(
14912                r,
14913            )?))),
14914            TypeVariant::Price => Ok(Self::Price(Box::new(serde::de::Deserialize::deserialize(
14915                r,
14916            )?))),
14917            TypeVariant::Liabilities => Ok(Self::Liabilities(Box::new(
14918                serde::de::Deserialize::deserialize(r)?,
14919            ))),
14920            TypeVariant::ThresholdIndexes => Ok(Self::ThresholdIndexes(Box::new(
14921                serde::de::Deserialize::deserialize(r)?,
14922            ))),
14923            TypeVariant::LedgerEntryType => Ok(Self::LedgerEntryType(Box::new(
14924                serde::de::Deserialize::deserialize(r)?,
14925            ))),
14926            TypeVariant::Signer => Ok(Self::Signer(Box::new(serde::de::Deserialize::deserialize(
14927                r,
14928            )?))),
14929            TypeVariant::AccountFlags => Ok(Self::AccountFlags(Box::new(
14930                serde::de::Deserialize::deserialize(r)?,
14931            ))),
14932            TypeVariant::SponsorshipDescriptor => Ok(Self::SponsorshipDescriptor(Box::new(
14933                serde::de::Deserialize::deserialize(r)?,
14934            ))),
14935            TypeVariant::AccountEntryExtensionV3 => Ok(Self::AccountEntryExtensionV3(Box::new(
14936                serde::de::Deserialize::deserialize(r)?,
14937            ))),
14938            TypeVariant::AccountEntryExtensionV2 => Ok(Self::AccountEntryExtensionV2(Box::new(
14939                serde::de::Deserialize::deserialize(r)?,
14940            ))),
14941            TypeVariant::AccountEntryExtensionV2Ext => Ok(Self::AccountEntryExtensionV2Ext(
14942                Box::new(serde::de::Deserialize::deserialize(r)?),
14943            )),
14944            TypeVariant::AccountEntryExtensionV1 => Ok(Self::AccountEntryExtensionV1(Box::new(
14945                serde::de::Deserialize::deserialize(r)?,
14946            ))),
14947            TypeVariant::AccountEntryExtensionV1Ext => Ok(Self::AccountEntryExtensionV1Ext(
14948                Box::new(serde::de::Deserialize::deserialize(r)?),
14949            )),
14950            TypeVariant::AccountEntry => Ok(Self::AccountEntry(Box::new(
14951                serde::de::Deserialize::deserialize(r)?,
14952            ))),
14953            TypeVariant::AccountEntryExt => Ok(Self::AccountEntryExt(Box::new(
14954                serde::de::Deserialize::deserialize(r)?,
14955            ))),
14956            TypeVariant::TrustLineFlags => Ok(Self::TrustLineFlags(Box::new(
14957                serde::de::Deserialize::deserialize(r)?,
14958            ))),
14959            TypeVariant::LiquidityPoolType => Ok(Self::LiquidityPoolType(Box::new(
14960                serde::de::Deserialize::deserialize(r)?,
14961            ))),
14962            TypeVariant::TrustLineAsset => Ok(Self::TrustLineAsset(Box::new(
14963                serde::de::Deserialize::deserialize(r)?,
14964            ))),
14965            TypeVariant::TrustLineEntryExtensionV2 => Ok(Self::TrustLineEntryExtensionV2(
14966                Box::new(serde::de::Deserialize::deserialize(r)?),
14967            )),
14968            TypeVariant::TrustLineEntryExtensionV2Ext => Ok(Self::TrustLineEntryExtensionV2Ext(
14969                Box::new(serde::de::Deserialize::deserialize(r)?),
14970            )),
14971            TypeVariant::TrustLineEntry => Ok(Self::TrustLineEntry(Box::new(
14972                serde::de::Deserialize::deserialize(r)?,
14973            ))),
14974            TypeVariant::TrustLineEntryExt => Ok(Self::TrustLineEntryExt(Box::new(
14975                serde::de::Deserialize::deserialize(r)?,
14976            ))),
14977            TypeVariant::TrustLineEntryV1 => Ok(Self::TrustLineEntryV1(Box::new(
14978                serde::de::Deserialize::deserialize(r)?,
14979            ))),
14980            TypeVariant::TrustLineEntryV1Ext => Ok(Self::TrustLineEntryV1Ext(Box::new(
14981                serde::de::Deserialize::deserialize(r)?,
14982            ))),
14983            TypeVariant::OfferEntryFlags => Ok(Self::OfferEntryFlags(Box::new(
14984                serde::de::Deserialize::deserialize(r)?,
14985            ))),
14986            TypeVariant::OfferEntry => Ok(Self::OfferEntry(Box::new(
14987                serde::de::Deserialize::deserialize(r)?,
14988            ))),
14989            TypeVariant::OfferEntryExt => Ok(Self::OfferEntryExt(Box::new(
14990                serde::de::Deserialize::deserialize(r)?,
14991            ))),
14992            TypeVariant::DataEntry => Ok(Self::DataEntry(Box::new(
14993                serde::de::Deserialize::deserialize(r)?,
14994            ))),
14995            TypeVariant::DataEntryExt => Ok(Self::DataEntryExt(Box::new(
14996                serde::de::Deserialize::deserialize(r)?,
14997            ))),
14998            TypeVariant::ClaimPredicateType => Ok(Self::ClaimPredicateType(Box::new(
14999                serde::de::Deserialize::deserialize(r)?,
15000            ))),
15001            TypeVariant::ClaimPredicate => Ok(Self::ClaimPredicate(Box::new(
15002                serde::de::Deserialize::deserialize(r)?,
15003            ))),
15004            TypeVariant::ClaimantType => Ok(Self::ClaimantType(Box::new(
15005                serde::de::Deserialize::deserialize(r)?,
15006            ))),
15007            TypeVariant::Claimant => Ok(Self::Claimant(Box::new(
15008                serde::de::Deserialize::deserialize(r)?,
15009            ))),
15010            TypeVariant::ClaimantV0 => Ok(Self::ClaimantV0(Box::new(
15011                serde::de::Deserialize::deserialize(r)?,
15012            ))),
15013            TypeVariant::ClaimableBalanceFlags => Ok(Self::ClaimableBalanceFlags(Box::new(
15014                serde::de::Deserialize::deserialize(r)?,
15015            ))),
15016            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
15017                Ok(Self::ClaimableBalanceEntryExtensionV1(Box::new(
15018                    serde::de::Deserialize::deserialize(r)?,
15019                )))
15020            }
15021            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
15022                Ok(Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(
15023                    serde::de::Deserialize::deserialize(r)?,
15024                )))
15025            }
15026            TypeVariant::ClaimableBalanceEntry => Ok(Self::ClaimableBalanceEntry(Box::new(
15027                serde::de::Deserialize::deserialize(r)?,
15028            ))),
15029            TypeVariant::ClaimableBalanceEntryExt => Ok(Self::ClaimableBalanceEntryExt(Box::new(
15030                serde::de::Deserialize::deserialize(r)?,
15031            ))),
15032            TypeVariant::LiquidityPoolConstantProductParameters => {
15033                Ok(Self::LiquidityPoolConstantProductParameters(Box::new(
15034                    serde::de::Deserialize::deserialize(r)?,
15035                )))
15036            }
15037            TypeVariant::LiquidityPoolEntry => Ok(Self::LiquidityPoolEntry(Box::new(
15038                serde::de::Deserialize::deserialize(r)?,
15039            ))),
15040            TypeVariant::LiquidityPoolEntryBody => Ok(Self::LiquidityPoolEntryBody(Box::new(
15041                serde::de::Deserialize::deserialize(r)?,
15042            ))),
15043            TypeVariant::LiquidityPoolEntryConstantProduct => {
15044                Ok(Self::LiquidityPoolEntryConstantProduct(Box::new(
15045                    serde::de::Deserialize::deserialize(r)?,
15046                )))
15047            }
15048            TypeVariant::ContractDataDurability => Ok(Self::ContractDataDurability(Box::new(
15049                serde::de::Deserialize::deserialize(r)?,
15050            ))),
15051            TypeVariant::ContractDataEntry => Ok(Self::ContractDataEntry(Box::new(
15052                serde::de::Deserialize::deserialize(r)?,
15053            ))),
15054            TypeVariant::ContractCodeCostInputs => Ok(Self::ContractCodeCostInputs(Box::new(
15055                serde::de::Deserialize::deserialize(r)?,
15056            ))),
15057            TypeVariant::ContractCodeEntry => Ok(Self::ContractCodeEntry(Box::new(
15058                serde::de::Deserialize::deserialize(r)?,
15059            ))),
15060            TypeVariant::ContractCodeEntryExt => Ok(Self::ContractCodeEntryExt(Box::new(
15061                serde::de::Deserialize::deserialize(r)?,
15062            ))),
15063            TypeVariant::ContractCodeEntryV1 => Ok(Self::ContractCodeEntryV1(Box::new(
15064                serde::de::Deserialize::deserialize(r)?,
15065            ))),
15066            TypeVariant::TtlEntry => Ok(Self::TtlEntry(Box::new(
15067                serde::de::Deserialize::deserialize(r)?,
15068            ))),
15069            TypeVariant::LedgerEntryExtensionV1 => Ok(Self::LedgerEntryExtensionV1(Box::new(
15070                serde::de::Deserialize::deserialize(r)?,
15071            ))),
15072            TypeVariant::LedgerEntryExtensionV1Ext => Ok(Self::LedgerEntryExtensionV1Ext(
15073                Box::new(serde::de::Deserialize::deserialize(r)?),
15074            )),
15075            TypeVariant::LedgerEntry => Ok(Self::LedgerEntry(Box::new(
15076                serde::de::Deserialize::deserialize(r)?,
15077            ))),
15078            TypeVariant::LedgerEntryData => Ok(Self::LedgerEntryData(Box::new(
15079                serde::de::Deserialize::deserialize(r)?,
15080            ))),
15081            TypeVariant::LedgerEntryExt => Ok(Self::LedgerEntryExt(Box::new(
15082                serde::de::Deserialize::deserialize(r)?,
15083            ))),
15084            TypeVariant::LedgerKey => Ok(Self::LedgerKey(Box::new(
15085                serde::de::Deserialize::deserialize(r)?,
15086            ))),
15087            TypeVariant::LedgerKeyAccount => Ok(Self::LedgerKeyAccount(Box::new(
15088                serde::de::Deserialize::deserialize(r)?,
15089            ))),
15090            TypeVariant::LedgerKeyTrustLine => Ok(Self::LedgerKeyTrustLine(Box::new(
15091                serde::de::Deserialize::deserialize(r)?,
15092            ))),
15093            TypeVariant::LedgerKeyOffer => Ok(Self::LedgerKeyOffer(Box::new(
15094                serde::de::Deserialize::deserialize(r)?,
15095            ))),
15096            TypeVariant::LedgerKeyData => Ok(Self::LedgerKeyData(Box::new(
15097                serde::de::Deserialize::deserialize(r)?,
15098            ))),
15099            TypeVariant::LedgerKeyClaimableBalance => Ok(Self::LedgerKeyClaimableBalance(
15100                Box::new(serde::de::Deserialize::deserialize(r)?),
15101            )),
15102            TypeVariant::LedgerKeyLiquidityPool => Ok(Self::LedgerKeyLiquidityPool(Box::new(
15103                serde::de::Deserialize::deserialize(r)?,
15104            ))),
15105            TypeVariant::LedgerKeyContractData => Ok(Self::LedgerKeyContractData(Box::new(
15106                serde::de::Deserialize::deserialize(r)?,
15107            ))),
15108            TypeVariant::LedgerKeyContractCode => Ok(Self::LedgerKeyContractCode(Box::new(
15109                serde::de::Deserialize::deserialize(r)?,
15110            ))),
15111            TypeVariant::LedgerKeyConfigSetting => Ok(Self::LedgerKeyConfigSetting(Box::new(
15112                serde::de::Deserialize::deserialize(r)?,
15113            ))),
15114            TypeVariant::LedgerKeyTtl => Ok(Self::LedgerKeyTtl(Box::new(
15115                serde::de::Deserialize::deserialize(r)?,
15116            ))),
15117            TypeVariant::EnvelopeType => Ok(Self::EnvelopeType(Box::new(
15118                serde::de::Deserialize::deserialize(r)?,
15119            ))),
15120            TypeVariant::BucketListType => Ok(Self::BucketListType(Box::new(
15121                serde::de::Deserialize::deserialize(r)?,
15122            ))),
15123            TypeVariant::BucketEntryType => Ok(Self::BucketEntryType(Box::new(
15124                serde::de::Deserialize::deserialize(r)?,
15125            ))),
15126            TypeVariant::HotArchiveBucketEntryType => Ok(Self::HotArchiveBucketEntryType(
15127                Box::new(serde::de::Deserialize::deserialize(r)?),
15128            )),
15129            TypeVariant::BucketMetadata => Ok(Self::BucketMetadata(Box::new(
15130                serde::de::Deserialize::deserialize(r)?,
15131            ))),
15132            TypeVariant::BucketMetadataExt => Ok(Self::BucketMetadataExt(Box::new(
15133                serde::de::Deserialize::deserialize(r)?,
15134            ))),
15135            TypeVariant::BucketEntry => Ok(Self::BucketEntry(Box::new(
15136                serde::de::Deserialize::deserialize(r)?,
15137            ))),
15138            TypeVariant::HotArchiveBucketEntry => Ok(Self::HotArchiveBucketEntry(Box::new(
15139                serde::de::Deserialize::deserialize(r)?,
15140            ))),
15141            TypeVariant::UpgradeType => Ok(Self::UpgradeType(Box::new(
15142                serde::de::Deserialize::deserialize(r)?,
15143            ))),
15144            TypeVariant::StellarValueType => Ok(Self::StellarValueType(Box::new(
15145                serde::de::Deserialize::deserialize(r)?,
15146            ))),
15147            TypeVariant::LedgerCloseValueSignature => Ok(Self::LedgerCloseValueSignature(
15148                Box::new(serde::de::Deserialize::deserialize(r)?),
15149            )),
15150            TypeVariant::StellarValue => Ok(Self::StellarValue(Box::new(
15151                serde::de::Deserialize::deserialize(r)?,
15152            ))),
15153            TypeVariant::StellarValueExt => Ok(Self::StellarValueExt(Box::new(
15154                serde::de::Deserialize::deserialize(r)?,
15155            ))),
15156            TypeVariant::StellarValueProposedValue => Ok(Self::StellarValueProposedValue(
15157                Box::new(serde::de::Deserialize::deserialize(r)?),
15158            )),
15159            TypeVariant::LedgerHeaderFlags => Ok(Self::LedgerHeaderFlags(Box::new(
15160                serde::de::Deserialize::deserialize(r)?,
15161            ))),
15162            TypeVariant::LedgerHeaderExtensionV1 => Ok(Self::LedgerHeaderExtensionV1(Box::new(
15163                serde::de::Deserialize::deserialize(r)?,
15164            ))),
15165            TypeVariant::LedgerHeaderExtensionV1Ext => Ok(Self::LedgerHeaderExtensionV1Ext(
15166                Box::new(serde::de::Deserialize::deserialize(r)?),
15167            )),
15168            TypeVariant::LedgerHeader => Ok(Self::LedgerHeader(Box::new(
15169                serde::de::Deserialize::deserialize(r)?,
15170            ))),
15171            TypeVariant::LedgerHeaderExt => Ok(Self::LedgerHeaderExt(Box::new(
15172                serde::de::Deserialize::deserialize(r)?,
15173            ))),
15174            TypeVariant::LedgerUpgradeType => Ok(Self::LedgerUpgradeType(Box::new(
15175                serde::de::Deserialize::deserialize(r)?,
15176            ))),
15177            TypeVariant::ConfigUpgradeSetKey => Ok(Self::ConfigUpgradeSetKey(Box::new(
15178                serde::de::Deserialize::deserialize(r)?,
15179            ))),
15180            TypeVariant::LedgerUpgrade => Ok(Self::LedgerUpgrade(Box::new(
15181                serde::de::Deserialize::deserialize(r)?,
15182            ))),
15183            TypeVariant::ConfigUpgradeSet => Ok(Self::ConfigUpgradeSet(Box::new(
15184                serde::de::Deserialize::deserialize(r)?,
15185            ))),
15186            TypeVariant::TxSetComponentType => Ok(Self::TxSetComponentType(Box::new(
15187                serde::de::Deserialize::deserialize(r)?,
15188            ))),
15189            TypeVariant::DependentTxCluster => Ok(Self::DependentTxCluster(Box::new(
15190                serde::de::Deserialize::deserialize(r)?,
15191            ))),
15192            TypeVariant::ParallelTxExecutionStage => Ok(Self::ParallelTxExecutionStage(Box::new(
15193                serde::de::Deserialize::deserialize(r)?,
15194            ))),
15195            TypeVariant::ParallelTxsComponent => Ok(Self::ParallelTxsComponent(Box::new(
15196                serde::de::Deserialize::deserialize(r)?,
15197            ))),
15198            TypeVariant::TxSetComponent => Ok(Self::TxSetComponent(Box::new(
15199                serde::de::Deserialize::deserialize(r)?,
15200            ))),
15201            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
15202                Ok(Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(
15203                    serde::de::Deserialize::deserialize(r)?,
15204                )))
15205            }
15206            TypeVariant::TransactionPhase => Ok(Self::TransactionPhase(Box::new(
15207                serde::de::Deserialize::deserialize(r)?,
15208            ))),
15209            TypeVariant::TransactionSet => Ok(Self::TransactionSet(Box::new(
15210                serde::de::Deserialize::deserialize(r)?,
15211            ))),
15212            TypeVariant::TransactionSetV1 => Ok(Self::TransactionSetV1(Box::new(
15213                serde::de::Deserialize::deserialize(r)?,
15214            ))),
15215            TypeVariant::GeneralizedTransactionSet => Ok(Self::GeneralizedTransactionSet(
15216                Box::new(serde::de::Deserialize::deserialize(r)?),
15217            )),
15218            TypeVariant::TransactionResultPair => Ok(Self::TransactionResultPair(Box::new(
15219                serde::de::Deserialize::deserialize(r)?,
15220            ))),
15221            TypeVariant::TransactionResultSet => Ok(Self::TransactionResultSet(Box::new(
15222                serde::de::Deserialize::deserialize(r)?,
15223            ))),
15224            TypeVariant::TransactionHistoryEntry => Ok(Self::TransactionHistoryEntry(Box::new(
15225                serde::de::Deserialize::deserialize(r)?,
15226            ))),
15227            TypeVariant::TransactionHistoryEntryExt => Ok(Self::TransactionHistoryEntryExt(
15228                Box::new(serde::de::Deserialize::deserialize(r)?),
15229            )),
15230            TypeVariant::TransactionHistoryResultEntry => Ok(Self::TransactionHistoryResultEntry(
15231                Box::new(serde::de::Deserialize::deserialize(r)?),
15232            )),
15233            TypeVariant::TransactionHistoryResultEntryExt => {
15234                Ok(Self::TransactionHistoryResultEntryExt(Box::new(
15235                    serde::de::Deserialize::deserialize(r)?,
15236                )))
15237            }
15238            TypeVariant::LedgerHeaderHistoryEntry => Ok(Self::LedgerHeaderHistoryEntry(Box::new(
15239                serde::de::Deserialize::deserialize(r)?,
15240            ))),
15241            TypeVariant::LedgerHeaderHistoryEntryExt => Ok(Self::LedgerHeaderHistoryEntryExt(
15242                Box::new(serde::de::Deserialize::deserialize(r)?),
15243            )),
15244            TypeVariant::LedgerScpMessages => Ok(Self::LedgerScpMessages(Box::new(
15245                serde::de::Deserialize::deserialize(r)?,
15246            ))),
15247            TypeVariant::ScpHistoryEntryV0 => Ok(Self::ScpHistoryEntryV0(Box::new(
15248                serde::de::Deserialize::deserialize(r)?,
15249            ))),
15250            TypeVariant::ScpHistoryEntry => Ok(Self::ScpHistoryEntry(Box::new(
15251                serde::de::Deserialize::deserialize(r)?,
15252            ))),
15253            TypeVariant::LedgerEntryChangeType => Ok(Self::LedgerEntryChangeType(Box::new(
15254                serde::de::Deserialize::deserialize(r)?,
15255            ))),
15256            TypeVariant::LedgerEntryChange => Ok(Self::LedgerEntryChange(Box::new(
15257                serde::de::Deserialize::deserialize(r)?,
15258            ))),
15259            TypeVariant::LedgerEntryChanges => Ok(Self::LedgerEntryChanges(Box::new(
15260                serde::de::Deserialize::deserialize(r)?,
15261            ))),
15262            TypeVariant::OperationMeta => Ok(Self::OperationMeta(Box::new(
15263                serde::de::Deserialize::deserialize(r)?,
15264            ))),
15265            TypeVariant::TransactionMetaV1 => Ok(Self::TransactionMetaV1(Box::new(
15266                serde::de::Deserialize::deserialize(r)?,
15267            ))),
15268            TypeVariant::TransactionMetaV2 => Ok(Self::TransactionMetaV2(Box::new(
15269                serde::de::Deserialize::deserialize(r)?,
15270            ))),
15271            TypeVariant::ContractEventType => Ok(Self::ContractEventType(Box::new(
15272                serde::de::Deserialize::deserialize(r)?,
15273            ))),
15274            TypeVariant::ContractEvent => Ok(Self::ContractEvent(Box::new(
15275                serde::de::Deserialize::deserialize(r)?,
15276            ))),
15277            TypeVariant::ContractEventBody => Ok(Self::ContractEventBody(Box::new(
15278                serde::de::Deserialize::deserialize(r)?,
15279            ))),
15280            TypeVariant::ContractEventV0 => Ok(Self::ContractEventV0(Box::new(
15281                serde::de::Deserialize::deserialize(r)?,
15282            ))),
15283            TypeVariant::DiagnosticEvent => Ok(Self::DiagnosticEvent(Box::new(
15284                serde::de::Deserialize::deserialize(r)?,
15285            ))),
15286            TypeVariant::SorobanTransactionMetaExtV1 => Ok(Self::SorobanTransactionMetaExtV1(
15287                Box::new(serde::de::Deserialize::deserialize(r)?),
15288            )),
15289            TypeVariant::SorobanTransactionMetaExt => Ok(Self::SorobanTransactionMetaExt(
15290                Box::new(serde::de::Deserialize::deserialize(r)?),
15291            )),
15292            TypeVariant::SorobanTransactionMeta => Ok(Self::SorobanTransactionMeta(Box::new(
15293                serde::de::Deserialize::deserialize(r)?,
15294            ))),
15295            TypeVariant::TransactionMetaV3 => Ok(Self::TransactionMetaV3(Box::new(
15296                serde::de::Deserialize::deserialize(r)?,
15297            ))),
15298            TypeVariant::OperationMetaV2 => Ok(Self::OperationMetaV2(Box::new(
15299                serde::de::Deserialize::deserialize(r)?,
15300            ))),
15301            TypeVariant::SorobanTransactionMetaV2 => Ok(Self::SorobanTransactionMetaV2(Box::new(
15302                serde::de::Deserialize::deserialize(r)?,
15303            ))),
15304            TypeVariant::TransactionEventStage => Ok(Self::TransactionEventStage(Box::new(
15305                serde::de::Deserialize::deserialize(r)?,
15306            ))),
15307            TypeVariant::TransactionEvent => Ok(Self::TransactionEvent(Box::new(
15308                serde::de::Deserialize::deserialize(r)?,
15309            ))),
15310            TypeVariant::TransactionMetaV4 => Ok(Self::TransactionMetaV4(Box::new(
15311                serde::de::Deserialize::deserialize(r)?,
15312            ))),
15313            TypeVariant::InvokeHostFunctionSuccessPreImage => {
15314                Ok(Self::InvokeHostFunctionSuccessPreImage(Box::new(
15315                    serde::de::Deserialize::deserialize(r)?,
15316                )))
15317            }
15318            TypeVariant::TransactionMeta => Ok(Self::TransactionMeta(Box::new(
15319                serde::de::Deserialize::deserialize(r)?,
15320            ))),
15321            TypeVariant::TransactionResultMeta => Ok(Self::TransactionResultMeta(Box::new(
15322                serde::de::Deserialize::deserialize(r)?,
15323            ))),
15324            TypeVariant::TransactionResultMetaV1 => Ok(Self::TransactionResultMetaV1(Box::new(
15325                serde::de::Deserialize::deserialize(r)?,
15326            ))),
15327            TypeVariant::UpgradeEntryMeta => Ok(Self::UpgradeEntryMeta(Box::new(
15328                serde::de::Deserialize::deserialize(r)?,
15329            ))),
15330            TypeVariant::LedgerCloseMetaV0 => Ok(Self::LedgerCloseMetaV0(Box::new(
15331                serde::de::Deserialize::deserialize(r)?,
15332            ))),
15333            TypeVariant::LedgerCloseMetaExtV1 => Ok(Self::LedgerCloseMetaExtV1(Box::new(
15334                serde::de::Deserialize::deserialize(r)?,
15335            ))),
15336            TypeVariant::LedgerCloseMetaExt => Ok(Self::LedgerCloseMetaExt(Box::new(
15337                serde::de::Deserialize::deserialize(r)?,
15338            ))),
15339            TypeVariant::LedgerCloseMetaV1 => Ok(Self::LedgerCloseMetaV1(Box::new(
15340                serde::de::Deserialize::deserialize(r)?,
15341            ))),
15342            TypeVariant::LedgerCloseMetaV2 => Ok(Self::LedgerCloseMetaV2(Box::new(
15343                serde::de::Deserialize::deserialize(r)?,
15344            ))),
15345            TypeVariant::LedgerCloseMeta => Ok(Self::LedgerCloseMeta(Box::new(
15346                serde::de::Deserialize::deserialize(r)?,
15347            ))),
15348            TypeVariant::ErrorCode => Ok(Self::ErrorCode(Box::new(
15349                serde::de::Deserialize::deserialize(r)?,
15350            ))),
15351            TypeVariant::SError => Ok(Self::SError(Box::new(serde::de::Deserialize::deserialize(
15352                r,
15353            )?))),
15354            TypeVariant::SendMore => Ok(Self::SendMore(Box::new(
15355                serde::de::Deserialize::deserialize(r)?,
15356            ))),
15357            TypeVariant::SendMoreExtended => Ok(Self::SendMoreExtended(Box::new(
15358                serde::de::Deserialize::deserialize(r)?,
15359            ))),
15360            TypeVariant::AuthCert => Ok(Self::AuthCert(Box::new(
15361                serde::de::Deserialize::deserialize(r)?,
15362            ))),
15363            TypeVariant::Hello => Ok(Self::Hello(Box::new(serde::de::Deserialize::deserialize(
15364                r,
15365            )?))),
15366            TypeVariant::Auth => Ok(Self::Auth(Box::new(serde::de::Deserialize::deserialize(
15367                r,
15368            )?))),
15369            TypeVariant::IpAddrType => Ok(Self::IpAddrType(Box::new(
15370                serde::de::Deserialize::deserialize(r)?,
15371            ))),
15372            TypeVariant::PeerAddress => Ok(Self::PeerAddress(Box::new(
15373                serde::de::Deserialize::deserialize(r)?,
15374            ))),
15375            TypeVariant::PeerAddressIp => Ok(Self::PeerAddressIp(Box::new(
15376                serde::de::Deserialize::deserialize(r)?,
15377            ))),
15378            TypeVariant::MessageType => Ok(Self::MessageType(Box::new(
15379                serde::de::Deserialize::deserialize(r)?,
15380            ))),
15381            TypeVariant::DontHave => Ok(Self::DontHave(Box::new(
15382                serde::de::Deserialize::deserialize(r)?,
15383            ))),
15384            TypeVariant::SurveyMessageCommandType => Ok(Self::SurveyMessageCommandType(Box::new(
15385                serde::de::Deserialize::deserialize(r)?,
15386            ))),
15387            TypeVariant::SurveyMessageResponseType => Ok(Self::SurveyMessageResponseType(
15388                Box::new(serde::de::Deserialize::deserialize(r)?),
15389            )),
15390            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
15391                Ok(Self::TimeSlicedSurveyStartCollectingMessage(Box::new(
15392                    serde::de::Deserialize::deserialize(r)?,
15393                )))
15394            }
15395            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
15396                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
15397                    Box::new(serde::de::Deserialize::deserialize(r)?),
15398                ))
15399            }
15400            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
15401                Ok(Self::TimeSlicedSurveyStopCollectingMessage(Box::new(
15402                    serde::de::Deserialize::deserialize(r)?,
15403                )))
15404            }
15405            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
15406                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
15407                    serde::de::Deserialize::deserialize(r)?,
15408                )))
15409            }
15410            TypeVariant::SurveyRequestMessage => Ok(Self::SurveyRequestMessage(Box::new(
15411                serde::de::Deserialize::deserialize(r)?,
15412            ))),
15413            TypeVariant::TimeSlicedSurveyRequestMessage => {
15414                Ok(Self::TimeSlicedSurveyRequestMessage(Box::new(
15415                    serde::de::Deserialize::deserialize(r)?,
15416                )))
15417            }
15418            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
15419                Ok(Self::SignedTimeSlicedSurveyRequestMessage(Box::new(
15420                    serde::de::Deserialize::deserialize(r)?,
15421                )))
15422            }
15423            TypeVariant::EncryptedBody => Ok(Self::EncryptedBody(Box::new(
15424                serde::de::Deserialize::deserialize(r)?,
15425            ))),
15426            TypeVariant::SurveyResponseMessage => Ok(Self::SurveyResponseMessage(Box::new(
15427                serde::de::Deserialize::deserialize(r)?,
15428            ))),
15429            TypeVariant::TimeSlicedSurveyResponseMessage => {
15430                Ok(Self::TimeSlicedSurveyResponseMessage(Box::new(
15431                    serde::de::Deserialize::deserialize(r)?,
15432                )))
15433            }
15434            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
15435                Ok(Self::SignedTimeSlicedSurveyResponseMessage(Box::new(
15436                    serde::de::Deserialize::deserialize(r)?,
15437                )))
15438            }
15439            TypeVariant::PeerStats => Ok(Self::PeerStats(Box::new(
15440                serde::de::Deserialize::deserialize(r)?,
15441            ))),
15442            TypeVariant::TimeSlicedNodeData => Ok(Self::TimeSlicedNodeData(Box::new(
15443                serde::de::Deserialize::deserialize(r)?,
15444            ))),
15445            TypeVariant::TimeSlicedPeerData => Ok(Self::TimeSlicedPeerData(Box::new(
15446                serde::de::Deserialize::deserialize(r)?,
15447            ))),
15448            TypeVariant::TimeSlicedPeerDataList => Ok(Self::TimeSlicedPeerDataList(Box::new(
15449                serde::de::Deserialize::deserialize(r)?,
15450            ))),
15451            TypeVariant::TopologyResponseBodyV2 => Ok(Self::TopologyResponseBodyV2(Box::new(
15452                serde::de::Deserialize::deserialize(r)?,
15453            ))),
15454            TypeVariant::SurveyResponseBody => Ok(Self::SurveyResponseBody(Box::new(
15455                serde::de::Deserialize::deserialize(r)?,
15456            ))),
15457            TypeVariant::TxAdvertVector => Ok(Self::TxAdvertVector(Box::new(
15458                serde::de::Deserialize::deserialize(r)?,
15459            ))),
15460            TypeVariant::FloodAdvert => Ok(Self::FloodAdvert(Box::new(
15461                serde::de::Deserialize::deserialize(r)?,
15462            ))),
15463            TypeVariant::TxDemandVector => Ok(Self::TxDemandVector(Box::new(
15464                serde::de::Deserialize::deserialize(r)?,
15465            ))),
15466            TypeVariant::FloodDemand => Ok(Self::FloodDemand(Box::new(
15467                serde::de::Deserialize::deserialize(r)?,
15468            ))),
15469            TypeVariant::StellarMessage => Ok(Self::StellarMessage(Box::new(
15470                serde::de::Deserialize::deserialize(r)?,
15471            ))),
15472            TypeVariant::AuthenticatedMessage => Ok(Self::AuthenticatedMessage(Box::new(
15473                serde::de::Deserialize::deserialize(r)?,
15474            ))),
15475            TypeVariant::AuthenticatedMessageV0 => Ok(Self::AuthenticatedMessageV0(Box::new(
15476                serde::de::Deserialize::deserialize(r)?,
15477            ))),
15478            TypeVariant::LiquidityPoolParameters => Ok(Self::LiquidityPoolParameters(Box::new(
15479                serde::de::Deserialize::deserialize(r)?,
15480            ))),
15481            TypeVariant::MuxedAccount => Ok(Self::MuxedAccount(Box::new(
15482                serde::de::Deserialize::deserialize(r)?,
15483            ))),
15484            TypeVariant::MuxedAccountMed25519 => Ok(Self::MuxedAccountMed25519(Box::new(
15485                serde::de::Deserialize::deserialize(r)?,
15486            ))),
15487            TypeVariant::DecoratedSignature => Ok(Self::DecoratedSignature(Box::new(
15488                serde::de::Deserialize::deserialize(r)?,
15489            ))),
15490            TypeVariant::OperationType => Ok(Self::OperationType(Box::new(
15491                serde::de::Deserialize::deserialize(r)?,
15492            ))),
15493            TypeVariant::CreateAccountOp => Ok(Self::CreateAccountOp(Box::new(
15494                serde::de::Deserialize::deserialize(r)?,
15495            ))),
15496            TypeVariant::PaymentOp => Ok(Self::PaymentOp(Box::new(
15497                serde::de::Deserialize::deserialize(r)?,
15498            ))),
15499            TypeVariant::PathPaymentStrictReceiveOp => Ok(Self::PathPaymentStrictReceiveOp(
15500                Box::new(serde::de::Deserialize::deserialize(r)?),
15501            )),
15502            TypeVariant::PathPaymentStrictSendOp => Ok(Self::PathPaymentStrictSendOp(Box::new(
15503                serde::de::Deserialize::deserialize(r)?,
15504            ))),
15505            TypeVariant::ManageSellOfferOp => Ok(Self::ManageSellOfferOp(Box::new(
15506                serde::de::Deserialize::deserialize(r)?,
15507            ))),
15508            TypeVariant::ManageBuyOfferOp => Ok(Self::ManageBuyOfferOp(Box::new(
15509                serde::de::Deserialize::deserialize(r)?,
15510            ))),
15511            TypeVariant::CreatePassiveSellOfferOp => Ok(Self::CreatePassiveSellOfferOp(Box::new(
15512                serde::de::Deserialize::deserialize(r)?,
15513            ))),
15514            TypeVariant::SetOptionsOp => Ok(Self::SetOptionsOp(Box::new(
15515                serde::de::Deserialize::deserialize(r)?,
15516            ))),
15517            TypeVariant::ChangeTrustAsset => Ok(Self::ChangeTrustAsset(Box::new(
15518                serde::de::Deserialize::deserialize(r)?,
15519            ))),
15520            TypeVariant::ChangeTrustOp => Ok(Self::ChangeTrustOp(Box::new(
15521                serde::de::Deserialize::deserialize(r)?,
15522            ))),
15523            TypeVariant::AllowTrustOp => Ok(Self::AllowTrustOp(Box::new(
15524                serde::de::Deserialize::deserialize(r)?,
15525            ))),
15526            TypeVariant::ManageDataOp => Ok(Self::ManageDataOp(Box::new(
15527                serde::de::Deserialize::deserialize(r)?,
15528            ))),
15529            TypeVariant::BumpSequenceOp => Ok(Self::BumpSequenceOp(Box::new(
15530                serde::de::Deserialize::deserialize(r)?,
15531            ))),
15532            TypeVariant::CreateClaimableBalanceOp => Ok(Self::CreateClaimableBalanceOp(Box::new(
15533                serde::de::Deserialize::deserialize(r)?,
15534            ))),
15535            TypeVariant::ClaimClaimableBalanceOp => Ok(Self::ClaimClaimableBalanceOp(Box::new(
15536                serde::de::Deserialize::deserialize(r)?,
15537            ))),
15538            TypeVariant::BeginSponsoringFutureReservesOp => {
15539                Ok(Self::BeginSponsoringFutureReservesOp(Box::new(
15540                    serde::de::Deserialize::deserialize(r)?,
15541                )))
15542            }
15543            TypeVariant::RevokeSponsorshipType => Ok(Self::RevokeSponsorshipType(Box::new(
15544                serde::de::Deserialize::deserialize(r)?,
15545            ))),
15546            TypeVariant::RevokeSponsorshipOp => Ok(Self::RevokeSponsorshipOp(Box::new(
15547                serde::de::Deserialize::deserialize(r)?,
15548            ))),
15549            TypeVariant::RevokeSponsorshipOpSigner => Ok(Self::RevokeSponsorshipOpSigner(
15550                Box::new(serde::de::Deserialize::deserialize(r)?),
15551            )),
15552            TypeVariant::ClawbackOp => Ok(Self::ClawbackOp(Box::new(
15553                serde::de::Deserialize::deserialize(r)?,
15554            ))),
15555            TypeVariant::ClawbackClaimableBalanceOp => Ok(Self::ClawbackClaimableBalanceOp(
15556                Box::new(serde::de::Deserialize::deserialize(r)?),
15557            )),
15558            TypeVariant::SetTrustLineFlagsOp => Ok(Self::SetTrustLineFlagsOp(Box::new(
15559                serde::de::Deserialize::deserialize(r)?,
15560            ))),
15561            TypeVariant::LiquidityPoolDepositOp => Ok(Self::LiquidityPoolDepositOp(Box::new(
15562                serde::de::Deserialize::deserialize(r)?,
15563            ))),
15564            TypeVariant::LiquidityPoolWithdrawOp => Ok(Self::LiquidityPoolWithdrawOp(Box::new(
15565                serde::de::Deserialize::deserialize(r)?,
15566            ))),
15567            TypeVariant::HostFunctionType => Ok(Self::HostFunctionType(Box::new(
15568                serde::de::Deserialize::deserialize(r)?,
15569            ))),
15570            TypeVariant::ContractIdPreimageType => Ok(Self::ContractIdPreimageType(Box::new(
15571                serde::de::Deserialize::deserialize(r)?,
15572            ))),
15573            TypeVariant::ContractIdPreimage => Ok(Self::ContractIdPreimage(Box::new(
15574                serde::de::Deserialize::deserialize(r)?,
15575            ))),
15576            TypeVariant::ContractIdPreimageFromAddress => Ok(Self::ContractIdPreimageFromAddress(
15577                Box::new(serde::de::Deserialize::deserialize(r)?),
15578            )),
15579            TypeVariant::CreateContractArgs => Ok(Self::CreateContractArgs(Box::new(
15580                serde::de::Deserialize::deserialize(r)?,
15581            ))),
15582            TypeVariant::CreateContractArgsV2 => Ok(Self::CreateContractArgsV2(Box::new(
15583                serde::de::Deserialize::deserialize(r)?,
15584            ))),
15585            TypeVariant::InvokeContractArgs => Ok(Self::InvokeContractArgs(Box::new(
15586                serde::de::Deserialize::deserialize(r)?,
15587            ))),
15588            TypeVariant::HostFunction => Ok(Self::HostFunction(Box::new(
15589                serde::de::Deserialize::deserialize(r)?,
15590            ))),
15591            TypeVariant::SorobanAuthorizedFunctionType => Ok(Self::SorobanAuthorizedFunctionType(
15592                Box::new(serde::de::Deserialize::deserialize(r)?),
15593            )),
15594            TypeVariant::SorobanAuthorizedFunction => Ok(Self::SorobanAuthorizedFunction(
15595                Box::new(serde::de::Deserialize::deserialize(r)?),
15596            )),
15597            TypeVariant::SorobanAuthorizedInvocation => Ok(Self::SorobanAuthorizedInvocation(
15598                Box::new(serde::de::Deserialize::deserialize(r)?),
15599            )),
15600            TypeVariant::SorobanAddressCredentials => Ok(Self::SorobanAddressCredentials(
15601                Box::new(serde::de::Deserialize::deserialize(r)?),
15602            )),
15603            TypeVariant::SorobanDelegateSignature => Ok(Self::SorobanDelegateSignature(Box::new(
15604                serde::de::Deserialize::deserialize(r)?,
15605            ))),
15606            TypeVariant::SorobanAddressCredentialsWithDelegates => {
15607                Ok(Self::SorobanAddressCredentialsWithDelegates(Box::new(
15608                    serde::de::Deserialize::deserialize(r)?,
15609                )))
15610            }
15611            TypeVariant::SorobanCredentialsType => Ok(Self::SorobanCredentialsType(Box::new(
15612                serde::de::Deserialize::deserialize(r)?,
15613            ))),
15614            TypeVariant::SorobanCredentials => Ok(Self::SorobanCredentials(Box::new(
15615                serde::de::Deserialize::deserialize(r)?,
15616            ))),
15617            TypeVariant::SorobanAuthorizationEntry => Ok(Self::SorobanAuthorizationEntry(
15618                Box::new(serde::de::Deserialize::deserialize(r)?),
15619            )),
15620            TypeVariant::SorobanAuthorizationEntries => Ok(Self::SorobanAuthorizationEntries(
15621                Box::new(serde::de::Deserialize::deserialize(r)?),
15622            )),
15623            TypeVariant::InvokeHostFunctionOp => Ok(Self::InvokeHostFunctionOp(Box::new(
15624                serde::de::Deserialize::deserialize(r)?,
15625            ))),
15626            TypeVariant::ExtendFootprintTtlOp => Ok(Self::ExtendFootprintTtlOp(Box::new(
15627                serde::de::Deserialize::deserialize(r)?,
15628            ))),
15629            TypeVariant::RestoreFootprintOp => Ok(Self::RestoreFootprintOp(Box::new(
15630                serde::de::Deserialize::deserialize(r)?,
15631            ))),
15632            TypeVariant::Operation => Ok(Self::Operation(Box::new(
15633                serde::de::Deserialize::deserialize(r)?,
15634            ))),
15635            TypeVariant::OperationBody => Ok(Self::OperationBody(Box::new(
15636                serde::de::Deserialize::deserialize(r)?,
15637            ))),
15638            TypeVariant::HashIdPreimage => Ok(Self::HashIdPreimage(Box::new(
15639                serde::de::Deserialize::deserialize(r)?,
15640            ))),
15641            TypeVariant::HashIdPreimageOperationId => Ok(Self::HashIdPreimageOperationId(
15642                Box::new(serde::de::Deserialize::deserialize(r)?),
15643            )),
15644            TypeVariant::HashIdPreimageRevokeId => Ok(Self::HashIdPreimageRevokeId(Box::new(
15645                serde::de::Deserialize::deserialize(r)?,
15646            ))),
15647            TypeVariant::HashIdPreimageContractId => Ok(Self::HashIdPreimageContractId(Box::new(
15648                serde::de::Deserialize::deserialize(r)?,
15649            ))),
15650            TypeVariant::HashIdPreimageSorobanAuthorization => {
15651                Ok(Self::HashIdPreimageSorobanAuthorization(Box::new(
15652                    serde::de::Deserialize::deserialize(r)?,
15653                )))
15654            }
15655            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
15656                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
15657                    Box::new(serde::de::Deserialize::deserialize(r)?),
15658                ))
15659            }
15660            TypeVariant::MemoType => Ok(Self::MemoType(Box::new(
15661                serde::de::Deserialize::deserialize(r)?,
15662            ))),
15663            TypeVariant::Memo => Ok(Self::Memo(Box::new(serde::de::Deserialize::deserialize(
15664                r,
15665            )?))),
15666            TypeVariant::TimeBounds => Ok(Self::TimeBounds(Box::new(
15667                serde::de::Deserialize::deserialize(r)?,
15668            ))),
15669            TypeVariant::LedgerBounds => Ok(Self::LedgerBounds(Box::new(
15670                serde::de::Deserialize::deserialize(r)?,
15671            ))),
15672            TypeVariant::PreconditionsV2 => Ok(Self::PreconditionsV2(Box::new(
15673                serde::de::Deserialize::deserialize(r)?,
15674            ))),
15675            TypeVariant::PreconditionType => Ok(Self::PreconditionType(Box::new(
15676                serde::de::Deserialize::deserialize(r)?,
15677            ))),
15678            TypeVariant::Preconditions => Ok(Self::Preconditions(Box::new(
15679                serde::de::Deserialize::deserialize(r)?,
15680            ))),
15681            TypeVariant::LedgerFootprint => Ok(Self::LedgerFootprint(Box::new(
15682                serde::de::Deserialize::deserialize(r)?,
15683            ))),
15684            TypeVariant::SorobanResources => Ok(Self::SorobanResources(Box::new(
15685                serde::de::Deserialize::deserialize(r)?,
15686            ))),
15687            TypeVariant::SorobanResourcesExtV0 => Ok(Self::SorobanResourcesExtV0(Box::new(
15688                serde::de::Deserialize::deserialize(r)?,
15689            ))),
15690            TypeVariant::SorobanTransactionData => Ok(Self::SorobanTransactionData(Box::new(
15691                serde::de::Deserialize::deserialize(r)?,
15692            ))),
15693            TypeVariant::SorobanTransactionDataExt => Ok(Self::SorobanTransactionDataExt(
15694                Box::new(serde::de::Deserialize::deserialize(r)?),
15695            )),
15696            TypeVariant::TransactionV0 => Ok(Self::TransactionV0(Box::new(
15697                serde::de::Deserialize::deserialize(r)?,
15698            ))),
15699            TypeVariant::TransactionV0Ext => Ok(Self::TransactionV0Ext(Box::new(
15700                serde::de::Deserialize::deserialize(r)?,
15701            ))),
15702            TypeVariant::TransactionV0Envelope => Ok(Self::TransactionV0Envelope(Box::new(
15703                serde::de::Deserialize::deserialize(r)?,
15704            ))),
15705            TypeVariant::Transaction => Ok(Self::Transaction(Box::new(
15706                serde::de::Deserialize::deserialize(r)?,
15707            ))),
15708            TypeVariant::TransactionExt => Ok(Self::TransactionExt(Box::new(
15709                serde::de::Deserialize::deserialize(r)?,
15710            ))),
15711            TypeVariant::TransactionV1Envelope => Ok(Self::TransactionV1Envelope(Box::new(
15712                serde::de::Deserialize::deserialize(r)?,
15713            ))),
15714            TypeVariant::FeeBumpTransaction => Ok(Self::FeeBumpTransaction(Box::new(
15715                serde::de::Deserialize::deserialize(r)?,
15716            ))),
15717            TypeVariant::FeeBumpTransactionInnerTx => Ok(Self::FeeBumpTransactionInnerTx(
15718                Box::new(serde::de::Deserialize::deserialize(r)?),
15719            )),
15720            TypeVariant::FeeBumpTransactionExt => Ok(Self::FeeBumpTransactionExt(Box::new(
15721                serde::de::Deserialize::deserialize(r)?,
15722            ))),
15723            TypeVariant::FeeBumpTransactionEnvelope => Ok(Self::FeeBumpTransactionEnvelope(
15724                Box::new(serde::de::Deserialize::deserialize(r)?),
15725            )),
15726            TypeVariant::TransactionEnvelope => Ok(Self::TransactionEnvelope(Box::new(
15727                serde::de::Deserialize::deserialize(r)?,
15728            ))),
15729            TypeVariant::TransactionSignaturePayload => Ok(Self::TransactionSignaturePayload(
15730                Box::new(serde::de::Deserialize::deserialize(r)?),
15731            )),
15732            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
15733                Ok(Self::TransactionSignaturePayloadTaggedTransaction(
15734                    Box::new(serde::de::Deserialize::deserialize(r)?),
15735                ))
15736            }
15737            TypeVariant::ClaimAtomType => Ok(Self::ClaimAtomType(Box::new(
15738                serde::de::Deserialize::deserialize(r)?,
15739            ))),
15740            TypeVariant::ClaimOfferAtomV0 => Ok(Self::ClaimOfferAtomV0(Box::new(
15741                serde::de::Deserialize::deserialize(r)?,
15742            ))),
15743            TypeVariant::ClaimOfferAtom => Ok(Self::ClaimOfferAtom(Box::new(
15744                serde::de::Deserialize::deserialize(r)?,
15745            ))),
15746            TypeVariant::ClaimLiquidityAtom => Ok(Self::ClaimLiquidityAtom(Box::new(
15747                serde::de::Deserialize::deserialize(r)?,
15748            ))),
15749            TypeVariant::ClaimAtom => Ok(Self::ClaimAtom(Box::new(
15750                serde::de::Deserialize::deserialize(r)?,
15751            ))),
15752            TypeVariant::CreateAccountResultCode => Ok(Self::CreateAccountResultCode(Box::new(
15753                serde::de::Deserialize::deserialize(r)?,
15754            ))),
15755            TypeVariant::CreateAccountResult => Ok(Self::CreateAccountResult(Box::new(
15756                serde::de::Deserialize::deserialize(r)?,
15757            ))),
15758            TypeVariant::PaymentResultCode => Ok(Self::PaymentResultCode(Box::new(
15759                serde::de::Deserialize::deserialize(r)?,
15760            ))),
15761            TypeVariant::PaymentResult => Ok(Self::PaymentResult(Box::new(
15762                serde::de::Deserialize::deserialize(r)?,
15763            ))),
15764            TypeVariant::PathPaymentStrictReceiveResultCode => {
15765                Ok(Self::PathPaymentStrictReceiveResultCode(Box::new(
15766                    serde::de::Deserialize::deserialize(r)?,
15767                )))
15768            }
15769            TypeVariant::SimplePaymentResult => Ok(Self::SimplePaymentResult(Box::new(
15770                serde::de::Deserialize::deserialize(r)?,
15771            ))),
15772            TypeVariant::PathPaymentStrictReceiveResult => {
15773                Ok(Self::PathPaymentStrictReceiveResult(Box::new(
15774                    serde::de::Deserialize::deserialize(r)?,
15775                )))
15776            }
15777            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
15778                Ok(Self::PathPaymentStrictReceiveResultSuccess(Box::new(
15779                    serde::de::Deserialize::deserialize(r)?,
15780                )))
15781            }
15782            TypeVariant::PathPaymentStrictSendResultCode => {
15783                Ok(Self::PathPaymentStrictSendResultCode(Box::new(
15784                    serde::de::Deserialize::deserialize(r)?,
15785                )))
15786            }
15787            TypeVariant::PathPaymentStrictSendResult => Ok(Self::PathPaymentStrictSendResult(
15788                Box::new(serde::de::Deserialize::deserialize(r)?),
15789            )),
15790            TypeVariant::PathPaymentStrictSendResultSuccess => {
15791                Ok(Self::PathPaymentStrictSendResultSuccess(Box::new(
15792                    serde::de::Deserialize::deserialize(r)?,
15793                )))
15794            }
15795            TypeVariant::ManageSellOfferResultCode => Ok(Self::ManageSellOfferResultCode(
15796                Box::new(serde::de::Deserialize::deserialize(r)?),
15797            )),
15798            TypeVariant::ManageOfferEffect => Ok(Self::ManageOfferEffect(Box::new(
15799                serde::de::Deserialize::deserialize(r)?,
15800            ))),
15801            TypeVariant::ManageOfferSuccessResult => Ok(Self::ManageOfferSuccessResult(Box::new(
15802                serde::de::Deserialize::deserialize(r)?,
15803            ))),
15804            TypeVariant::ManageOfferSuccessResultOffer => Ok(Self::ManageOfferSuccessResultOffer(
15805                Box::new(serde::de::Deserialize::deserialize(r)?),
15806            )),
15807            TypeVariant::ManageSellOfferResult => Ok(Self::ManageSellOfferResult(Box::new(
15808                serde::de::Deserialize::deserialize(r)?,
15809            ))),
15810            TypeVariant::ManageBuyOfferResultCode => Ok(Self::ManageBuyOfferResultCode(Box::new(
15811                serde::de::Deserialize::deserialize(r)?,
15812            ))),
15813            TypeVariant::ManageBuyOfferResult => Ok(Self::ManageBuyOfferResult(Box::new(
15814                serde::de::Deserialize::deserialize(r)?,
15815            ))),
15816            TypeVariant::SetOptionsResultCode => Ok(Self::SetOptionsResultCode(Box::new(
15817                serde::de::Deserialize::deserialize(r)?,
15818            ))),
15819            TypeVariant::SetOptionsResult => Ok(Self::SetOptionsResult(Box::new(
15820                serde::de::Deserialize::deserialize(r)?,
15821            ))),
15822            TypeVariant::ChangeTrustResultCode => Ok(Self::ChangeTrustResultCode(Box::new(
15823                serde::de::Deserialize::deserialize(r)?,
15824            ))),
15825            TypeVariant::ChangeTrustResult => Ok(Self::ChangeTrustResult(Box::new(
15826                serde::de::Deserialize::deserialize(r)?,
15827            ))),
15828            TypeVariant::AllowTrustResultCode => Ok(Self::AllowTrustResultCode(Box::new(
15829                serde::de::Deserialize::deserialize(r)?,
15830            ))),
15831            TypeVariant::AllowTrustResult => Ok(Self::AllowTrustResult(Box::new(
15832                serde::de::Deserialize::deserialize(r)?,
15833            ))),
15834            TypeVariant::AccountMergeResultCode => Ok(Self::AccountMergeResultCode(Box::new(
15835                serde::de::Deserialize::deserialize(r)?,
15836            ))),
15837            TypeVariant::AccountMergeResult => Ok(Self::AccountMergeResult(Box::new(
15838                serde::de::Deserialize::deserialize(r)?,
15839            ))),
15840            TypeVariant::InflationResultCode => Ok(Self::InflationResultCode(Box::new(
15841                serde::de::Deserialize::deserialize(r)?,
15842            ))),
15843            TypeVariant::InflationPayout => Ok(Self::InflationPayout(Box::new(
15844                serde::de::Deserialize::deserialize(r)?,
15845            ))),
15846            TypeVariant::InflationResult => Ok(Self::InflationResult(Box::new(
15847                serde::de::Deserialize::deserialize(r)?,
15848            ))),
15849            TypeVariant::ManageDataResultCode => Ok(Self::ManageDataResultCode(Box::new(
15850                serde::de::Deserialize::deserialize(r)?,
15851            ))),
15852            TypeVariant::ManageDataResult => Ok(Self::ManageDataResult(Box::new(
15853                serde::de::Deserialize::deserialize(r)?,
15854            ))),
15855            TypeVariant::BumpSequenceResultCode => Ok(Self::BumpSequenceResultCode(Box::new(
15856                serde::de::Deserialize::deserialize(r)?,
15857            ))),
15858            TypeVariant::BumpSequenceResult => Ok(Self::BumpSequenceResult(Box::new(
15859                serde::de::Deserialize::deserialize(r)?,
15860            ))),
15861            TypeVariant::CreateClaimableBalanceResultCode => {
15862                Ok(Self::CreateClaimableBalanceResultCode(Box::new(
15863                    serde::de::Deserialize::deserialize(r)?,
15864                )))
15865            }
15866            TypeVariant::CreateClaimableBalanceResult => Ok(Self::CreateClaimableBalanceResult(
15867                Box::new(serde::de::Deserialize::deserialize(r)?),
15868            )),
15869            TypeVariant::ClaimClaimableBalanceResultCode => {
15870                Ok(Self::ClaimClaimableBalanceResultCode(Box::new(
15871                    serde::de::Deserialize::deserialize(r)?,
15872                )))
15873            }
15874            TypeVariant::ClaimClaimableBalanceResult => Ok(Self::ClaimClaimableBalanceResult(
15875                Box::new(serde::de::Deserialize::deserialize(r)?),
15876            )),
15877            TypeVariant::BeginSponsoringFutureReservesResultCode => {
15878                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
15879                    serde::de::Deserialize::deserialize(r)?,
15880                )))
15881            }
15882            TypeVariant::BeginSponsoringFutureReservesResult => {
15883                Ok(Self::BeginSponsoringFutureReservesResult(Box::new(
15884                    serde::de::Deserialize::deserialize(r)?,
15885                )))
15886            }
15887            TypeVariant::EndSponsoringFutureReservesResultCode => {
15888                Ok(Self::EndSponsoringFutureReservesResultCode(Box::new(
15889                    serde::de::Deserialize::deserialize(r)?,
15890                )))
15891            }
15892            TypeVariant::EndSponsoringFutureReservesResult => {
15893                Ok(Self::EndSponsoringFutureReservesResult(Box::new(
15894                    serde::de::Deserialize::deserialize(r)?,
15895                )))
15896            }
15897            TypeVariant::RevokeSponsorshipResultCode => Ok(Self::RevokeSponsorshipResultCode(
15898                Box::new(serde::de::Deserialize::deserialize(r)?),
15899            )),
15900            TypeVariant::RevokeSponsorshipResult => Ok(Self::RevokeSponsorshipResult(Box::new(
15901                serde::de::Deserialize::deserialize(r)?,
15902            ))),
15903            TypeVariant::ClawbackResultCode => Ok(Self::ClawbackResultCode(Box::new(
15904                serde::de::Deserialize::deserialize(r)?,
15905            ))),
15906            TypeVariant::ClawbackResult => Ok(Self::ClawbackResult(Box::new(
15907                serde::de::Deserialize::deserialize(r)?,
15908            ))),
15909            TypeVariant::ClawbackClaimableBalanceResultCode => {
15910                Ok(Self::ClawbackClaimableBalanceResultCode(Box::new(
15911                    serde::de::Deserialize::deserialize(r)?,
15912                )))
15913            }
15914            TypeVariant::ClawbackClaimableBalanceResult => {
15915                Ok(Self::ClawbackClaimableBalanceResult(Box::new(
15916                    serde::de::Deserialize::deserialize(r)?,
15917                )))
15918            }
15919            TypeVariant::SetTrustLineFlagsResultCode => Ok(Self::SetTrustLineFlagsResultCode(
15920                Box::new(serde::de::Deserialize::deserialize(r)?),
15921            )),
15922            TypeVariant::SetTrustLineFlagsResult => Ok(Self::SetTrustLineFlagsResult(Box::new(
15923                serde::de::Deserialize::deserialize(r)?,
15924            ))),
15925            TypeVariant::LiquidityPoolDepositResultCode => {
15926                Ok(Self::LiquidityPoolDepositResultCode(Box::new(
15927                    serde::de::Deserialize::deserialize(r)?,
15928                )))
15929            }
15930            TypeVariant::LiquidityPoolDepositResult => Ok(Self::LiquidityPoolDepositResult(
15931                Box::new(serde::de::Deserialize::deserialize(r)?),
15932            )),
15933            TypeVariant::LiquidityPoolWithdrawResultCode => {
15934                Ok(Self::LiquidityPoolWithdrawResultCode(Box::new(
15935                    serde::de::Deserialize::deserialize(r)?,
15936                )))
15937            }
15938            TypeVariant::LiquidityPoolWithdrawResult => Ok(Self::LiquidityPoolWithdrawResult(
15939                Box::new(serde::de::Deserialize::deserialize(r)?),
15940            )),
15941            TypeVariant::InvokeHostFunctionResultCode => Ok(Self::InvokeHostFunctionResultCode(
15942                Box::new(serde::de::Deserialize::deserialize(r)?),
15943            )),
15944            TypeVariant::InvokeHostFunctionResult => Ok(Self::InvokeHostFunctionResult(Box::new(
15945                serde::de::Deserialize::deserialize(r)?,
15946            ))),
15947            TypeVariant::ExtendFootprintTtlResultCode => Ok(Self::ExtendFootprintTtlResultCode(
15948                Box::new(serde::de::Deserialize::deserialize(r)?),
15949            )),
15950            TypeVariant::ExtendFootprintTtlResult => Ok(Self::ExtendFootprintTtlResult(Box::new(
15951                serde::de::Deserialize::deserialize(r)?,
15952            ))),
15953            TypeVariant::RestoreFootprintResultCode => Ok(Self::RestoreFootprintResultCode(
15954                Box::new(serde::de::Deserialize::deserialize(r)?),
15955            )),
15956            TypeVariant::RestoreFootprintResult => Ok(Self::RestoreFootprintResult(Box::new(
15957                serde::de::Deserialize::deserialize(r)?,
15958            ))),
15959            TypeVariant::OperationResultCode => Ok(Self::OperationResultCode(Box::new(
15960                serde::de::Deserialize::deserialize(r)?,
15961            ))),
15962            TypeVariant::OperationResult => Ok(Self::OperationResult(Box::new(
15963                serde::de::Deserialize::deserialize(r)?,
15964            ))),
15965            TypeVariant::OperationResultTr => Ok(Self::OperationResultTr(Box::new(
15966                serde::de::Deserialize::deserialize(r)?,
15967            ))),
15968            TypeVariant::TransactionResultCode => Ok(Self::TransactionResultCode(Box::new(
15969                serde::de::Deserialize::deserialize(r)?,
15970            ))),
15971            TypeVariant::InnerTransactionResult => Ok(Self::InnerTransactionResult(Box::new(
15972                serde::de::Deserialize::deserialize(r)?,
15973            ))),
15974            TypeVariant::InnerTransactionResultResult => Ok(Self::InnerTransactionResultResult(
15975                Box::new(serde::de::Deserialize::deserialize(r)?),
15976            )),
15977            TypeVariant::InnerTransactionResultExt => Ok(Self::InnerTransactionResultExt(
15978                Box::new(serde::de::Deserialize::deserialize(r)?),
15979            )),
15980            TypeVariant::InnerTransactionResultPair => Ok(Self::InnerTransactionResultPair(
15981                Box::new(serde::de::Deserialize::deserialize(r)?),
15982            )),
15983            TypeVariant::TransactionResult => Ok(Self::TransactionResult(Box::new(
15984                serde::de::Deserialize::deserialize(r)?,
15985            ))),
15986            TypeVariant::TransactionResultResult => Ok(Self::TransactionResultResult(Box::new(
15987                serde::de::Deserialize::deserialize(r)?,
15988            ))),
15989            TypeVariant::TransactionResultExt => Ok(Self::TransactionResultExt(Box::new(
15990                serde::de::Deserialize::deserialize(r)?,
15991            ))),
15992            TypeVariant::Hash => Ok(Self::Hash(Box::new(serde::de::Deserialize::deserialize(
15993                r,
15994            )?))),
15995            TypeVariant::Uint256 => Ok(Self::Uint256(Box::new(
15996                serde::de::Deserialize::deserialize(r)?,
15997            ))),
15998            TypeVariant::Uint32 => Ok(Self::Uint32(Box::new(serde::de::Deserialize::deserialize(
15999                r,
16000            )?))),
16001            TypeVariant::Int32 => Ok(Self::Int32(Box::new(serde::de::Deserialize::deserialize(
16002                r,
16003            )?))),
16004            TypeVariant::Uint64 => Ok(Self::Uint64(Box::new(serde::de::Deserialize::deserialize(
16005                r,
16006            )?))),
16007            TypeVariant::Int64 => Ok(Self::Int64(Box::new(serde::de::Deserialize::deserialize(
16008                r,
16009            )?))),
16010            TypeVariant::TimePoint => Ok(Self::TimePoint(Box::new(
16011                serde::de::Deserialize::deserialize(r)?,
16012            ))),
16013            TypeVariant::Duration => Ok(Self::Duration(Box::new(
16014                serde::de::Deserialize::deserialize(r)?,
16015            ))),
16016            TypeVariant::ExtensionPoint => Ok(Self::ExtensionPoint(Box::new(
16017                serde::de::Deserialize::deserialize(r)?,
16018            ))),
16019            TypeVariant::CryptoKeyType => Ok(Self::CryptoKeyType(Box::new(
16020                serde::de::Deserialize::deserialize(r)?,
16021            ))),
16022            TypeVariant::PublicKeyType => Ok(Self::PublicKeyType(Box::new(
16023                serde::de::Deserialize::deserialize(r)?,
16024            ))),
16025            TypeVariant::SignerKeyType => Ok(Self::SignerKeyType(Box::new(
16026                serde::de::Deserialize::deserialize(r)?,
16027            ))),
16028            TypeVariant::PublicKey => Ok(Self::PublicKey(Box::new(
16029                serde::de::Deserialize::deserialize(r)?,
16030            ))),
16031            TypeVariant::SignerKey => Ok(Self::SignerKey(Box::new(
16032                serde::de::Deserialize::deserialize(r)?,
16033            ))),
16034            TypeVariant::SignerKeyEd25519SignedPayload => Ok(Self::SignerKeyEd25519SignedPayload(
16035                Box::new(serde::de::Deserialize::deserialize(r)?),
16036            )),
16037            TypeVariant::Signature => Ok(Self::Signature(Box::new(
16038                serde::de::Deserialize::deserialize(r)?,
16039            ))),
16040            TypeVariant::SignatureHint => Ok(Self::SignatureHint(Box::new(
16041                serde::de::Deserialize::deserialize(r)?,
16042            ))),
16043            TypeVariant::NodeId => Ok(Self::NodeId(Box::new(serde::de::Deserialize::deserialize(
16044                r,
16045            )?))),
16046            TypeVariant::AccountId => Ok(Self::AccountId(Box::new(
16047                serde::de::Deserialize::deserialize(r)?,
16048            ))),
16049            TypeVariant::ContractId => Ok(Self::ContractId(Box::new(
16050                serde::de::Deserialize::deserialize(r)?,
16051            ))),
16052            TypeVariant::Curve25519Secret => Ok(Self::Curve25519Secret(Box::new(
16053                serde::de::Deserialize::deserialize(r)?,
16054            ))),
16055            TypeVariant::Curve25519Public => Ok(Self::Curve25519Public(Box::new(
16056                serde::de::Deserialize::deserialize(r)?,
16057            ))),
16058            TypeVariant::HmacSha256Key => Ok(Self::HmacSha256Key(Box::new(
16059                serde::de::Deserialize::deserialize(r)?,
16060            ))),
16061            TypeVariant::HmacSha256Mac => Ok(Self::HmacSha256Mac(Box::new(
16062                serde::de::Deserialize::deserialize(r)?,
16063            ))),
16064            TypeVariant::ShortHashSeed => Ok(Self::ShortHashSeed(Box::new(
16065                serde::de::Deserialize::deserialize(r)?,
16066            ))),
16067            TypeVariant::BinaryFuseFilterType => Ok(Self::BinaryFuseFilterType(Box::new(
16068                serde::de::Deserialize::deserialize(r)?,
16069            ))),
16070            TypeVariant::SerializedBinaryFuseFilter => Ok(Self::SerializedBinaryFuseFilter(
16071                Box::new(serde::de::Deserialize::deserialize(r)?),
16072            )),
16073            TypeVariant::PoolId => Ok(Self::PoolId(Box::new(serde::de::Deserialize::deserialize(
16074                r,
16075            )?))),
16076            TypeVariant::ClaimableBalanceIdType => Ok(Self::ClaimableBalanceIdType(Box::new(
16077                serde::de::Deserialize::deserialize(r)?,
16078            ))),
16079            TypeVariant::ClaimableBalanceId => Ok(Self::ClaimableBalanceId(Box::new(
16080                serde::de::Deserialize::deserialize(r)?,
16081            ))),
16082            #[cfg(feature = "test_feature")]
16083            TypeVariant::TestNextType => Ok(Self::TestNextType(Box::new(
16084                serde::de::Deserialize::deserialize(r)?,
16085            ))),
16086        }
16087    }
16088
16089    #[cfg(feature = "serde_ignored")]
16090    pub fn from_json_collecting_ignored_fields(
16091        v: TypeVariant,
16092        r: impl Read,
16093    ) -> Result<(Self, Vec<String>), Error> {
16094        let mut de = serde_json::Deserializer::from_reader(r);
16095        let result = Self::deserialize_json_collecting_ignored_fields(v, &mut de)?;
16096        de.end().map_err(Error::Json)?;
16097        Ok(result)
16098    }
16099
16100    #[cfg(feature = "serde_ignored")]
16101    #[allow(clippy::too_many_lines)]
16102    pub fn deserialize_json_collecting_ignored_fields<'r, R: serde_json::de::Read<'r>>(
16103        v: TypeVariant,
16104        r: &mut serde_json::de::Deserializer<R>,
16105    ) -> Result<(Self, Vec<String>), Error> {
16106        let ignored = std::cell::RefCell::new(Vec::new());
16107        let t = match v {
16108            TypeVariant::Value => serde_ignored::deserialize(r, |path| {
16109                ignored.borrow_mut().push(path.to_string());
16110            })
16111            .map(|t| Self::Value(Box::new(t)))
16112            .map_err(Error::Json),
16113            TypeVariant::ScpBallot => serde_ignored::deserialize(r, |path| {
16114                ignored.borrow_mut().push(path.to_string());
16115            })
16116            .map(|t| Self::ScpBallot(Box::new(t)))
16117            .map_err(Error::Json),
16118            TypeVariant::ScpStatementType => serde_ignored::deserialize(r, |path| {
16119                ignored.borrow_mut().push(path.to_string());
16120            })
16121            .map(|t| Self::ScpStatementType(Box::new(t)))
16122            .map_err(Error::Json),
16123            TypeVariant::ScpNomination => serde_ignored::deserialize(r, |path| {
16124                ignored.borrow_mut().push(path.to_string());
16125            })
16126            .map(|t| Self::ScpNomination(Box::new(t)))
16127            .map_err(Error::Json),
16128            TypeVariant::ScpStatement => serde_ignored::deserialize(r, |path| {
16129                ignored.borrow_mut().push(path.to_string());
16130            })
16131            .map(|t| Self::ScpStatement(Box::new(t)))
16132            .map_err(Error::Json),
16133            TypeVariant::ScpStatementPledges => serde_ignored::deserialize(r, |path| {
16134                ignored.borrow_mut().push(path.to_string());
16135            })
16136            .map(|t| Self::ScpStatementPledges(Box::new(t)))
16137            .map_err(Error::Json),
16138            TypeVariant::ScpStatementPrepare => serde_ignored::deserialize(r, |path| {
16139                ignored.borrow_mut().push(path.to_string());
16140            })
16141            .map(|t| Self::ScpStatementPrepare(Box::new(t)))
16142            .map_err(Error::Json),
16143            TypeVariant::ScpStatementConfirm => serde_ignored::deserialize(r, |path| {
16144                ignored.borrow_mut().push(path.to_string());
16145            })
16146            .map(|t| Self::ScpStatementConfirm(Box::new(t)))
16147            .map_err(Error::Json),
16148            TypeVariant::ScpStatementExternalize => serde_ignored::deserialize(r, |path| {
16149                ignored.borrow_mut().push(path.to_string());
16150            })
16151            .map(|t| Self::ScpStatementExternalize(Box::new(t)))
16152            .map_err(Error::Json),
16153            TypeVariant::ScpEnvelope => serde_ignored::deserialize(r, |path| {
16154                ignored.borrow_mut().push(path.to_string());
16155            })
16156            .map(|t| Self::ScpEnvelope(Box::new(t)))
16157            .map_err(Error::Json),
16158            TypeVariant::ScpQuorumSet => serde_ignored::deserialize(r, |path| {
16159                ignored.borrow_mut().push(path.to_string());
16160            })
16161            .map(|t| Self::ScpQuorumSet(Box::new(t)))
16162            .map_err(Error::Json),
16163            TypeVariant::EncodedLedgerKey => serde_ignored::deserialize(r, |path| {
16164                ignored.borrow_mut().push(path.to_string());
16165            })
16166            .map(|t| Self::EncodedLedgerKey(Box::new(t)))
16167            .map_err(Error::Json),
16168            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
16169                serde_ignored::deserialize(r, |path| {
16170                    ignored.borrow_mut().push(path.to_string());
16171                })
16172                .map(|t| Self::ConfigSettingContractExecutionLanesV0(Box::new(t)))
16173                .map_err(Error::Json)
16174            }
16175            TypeVariant::ConfigSettingContractComputeV0 => serde_ignored::deserialize(r, |path| {
16176                ignored.borrow_mut().push(path.to_string());
16177            })
16178            .map(|t| Self::ConfigSettingContractComputeV0(Box::new(t)))
16179            .map_err(Error::Json),
16180            TypeVariant::ConfigSettingContractParallelComputeV0 => {
16181                serde_ignored::deserialize(r, |path| {
16182                    ignored.borrow_mut().push(path.to_string());
16183                })
16184                .map(|t| Self::ConfigSettingContractParallelComputeV0(Box::new(t)))
16185                .map_err(Error::Json)
16186            }
16187            TypeVariant::ConfigSettingContractLedgerCostV0 => {
16188                serde_ignored::deserialize(r, |path| {
16189                    ignored.borrow_mut().push(path.to_string());
16190                })
16191                .map(|t| Self::ConfigSettingContractLedgerCostV0(Box::new(t)))
16192                .map_err(Error::Json)
16193            }
16194            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
16195                serde_ignored::deserialize(r, |path| {
16196                    ignored.borrow_mut().push(path.to_string());
16197                })
16198                .map(|t| Self::ConfigSettingContractLedgerCostExtV0(Box::new(t)))
16199                .map_err(Error::Json)
16200            }
16201            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
16202                serde_ignored::deserialize(r, |path| {
16203                    ignored.borrow_mut().push(path.to_string());
16204                })
16205                .map(|t| Self::ConfigSettingContractHistoricalDataV0(Box::new(t)))
16206                .map_err(Error::Json)
16207            }
16208            TypeVariant::ConfigSettingContractEventsV0 => serde_ignored::deserialize(r, |path| {
16209                ignored.borrow_mut().push(path.to_string());
16210            })
16211            .map(|t| Self::ConfigSettingContractEventsV0(Box::new(t)))
16212            .map_err(Error::Json),
16213            TypeVariant::ConfigSettingContractBandwidthV0 => {
16214                serde_ignored::deserialize(r, |path| {
16215                    ignored.borrow_mut().push(path.to_string());
16216                })
16217                .map(|t| Self::ConfigSettingContractBandwidthV0(Box::new(t)))
16218                .map_err(Error::Json)
16219            }
16220            TypeVariant::ContractCostType => serde_ignored::deserialize(r, |path| {
16221                ignored.borrow_mut().push(path.to_string());
16222            })
16223            .map(|t| Self::ContractCostType(Box::new(t)))
16224            .map_err(Error::Json),
16225            TypeVariant::ContractCostParamEntry => serde_ignored::deserialize(r, |path| {
16226                ignored.borrow_mut().push(path.to_string());
16227            })
16228            .map(|t| Self::ContractCostParamEntry(Box::new(t)))
16229            .map_err(Error::Json),
16230            TypeVariant::StateArchivalSettings => serde_ignored::deserialize(r, |path| {
16231                ignored.borrow_mut().push(path.to_string());
16232            })
16233            .map(|t| Self::StateArchivalSettings(Box::new(t)))
16234            .map_err(Error::Json),
16235            TypeVariant::EvictionIterator => serde_ignored::deserialize(r, |path| {
16236                ignored.borrow_mut().push(path.to_string());
16237            })
16238            .map(|t| Self::EvictionIterator(Box::new(t)))
16239            .map_err(Error::Json),
16240            TypeVariant::ConfigSettingScpTiming => serde_ignored::deserialize(r, |path| {
16241                ignored.borrow_mut().push(path.to_string());
16242            })
16243            .map(|t| Self::ConfigSettingScpTiming(Box::new(t)))
16244            .map_err(Error::Json),
16245            TypeVariant::FrozenLedgerKeys => serde_ignored::deserialize(r, |path| {
16246                ignored.borrow_mut().push(path.to_string());
16247            })
16248            .map(|t| Self::FrozenLedgerKeys(Box::new(t)))
16249            .map_err(Error::Json),
16250            TypeVariant::FrozenLedgerKeysDelta => serde_ignored::deserialize(r, |path| {
16251                ignored.borrow_mut().push(path.to_string());
16252            })
16253            .map(|t| Self::FrozenLedgerKeysDelta(Box::new(t)))
16254            .map_err(Error::Json),
16255            TypeVariant::FreezeBypassTxs => serde_ignored::deserialize(r, |path| {
16256                ignored.borrow_mut().push(path.to_string());
16257            })
16258            .map(|t| Self::FreezeBypassTxs(Box::new(t)))
16259            .map_err(Error::Json),
16260            TypeVariant::FreezeBypassTxsDelta => serde_ignored::deserialize(r, |path| {
16261                ignored.borrow_mut().push(path.to_string());
16262            })
16263            .map(|t| Self::FreezeBypassTxsDelta(Box::new(t)))
16264            .map_err(Error::Json),
16265            TypeVariant::ContractCostParams => serde_ignored::deserialize(r, |path| {
16266                ignored.borrow_mut().push(path.to_string());
16267            })
16268            .map(|t| Self::ContractCostParams(Box::new(t)))
16269            .map_err(Error::Json),
16270            TypeVariant::ConfigSettingId => serde_ignored::deserialize(r, |path| {
16271                ignored.borrow_mut().push(path.to_string());
16272            })
16273            .map(|t| Self::ConfigSettingId(Box::new(t)))
16274            .map_err(Error::Json),
16275            TypeVariant::ConfigSettingEntry => serde_ignored::deserialize(r, |path| {
16276                ignored.borrow_mut().push(path.to_string());
16277            })
16278            .map(|t| Self::ConfigSettingEntry(Box::new(t)))
16279            .map_err(Error::Json),
16280            TypeVariant::ScEnvMetaKind => serde_ignored::deserialize(r, |path| {
16281                ignored.borrow_mut().push(path.to_string());
16282            })
16283            .map(|t| Self::ScEnvMetaKind(Box::new(t)))
16284            .map_err(Error::Json),
16285            TypeVariant::ScEnvMetaEntry => serde_ignored::deserialize(r, |path| {
16286                ignored.borrow_mut().push(path.to_string());
16287            })
16288            .map(|t| Self::ScEnvMetaEntry(Box::new(t)))
16289            .map_err(Error::Json),
16290            TypeVariant::ScEnvMetaEntryInterfaceVersion => serde_ignored::deserialize(r, |path| {
16291                ignored.borrow_mut().push(path.to_string());
16292            })
16293            .map(|t| Self::ScEnvMetaEntryInterfaceVersion(Box::new(t)))
16294            .map_err(Error::Json),
16295            TypeVariant::ScMetaV0 => serde_ignored::deserialize(r, |path| {
16296                ignored.borrow_mut().push(path.to_string());
16297            })
16298            .map(|t| Self::ScMetaV0(Box::new(t)))
16299            .map_err(Error::Json),
16300            TypeVariant::ScMetaKind => serde_ignored::deserialize(r, |path| {
16301                ignored.borrow_mut().push(path.to_string());
16302            })
16303            .map(|t| Self::ScMetaKind(Box::new(t)))
16304            .map_err(Error::Json),
16305            TypeVariant::ScMetaEntry => serde_ignored::deserialize(r, |path| {
16306                ignored.borrow_mut().push(path.to_string());
16307            })
16308            .map(|t| Self::ScMetaEntry(Box::new(t)))
16309            .map_err(Error::Json),
16310            TypeVariant::ScSpecType => serde_ignored::deserialize(r, |path| {
16311                ignored.borrow_mut().push(path.to_string());
16312            })
16313            .map(|t| Self::ScSpecType(Box::new(t)))
16314            .map_err(Error::Json),
16315            TypeVariant::ScSpecTypeOption => serde_ignored::deserialize(r, |path| {
16316                ignored.borrow_mut().push(path.to_string());
16317            })
16318            .map(|t| Self::ScSpecTypeOption(Box::new(t)))
16319            .map_err(Error::Json),
16320            TypeVariant::ScSpecTypeResult => serde_ignored::deserialize(r, |path| {
16321                ignored.borrow_mut().push(path.to_string());
16322            })
16323            .map(|t| Self::ScSpecTypeResult(Box::new(t)))
16324            .map_err(Error::Json),
16325            TypeVariant::ScSpecTypeVec => serde_ignored::deserialize(r, |path| {
16326                ignored.borrow_mut().push(path.to_string());
16327            })
16328            .map(|t| Self::ScSpecTypeVec(Box::new(t)))
16329            .map_err(Error::Json),
16330            TypeVariant::ScSpecTypeMap => serde_ignored::deserialize(r, |path| {
16331                ignored.borrow_mut().push(path.to_string());
16332            })
16333            .map(|t| Self::ScSpecTypeMap(Box::new(t)))
16334            .map_err(Error::Json),
16335            TypeVariant::ScSpecTypeTuple => serde_ignored::deserialize(r, |path| {
16336                ignored.borrow_mut().push(path.to_string());
16337            })
16338            .map(|t| Self::ScSpecTypeTuple(Box::new(t)))
16339            .map_err(Error::Json),
16340            TypeVariant::ScSpecTypeBytesN => serde_ignored::deserialize(r, |path| {
16341                ignored.borrow_mut().push(path.to_string());
16342            })
16343            .map(|t| Self::ScSpecTypeBytesN(Box::new(t)))
16344            .map_err(Error::Json),
16345            TypeVariant::ScSpecTypeUdt => serde_ignored::deserialize(r, |path| {
16346                ignored.borrow_mut().push(path.to_string());
16347            })
16348            .map(|t| Self::ScSpecTypeUdt(Box::new(t)))
16349            .map_err(Error::Json),
16350            TypeVariant::ScSpecTypeDef => serde_ignored::deserialize(r, |path| {
16351                ignored.borrow_mut().push(path.to_string());
16352            })
16353            .map(|t| Self::ScSpecTypeDef(Box::new(t)))
16354            .map_err(Error::Json),
16355            TypeVariant::ScSpecUdtStructFieldV0 => serde_ignored::deserialize(r, |path| {
16356                ignored.borrow_mut().push(path.to_string());
16357            })
16358            .map(|t| Self::ScSpecUdtStructFieldV0(Box::new(t)))
16359            .map_err(Error::Json),
16360            TypeVariant::ScSpecUdtStructV0 => serde_ignored::deserialize(r, |path| {
16361                ignored.borrow_mut().push(path.to_string());
16362            })
16363            .map(|t| Self::ScSpecUdtStructV0(Box::new(t)))
16364            .map_err(Error::Json),
16365            TypeVariant::ScSpecUdtUnionCaseVoidV0 => serde_ignored::deserialize(r, |path| {
16366                ignored.borrow_mut().push(path.to_string());
16367            })
16368            .map(|t| Self::ScSpecUdtUnionCaseVoidV0(Box::new(t)))
16369            .map_err(Error::Json),
16370            TypeVariant::ScSpecUdtUnionCaseTupleV0 => serde_ignored::deserialize(r, |path| {
16371                ignored.borrow_mut().push(path.to_string());
16372            })
16373            .map(|t| Self::ScSpecUdtUnionCaseTupleV0(Box::new(t)))
16374            .map_err(Error::Json),
16375            TypeVariant::ScSpecUdtUnionCaseV0Kind => serde_ignored::deserialize(r, |path| {
16376                ignored.borrow_mut().push(path.to_string());
16377            })
16378            .map(|t| Self::ScSpecUdtUnionCaseV0Kind(Box::new(t)))
16379            .map_err(Error::Json),
16380            TypeVariant::ScSpecUdtUnionCaseV0 => serde_ignored::deserialize(r, |path| {
16381                ignored.borrow_mut().push(path.to_string());
16382            })
16383            .map(|t| Self::ScSpecUdtUnionCaseV0(Box::new(t)))
16384            .map_err(Error::Json),
16385            TypeVariant::ScSpecUdtUnionV0 => serde_ignored::deserialize(r, |path| {
16386                ignored.borrow_mut().push(path.to_string());
16387            })
16388            .map(|t| Self::ScSpecUdtUnionV0(Box::new(t)))
16389            .map_err(Error::Json),
16390            TypeVariant::ScSpecUdtEnumCaseV0 => serde_ignored::deserialize(r, |path| {
16391                ignored.borrow_mut().push(path.to_string());
16392            })
16393            .map(|t| Self::ScSpecUdtEnumCaseV0(Box::new(t)))
16394            .map_err(Error::Json),
16395            TypeVariant::ScSpecUdtEnumV0 => serde_ignored::deserialize(r, |path| {
16396                ignored.borrow_mut().push(path.to_string());
16397            })
16398            .map(|t| Self::ScSpecUdtEnumV0(Box::new(t)))
16399            .map_err(Error::Json),
16400            TypeVariant::ScSpecUdtErrorEnumCaseV0 => serde_ignored::deserialize(r, |path| {
16401                ignored.borrow_mut().push(path.to_string());
16402            })
16403            .map(|t| Self::ScSpecUdtErrorEnumCaseV0(Box::new(t)))
16404            .map_err(Error::Json),
16405            TypeVariant::ScSpecUdtErrorEnumV0 => serde_ignored::deserialize(r, |path| {
16406                ignored.borrow_mut().push(path.to_string());
16407            })
16408            .map(|t| Self::ScSpecUdtErrorEnumV0(Box::new(t)))
16409            .map_err(Error::Json),
16410            TypeVariant::ScSpecFunctionInputV0 => serde_ignored::deserialize(r, |path| {
16411                ignored.borrow_mut().push(path.to_string());
16412            })
16413            .map(|t| Self::ScSpecFunctionInputV0(Box::new(t)))
16414            .map_err(Error::Json),
16415            TypeVariant::ScSpecFunctionV0 => serde_ignored::deserialize(r, |path| {
16416                ignored.borrow_mut().push(path.to_string());
16417            })
16418            .map(|t| Self::ScSpecFunctionV0(Box::new(t)))
16419            .map_err(Error::Json),
16420            TypeVariant::ScSpecEventParamLocationV0 => serde_ignored::deserialize(r, |path| {
16421                ignored.borrow_mut().push(path.to_string());
16422            })
16423            .map(|t| Self::ScSpecEventParamLocationV0(Box::new(t)))
16424            .map_err(Error::Json),
16425            TypeVariant::ScSpecEventParamV0 => serde_ignored::deserialize(r, |path| {
16426                ignored.borrow_mut().push(path.to_string());
16427            })
16428            .map(|t| Self::ScSpecEventParamV0(Box::new(t)))
16429            .map_err(Error::Json),
16430            TypeVariant::ScSpecEventDataFormat => serde_ignored::deserialize(r, |path| {
16431                ignored.borrow_mut().push(path.to_string());
16432            })
16433            .map(|t| Self::ScSpecEventDataFormat(Box::new(t)))
16434            .map_err(Error::Json),
16435            TypeVariant::ScSpecEventV0 => serde_ignored::deserialize(r, |path| {
16436                ignored.borrow_mut().push(path.to_string());
16437            })
16438            .map(|t| Self::ScSpecEventV0(Box::new(t)))
16439            .map_err(Error::Json),
16440            TypeVariant::ScSpecEntryKind => serde_ignored::deserialize(r, |path| {
16441                ignored.borrow_mut().push(path.to_string());
16442            })
16443            .map(|t| Self::ScSpecEntryKind(Box::new(t)))
16444            .map_err(Error::Json),
16445            TypeVariant::ScSpecEntry => serde_ignored::deserialize(r, |path| {
16446                ignored.borrow_mut().push(path.to_string());
16447            })
16448            .map(|t| Self::ScSpecEntry(Box::new(t)))
16449            .map_err(Error::Json),
16450            TypeVariant::ScBytes => serde_ignored::deserialize(r, |path| {
16451                ignored.borrow_mut().push(path.to_string());
16452            })
16453            .map(|t| Self::ScBytes(Box::new(t)))
16454            .map_err(Error::Json),
16455            TypeVariant::ScString => serde_ignored::deserialize(r, |path| {
16456                ignored.borrow_mut().push(path.to_string());
16457            })
16458            .map(|t| Self::ScString(Box::new(t)))
16459            .map_err(Error::Json),
16460            TypeVariant::ScSymbol => serde_ignored::deserialize(r, |path| {
16461                ignored.borrow_mut().push(path.to_string());
16462            })
16463            .map(|t| Self::ScSymbol(Box::new(t)))
16464            .map_err(Error::Json),
16465            TypeVariant::ScValType => serde_ignored::deserialize(r, |path| {
16466                ignored.borrow_mut().push(path.to_string());
16467            })
16468            .map(|t| Self::ScValType(Box::new(t)))
16469            .map_err(Error::Json),
16470            TypeVariant::ScErrorType => serde_ignored::deserialize(r, |path| {
16471                ignored.borrow_mut().push(path.to_string());
16472            })
16473            .map(|t| Self::ScErrorType(Box::new(t)))
16474            .map_err(Error::Json),
16475            TypeVariant::ScErrorCode => serde_ignored::deserialize(r, |path| {
16476                ignored.borrow_mut().push(path.to_string());
16477            })
16478            .map(|t| Self::ScErrorCode(Box::new(t)))
16479            .map_err(Error::Json),
16480            TypeVariant::ScError => serde_ignored::deserialize(r, |path| {
16481                ignored.borrow_mut().push(path.to_string());
16482            })
16483            .map(|t| Self::ScError(Box::new(t)))
16484            .map_err(Error::Json),
16485            TypeVariant::UInt128Parts => serde_ignored::deserialize(r, |path| {
16486                ignored.borrow_mut().push(path.to_string());
16487            })
16488            .map(|t| Self::UInt128Parts(Box::new(t)))
16489            .map_err(Error::Json),
16490            TypeVariant::Int128Parts => serde_ignored::deserialize(r, |path| {
16491                ignored.borrow_mut().push(path.to_string());
16492            })
16493            .map(|t| Self::Int128Parts(Box::new(t)))
16494            .map_err(Error::Json),
16495            TypeVariant::UInt256Parts => serde_ignored::deserialize(r, |path| {
16496                ignored.borrow_mut().push(path.to_string());
16497            })
16498            .map(|t| Self::UInt256Parts(Box::new(t)))
16499            .map_err(Error::Json),
16500            TypeVariant::Int256Parts => serde_ignored::deserialize(r, |path| {
16501                ignored.borrow_mut().push(path.to_string());
16502            })
16503            .map(|t| Self::Int256Parts(Box::new(t)))
16504            .map_err(Error::Json),
16505            TypeVariant::ContractExecutableType => serde_ignored::deserialize(r, |path| {
16506                ignored.borrow_mut().push(path.to_string());
16507            })
16508            .map(|t| Self::ContractExecutableType(Box::new(t)))
16509            .map_err(Error::Json),
16510            TypeVariant::ScAddressType => serde_ignored::deserialize(r, |path| {
16511                ignored.borrow_mut().push(path.to_string());
16512            })
16513            .map(|t| Self::ScAddressType(Box::new(t)))
16514            .map_err(Error::Json),
16515            TypeVariant::MuxedEd25519Account => serde_ignored::deserialize(r, |path| {
16516                ignored.borrow_mut().push(path.to_string());
16517            })
16518            .map(|t| Self::MuxedEd25519Account(Box::new(t)))
16519            .map_err(Error::Json),
16520            #[cfg(feature = "cap_0084_muxed_contract")]
16521            TypeVariant::MuxedContract => serde_ignored::deserialize(r, |path| {
16522                ignored.borrow_mut().push(path.to_string());
16523            })
16524            .map(|t| Self::MuxedContract(Box::new(t)))
16525            .map_err(Error::Json),
16526            TypeVariant::ScAddress => serde_ignored::deserialize(r, |path| {
16527                ignored.borrow_mut().push(path.to_string());
16528            })
16529            .map(|t| Self::ScAddress(Box::new(t)))
16530            .map_err(Error::Json),
16531            TypeVariant::ContractExecutableExternalRef => serde_ignored::deserialize(r, |path| {
16532                ignored.borrow_mut().push(path.to_string());
16533            })
16534            .map(|t| Self::ContractExecutableExternalRef(Box::new(t)))
16535            .map_err(Error::Json),
16536            TypeVariant::ContractExecutable => serde_ignored::deserialize(r, |path| {
16537                ignored.borrow_mut().push(path.to_string());
16538            })
16539            .map(|t| Self::ContractExecutable(Box::new(t)))
16540            .map_err(Error::Json),
16541            TypeVariant::ScVec => serde_ignored::deserialize(r, |path| {
16542                ignored.borrow_mut().push(path.to_string());
16543            })
16544            .map(|t| Self::ScVec(Box::new(t)))
16545            .map_err(Error::Json),
16546            TypeVariant::ScMap => serde_ignored::deserialize(r, |path| {
16547                ignored.borrow_mut().push(path.to_string());
16548            })
16549            .map(|t| Self::ScMap(Box::new(t)))
16550            .map_err(Error::Json),
16551            TypeVariant::ScNonceKey => serde_ignored::deserialize(r, |path| {
16552                ignored.borrow_mut().push(path.to_string());
16553            })
16554            .map(|t| Self::ScNonceKey(Box::new(t)))
16555            .map_err(Error::Json),
16556            TypeVariant::ScContractInstance => serde_ignored::deserialize(r, |path| {
16557                ignored.borrow_mut().push(path.to_string());
16558            })
16559            .map(|t| Self::ScContractInstance(Box::new(t)))
16560            .map_err(Error::Json),
16561            TypeVariant::ScVal => serde_ignored::deserialize(r, |path| {
16562                ignored.borrow_mut().push(path.to_string());
16563            })
16564            .map(|t| Self::ScVal(Box::new(t)))
16565            .map_err(Error::Json),
16566            TypeVariant::ScMapEntry => serde_ignored::deserialize(r, |path| {
16567                ignored.borrow_mut().push(path.to_string());
16568            })
16569            .map(|t| Self::ScMapEntry(Box::new(t)))
16570            .map_err(Error::Json),
16571            TypeVariant::LedgerCloseMetaBatch => serde_ignored::deserialize(r, |path| {
16572                ignored.borrow_mut().push(path.to_string());
16573            })
16574            .map(|t| Self::LedgerCloseMetaBatch(Box::new(t)))
16575            .map_err(Error::Json),
16576            TypeVariant::StoredTransactionSet => serde_ignored::deserialize(r, |path| {
16577                ignored.borrow_mut().push(path.to_string());
16578            })
16579            .map(|t| Self::StoredTransactionSet(Box::new(t)))
16580            .map_err(Error::Json),
16581            TypeVariant::StoredDebugTransactionSet => serde_ignored::deserialize(r, |path| {
16582                ignored.borrow_mut().push(path.to_string());
16583            })
16584            .map(|t| Self::StoredDebugTransactionSet(Box::new(t)))
16585            .map_err(Error::Json),
16586            TypeVariant::PersistedScpStateV0 => serde_ignored::deserialize(r, |path| {
16587                ignored.borrow_mut().push(path.to_string());
16588            })
16589            .map(|t| Self::PersistedScpStateV0(Box::new(t)))
16590            .map_err(Error::Json),
16591            TypeVariant::PersistedScpStateV1 => serde_ignored::deserialize(r, |path| {
16592                ignored.borrow_mut().push(path.to_string());
16593            })
16594            .map(|t| Self::PersistedScpStateV1(Box::new(t)))
16595            .map_err(Error::Json),
16596            TypeVariant::PersistedScpState => serde_ignored::deserialize(r, |path| {
16597                ignored.borrow_mut().push(path.to_string());
16598            })
16599            .map(|t| Self::PersistedScpState(Box::new(t)))
16600            .map_err(Error::Json),
16601            TypeVariant::Thresholds => serde_ignored::deserialize(r, |path| {
16602                ignored.borrow_mut().push(path.to_string());
16603            })
16604            .map(|t| Self::Thresholds(Box::new(t)))
16605            .map_err(Error::Json),
16606            TypeVariant::String32 => serde_ignored::deserialize(r, |path| {
16607                ignored.borrow_mut().push(path.to_string());
16608            })
16609            .map(|t| Self::String32(Box::new(t)))
16610            .map_err(Error::Json),
16611            TypeVariant::String64 => serde_ignored::deserialize(r, |path| {
16612                ignored.borrow_mut().push(path.to_string());
16613            })
16614            .map(|t| Self::String64(Box::new(t)))
16615            .map_err(Error::Json),
16616            TypeVariant::SequenceNumber => serde_ignored::deserialize(r, |path| {
16617                ignored.borrow_mut().push(path.to_string());
16618            })
16619            .map(|t| Self::SequenceNumber(Box::new(t)))
16620            .map_err(Error::Json),
16621            TypeVariant::DataValue => serde_ignored::deserialize(r, |path| {
16622                ignored.borrow_mut().push(path.to_string());
16623            })
16624            .map(|t| Self::DataValue(Box::new(t)))
16625            .map_err(Error::Json),
16626            TypeVariant::AssetCode4 => serde_ignored::deserialize(r, |path| {
16627                ignored.borrow_mut().push(path.to_string());
16628            })
16629            .map(|t| Self::AssetCode4(Box::new(t)))
16630            .map_err(Error::Json),
16631            TypeVariant::AssetCode12 => serde_ignored::deserialize(r, |path| {
16632                ignored.borrow_mut().push(path.to_string());
16633            })
16634            .map(|t| Self::AssetCode12(Box::new(t)))
16635            .map_err(Error::Json),
16636            TypeVariant::AssetType => serde_ignored::deserialize(r, |path| {
16637                ignored.borrow_mut().push(path.to_string());
16638            })
16639            .map(|t| Self::AssetType(Box::new(t)))
16640            .map_err(Error::Json),
16641            TypeVariant::AssetCode => serde_ignored::deserialize(r, |path| {
16642                ignored.borrow_mut().push(path.to_string());
16643            })
16644            .map(|t| Self::AssetCode(Box::new(t)))
16645            .map_err(Error::Json),
16646            TypeVariant::AlphaNum4 => serde_ignored::deserialize(r, |path| {
16647                ignored.borrow_mut().push(path.to_string());
16648            })
16649            .map(|t| Self::AlphaNum4(Box::new(t)))
16650            .map_err(Error::Json),
16651            TypeVariant::AlphaNum12 => serde_ignored::deserialize(r, |path| {
16652                ignored.borrow_mut().push(path.to_string());
16653            })
16654            .map(|t| Self::AlphaNum12(Box::new(t)))
16655            .map_err(Error::Json),
16656            TypeVariant::Asset => serde_ignored::deserialize(r, |path| {
16657                ignored.borrow_mut().push(path.to_string());
16658            })
16659            .map(|t| Self::Asset(Box::new(t)))
16660            .map_err(Error::Json),
16661            TypeVariant::Price => serde_ignored::deserialize(r, |path| {
16662                ignored.borrow_mut().push(path.to_string());
16663            })
16664            .map(|t| Self::Price(Box::new(t)))
16665            .map_err(Error::Json),
16666            TypeVariant::Liabilities => serde_ignored::deserialize(r, |path| {
16667                ignored.borrow_mut().push(path.to_string());
16668            })
16669            .map(|t| Self::Liabilities(Box::new(t)))
16670            .map_err(Error::Json),
16671            TypeVariant::ThresholdIndexes => serde_ignored::deserialize(r, |path| {
16672                ignored.borrow_mut().push(path.to_string());
16673            })
16674            .map(|t| Self::ThresholdIndexes(Box::new(t)))
16675            .map_err(Error::Json),
16676            TypeVariant::LedgerEntryType => serde_ignored::deserialize(r, |path| {
16677                ignored.borrow_mut().push(path.to_string());
16678            })
16679            .map(|t| Self::LedgerEntryType(Box::new(t)))
16680            .map_err(Error::Json),
16681            TypeVariant::Signer => serde_ignored::deserialize(r, |path| {
16682                ignored.borrow_mut().push(path.to_string());
16683            })
16684            .map(|t| Self::Signer(Box::new(t)))
16685            .map_err(Error::Json),
16686            TypeVariant::AccountFlags => serde_ignored::deserialize(r, |path| {
16687                ignored.borrow_mut().push(path.to_string());
16688            })
16689            .map(|t| Self::AccountFlags(Box::new(t)))
16690            .map_err(Error::Json),
16691            TypeVariant::SponsorshipDescriptor => serde_ignored::deserialize(r, |path| {
16692                ignored.borrow_mut().push(path.to_string());
16693            })
16694            .map(|t| Self::SponsorshipDescriptor(Box::new(t)))
16695            .map_err(Error::Json),
16696            TypeVariant::AccountEntryExtensionV3 => serde_ignored::deserialize(r, |path| {
16697                ignored.borrow_mut().push(path.to_string());
16698            })
16699            .map(|t| Self::AccountEntryExtensionV3(Box::new(t)))
16700            .map_err(Error::Json),
16701            TypeVariant::AccountEntryExtensionV2 => serde_ignored::deserialize(r, |path| {
16702                ignored.borrow_mut().push(path.to_string());
16703            })
16704            .map(|t| Self::AccountEntryExtensionV2(Box::new(t)))
16705            .map_err(Error::Json),
16706            TypeVariant::AccountEntryExtensionV2Ext => serde_ignored::deserialize(r, |path| {
16707                ignored.borrow_mut().push(path.to_string());
16708            })
16709            .map(|t| Self::AccountEntryExtensionV2Ext(Box::new(t)))
16710            .map_err(Error::Json),
16711            TypeVariant::AccountEntryExtensionV1 => serde_ignored::deserialize(r, |path| {
16712                ignored.borrow_mut().push(path.to_string());
16713            })
16714            .map(|t| Self::AccountEntryExtensionV1(Box::new(t)))
16715            .map_err(Error::Json),
16716            TypeVariant::AccountEntryExtensionV1Ext => serde_ignored::deserialize(r, |path| {
16717                ignored.borrow_mut().push(path.to_string());
16718            })
16719            .map(|t| Self::AccountEntryExtensionV1Ext(Box::new(t)))
16720            .map_err(Error::Json),
16721            TypeVariant::AccountEntry => serde_ignored::deserialize(r, |path| {
16722                ignored.borrow_mut().push(path.to_string());
16723            })
16724            .map(|t| Self::AccountEntry(Box::new(t)))
16725            .map_err(Error::Json),
16726            TypeVariant::AccountEntryExt => serde_ignored::deserialize(r, |path| {
16727                ignored.borrow_mut().push(path.to_string());
16728            })
16729            .map(|t| Self::AccountEntryExt(Box::new(t)))
16730            .map_err(Error::Json),
16731            TypeVariant::TrustLineFlags => serde_ignored::deserialize(r, |path| {
16732                ignored.borrow_mut().push(path.to_string());
16733            })
16734            .map(|t| Self::TrustLineFlags(Box::new(t)))
16735            .map_err(Error::Json),
16736            TypeVariant::LiquidityPoolType => serde_ignored::deserialize(r, |path| {
16737                ignored.borrow_mut().push(path.to_string());
16738            })
16739            .map(|t| Self::LiquidityPoolType(Box::new(t)))
16740            .map_err(Error::Json),
16741            TypeVariant::TrustLineAsset => serde_ignored::deserialize(r, |path| {
16742                ignored.borrow_mut().push(path.to_string());
16743            })
16744            .map(|t| Self::TrustLineAsset(Box::new(t)))
16745            .map_err(Error::Json),
16746            TypeVariant::TrustLineEntryExtensionV2 => serde_ignored::deserialize(r, |path| {
16747                ignored.borrow_mut().push(path.to_string());
16748            })
16749            .map(|t| Self::TrustLineEntryExtensionV2(Box::new(t)))
16750            .map_err(Error::Json),
16751            TypeVariant::TrustLineEntryExtensionV2Ext => serde_ignored::deserialize(r, |path| {
16752                ignored.borrow_mut().push(path.to_string());
16753            })
16754            .map(|t| Self::TrustLineEntryExtensionV2Ext(Box::new(t)))
16755            .map_err(Error::Json),
16756            TypeVariant::TrustLineEntry => serde_ignored::deserialize(r, |path| {
16757                ignored.borrow_mut().push(path.to_string());
16758            })
16759            .map(|t| Self::TrustLineEntry(Box::new(t)))
16760            .map_err(Error::Json),
16761            TypeVariant::TrustLineEntryExt => serde_ignored::deserialize(r, |path| {
16762                ignored.borrow_mut().push(path.to_string());
16763            })
16764            .map(|t| Self::TrustLineEntryExt(Box::new(t)))
16765            .map_err(Error::Json),
16766            TypeVariant::TrustLineEntryV1 => serde_ignored::deserialize(r, |path| {
16767                ignored.borrow_mut().push(path.to_string());
16768            })
16769            .map(|t| Self::TrustLineEntryV1(Box::new(t)))
16770            .map_err(Error::Json),
16771            TypeVariant::TrustLineEntryV1Ext => serde_ignored::deserialize(r, |path| {
16772                ignored.borrow_mut().push(path.to_string());
16773            })
16774            .map(|t| Self::TrustLineEntryV1Ext(Box::new(t)))
16775            .map_err(Error::Json),
16776            TypeVariant::OfferEntryFlags => serde_ignored::deserialize(r, |path| {
16777                ignored.borrow_mut().push(path.to_string());
16778            })
16779            .map(|t| Self::OfferEntryFlags(Box::new(t)))
16780            .map_err(Error::Json),
16781            TypeVariant::OfferEntry => serde_ignored::deserialize(r, |path| {
16782                ignored.borrow_mut().push(path.to_string());
16783            })
16784            .map(|t| Self::OfferEntry(Box::new(t)))
16785            .map_err(Error::Json),
16786            TypeVariant::OfferEntryExt => serde_ignored::deserialize(r, |path| {
16787                ignored.borrow_mut().push(path.to_string());
16788            })
16789            .map(|t| Self::OfferEntryExt(Box::new(t)))
16790            .map_err(Error::Json),
16791            TypeVariant::DataEntry => serde_ignored::deserialize(r, |path| {
16792                ignored.borrow_mut().push(path.to_string());
16793            })
16794            .map(|t| Self::DataEntry(Box::new(t)))
16795            .map_err(Error::Json),
16796            TypeVariant::DataEntryExt => serde_ignored::deserialize(r, |path| {
16797                ignored.borrow_mut().push(path.to_string());
16798            })
16799            .map(|t| Self::DataEntryExt(Box::new(t)))
16800            .map_err(Error::Json),
16801            TypeVariant::ClaimPredicateType => serde_ignored::deserialize(r, |path| {
16802                ignored.borrow_mut().push(path.to_string());
16803            })
16804            .map(|t| Self::ClaimPredicateType(Box::new(t)))
16805            .map_err(Error::Json),
16806            TypeVariant::ClaimPredicate => serde_ignored::deserialize(r, |path| {
16807                ignored.borrow_mut().push(path.to_string());
16808            })
16809            .map(|t| Self::ClaimPredicate(Box::new(t)))
16810            .map_err(Error::Json),
16811            TypeVariant::ClaimantType => serde_ignored::deserialize(r, |path| {
16812                ignored.borrow_mut().push(path.to_string());
16813            })
16814            .map(|t| Self::ClaimantType(Box::new(t)))
16815            .map_err(Error::Json),
16816            TypeVariant::Claimant => serde_ignored::deserialize(r, |path| {
16817                ignored.borrow_mut().push(path.to_string());
16818            })
16819            .map(|t| Self::Claimant(Box::new(t)))
16820            .map_err(Error::Json),
16821            TypeVariant::ClaimantV0 => serde_ignored::deserialize(r, |path| {
16822                ignored.borrow_mut().push(path.to_string());
16823            })
16824            .map(|t| Self::ClaimantV0(Box::new(t)))
16825            .map_err(Error::Json),
16826            TypeVariant::ClaimableBalanceFlags => serde_ignored::deserialize(r, |path| {
16827                ignored.borrow_mut().push(path.to_string());
16828            })
16829            .map(|t| Self::ClaimableBalanceFlags(Box::new(t)))
16830            .map_err(Error::Json),
16831            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
16832                serde_ignored::deserialize(r, |path| {
16833                    ignored.borrow_mut().push(path.to_string());
16834                })
16835                .map(|t| Self::ClaimableBalanceEntryExtensionV1(Box::new(t)))
16836                .map_err(Error::Json)
16837            }
16838            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
16839                serde_ignored::deserialize(r, |path| {
16840                    ignored.borrow_mut().push(path.to_string());
16841                })
16842                .map(|t| Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(t)))
16843                .map_err(Error::Json)
16844            }
16845            TypeVariant::ClaimableBalanceEntry => serde_ignored::deserialize(r, |path| {
16846                ignored.borrow_mut().push(path.to_string());
16847            })
16848            .map(|t| Self::ClaimableBalanceEntry(Box::new(t)))
16849            .map_err(Error::Json),
16850            TypeVariant::ClaimableBalanceEntryExt => serde_ignored::deserialize(r, |path| {
16851                ignored.borrow_mut().push(path.to_string());
16852            })
16853            .map(|t| Self::ClaimableBalanceEntryExt(Box::new(t)))
16854            .map_err(Error::Json),
16855            TypeVariant::LiquidityPoolConstantProductParameters => {
16856                serde_ignored::deserialize(r, |path| {
16857                    ignored.borrow_mut().push(path.to_string());
16858                })
16859                .map(|t| Self::LiquidityPoolConstantProductParameters(Box::new(t)))
16860                .map_err(Error::Json)
16861            }
16862            TypeVariant::LiquidityPoolEntry => serde_ignored::deserialize(r, |path| {
16863                ignored.borrow_mut().push(path.to_string());
16864            })
16865            .map(|t| Self::LiquidityPoolEntry(Box::new(t)))
16866            .map_err(Error::Json),
16867            TypeVariant::LiquidityPoolEntryBody => serde_ignored::deserialize(r, |path| {
16868                ignored.borrow_mut().push(path.to_string());
16869            })
16870            .map(|t| Self::LiquidityPoolEntryBody(Box::new(t)))
16871            .map_err(Error::Json),
16872            TypeVariant::LiquidityPoolEntryConstantProduct => {
16873                serde_ignored::deserialize(r, |path| {
16874                    ignored.borrow_mut().push(path.to_string());
16875                })
16876                .map(|t| Self::LiquidityPoolEntryConstantProduct(Box::new(t)))
16877                .map_err(Error::Json)
16878            }
16879            TypeVariant::ContractDataDurability => serde_ignored::deserialize(r, |path| {
16880                ignored.borrow_mut().push(path.to_string());
16881            })
16882            .map(|t| Self::ContractDataDurability(Box::new(t)))
16883            .map_err(Error::Json),
16884            TypeVariant::ContractDataEntry => serde_ignored::deserialize(r, |path| {
16885                ignored.borrow_mut().push(path.to_string());
16886            })
16887            .map(|t| Self::ContractDataEntry(Box::new(t)))
16888            .map_err(Error::Json),
16889            TypeVariant::ContractCodeCostInputs => serde_ignored::deserialize(r, |path| {
16890                ignored.borrow_mut().push(path.to_string());
16891            })
16892            .map(|t| Self::ContractCodeCostInputs(Box::new(t)))
16893            .map_err(Error::Json),
16894            TypeVariant::ContractCodeEntry => serde_ignored::deserialize(r, |path| {
16895                ignored.borrow_mut().push(path.to_string());
16896            })
16897            .map(|t| Self::ContractCodeEntry(Box::new(t)))
16898            .map_err(Error::Json),
16899            TypeVariant::ContractCodeEntryExt => serde_ignored::deserialize(r, |path| {
16900                ignored.borrow_mut().push(path.to_string());
16901            })
16902            .map(|t| Self::ContractCodeEntryExt(Box::new(t)))
16903            .map_err(Error::Json),
16904            TypeVariant::ContractCodeEntryV1 => serde_ignored::deserialize(r, |path| {
16905                ignored.borrow_mut().push(path.to_string());
16906            })
16907            .map(|t| Self::ContractCodeEntryV1(Box::new(t)))
16908            .map_err(Error::Json),
16909            TypeVariant::TtlEntry => serde_ignored::deserialize(r, |path| {
16910                ignored.borrow_mut().push(path.to_string());
16911            })
16912            .map(|t| Self::TtlEntry(Box::new(t)))
16913            .map_err(Error::Json),
16914            TypeVariant::LedgerEntryExtensionV1 => serde_ignored::deserialize(r, |path| {
16915                ignored.borrow_mut().push(path.to_string());
16916            })
16917            .map(|t| Self::LedgerEntryExtensionV1(Box::new(t)))
16918            .map_err(Error::Json),
16919            TypeVariant::LedgerEntryExtensionV1Ext => serde_ignored::deserialize(r, |path| {
16920                ignored.borrow_mut().push(path.to_string());
16921            })
16922            .map(|t| Self::LedgerEntryExtensionV1Ext(Box::new(t)))
16923            .map_err(Error::Json),
16924            TypeVariant::LedgerEntry => serde_ignored::deserialize(r, |path| {
16925                ignored.borrow_mut().push(path.to_string());
16926            })
16927            .map(|t| Self::LedgerEntry(Box::new(t)))
16928            .map_err(Error::Json),
16929            TypeVariant::LedgerEntryData => serde_ignored::deserialize(r, |path| {
16930                ignored.borrow_mut().push(path.to_string());
16931            })
16932            .map(|t| Self::LedgerEntryData(Box::new(t)))
16933            .map_err(Error::Json),
16934            TypeVariant::LedgerEntryExt => serde_ignored::deserialize(r, |path| {
16935                ignored.borrow_mut().push(path.to_string());
16936            })
16937            .map(|t| Self::LedgerEntryExt(Box::new(t)))
16938            .map_err(Error::Json),
16939            TypeVariant::LedgerKey => serde_ignored::deserialize(r, |path| {
16940                ignored.borrow_mut().push(path.to_string());
16941            })
16942            .map(|t| Self::LedgerKey(Box::new(t)))
16943            .map_err(Error::Json),
16944            TypeVariant::LedgerKeyAccount => serde_ignored::deserialize(r, |path| {
16945                ignored.borrow_mut().push(path.to_string());
16946            })
16947            .map(|t| Self::LedgerKeyAccount(Box::new(t)))
16948            .map_err(Error::Json),
16949            TypeVariant::LedgerKeyTrustLine => serde_ignored::deserialize(r, |path| {
16950                ignored.borrow_mut().push(path.to_string());
16951            })
16952            .map(|t| Self::LedgerKeyTrustLine(Box::new(t)))
16953            .map_err(Error::Json),
16954            TypeVariant::LedgerKeyOffer => serde_ignored::deserialize(r, |path| {
16955                ignored.borrow_mut().push(path.to_string());
16956            })
16957            .map(|t| Self::LedgerKeyOffer(Box::new(t)))
16958            .map_err(Error::Json),
16959            TypeVariant::LedgerKeyData => serde_ignored::deserialize(r, |path| {
16960                ignored.borrow_mut().push(path.to_string());
16961            })
16962            .map(|t| Self::LedgerKeyData(Box::new(t)))
16963            .map_err(Error::Json),
16964            TypeVariant::LedgerKeyClaimableBalance => serde_ignored::deserialize(r, |path| {
16965                ignored.borrow_mut().push(path.to_string());
16966            })
16967            .map(|t| Self::LedgerKeyClaimableBalance(Box::new(t)))
16968            .map_err(Error::Json),
16969            TypeVariant::LedgerKeyLiquidityPool => serde_ignored::deserialize(r, |path| {
16970                ignored.borrow_mut().push(path.to_string());
16971            })
16972            .map(|t| Self::LedgerKeyLiquidityPool(Box::new(t)))
16973            .map_err(Error::Json),
16974            TypeVariant::LedgerKeyContractData => serde_ignored::deserialize(r, |path| {
16975                ignored.borrow_mut().push(path.to_string());
16976            })
16977            .map(|t| Self::LedgerKeyContractData(Box::new(t)))
16978            .map_err(Error::Json),
16979            TypeVariant::LedgerKeyContractCode => serde_ignored::deserialize(r, |path| {
16980                ignored.borrow_mut().push(path.to_string());
16981            })
16982            .map(|t| Self::LedgerKeyContractCode(Box::new(t)))
16983            .map_err(Error::Json),
16984            TypeVariant::LedgerKeyConfigSetting => serde_ignored::deserialize(r, |path| {
16985                ignored.borrow_mut().push(path.to_string());
16986            })
16987            .map(|t| Self::LedgerKeyConfigSetting(Box::new(t)))
16988            .map_err(Error::Json),
16989            TypeVariant::LedgerKeyTtl => serde_ignored::deserialize(r, |path| {
16990                ignored.borrow_mut().push(path.to_string());
16991            })
16992            .map(|t| Self::LedgerKeyTtl(Box::new(t)))
16993            .map_err(Error::Json),
16994            TypeVariant::EnvelopeType => serde_ignored::deserialize(r, |path| {
16995                ignored.borrow_mut().push(path.to_string());
16996            })
16997            .map(|t| Self::EnvelopeType(Box::new(t)))
16998            .map_err(Error::Json),
16999            TypeVariant::BucketListType => serde_ignored::deserialize(r, |path| {
17000                ignored.borrow_mut().push(path.to_string());
17001            })
17002            .map(|t| Self::BucketListType(Box::new(t)))
17003            .map_err(Error::Json),
17004            TypeVariant::BucketEntryType => serde_ignored::deserialize(r, |path| {
17005                ignored.borrow_mut().push(path.to_string());
17006            })
17007            .map(|t| Self::BucketEntryType(Box::new(t)))
17008            .map_err(Error::Json),
17009            TypeVariant::HotArchiveBucketEntryType => serde_ignored::deserialize(r, |path| {
17010                ignored.borrow_mut().push(path.to_string());
17011            })
17012            .map(|t| Self::HotArchiveBucketEntryType(Box::new(t)))
17013            .map_err(Error::Json),
17014            TypeVariant::BucketMetadata => serde_ignored::deserialize(r, |path| {
17015                ignored.borrow_mut().push(path.to_string());
17016            })
17017            .map(|t| Self::BucketMetadata(Box::new(t)))
17018            .map_err(Error::Json),
17019            TypeVariant::BucketMetadataExt => serde_ignored::deserialize(r, |path| {
17020                ignored.borrow_mut().push(path.to_string());
17021            })
17022            .map(|t| Self::BucketMetadataExt(Box::new(t)))
17023            .map_err(Error::Json),
17024            TypeVariant::BucketEntry => serde_ignored::deserialize(r, |path| {
17025                ignored.borrow_mut().push(path.to_string());
17026            })
17027            .map(|t| Self::BucketEntry(Box::new(t)))
17028            .map_err(Error::Json),
17029            TypeVariant::HotArchiveBucketEntry => serde_ignored::deserialize(r, |path| {
17030                ignored.borrow_mut().push(path.to_string());
17031            })
17032            .map(|t| Self::HotArchiveBucketEntry(Box::new(t)))
17033            .map_err(Error::Json),
17034            TypeVariant::UpgradeType => serde_ignored::deserialize(r, |path| {
17035                ignored.borrow_mut().push(path.to_string());
17036            })
17037            .map(|t| Self::UpgradeType(Box::new(t)))
17038            .map_err(Error::Json),
17039            TypeVariant::StellarValueType => serde_ignored::deserialize(r, |path| {
17040                ignored.borrow_mut().push(path.to_string());
17041            })
17042            .map(|t| Self::StellarValueType(Box::new(t)))
17043            .map_err(Error::Json),
17044            TypeVariant::LedgerCloseValueSignature => serde_ignored::deserialize(r, |path| {
17045                ignored.borrow_mut().push(path.to_string());
17046            })
17047            .map(|t| Self::LedgerCloseValueSignature(Box::new(t)))
17048            .map_err(Error::Json),
17049            TypeVariant::StellarValue => serde_ignored::deserialize(r, |path| {
17050                ignored.borrow_mut().push(path.to_string());
17051            })
17052            .map(|t| Self::StellarValue(Box::new(t)))
17053            .map_err(Error::Json),
17054            TypeVariant::StellarValueExt => serde_ignored::deserialize(r, |path| {
17055                ignored.borrow_mut().push(path.to_string());
17056            })
17057            .map(|t| Self::StellarValueExt(Box::new(t)))
17058            .map_err(Error::Json),
17059            TypeVariant::StellarValueProposedValue => serde_ignored::deserialize(r, |path| {
17060                ignored.borrow_mut().push(path.to_string());
17061            })
17062            .map(|t| Self::StellarValueProposedValue(Box::new(t)))
17063            .map_err(Error::Json),
17064            TypeVariant::LedgerHeaderFlags => serde_ignored::deserialize(r, |path| {
17065                ignored.borrow_mut().push(path.to_string());
17066            })
17067            .map(|t| Self::LedgerHeaderFlags(Box::new(t)))
17068            .map_err(Error::Json),
17069            TypeVariant::LedgerHeaderExtensionV1 => serde_ignored::deserialize(r, |path| {
17070                ignored.borrow_mut().push(path.to_string());
17071            })
17072            .map(|t| Self::LedgerHeaderExtensionV1(Box::new(t)))
17073            .map_err(Error::Json),
17074            TypeVariant::LedgerHeaderExtensionV1Ext => serde_ignored::deserialize(r, |path| {
17075                ignored.borrow_mut().push(path.to_string());
17076            })
17077            .map(|t| Self::LedgerHeaderExtensionV1Ext(Box::new(t)))
17078            .map_err(Error::Json),
17079            TypeVariant::LedgerHeader => serde_ignored::deserialize(r, |path| {
17080                ignored.borrow_mut().push(path.to_string());
17081            })
17082            .map(|t| Self::LedgerHeader(Box::new(t)))
17083            .map_err(Error::Json),
17084            TypeVariant::LedgerHeaderExt => serde_ignored::deserialize(r, |path| {
17085                ignored.borrow_mut().push(path.to_string());
17086            })
17087            .map(|t| Self::LedgerHeaderExt(Box::new(t)))
17088            .map_err(Error::Json),
17089            TypeVariant::LedgerUpgradeType => serde_ignored::deserialize(r, |path| {
17090                ignored.borrow_mut().push(path.to_string());
17091            })
17092            .map(|t| Self::LedgerUpgradeType(Box::new(t)))
17093            .map_err(Error::Json),
17094            TypeVariant::ConfigUpgradeSetKey => serde_ignored::deserialize(r, |path| {
17095                ignored.borrow_mut().push(path.to_string());
17096            })
17097            .map(|t| Self::ConfigUpgradeSetKey(Box::new(t)))
17098            .map_err(Error::Json),
17099            TypeVariant::LedgerUpgrade => serde_ignored::deserialize(r, |path| {
17100                ignored.borrow_mut().push(path.to_string());
17101            })
17102            .map(|t| Self::LedgerUpgrade(Box::new(t)))
17103            .map_err(Error::Json),
17104            TypeVariant::ConfigUpgradeSet => serde_ignored::deserialize(r, |path| {
17105                ignored.borrow_mut().push(path.to_string());
17106            })
17107            .map(|t| Self::ConfigUpgradeSet(Box::new(t)))
17108            .map_err(Error::Json),
17109            TypeVariant::TxSetComponentType => serde_ignored::deserialize(r, |path| {
17110                ignored.borrow_mut().push(path.to_string());
17111            })
17112            .map(|t| Self::TxSetComponentType(Box::new(t)))
17113            .map_err(Error::Json),
17114            TypeVariant::DependentTxCluster => serde_ignored::deserialize(r, |path| {
17115                ignored.borrow_mut().push(path.to_string());
17116            })
17117            .map(|t| Self::DependentTxCluster(Box::new(t)))
17118            .map_err(Error::Json),
17119            TypeVariant::ParallelTxExecutionStage => serde_ignored::deserialize(r, |path| {
17120                ignored.borrow_mut().push(path.to_string());
17121            })
17122            .map(|t| Self::ParallelTxExecutionStage(Box::new(t)))
17123            .map_err(Error::Json),
17124            TypeVariant::ParallelTxsComponent => serde_ignored::deserialize(r, |path| {
17125                ignored.borrow_mut().push(path.to_string());
17126            })
17127            .map(|t| Self::ParallelTxsComponent(Box::new(t)))
17128            .map_err(Error::Json),
17129            TypeVariant::TxSetComponent => serde_ignored::deserialize(r, |path| {
17130                ignored.borrow_mut().push(path.to_string());
17131            })
17132            .map(|t| Self::TxSetComponent(Box::new(t)))
17133            .map_err(Error::Json),
17134            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
17135                serde_ignored::deserialize(r, |path| {
17136                    ignored.borrow_mut().push(path.to_string());
17137                })
17138                .map(|t| Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(t)))
17139                .map_err(Error::Json)
17140            }
17141            TypeVariant::TransactionPhase => serde_ignored::deserialize(r, |path| {
17142                ignored.borrow_mut().push(path.to_string());
17143            })
17144            .map(|t| Self::TransactionPhase(Box::new(t)))
17145            .map_err(Error::Json),
17146            TypeVariant::TransactionSet => serde_ignored::deserialize(r, |path| {
17147                ignored.borrow_mut().push(path.to_string());
17148            })
17149            .map(|t| Self::TransactionSet(Box::new(t)))
17150            .map_err(Error::Json),
17151            TypeVariant::TransactionSetV1 => serde_ignored::deserialize(r, |path| {
17152                ignored.borrow_mut().push(path.to_string());
17153            })
17154            .map(|t| Self::TransactionSetV1(Box::new(t)))
17155            .map_err(Error::Json),
17156            TypeVariant::GeneralizedTransactionSet => serde_ignored::deserialize(r, |path| {
17157                ignored.borrow_mut().push(path.to_string());
17158            })
17159            .map(|t| Self::GeneralizedTransactionSet(Box::new(t)))
17160            .map_err(Error::Json),
17161            TypeVariant::TransactionResultPair => serde_ignored::deserialize(r, |path| {
17162                ignored.borrow_mut().push(path.to_string());
17163            })
17164            .map(|t| Self::TransactionResultPair(Box::new(t)))
17165            .map_err(Error::Json),
17166            TypeVariant::TransactionResultSet => serde_ignored::deserialize(r, |path| {
17167                ignored.borrow_mut().push(path.to_string());
17168            })
17169            .map(|t| Self::TransactionResultSet(Box::new(t)))
17170            .map_err(Error::Json),
17171            TypeVariant::TransactionHistoryEntry => serde_ignored::deserialize(r, |path| {
17172                ignored.borrow_mut().push(path.to_string());
17173            })
17174            .map(|t| Self::TransactionHistoryEntry(Box::new(t)))
17175            .map_err(Error::Json),
17176            TypeVariant::TransactionHistoryEntryExt => serde_ignored::deserialize(r, |path| {
17177                ignored.borrow_mut().push(path.to_string());
17178            })
17179            .map(|t| Self::TransactionHistoryEntryExt(Box::new(t)))
17180            .map_err(Error::Json),
17181            TypeVariant::TransactionHistoryResultEntry => serde_ignored::deserialize(r, |path| {
17182                ignored.borrow_mut().push(path.to_string());
17183            })
17184            .map(|t| Self::TransactionHistoryResultEntry(Box::new(t)))
17185            .map_err(Error::Json),
17186            TypeVariant::TransactionHistoryResultEntryExt => {
17187                serde_ignored::deserialize(r, |path| {
17188                    ignored.borrow_mut().push(path.to_string());
17189                })
17190                .map(|t| Self::TransactionHistoryResultEntryExt(Box::new(t)))
17191                .map_err(Error::Json)
17192            }
17193            TypeVariant::LedgerHeaderHistoryEntry => serde_ignored::deserialize(r, |path| {
17194                ignored.borrow_mut().push(path.to_string());
17195            })
17196            .map(|t| Self::LedgerHeaderHistoryEntry(Box::new(t)))
17197            .map_err(Error::Json),
17198            TypeVariant::LedgerHeaderHistoryEntryExt => serde_ignored::deserialize(r, |path| {
17199                ignored.borrow_mut().push(path.to_string());
17200            })
17201            .map(|t| Self::LedgerHeaderHistoryEntryExt(Box::new(t)))
17202            .map_err(Error::Json),
17203            TypeVariant::LedgerScpMessages => serde_ignored::deserialize(r, |path| {
17204                ignored.borrow_mut().push(path.to_string());
17205            })
17206            .map(|t| Self::LedgerScpMessages(Box::new(t)))
17207            .map_err(Error::Json),
17208            TypeVariant::ScpHistoryEntryV0 => serde_ignored::deserialize(r, |path| {
17209                ignored.borrow_mut().push(path.to_string());
17210            })
17211            .map(|t| Self::ScpHistoryEntryV0(Box::new(t)))
17212            .map_err(Error::Json),
17213            TypeVariant::ScpHistoryEntry => serde_ignored::deserialize(r, |path| {
17214                ignored.borrow_mut().push(path.to_string());
17215            })
17216            .map(|t| Self::ScpHistoryEntry(Box::new(t)))
17217            .map_err(Error::Json),
17218            TypeVariant::LedgerEntryChangeType => serde_ignored::deserialize(r, |path| {
17219                ignored.borrow_mut().push(path.to_string());
17220            })
17221            .map(|t| Self::LedgerEntryChangeType(Box::new(t)))
17222            .map_err(Error::Json),
17223            TypeVariant::LedgerEntryChange => serde_ignored::deserialize(r, |path| {
17224                ignored.borrow_mut().push(path.to_string());
17225            })
17226            .map(|t| Self::LedgerEntryChange(Box::new(t)))
17227            .map_err(Error::Json),
17228            TypeVariant::LedgerEntryChanges => serde_ignored::deserialize(r, |path| {
17229                ignored.borrow_mut().push(path.to_string());
17230            })
17231            .map(|t| Self::LedgerEntryChanges(Box::new(t)))
17232            .map_err(Error::Json),
17233            TypeVariant::OperationMeta => serde_ignored::deserialize(r, |path| {
17234                ignored.borrow_mut().push(path.to_string());
17235            })
17236            .map(|t| Self::OperationMeta(Box::new(t)))
17237            .map_err(Error::Json),
17238            TypeVariant::TransactionMetaV1 => serde_ignored::deserialize(r, |path| {
17239                ignored.borrow_mut().push(path.to_string());
17240            })
17241            .map(|t| Self::TransactionMetaV1(Box::new(t)))
17242            .map_err(Error::Json),
17243            TypeVariant::TransactionMetaV2 => serde_ignored::deserialize(r, |path| {
17244                ignored.borrow_mut().push(path.to_string());
17245            })
17246            .map(|t| Self::TransactionMetaV2(Box::new(t)))
17247            .map_err(Error::Json),
17248            TypeVariant::ContractEventType => serde_ignored::deserialize(r, |path| {
17249                ignored.borrow_mut().push(path.to_string());
17250            })
17251            .map(|t| Self::ContractEventType(Box::new(t)))
17252            .map_err(Error::Json),
17253            TypeVariant::ContractEvent => serde_ignored::deserialize(r, |path| {
17254                ignored.borrow_mut().push(path.to_string());
17255            })
17256            .map(|t| Self::ContractEvent(Box::new(t)))
17257            .map_err(Error::Json),
17258            TypeVariant::ContractEventBody => serde_ignored::deserialize(r, |path| {
17259                ignored.borrow_mut().push(path.to_string());
17260            })
17261            .map(|t| Self::ContractEventBody(Box::new(t)))
17262            .map_err(Error::Json),
17263            TypeVariant::ContractEventV0 => serde_ignored::deserialize(r, |path| {
17264                ignored.borrow_mut().push(path.to_string());
17265            })
17266            .map(|t| Self::ContractEventV0(Box::new(t)))
17267            .map_err(Error::Json),
17268            TypeVariant::DiagnosticEvent => serde_ignored::deserialize(r, |path| {
17269                ignored.borrow_mut().push(path.to_string());
17270            })
17271            .map(|t| Self::DiagnosticEvent(Box::new(t)))
17272            .map_err(Error::Json),
17273            TypeVariant::SorobanTransactionMetaExtV1 => serde_ignored::deserialize(r, |path| {
17274                ignored.borrow_mut().push(path.to_string());
17275            })
17276            .map(|t| Self::SorobanTransactionMetaExtV1(Box::new(t)))
17277            .map_err(Error::Json),
17278            TypeVariant::SorobanTransactionMetaExt => serde_ignored::deserialize(r, |path| {
17279                ignored.borrow_mut().push(path.to_string());
17280            })
17281            .map(|t| Self::SorobanTransactionMetaExt(Box::new(t)))
17282            .map_err(Error::Json),
17283            TypeVariant::SorobanTransactionMeta => serde_ignored::deserialize(r, |path| {
17284                ignored.borrow_mut().push(path.to_string());
17285            })
17286            .map(|t| Self::SorobanTransactionMeta(Box::new(t)))
17287            .map_err(Error::Json),
17288            TypeVariant::TransactionMetaV3 => serde_ignored::deserialize(r, |path| {
17289                ignored.borrow_mut().push(path.to_string());
17290            })
17291            .map(|t| Self::TransactionMetaV3(Box::new(t)))
17292            .map_err(Error::Json),
17293            TypeVariant::OperationMetaV2 => serde_ignored::deserialize(r, |path| {
17294                ignored.borrow_mut().push(path.to_string());
17295            })
17296            .map(|t| Self::OperationMetaV2(Box::new(t)))
17297            .map_err(Error::Json),
17298            TypeVariant::SorobanTransactionMetaV2 => serde_ignored::deserialize(r, |path| {
17299                ignored.borrow_mut().push(path.to_string());
17300            })
17301            .map(|t| Self::SorobanTransactionMetaV2(Box::new(t)))
17302            .map_err(Error::Json),
17303            TypeVariant::TransactionEventStage => serde_ignored::deserialize(r, |path| {
17304                ignored.borrow_mut().push(path.to_string());
17305            })
17306            .map(|t| Self::TransactionEventStage(Box::new(t)))
17307            .map_err(Error::Json),
17308            TypeVariant::TransactionEvent => serde_ignored::deserialize(r, |path| {
17309                ignored.borrow_mut().push(path.to_string());
17310            })
17311            .map(|t| Self::TransactionEvent(Box::new(t)))
17312            .map_err(Error::Json),
17313            TypeVariant::TransactionMetaV4 => serde_ignored::deserialize(r, |path| {
17314                ignored.borrow_mut().push(path.to_string());
17315            })
17316            .map(|t| Self::TransactionMetaV4(Box::new(t)))
17317            .map_err(Error::Json),
17318            TypeVariant::InvokeHostFunctionSuccessPreImage => {
17319                serde_ignored::deserialize(r, |path| {
17320                    ignored.borrow_mut().push(path.to_string());
17321                })
17322                .map(|t| Self::InvokeHostFunctionSuccessPreImage(Box::new(t)))
17323                .map_err(Error::Json)
17324            }
17325            TypeVariant::TransactionMeta => serde_ignored::deserialize(r, |path| {
17326                ignored.borrow_mut().push(path.to_string());
17327            })
17328            .map(|t| Self::TransactionMeta(Box::new(t)))
17329            .map_err(Error::Json),
17330            TypeVariant::TransactionResultMeta => serde_ignored::deserialize(r, |path| {
17331                ignored.borrow_mut().push(path.to_string());
17332            })
17333            .map(|t| Self::TransactionResultMeta(Box::new(t)))
17334            .map_err(Error::Json),
17335            TypeVariant::TransactionResultMetaV1 => serde_ignored::deserialize(r, |path| {
17336                ignored.borrow_mut().push(path.to_string());
17337            })
17338            .map(|t| Self::TransactionResultMetaV1(Box::new(t)))
17339            .map_err(Error::Json),
17340            TypeVariant::UpgradeEntryMeta => serde_ignored::deserialize(r, |path| {
17341                ignored.borrow_mut().push(path.to_string());
17342            })
17343            .map(|t| Self::UpgradeEntryMeta(Box::new(t)))
17344            .map_err(Error::Json),
17345            TypeVariant::LedgerCloseMetaV0 => serde_ignored::deserialize(r, |path| {
17346                ignored.borrow_mut().push(path.to_string());
17347            })
17348            .map(|t| Self::LedgerCloseMetaV0(Box::new(t)))
17349            .map_err(Error::Json),
17350            TypeVariant::LedgerCloseMetaExtV1 => serde_ignored::deserialize(r, |path| {
17351                ignored.borrow_mut().push(path.to_string());
17352            })
17353            .map(|t| Self::LedgerCloseMetaExtV1(Box::new(t)))
17354            .map_err(Error::Json),
17355            TypeVariant::LedgerCloseMetaExt => serde_ignored::deserialize(r, |path| {
17356                ignored.borrow_mut().push(path.to_string());
17357            })
17358            .map(|t| Self::LedgerCloseMetaExt(Box::new(t)))
17359            .map_err(Error::Json),
17360            TypeVariant::LedgerCloseMetaV1 => serde_ignored::deserialize(r, |path| {
17361                ignored.borrow_mut().push(path.to_string());
17362            })
17363            .map(|t| Self::LedgerCloseMetaV1(Box::new(t)))
17364            .map_err(Error::Json),
17365            TypeVariant::LedgerCloseMetaV2 => serde_ignored::deserialize(r, |path| {
17366                ignored.borrow_mut().push(path.to_string());
17367            })
17368            .map(|t| Self::LedgerCloseMetaV2(Box::new(t)))
17369            .map_err(Error::Json),
17370            TypeVariant::LedgerCloseMeta => serde_ignored::deserialize(r, |path| {
17371                ignored.borrow_mut().push(path.to_string());
17372            })
17373            .map(|t| Self::LedgerCloseMeta(Box::new(t)))
17374            .map_err(Error::Json),
17375            TypeVariant::ErrorCode => serde_ignored::deserialize(r, |path| {
17376                ignored.borrow_mut().push(path.to_string());
17377            })
17378            .map(|t| Self::ErrorCode(Box::new(t)))
17379            .map_err(Error::Json),
17380            TypeVariant::SError => serde_ignored::deserialize(r, |path| {
17381                ignored.borrow_mut().push(path.to_string());
17382            })
17383            .map(|t| Self::SError(Box::new(t)))
17384            .map_err(Error::Json),
17385            TypeVariant::SendMore => serde_ignored::deserialize(r, |path| {
17386                ignored.borrow_mut().push(path.to_string());
17387            })
17388            .map(|t| Self::SendMore(Box::new(t)))
17389            .map_err(Error::Json),
17390            TypeVariant::SendMoreExtended => serde_ignored::deserialize(r, |path| {
17391                ignored.borrow_mut().push(path.to_string());
17392            })
17393            .map(|t| Self::SendMoreExtended(Box::new(t)))
17394            .map_err(Error::Json),
17395            TypeVariant::AuthCert => serde_ignored::deserialize(r, |path| {
17396                ignored.borrow_mut().push(path.to_string());
17397            })
17398            .map(|t| Self::AuthCert(Box::new(t)))
17399            .map_err(Error::Json),
17400            TypeVariant::Hello => serde_ignored::deserialize(r, |path| {
17401                ignored.borrow_mut().push(path.to_string());
17402            })
17403            .map(|t| Self::Hello(Box::new(t)))
17404            .map_err(Error::Json),
17405            TypeVariant::Auth => serde_ignored::deserialize(r, |path| {
17406                ignored.borrow_mut().push(path.to_string());
17407            })
17408            .map(|t| Self::Auth(Box::new(t)))
17409            .map_err(Error::Json),
17410            TypeVariant::IpAddrType => serde_ignored::deserialize(r, |path| {
17411                ignored.borrow_mut().push(path.to_string());
17412            })
17413            .map(|t| Self::IpAddrType(Box::new(t)))
17414            .map_err(Error::Json),
17415            TypeVariant::PeerAddress => serde_ignored::deserialize(r, |path| {
17416                ignored.borrow_mut().push(path.to_string());
17417            })
17418            .map(|t| Self::PeerAddress(Box::new(t)))
17419            .map_err(Error::Json),
17420            TypeVariant::PeerAddressIp => serde_ignored::deserialize(r, |path| {
17421                ignored.borrow_mut().push(path.to_string());
17422            })
17423            .map(|t| Self::PeerAddressIp(Box::new(t)))
17424            .map_err(Error::Json),
17425            TypeVariant::MessageType => serde_ignored::deserialize(r, |path| {
17426                ignored.borrow_mut().push(path.to_string());
17427            })
17428            .map(|t| Self::MessageType(Box::new(t)))
17429            .map_err(Error::Json),
17430            TypeVariant::DontHave => serde_ignored::deserialize(r, |path| {
17431                ignored.borrow_mut().push(path.to_string());
17432            })
17433            .map(|t| Self::DontHave(Box::new(t)))
17434            .map_err(Error::Json),
17435            TypeVariant::SurveyMessageCommandType => serde_ignored::deserialize(r, |path| {
17436                ignored.borrow_mut().push(path.to_string());
17437            })
17438            .map(|t| Self::SurveyMessageCommandType(Box::new(t)))
17439            .map_err(Error::Json),
17440            TypeVariant::SurveyMessageResponseType => serde_ignored::deserialize(r, |path| {
17441                ignored.borrow_mut().push(path.to_string());
17442            })
17443            .map(|t| Self::SurveyMessageResponseType(Box::new(t)))
17444            .map_err(Error::Json),
17445            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
17446                serde_ignored::deserialize(r, |path| {
17447                    ignored.borrow_mut().push(path.to_string());
17448                })
17449                .map(|t| Self::TimeSlicedSurveyStartCollectingMessage(Box::new(t)))
17450                .map_err(Error::Json)
17451            }
17452            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
17453                serde_ignored::deserialize(r, |path| {
17454                    ignored.borrow_mut().push(path.to_string());
17455                })
17456                .map(|t| Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::new(t)))
17457                .map_err(Error::Json)
17458            }
17459            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
17460                serde_ignored::deserialize(r, |path| {
17461                    ignored.borrow_mut().push(path.to_string());
17462                })
17463                .map(|t| Self::TimeSlicedSurveyStopCollectingMessage(Box::new(t)))
17464                .map_err(Error::Json)
17465            }
17466            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
17467                serde_ignored::deserialize(r, |path| {
17468                    ignored.borrow_mut().push(path.to_string());
17469                })
17470                .map(|t| Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(t)))
17471                .map_err(Error::Json)
17472            }
17473            TypeVariant::SurveyRequestMessage => serde_ignored::deserialize(r, |path| {
17474                ignored.borrow_mut().push(path.to_string());
17475            })
17476            .map(|t| Self::SurveyRequestMessage(Box::new(t)))
17477            .map_err(Error::Json),
17478            TypeVariant::TimeSlicedSurveyRequestMessage => serde_ignored::deserialize(r, |path| {
17479                ignored.borrow_mut().push(path.to_string());
17480            })
17481            .map(|t| Self::TimeSlicedSurveyRequestMessage(Box::new(t)))
17482            .map_err(Error::Json),
17483            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
17484                serde_ignored::deserialize(r, |path| {
17485                    ignored.borrow_mut().push(path.to_string());
17486                })
17487                .map(|t| Self::SignedTimeSlicedSurveyRequestMessage(Box::new(t)))
17488                .map_err(Error::Json)
17489            }
17490            TypeVariant::EncryptedBody => serde_ignored::deserialize(r, |path| {
17491                ignored.borrow_mut().push(path.to_string());
17492            })
17493            .map(|t| Self::EncryptedBody(Box::new(t)))
17494            .map_err(Error::Json),
17495            TypeVariant::SurveyResponseMessage => serde_ignored::deserialize(r, |path| {
17496                ignored.borrow_mut().push(path.to_string());
17497            })
17498            .map(|t| Self::SurveyResponseMessage(Box::new(t)))
17499            .map_err(Error::Json),
17500            TypeVariant::TimeSlicedSurveyResponseMessage => serde_ignored::deserialize(r, |path| {
17501                ignored.borrow_mut().push(path.to_string());
17502            })
17503            .map(|t| Self::TimeSlicedSurveyResponseMessage(Box::new(t)))
17504            .map_err(Error::Json),
17505            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
17506                serde_ignored::deserialize(r, |path| {
17507                    ignored.borrow_mut().push(path.to_string());
17508                })
17509                .map(|t| Self::SignedTimeSlicedSurveyResponseMessage(Box::new(t)))
17510                .map_err(Error::Json)
17511            }
17512            TypeVariant::PeerStats => serde_ignored::deserialize(r, |path| {
17513                ignored.borrow_mut().push(path.to_string());
17514            })
17515            .map(|t| Self::PeerStats(Box::new(t)))
17516            .map_err(Error::Json),
17517            TypeVariant::TimeSlicedNodeData => serde_ignored::deserialize(r, |path| {
17518                ignored.borrow_mut().push(path.to_string());
17519            })
17520            .map(|t| Self::TimeSlicedNodeData(Box::new(t)))
17521            .map_err(Error::Json),
17522            TypeVariant::TimeSlicedPeerData => serde_ignored::deserialize(r, |path| {
17523                ignored.borrow_mut().push(path.to_string());
17524            })
17525            .map(|t| Self::TimeSlicedPeerData(Box::new(t)))
17526            .map_err(Error::Json),
17527            TypeVariant::TimeSlicedPeerDataList => serde_ignored::deserialize(r, |path| {
17528                ignored.borrow_mut().push(path.to_string());
17529            })
17530            .map(|t| Self::TimeSlicedPeerDataList(Box::new(t)))
17531            .map_err(Error::Json),
17532            TypeVariant::TopologyResponseBodyV2 => serde_ignored::deserialize(r, |path| {
17533                ignored.borrow_mut().push(path.to_string());
17534            })
17535            .map(|t| Self::TopologyResponseBodyV2(Box::new(t)))
17536            .map_err(Error::Json),
17537            TypeVariant::SurveyResponseBody => serde_ignored::deserialize(r, |path| {
17538                ignored.borrow_mut().push(path.to_string());
17539            })
17540            .map(|t| Self::SurveyResponseBody(Box::new(t)))
17541            .map_err(Error::Json),
17542            TypeVariant::TxAdvertVector => serde_ignored::deserialize(r, |path| {
17543                ignored.borrow_mut().push(path.to_string());
17544            })
17545            .map(|t| Self::TxAdvertVector(Box::new(t)))
17546            .map_err(Error::Json),
17547            TypeVariant::FloodAdvert => serde_ignored::deserialize(r, |path| {
17548                ignored.borrow_mut().push(path.to_string());
17549            })
17550            .map(|t| Self::FloodAdvert(Box::new(t)))
17551            .map_err(Error::Json),
17552            TypeVariant::TxDemandVector => serde_ignored::deserialize(r, |path| {
17553                ignored.borrow_mut().push(path.to_string());
17554            })
17555            .map(|t| Self::TxDemandVector(Box::new(t)))
17556            .map_err(Error::Json),
17557            TypeVariant::FloodDemand => serde_ignored::deserialize(r, |path| {
17558                ignored.borrow_mut().push(path.to_string());
17559            })
17560            .map(|t| Self::FloodDemand(Box::new(t)))
17561            .map_err(Error::Json),
17562            TypeVariant::StellarMessage => serde_ignored::deserialize(r, |path| {
17563                ignored.borrow_mut().push(path.to_string());
17564            })
17565            .map(|t| Self::StellarMessage(Box::new(t)))
17566            .map_err(Error::Json),
17567            TypeVariant::AuthenticatedMessage => serde_ignored::deserialize(r, |path| {
17568                ignored.borrow_mut().push(path.to_string());
17569            })
17570            .map(|t| Self::AuthenticatedMessage(Box::new(t)))
17571            .map_err(Error::Json),
17572            TypeVariant::AuthenticatedMessageV0 => serde_ignored::deserialize(r, |path| {
17573                ignored.borrow_mut().push(path.to_string());
17574            })
17575            .map(|t| Self::AuthenticatedMessageV0(Box::new(t)))
17576            .map_err(Error::Json),
17577            TypeVariant::LiquidityPoolParameters => serde_ignored::deserialize(r, |path| {
17578                ignored.borrow_mut().push(path.to_string());
17579            })
17580            .map(|t| Self::LiquidityPoolParameters(Box::new(t)))
17581            .map_err(Error::Json),
17582            TypeVariant::MuxedAccount => serde_ignored::deserialize(r, |path| {
17583                ignored.borrow_mut().push(path.to_string());
17584            })
17585            .map(|t| Self::MuxedAccount(Box::new(t)))
17586            .map_err(Error::Json),
17587            TypeVariant::MuxedAccountMed25519 => serde_ignored::deserialize(r, |path| {
17588                ignored.borrow_mut().push(path.to_string());
17589            })
17590            .map(|t| Self::MuxedAccountMed25519(Box::new(t)))
17591            .map_err(Error::Json),
17592            TypeVariant::DecoratedSignature => serde_ignored::deserialize(r, |path| {
17593                ignored.borrow_mut().push(path.to_string());
17594            })
17595            .map(|t| Self::DecoratedSignature(Box::new(t)))
17596            .map_err(Error::Json),
17597            TypeVariant::OperationType => serde_ignored::deserialize(r, |path| {
17598                ignored.borrow_mut().push(path.to_string());
17599            })
17600            .map(|t| Self::OperationType(Box::new(t)))
17601            .map_err(Error::Json),
17602            TypeVariant::CreateAccountOp => serde_ignored::deserialize(r, |path| {
17603                ignored.borrow_mut().push(path.to_string());
17604            })
17605            .map(|t| Self::CreateAccountOp(Box::new(t)))
17606            .map_err(Error::Json),
17607            TypeVariant::PaymentOp => serde_ignored::deserialize(r, |path| {
17608                ignored.borrow_mut().push(path.to_string());
17609            })
17610            .map(|t| Self::PaymentOp(Box::new(t)))
17611            .map_err(Error::Json),
17612            TypeVariant::PathPaymentStrictReceiveOp => serde_ignored::deserialize(r, |path| {
17613                ignored.borrow_mut().push(path.to_string());
17614            })
17615            .map(|t| Self::PathPaymentStrictReceiveOp(Box::new(t)))
17616            .map_err(Error::Json),
17617            TypeVariant::PathPaymentStrictSendOp => serde_ignored::deserialize(r, |path| {
17618                ignored.borrow_mut().push(path.to_string());
17619            })
17620            .map(|t| Self::PathPaymentStrictSendOp(Box::new(t)))
17621            .map_err(Error::Json),
17622            TypeVariant::ManageSellOfferOp => serde_ignored::deserialize(r, |path| {
17623                ignored.borrow_mut().push(path.to_string());
17624            })
17625            .map(|t| Self::ManageSellOfferOp(Box::new(t)))
17626            .map_err(Error::Json),
17627            TypeVariant::ManageBuyOfferOp => serde_ignored::deserialize(r, |path| {
17628                ignored.borrow_mut().push(path.to_string());
17629            })
17630            .map(|t| Self::ManageBuyOfferOp(Box::new(t)))
17631            .map_err(Error::Json),
17632            TypeVariant::CreatePassiveSellOfferOp => serde_ignored::deserialize(r, |path| {
17633                ignored.borrow_mut().push(path.to_string());
17634            })
17635            .map(|t| Self::CreatePassiveSellOfferOp(Box::new(t)))
17636            .map_err(Error::Json),
17637            TypeVariant::SetOptionsOp => serde_ignored::deserialize(r, |path| {
17638                ignored.borrow_mut().push(path.to_string());
17639            })
17640            .map(|t| Self::SetOptionsOp(Box::new(t)))
17641            .map_err(Error::Json),
17642            TypeVariant::ChangeTrustAsset => serde_ignored::deserialize(r, |path| {
17643                ignored.borrow_mut().push(path.to_string());
17644            })
17645            .map(|t| Self::ChangeTrustAsset(Box::new(t)))
17646            .map_err(Error::Json),
17647            TypeVariant::ChangeTrustOp => serde_ignored::deserialize(r, |path| {
17648                ignored.borrow_mut().push(path.to_string());
17649            })
17650            .map(|t| Self::ChangeTrustOp(Box::new(t)))
17651            .map_err(Error::Json),
17652            TypeVariant::AllowTrustOp => serde_ignored::deserialize(r, |path| {
17653                ignored.borrow_mut().push(path.to_string());
17654            })
17655            .map(|t| Self::AllowTrustOp(Box::new(t)))
17656            .map_err(Error::Json),
17657            TypeVariant::ManageDataOp => serde_ignored::deserialize(r, |path| {
17658                ignored.borrow_mut().push(path.to_string());
17659            })
17660            .map(|t| Self::ManageDataOp(Box::new(t)))
17661            .map_err(Error::Json),
17662            TypeVariant::BumpSequenceOp => serde_ignored::deserialize(r, |path| {
17663                ignored.borrow_mut().push(path.to_string());
17664            })
17665            .map(|t| Self::BumpSequenceOp(Box::new(t)))
17666            .map_err(Error::Json),
17667            TypeVariant::CreateClaimableBalanceOp => serde_ignored::deserialize(r, |path| {
17668                ignored.borrow_mut().push(path.to_string());
17669            })
17670            .map(|t| Self::CreateClaimableBalanceOp(Box::new(t)))
17671            .map_err(Error::Json),
17672            TypeVariant::ClaimClaimableBalanceOp => serde_ignored::deserialize(r, |path| {
17673                ignored.borrow_mut().push(path.to_string());
17674            })
17675            .map(|t| Self::ClaimClaimableBalanceOp(Box::new(t)))
17676            .map_err(Error::Json),
17677            TypeVariant::BeginSponsoringFutureReservesOp => serde_ignored::deserialize(r, |path| {
17678                ignored.borrow_mut().push(path.to_string());
17679            })
17680            .map(|t| Self::BeginSponsoringFutureReservesOp(Box::new(t)))
17681            .map_err(Error::Json),
17682            TypeVariant::RevokeSponsorshipType => serde_ignored::deserialize(r, |path| {
17683                ignored.borrow_mut().push(path.to_string());
17684            })
17685            .map(|t| Self::RevokeSponsorshipType(Box::new(t)))
17686            .map_err(Error::Json),
17687            TypeVariant::RevokeSponsorshipOp => serde_ignored::deserialize(r, |path| {
17688                ignored.borrow_mut().push(path.to_string());
17689            })
17690            .map(|t| Self::RevokeSponsorshipOp(Box::new(t)))
17691            .map_err(Error::Json),
17692            TypeVariant::RevokeSponsorshipOpSigner => serde_ignored::deserialize(r, |path| {
17693                ignored.borrow_mut().push(path.to_string());
17694            })
17695            .map(|t| Self::RevokeSponsorshipOpSigner(Box::new(t)))
17696            .map_err(Error::Json),
17697            TypeVariant::ClawbackOp => serde_ignored::deserialize(r, |path| {
17698                ignored.borrow_mut().push(path.to_string());
17699            })
17700            .map(|t| Self::ClawbackOp(Box::new(t)))
17701            .map_err(Error::Json),
17702            TypeVariant::ClawbackClaimableBalanceOp => serde_ignored::deserialize(r, |path| {
17703                ignored.borrow_mut().push(path.to_string());
17704            })
17705            .map(|t| Self::ClawbackClaimableBalanceOp(Box::new(t)))
17706            .map_err(Error::Json),
17707            TypeVariant::SetTrustLineFlagsOp => serde_ignored::deserialize(r, |path| {
17708                ignored.borrow_mut().push(path.to_string());
17709            })
17710            .map(|t| Self::SetTrustLineFlagsOp(Box::new(t)))
17711            .map_err(Error::Json),
17712            TypeVariant::LiquidityPoolDepositOp => serde_ignored::deserialize(r, |path| {
17713                ignored.borrow_mut().push(path.to_string());
17714            })
17715            .map(|t| Self::LiquidityPoolDepositOp(Box::new(t)))
17716            .map_err(Error::Json),
17717            TypeVariant::LiquidityPoolWithdrawOp => serde_ignored::deserialize(r, |path| {
17718                ignored.borrow_mut().push(path.to_string());
17719            })
17720            .map(|t| Self::LiquidityPoolWithdrawOp(Box::new(t)))
17721            .map_err(Error::Json),
17722            TypeVariant::HostFunctionType => serde_ignored::deserialize(r, |path| {
17723                ignored.borrow_mut().push(path.to_string());
17724            })
17725            .map(|t| Self::HostFunctionType(Box::new(t)))
17726            .map_err(Error::Json),
17727            TypeVariant::ContractIdPreimageType => serde_ignored::deserialize(r, |path| {
17728                ignored.borrow_mut().push(path.to_string());
17729            })
17730            .map(|t| Self::ContractIdPreimageType(Box::new(t)))
17731            .map_err(Error::Json),
17732            TypeVariant::ContractIdPreimage => serde_ignored::deserialize(r, |path| {
17733                ignored.borrow_mut().push(path.to_string());
17734            })
17735            .map(|t| Self::ContractIdPreimage(Box::new(t)))
17736            .map_err(Error::Json),
17737            TypeVariant::ContractIdPreimageFromAddress => serde_ignored::deserialize(r, |path| {
17738                ignored.borrow_mut().push(path.to_string());
17739            })
17740            .map(|t| Self::ContractIdPreimageFromAddress(Box::new(t)))
17741            .map_err(Error::Json),
17742            TypeVariant::CreateContractArgs => serde_ignored::deserialize(r, |path| {
17743                ignored.borrow_mut().push(path.to_string());
17744            })
17745            .map(|t| Self::CreateContractArgs(Box::new(t)))
17746            .map_err(Error::Json),
17747            TypeVariant::CreateContractArgsV2 => serde_ignored::deserialize(r, |path| {
17748                ignored.borrow_mut().push(path.to_string());
17749            })
17750            .map(|t| Self::CreateContractArgsV2(Box::new(t)))
17751            .map_err(Error::Json),
17752            TypeVariant::InvokeContractArgs => serde_ignored::deserialize(r, |path| {
17753                ignored.borrow_mut().push(path.to_string());
17754            })
17755            .map(|t| Self::InvokeContractArgs(Box::new(t)))
17756            .map_err(Error::Json),
17757            TypeVariant::HostFunction => serde_ignored::deserialize(r, |path| {
17758                ignored.borrow_mut().push(path.to_string());
17759            })
17760            .map(|t| Self::HostFunction(Box::new(t)))
17761            .map_err(Error::Json),
17762            TypeVariant::SorobanAuthorizedFunctionType => serde_ignored::deserialize(r, |path| {
17763                ignored.borrow_mut().push(path.to_string());
17764            })
17765            .map(|t| Self::SorobanAuthorizedFunctionType(Box::new(t)))
17766            .map_err(Error::Json),
17767            TypeVariant::SorobanAuthorizedFunction => serde_ignored::deserialize(r, |path| {
17768                ignored.borrow_mut().push(path.to_string());
17769            })
17770            .map(|t| Self::SorobanAuthorizedFunction(Box::new(t)))
17771            .map_err(Error::Json),
17772            TypeVariant::SorobanAuthorizedInvocation => serde_ignored::deserialize(r, |path| {
17773                ignored.borrow_mut().push(path.to_string());
17774            })
17775            .map(|t| Self::SorobanAuthorizedInvocation(Box::new(t)))
17776            .map_err(Error::Json),
17777            TypeVariant::SorobanAddressCredentials => serde_ignored::deserialize(r, |path| {
17778                ignored.borrow_mut().push(path.to_string());
17779            })
17780            .map(|t| Self::SorobanAddressCredentials(Box::new(t)))
17781            .map_err(Error::Json),
17782            TypeVariant::SorobanDelegateSignature => serde_ignored::deserialize(r, |path| {
17783                ignored.borrow_mut().push(path.to_string());
17784            })
17785            .map(|t| Self::SorobanDelegateSignature(Box::new(t)))
17786            .map_err(Error::Json),
17787            TypeVariant::SorobanAddressCredentialsWithDelegates => {
17788                serde_ignored::deserialize(r, |path| {
17789                    ignored.borrow_mut().push(path.to_string());
17790                })
17791                .map(|t| Self::SorobanAddressCredentialsWithDelegates(Box::new(t)))
17792                .map_err(Error::Json)
17793            }
17794            TypeVariant::SorobanCredentialsType => serde_ignored::deserialize(r, |path| {
17795                ignored.borrow_mut().push(path.to_string());
17796            })
17797            .map(|t| Self::SorobanCredentialsType(Box::new(t)))
17798            .map_err(Error::Json),
17799            TypeVariant::SorobanCredentials => serde_ignored::deserialize(r, |path| {
17800                ignored.borrow_mut().push(path.to_string());
17801            })
17802            .map(|t| Self::SorobanCredentials(Box::new(t)))
17803            .map_err(Error::Json),
17804            TypeVariant::SorobanAuthorizationEntry => serde_ignored::deserialize(r, |path| {
17805                ignored.borrow_mut().push(path.to_string());
17806            })
17807            .map(|t| Self::SorobanAuthorizationEntry(Box::new(t)))
17808            .map_err(Error::Json),
17809            TypeVariant::SorobanAuthorizationEntries => serde_ignored::deserialize(r, |path| {
17810                ignored.borrow_mut().push(path.to_string());
17811            })
17812            .map(|t| Self::SorobanAuthorizationEntries(Box::new(t)))
17813            .map_err(Error::Json),
17814            TypeVariant::InvokeHostFunctionOp => serde_ignored::deserialize(r, |path| {
17815                ignored.borrow_mut().push(path.to_string());
17816            })
17817            .map(|t| Self::InvokeHostFunctionOp(Box::new(t)))
17818            .map_err(Error::Json),
17819            TypeVariant::ExtendFootprintTtlOp => serde_ignored::deserialize(r, |path| {
17820                ignored.borrow_mut().push(path.to_string());
17821            })
17822            .map(|t| Self::ExtendFootprintTtlOp(Box::new(t)))
17823            .map_err(Error::Json),
17824            TypeVariant::RestoreFootprintOp => serde_ignored::deserialize(r, |path| {
17825                ignored.borrow_mut().push(path.to_string());
17826            })
17827            .map(|t| Self::RestoreFootprintOp(Box::new(t)))
17828            .map_err(Error::Json),
17829            TypeVariant::Operation => serde_ignored::deserialize(r, |path| {
17830                ignored.borrow_mut().push(path.to_string());
17831            })
17832            .map(|t| Self::Operation(Box::new(t)))
17833            .map_err(Error::Json),
17834            TypeVariant::OperationBody => serde_ignored::deserialize(r, |path| {
17835                ignored.borrow_mut().push(path.to_string());
17836            })
17837            .map(|t| Self::OperationBody(Box::new(t)))
17838            .map_err(Error::Json),
17839            TypeVariant::HashIdPreimage => serde_ignored::deserialize(r, |path| {
17840                ignored.borrow_mut().push(path.to_string());
17841            })
17842            .map(|t| Self::HashIdPreimage(Box::new(t)))
17843            .map_err(Error::Json),
17844            TypeVariant::HashIdPreimageOperationId => serde_ignored::deserialize(r, |path| {
17845                ignored.borrow_mut().push(path.to_string());
17846            })
17847            .map(|t| Self::HashIdPreimageOperationId(Box::new(t)))
17848            .map_err(Error::Json),
17849            TypeVariant::HashIdPreimageRevokeId => serde_ignored::deserialize(r, |path| {
17850                ignored.borrow_mut().push(path.to_string());
17851            })
17852            .map(|t| Self::HashIdPreimageRevokeId(Box::new(t)))
17853            .map_err(Error::Json),
17854            TypeVariant::HashIdPreimageContractId => serde_ignored::deserialize(r, |path| {
17855                ignored.borrow_mut().push(path.to_string());
17856            })
17857            .map(|t| Self::HashIdPreimageContractId(Box::new(t)))
17858            .map_err(Error::Json),
17859            TypeVariant::HashIdPreimageSorobanAuthorization => {
17860                serde_ignored::deserialize(r, |path| {
17861                    ignored.borrow_mut().push(path.to_string());
17862                })
17863                .map(|t| Self::HashIdPreimageSorobanAuthorization(Box::new(t)))
17864                .map_err(Error::Json)
17865            }
17866            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
17867                serde_ignored::deserialize(r, |path| {
17868                    ignored.borrow_mut().push(path.to_string());
17869                })
17870                .map(|t| Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::new(t)))
17871                .map_err(Error::Json)
17872            }
17873            TypeVariant::MemoType => serde_ignored::deserialize(r, |path| {
17874                ignored.borrow_mut().push(path.to_string());
17875            })
17876            .map(|t| Self::MemoType(Box::new(t)))
17877            .map_err(Error::Json),
17878            TypeVariant::Memo => serde_ignored::deserialize(r, |path| {
17879                ignored.borrow_mut().push(path.to_string());
17880            })
17881            .map(|t| Self::Memo(Box::new(t)))
17882            .map_err(Error::Json),
17883            TypeVariant::TimeBounds => serde_ignored::deserialize(r, |path| {
17884                ignored.borrow_mut().push(path.to_string());
17885            })
17886            .map(|t| Self::TimeBounds(Box::new(t)))
17887            .map_err(Error::Json),
17888            TypeVariant::LedgerBounds => serde_ignored::deserialize(r, |path| {
17889                ignored.borrow_mut().push(path.to_string());
17890            })
17891            .map(|t| Self::LedgerBounds(Box::new(t)))
17892            .map_err(Error::Json),
17893            TypeVariant::PreconditionsV2 => serde_ignored::deserialize(r, |path| {
17894                ignored.borrow_mut().push(path.to_string());
17895            })
17896            .map(|t| Self::PreconditionsV2(Box::new(t)))
17897            .map_err(Error::Json),
17898            TypeVariant::PreconditionType => serde_ignored::deserialize(r, |path| {
17899                ignored.borrow_mut().push(path.to_string());
17900            })
17901            .map(|t| Self::PreconditionType(Box::new(t)))
17902            .map_err(Error::Json),
17903            TypeVariant::Preconditions => serde_ignored::deserialize(r, |path| {
17904                ignored.borrow_mut().push(path.to_string());
17905            })
17906            .map(|t| Self::Preconditions(Box::new(t)))
17907            .map_err(Error::Json),
17908            TypeVariant::LedgerFootprint => serde_ignored::deserialize(r, |path| {
17909                ignored.borrow_mut().push(path.to_string());
17910            })
17911            .map(|t| Self::LedgerFootprint(Box::new(t)))
17912            .map_err(Error::Json),
17913            TypeVariant::SorobanResources => serde_ignored::deserialize(r, |path| {
17914                ignored.borrow_mut().push(path.to_string());
17915            })
17916            .map(|t| Self::SorobanResources(Box::new(t)))
17917            .map_err(Error::Json),
17918            TypeVariant::SorobanResourcesExtV0 => serde_ignored::deserialize(r, |path| {
17919                ignored.borrow_mut().push(path.to_string());
17920            })
17921            .map(|t| Self::SorobanResourcesExtV0(Box::new(t)))
17922            .map_err(Error::Json),
17923            TypeVariant::SorobanTransactionData => serde_ignored::deserialize(r, |path| {
17924                ignored.borrow_mut().push(path.to_string());
17925            })
17926            .map(|t| Self::SorobanTransactionData(Box::new(t)))
17927            .map_err(Error::Json),
17928            TypeVariant::SorobanTransactionDataExt => serde_ignored::deserialize(r, |path| {
17929                ignored.borrow_mut().push(path.to_string());
17930            })
17931            .map(|t| Self::SorobanTransactionDataExt(Box::new(t)))
17932            .map_err(Error::Json),
17933            TypeVariant::TransactionV0 => serde_ignored::deserialize(r, |path| {
17934                ignored.borrow_mut().push(path.to_string());
17935            })
17936            .map(|t| Self::TransactionV0(Box::new(t)))
17937            .map_err(Error::Json),
17938            TypeVariant::TransactionV0Ext => serde_ignored::deserialize(r, |path| {
17939                ignored.borrow_mut().push(path.to_string());
17940            })
17941            .map(|t| Self::TransactionV0Ext(Box::new(t)))
17942            .map_err(Error::Json),
17943            TypeVariant::TransactionV0Envelope => serde_ignored::deserialize(r, |path| {
17944                ignored.borrow_mut().push(path.to_string());
17945            })
17946            .map(|t| Self::TransactionV0Envelope(Box::new(t)))
17947            .map_err(Error::Json),
17948            TypeVariant::Transaction => serde_ignored::deserialize(r, |path| {
17949                ignored.borrow_mut().push(path.to_string());
17950            })
17951            .map(|t| Self::Transaction(Box::new(t)))
17952            .map_err(Error::Json),
17953            TypeVariant::TransactionExt => serde_ignored::deserialize(r, |path| {
17954                ignored.borrow_mut().push(path.to_string());
17955            })
17956            .map(|t| Self::TransactionExt(Box::new(t)))
17957            .map_err(Error::Json),
17958            TypeVariant::TransactionV1Envelope => serde_ignored::deserialize(r, |path| {
17959                ignored.borrow_mut().push(path.to_string());
17960            })
17961            .map(|t| Self::TransactionV1Envelope(Box::new(t)))
17962            .map_err(Error::Json),
17963            TypeVariant::FeeBumpTransaction => serde_ignored::deserialize(r, |path| {
17964                ignored.borrow_mut().push(path.to_string());
17965            })
17966            .map(|t| Self::FeeBumpTransaction(Box::new(t)))
17967            .map_err(Error::Json),
17968            TypeVariant::FeeBumpTransactionInnerTx => serde_ignored::deserialize(r, |path| {
17969                ignored.borrow_mut().push(path.to_string());
17970            })
17971            .map(|t| Self::FeeBumpTransactionInnerTx(Box::new(t)))
17972            .map_err(Error::Json),
17973            TypeVariant::FeeBumpTransactionExt => serde_ignored::deserialize(r, |path| {
17974                ignored.borrow_mut().push(path.to_string());
17975            })
17976            .map(|t| Self::FeeBumpTransactionExt(Box::new(t)))
17977            .map_err(Error::Json),
17978            TypeVariant::FeeBumpTransactionEnvelope => serde_ignored::deserialize(r, |path| {
17979                ignored.borrow_mut().push(path.to_string());
17980            })
17981            .map(|t| Self::FeeBumpTransactionEnvelope(Box::new(t)))
17982            .map_err(Error::Json),
17983            TypeVariant::TransactionEnvelope => serde_ignored::deserialize(r, |path| {
17984                ignored.borrow_mut().push(path.to_string());
17985            })
17986            .map(|t| Self::TransactionEnvelope(Box::new(t)))
17987            .map_err(Error::Json),
17988            TypeVariant::TransactionSignaturePayload => serde_ignored::deserialize(r, |path| {
17989                ignored.borrow_mut().push(path.to_string());
17990            })
17991            .map(|t| Self::TransactionSignaturePayload(Box::new(t)))
17992            .map_err(Error::Json),
17993            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
17994                serde_ignored::deserialize(r, |path| {
17995                    ignored.borrow_mut().push(path.to_string());
17996                })
17997                .map(|t| Self::TransactionSignaturePayloadTaggedTransaction(Box::new(t)))
17998                .map_err(Error::Json)
17999            }
18000            TypeVariant::ClaimAtomType => serde_ignored::deserialize(r, |path| {
18001                ignored.borrow_mut().push(path.to_string());
18002            })
18003            .map(|t| Self::ClaimAtomType(Box::new(t)))
18004            .map_err(Error::Json),
18005            TypeVariant::ClaimOfferAtomV0 => serde_ignored::deserialize(r, |path| {
18006                ignored.borrow_mut().push(path.to_string());
18007            })
18008            .map(|t| Self::ClaimOfferAtomV0(Box::new(t)))
18009            .map_err(Error::Json),
18010            TypeVariant::ClaimOfferAtom => serde_ignored::deserialize(r, |path| {
18011                ignored.borrow_mut().push(path.to_string());
18012            })
18013            .map(|t| Self::ClaimOfferAtom(Box::new(t)))
18014            .map_err(Error::Json),
18015            TypeVariant::ClaimLiquidityAtom => serde_ignored::deserialize(r, |path| {
18016                ignored.borrow_mut().push(path.to_string());
18017            })
18018            .map(|t| Self::ClaimLiquidityAtom(Box::new(t)))
18019            .map_err(Error::Json),
18020            TypeVariant::ClaimAtom => serde_ignored::deserialize(r, |path| {
18021                ignored.borrow_mut().push(path.to_string());
18022            })
18023            .map(|t| Self::ClaimAtom(Box::new(t)))
18024            .map_err(Error::Json),
18025            TypeVariant::CreateAccountResultCode => serde_ignored::deserialize(r, |path| {
18026                ignored.borrow_mut().push(path.to_string());
18027            })
18028            .map(|t| Self::CreateAccountResultCode(Box::new(t)))
18029            .map_err(Error::Json),
18030            TypeVariant::CreateAccountResult => serde_ignored::deserialize(r, |path| {
18031                ignored.borrow_mut().push(path.to_string());
18032            })
18033            .map(|t| Self::CreateAccountResult(Box::new(t)))
18034            .map_err(Error::Json),
18035            TypeVariant::PaymentResultCode => serde_ignored::deserialize(r, |path| {
18036                ignored.borrow_mut().push(path.to_string());
18037            })
18038            .map(|t| Self::PaymentResultCode(Box::new(t)))
18039            .map_err(Error::Json),
18040            TypeVariant::PaymentResult => serde_ignored::deserialize(r, |path| {
18041                ignored.borrow_mut().push(path.to_string());
18042            })
18043            .map(|t| Self::PaymentResult(Box::new(t)))
18044            .map_err(Error::Json),
18045            TypeVariant::PathPaymentStrictReceiveResultCode => {
18046                serde_ignored::deserialize(r, |path| {
18047                    ignored.borrow_mut().push(path.to_string());
18048                })
18049                .map(|t| Self::PathPaymentStrictReceiveResultCode(Box::new(t)))
18050                .map_err(Error::Json)
18051            }
18052            TypeVariant::SimplePaymentResult => serde_ignored::deserialize(r, |path| {
18053                ignored.borrow_mut().push(path.to_string());
18054            })
18055            .map(|t| Self::SimplePaymentResult(Box::new(t)))
18056            .map_err(Error::Json),
18057            TypeVariant::PathPaymentStrictReceiveResult => serde_ignored::deserialize(r, |path| {
18058                ignored.borrow_mut().push(path.to_string());
18059            })
18060            .map(|t| Self::PathPaymentStrictReceiveResult(Box::new(t)))
18061            .map_err(Error::Json),
18062            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
18063                serde_ignored::deserialize(r, |path| {
18064                    ignored.borrow_mut().push(path.to_string());
18065                })
18066                .map(|t| Self::PathPaymentStrictReceiveResultSuccess(Box::new(t)))
18067                .map_err(Error::Json)
18068            }
18069            TypeVariant::PathPaymentStrictSendResultCode => serde_ignored::deserialize(r, |path| {
18070                ignored.borrow_mut().push(path.to_string());
18071            })
18072            .map(|t| Self::PathPaymentStrictSendResultCode(Box::new(t)))
18073            .map_err(Error::Json),
18074            TypeVariant::PathPaymentStrictSendResult => serde_ignored::deserialize(r, |path| {
18075                ignored.borrow_mut().push(path.to_string());
18076            })
18077            .map(|t| Self::PathPaymentStrictSendResult(Box::new(t)))
18078            .map_err(Error::Json),
18079            TypeVariant::PathPaymentStrictSendResultSuccess => {
18080                serde_ignored::deserialize(r, |path| {
18081                    ignored.borrow_mut().push(path.to_string());
18082                })
18083                .map(|t| Self::PathPaymentStrictSendResultSuccess(Box::new(t)))
18084                .map_err(Error::Json)
18085            }
18086            TypeVariant::ManageSellOfferResultCode => serde_ignored::deserialize(r, |path| {
18087                ignored.borrow_mut().push(path.to_string());
18088            })
18089            .map(|t| Self::ManageSellOfferResultCode(Box::new(t)))
18090            .map_err(Error::Json),
18091            TypeVariant::ManageOfferEffect => serde_ignored::deserialize(r, |path| {
18092                ignored.borrow_mut().push(path.to_string());
18093            })
18094            .map(|t| Self::ManageOfferEffect(Box::new(t)))
18095            .map_err(Error::Json),
18096            TypeVariant::ManageOfferSuccessResult => serde_ignored::deserialize(r, |path| {
18097                ignored.borrow_mut().push(path.to_string());
18098            })
18099            .map(|t| Self::ManageOfferSuccessResult(Box::new(t)))
18100            .map_err(Error::Json),
18101            TypeVariant::ManageOfferSuccessResultOffer => serde_ignored::deserialize(r, |path| {
18102                ignored.borrow_mut().push(path.to_string());
18103            })
18104            .map(|t| Self::ManageOfferSuccessResultOffer(Box::new(t)))
18105            .map_err(Error::Json),
18106            TypeVariant::ManageSellOfferResult => serde_ignored::deserialize(r, |path| {
18107                ignored.borrow_mut().push(path.to_string());
18108            })
18109            .map(|t| Self::ManageSellOfferResult(Box::new(t)))
18110            .map_err(Error::Json),
18111            TypeVariant::ManageBuyOfferResultCode => serde_ignored::deserialize(r, |path| {
18112                ignored.borrow_mut().push(path.to_string());
18113            })
18114            .map(|t| Self::ManageBuyOfferResultCode(Box::new(t)))
18115            .map_err(Error::Json),
18116            TypeVariant::ManageBuyOfferResult => serde_ignored::deserialize(r, |path| {
18117                ignored.borrow_mut().push(path.to_string());
18118            })
18119            .map(|t| Self::ManageBuyOfferResult(Box::new(t)))
18120            .map_err(Error::Json),
18121            TypeVariant::SetOptionsResultCode => serde_ignored::deserialize(r, |path| {
18122                ignored.borrow_mut().push(path.to_string());
18123            })
18124            .map(|t| Self::SetOptionsResultCode(Box::new(t)))
18125            .map_err(Error::Json),
18126            TypeVariant::SetOptionsResult => serde_ignored::deserialize(r, |path| {
18127                ignored.borrow_mut().push(path.to_string());
18128            })
18129            .map(|t| Self::SetOptionsResult(Box::new(t)))
18130            .map_err(Error::Json),
18131            TypeVariant::ChangeTrustResultCode => serde_ignored::deserialize(r, |path| {
18132                ignored.borrow_mut().push(path.to_string());
18133            })
18134            .map(|t| Self::ChangeTrustResultCode(Box::new(t)))
18135            .map_err(Error::Json),
18136            TypeVariant::ChangeTrustResult => serde_ignored::deserialize(r, |path| {
18137                ignored.borrow_mut().push(path.to_string());
18138            })
18139            .map(|t| Self::ChangeTrustResult(Box::new(t)))
18140            .map_err(Error::Json),
18141            TypeVariant::AllowTrustResultCode => serde_ignored::deserialize(r, |path| {
18142                ignored.borrow_mut().push(path.to_string());
18143            })
18144            .map(|t| Self::AllowTrustResultCode(Box::new(t)))
18145            .map_err(Error::Json),
18146            TypeVariant::AllowTrustResult => serde_ignored::deserialize(r, |path| {
18147                ignored.borrow_mut().push(path.to_string());
18148            })
18149            .map(|t| Self::AllowTrustResult(Box::new(t)))
18150            .map_err(Error::Json),
18151            TypeVariant::AccountMergeResultCode => serde_ignored::deserialize(r, |path| {
18152                ignored.borrow_mut().push(path.to_string());
18153            })
18154            .map(|t| Self::AccountMergeResultCode(Box::new(t)))
18155            .map_err(Error::Json),
18156            TypeVariant::AccountMergeResult => serde_ignored::deserialize(r, |path| {
18157                ignored.borrow_mut().push(path.to_string());
18158            })
18159            .map(|t| Self::AccountMergeResult(Box::new(t)))
18160            .map_err(Error::Json),
18161            TypeVariant::InflationResultCode => serde_ignored::deserialize(r, |path| {
18162                ignored.borrow_mut().push(path.to_string());
18163            })
18164            .map(|t| Self::InflationResultCode(Box::new(t)))
18165            .map_err(Error::Json),
18166            TypeVariant::InflationPayout => serde_ignored::deserialize(r, |path| {
18167                ignored.borrow_mut().push(path.to_string());
18168            })
18169            .map(|t| Self::InflationPayout(Box::new(t)))
18170            .map_err(Error::Json),
18171            TypeVariant::InflationResult => serde_ignored::deserialize(r, |path| {
18172                ignored.borrow_mut().push(path.to_string());
18173            })
18174            .map(|t| Self::InflationResult(Box::new(t)))
18175            .map_err(Error::Json),
18176            TypeVariant::ManageDataResultCode => serde_ignored::deserialize(r, |path| {
18177                ignored.borrow_mut().push(path.to_string());
18178            })
18179            .map(|t| Self::ManageDataResultCode(Box::new(t)))
18180            .map_err(Error::Json),
18181            TypeVariant::ManageDataResult => serde_ignored::deserialize(r, |path| {
18182                ignored.borrow_mut().push(path.to_string());
18183            })
18184            .map(|t| Self::ManageDataResult(Box::new(t)))
18185            .map_err(Error::Json),
18186            TypeVariant::BumpSequenceResultCode => serde_ignored::deserialize(r, |path| {
18187                ignored.borrow_mut().push(path.to_string());
18188            })
18189            .map(|t| Self::BumpSequenceResultCode(Box::new(t)))
18190            .map_err(Error::Json),
18191            TypeVariant::BumpSequenceResult => serde_ignored::deserialize(r, |path| {
18192                ignored.borrow_mut().push(path.to_string());
18193            })
18194            .map(|t| Self::BumpSequenceResult(Box::new(t)))
18195            .map_err(Error::Json),
18196            TypeVariant::CreateClaimableBalanceResultCode => {
18197                serde_ignored::deserialize(r, |path| {
18198                    ignored.borrow_mut().push(path.to_string());
18199                })
18200                .map(|t| Self::CreateClaimableBalanceResultCode(Box::new(t)))
18201                .map_err(Error::Json)
18202            }
18203            TypeVariant::CreateClaimableBalanceResult => serde_ignored::deserialize(r, |path| {
18204                ignored.borrow_mut().push(path.to_string());
18205            })
18206            .map(|t| Self::CreateClaimableBalanceResult(Box::new(t)))
18207            .map_err(Error::Json),
18208            TypeVariant::ClaimClaimableBalanceResultCode => serde_ignored::deserialize(r, |path| {
18209                ignored.borrow_mut().push(path.to_string());
18210            })
18211            .map(|t| Self::ClaimClaimableBalanceResultCode(Box::new(t)))
18212            .map_err(Error::Json),
18213            TypeVariant::ClaimClaimableBalanceResult => serde_ignored::deserialize(r, |path| {
18214                ignored.borrow_mut().push(path.to_string());
18215            })
18216            .map(|t| Self::ClaimClaimableBalanceResult(Box::new(t)))
18217            .map_err(Error::Json),
18218            TypeVariant::BeginSponsoringFutureReservesResultCode => {
18219                serde_ignored::deserialize(r, |path| {
18220                    ignored.borrow_mut().push(path.to_string());
18221                })
18222                .map(|t| Self::BeginSponsoringFutureReservesResultCode(Box::new(t)))
18223                .map_err(Error::Json)
18224            }
18225            TypeVariant::BeginSponsoringFutureReservesResult => {
18226                serde_ignored::deserialize(r, |path| {
18227                    ignored.borrow_mut().push(path.to_string());
18228                })
18229                .map(|t| Self::BeginSponsoringFutureReservesResult(Box::new(t)))
18230                .map_err(Error::Json)
18231            }
18232            TypeVariant::EndSponsoringFutureReservesResultCode => {
18233                serde_ignored::deserialize(r, |path| {
18234                    ignored.borrow_mut().push(path.to_string());
18235                })
18236                .map(|t| Self::EndSponsoringFutureReservesResultCode(Box::new(t)))
18237                .map_err(Error::Json)
18238            }
18239            TypeVariant::EndSponsoringFutureReservesResult => {
18240                serde_ignored::deserialize(r, |path| {
18241                    ignored.borrow_mut().push(path.to_string());
18242                })
18243                .map(|t| Self::EndSponsoringFutureReservesResult(Box::new(t)))
18244                .map_err(Error::Json)
18245            }
18246            TypeVariant::RevokeSponsorshipResultCode => serde_ignored::deserialize(r, |path| {
18247                ignored.borrow_mut().push(path.to_string());
18248            })
18249            .map(|t| Self::RevokeSponsorshipResultCode(Box::new(t)))
18250            .map_err(Error::Json),
18251            TypeVariant::RevokeSponsorshipResult => serde_ignored::deserialize(r, |path| {
18252                ignored.borrow_mut().push(path.to_string());
18253            })
18254            .map(|t| Self::RevokeSponsorshipResult(Box::new(t)))
18255            .map_err(Error::Json),
18256            TypeVariant::ClawbackResultCode => serde_ignored::deserialize(r, |path| {
18257                ignored.borrow_mut().push(path.to_string());
18258            })
18259            .map(|t| Self::ClawbackResultCode(Box::new(t)))
18260            .map_err(Error::Json),
18261            TypeVariant::ClawbackResult => serde_ignored::deserialize(r, |path| {
18262                ignored.borrow_mut().push(path.to_string());
18263            })
18264            .map(|t| Self::ClawbackResult(Box::new(t)))
18265            .map_err(Error::Json),
18266            TypeVariant::ClawbackClaimableBalanceResultCode => {
18267                serde_ignored::deserialize(r, |path| {
18268                    ignored.borrow_mut().push(path.to_string());
18269                })
18270                .map(|t| Self::ClawbackClaimableBalanceResultCode(Box::new(t)))
18271                .map_err(Error::Json)
18272            }
18273            TypeVariant::ClawbackClaimableBalanceResult => serde_ignored::deserialize(r, |path| {
18274                ignored.borrow_mut().push(path.to_string());
18275            })
18276            .map(|t| Self::ClawbackClaimableBalanceResult(Box::new(t)))
18277            .map_err(Error::Json),
18278            TypeVariant::SetTrustLineFlagsResultCode => serde_ignored::deserialize(r, |path| {
18279                ignored.borrow_mut().push(path.to_string());
18280            })
18281            .map(|t| Self::SetTrustLineFlagsResultCode(Box::new(t)))
18282            .map_err(Error::Json),
18283            TypeVariant::SetTrustLineFlagsResult => serde_ignored::deserialize(r, |path| {
18284                ignored.borrow_mut().push(path.to_string());
18285            })
18286            .map(|t| Self::SetTrustLineFlagsResult(Box::new(t)))
18287            .map_err(Error::Json),
18288            TypeVariant::LiquidityPoolDepositResultCode => serde_ignored::deserialize(r, |path| {
18289                ignored.borrow_mut().push(path.to_string());
18290            })
18291            .map(|t| Self::LiquidityPoolDepositResultCode(Box::new(t)))
18292            .map_err(Error::Json),
18293            TypeVariant::LiquidityPoolDepositResult => serde_ignored::deserialize(r, |path| {
18294                ignored.borrow_mut().push(path.to_string());
18295            })
18296            .map(|t| Self::LiquidityPoolDepositResult(Box::new(t)))
18297            .map_err(Error::Json),
18298            TypeVariant::LiquidityPoolWithdrawResultCode => serde_ignored::deserialize(r, |path| {
18299                ignored.borrow_mut().push(path.to_string());
18300            })
18301            .map(|t| Self::LiquidityPoolWithdrawResultCode(Box::new(t)))
18302            .map_err(Error::Json),
18303            TypeVariant::LiquidityPoolWithdrawResult => serde_ignored::deserialize(r, |path| {
18304                ignored.borrow_mut().push(path.to_string());
18305            })
18306            .map(|t| Self::LiquidityPoolWithdrawResult(Box::new(t)))
18307            .map_err(Error::Json),
18308            TypeVariant::InvokeHostFunctionResultCode => serde_ignored::deserialize(r, |path| {
18309                ignored.borrow_mut().push(path.to_string());
18310            })
18311            .map(|t| Self::InvokeHostFunctionResultCode(Box::new(t)))
18312            .map_err(Error::Json),
18313            TypeVariant::InvokeHostFunctionResult => serde_ignored::deserialize(r, |path| {
18314                ignored.borrow_mut().push(path.to_string());
18315            })
18316            .map(|t| Self::InvokeHostFunctionResult(Box::new(t)))
18317            .map_err(Error::Json),
18318            TypeVariant::ExtendFootprintTtlResultCode => serde_ignored::deserialize(r, |path| {
18319                ignored.borrow_mut().push(path.to_string());
18320            })
18321            .map(|t| Self::ExtendFootprintTtlResultCode(Box::new(t)))
18322            .map_err(Error::Json),
18323            TypeVariant::ExtendFootprintTtlResult => serde_ignored::deserialize(r, |path| {
18324                ignored.borrow_mut().push(path.to_string());
18325            })
18326            .map(|t| Self::ExtendFootprintTtlResult(Box::new(t)))
18327            .map_err(Error::Json),
18328            TypeVariant::RestoreFootprintResultCode => serde_ignored::deserialize(r, |path| {
18329                ignored.borrow_mut().push(path.to_string());
18330            })
18331            .map(|t| Self::RestoreFootprintResultCode(Box::new(t)))
18332            .map_err(Error::Json),
18333            TypeVariant::RestoreFootprintResult => serde_ignored::deserialize(r, |path| {
18334                ignored.borrow_mut().push(path.to_string());
18335            })
18336            .map(|t| Self::RestoreFootprintResult(Box::new(t)))
18337            .map_err(Error::Json),
18338            TypeVariant::OperationResultCode => serde_ignored::deserialize(r, |path| {
18339                ignored.borrow_mut().push(path.to_string());
18340            })
18341            .map(|t| Self::OperationResultCode(Box::new(t)))
18342            .map_err(Error::Json),
18343            TypeVariant::OperationResult => serde_ignored::deserialize(r, |path| {
18344                ignored.borrow_mut().push(path.to_string());
18345            })
18346            .map(|t| Self::OperationResult(Box::new(t)))
18347            .map_err(Error::Json),
18348            TypeVariant::OperationResultTr => serde_ignored::deserialize(r, |path| {
18349                ignored.borrow_mut().push(path.to_string());
18350            })
18351            .map(|t| Self::OperationResultTr(Box::new(t)))
18352            .map_err(Error::Json),
18353            TypeVariant::TransactionResultCode => serde_ignored::deserialize(r, |path| {
18354                ignored.borrow_mut().push(path.to_string());
18355            })
18356            .map(|t| Self::TransactionResultCode(Box::new(t)))
18357            .map_err(Error::Json),
18358            TypeVariant::InnerTransactionResult => serde_ignored::deserialize(r, |path| {
18359                ignored.borrow_mut().push(path.to_string());
18360            })
18361            .map(|t| Self::InnerTransactionResult(Box::new(t)))
18362            .map_err(Error::Json),
18363            TypeVariant::InnerTransactionResultResult => serde_ignored::deserialize(r, |path| {
18364                ignored.borrow_mut().push(path.to_string());
18365            })
18366            .map(|t| Self::InnerTransactionResultResult(Box::new(t)))
18367            .map_err(Error::Json),
18368            TypeVariant::InnerTransactionResultExt => serde_ignored::deserialize(r, |path| {
18369                ignored.borrow_mut().push(path.to_string());
18370            })
18371            .map(|t| Self::InnerTransactionResultExt(Box::new(t)))
18372            .map_err(Error::Json),
18373            TypeVariant::InnerTransactionResultPair => serde_ignored::deserialize(r, |path| {
18374                ignored.borrow_mut().push(path.to_string());
18375            })
18376            .map(|t| Self::InnerTransactionResultPair(Box::new(t)))
18377            .map_err(Error::Json),
18378            TypeVariant::TransactionResult => serde_ignored::deserialize(r, |path| {
18379                ignored.borrow_mut().push(path.to_string());
18380            })
18381            .map(|t| Self::TransactionResult(Box::new(t)))
18382            .map_err(Error::Json),
18383            TypeVariant::TransactionResultResult => serde_ignored::deserialize(r, |path| {
18384                ignored.borrow_mut().push(path.to_string());
18385            })
18386            .map(|t| Self::TransactionResultResult(Box::new(t)))
18387            .map_err(Error::Json),
18388            TypeVariant::TransactionResultExt => serde_ignored::deserialize(r, |path| {
18389                ignored.borrow_mut().push(path.to_string());
18390            })
18391            .map(|t| Self::TransactionResultExt(Box::new(t)))
18392            .map_err(Error::Json),
18393            TypeVariant::Hash => serde_ignored::deserialize(r, |path| {
18394                ignored.borrow_mut().push(path.to_string());
18395            })
18396            .map(|t| Self::Hash(Box::new(t)))
18397            .map_err(Error::Json),
18398            TypeVariant::Uint256 => serde_ignored::deserialize(r, |path| {
18399                ignored.borrow_mut().push(path.to_string());
18400            })
18401            .map(|t| Self::Uint256(Box::new(t)))
18402            .map_err(Error::Json),
18403            TypeVariant::Uint32 => serde_ignored::deserialize(r, |path| {
18404                ignored.borrow_mut().push(path.to_string());
18405            })
18406            .map(|t| Self::Uint32(Box::new(t)))
18407            .map_err(Error::Json),
18408            TypeVariant::Int32 => serde_ignored::deserialize(r, |path| {
18409                ignored.borrow_mut().push(path.to_string());
18410            })
18411            .map(|t| Self::Int32(Box::new(t)))
18412            .map_err(Error::Json),
18413            TypeVariant::Uint64 => serde_ignored::deserialize(r, |path| {
18414                ignored.borrow_mut().push(path.to_string());
18415            })
18416            .map(|t| Self::Uint64(Box::new(t)))
18417            .map_err(Error::Json),
18418            TypeVariant::Int64 => serde_ignored::deserialize(r, |path| {
18419                ignored.borrow_mut().push(path.to_string());
18420            })
18421            .map(|t| Self::Int64(Box::new(t)))
18422            .map_err(Error::Json),
18423            TypeVariant::TimePoint => serde_ignored::deserialize(r, |path| {
18424                ignored.borrow_mut().push(path.to_string());
18425            })
18426            .map(|t| Self::TimePoint(Box::new(t)))
18427            .map_err(Error::Json),
18428            TypeVariant::Duration => serde_ignored::deserialize(r, |path| {
18429                ignored.borrow_mut().push(path.to_string());
18430            })
18431            .map(|t| Self::Duration(Box::new(t)))
18432            .map_err(Error::Json),
18433            TypeVariant::ExtensionPoint => serde_ignored::deserialize(r, |path| {
18434                ignored.borrow_mut().push(path.to_string());
18435            })
18436            .map(|t| Self::ExtensionPoint(Box::new(t)))
18437            .map_err(Error::Json),
18438            TypeVariant::CryptoKeyType => serde_ignored::deserialize(r, |path| {
18439                ignored.borrow_mut().push(path.to_string());
18440            })
18441            .map(|t| Self::CryptoKeyType(Box::new(t)))
18442            .map_err(Error::Json),
18443            TypeVariant::PublicKeyType => serde_ignored::deserialize(r, |path| {
18444                ignored.borrow_mut().push(path.to_string());
18445            })
18446            .map(|t| Self::PublicKeyType(Box::new(t)))
18447            .map_err(Error::Json),
18448            TypeVariant::SignerKeyType => serde_ignored::deserialize(r, |path| {
18449                ignored.borrow_mut().push(path.to_string());
18450            })
18451            .map(|t| Self::SignerKeyType(Box::new(t)))
18452            .map_err(Error::Json),
18453            TypeVariant::PublicKey => serde_ignored::deserialize(r, |path| {
18454                ignored.borrow_mut().push(path.to_string());
18455            })
18456            .map(|t| Self::PublicKey(Box::new(t)))
18457            .map_err(Error::Json),
18458            TypeVariant::SignerKey => serde_ignored::deserialize(r, |path| {
18459                ignored.borrow_mut().push(path.to_string());
18460            })
18461            .map(|t| Self::SignerKey(Box::new(t)))
18462            .map_err(Error::Json),
18463            TypeVariant::SignerKeyEd25519SignedPayload => serde_ignored::deserialize(r, |path| {
18464                ignored.borrow_mut().push(path.to_string());
18465            })
18466            .map(|t| Self::SignerKeyEd25519SignedPayload(Box::new(t)))
18467            .map_err(Error::Json),
18468            TypeVariant::Signature => serde_ignored::deserialize(r, |path| {
18469                ignored.borrow_mut().push(path.to_string());
18470            })
18471            .map(|t| Self::Signature(Box::new(t)))
18472            .map_err(Error::Json),
18473            TypeVariant::SignatureHint => serde_ignored::deserialize(r, |path| {
18474                ignored.borrow_mut().push(path.to_string());
18475            })
18476            .map(|t| Self::SignatureHint(Box::new(t)))
18477            .map_err(Error::Json),
18478            TypeVariant::NodeId => serde_ignored::deserialize(r, |path| {
18479                ignored.borrow_mut().push(path.to_string());
18480            })
18481            .map(|t| Self::NodeId(Box::new(t)))
18482            .map_err(Error::Json),
18483            TypeVariant::AccountId => serde_ignored::deserialize(r, |path| {
18484                ignored.borrow_mut().push(path.to_string());
18485            })
18486            .map(|t| Self::AccountId(Box::new(t)))
18487            .map_err(Error::Json),
18488            TypeVariant::ContractId => serde_ignored::deserialize(r, |path| {
18489                ignored.borrow_mut().push(path.to_string());
18490            })
18491            .map(|t| Self::ContractId(Box::new(t)))
18492            .map_err(Error::Json),
18493            TypeVariant::Curve25519Secret => serde_ignored::deserialize(r, |path| {
18494                ignored.borrow_mut().push(path.to_string());
18495            })
18496            .map(|t| Self::Curve25519Secret(Box::new(t)))
18497            .map_err(Error::Json),
18498            TypeVariant::Curve25519Public => serde_ignored::deserialize(r, |path| {
18499                ignored.borrow_mut().push(path.to_string());
18500            })
18501            .map(|t| Self::Curve25519Public(Box::new(t)))
18502            .map_err(Error::Json),
18503            TypeVariant::HmacSha256Key => serde_ignored::deserialize(r, |path| {
18504                ignored.borrow_mut().push(path.to_string());
18505            })
18506            .map(|t| Self::HmacSha256Key(Box::new(t)))
18507            .map_err(Error::Json),
18508            TypeVariant::HmacSha256Mac => serde_ignored::deserialize(r, |path| {
18509                ignored.borrow_mut().push(path.to_string());
18510            })
18511            .map(|t| Self::HmacSha256Mac(Box::new(t)))
18512            .map_err(Error::Json),
18513            TypeVariant::ShortHashSeed => serde_ignored::deserialize(r, |path| {
18514                ignored.borrow_mut().push(path.to_string());
18515            })
18516            .map(|t| Self::ShortHashSeed(Box::new(t)))
18517            .map_err(Error::Json),
18518            TypeVariant::BinaryFuseFilterType => serde_ignored::deserialize(r, |path| {
18519                ignored.borrow_mut().push(path.to_string());
18520            })
18521            .map(|t| Self::BinaryFuseFilterType(Box::new(t)))
18522            .map_err(Error::Json),
18523            TypeVariant::SerializedBinaryFuseFilter => serde_ignored::deserialize(r, |path| {
18524                ignored.borrow_mut().push(path.to_string());
18525            })
18526            .map(|t| Self::SerializedBinaryFuseFilter(Box::new(t)))
18527            .map_err(Error::Json),
18528            TypeVariant::PoolId => serde_ignored::deserialize(r, |path| {
18529                ignored.borrow_mut().push(path.to_string());
18530            })
18531            .map(|t| Self::PoolId(Box::new(t)))
18532            .map_err(Error::Json),
18533            TypeVariant::ClaimableBalanceIdType => serde_ignored::deserialize(r, |path| {
18534                ignored.borrow_mut().push(path.to_string());
18535            })
18536            .map(|t| Self::ClaimableBalanceIdType(Box::new(t)))
18537            .map_err(Error::Json),
18538            TypeVariant::ClaimableBalanceId => serde_ignored::deserialize(r, |path| {
18539                ignored.borrow_mut().push(path.to_string());
18540            })
18541            .map(|t| Self::ClaimableBalanceId(Box::new(t)))
18542            .map_err(Error::Json),
18543            #[cfg(feature = "test_feature")]
18544            TypeVariant::TestNextType => serde_ignored::deserialize(r, |path| {
18545                ignored.borrow_mut().push(path.to_string());
18546            })
18547            .map(|t| Self::TestNextType(Box::new(t)))
18548            .map_err(Error::Json),
18549        }?;
18550        Ok((t, ignored.into_inner()))
18551    }
18552
18553    #[cfg(feature = "arbitrary")]
18554    #[allow(clippy::too_many_lines)]
18555    pub fn arbitrary(v: TypeVariant, u: &mut arbitrary::Unstructured<'_>) -> Result<Self, Error> {
18556        match v {
18557            TypeVariant::Value => Ok(Self::Value(Box::new(Value::arbitrary(u)?))),
18558            TypeVariant::ScpBallot => Ok(Self::ScpBallot(Box::new(ScpBallot::arbitrary(u)?))),
18559            TypeVariant::ScpStatementType => Ok(Self::ScpStatementType(Box::new(
18560                ScpStatementType::arbitrary(u)?,
18561            ))),
18562            TypeVariant::ScpNomination => {
18563                Ok(Self::ScpNomination(Box::new(ScpNomination::arbitrary(u)?)))
18564            }
18565            TypeVariant::ScpStatement => {
18566                Ok(Self::ScpStatement(Box::new(ScpStatement::arbitrary(u)?)))
18567            }
18568            TypeVariant::ScpStatementPledges => Ok(Self::ScpStatementPledges(Box::new(
18569                ScpStatementPledges::arbitrary(u)?,
18570            ))),
18571            TypeVariant::ScpStatementPrepare => Ok(Self::ScpStatementPrepare(Box::new(
18572                ScpStatementPrepare::arbitrary(u)?,
18573            ))),
18574            TypeVariant::ScpStatementConfirm => Ok(Self::ScpStatementConfirm(Box::new(
18575                ScpStatementConfirm::arbitrary(u)?,
18576            ))),
18577            TypeVariant::ScpStatementExternalize => Ok(Self::ScpStatementExternalize(Box::new(
18578                ScpStatementExternalize::arbitrary(u)?,
18579            ))),
18580            TypeVariant::ScpEnvelope => Ok(Self::ScpEnvelope(Box::new(ScpEnvelope::arbitrary(u)?))),
18581            TypeVariant::ScpQuorumSet => {
18582                Ok(Self::ScpQuorumSet(Box::new(ScpQuorumSet::arbitrary(u)?)))
18583            }
18584            TypeVariant::EncodedLedgerKey => Ok(Self::EncodedLedgerKey(Box::new(
18585                EncodedLedgerKey::arbitrary(u)?,
18586            ))),
18587            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
18588                Ok(Self::ConfigSettingContractExecutionLanesV0(Box::new(
18589                    ConfigSettingContractExecutionLanesV0::arbitrary(u)?,
18590                )))
18591            }
18592            TypeVariant::ConfigSettingContractComputeV0 => {
18593                Ok(Self::ConfigSettingContractComputeV0(Box::new(
18594                    ConfigSettingContractComputeV0::arbitrary(u)?,
18595                )))
18596            }
18597            TypeVariant::ConfigSettingContractParallelComputeV0 => {
18598                Ok(Self::ConfigSettingContractParallelComputeV0(Box::new(
18599                    ConfigSettingContractParallelComputeV0::arbitrary(u)?,
18600                )))
18601            }
18602            TypeVariant::ConfigSettingContractLedgerCostV0 => {
18603                Ok(Self::ConfigSettingContractLedgerCostV0(Box::new(
18604                    ConfigSettingContractLedgerCostV0::arbitrary(u)?,
18605                )))
18606            }
18607            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
18608                Ok(Self::ConfigSettingContractLedgerCostExtV0(Box::new(
18609                    ConfigSettingContractLedgerCostExtV0::arbitrary(u)?,
18610                )))
18611            }
18612            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
18613                Ok(Self::ConfigSettingContractHistoricalDataV0(Box::new(
18614                    ConfigSettingContractHistoricalDataV0::arbitrary(u)?,
18615                )))
18616            }
18617            TypeVariant::ConfigSettingContractEventsV0 => Ok(Self::ConfigSettingContractEventsV0(
18618                Box::new(ConfigSettingContractEventsV0::arbitrary(u)?),
18619            )),
18620            TypeVariant::ConfigSettingContractBandwidthV0 => {
18621                Ok(Self::ConfigSettingContractBandwidthV0(Box::new(
18622                    ConfigSettingContractBandwidthV0::arbitrary(u)?,
18623                )))
18624            }
18625            TypeVariant::ContractCostType => Ok(Self::ContractCostType(Box::new(
18626                ContractCostType::arbitrary(u)?,
18627            ))),
18628            TypeVariant::ContractCostParamEntry => Ok(Self::ContractCostParamEntry(Box::new(
18629                ContractCostParamEntry::arbitrary(u)?,
18630            ))),
18631            TypeVariant::StateArchivalSettings => Ok(Self::StateArchivalSettings(Box::new(
18632                StateArchivalSettings::arbitrary(u)?,
18633            ))),
18634            TypeVariant::EvictionIterator => Ok(Self::EvictionIterator(Box::new(
18635                EvictionIterator::arbitrary(u)?,
18636            ))),
18637            TypeVariant::ConfigSettingScpTiming => Ok(Self::ConfigSettingScpTiming(Box::new(
18638                ConfigSettingScpTiming::arbitrary(u)?,
18639            ))),
18640            TypeVariant::FrozenLedgerKeys => Ok(Self::FrozenLedgerKeys(Box::new(
18641                FrozenLedgerKeys::arbitrary(u)?,
18642            ))),
18643            TypeVariant::FrozenLedgerKeysDelta => Ok(Self::FrozenLedgerKeysDelta(Box::new(
18644                FrozenLedgerKeysDelta::arbitrary(u)?,
18645            ))),
18646            TypeVariant::FreezeBypassTxs => Ok(Self::FreezeBypassTxs(Box::new(
18647                FreezeBypassTxs::arbitrary(u)?,
18648            ))),
18649            TypeVariant::FreezeBypassTxsDelta => Ok(Self::FreezeBypassTxsDelta(Box::new(
18650                FreezeBypassTxsDelta::arbitrary(u)?,
18651            ))),
18652            TypeVariant::ContractCostParams => Ok(Self::ContractCostParams(Box::new(
18653                ContractCostParams::arbitrary(u)?,
18654            ))),
18655            TypeVariant::ConfigSettingId => Ok(Self::ConfigSettingId(Box::new(
18656                ConfigSettingId::arbitrary(u)?,
18657            ))),
18658            TypeVariant::ConfigSettingEntry => Ok(Self::ConfigSettingEntry(Box::new(
18659                ConfigSettingEntry::arbitrary(u)?,
18660            ))),
18661            TypeVariant::ScEnvMetaKind => {
18662                Ok(Self::ScEnvMetaKind(Box::new(ScEnvMetaKind::arbitrary(u)?)))
18663            }
18664            TypeVariant::ScEnvMetaEntry => Ok(Self::ScEnvMetaEntry(Box::new(
18665                ScEnvMetaEntry::arbitrary(u)?,
18666            ))),
18667            TypeVariant::ScEnvMetaEntryInterfaceVersion => {
18668                Ok(Self::ScEnvMetaEntryInterfaceVersion(Box::new(
18669                    ScEnvMetaEntryInterfaceVersion::arbitrary(u)?,
18670                )))
18671            }
18672            TypeVariant::ScMetaV0 => Ok(Self::ScMetaV0(Box::new(ScMetaV0::arbitrary(u)?))),
18673            TypeVariant::ScMetaKind => Ok(Self::ScMetaKind(Box::new(ScMetaKind::arbitrary(u)?))),
18674            TypeVariant::ScMetaEntry => Ok(Self::ScMetaEntry(Box::new(ScMetaEntry::arbitrary(u)?))),
18675            TypeVariant::ScSpecType => Ok(Self::ScSpecType(Box::new(ScSpecType::arbitrary(u)?))),
18676            TypeVariant::ScSpecTypeOption => Ok(Self::ScSpecTypeOption(Box::new(
18677                ScSpecTypeOption::arbitrary(u)?,
18678            ))),
18679            TypeVariant::ScSpecTypeResult => Ok(Self::ScSpecTypeResult(Box::new(
18680                ScSpecTypeResult::arbitrary(u)?,
18681            ))),
18682            TypeVariant::ScSpecTypeVec => {
18683                Ok(Self::ScSpecTypeVec(Box::new(ScSpecTypeVec::arbitrary(u)?)))
18684            }
18685            TypeVariant::ScSpecTypeMap => {
18686                Ok(Self::ScSpecTypeMap(Box::new(ScSpecTypeMap::arbitrary(u)?)))
18687            }
18688            TypeVariant::ScSpecTypeTuple => Ok(Self::ScSpecTypeTuple(Box::new(
18689                ScSpecTypeTuple::arbitrary(u)?,
18690            ))),
18691            TypeVariant::ScSpecTypeBytesN => Ok(Self::ScSpecTypeBytesN(Box::new(
18692                ScSpecTypeBytesN::arbitrary(u)?,
18693            ))),
18694            TypeVariant::ScSpecTypeUdt => {
18695                Ok(Self::ScSpecTypeUdt(Box::new(ScSpecTypeUdt::arbitrary(u)?)))
18696            }
18697            TypeVariant::ScSpecTypeDef => {
18698                Ok(Self::ScSpecTypeDef(Box::new(ScSpecTypeDef::arbitrary(u)?)))
18699            }
18700            TypeVariant::ScSpecUdtStructFieldV0 => Ok(Self::ScSpecUdtStructFieldV0(Box::new(
18701                ScSpecUdtStructFieldV0::arbitrary(u)?,
18702            ))),
18703            TypeVariant::ScSpecUdtStructV0 => Ok(Self::ScSpecUdtStructV0(Box::new(
18704                ScSpecUdtStructV0::arbitrary(u)?,
18705            ))),
18706            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Ok(Self::ScSpecUdtUnionCaseVoidV0(Box::new(
18707                ScSpecUdtUnionCaseVoidV0::arbitrary(u)?,
18708            ))),
18709            TypeVariant::ScSpecUdtUnionCaseTupleV0 => Ok(Self::ScSpecUdtUnionCaseTupleV0(
18710                Box::new(ScSpecUdtUnionCaseTupleV0::arbitrary(u)?),
18711            )),
18712            TypeVariant::ScSpecUdtUnionCaseV0Kind => Ok(Self::ScSpecUdtUnionCaseV0Kind(Box::new(
18713                ScSpecUdtUnionCaseV0Kind::arbitrary(u)?,
18714            ))),
18715            TypeVariant::ScSpecUdtUnionCaseV0 => Ok(Self::ScSpecUdtUnionCaseV0(Box::new(
18716                ScSpecUdtUnionCaseV0::arbitrary(u)?,
18717            ))),
18718            TypeVariant::ScSpecUdtUnionV0 => Ok(Self::ScSpecUdtUnionV0(Box::new(
18719                ScSpecUdtUnionV0::arbitrary(u)?,
18720            ))),
18721            TypeVariant::ScSpecUdtEnumCaseV0 => Ok(Self::ScSpecUdtEnumCaseV0(Box::new(
18722                ScSpecUdtEnumCaseV0::arbitrary(u)?,
18723            ))),
18724            TypeVariant::ScSpecUdtEnumV0 => Ok(Self::ScSpecUdtEnumV0(Box::new(
18725                ScSpecUdtEnumV0::arbitrary(u)?,
18726            ))),
18727            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Ok(Self::ScSpecUdtErrorEnumCaseV0(Box::new(
18728                ScSpecUdtErrorEnumCaseV0::arbitrary(u)?,
18729            ))),
18730            TypeVariant::ScSpecUdtErrorEnumV0 => Ok(Self::ScSpecUdtErrorEnumV0(Box::new(
18731                ScSpecUdtErrorEnumV0::arbitrary(u)?,
18732            ))),
18733            TypeVariant::ScSpecFunctionInputV0 => Ok(Self::ScSpecFunctionInputV0(Box::new(
18734                ScSpecFunctionInputV0::arbitrary(u)?,
18735            ))),
18736            TypeVariant::ScSpecFunctionV0 => Ok(Self::ScSpecFunctionV0(Box::new(
18737                ScSpecFunctionV0::arbitrary(u)?,
18738            ))),
18739            TypeVariant::ScSpecEventParamLocationV0 => Ok(Self::ScSpecEventParamLocationV0(
18740                Box::new(ScSpecEventParamLocationV0::arbitrary(u)?),
18741            )),
18742            TypeVariant::ScSpecEventParamV0 => Ok(Self::ScSpecEventParamV0(Box::new(
18743                ScSpecEventParamV0::arbitrary(u)?,
18744            ))),
18745            TypeVariant::ScSpecEventDataFormat => Ok(Self::ScSpecEventDataFormat(Box::new(
18746                ScSpecEventDataFormat::arbitrary(u)?,
18747            ))),
18748            TypeVariant::ScSpecEventV0 => {
18749                Ok(Self::ScSpecEventV0(Box::new(ScSpecEventV0::arbitrary(u)?)))
18750            }
18751            TypeVariant::ScSpecEntryKind => Ok(Self::ScSpecEntryKind(Box::new(
18752                ScSpecEntryKind::arbitrary(u)?,
18753            ))),
18754            TypeVariant::ScSpecEntry => Ok(Self::ScSpecEntry(Box::new(ScSpecEntry::arbitrary(u)?))),
18755            TypeVariant::ScBytes => Ok(Self::ScBytes(Box::new(ScBytes::arbitrary(u)?))),
18756            TypeVariant::ScString => Ok(Self::ScString(Box::new(ScString::arbitrary(u)?))),
18757            TypeVariant::ScSymbol => Ok(Self::ScSymbol(Box::new(ScSymbol::arbitrary(u)?))),
18758            TypeVariant::ScValType => Ok(Self::ScValType(Box::new(ScValType::arbitrary(u)?))),
18759            TypeVariant::ScErrorType => Ok(Self::ScErrorType(Box::new(ScErrorType::arbitrary(u)?))),
18760            TypeVariant::ScErrorCode => Ok(Self::ScErrorCode(Box::new(ScErrorCode::arbitrary(u)?))),
18761            TypeVariant::ScError => Ok(Self::ScError(Box::new(ScError::arbitrary(u)?))),
18762            TypeVariant::UInt128Parts => {
18763                Ok(Self::UInt128Parts(Box::new(UInt128Parts::arbitrary(u)?)))
18764            }
18765            TypeVariant::Int128Parts => Ok(Self::Int128Parts(Box::new(Int128Parts::arbitrary(u)?))),
18766            TypeVariant::UInt256Parts => {
18767                Ok(Self::UInt256Parts(Box::new(UInt256Parts::arbitrary(u)?)))
18768            }
18769            TypeVariant::Int256Parts => Ok(Self::Int256Parts(Box::new(Int256Parts::arbitrary(u)?))),
18770            TypeVariant::ContractExecutableType => Ok(Self::ContractExecutableType(Box::new(
18771                ContractExecutableType::arbitrary(u)?,
18772            ))),
18773            TypeVariant::ScAddressType => {
18774                Ok(Self::ScAddressType(Box::new(ScAddressType::arbitrary(u)?)))
18775            }
18776            TypeVariant::MuxedEd25519Account => Ok(Self::MuxedEd25519Account(Box::new(
18777                MuxedEd25519Account::arbitrary(u)?,
18778            ))),
18779            #[cfg(feature = "cap_0084_muxed_contract")]
18780            TypeVariant::MuxedContract => {
18781                Ok(Self::MuxedContract(Box::new(MuxedContract::arbitrary(u)?)))
18782            }
18783            TypeVariant::ScAddress => Ok(Self::ScAddress(Box::new(ScAddress::arbitrary(u)?))),
18784            TypeVariant::ContractExecutableExternalRef => Ok(Self::ContractExecutableExternalRef(
18785                Box::new(ContractExecutableExternalRef::arbitrary(u)?),
18786            )),
18787            TypeVariant::ContractExecutable => Ok(Self::ContractExecutable(Box::new(
18788                ContractExecutable::arbitrary(u)?,
18789            ))),
18790            TypeVariant::ScVec => Ok(Self::ScVec(Box::new(ScVec::arbitrary(u)?))),
18791            TypeVariant::ScMap => Ok(Self::ScMap(Box::new(ScMap::arbitrary(u)?))),
18792            TypeVariant::ScNonceKey => Ok(Self::ScNonceKey(Box::new(ScNonceKey::arbitrary(u)?))),
18793            TypeVariant::ScContractInstance => Ok(Self::ScContractInstance(Box::new(
18794                ScContractInstance::arbitrary(u)?,
18795            ))),
18796            TypeVariant::ScVal => Ok(Self::ScVal(Box::new(ScVal::arbitrary(u)?))),
18797            TypeVariant::ScMapEntry => Ok(Self::ScMapEntry(Box::new(ScMapEntry::arbitrary(u)?))),
18798            TypeVariant::LedgerCloseMetaBatch => Ok(Self::LedgerCloseMetaBatch(Box::new(
18799                LedgerCloseMetaBatch::arbitrary(u)?,
18800            ))),
18801            TypeVariant::StoredTransactionSet => Ok(Self::StoredTransactionSet(Box::new(
18802                StoredTransactionSet::arbitrary(u)?,
18803            ))),
18804            TypeVariant::StoredDebugTransactionSet => Ok(Self::StoredDebugTransactionSet(
18805                Box::new(StoredDebugTransactionSet::arbitrary(u)?),
18806            )),
18807            TypeVariant::PersistedScpStateV0 => Ok(Self::PersistedScpStateV0(Box::new(
18808                PersistedScpStateV0::arbitrary(u)?,
18809            ))),
18810            TypeVariant::PersistedScpStateV1 => Ok(Self::PersistedScpStateV1(Box::new(
18811                PersistedScpStateV1::arbitrary(u)?,
18812            ))),
18813            TypeVariant::PersistedScpState => Ok(Self::PersistedScpState(Box::new(
18814                PersistedScpState::arbitrary(u)?,
18815            ))),
18816            TypeVariant::Thresholds => Ok(Self::Thresholds(Box::new(Thresholds::arbitrary(u)?))),
18817            TypeVariant::String32 => Ok(Self::String32(Box::new(String32::arbitrary(u)?))),
18818            TypeVariant::String64 => Ok(Self::String64(Box::new(String64::arbitrary(u)?))),
18819            TypeVariant::SequenceNumber => Ok(Self::SequenceNumber(Box::new(
18820                SequenceNumber::arbitrary(u)?,
18821            ))),
18822            TypeVariant::DataValue => Ok(Self::DataValue(Box::new(DataValue::arbitrary(u)?))),
18823            TypeVariant::AssetCode4 => Ok(Self::AssetCode4(Box::new(AssetCode4::arbitrary(u)?))),
18824            TypeVariant::AssetCode12 => Ok(Self::AssetCode12(Box::new(AssetCode12::arbitrary(u)?))),
18825            TypeVariant::AssetType => Ok(Self::AssetType(Box::new(AssetType::arbitrary(u)?))),
18826            TypeVariant::AssetCode => Ok(Self::AssetCode(Box::new(AssetCode::arbitrary(u)?))),
18827            TypeVariant::AlphaNum4 => Ok(Self::AlphaNum4(Box::new(AlphaNum4::arbitrary(u)?))),
18828            TypeVariant::AlphaNum12 => Ok(Self::AlphaNum12(Box::new(AlphaNum12::arbitrary(u)?))),
18829            TypeVariant::Asset => Ok(Self::Asset(Box::new(Asset::arbitrary(u)?))),
18830            TypeVariant::Price => Ok(Self::Price(Box::new(Price::arbitrary(u)?))),
18831            TypeVariant::Liabilities => Ok(Self::Liabilities(Box::new(Liabilities::arbitrary(u)?))),
18832            TypeVariant::ThresholdIndexes => Ok(Self::ThresholdIndexes(Box::new(
18833                ThresholdIndexes::arbitrary(u)?,
18834            ))),
18835            TypeVariant::LedgerEntryType => Ok(Self::LedgerEntryType(Box::new(
18836                LedgerEntryType::arbitrary(u)?,
18837            ))),
18838            TypeVariant::Signer => Ok(Self::Signer(Box::new(Signer::arbitrary(u)?))),
18839            TypeVariant::AccountFlags => {
18840                Ok(Self::AccountFlags(Box::new(AccountFlags::arbitrary(u)?)))
18841            }
18842            TypeVariant::SponsorshipDescriptor => Ok(Self::SponsorshipDescriptor(Box::new(
18843                SponsorshipDescriptor::arbitrary(u)?,
18844            ))),
18845            TypeVariant::AccountEntryExtensionV3 => Ok(Self::AccountEntryExtensionV3(Box::new(
18846                AccountEntryExtensionV3::arbitrary(u)?,
18847            ))),
18848            TypeVariant::AccountEntryExtensionV2 => Ok(Self::AccountEntryExtensionV2(Box::new(
18849                AccountEntryExtensionV2::arbitrary(u)?,
18850            ))),
18851            TypeVariant::AccountEntryExtensionV2Ext => Ok(Self::AccountEntryExtensionV2Ext(
18852                Box::new(AccountEntryExtensionV2Ext::arbitrary(u)?),
18853            )),
18854            TypeVariant::AccountEntryExtensionV1 => Ok(Self::AccountEntryExtensionV1(Box::new(
18855                AccountEntryExtensionV1::arbitrary(u)?,
18856            ))),
18857            TypeVariant::AccountEntryExtensionV1Ext => Ok(Self::AccountEntryExtensionV1Ext(
18858                Box::new(AccountEntryExtensionV1Ext::arbitrary(u)?),
18859            )),
18860            TypeVariant::AccountEntry => {
18861                Ok(Self::AccountEntry(Box::new(AccountEntry::arbitrary(u)?)))
18862            }
18863            TypeVariant::AccountEntryExt => Ok(Self::AccountEntryExt(Box::new(
18864                AccountEntryExt::arbitrary(u)?,
18865            ))),
18866            TypeVariant::TrustLineFlags => Ok(Self::TrustLineFlags(Box::new(
18867                TrustLineFlags::arbitrary(u)?,
18868            ))),
18869            TypeVariant::LiquidityPoolType => Ok(Self::LiquidityPoolType(Box::new(
18870                LiquidityPoolType::arbitrary(u)?,
18871            ))),
18872            TypeVariant::TrustLineAsset => Ok(Self::TrustLineAsset(Box::new(
18873                TrustLineAsset::arbitrary(u)?,
18874            ))),
18875            TypeVariant::TrustLineEntryExtensionV2 => Ok(Self::TrustLineEntryExtensionV2(
18876                Box::new(TrustLineEntryExtensionV2::arbitrary(u)?),
18877            )),
18878            TypeVariant::TrustLineEntryExtensionV2Ext => Ok(Self::TrustLineEntryExtensionV2Ext(
18879                Box::new(TrustLineEntryExtensionV2Ext::arbitrary(u)?),
18880            )),
18881            TypeVariant::TrustLineEntry => Ok(Self::TrustLineEntry(Box::new(
18882                TrustLineEntry::arbitrary(u)?,
18883            ))),
18884            TypeVariant::TrustLineEntryExt => Ok(Self::TrustLineEntryExt(Box::new(
18885                TrustLineEntryExt::arbitrary(u)?,
18886            ))),
18887            TypeVariant::TrustLineEntryV1 => Ok(Self::TrustLineEntryV1(Box::new(
18888                TrustLineEntryV1::arbitrary(u)?,
18889            ))),
18890            TypeVariant::TrustLineEntryV1Ext => Ok(Self::TrustLineEntryV1Ext(Box::new(
18891                TrustLineEntryV1Ext::arbitrary(u)?,
18892            ))),
18893            TypeVariant::OfferEntryFlags => Ok(Self::OfferEntryFlags(Box::new(
18894                OfferEntryFlags::arbitrary(u)?,
18895            ))),
18896            TypeVariant::OfferEntry => Ok(Self::OfferEntry(Box::new(OfferEntry::arbitrary(u)?))),
18897            TypeVariant::OfferEntryExt => {
18898                Ok(Self::OfferEntryExt(Box::new(OfferEntryExt::arbitrary(u)?)))
18899            }
18900            TypeVariant::DataEntry => Ok(Self::DataEntry(Box::new(DataEntry::arbitrary(u)?))),
18901            TypeVariant::DataEntryExt => {
18902                Ok(Self::DataEntryExt(Box::new(DataEntryExt::arbitrary(u)?)))
18903            }
18904            TypeVariant::ClaimPredicateType => Ok(Self::ClaimPredicateType(Box::new(
18905                ClaimPredicateType::arbitrary(u)?,
18906            ))),
18907            TypeVariant::ClaimPredicate => Ok(Self::ClaimPredicate(Box::new(
18908                ClaimPredicate::arbitrary(u)?,
18909            ))),
18910            TypeVariant::ClaimantType => {
18911                Ok(Self::ClaimantType(Box::new(ClaimantType::arbitrary(u)?)))
18912            }
18913            TypeVariant::Claimant => Ok(Self::Claimant(Box::new(Claimant::arbitrary(u)?))),
18914            TypeVariant::ClaimantV0 => Ok(Self::ClaimantV0(Box::new(ClaimantV0::arbitrary(u)?))),
18915            TypeVariant::ClaimableBalanceFlags => Ok(Self::ClaimableBalanceFlags(Box::new(
18916                ClaimableBalanceFlags::arbitrary(u)?,
18917            ))),
18918            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
18919                Ok(Self::ClaimableBalanceEntryExtensionV1(Box::new(
18920                    ClaimableBalanceEntryExtensionV1::arbitrary(u)?,
18921                )))
18922            }
18923            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
18924                Ok(Self::ClaimableBalanceEntryExtensionV1Ext(Box::new(
18925                    ClaimableBalanceEntryExtensionV1Ext::arbitrary(u)?,
18926                )))
18927            }
18928            TypeVariant::ClaimableBalanceEntry => Ok(Self::ClaimableBalanceEntry(Box::new(
18929                ClaimableBalanceEntry::arbitrary(u)?,
18930            ))),
18931            TypeVariant::ClaimableBalanceEntryExt => Ok(Self::ClaimableBalanceEntryExt(Box::new(
18932                ClaimableBalanceEntryExt::arbitrary(u)?,
18933            ))),
18934            TypeVariant::LiquidityPoolConstantProductParameters => {
18935                Ok(Self::LiquidityPoolConstantProductParameters(Box::new(
18936                    LiquidityPoolConstantProductParameters::arbitrary(u)?,
18937                )))
18938            }
18939            TypeVariant::LiquidityPoolEntry => Ok(Self::LiquidityPoolEntry(Box::new(
18940                LiquidityPoolEntry::arbitrary(u)?,
18941            ))),
18942            TypeVariant::LiquidityPoolEntryBody => Ok(Self::LiquidityPoolEntryBody(Box::new(
18943                LiquidityPoolEntryBody::arbitrary(u)?,
18944            ))),
18945            TypeVariant::LiquidityPoolEntryConstantProduct => {
18946                Ok(Self::LiquidityPoolEntryConstantProduct(Box::new(
18947                    LiquidityPoolEntryConstantProduct::arbitrary(u)?,
18948                )))
18949            }
18950            TypeVariant::ContractDataDurability => Ok(Self::ContractDataDurability(Box::new(
18951                ContractDataDurability::arbitrary(u)?,
18952            ))),
18953            TypeVariant::ContractDataEntry => Ok(Self::ContractDataEntry(Box::new(
18954                ContractDataEntry::arbitrary(u)?,
18955            ))),
18956            TypeVariant::ContractCodeCostInputs => Ok(Self::ContractCodeCostInputs(Box::new(
18957                ContractCodeCostInputs::arbitrary(u)?,
18958            ))),
18959            TypeVariant::ContractCodeEntry => Ok(Self::ContractCodeEntry(Box::new(
18960                ContractCodeEntry::arbitrary(u)?,
18961            ))),
18962            TypeVariant::ContractCodeEntryExt => Ok(Self::ContractCodeEntryExt(Box::new(
18963                ContractCodeEntryExt::arbitrary(u)?,
18964            ))),
18965            TypeVariant::ContractCodeEntryV1 => Ok(Self::ContractCodeEntryV1(Box::new(
18966                ContractCodeEntryV1::arbitrary(u)?,
18967            ))),
18968            TypeVariant::TtlEntry => Ok(Self::TtlEntry(Box::new(TtlEntry::arbitrary(u)?))),
18969            TypeVariant::LedgerEntryExtensionV1 => Ok(Self::LedgerEntryExtensionV1(Box::new(
18970                LedgerEntryExtensionV1::arbitrary(u)?,
18971            ))),
18972            TypeVariant::LedgerEntryExtensionV1Ext => Ok(Self::LedgerEntryExtensionV1Ext(
18973                Box::new(LedgerEntryExtensionV1Ext::arbitrary(u)?),
18974            )),
18975            TypeVariant::LedgerEntry => Ok(Self::LedgerEntry(Box::new(LedgerEntry::arbitrary(u)?))),
18976            TypeVariant::LedgerEntryData => Ok(Self::LedgerEntryData(Box::new(
18977                LedgerEntryData::arbitrary(u)?,
18978            ))),
18979            TypeVariant::LedgerEntryExt => Ok(Self::LedgerEntryExt(Box::new(
18980                LedgerEntryExt::arbitrary(u)?,
18981            ))),
18982            TypeVariant::LedgerKey => Ok(Self::LedgerKey(Box::new(LedgerKey::arbitrary(u)?))),
18983            TypeVariant::LedgerKeyAccount => Ok(Self::LedgerKeyAccount(Box::new(
18984                LedgerKeyAccount::arbitrary(u)?,
18985            ))),
18986            TypeVariant::LedgerKeyTrustLine => Ok(Self::LedgerKeyTrustLine(Box::new(
18987                LedgerKeyTrustLine::arbitrary(u)?,
18988            ))),
18989            TypeVariant::LedgerKeyOffer => Ok(Self::LedgerKeyOffer(Box::new(
18990                LedgerKeyOffer::arbitrary(u)?,
18991            ))),
18992            TypeVariant::LedgerKeyData => {
18993                Ok(Self::LedgerKeyData(Box::new(LedgerKeyData::arbitrary(u)?)))
18994            }
18995            TypeVariant::LedgerKeyClaimableBalance => Ok(Self::LedgerKeyClaimableBalance(
18996                Box::new(LedgerKeyClaimableBalance::arbitrary(u)?),
18997            )),
18998            TypeVariant::LedgerKeyLiquidityPool => Ok(Self::LedgerKeyLiquidityPool(Box::new(
18999                LedgerKeyLiquidityPool::arbitrary(u)?,
19000            ))),
19001            TypeVariant::LedgerKeyContractData => Ok(Self::LedgerKeyContractData(Box::new(
19002                LedgerKeyContractData::arbitrary(u)?,
19003            ))),
19004            TypeVariant::LedgerKeyContractCode => Ok(Self::LedgerKeyContractCode(Box::new(
19005                LedgerKeyContractCode::arbitrary(u)?,
19006            ))),
19007            TypeVariant::LedgerKeyConfigSetting => Ok(Self::LedgerKeyConfigSetting(Box::new(
19008                LedgerKeyConfigSetting::arbitrary(u)?,
19009            ))),
19010            TypeVariant::LedgerKeyTtl => {
19011                Ok(Self::LedgerKeyTtl(Box::new(LedgerKeyTtl::arbitrary(u)?)))
19012            }
19013            TypeVariant::EnvelopeType => {
19014                Ok(Self::EnvelopeType(Box::new(EnvelopeType::arbitrary(u)?)))
19015            }
19016            TypeVariant::BucketListType => Ok(Self::BucketListType(Box::new(
19017                BucketListType::arbitrary(u)?,
19018            ))),
19019            TypeVariant::BucketEntryType => Ok(Self::BucketEntryType(Box::new(
19020                BucketEntryType::arbitrary(u)?,
19021            ))),
19022            TypeVariant::HotArchiveBucketEntryType => Ok(Self::HotArchiveBucketEntryType(
19023                Box::new(HotArchiveBucketEntryType::arbitrary(u)?),
19024            )),
19025            TypeVariant::BucketMetadata => Ok(Self::BucketMetadata(Box::new(
19026                BucketMetadata::arbitrary(u)?,
19027            ))),
19028            TypeVariant::BucketMetadataExt => Ok(Self::BucketMetadataExt(Box::new(
19029                BucketMetadataExt::arbitrary(u)?,
19030            ))),
19031            TypeVariant::BucketEntry => Ok(Self::BucketEntry(Box::new(BucketEntry::arbitrary(u)?))),
19032            TypeVariant::HotArchiveBucketEntry => Ok(Self::HotArchiveBucketEntry(Box::new(
19033                HotArchiveBucketEntry::arbitrary(u)?,
19034            ))),
19035            TypeVariant::UpgradeType => Ok(Self::UpgradeType(Box::new(UpgradeType::arbitrary(u)?))),
19036            TypeVariant::StellarValueType => Ok(Self::StellarValueType(Box::new(
19037                StellarValueType::arbitrary(u)?,
19038            ))),
19039            TypeVariant::LedgerCloseValueSignature => Ok(Self::LedgerCloseValueSignature(
19040                Box::new(LedgerCloseValueSignature::arbitrary(u)?),
19041            )),
19042            TypeVariant::StellarValue => {
19043                Ok(Self::StellarValue(Box::new(StellarValue::arbitrary(u)?)))
19044            }
19045            TypeVariant::StellarValueExt => Ok(Self::StellarValueExt(Box::new(
19046                StellarValueExt::arbitrary(u)?,
19047            ))),
19048            TypeVariant::StellarValueProposedValue => Ok(Self::StellarValueProposedValue(
19049                Box::new(StellarValueProposedValue::arbitrary(u)?),
19050            )),
19051            TypeVariant::LedgerHeaderFlags => Ok(Self::LedgerHeaderFlags(Box::new(
19052                LedgerHeaderFlags::arbitrary(u)?,
19053            ))),
19054            TypeVariant::LedgerHeaderExtensionV1 => Ok(Self::LedgerHeaderExtensionV1(Box::new(
19055                LedgerHeaderExtensionV1::arbitrary(u)?,
19056            ))),
19057            TypeVariant::LedgerHeaderExtensionV1Ext => Ok(Self::LedgerHeaderExtensionV1Ext(
19058                Box::new(LedgerHeaderExtensionV1Ext::arbitrary(u)?),
19059            )),
19060            TypeVariant::LedgerHeader => {
19061                Ok(Self::LedgerHeader(Box::new(LedgerHeader::arbitrary(u)?)))
19062            }
19063            TypeVariant::LedgerHeaderExt => Ok(Self::LedgerHeaderExt(Box::new(
19064                LedgerHeaderExt::arbitrary(u)?,
19065            ))),
19066            TypeVariant::LedgerUpgradeType => Ok(Self::LedgerUpgradeType(Box::new(
19067                LedgerUpgradeType::arbitrary(u)?,
19068            ))),
19069            TypeVariant::ConfigUpgradeSetKey => Ok(Self::ConfigUpgradeSetKey(Box::new(
19070                ConfigUpgradeSetKey::arbitrary(u)?,
19071            ))),
19072            TypeVariant::LedgerUpgrade => {
19073                Ok(Self::LedgerUpgrade(Box::new(LedgerUpgrade::arbitrary(u)?)))
19074            }
19075            TypeVariant::ConfigUpgradeSet => Ok(Self::ConfigUpgradeSet(Box::new(
19076                ConfigUpgradeSet::arbitrary(u)?,
19077            ))),
19078            TypeVariant::TxSetComponentType => Ok(Self::TxSetComponentType(Box::new(
19079                TxSetComponentType::arbitrary(u)?,
19080            ))),
19081            TypeVariant::DependentTxCluster => Ok(Self::DependentTxCluster(Box::new(
19082                DependentTxCluster::arbitrary(u)?,
19083            ))),
19084            TypeVariant::ParallelTxExecutionStage => Ok(Self::ParallelTxExecutionStage(Box::new(
19085                ParallelTxExecutionStage::arbitrary(u)?,
19086            ))),
19087            TypeVariant::ParallelTxsComponent => Ok(Self::ParallelTxsComponent(Box::new(
19088                ParallelTxsComponent::arbitrary(u)?,
19089            ))),
19090            TypeVariant::TxSetComponent => Ok(Self::TxSetComponent(Box::new(
19091                TxSetComponent::arbitrary(u)?,
19092            ))),
19093            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
19094                Ok(Self::TxSetComponentTxsMaybeDiscountedFee(Box::new(
19095                    TxSetComponentTxsMaybeDiscountedFee::arbitrary(u)?,
19096                )))
19097            }
19098            TypeVariant::TransactionPhase => Ok(Self::TransactionPhase(Box::new(
19099                TransactionPhase::arbitrary(u)?,
19100            ))),
19101            TypeVariant::TransactionSet => Ok(Self::TransactionSet(Box::new(
19102                TransactionSet::arbitrary(u)?,
19103            ))),
19104            TypeVariant::TransactionSetV1 => Ok(Self::TransactionSetV1(Box::new(
19105                TransactionSetV1::arbitrary(u)?,
19106            ))),
19107            TypeVariant::GeneralizedTransactionSet => Ok(Self::GeneralizedTransactionSet(
19108                Box::new(GeneralizedTransactionSet::arbitrary(u)?),
19109            )),
19110            TypeVariant::TransactionResultPair => Ok(Self::TransactionResultPair(Box::new(
19111                TransactionResultPair::arbitrary(u)?,
19112            ))),
19113            TypeVariant::TransactionResultSet => Ok(Self::TransactionResultSet(Box::new(
19114                TransactionResultSet::arbitrary(u)?,
19115            ))),
19116            TypeVariant::TransactionHistoryEntry => Ok(Self::TransactionHistoryEntry(Box::new(
19117                TransactionHistoryEntry::arbitrary(u)?,
19118            ))),
19119            TypeVariant::TransactionHistoryEntryExt => Ok(Self::TransactionHistoryEntryExt(
19120                Box::new(TransactionHistoryEntryExt::arbitrary(u)?),
19121            )),
19122            TypeVariant::TransactionHistoryResultEntry => Ok(Self::TransactionHistoryResultEntry(
19123                Box::new(TransactionHistoryResultEntry::arbitrary(u)?),
19124            )),
19125            TypeVariant::TransactionHistoryResultEntryExt => {
19126                Ok(Self::TransactionHistoryResultEntryExt(Box::new(
19127                    TransactionHistoryResultEntryExt::arbitrary(u)?,
19128                )))
19129            }
19130            TypeVariant::LedgerHeaderHistoryEntry => Ok(Self::LedgerHeaderHistoryEntry(Box::new(
19131                LedgerHeaderHistoryEntry::arbitrary(u)?,
19132            ))),
19133            TypeVariant::LedgerHeaderHistoryEntryExt => Ok(Self::LedgerHeaderHistoryEntryExt(
19134                Box::new(LedgerHeaderHistoryEntryExt::arbitrary(u)?),
19135            )),
19136            TypeVariant::LedgerScpMessages => Ok(Self::LedgerScpMessages(Box::new(
19137                LedgerScpMessages::arbitrary(u)?,
19138            ))),
19139            TypeVariant::ScpHistoryEntryV0 => Ok(Self::ScpHistoryEntryV0(Box::new(
19140                ScpHistoryEntryV0::arbitrary(u)?,
19141            ))),
19142            TypeVariant::ScpHistoryEntry => Ok(Self::ScpHistoryEntry(Box::new(
19143                ScpHistoryEntry::arbitrary(u)?,
19144            ))),
19145            TypeVariant::LedgerEntryChangeType => Ok(Self::LedgerEntryChangeType(Box::new(
19146                LedgerEntryChangeType::arbitrary(u)?,
19147            ))),
19148            TypeVariant::LedgerEntryChange => Ok(Self::LedgerEntryChange(Box::new(
19149                LedgerEntryChange::arbitrary(u)?,
19150            ))),
19151            TypeVariant::LedgerEntryChanges => Ok(Self::LedgerEntryChanges(Box::new(
19152                LedgerEntryChanges::arbitrary(u)?,
19153            ))),
19154            TypeVariant::OperationMeta => {
19155                Ok(Self::OperationMeta(Box::new(OperationMeta::arbitrary(u)?)))
19156            }
19157            TypeVariant::TransactionMetaV1 => Ok(Self::TransactionMetaV1(Box::new(
19158                TransactionMetaV1::arbitrary(u)?,
19159            ))),
19160            TypeVariant::TransactionMetaV2 => Ok(Self::TransactionMetaV2(Box::new(
19161                TransactionMetaV2::arbitrary(u)?,
19162            ))),
19163            TypeVariant::ContractEventType => Ok(Self::ContractEventType(Box::new(
19164                ContractEventType::arbitrary(u)?,
19165            ))),
19166            TypeVariant::ContractEvent => {
19167                Ok(Self::ContractEvent(Box::new(ContractEvent::arbitrary(u)?)))
19168            }
19169            TypeVariant::ContractEventBody => Ok(Self::ContractEventBody(Box::new(
19170                ContractEventBody::arbitrary(u)?,
19171            ))),
19172            TypeVariant::ContractEventV0 => Ok(Self::ContractEventV0(Box::new(
19173                ContractEventV0::arbitrary(u)?,
19174            ))),
19175            TypeVariant::DiagnosticEvent => Ok(Self::DiagnosticEvent(Box::new(
19176                DiagnosticEvent::arbitrary(u)?,
19177            ))),
19178            TypeVariant::SorobanTransactionMetaExtV1 => Ok(Self::SorobanTransactionMetaExtV1(
19179                Box::new(SorobanTransactionMetaExtV1::arbitrary(u)?),
19180            )),
19181            TypeVariant::SorobanTransactionMetaExt => Ok(Self::SorobanTransactionMetaExt(
19182                Box::new(SorobanTransactionMetaExt::arbitrary(u)?),
19183            )),
19184            TypeVariant::SorobanTransactionMeta => Ok(Self::SorobanTransactionMeta(Box::new(
19185                SorobanTransactionMeta::arbitrary(u)?,
19186            ))),
19187            TypeVariant::TransactionMetaV3 => Ok(Self::TransactionMetaV3(Box::new(
19188                TransactionMetaV3::arbitrary(u)?,
19189            ))),
19190            TypeVariant::OperationMetaV2 => Ok(Self::OperationMetaV2(Box::new(
19191                OperationMetaV2::arbitrary(u)?,
19192            ))),
19193            TypeVariant::SorobanTransactionMetaV2 => Ok(Self::SorobanTransactionMetaV2(Box::new(
19194                SorobanTransactionMetaV2::arbitrary(u)?,
19195            ))),
19196            TypeVariant::TransactionEventStage => Ok(Self::TransactionEventStage(Box::new(
19197                TransactionEventStage::arbitrary(u)?,
19198            ))),
19199            TypeVariant::TransactionEvent => Ok(Self::TransactionEvent(Box::new(
19200                TransactionEvent::arbitrary(u)?,
19201            ))),
19202            TypeVariant::TransactionMetaV4 => Ok(Self::TransactionMetaV4(Box::new(
19203                TransactionMetaV4::arbitrary(u)?,
19204            ))),
19205            TypeVariant::InvokeHostFunctionSuccessPreImage => {
19206                Ok(Self::InvokeHostFunctionSuccessPreImage(Box::new(
19207                    InvokeHostFunctionSuccessPreImage::arbitrary(u)?,
19208                )))
19209            }
19210            TypeVariant::TransactionMeta => Ok(Self::TransactionMeta(Box::new(
19211                TransactionMeta::arbitrary(u)?,
19212            ))),
19213            TypeVariant::TransactionResultMeta => Ok(Self::TransactionResultMeta(Box::new(
19214                TransactionResultMeta::arbitrary(u)?,
19215            ))),
19216            TypeVariant::TransactionResultMetaV1 => Ok(Self::TransactionResultMetaV1(Box::new(
19217                TransactionResultMetaV1::arbitrary(u)?,
19218            ))),
19219            TypeVariant::UpgradeEntryMeta => Ok(Self::UpgradeEntryMeta(Box::new(
19220                UpgradeEntryMeta::arbitrary(u)?,
19221            ))),
19222            TypeVariant::LedgerCloseMetaV0 => Ok(Self::LedgerCloseMetaV0(Box::new(
19223                LedgerCloseMetaV0::arbitrary(u)?,
19224            ))),
19225            TypeVariant::LedgerCloseMetaExtV1 => Ok(Self::LedgerCloseMetaExtV1(Box::new(
19226                LedgerCloseMetaExtV1::arbitrary(u)?,
19227            ))),
19228            TypeVariant::LedgerCloseMetaExt => Ok(Self::LedgerCloseMetaExt(Box::new(
19229                LedgerCloseMetaExt::arbitrary(u)?,
19230            ))),
19231            TypeVariant::LedgerCloseMetaV1 => Ok(Self::LedgerCloseMetaV1(Box::new(
19232                LedgerCloseMetaV1::arbitrary(u)?,
19233            ))),
19234            TypeVariant::LedgerCloseMetaV2 => Ok(Self::LedgerCloseMetaV2(Box::new(
19235                LedgerCloseMetaV2::arbitrary(u)?,
19236            ))),
19237            TypeVariant::LedgerCloseMeta => Ok(Self::LedgerCloseMeta(Box::new(
19238                LedgerCloseMeta::arbitrary(u)?,
19239            ))),
19240            TypeVariant::ErrorCode => Ok(Self::ErrorCode(Box::new(ErrorCode::arbitrary(u)?))),
19241            TypeVariant::SError => Ok(Self::SError(Box::new(SError::arbitrary(u)?))),
19242            TypeVariant::SendMore => Ok(Self::SendMore(Box::new(SendMore::arbitrary(u)?))),
19243            TypeVariant::SendMoreExtended => Ok(Self::SendMoreExtended(Box::new(
19244                SendMoreExtended::arbitrary(u)?,
19245            ))),
19246            TypeVariant::AuthCert => Ok(Self::AuthCert(Box::new(AuthCert::arbitrary(u)?))),
19247            TypeVariant::Hello => Ok(Self::Hello(Box::new(Hello::arbitrary(u)?))),
19248            TypeVariant::Auth => Ok(Self::Auth(Box::new(Auth::arbitrary(u)?))),
19249            TypeVariant::IpAddrType => Ok(Self::IpAddrType(Box::new(IpAddrType::arbitrary(u)?))),
19250            TypeVariant::PeerAddress => Ok(Self::PeerAddress(Box::new(PeerAddress::arbitrary(u)?))),
19251            TypeVariant::PeerAddressIp => {
19252                Ok(Self::PeerAddressIp(Box::new(PeerAddressIp::arbitrary(u)?)))
19253            }
19254            TypeVariant::MessageType => Ok(Self::MessageType(Box::new(MessageType::arbitrary(u)?))),
19255            TypeVariant::DontHave => Ok(Self::DontHave(Box::new(DontHave::arbitrary(u)?))),
19256            TypeVariant::SurveyMessageCommandType => Ok(Self::SurveyMessageCommandType(Box::new(
19257                SurveyMessageCommandType::arbitrary(u)?,
19258            ))),
19259            TypeVariant::SurveyMessageResponseType => Ok(Self::SurveyMessageResponseType(
19260                Box::new(SurveyMessageResponseType::arbitrary(u)?),
19261            )),
19262            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
19263                Ok(Self::TimeSlicedSurveyStartCollectingMessage(Box::new(
19264                    TimeSlicedSurveyStartCollectingMessage::arbitrary(u)?,
19265                )))
19266            }
19267            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
19268                Ok(Self::SignedTimeSlicedSurveyStartCollectingMessage(
19269                    Box::new(SignedTimeSlicedSurveyStartCollectingMessage::arbitrary(u)?),
19270                ))
19271            }
19272            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
19273                Ok(Self::TimeSlicedSurveyStopCollectingMessage(Box::new(
19274                    TimeSlicedSurveyStopCollectingMessage::arbitrary(u)?,
19275                )))
19276            }
19277            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
19278                Ok(Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::new(
19279                    SignedTimeSlicedSurveyStopCollectingMessage::arbitrary(u)?,
19280                )))
19281            }
19282            TypeVariant::SurveyRequestMessage => Ok(Self::SurveyRequestMessage(Box::new(
19283                SurveyRequestMessage::arbitrary(u)?,
19284            ))),
19285            TypeVariant::TimeSlicedSurveyRequestMessage => {
19286                Ok(Self::TimeSlicedSurveyRequestMessage(Box::new(
19287                    TimeSlicedSurveyRequestMessage::arbitrary(u)?,
19288                )))
19289            }
19290            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
19291                Ok(Self::SignedTimeSlicedSurveyRequestMessage(Box::new(
19292                    SignedTimeSlicedSurveyRequestMessage::arbitrary(u)?,
19293                )))
19294            }
19295            TypeVariant::EncryptedBody => {
19296                Ok(Self::EncryptedBody(Box::new(EncryptedBody::arbitrary(u)?)))
19297            }
19298            TypeVariant::SurveyResponseMessage => Ok(Self::SurveyResponseMessage(Box::new(
19299                SurveyResponseMessage::arbitrary(u)?,
19300            ))),
19301            TypeVariant::TimeSlicedSurveyResponseMessage => {
19302                Ok(Self::TimeSlicedSurveyResponseMessage(Box::new(
19303                    TimeSlicedSurveyResponseMessage::arbitrary(u)?,
19304                )))
19305            }
19306            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
19307                Ok(Self::SignedTimeSlicedSurveyResponseMessage(Box::new(
19308                    SignedTimeSlicedSurveyResponseMessage::arbitrary(u)?,
19309                )))
19310            }
19311            TypeVariant::PeerStats => Ok(Self::PeerStats(Box::new(PeerStats::arbitrary(u)?))),
19312            TypeVariant::TimeSlicedNodeData => Ok(Self::TimeSlicedNodeData(Box::new(
19313                TimeSlicedNodeData::arbitrary(u)?,
19314            ))),
19315            TypeVariant::TimeSlicedPeerData => Ok(Self::TimeSlicedPeerData(Box::new(
19316                TimeSlicedPeerData::arbitrary(u)?,
19317            ))),
19318            TypeVariant::TimeSlicedPeerDataList => Ok(Self::TimeSlicedPeerDataList(Box::new(
19319                TimeSlicedPeerDataList::arbitrary(u)?,
19320            ))),
19321            TypeVariant::TopologyResponseBodyV2 => Ok(Self::TopologyResponseBodyV2(Box::new(
19322                TopologyResponseBodyV2::arbitrary(u)?,
19323            ))),
19324            TypeVariant::SurveyResponseBody => Ok(Self::SurveyResponseBody(Box::new(
19325                SurveyResponseBody::arbitrary(u)?,
19326            ))),
19327            TypeVariant::TxAdvertVector => Ok(Self::TxAdvertVector(Box::new(
19328                TxAdvertVector::arbitrary(u)?,
19329            ))),
19330            TypeVariant::FloodAdvert => Ok(Self::FloodAdvert(Box::new(FloodAdvert::arbitrary(u)?))),
19331            TypeVariant::TxDemandVector => Ok(Self::TxDemandVector(Box::new(
19332                TxDemandVector::arbitrary(u)?,
19333            ))),
19334            TypeVariant::FloodDemand => Ok(Self::FloodDemand(Box::new(FloodDemand::arbitrary(u)?))),
19335            TypeVariant::StellarMessage => Ok(Self::StellarMessage(Box::new(
19336                StellarMessage::arbitrary(u)?,
19337            ))),
19338            TypeVariant::AuthenticatedMessage => Ok(Self::AuthenticatedMessage(Box::new(
19339                AuthenticatedMessage::arbitrary(u)?,
19340            ))),
19341            TypeVariant::AuthenticatedMessageV0 => Ok(Self::AuthenticatedMessageV0(Box::new(
19342                AuthenticatedMessageV0::arbitrary(u)?,
19343            ))),
19344            TypeVariant::LiquidityPoolParameters => Ok(Self::LiquidityPoolParameters(Box::new(
19345                LiquidityPoolParameters::arbitrary(u)?,
19346            ))),
19347            TypeVariant::MuxedAccount => {
19348                Ok(Self::MuxedAccount(Box::new(MuxedAccount::arbitrary(u)?)))
19349            }
19350            TypeVariant::MuxedAccountMed25519 => Ok(Self::MuxedAccountMed25519(Box::new(
19351                MuxedAccountMed25519::arbitrary(u)?,
19352            ))),
19353            TypeVariant::DecoratedSignature => Ok(Self::DecoratedSignature(Box::new(
19354                DecoratedSignature::arbitrary(u)?,
19355            ))),
19356            TypeVariant::OperationType => {
19357                Ok(Self::OperationType(Box::new(OperationType::arbitrary(u)?)))
19358            }
19359            TypeVariant::CreateAccountOp => Ok(Self::CreateAccountOp(Box::new(
19360                CreateAccountOp::arbitrary(u)?,
19361            ))),
19362            TypeVariant::PaymentOp => Ok(Self::PaymentOp(Box::new(PaymentOp::arbitrary(u)?))),
19363            TypeVariant::PathPaymentStrictReceiveOp => Ok(Self::PathPaymentStrictReceiveOp(
19364                Box::new(PathPaymentStrictReceiveOp::arbitrary(u)?),
19365            )),
19366            TypeVariant::PathPaymentStrictSendOp => Ok(Self::PathPaymentStrictSendOp(Box::new(
19367                PathPaymentStrictSendOp::arbitrary(u)?,
19368            ))),
19369            TypeVariant::ManageSellOfferOp => Ok(Self::ManageSellOfferOp(Box::new(
19370                ManageSellOfferOp::arbitrary(u)?,
19371            ))),
19372            TypeVariant::ManageBuyOfferOp => Ok(Self::ManageBuyOfferOp(Box::new(
19373                ManageBuyOfferOp::arbitrary(u)?,
19374            ))),
19375            TypeVariant::CreatePassiveSellOfferOp => Ok(Self::CreatePassiveSellOfferOp(Box::new(
19376                CreatePassiveSellOfferOp::arbitrary(u)?,
19377            ))),
19378            TypeVariant::SetOptionsOp => {
19379                Ok(Self::SetOptionsOp(Box::new(SetOptionsOp::arbitrary(u)?)))
19380            }
19381            TypeVariant::ChangeTrustAsset => Ok(Self::ChangeTrustAsset(Box::new(
19382                ChangeTrustAsset::arbitrary(u)?,
19383            ))),
19384            TypeVariant::ChangeTrustOp => {
19385                Ok(Self::ChangeTrustOp(Box::new(ChangeTrustOp::arbitrary(u)?)))
19386            }
19387            TypeVariant::AllowTrustOp => {
19388                Ok(Self::AllowTrustOp(Box::new(AllowTrustOp::arbitrary(u)?)))
19389            }
19390            TypeVariant::ManageDataOp => {
19391                Ok(Self::ManageDataOp(Box::new(ManageDataOp::arbitrary(u)?)))
19392            }
19393            TypeVariant::BumpSequenceOp => Ok(Self::BumpSequenceOp(Box::new(
19394                BumpSequenceOp::arbitrary(u)?,
19395            ))),
19396            TypeVariant::CreateClaimableBalanceOp => Ok(Self::CreateClaimableBalanceOp(Box::new(
19397                CreateClaimableBalanceOp::arbitrary(u)?,
19398            ))),
19399            TypeVariant::ClaimClaimableBalanceOp => Ok(Self::ClaimClaimableBalanceOp(Box::new(
19400                ClaimClaimableBalanceOp::arbitrary(u)?,
19401            ))),
19402            TypeVariant::BeginSponsoringFutureReservesOp => {
19403                Ok(Self::BeginSponsoringFutureReservesOp(Box::new(
19404                    BeginSponsoringFutureReservesOp::arbitrary(u)?,
19405                )))
19406            }
19407            TypeVariant::RevokeSponsorshipType => Ok(Self::RevokeSponsorshipType(Box::new(
19408                RevokeSponsorshipType::arbitrary(u)?,
19409            ))),
19410            TypeVariant::RevokeSponsorshipOp => Ok(Self::RevokeSponsorshipOp(Box::new(
19411                RevokeSponsorshipOp::arbitrary(u)?,
19412            ))),
19413            TypeVariant::RevokeSponsorshipOpSigner => Ok(Self::RevokeSponsorshipOpSigner(
19414                Box::new(RevokeSponsorshipOpSigner::arbitrary(u)?),
19415            )),
19416            TypeVariant::ClawbackOp => Ok(Self::ClawbackOp(Box::new(ClawbackOp::arbitrary(u)?))),
19417            TypeVariant::ClawbackClaimableBalanceOp => Ok(Self::ClawbackClaimableBalanceOp(
19418                Box::new(ClawbackClaimableBalanceOp::arbitrary(u)?),
19419            )),
19420            TypeVariant::SetTrustLineFlagsOp => Ok(Self::SetTrustLineFlagsOp(Box::new(
19421                SetTrustLineFlagsOp::arbitrary(u)?,
19422            ))),
19423            TypeVariant::LiquidityPoolDepositOp => Ok(Self::LiquidityPoolDepositOp(Box::new(
19424                LiquidityPoolDepositOp::arbitrary(u)?,
19425            ))),
19426            TypeVariant::LiquidityPoolWithdrawOp => Ok(Self::LiquidityPoolWithdrawOp(Box::new(
19427                LiquidityPoolWithdrawOp::arbitrary(u)?,
19428            ))),
19429            TypeVariant::HostFunctionType => Ok(Self::HostFunctionType(Box::new(
19430                HostFunctionType::arbitrary(u)?,
19431            ))),
19432            TypeVariant::ContractIdPreimageType => Ok(Self::ContractIdPreimageType(Box::new(
19433                ContractIdPreimageType::arbitrary(u)?,
19434            ))),
19435            TypeVariant::ContractIdPreimage => Ok(Self::ContractIdPreimage(Box::new(
19436                ContractIdPreimage::arbitrary(u)?,
19437            ))),
19438            TypeVariant::ContractIdPreimageFromAddress => Ok(Self::ContractIdPreimageFromAddress(
19439                Box::new(ContractIdPreimageFromAddress::arbitrary(u)?),
19440            )),
19441            TypeVariant::CreateContractArgs => Ok(Self::CreateContractArgs(Box::new(
19442                CreateContractArgs::arbitrary(u)?,
19443            ))),
19444            TypeVariant::CreateContractArgsV2 => Ok(Self::CreateContractArgsV2(Box::new(
19445                CreateContractArgsV2::arbitrary(u)?,
19446            ))),
19447            TypeVariant::InvokeContractArgs => Ok(Self::InvokeContractArgs(Box::new(
19448                InvokeContractArgs::arbitrary(u)?,
19449            ))),
19450            TypeVariant::HostFunction => {
19451                Ok(Self::HostFunction(Box::new(HostFunction::arbitrary(u)?)))
19452            }
19453            TypeVariant::SorobanAuthorizedFunctionType => Ok(Self::SorobanAuthorizedFunctionType(
19454                Box::new(SorobanAuthorizedFunctionType::arbitrary(u)?),
19455            )),
19456            TypeVariant::SorobanAuthorizedFunction => Ok(Self::SorobanAuthorizedFunction(
19457                Box::new(SorobanAuthorizedFunction::arbitrary(u)?),
19458            )),
19459            TypeVariant::SorobanAuthorizedInvocation => Ok(Self::SorobanAuthorizedInvocation(
19460                Box::new(SorobanAuthorizedInvocation::arbitrary(u)?),
19461            )),
19462            TypeVariant::SorobanAddressCredentials => Ok(Self::SorobanAddressCredentials(
19463                Box::new(SorobanAddressCredentials::arbitrary(u)?),
19464            )),
19465            TypeVariant::SorobanDelegateSignature => Ok(Self::SorobanDelegateSignature(Box::new(
19466                SorobanDelegateSignature::arbitrary(u)?,
19467            ))),
19468            TypeVariant::SorobanAddressCredentialsWithDelegates => {
19469                Ok(Self::SorobanAddressCredentialsWithDelegates(Box::new(
19470                    SorobanAddressCredentialsWithDelegates::arbitrary(u)?,
19471                )))
19472            }
19473            TypeVariant::SorobanCredentialsType => Ok(Self::SorobanCredentialsType(Box::new(
19474                SorobanCredentialsType::arbitrary(u)?,
19475            ))),
19476            TypeVariant::SorobanCredentials => Ok(Self::SorobanCredentials(Box::new(
19477                SorobanCredentials::arbitrary(u)?,
19478            ))),
19479            TypeVariant::SorobanAuthorizationEntry => Ok(Self::SorobanAuthorizationEntry(
19480                Box::new(SorobanAuthorizationEntry::arbitrary(u)?),
19481            )),
19482            TypeVariant::SorobanAuthorizationEntries => Ok(Self::SorobanAuthorizationEntries(
19483                Box::new(SorobanAuthorizationEntries::arbitrary(u)?),
19484            )),
19485            TypeVariant::InvokeHostFunctionOp => Ok(Self::InvokeHostFunctionOp(Box::new(
19486                InvokeHostFunctionOp::arbitrary(u)?,
19487            ))),
19488            TypeVariant::ExtendFootprintTtlOp => Ok(Self::ExtendFootprintTtlOp(Box::new(
19489                ExtendFootprintTtlOp::arbitrary(u)?,
19490            ))),
19491            TypeVariant::RestoreFootprintOp => Ok(Self::RestoreFootprintOp(Box::new(
19492                RestoreFootprintOp::arbitrary(u)?,
19493            ))),
19494            TypeVariant::Operation => Ok(Self::Operation(Box::new(Operation::arbitrary(u)?))),
19495            TypeVariant::OperationBody => {
19496                Ok(Self::OperationBody(Box::new(OperationBody::arbitrary(u)?)))
19497            }
19498            TypeVariant::HashIdPreimage => Ok(Self::HashIdPreimage(Box::new(
19499                HashIdPreimage::arbitrary(u)?,
19500            ))),
19501            TypeVariant::HashIdPreimageOperationId => Ok(Self::HashIdPreimageOperationId(
19502                Box::new(HashIdPreimageOperationId::arbitrary(u)?),
19503            )),
19504            TypeVariant::HashIdPreimageRevokeId => Ok(Self::HashIdPreimageRevokeId(Box::new(
19505                HashIdPreimageRevokeId::arbitrary(u)?,
19506            ))),
19507            TypeVariant::HashIdPreimageContractId => Ok(Self::HashIdPreimageContractId(Box::new(
19508                HashIdPreimageContractId::arbitrary(u)?,
19509            ))),
19510            TypeVariant::HashIdPreimageSorobanAuthorization => {
19511                Ok(Self::HashIdPreimageSorobanAuthorization(Box::new(
19512                    HashIdPreimageSorobanAuthorization::arbitrary(u)?,
19513                )))
19514            }
19515            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
19516                Ok(Self::HashIdPreimageSorobanAuthorizationWithAddress(
19517                    Box::new(HashIdPreimageSorobanAuthorizationWithAddress::arbitrary(u)?),
19518                ))
19519            }
19520            TypeVariant::MemoType => Ok(Self::MemoType(Box::new(MemoType::arbitrary(u)?))),
19521            TypeVariant::Memo => Ok(Self::Memo(Box::new(Memo::arbitrary(u)?))),
19522            TypeVariant::TimeBounds => Ok(Self::TimeBounds(Box::new(TimeBounds::arbitrary(u)?))),
19523            TypeVariant::LedgerBounds => {
19524                Ok(Self::LedgerBounds(Box::new(LedgerBounds::arbitrary(u)?)))
19525            }
19526            TypeVariant::PreconditionsV2 => Ok(Self::PreconditionsV2(Box::new(
19527                PreconditionsV2::arbitrary(u)?,
19528            ))),
19529            TypeVariant::PreconditionType => Ok(Self::PreconditionType(Box::new(
19530                PreconditionType::arbitrary(u)?,
19531            ))),
19532            TypeVariant::Preconditions => {
19533                Ok(Self::Preconditions(Box::new(Preconditions::arbitrary(u)?)))
19534            }
19535            TypeVariant::LedgerFootprint => Ok(Self::LedgerFootprint(Box::new(
19536                LedgerFootprint::arbitrary(u)?,
19537            ))),
19538            TypeVariant::SorobanResources => Ok(Self::SorobanResources(Box::new(
19539                SorobanResources::arbitrary(u)?,
19540            ))),
19541            TypeVariant::SorobanResourcesExtV0 => Ok(Self::SorobanResourcesExtV0(Box::new(
19542                SorobanResourcesExtV0::arbitrary(u)?,
19543            ))),
19544            TypeVariant::SorobanTransactionData => Ok(Self::SorobanTransactionData(Box::new(
19545                SorobanTransactionData::arbitrary(u)?,
19546            ))),
19547            TypeVariant::SorobanTransactionDataExt => Ok(Self::SorobanTransactionDataExt(
19548                Box::new(SorobanTransactionDataExt::arbitrary(u)?),
19549            )),
19550            TypeVariant::TransactionV0 => {
19551                Ok(Self::TransactionV0(Box::new(TransactionV0::arbitrary(u)?)))
19552            }
19553            TypeVariant::TransactionV0Ext => Ok(Self::TransactionV0Ext(Box::new(
19554                TransactionV0Ext::arbitrary(u)?,
19555            ))),
19556            TypeVariant::TransactionV0Envelope => Ok(Self::TransactionV0Envelope(Box::new(
19557                TransactionV0Envelope::arbitrary(u)?,
19558            ))),
19559            TypeVariant::Transaction => Ok(Self::Transaction(Box::new(Transaction::arbitrary(u)?))),
19560            TypeVariant::TransactionExt => Ok(Self::TransactionExt(Box::new(
19561                TransactionExt::arbitrary(u)?,
19562            ))),
19563            TypeVariant::TransactionV1Envelope => Ok(Self::TransactionV1Envelope(Box::new(
19564                TransactionV1Envelope::arbitrary(u)?,
19565            ))),
19566            TypeVariant::FeeBumpTransaction => Ok(Self::FeeBumpTransaction(Box::new(
19567                FeeBumpTransaction::arbitrary(u)?,
19568            ))),
19569            TypeVariant::FeeBumpTransactionInnerTx => Ok(Self::FeeBumpTransactionInnerTx(
19570                Box::new(FeeBumpTransactionInnerTx::arbitrary(u)?),
19571            )),
19572            TypeVariant::FeeBumpTransactionExt => Ok(Self::FeeBumpTransactionExt(Box::new(
19573                FeeBumpTransactionExt::arbitrary(u)?,
19574            ))),
19575            TypeVariant::FeeBumpTransactionEnvelope => Ok(Self::FeeBumpTransactionEnvelope(
19576                Box::new(FeeBumpTransactionEnvelope::arbitrary(u)?),
19577            )),
19578            TypeVariant::TransactionEnvelope => Ok(Self::TransactionEnvelope(Box::new(
19579                TransactionEnvelope::arbitrary(u)?,
19580            ))),
19581            TypeVariant::TransactionSignaturePayload => Ok(Self::TransactionSignaturePayload(
19582                Box::new(TransactionSignaturePayload::arbitrary(u)?),
19583            )),
19584            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
19585                Ok(Self::TransactionSignaturePayloadTaggedTransaction(
19586                    Box::new(TransactionSignaturePayloadTaggedTransaction::arbitrary(u)?),
19587                ))
19588            }
19589            TypeVariant::ClaimAtomType => {
19590                Ok(Self::ClaimAtomType(Box::new(ClaimAtomType::arbitrary(u)?)))
19591            }
19592            TypeVariant::ClaimOfferAtomV0 => Ok(Self::ClaimOfferAtomV0(Box::new(
19593                ClaimOfferAtomV0::arbitrary(u)?,
19594            ))),
19595            TypeVariant::ClaimOfferAtom => Ok(Self::ClaimOfferAtom(Box::new(
19596                ClaimOfferAtom::arbitrary(u)?,
19597            ))),
19598            TypeVariant::ClaimLiquidityAtom => Ok(Self::ClaimLiquidityAtom(Box::new(
19599                ClaimLiquidityAtom::arbitrary(u)?,
19600            ))),
19601            TypeVariant::ClaimAtom => Ok(Self::ClaimAtom(Box::new(ClaimAtom::arbitrary(u)?))),
19602            TypeVariant::CreateAccountResultCode => Ok(Self::CreateAccountResultCode(Box::new(
19603                CreateAccountResultCode::arbitrary(u)?,
19604            ))),
19605            TypeVariant::CreateAccountResult => Ok(Self::CreateAccountResult(Box::new(
19606                CreateAccountResult::arbitrary(u)?,
19607            ))),
19608            TypeVariant::PaymentResultCode => Ok(Self::PaymentResultCode(Box::new(
19609                PaymentResultCode::arbitrary(u)?,
19610            ))),
19611            TypeVariant::PaymentResult => {
19612                Ok(Self::PaymentResult(Box::new(PaymentResult::arbitrary(u)?)))
19613            }
19614            TypeVariant::PathPaymentStrictReceiveResultCode => {
19615                Ok(Self::PathPaymentStrictReceiveResultCode(Box::new(
19616                    PathPaymentStrictReceiveResultCode::arbitrary(u)?,
19617                )))
19618            }
19619            TypeVariant::SimplePaymentResult => Ok(Self::SimplePaymentResult(Box::new(
19620                SimplePaymentResult::arbitrary(u)?,
19621            ))),
19622            TypeVariant::PathPaymentStrictReceiveResult => {
19623                Ok(Self::PathPaymentStrictReceiveResult(Box::new(
19624                    PathPaymentStrictReceiveResult::arbitrary(u)?,
19625                )))
19626            }
19627            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
19628                Ok(Self::PathPaymentStrictReceiveResultSuccess(Box::new(
19629                    PathPaymentStrictReceiveResultSuccess::arbitrary(u)?,
19630                )))
19631            }
19632            TypeVariant::PathPaymentStrictSendResultCode => {
19633                Ok(Self::PathPaymentStrictSendResultCode(Box::new(
19634                    PathPaymentStrictSendResultCode::arbitrary(u)?,
19635                )))
19636            }
19637            TypeVariant::PathPaymentStrictSendResult => Ok(Self::PathPaymentStrictSendResult(
19638                Box::new(PathPaymentStrictSendResult::arbitrary(u)?),
19639            )),
19640            TypeVariant::PathPaymentStrictSendResultSuccess => {
19641                Ok(Self::PathPaymentStrictSendResultSuccess(Box::new(
19642                    PathPaymentStrictSendResultSuccess::arbitrary(u)?,
19643                )))
19644            }
19645            TypeVariant::ManageSellOfferResultCode => Ok(Self::ManageSellOfferResultCode(
19646                Box::new(ManageSellOfferResultCode::arbitrary(u)?),
19647            )),
19648            TypeVariant::ManageOfferEffect => Ok(Self::ManageOfferEffect(Box::new(
19649                ManageOfferEffect::arbitrary(u)?,
19650            ))),
19651            TypeVariant::ManageOfferSuccessResult => Ok(Self::ManageOfferSuccessResult(Box::new(
19652                ManageOfferSuccessResult::arbitrary(u)?,
19653            ))),
19654            TypeVariant::ManageOfferSuccessResultOffer => Ok(Self::ManageOfferSuccessResultOffer(
19655                Box::new(ManageOfferSuccessResultOffer::arbitrary(u)?),
19656            )),
19657            TypeVariant::ManageSellOfferResult => Ok(Self::ManageSellOfferResult(Box::new(
19658                ManageSellOfferResult::arbitrary(u)?,
19659            ))),
19660            TypeVariant::ManageBuyOfferResultCode => Ok(Self::ManageBuyOfferResultCode(Box::new(
19661                ManageBuyOfferResultCode::arbitrary(u)?,
19662            ))),
19663            TypeVariant::ManageBuyOfferResult => Ok(Self::ManageBuyOfferResult(Box::new(
19664                ManageBuyOfferResult::arbitrary(u)?,
19665            ))),
19666            TypeVariant::SetOptionsResultCode => Ok(Self::SetOptionsResultCode(Box::new(
19667                SetOptionsResultCode::arbitrary(u)?,
19668            ))),
19669            TypeVariant::SetOptionsResult => Ok(Self::SetOptionsResult(Box::new(
19670                SetOptionsResult::arbitrary(u)?,
19671            ))),
19672            TypeVariant::ChangeTrustResultCode => Ok(Self::ChangeTrustResultCode(Box::new(
19673                ChangeTrustResultCode::arbitrary(u)?,
19674            ))),
19675            TypeVariant::ChangeTrustResult => Ok(Self::ChangeTrustResult(Box::new(
19676                ChangeTrustResult::arbitrary(u)?,
19677            ))),
19678            TypeVariant::AllowTrustResultCode => Ok(Self::AllowTrustResultCode(Box::new(
19679                AllowTrustResultCode::arbitrary(u)?,
19680            ))),
19681            TypeVariant::AllowTrustResult => Ok(Self::AllowTrustResult(Box::new(
19682                AllowTrustResult::arbitrary(u)?,
19683            ))),
19684            TypeVariant::AccountMergeResultCode => Ok(Self::AccountMergeResultCode(Box::new(
19685                AccountMergeResultCode::arbitrary(u)?,
19686            ))),
19687            TypeVariant::AccountMergeResult => Ok(Self::AccountMergeResult(Box::new(
19688                AccountMergeResult::arbitrary(u)?,
19689            ))),
19690            TypeVariant::InflationResultCode => Ok(Self::InflationResultCode(Box::new(
19691                InflationResultCode::arbitrary(u)?,
19692            ))),
19693            TypeVariant::InflationPayout => Ok(Self::InflationPayout(Box::new(
19694                InflationPayout::arbitrary(u)?,
19695            ))),
19696            TypeVariant::InflationResult => Ok(Self::InflationResult(Box::new(
19697                InflationResult::arbitrary(u)?,
19698            ))),
19699            TypeVariant::ManageDataResultCode => Ok(Self::ManageDataResultCode(Box::new(
19700                ManageDataResultCode::arbitrary(u)?,
19701            ))),
19702            TypeVariant::ManageDataResult => Ok(Self::ManageDataResult(Box::new(
19703                ManageDataResult::arbitrary(u)?,
19704            ))),
19705            TypeVariant::BumpSequenceResultCode => Ok(Self::BumpSequenceResultCode(Box::new(
19706                BumpSequenceResultCode::arbitrary(u)?,
19707            ))),
19708            TypeVariant::BumpSequenceResult => Ok(Self::BumpSequenceResult(Box::new(
19709                BumpSequenceResult::arbitrary(u)?,
19710            ))),
19711            TypeVariant::CreateClaimableBalanceResultCode => {
19712                Ok(Self::CreateClaimableBalanceResultCode(Box::new(
19713                    CreateClaimableBalanceResultCode::arbitrary(u)?,
19714                )))
19715            }
19716            TypeVariant::CreateClaimableBalanceResult => Ok(Self::CreateClaimableBalanceResult(
19717                Box::new(CreateClaimableBalanceResult::arbitrary(u)?),
19718            )),
19719            TypeVariant::ClaimClaimableBalanceResultCode => {
19720                Ok(Self::ClaimClaimableBalanceResultCode(Box::new(
19721                    ClaimClaimableBalanceResultCode::arbitrary(u)?,
19722                )))
19723            }
19724            TypeVariant::ClaimClaimableBalanceResult => Ok(Self::ClaimClaimableBalanceResult(
19725                Box::new(ClaimClaimableBalanceResult::arbitrary(u)?),
19726            )),
19727            TypeVariant::BeginSponsoringFutureReservesResultCode => {
19728                Ok(Self::BeginSponsoringFutureReservesResultCode(Box::new(
19729                    BeginSponsoringFutureReservesResultCode::arbitrary(u)?,
19730                )))
19731            }
19732            TypeVariant::BeginSponsoringFutureReservesResult => {
19733                Ok(Self::BeginSponsoringFutureReservesResult(Box::new(
19734                    BeginSponsoringFutureReservesResult::arbitrary(u)?,
19735                )))
19736            }
19737            TypeVariant::EndSponsoringFutureReservesResultCode => {
19738                Ok(Self::EndSponsoringFutureReservesResultCode(Box::new(
19739                    EndSponsoringFutureReservesResultCode::arbitrary(u)?,
19740                )))
19741            }
19742            TypeVariant::EndSponsoringFutureReservesResult => {
19743                Ok(Self::EndSponsoringFutureReservesResult(Box::new(
19744                    EndSponsoringFutureReservesResult::arbitrary(u)?,
19745                )))
19746            }
19747            TypeVariant::RevokeSponsorshipResultCode => Ok(Self::RevokeSponsorshipResultCode(
19748                Box::new(RevokeSponsorshipResultCode::arbitrary(u)?),
19749            )),
19750            TypeVariant::RevokeSponsorshipResult => Ok(Self::RevokeSponsorshipResult(Box::new(
19751                RevokeSponsorshipResult::arbitrary(u)?,
19752            ))),
19753            TypeVariant::ClawbackResultCode => Ok(Self::ClawbackResultCode(Box::new(
19754                ClawbackResultCode::arbitrary(u)?,
19755            ))),
19756            TypeVariant::ClawbackResult => Ok(Self::ClawbackResult(Box::new(
19757                ClawbackResult::arbitrary(u)?,
19758            ))),
19759            TypeVariant::ClawbackClaimableBalanceResultCode => {
19760                Ok(Self::ClawbackClaimableBalanceResultCode(Box::new(
19761                    ClawbackClaimableBalanceResultCode::arbitrary(u)?,
19762                )))
19763            }
19764            TypeVariant::ClawbackClaimableBalanceResult => {
19765                Ok(Self::ClawbackClaimableBalanceResult(Box::new(
19766                    ClawbackClaimableBalanceResult::arbitrary(u)?,
19767                )))
19768            }
19769            TypeVariant::SetTrustLineFlagsResultCode => Ok(Self::SetTrustLineFlagsResultCode(
19770                Box::new(SetTrustLineFlagsResultCode::arbitrary(u)?),
19771            )),
19772            TypeVariant::SetTrustLineFlagsResult => Ok(Self::SetTrustLineFlagsResult(Box::new(
19773                SetTrustLineFlagsResult::arbitrary(u)?,
19774            ))),
19775            TypeVariant::LiquidityPoolDepositResultCode => {
19776                Ok(Self::LiquidityPoolDepositResultCode(Box::new(
19777                    LiquidityPoolDepositResultCode::arbitrary(u)?,
19778                )))
19779            }
19780            TypeVariant::LiquidityPoolDepositResult => Ok(Self::LiquidityPoolDepositResult(
19781                Box::new(LiquidityPoolDepositResult::arbitrary(u)?),
19782            )),
19783            TypeVariant::LiquidityPoolWithdrawResultCode => {
19784                Ok(Self::LiquidityPoolWithdrawResultCode(Box::new(
19785                    LiquidityPoolWithdrawResultCode::arbitrary(u)?,
19786                )))
19787            }
19788            TypeVariant::LiquidityPoolWithdrawResult => Ok(Self::LiquidityPoolWithdrawResult(
19789                Box::new(LiquidityPoolWithdrawResult::arbitrary(u)?),
19790            )),
19791            TypeVariant::InvokeHostFunctionResultCode => Ok(Self::InvokeHostFunctionResultCode(
19792                Box::new(InvokeHostFunctionResultCode::arbitrary(u)?),
19793            )),
19794            TypeVariant::InvokeHostFunctionResult => Ok(Self::InvokeHostFunctionResult(Box::new(
19795                InvokeHostFunctionResult::arbitrary(u)?,
19796            ))),
19797            TypeVariant::ExtendFootprintTtlResultCode => Ok(Self::ExtendFootprintTtlResultCode(
19798                Box::new(ExtendFootprintTtlResultCode::arbitrary(u)?),
19799            )),
19800            TypeVariant::ExtendFootprintTtlResult => Ok(Self::ExtendFootprintTtlResult(Box::new(
19801                ExtendFootprintTtlResult::arbitrary(u)?,
19802            ))),
19803            TypeVariant::RestoreFootprintResultCode => Ok(Self::RestoreFootprintResultCode(
19804                Box::new(RestoreFootprintResultCode::arbitrary(u)?),
19805            )),
19806            TypeVariant::RestoreFootprintResult => Ok(Self::RestoreFootprintResult(Box::new(
19807                RestoreFootprintResult::arbitrary(u)?,
19808            ))),
19809            TypeVariant::OperationResultCode => Ok(Self::OperationResultCode(Box::new(
19810                OperationResultCode::arbitrary(u)?,
19811            ))),
19812            TypeVariant::OperationResult => Ok(Self::OperationResult(Box::new(
19813                OperationResult::arbitrary(u)?,
19814            ))),
19815            TypeVariant::OperationResultTr => Ok(Self::OperationResultTr(Box::new(
19816                OperationResultTr::arbitrary(u)?,
19817            ))),
19818            TypeVariant::TransactionResultCode => Ok(Self::TransactionResultCode(Box::new(
19819                TransactionResultCode::arbitrary(u)?,
19820            ))),
19821            TypeVariant::InnerTransactionResult => Ok(Self::InnerTransactionResult(Box::new(
19822                InnerTransactionResult::arbitrary(u)?,
19823            ))),
19824            TypeVariant::InnerTransactionResultResult => Ok(Self::InnerTransactionResultResult(
19825                Box::new(InnerTransactionResultResult::arbitrary(u)?),
19826            )),
19827            TypeVariant::InnerTransactionResultExt => Ok(Self::InnerTransactionResultExt(
19828                Box::new(InnerTransactionResultExt::arbitrary(u)?),
19829            )),
19830            TypeVariant::InnerTransactionResultPair => Ok(Self::InnerTransactionResultPair(
19831                Box::new(InnerTransactionResultPair::arbitrary(u)?),
19832            )),
19833            TypeVariant::TransactionResult => Ok(Self::TransactionResult(Box::new(
19834                TransactionResult::arbitrary(u)?,
19835            ))),
19836            TypeVariant::TransactionResultResult => Ok(Self::TransactionResultResult(Box::new(
19837                TransactionResultResult::arbitrary(u)?,
19838            ))),
19839            TypeVariant::TransactionResultExt => Ok(Self::TransactionResultExt(Box::new(
19840                TransactionResultExt::arbitrary(u)?,
19841            ))),
19842            TypeVariant::Hash => Ok(Self::Hash(Box::new(Hash::arbitrary(u)?))),
19843            TypeVariant::Uint256 => Ok(Self::Uint256(Box::new(Uint256::arbitrary(u)?))),
19844            TypeVariant::Uint32 => Ok(Self::Uint32(Box::new(Uint32::arbitrary(u)?))),
19845            TypeVariant::Int32 => Ok(Self::Int32(Box::new(Int32::arbitrary(u)?))),
19846            TypeVariant::Uint64 => Ok(Self::Uint64(Box::new(Uint64::arbitrary(u)?))),
19847            TypeVariant::Int64 => Ok(Self::Int64(Box::new(Int64::arbitrary(u)?))),
19848            TypeVariant::TimePoint => Ok(Self::TimePoint(Box::new(TimePoint::arbitrary(u)?))),
19849            TypeVariant::Duration => Ok(Self::Duration(Box::new(Duration::arbitrary(u)?))),
19850            TypeVariant::ExtensionPoint => Ok(Self::ExtensionPoint(Box::new(
19851                ExtensionPoint::arbitrary(u)?,
19852            ))),
19853            TypeVariant::CryptoKeyType => {
19854                Ok(Self::CryptoKeyType(Box::new(CryptoKeyType::arbitrary(u)?)))
19855            }
19856            TypeVariant::PublicKeyType => {
19857                Ok(Self::PublicKeyType(Box::new(PublicKeyType::arbitrary(u)?)))
19858            }
19859            TypeVariant::SignerKeyType => {
19860                Ok(Self::SignerKeyType(Box::new(SignerKeyType::arbitrary(u)?)))
19861            }
19862            TypeVariant::PublicKey => Ok(Self::PublicKey(Box::new(PublicKey::arbitrary(u)?))),
19863            TypeVariant::SignerKey => Ok(Self::SignerKey(Box::new(SignerKey::arbitrary(u)?))),
19864            TypeVariant::SignerKeyEd25519SignedPayload => Ok(Self::SignerKeyEd25519SignedPayload(
19865                Box::new(SignerKeyEd25519SignedPayload::arbitrary(u)?),
19866            )),
19867            TypeVariant::Signature => Ok(Self::Signature(Box::new(Signature::arbitrary(u)?))),
19868            TypeVariant::SignatureHint => {
19869                Ok(Self::SignatureHint(Box::new(SignatureHint::arbitrary(u)?)))
19870            }
19871            TypeVariant::NodeId => Ok(Self::NodeId(Box::new(NodeId::arbitrary(u)?))),
19872            TypeVariant::AccountId => Ok(Self::AccountId(Box::new(AccountId::arbitrary(u)?))),
19873            TypeVariant::ContractId => Ok(Self::ContractId(Box::new(ContractId::arbitrary(u)?))),
19874            TypeVariant::Curve25519Secret => Ok(Self::Curve25519Secret(Box::new(
19875                Curve25519Secret::arbitrary(u)?,
19876            ))),
19877            TypeVariant::Curve25519Public => Ok(Self::Curve25519Public(Box::new(
19878                Curve25519Public::arbitrary(u)?,
19879            ))),
19880            TypeVariant::HmacSha256Key => {
19881                Ok(Self::HmacSha256Key(Box::new(HmacSha256Key::arbitrary(u)?)))
19882            }
19883            TypeVariant::HmacSha256Mac => {
19884                Ok(Self::HmacSha256Mac(Box::new(HmacSha256Mac::arbitrary(u)?)))
19885            }
19886            TypeVariant::ShortHashSeed => {
19887                Ok(Self::ShortHashSeed(Box::new(ShortHashSeed::arbitrary(u)?)))
19888            }
19889            TypeVariant::BinaryFuseFilterType => Ok(Self::BinaryFuseFilterType(Box::new(
19890                BinaryFuseFilterType::arbitrary(u)?,
19891            ))),
19892            TypeVariant::SerializedBinaryFuseFilter => Ok(Self::SerializedBinaryFuseFilter(
19893                Box::new(SerializedBinaryFuseFilter::arbitrary(u)?),
19894            )),
19895            TypeVariant::PoolId => Ok(Self::PoolId(Box::new(PoolId::arbitrary(u)?))),
19896            TypeVariant::ClaimableBalanceIdType => Ok(Self::ClaimableBalanceIdType(Box::new(
19897                ClaimableBalanceIdType::arbitrary(u)?,
19898            ))),
19899            TypeVariant::ClaimableBalanceId => Ok(Self::ClaimableBalanceId(Box::new(
19900                ClaimableBalanceId::arbitrary(u)?,
19901            ))),
19902            #[cfg(feature = "test_feature")]
19903            TypeVariant::TestNextType => {
19904                Ok(Self::TestNextType(Box::new(TestNextType::arbitrary(u)?)))
19905            }
19906        }
19907    }
19908
19909    #[cfg(feature = "alloc")]
19910    #[must_use]
19911    #[allow(clippy::too_many_lines)]
19912    pub fn default(v: TypeVariant) -> Self {
19913        match v {
19914            TypeVariant::Value => Self::Value(Box::default()),
19915            TypeVariant::ScpBallot => Self::ScpBallot(Box::default()),
19916            TypeVariant::ScpStatementType => Self::ScpStatementType(Box::default()),
19917            TypeVariant::ScpNomination => Self::ScpNomination(Box::default()),
19918            TypeVariant::ScpStatement => Self::ScpStatement(Box::default()),
19919            TypeVariant::ScpStatementPledges => Self::ScpStatementPledges(Box::default()),
19920            TypeVariant::ScpStatementPrepare => Self::ScpStatementPrepare(Box::default()),
19921            TypeVariant::ScpStatementConfirm => Self::ScpStatementConfirm(Box::default()),
19922            TypeVariant::ScpStatementExternalize => Self::ScpStatementExternalize(Box::default()),
19923            TypeVariant::ScpEnvelope => Self::ScpEnvelope(Box::default()),
19924            TypeVariant::ScpQuorumSet => Self::ScpQuorumSet(Box::default()),
19925            TypeVariant::EncodedLedgerKey => Self::EncodedLedgerKey(Box::default()),
19926            TypeVariant::ConfigSettingContractExecutionLanesV0 => {
19927                Self::ConfigSettingContractExecutionLanesV0(Box::default())
19928            }
19929            TypeVariant::ConfigSettingContractComputeV0 => {
19930                Self::ConfigSettingContractComputeV0(Box::default())
19931            }
19932            TypeVariant::ConfigSettingContractParallelComputeV0 => {
19933                Self::ConfigSettingContractParallelComputeV0(Box::default())
19934            }
19935            TypeVariant::ConfigSettingContractLedgerCostV0 => {
19936                Self::ConfigSettingContractLedgerCostV0(Box::default())
19937            }
19938            TypeVariant::ConfigSettingContractLedgerCostExtV0 => {
19939                Self::ConfigSettingContractLedgerCostExtV0(Box::default())
19940            }
19941            TypeVariant::ConfigSettingContractHistoricalDataV0 => {
19942                Self::ConfigSettingContractHistoricalDataV0(Box::default())
19943            }
19944            TypeVariant::ConfigSettingContractEventsV0 => {
19945                Self::ConfigSettingContractEventsV0(Box::default())
19946            }
19947            TypeVariant::ConfigSettingContractBandwidthV0 => {
19948                Self::ConfigSettingContractBandwidthV0(Box::default())
19949            }
19950            TypeVariant::ContractCostType => Self::ContractCostType(Box::default()),
19951            TypeVariant::ContractCostParamEntry => Self::ContractCostParamEntry(Box::default()),
19952            TypeVariant::StateArchivalSettings => Self::StateArchivalSettings(Box::default()),
19953            TypeVariant::EvictionIterator => Self::EvictionIterator(Box::default()),
19954            TypeVariant::ConfigSettingScpTiming => Self::ConfigSettingScpTiming(Box::default()),
19955            TypeVariant::FrozenLedgerKeys => Self::FrozenLedgerKeys(Box::default()),
19956            TypeVariant::FrozenLedgerKeysDelta => Self::FrozenLedgerKeysDelta(Box::default()),
19957            TypeVariant::FreezeBypassTxs => Self::FreezeBypassTxs(Box::default()),
19958            TypeVariant::FreezeBypassTxsDelta => Self::FreezeBypassTxsDelta(Box::default()),
19959            TypeVariant::ContractCostParams => Self::ContractCostParams(Box::default()),
19960            TypeVariant::ConfigSettingId => Self::ConfigSettingId(Box::default()),
19961            TypeVariant::ConfigSettingEntry => Self::ConfigSettingEntry(Box::default()),
19962            TypeVariant::ScEnvMetaKind => Self::ScEnvMetaKind(Box::default()),
19963            TypeVariant::ScEnvMetaEntry => Self::ScEnvMetaEntry(Box::default()),
19964            TypeVariant::ScEnvMetaEntryInterfaceVersion => {
19965                Self::ScEnvMetaEntryInterfaceVersion(Box::default())
19966            }
19967            TypeVariant::ScMetaV0 => Self::ScMetaV0(Box::default()),
19968            TypeVariant::ScMetaKind => Self::ScMetaKind(Box::default()),
19969            TypeVariant::ScMetaEntry => Self::ScMetaEntry(Box::default()),
19970            TypeVariant::ScSpecType => Self::ScSpecType(Box::default()),
19971            TypeVariant::ScSpecTypeOption => Self::ScSpecTypeOption(Box::default()),
19972            TypeVariant::ScSpecTypeResult => Self::ScSpecTypeResult(Box::default()),
19973            TypeVariant::ScSpecTypeVec => Self::ScSpecTypeVec(Box::default()),
19974            TypeVariant::ScSpecTypeMap => Self::ScSpecTypeMap(Box::default()),
19975            TypeVariant::ScSpecTypeTuple => Self::ScSpecTypeTuple(Box::default()),
19976            TypeVariant::ScSpecTypeBytesN => Self::ScSpecTypeBytesN(Box::default()),
19977            TypeVariant::ScSpecTypeUdt => Self::ScSpecTypeUdt(Box::default()),
19978            TypeVariant::ScSpecTypeDef => Self::ScSpecTypeDef(Box::default()),
19979            TypeVariant::ScSpecUdtStructFieldV0 => Self::ScSpecUdtStructFieldV0(Box::default()),
19980            TypeVariant::ScSpecUdtStructV0 => Self::ScSpecUdtStructV0(Box::default()),
19981            TypeVariant::ScSpecUdtUnionCaseVoidV0 => Self::ScSpecUdtUnionCaseVoidV0(Box::default()),
19982            TypeVariant::ScSpecUdtUnionCaseTupleV0 => {
19983                Self::ScSpecUdtUnionCaseTupleV0(Box::default())
19984            }
19985            TypeVariant::ScSpecUdtUnionCaseV0Kind => Self::ScSpecUdtUnionCaseV0Kind(Box::default()),
19986            TypeVariant::ScSpecUdtUnionCaseV0 => Self::ScSpecUdtUnionCaseV0(Box::default()),
19987            TypeVariant::ScSpecUdtUnionV0 => Self::ScSpecUdtUnionV0(Box::default()),
19988            TypeVariant::ScSpecUdtEnumCaseV0 => Self::ScSpecUdtEnumCaseV0(Box::default()),
19989            TypeVariant::ScSpecUdtEnumV0 => Self::ScSpecUdtEnumV0(Box::default()),
19990            TypeVariant::ScSpecUdtErrorEnumCaseV0 => Self::ScSpecUdtErrorEnumCaseV0(Box::default()),
19991            TypeVariant::ScSpecUdtErrorEnumV0 => Self::ScSpecUdtErrorEnumV0(Box::default()),
19992            TypeVariant::ScSpecFunctionInputV0 => Self::ScSpecFunctionInputV0(Box::default()),
19993            TypeVariant::ScSpecFunctionV0 => Self::ScSpecFunctionV0(Box::default()),
19994            TypeVariant::ScSpecEventParamLocationV0 => {
19995                Self::ScSpecEventParamLocationV0(Box::default())
19996            }
19997            TypeVariant::ScSpecEventParamV0 => Self::ScSpecEventParamV0(Box::default()),
19998            TypeVariant::ScSpecEventDataFormat => Self::ScSpecEventDataFormat(Box::default()),
19999            TypeVariant::ScSpecEventV0 => Self::ScSpecEventV0(Box::default()),
20000            TypeVariant::ScSpecEntryKind => Self::ScSpecEntryKind(Box::default()),
20001            TypeVariant::ScSpecEntry => Self::ScSpecEntry(Box::default()),
20002            TypeVariant::ScBytes => Self::ScBytes(Box::default()),
20003            TypeVariant::ScString => Self::ScString(Box::default()),
20004            TypeVariant::ScSymbol => Self::ScSymbol(Box::default()),
20005            TypeVariant::ScValType => Self::ScValType(Box::default()),
20006            TypeVariant::ScErrorType => Self::ScErrorType(Box::default()),
20007            TypeVariant::ScErrorCode => Self::ScErrorCode(Box::default()),
20008            TypeVariant::ScError => Self::ScError(Box::default()),
20009            TypeVariant::UInt128Parts => Self::UInt128Parts(Box::default()),
20010            TypeVariant::Int128Parts => Self::Int128Parts(Box::default()),
20011            TypeVariant::UInt256Parts => Self::UInt256Parts(Box::default()),
20012            TypeVariant::Int256Parts => Self::Int256Parts(Box::default()),
20013            TypeVariant::ContractExecutableType => Self::ContractExecutableType(Box::default()),
20014            TypeVariant::ScAddressType => Self::ScAddressType(Box::default()),
20015            TypeVariant::MuxedEd25519Account => Self::MuxedEd25519Account(Box::default()),
20016            #[cfg(feature = "cap_0084_muxed_contract")]
20017            TypeVariant::MuxedContract => Self::MuxedContract(Box::default()),
20018            TypeVariant::ScAddress => Self::ScAddress(Box::default()),
20019            TypeVariant::ContractExecutableExternalRef => {
20020                Self::ContractExecutableExternalRef(Box::default())
20021            }
20022            TypeVariant::ContractExecutable => Self::ContractExecutable(Box::default()),
20023            TypeVariant::ScVec => Self::ScVec(Box::default()),
20024            TypeVariant::ScMap => Self::ScMap(Box::default()),
20025            TypeVariant::ScNonceKey => Self::ScNonceKey(Box::default()),
20026            TypeVariant::ScContractInstance => Self::ScContractInstance(Box::default()),
20027            TypeVariant::ScVal => Self::ScVal(Box::default()),
20028            TypeVariant::ScMapEntry => Self::ScMapEntry(Box::default()),
20029            TypeVariant::LedgerCloseMetaBatch => Self::LedgerCloseMetaBatch(Box::default()),
20030            TypeVariant::StoredTransactionSet => Self::StoredTransactionSet(Box::default()),
20031            TypeVariant::StoredDebugTransactionSet => {
20032                Self::StoredDebugTransactionSet(Box::default())
20033            }
20034            TypeVariant::PersistedScpStateV0 => Self::PersistedScpStateV0(Box::default()),
20035            TypeVariant::PersistedScpStateV1 => Self::PersistedScpStateV1(Box::default()),
20036            TypeVariant::PersistedScpState => Self::PersistedScpState(Box::default()),
20037            TypeVariant::Thresholds => Self::Thresholds(Box::default()),
20038            TypeVariant::String32 => Self::String32(Box::default()),
20039            TypeVariant::String64 => Self::String64(Box::default()),
20040            TypeVariant::SequenceNumber => Self::SequenceNumber(Box::default()),
20041            TypeVariant::DataValue => Self::DataValue(Box::default()),
20042            TypeVariant::AssetCode4 => Self::AssetCode4(Box::default()),
20043            TypeVariant::AssetCode12 => Self::AssetCode12(Box::default()),
20044            TypeVariant::AssetType => Self::AssetType(Box::default()),
20045            TypeVariant::AssetCode => Self::AssetCode(Box::default()),
20046            TypeVariant::AlphaNum4 => Self::AlphaNum4(Box::default()),
20047            TypeVariant::AlphaNum12 => Self::AlphaNum12(Box::default()),
20048            TypeVariant::Asset => Self::Asset(Box::default()),
20049            TypeVariant::Price => Self::Price(Box::default()),
20050            TypeVariant::Liabilities => Self::Liabilities(Box::default()),
20051            TypeVariant::ThresholdIndexes => Self::ThresholdIndexes(Box::default()),
20052            TypeVariant::LedgerEntryType => Self::LedgerEntryType(Box::default()),
20053            TypeVariant::Signer => Self::Signer(Box::default()),
20054            TypeVariant::AccountFlags => Self::AccountFlags(Box::default()),
20055            TypeVariant::SponsorshipDescriptor => Self::SponsorshipDescriptor(Box::default()),
20056            TypeVariant::AccountEntryExtensionV3 => Self::AccountEntryExtensionV3(Box::default()),
20057            TypeVariant::AccountEntryExtensionV2 => Self::AccountEntryExtensionV2(Box::default()),
20058            TypeVariant::AccountEntryExtensionV2Ext => {
20059                Self::AccountEntryExtensionV2Ext(Box::default())
20060            }
20061            TypeVariant::AccountEntryExtensionV1 => Self::AccountEntryExtensionV1(Box::default()),
20062            TypeVariant::AccountEntryExtensionV1Ext => {
20063                Self::AccountEntryExtensionV1Ext(Box::default())
20064            }
20065            TypeVariant::AccountEntry => Self::AccountEntry(Box::default()),
20066            TypeVariant::AccountEntryExt => Self::AccountEntryExt(Box::default()),
20067            TypeVariant::TrustLineFlags => Self::TrustLineFlags(Box::default()),
20068            TypeVariant::LiquidityPoolType => Self::LiquidityPoolType(Box::default()),
20069            TypeVariant::TrustLineAsset => Self::TrustLineAsset(Box::default()),
20070            TypeVariant::TrustLineEntryExtensionV2 => {
20071                Self::TrustLineEntryExtensionV2(Box::default())
20072            }
20073            TypeVariant::TrustLineEntryExtensionV2Ext => {
20074                Self::TrustLineEntryExtensionV2Ext(Box::default())
20075            }
20076            TypeVariant::TrustLineEntry => Self::TrustLineEntry(Box::default()),
20077            TypeVariant::TrustLineEntryExt => Self::TrustLineEntryExt(Box::default()),
20078            TypeVariant::TrustLineEntryV1 => Self::TrustLineEntryV1(Box::default()),
20079            TypeVariant::TrustLineEntryV1Ext => Self::TrustLineEntryV1Ext(Box::default()),
20080            TypeVariant::OfferEntryFlags => Self::OfferEntryFlags(Box::default()),
20081            TypeVariant::OfferEntry => Self::OfferEntry(Box::default()),
20082            TypeVariant::OfferEntryExt => Self::OfferEntryExt(Box::default()),
20083            TypeVariant::DataEntry => Self::DataEntry(Box::default()),
20084            TypeVariant::DataEntryExt => Self::DataEntryExt(Box::default()),
20085            TypeVariant::ClaimPredicateType => Self::ClaimPredicateType(Box::default()),
20086            TypeVariant::ClaimPredicate => Self::ClaimPredicate(Box::default()),
20087            TypeVariant::ClaimantType => Self::ClaimantType(Box::default()),
20088            TypeVariant::Claimant => Self::Claimant(Box::default()),
20089            TypeVariant::ClaimantV0 => Self::ClaimantV0(Box::default()),
20090            TypeVariant::ClaimableBalanceFlags => Self::ClaimableBalanceFlags(Box::default()),
20091            TypeVariant::ClaimableBalanceEntryExtensionV1 => {
20092                Self::ClaimableBalanceEntryExtensionV1(Box::default())
20093            }
20094            TypeVariant::ClaimableBalanceEntryExtensionV1Ext => {
20095                Self::ClaimableBalanceEntryExtensionV1Ext(Box::default())
20096            }
20097            TypeVariant::ClaimableBalanceEntry => Self::ClaimableBalanceEntry(Box::default()),
20098            TypeVariant::ClaimableBalanceEntryExt => Self::ClaimableBalanceEntryExt(Box::default()),
20099            TypeVariant::LiquidityPoolConstantProductParameters => {
20100                Self::LiquidityPoolConstantProductParameters(Box::default())
20101            }
20102            TypeVariant::LiquidityPoolEntry => Self::LiquidityPoolEntry(Box::default()),
20103            TypeVariant::LiquidityPoolEntryBody => Self::LiquidityPoolEntryBody(Box::default()),
20104            TypeVariant::LiquidityPoolEntryConstantProduct => {
20105                Self::LiquidityPoolEntryConstantProduct(Box::default())
20106            }
20107            TypeVariant::ContractDataDurability => Self::ContractDataDurability(Box::default()),
20108            TypeVariant::ContractDataEntry => Self::ContractDataEntry(Box::default()),
20109            TypeVariant::ContractCodeCostInputs => Self::ContractCodeCostInputs(Box::default()),
20110            TypeVariant::ContractCodeEntry => Self::ContractCodeEntry(Box::default()),
20111            TypeVariant::ContractCodeEntryExt => Self::ContractCodeEntryExt(Box::default()),
20112            TypeVariant::ContractCodeEntryV1 => Self::ContractCodeEntryV1(Box::default()),
20113            TypeVariant::TtlEntry => Self::TtlEntry(Box::default()),
20114            TypeVariant::LedgerEntryExtensionV1 => Self::LedgerEntryExtensionV1(Box::default()),
20115            TypeVariant::LedgerEntryExtensionV1Ext => {
20116                Self::LedgerEntryExtensionV1Ext(Box::default())
20117            }
20118            TypeVariant::LedgerEntry => Self::LedgerEntry(Box::default()),
20119            TypeVariant::LedgerEntryData => Self::LedgerEntryData(Box::default()),
20120            TypeVariant::LedgerEntryExt => Self::LedgerEntryExt(Box::default()),
20121            TypeVariant::LedgerKey => Self::LedgerKey(Box::default()),
20122            TypeVariant::LedgerKeyAccount => Self::LedgerKeyAccount(Box::default()),
20123            TypeVariant::LedgerKeyTrustLine => Self::LedgerKeyTrustLine(Box::default()),
20124            TypeVariant::LedgerKeyOffer => Self::LedgerKeyOffer(Box::default()),
20125            TypeVariant::LedgerKeyData => Self::LedgerKeyData(Box::default()),
20126            TypeVariant::LedgerKeyClaimableBalance => {
20127                Self::LedgerKeyClaimableBalance(Box::default())
20128            }
20129            TypeVariant::LedgerKeyLiquidityPool => Self::LedgerKeyLiquidityPool(Box::default()),
20130            TypeVariant::LedgerKeyContractData => Self::LedgerKeyContractData(Box::default()),
20131            TypeVariant::LedgerKeyContractCode => Self::LedgerKeyContractCode(Box::default()),
20132            TypeVariant::LedgerKeyConfigSetting => Self::LedgerKeyConfigSetting(Box::default()),
20133            TypeVariant::LedgerKeyTtl => Self::LedgerKeyTtl(Box::default()),
20134            TypeVariant::EnvelopeType => Self::EnvelopeType(Box::default()),
20135            TypeVariant::BucketListType => Self::BucketListType(Box::default()),
20136            TypeVariant::BucketEntryType => Self::BucketEntryType(Box::default()),
20137            TypeVariant::HotArchiveBucketEntryType => {
20138                Self::HotArchiveBucketEntryType(Box::default())
20139            }
20140            TypeVariant::BucketMetadata => Self::BucketMetadata(Box::default()),
20141            TypeVariant::BucketMetadataExt => Self::BucketMetadataExt(Box::default()),
20142            TypeVariant::BucketEntry => Self::BucketEntry(Box::default()),
20143            TypeVariant::HotArchiveBucketEntry => Self::HotArchiveBucketEntry(Box::default()),
20144            TypeVariant::UpgradeType => Self::UpgradeType(Box::default()),
20145            TypeVariant::StellarValueType => Self::StellarValueType(Box::default()),
20146            TypeVariant::LedgerCloseValueSignature => {
20147                Self::LedgerCloseValueSignature(Box::default())
20148            }
20149            TypeVariant::StellarValue => Self::StellarValue(Box::default()),
20150            TypeVariant::StellarValueExt => Self::StellarValueExt(Box::default()),
20151            TypeVariant::StellarValueProposedValue => {
20152                Self::StellarValueProposedValue(Box::default())
20153            }
20154            TypeVariant::LedgerHeaderFlags => Self::LedgerHeaderFlags(Box::default()),
20155            TypeVariant::LedgerHeaderExtensionV1 => Self::LedgerHeaderExtensionV1(Box::default()),
20156            TypeVariant::LedgerHeaderExtensionV1Ext => {
20157                Self::LedgerHeaderExtensionV1Ext(Box::default())
20158            }
20159            TypeVariant::LedgerHeader => Self::LedgerHeader(Box::default()),
20160            TypeVariant::LedgerHeaderExt => Self::LedgerHeaderExt(Box::default()),
20161            TypeVariant::LedgerUpgradeType => Self::LedgerUpgradeType(Box::default()),
20162            TypeVariant::ConfigUpgradeSetKey => Self::ConfigUpgradeSetKey(Box::default()),
20163            TypeVariant::LedgerUpgrade => Self::LedgerUpgrade(Box::default()),
20164            TypeVariant::ConfigUpgradeSet => Self::ConfigUpgradeSet(Box::default()),
20165            TypeVariant::TxSetComponentType => Self::TxSetComponentType(Box::default()),
20166            TypeVariant::DependentTxCluster => Self::DependentTxCluster(Box::default()),
20167            TypeVariant::ParallelTxExecutionStage => Self::ParallelTxExecutionStage(Box::default()),
20168            TypeVariant::ParallelTxsComponent => Self::ParallelTxsComponent(Box::default()),
20169            TypeVariant::TxSetComponent => Self::TxSetComponent(Box::default()),
20170            TypeVariant::TxSetComponentTxsMaybeDiscountedFee => {
20171                Self::TxSetComponentTxsMaybeDiscountedFee(Box::default())
20172            }
20173            TypeVariant::TransactionPhase => Self::TransactionPhase(Box::default()),
20174            TypeVariant::TransactionSet => Self::TransactionSet(Box::default()),
20175            TypeVariant::TransactionSetV1 => Self::TransactionSetV1(Box::default()),
20176            TypeVariant::GeneralizedTransactionSet => {
20177                Self::GeneralizedTransactionSet(Box::default())
20178            }
20179            TypeVariant::TransactionResultPair => Self::TransactionResultPair(Box::default()),
20180            TypeVariant::TransactionResultSet => Self::TransactionResultSet(Box::default()),
20181            TypeVariant::TransactionHistoryEntry => Self::TransactionHistoryEntry(Box::default()),
20182            TypeVariant::TransactionHistoryEntryExt => {
20183                Self::TransactionHistoryEntryExt(Box::default())
20184            }
20185            TypeVariant::TransactionHistoryResultEntry => {
20186                Self::TransactionHistoryResultEntry(Box::default())
20187            }
20188            TypeVariant::TransactionHistoryResultEntryExt => {
20189                Self::TransactionHistoryResultEntryExt(Box::default())
20190            }
20191            TypeVariant::LedgerHeaderHistoryEntry => Self::LedgerHeaderHistoryEntry(Box::default()),
20192            TypeVariant::LedgerHeaderHistoryEntryExt => {
20193                Self::LedgerHeaderHistoryEntryExt(Box::default())
20194            }
20195            TypeVariant::LedgerScpMessages => Self::LedgerScpMessages(Box::default()),
20196            TypeVariant::ScpHistoryEntryV0 => Self::ScpHistoryEntryV0(Box::default()),
20197            TypeVariant::ScpHistoryEntry => Self::ScpHistoryEntry(Box::default()),
20198            TypeVariant::LedgerEntryChangeType => Self::LedgerEntryChangeType(Box::default()),
20199            TypeVariant::LedgerEntryChange => Self::LedgerEntryChange(Box::default()),
20200            TypeVariant::LedgerEntryChanges => Self::LedgerEntryChanges(Box::default()),
20201            TypeVariant::OperationMeta => Self::OperationMeta(Box::default()),
20202            TypeVariant::TransactionMetaV1 => Self::TransactionMetaV1(Box::default()),
20203            TypeVariant::TransactionMetaV2 => Self::TransactionMetaV2(Box::default()),
20204            TypeVariant::ContractEventType => Self::ContractEventType(Box::default()),
20205            TypeVariant::ContractEvent => Self::ContractEvent(Box::default()),
20206            TypeVariant::ContractEventBody => Self::ContractEventBody(Box::default()),
20207            TypeVariant::ContractEventV0 => Self::ContractEventV0(Box::default()),
20208            TypeVariant::DiagnosticEvent => Self::DiagnosticEvent(Box::default()),
20209            TypeVariant::SorobanTransactionMetaExtV1 => {
20210                Self::SorobanTransactionMetaExtV1(Box::default())
20211            }
20212            TypeVariant::SorobanTransactionMetaExt => {
20213                Self::SorobanTransactionMetaExt(Box::default())
20214            }
20215            TypeVariant::SorobanTransactionMeta => Self::SorobanTransactionMeta(Box::default()),
20216            TypeVariant::TransactionMetaV3 => Self::TransactionMetaV3(Box::default()),
20217            TypeVariant::OperationMetaV2 => Self::OperationMetaV2(Box::default()),
20218            TypeVariant::SorobanTransactionMetaV2 => Self::SorobanTransactionMetaV2(Box::default()),
20219            TypeVariant::TransactionEventStage => Self::TransactionEventStage(Box::default()),
20220            TypeVariant::TransactionEvent => Self::TransactionEvent(Box::default()),
20221            TypeVariant::TransactionMetaV4 => Self::TransactionMetaV4(Box::default()),
20222            TypeVariant::InvokeHostFunctionSuccessPreImage => {
20223                Self::InvokeHostFunctionSuccessPreImage(Box::default())
20224            }
20225            TypeVariant::TransactionMeta => Self::TransactionMeta(Box::default()),
20226            TypeVariant::TransactionResultMeta => Self::TransactionResultMeta(Box::default()),
20227            TypeVariant::TransactionResultMetaV1 => Self::TransactionResultMetaV1(Box::default()),
20228            TypeVariant::UpgradeEntryMeta => Self::UpgradeEntryMeta(Box::default()),
20229            TypeVariant::LedgerCloseMetaV0 => Self::LedgerCloseMetaV0(Box::default()),
20230            TypeVariant::LedgerCloseMetaExtV1 => Self::LedgerCloseMetaExtV1(Box::default()),
20231            TypeVariant::LedgerCloseMetaExt => Self::LedgerCloseMetaExt(Box::default()),
20232            TypeVariant::LedgerCloseMetaV1 => Self::LedgerCloseMetaV1(Box::default()),
20233            TypeVariant::LedgerCloseMetaV2 => Self::LedgerCloseMetaV2(Box::default()),
20234            TypeVariant::LedgerCloseMeta => Self::LedgerCloseMeta(Box::default()),
20235            TypeVariant::ErrorCode => Self::ErrorCode(Box::default()),
20236            TypeVariant::SError => Self::SError(Box::default()),
20237            TypeVariant::SendMore => Self::SendMore(Box::default()),
20238            TypeVariant::SendMoreExtended => Self::SendMoreExtended(Box::default()),
20239            TypeVariant::AuthCert => Self::AuthCert(Box::default()),
20240            TypeVariant::Hello => Self::Hello(Box::default()),
20241            TypeVariant::Auth => Self::Auth(Box::default()),
20242            TypeVariant::IpAddrType => Self::IpAddrType(Box::default()),
20243            TypeVariant::PeerAddress => Self::PeerAddress(Box::default()),
20244            TypeVariant::PeerAddressIp => Self::PeerAddressIp(Box::default()),
20245            TypeVariant::MessageType => Self::MessageType(Box::default()),
20246            TypeVariant::DontHave => Self::DontHave(Box::default()),
20247            TypeVariant::SurveyMessageCommandType => Self::SurveyMessageCommandType(Box::default()),
20248            TypeVariant::SurveyMessageResponseType => {
20249                Self::SurveyMessageResponseType(Box::default())
20250            }
20251            TypeVariant::TimeSlicedSurveyStartCollectingMessage => {
20252                Self::TimeSlicedSurveyStartCollectingMessage(Box::default())
20253            }
20254            TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage => {
20255                Self::SignedTimeSlicedSurveyStartCollectingMessage(Box::default())
20256            }
20257            TypeVariant::TimeSlicedSurveyStopCollectingMessage => {
20258                Self::TimeSlicedSurveyStopCollectingMessage(Box::default())
20259            }
20260            TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage => {
20261                Self::SignedTimeSlicedSurveyStopCollectingMessage(Box::default())
20262            }
20263            TypeVariant::SurveyRequestMessage => Self::SurveyRequestMessage(Box::default()),
20264            TypeVariant::TimeSlicedSurveyRequestMessage => {
20265                Self::TimeSlicedSurveyRequestMessage(Box::default())
20266            }
20267            TypeVariant::SignedTimeSlicedSurveyRequestMessage => {
20268                Self::SignedTimeSlicedSurveyRequestMessage(Box::default())
20269            }
20270            TypeVariant::EncryptedBody => Self::EncryptedBody(Box::default()),
20271            TypeVariant::SurveyResponseMessage => Self::SurveyResponseMessage(Box::default()),
20272            TypeVariant::TimeSlicedSurveyResponseMessage => {
20273                Self::TimeSlicedSurveyResponseMessage(Box::default())
20274            }
20275            TypeVariant::SignedTimeSlicedSurveyResponseMessage => {
20276                Self::SignedTimeSlicedSurveyResponseMessage(Box::default())
20277            }
20278            TypeVariant::PeerStats => Self::PeerStats(Box::default()),
20279            TypeVariant::TimeSlicedNodeData => Self::TimeSlicedNodeData(Box::default()),
20280            TypeVariant::TimeSlicedPeerData => Self::TimeSlicedPeerData(Box::default()),
20281            TypeVariant::TimeSlicedPeerDataList => Self::TimeSlicedPeerDataList(Box::default()),
20282            TypeVariant::TopologyResponseBodyV2 => Self::TopologyResponseBodyV2(Box::default()),
20283            TypeVariant::SurveyResponseBody => Self::SurveyResponseBody(Box::default()),
20284            TypeVariant::TxAdvertVector => Self::TxAdvertVector(Box::default()),
20285            TypeVariant::FloodAdvert => Self::FloodAdvert(Box::default()),
20286            TypeVariant::TxDemandVector => Self::TxDemandVector(Box::default()),
20287            TypeVariant::FloodDemand => Self::FloodDemand(Box::default()),
20288            TypeVariant::StellarMessage => Self::StellarMessage(Box::default()),
20289            TypeVariant::AuthenticatedMessage => Self::AuthenticatedMessage(Box::default()),
20290            TypeVariant::AuthenticatedMessageV0 => Self::AuthenticatedMessageV0(Box::default()),
20291            TypeVariant::LiquidityPoolParameters => Self::LiquidityPoolParameters(Box::default()),
20292            TypeVariant::MuxedAccount => Self::MuxedAccount(Box::default()),
20293            TypeVariant::MuxedAccountMed25519 => Self::MuxedAccountMed25519(Box::default()),
20294            TypeVariant::DecoratedSignature => Self::DecoratedSignature(Box::default()),
20295            TypeVariant::OperationType => Self::OperationType(Box::default()),
20296            TypeVariant::CreateAccountOp => Self::CreateAccountOp(Box::default()),
20297            TypeVariant::PaymentOp => Self::PaymentOp(Box::default()),
20298            TypeVariant::PathPaymentStrictReceiveOp => {
20299                Self::PathPaymentStrictReceiveOp(Box::default())
20300            }
20301            TypeVariant::PathPaymentStrictSendOp => Self::PathPaymentStrictSendOp(Box::default()),
20302            TypeVariant::ManageSellOfferOp => Self::ManageSellOfferOp(Box::default()),
20303            TypeVariant::ManageBuyOfferOp => Self::ManageBuyOfferOp(Box::default()),
20304            TypeVariant::CreatePassiveSellOfferOp => Self::CreatePassiveSellOfferOp(Box::default()),
20305            TypeVariant::SetOptionsOp => Self::SetOptionsOp(Box::default()),
20306            TypeVariant::ChangeTrustAsset => Self::ChangeTrustAsset(Box::default()),
20307            TypeVariant::ChangeTrustOp => Self::ChangeTrustOp(Box::default()),
20308            TypeVariant::AllowTrustOp => Self::AllowTrustOp(Box::default()),
20309            TypeVariant::ManageDataOp => Self::ManageDataOp(Box::default()),
20310            TypeVariant::BumpSequenceOp => Self::BumpSequenceOp(Box::default()),
20311            TypeVariant::CreateClaimableBalanceOp => Self::CreateClaimableBalanceOp(Box::default()),
20312            TypeVariant::ClaimClaimableBalanceOp => Self::ClaimClaimableBalanceOp(Box::default()),
20313            TypeVariant::BeginSponsoringFutureReservesOp => {
20314                Self::BeginSponsoringFutureReservesOp(Box::default())
20315            }
20316            TypeVariant::RevokeSponsorshipType => Self::RevokeSponsorshipType(Box::default()),
20317            TypeVariant::RevokeSponsorshipOp => Self::RevokeSponsorshipOp(Box::default()),
20318            TypeVariant::RevokeSponsorshipOpSigner => {
20319                Self::RevokeSponsorshipOpSigner(Box::default())
20320            }
20321            TypeVariant::ClawbackOp => Self::ClawbackOp(Box::default()),
20322            TypeVariant::ClawbackClaimableBalanceOp => {
20323                Self::ClawbackClaimableBalanceOp(Box::default())
20324            }
20325            TypeVariant::SetTrustLineFlagsOp => Self::SetTrustLineFlagsOp(Box::default()),
20326            TypeVariant::LiquidityPoolDepositOp => Self::LiquidityPoolDepositOp(Box::default()),
20327            TypeVariant::LiquidityPoolWithdrawOp => Self::LiquidityPoolWithdrawOp(Box::default()),
20328            TypeVariant::HostFunctionType => Self::HostFunctionType(Box::default()),
20329            TypeVariant::ContractIdPreimageType => Self::ContractIdPreimageType(Box::default()),
20330            TypeVariant::ContractIdPreimage => Self::ContractIdPreimage(Box::default()),
20331            TypeVariant::ContractIdPreimageFromAddress => {
20332                Self::ContractIdPreimageFromAddress(Box::default())
20333            }
20334            TypeVariant::CreateContractArgs => Self::CreateContractArgs(Box::default()),
20335            TypeVariant::CreateContractArgsV2 => Self::CreateContractArgsV2(Box::default()),
20336            TypeVariant::InvokeContractArgs => Self::InvokeContractArgs(Box::default()),
20337            TypeVariant::HostFunction => Self::HostFunction(Box::default()),
20338            TypeVariant::SorobanAuthorizedFunctionType => {
20339                Self::SorobanAuthorizedFunctionType(Box::default())
20340            }
20341            TypeVariant::SorobanAuthorizedFunction => {
20342                Self::SorobanAuthorizedFunction(Box::default())
20343            }
20344            TypeVariant::SorobanAuthorizedInvocation => {
20345                Self::SorobanAuthorizedInvocation(Box::default())
20346            }
20347            TypeVariant::SorobanAddressCredentials => {
20348                Self::SorobanAddressCredentials(Box::default())
20349            }
20350            TypeVariant::SorobanDelegateSignature => Self::SorobanDelegateSignature(Box::default()),
20351            TypeVariant::SorobanAddressCredentialsWithDelegates => {
20352                Self::SorobanAddressCredentialsWithDelegates(Box::default())
20353            }
20354            TypeVariant::SorobanCredentialsType => Self::SorobanCredentialsType(Box::default()),
20355            TypeVariant::SorobanCredentials => Self::SorobanCredentials(Box::default()),
20356            TypeVariant::SorobanAuthorizationEntry => {
20357                Self::SorobanAuthorizationEntry(Box::default())
20358            }
20359            TypeVariant::SorobanAuthorizationEntries => {
20360                Self::SorobanAuthorizationEntries(Box::default())
20361            }
20362            TypeVariant::InvokeHostFunctionOp => Self::InvokeHostFunctionOp(Box::default()),
20363            TypeVariant::ExtendFootprintTtlOp => Self::ExtendFootprintTtlOp(Box::default()),
20364            TypeVariant::RestoreFootprintOp => Self::RestoreFootprintOp(Box::default()),
20365            TypeVariant::Operation => Self::Operation(Box::default()),
20366            TypeVariant::OperationBody => Self::OperationBody(Box::default()),
20367            TypeVariant::HashIdPreimage => Self::HashIdPreimage(Box::default()),
20368            TypeVariant::HashIdPreimageOperationId => {
20369                Self::HashIdPreimageOperationId(Box::default())
20370            }
20371            TypeVariant::HashIdPreimageRevokeId => Self::HashIdPreimageRevokeId(Box::default()),
20372            TypeVariant::HashIdPreimageContractId => Self::HashIdPreimageContractId(Box::default()),
20373            TypeVariant::HashIdPreimageSorobanAuthorization => {
20374                Self::HashIdPreimageSorobanAuthorization(Box::default())
20375            }
20376            TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress => {
20377                Self::HashIdPreimageSorobanAuthorizationWithAddress(Box::default())
20378            }
20379            TypeVariant::MemoType => Self::MemoType(Box::default()),
20380            TypeVariant::Memo => Self::Memo(Box::default()),
20381            TypeVariant::TimeBounds => Self::TimeBounds(Box::default()),
20382            TypeVariant::LedgerBounds => Self::LedgerBounds(Box::default()),
20383            TypeVariant::PreconditionsV2 => Self::PreconditionsV2(Box::default()),
20384            TypeVariant::PreconditionType => Self::PreconditionType(Box::default()),
20385            TypeVariant::Preconditions => Self::Preconditions(Box::default()),
20386            TypeVariant::LedgerFootprint => Self::LedgerFootprint(Box::default()),
20387            TypeVariant::SorobanResources => Self::SorobanResources(Box::default()),
20388            TypeVariant::SorobanResourcesExtV0 => Self::SorobanResourcesExtV0(Box::default()),
20389            TypeVariant::SorobanTransactionData => Self::SorobanTransactionData(Box::default()),
20390            TypeVariant::SorobanTransactionDataExt => {
20391                Self::SorobanTransactionDataExt(Box::default())
20392            }
20393            TypeVariant::TransactionV0 => Self::TransactionV0(Box::default()),
20394            TypeVariant::TransactionV0Ext => Self::TransactionV0Ext(Box::default()),
20395            TypeVariant::TransactionV0Envelope => Self::TransactionV0Envelope(Box::default()),
20396            TypeVariant::Transaction => Self::Transaction(Box::default()),
20397            TypeVariant::TransactionExt => Self::TransactionExt(Box::default()),
20398            TypeVariant::TransactionV1Envelope => Self::TransactionV1Envelope(Box::default()),
20399            TypeVariant::FeeBumpTransaction => Self::FeeBumpTransaction(Box::default()),
20400            TypeVariant::FeeBumpTransactionInnerTx => {
20401                Self::FeeBumpTransactionInnerTx(Box::default())
20402            }
20403            TypeVariant::FeeBumpTransactionExt => Self::FeeBumpTransactionExt(Box::default()),
20404            TypeVariant::FeeBumpTransactionEnvelope => {
20405                Self::FeeBumpTransactionEnvelope(Box::default())
20406            }
20407            TypeVariant::TransactionEnvelope => Self::TransactionEnvelope(Box::default()),
20408            TypeVariant::TransactionSignaturePayload => {
20409                Self::TransactionSignaturePayload(Box::default())
20410            }
20411            TypeVariant::TransactionSignaturePayloadTaggedTransaction => {
20412                Self::TransactionSignaturePayloadTaggedTransaction(Box::default())
20413            }
20414            TypeVariant::ClaimAtomType => Self::ClaimAtomType(Box::default()),
20415            TypeVariant::ClaimOfferAtomV0 => Self::ClaimOfferAtomV0(Box::default()),
20416            TypeVariant::ClaimOfferAtom => Self::ClaimOfferAtom(Box::default()),
20417            TypeVariant::ClaimLiquidityAtom => Self::ClaimLiquidityAtom(Box::default()),
20418            TypeVariant::ClaimAtom => Self::ClaimAtom(Box::default()),
20419            TypeVariant::CreateAccountResultCode => Self::CreateAccountResultCode(Box::default()),
20420            TypeVariant::CreateAccountResult => Self::CreateAccountResult(Box::default()),
20421            TypeVariant::PaymentResultCode => Self::PaymentResultCode(Box::default()),
20422            TypeVariant::PaymentResult => Self::PaymentResult(Box::default()),
20423            TypeVariant::PathPaymentStrictReceiveResultCode => {
20424                Self::PathPaymentStrictReceiveResultCode(Box::default())
20425            }
20426            TypeVariant::SimplePaymentResult => Self::SimplePaymentResult(Box::default()),
20427            TypeVariant::PathPaymentStrictReceiveResult => {
20428                Self::PathPaymentStrictReceiveResult(Box::default())
20429            }
20430            TypeVariant::PathPaymentStrictReceiveResultSuccess => {
20431                Self::PathPaymentStrictReceiveResultSuccess(Box::default())
20432            }
20433            TypeVariant::PathPaymentStrictSendResultCode => {
20434                Self::PathPaymentStrictSendResultCode(Box::default())
20435            }
20436            TypeVariant::PathPaymentStrictSendResult => {
20437                Self::PathPaymentStrictSendResult(Box::default())
20438            }
20439            TypeVariant::PathPaymentStrictSendResultSuccess => {
20440                Self::PathPaymentStrictSendResultSuccess(Box::default())
20441            }
20442            TypeVariant::ManageSellOfferResultCode => {
20443                Self::ManageSellOfferResultCode(Box::default())
20444            }
20445            TypeVariant::ManageOfferEffect => Self::ManageOfferEffect(Box::default()),
20446            TypeVariant::ManageOfferSuccessResult => Self::ManageOfferSuccessResult(Box::default()),
20447            TypeVariant::ManageOfferSuccessResultOffer => {
20448                Self::ManageOfferSuccessResultOffer(Box::default())
20449            }
20450            TypeVariant::ManageSellOfferResult => Self::ManageSellOfferResult(Box::default()),
20451            TypeVariant::ManageBuyOfferResultCode => Self::ManageBuyOfferResultCode(Box::default()),
20452            TypeVariant::ManageBuyOfferResult => Self::ManageBuyOfferResult(Box::default()),
20453            TypeVariant::SetOptionsResultCode => Self::SetOptionsResultCode(Box::default()),
20454            TypeVariant::SetOptionsResult => Self::SetOptionsResult(Box::default()),
20455            TypeVariant::ChangeTrustResultCode => Self::ChangeTrustResultCode(Box::default()),
20456            TypeVariant::ChangeTrustResult => Self::ChangeTrustResult(Box::default()),
20457            TypeVariant::AllowTrustResultCode => Self::AllowTrustResultCode(Box::default()),
20458            TypeVariant::AllowTrustResult => Self::AllowTrustResult(Box::default()),
20459            TypeVariant::AccountMergeResultCode => Self::AccountMergeResultCode(Box::default()),
20460            TypeVariant::AccountMergeResult => Self::AccountMergeResult(Box::default()),
20461            TypeVariant::InflationResultCode => Self::InflationResultCode(Box::default()),
20462            TypeVariant::InflationPayout => Self::InflationPayout(Box::default()),
20463            TypeVariant::InflationResult => Self::InflationResult(Box::default()),
20464            TypeVariant::ManageDataResultCode => Self::ManageDataResultCode(Box::default()),
20465            TypeVariant::ManageDataResult => Self::ManageDataResult(Box::default()),
20466            TypeVariant::BumpSequenceResultCode => Self::BumpSequenceResultCode(Box::default()),
20467            TypeVariant::BumpSequenceResult => Self::BumpSequenceResult(Box::default()),
20468            TypeVariant::CreateClaimableBalanceResultCode => {
20469                Self::CreateClaimableBalanceResultCode(Box::default())
20470            }
20471            TypeVariant::CreateClaimableBalanceResult => {
20472                Self::CreateClaimableBalanceResult(Box::default())
20473            }
20474            TypeVariant::ClaimClaimableBalanceResultCode => {
20475                Self::ClaimClaimableBalanceResultCode(Box::default())
20476            }
20477            TypeVariant::ClaimClaimableBalanceResult => {
20478                Self::ClaimClaimableBalanceResult(Box::default())
20479            }
20480            TypeVariant::BeginSponsoringFutureReservesResultCode => {
20481                Self::BeginSponsoringFutureReservesResultCode(Box::default())
20482            }
20483            TypeVariant::BeginSponsoringFutureReservesResult => {
20484                Self::BeginSponsoringFutureReservesResult(Box::default())
20485            }
20486            TypeVariant::EndSponsoringFutureReservesResultCode => {
20487                Self::EndSponsoringFutureReservesResultCode(Box::default())
20488            }
20489            TypeVariant::EndSponsoringFutureReservesResult => {
20490                Self::EndSponsoringFutureReservesResult(Box::default())
20491            }
20492            TypeVariant::RevokeSponsorshipResultCode => {
20493                Self::RevokeSponsorshipResultCode(Box::default())
20494            }
20495            TypeVariant::RevokeSponsorshipResult => Self::RevokeSponsorshipResult(Box::default()),
20496            TypeVariant::ClawbackResultCode => Self::ClawbackResultCode(Box::default()),
20497            TypeVariant::ClawbackResult => Self::ClawbackResult(Box::default()),
20498            TypeVariant::ClawbackClaimableBalanceResultCode => {
20499                Self::ClawbackClaimableBalanceResultCode(Box::default())
20500            }
20501            TypeVariant::ClawbackClaimableBalanceResult => {
20502                Self::ClawbackClaimableBalanceResult(Box::default())
20503            }
20504            TypeVariant::SetTrustLineFlagsResultCode => {
20505                Self::SetTrustLineFlagsResultCode(Box::default())
20506            }
20507            TypeVariant::SetTrustLineFlagsResult => Self::SetTrustLineFlagsResult(Box::default()),
20508            TypeVariant::LiquidityPoolDepositResultCode => {
20509                Self::LiquidityPoolDepositResultCode(Box::default())
20510            }
20511            TypeVariant::LiquidityPoolDepositResult => {
20512                Self::LiquidityPoolDepositResult(Box::default())
20513            }
20514            TypeVariant::LiquidityPoolWithdrawResultCode => {
20515                Self::LiquidityPoolWithdrawResultCode(Box::default())
20516            }
20517            TypeVariant::LiquidityPoolWithdrawResult => {
20518                Self::LiquidityPoolWithdrawResult(Box::default())
20519            }
20520            TypeVariant::InvokeHostFunctionResultCode => {
20521                Self::InvokeHostFunctionResultCode(Box::default())
20522            }
20523            TypeVariant::InvokeHostFunctionResult => Self::InvokeHostFunctionResult(Box::default()),
20524            TypeVariant::ExtendFootprintTtlResultCode => {
20525                Self::ExtendFootprintTtlResultCode(Box::default())
20526            }
20527            TypeVariant::ExtendFootprintTtlResult => Self::ExtendFootprintTtlResult(Box::default()),
20528            TypeVariant::RestoreFootprintResultCode => {
20529                Self::RestoreFootprintResultCode(Box::default())
20530            }
20531            TypeVariant::RestoreFootprintResult => Self::RestoreFootprintResult(Box::default()),
20532            TypeVariant::OperationResultCode => Self::OperationResultCode(Box::default()),
20533            TypeVariant::OperationResult => Self::OperationResult(Box::default()),
20534            TypeVariant::OperationResultTr => Self::OperationResultTr(Box::default()),
20535            TypeVariant::TransactionResultCode => Self::TransactionResultCode(Box::default()),
20536            TypeVariant::InnerTransactionResult => Self::InnerTransactionResult(Box::default()),
20537            TypeVariant::InnerTransactionResultResult => {
20538                Self::InnerTransactionResultResult(Box::default())
20539            }
20540            TypeVariant::InnerTransactionResultExt => {
20541                Self::InnerTransactionResultExt(Box::default())
20542            }
20543            TypeVariant::InnerTransactionResultPair => {
20544                Self::InnerTransactionResultPair(Box::default())
20545            }
20546            TypeVariant::TransactionResult => Self::TransactionResult(Box::default()),
20547            TypeVariant::TransactionResultResult => Self::TransactionResultResult(Box::default()),
20548            TypeVariant::TransactionResultExt => Self::TransactionResultExt(Box::default()),
20549            TypeVariant::Hash => Self::Hash(Box::default()),
20550            TypeVariant::Uint256 => Self::Uint256(Box::default()),
20551            TypeVariant::Uint32 => Self::Uint32(Box::default()),
20552            TypeVariant::Int32 => Self::Int32(Box::default()),
20553            TypeVariant::Uint64 => Self::Uint64(Box::default()),
20554            TypeVariant::Int64 => Self::Int64(Box::default()),
20555            TypeVariant::TimePoint => Self::TimePoint(Box::default()),
20556            TypeVariant::Duration => Self::Duration(Box::default()),
20557            TypeVariant::ExtensionPoint => Self::ExtensionPoint(Box::default()),
20558            TypeVariant::CryptoKeyType => Self::CryptoKeyType(Box::default()),
20559            TypeVariant::PublicKeyType => Self::PublicKeyType(Box::default()),
20560            TypeVariant::SignerKeyType => Self::SignerKeyType(Box::default()),
20561            TypeVariant::PublicKey => Self::PublicKey(Box::default()),
20562            TypeVariant::SignerKey => Self::SignerKey(Box::default()),
20563            TypeVariant::SignerKeyEd25519SignedPayload => {
20564                Self::SignerKeyEd25519SignedPayload(Box::default())
20565            }
20566            TypeVariant::Signature => Self::Signature(Box::default()),
20567            TypeVariant::SignatureHint => Self::SignatureHint(Box::default()),
20568            TypeVariant::NodeId => Self::NodeId(Box::default()),
20569            TypeVariant::AccountId => Self::AccountId(Box::default()),
20570            TypeVariant::ContractId => Self::ContractId(Box::default()),
20571            TypeVariant::Curve25519Secret => Self::Curve25519Secret(Box::default()),
20572            TypeVariant::Curve25519Public => Self::Curve25519Public(Box::default()),
20573            TypeVariant::HmacSha256Key => Self::HmacSha256Key(Box::default()),
20574            TypeVariant::HmacSha256Mac => Self::HmacSha256Mac(Box::default()),
20575            TypeVariant::ShortHashSeed => Self::ShortHashSeed(Box::default()),
20576            TypeVariant::BinaryFuseFilterType => Self::BinaryFuseFilterType(Box::default()),
20577            TypeVariant::SerializedBinaryFuseFilter => {
20578                Self::SerializedBinaryFuseFilter(Box::default())
20579            }
20580            TypeVariant::PoolId => Self::PoolId(Box::default()),
20581            TypeVariant::ClaimableBalanceIdType => Self::ClaimableBalanceIdType(Box::default()),
20582            TypeVariant::ClaimableBalanceId => Self::ClaimableBalanceId(Box::default()),
20583            #[cfg(feature = "test_feature")]
20584            TypeVariant::TestNextType => Self::TestNextType(Box::default()),
20585        }
20586    }
20587
20588    #[cfg(feature = "alloc")]
20589    #[must_use]
20590    #[allow(clippy::too_many_lines)]
20591    pub fn value(&self) -> &dyn core::any::Any {
20592        #[allow(clippy::match_same_arms)]
20593        match self {
20594            Self::Value(ref v) => v.as_ref(),
20595            Self::ScpBallot(ref v) => v.as_ref(),
20596            Self::ScpStatementType(ref v) => v.as_ref(),
20597            Self::ScpNomination(ref v) => v.as_ref(),
20598            Self::ScpStatement(ref v) => v.as_ref(),
20599            Self::ScpStatementPledges(ref v) => v.as_ref(),
20600            Self::ScpStatementPrepare(ref v) => v.as_ref(),
20601            Self::ScpStatementConfirm(ref v) => v.as_ref(),
20602            Self::ScpStatementExternalize(ref v) => v.as_ref(),
20603            Self::ScpEnvelope(ref v) => v.as_ref(),
20604            Self::ScpQuorumSet(ref v) => v.as_ref(),
20605            Self::EncodedLedgerKey(ref v) => v.as_ref(),
20606            Self::ConfigSettingContractExecutionLanesV0(ref v) => v.as_ref(),
20607            Self::ConfigSettingContractComputeV0(ref v) => v.as_ref(),
20608            Self::ConfigSettingContractParallelComputeV0(ref v) => v.as_ref(),
20609            Self::ConfigSettingContractLedgerCostV0(ref v) => v.as_ref(),
20610            Self::ConfigSettingContractLedgerCostExtV0(ref v) => v.as_ref(),
20611            Self::ConfigSettingContractHistoricalDataV0(ref v) => v.as_ref(),
20612            Self::ConfigSettingContractEventsV0(ref v) => v.as_ref(),
20613            Self::ConfigSettingContractBandwidthV0(ref v) => v.as_ref(),
20614            Self::ContractCostType(ref v) => v.as_ref(),
20615            Self::ContractCostParamEntry(ref v) => v.as_ref(),
20616            Self::StateArchivalSettings(ref v) => v.as_ref(),
20617            Self::EvictionIterator(ref v) => v.as_ref(),
20618            Self::ConfigSettingScpTiming(ref v) => v.as_ref(),
20619            Self::FrozenLedgerKeys(ref v) => v.as_ref(),
20620            Self::FrozenLedgerKeysDelta(ref v) => v.as_ref(),
20621            Self::FreezeBypassTxs(ref v) => v.as_ref(),
20622            Self::FreezeBypassTxsDelta(ref v) => v.as_ref(),
20623            Self::ContractCostParams(ref v) => v.as_ref(),
20624            Self::ConfigSettingId(ref v) => v.as_ref(),
20625            Self::ConfigSettingEntry(ref v) => v.as_ref(),
20626            Self::ScEnvMetaKind(ref v) => v.as_ref(),
20627            Self::ScEnvMetaEntry(ref v) => v.as_ref(),
20628            Self::ScEnvMetaEntryInterfaceVersion(ref v) => v.as_ref(),
20629            Self::ScMetaV0(ref v) => v.as_ref(),
20630            Self::ScMetaKind(ref v) => v.as_ref(),
20631            Self::ScMetaEntry(ref v) => v.as_ref(),
20632            Self::ScSpecType(ref v) => v.as_ref(),
20633            Self::ScSpecTypeOption(ref v) => v.as_ref(),
20634            Self::ScSpecTypeResult(ref v) => v.as_ref(),
20635            Self::ScSpecTypeVec(ref v) => v.as_ref(),
20636            Self::ScSpecTypeMap(ref v) => v.as_ref(),
20637            Self::ScSpecTypeTuple(ref v) => v.as_ref(),
20638            Self::ScSpecTypeBytesN(ref v) => v.as_ref(),
20639            Self::ScSpecTypeUdt(ref v) => v.as_ref(),
20640            Self::ScSpecTypeDef(ref v) => v.as_ref(),
20641            Self::ScSpecUdtStructFieldV0(ref v) => v.as_ref(),
20642            Self::ScSpecUdtStructV0(ref v) => v.as_ref(),
20643            Self::ScSpecUdtUnionCaseVoidV0(ref v) => v.as_ref(),
20644            Self::ScSpecUdtUnionCaseTupleV0(ref v) => v.as_ref(),
20645            Self::ScSpecUdtUnionCaseV0Kind(ref v) => v.as_ref(),
20646            Self::ScSpecUdtUnionCaseV0(ref v) => v.as_ref(),
20647            Self::ScSpecUdtUnionV0(ref v) => v.as_ref(),
20648            Self::ScSpecUdtEnumCaseV0(ref v) => v.as_ref(),
20649            Self::ScSpecUdtEnumV0(ref v) => v.as_ref(),
20650            Self::ScSpecUdtErrorEnumCaseV0(ref v) => v.as_ref(),
20651            Self::ScSpecUdtErrorEnumV0(ref v) => v.as_ref(),
20652            Self::ScSpecFunctionInputV0(ref v) => v.as_ref(),
20653            Self::ScSpecFunctionV0(ref v) => v.as_ref(),
20654            Self::ScSpecEventParamLocationV0(ref v) => v.as_ref(),
20655            Self::ScSpecEventParamV0(ref v) => v.as_ref(),
20656            Self::ScSpecEventDataFormat(ref v) => v.as_ref(),
20657            Self::ScSpecEventV0(ref v) => v.as_ref(),
20658            Self::ScSpecEntryKind(ref v) => v.as_ref(),
20659            Self::ScSpecEntry(ref v) => v.as_ref(),
20660            Self::ScBytes(ref v) => v.as_ref(),
20661            Self::ScString(ref v) => v.as_ref(),
20662            Self::ScSymbol(ref v) => v.as_ref(),
20663            Self::ScValType(ref v) => v.as_ref(),
20664            Self::ScErrorType(ref v) => v.as_ref(),
20665            Self::ScErrorCode(ref v) => v.as_ref(),
20666            Self::ScError(ref v) => v.as_ref(),
20667            Self::UInt128Parts(ref v) => v.as_ref(),
20668            Self::Int128Parts(ref v) => v.as_ref(),
20669            Self::UInt256Parts(ref v) => v.as_ref(),
20670            Self::Int256Parts(ref v) => v.as_ref(),
20671            Self::ContractExecutableType(ref v) => v.as_ref(),
20672            Self::ScAddressType(ref v) => v.as_ref(),
20673            Self::MuxedEd25519Account(ref v) => v.as_ref(),
20674            #[cfg(feature = "cap_0084_muxed_contract")]
20675            Self::MuxedContract(ref v) => v.as_ref(),
20676            Self::ScAddress(ref v) => v.as_ref(),
20677            Self::ContractExecutableExternalRef(ref v) => v.as_ref(),
20678            Self::ContractExecutable(ref v) => v.as_ref(),
20679            Self::ScVec(ref v) => v.as_ref(),
20680            Self::ScMap(ref v) => v.as_ref(),
20681            Self::ScNonceKey(ref v) => v.as_ref(),
20682            Self::ScContractInstance(ref v) => v.as_ref(),
20683            Self::ScVal(ref v) => v.as_ref(),
20684            Self::ScMapEntry(ref v) => v.as_ref(),
20685            Self::LedgerCloseMetaBatch(ref v) => v.as_ref(),
20686            Self::StoredTransactionSet(ref v) => v.as_ref(),
20687            Self::StoredDebugTransactionSet(ref v) => v.as_ref(),
20688            Self::PersistedScpStateV0(ref v) => v.as_ref(),
20689            Self::PersistedScpStateV1(ref v) => v.as_ref(),
20690            Self::PersistedScpState(ref v) => v.as_ref(),
20691            Self::Thresholds(ref v) => v.as_ref(),
20692            Self::String32(ref v) => v.as_ref(),
20693            Self::String64(ref v) => v.as_ref(),
20694            Self::SequenceNumber(ref v) => v.as_ref(),
20695            Self::DataValue(ref v) => v.as_ref(),
20696            Self::AssetCode4(ref v) => v.as_ref(),
20697            Self::AssetCode12(ref v) => v.as_ref(),
20698            Self::AssetType(ref v) => v.as_ref(),
20699            Self::AssetCode(ref v) => v.as_ref(),
20700            Self::AlphaNum4(ref v) => v.as_ref(),
20701            Self::AlphaNum12(ref v) => v.as_ref(),
20702            Self::Asset(ref v) => v.as_ref(),
20703            Self::Price(ref v) => v.as_ref(),
20704            Self::Liabilities(ref v) => v.as_ref(),
20705            Self::ThresholdIndexes(ref v) => v.as_ref(),
20706            Self::LedgerEntryType(ref v) => v.as_ref(),
20707            Self::Signer(ref v) => v.as_ref(),
20708            Self::AccountFlags(ref v) => v.as_ref(),
20709            Self::SponsorshipDescriptor(ref v) => v.as_ref(),
20710            Self::AccountEntryExtensionV3(ref v) => v.as_ref(),
20711            Self::AccountEntryExtensionV2(ref v) => v.as_ref(),
20712            Self::AccountEntryExtensionV2Ext(ref v) => v.as_ref(),
20713            Self::AccountEntryExtensionV1(ref v) => v.as_ref(),
20714            Self::AccountEntryExtensionV1Ext(ref v) => v.as_ref(),
20715            Self::AccountEntry(ref v) => v.as_ref(),
20716            Self::AccountEntryExt(ref v) => v.as_ref(),
20717            Self::TrustLineFlags(ref v) => v.as_ref(),
20718            Self::LiquidityPoolType(ref v) => v.as_ref(),
20719            Self::TrustLineAsset(ref v) => v.as_ref(),
20720            Self::TrustLineEntryExtensionV2(ref v) => v.as_ref(),
20721            Self::TrustLineEntryExtensionV2Ext(ref v) => v.as_ref(),
20722            Self::TrustLineEntry(ref v) => v.as_ref(),
20723            Self::TrustLineEntryExt(ref v) => v.as_ref(),
20724            Self::TrustLineEntryV1(ref v) => v.as_ref(),
20725            Self::TrustLineEntryV1Ext(ref v) => v.as_ref(),
20726            Self::OfferEntryFlags(ref v) => v.as_ref(),
20727            Self::OfferEntry(ref v) => v.as_ref(),
20728            Self::OfferEntryExt(ref v) => v.as_ref(),
20729            Self::DataEntry(ref v) => v.as_ref(),
20730            Self::DataEntryExt(ref v) => v.as_ref(),
20731            Self::ClaimPredicateType(ref v) => v.as_ref(),
20732            Self::ClaimPredicate(ref v) => v.as_ref(),
20733            Self::ClaimantType(ref v) => v.as_ref(),
20734            Self::Claimant(ref v) => v.as_ref(),
20735            Self::ClaimantV0(ref v) => v.as_ref(),
20736            Self::ClaimableBalanceFlags(ref v) => v.as_ref(),
20737            Self::ClaimableBalanceEntryExtensionV1(ref v) => v.as_ref(),
20738            Self::ClaimableBalanceEntryExtensionV1Ext(ref v) => v.as_ref(),
20739            Self::ClaimableBalanceEntry(ref v) => v.as_ref(),
20740            Self::ClaimableBalanceEntryExt(ref v) => v.as_ref(),
20741            Self::LiquidityPoolConstantProductParameters(ref v) => v.as_ref(),
20742            Self::LiquidityPoolEntry(ref v) => v.as_ref(),
20743            Self::LiquidityPoolEntryBody(ref v) => v.as_ref(),
20744            Self::LiquidityPoolEntryConstantProduct(ref v) => v.as_ref(),
20745            Self::ContractDataDurability(ref v) => v.as_ref(),
20746            Self::ContractDataEntry(ref v) => v.as_ref(),
20747            Self::ContractCodeCostInputs(ref v) => v.as_ref(),
20748            Self::ContractCodeEntry(ref v) => v.as_ref(),
20749            Self::ContractCodeEntryExt(ref v) => v.as_ref(),
20750            Self::ContractCodeEntryV1(ref v) => v.as_ref(),
20751            Self::TtlEntry(ref v) => v.as_ref(),
20752            Self::LedgerEntryExtensionV1(ref v) => v.as_ref(),
20753            Self::LedgerEntryExtensionV1Ext(ref v) => v.as_ref(),
20754            Self::LedgerEntry(ref v) => v.as_ref(),
20755            Self::LedgerEntryData(ref v) => v.as_ref(),
20756            Self::LedgerEntryExt(ref v) => v.as_ref(),
20757            Self::LedgerKey(ref v) => v.as_ref(),
20758            Self::LedgerKeyAccount(ref v) => v.as_ref(),
20759            Self::LedgerKeyTrustLine(ref v) => v.as_ref(),
20760            Self::LedgerKeyOffer(ref v) => v.as_ref(),
20761            Self::LedgerKeyData(ref v) => v.as_ref(),
20762            Self::LedgerKeyClaimableBalance(ref v) => v.as_ref(),
20763            Self::LedgerKeyLiquidityPool(ref v) => v.as_ref(),
20764            Self::LedgerKeyContractData(ref v) => v.as_ref(),
20765            Self::LedgerKeyContractCode(ref v) => v.as_ref(),
20766            Self::LedgerKeyConfigSetting(ref v) => v.as_ref(),
20767            Self::LedgerKeyTtl(ref v) => v.as_ref(),
20768            Self::EnvelopeType(ref v) => v.as_ref(),
20769            Self::BucketListType(ref v) => v.as_ref(),
20770            Self::BucketEntryType(ref v) => v.as_ref(),
20771            Self::HotArchiveBucketEntryType(ref v) => v.as_ref(),
20772            Self::BucketMetadata(ref v) => v.as_ref(),
20773            Self::BucketMetadataExt(ref v) => v.as_ref(),
20774            Self::BucketEntry(ref v) => v.as_ref(),
20775            Self::HotArchiveBucketEntry(ref v) => v.as_ref(),
20776            Self::UpgradeType(ref v) => v.as_ref(),
20777            Self::StellarValueType(ref v) => v.as_ref(),
20778            Self::LedgerCloseValueSignature(ref v) => v.as_ref(),
20779            Self::StellarValue(ref v) => v.as_ref(),
20780            Self::StellarValueExt(ref v) => v.as_ref(),
20781            Self::StellarValueProposedValue(ref v) => v.as_ref(),
20782            Self::LedgerHeaderFlags(ref v) => v.as_ref(),
20783            Self::LedgerHeaderExtensionV1(ref v) => v.as_ref(),
20784            Self::LedgerHeaderExtensionV1Ext(ref v) => v.as_ref(),
20785            Self::LedgerHeader(ref v) => v.as_ref(),
20786            Self::LedgerHeaderExt(ref v) => v.as_ref(),
20787            Self::LedgerUpgradeType(ref v) => v.as_ref(),
20788            Self::ConfigUpgradeSetKey(ref v) => v.as_ref(),
20789            Self::LedgerUpgrade(ref v) => v.as_ref(),
20790            Self::ConfigUpgradeSet(ref v) => v.as_ref(),
20791            Self::TxSetComponentType(ref v) => v.as_ref(),
20792            Self::DependentTxCluster(ref v) => v.as_ref(),
20793            Self::ParallelTxExecutionStage(ref v) => v.as_ref(),
20794            Self::ParallelTxsComponent(ref v) => v.as_ref(),
20795            Self::TxSetComponent(ref v) => v.as_ref(),
20796            Self::TxSetComponentTxsMaybeDiscountedFee(ref v) => v.as_ref(),
20797            Self::TransactionPhase(ref v) => v.as_ref(),
20798            Self::TransactionSet(ref v) => v.as_ref(),
20799            Self::TransactionSetV1(ref v) => v.as_ref(),
20800            Self::GeneralizedTransactionSet(ref v) => v.as_ref(),
20801            Self::TransactionResultPair(ref v) => v.as_ref(),
20802            Self::TransactionResultSet(ref v) => v.as_ref(),
20803            Self::TransactionHistoryEntry(ref v) => v.as_ref(),
20804            Self::TransactionHistoryEntryExt(ref v) => v.as_ref(),
20805            Self::TransactionHistoryResultEntry(ref v) => v.as_ref(),
20806            Self::TransactionHistoryResultEntryExt(ref v) => v.as_ref(),
20807            Self::LedgerHeaderHistoryEntry(ref v) => v.as_ref(),
20808            Self::LedgerHeaderHistoryEntryExt(ref v) => v.as_ref(),
20809            Self::LedgerScpMessages(ref v) => v.as_ref(),
20810            Self::ScpHistoryEntryV0(ref v) => v.as_ref(),
20811            Self::ScpHistoryEntry(ref v) => v.as_ref(),
20812            Self::LedgerEntryChangeType(ref v) => v.as_ref(),
20813            Self::LedgerEntryChange(ref v) => v.as_ref(),
20814            Self::LedgerEntryChanges(ref v) => v.as_ref(),
20815            Self::OperationMeta(ref v) => v.as_ref(),
20816            Self::TransactionMetaV1(ref v) => v.as_ref(),
20817            Self::TransactionMetaV2(ref v) => v.as_ref(),
20818            Self::ContractEventType(ref v) => v.as_ref(),
20819            Self::ContractEvent(ref v) => v.as_ref(),
20820            Self::ContractEventBody(ref v) => v.as_ref(),
20821            Self::ContractEventV0(ref v) => v.as_ref(),
20822            Self::DiagnosticEvent(ref v) => v.as_ref(),
20823            Self::SorobanTransactionMetaExtV1(ref v) => v.as_ref(),
20824            Self::SorobanTransactionMetaExt(ref v) => v.as_ref(),
20825            Self::SorobanTransactionMeta(ref v) => v.as_ref(),
20826            Self::TransactionMetaV3(ref v) => v.as_ref(),
20827            Self::OperationMetaV2(ref v) => v.as_ref(),
20828            Self::SorobanTransactionMetaV2(ref v) => v.as_ref(),
20829            Self::TransactionEventStage(ref v) => v.as_ref(),
20830            Self::TransactionEvent(ref v) => v.as_ref(),
20831            Self::TransactionMetaV4(ref v) => v.as_ref(),
20832            Self::InvokeHostFunctionSuccessPreImage(ref v) => v.as_ref(),
20833            Self::TransactionMeta(ref v) => v.as_ref(),
20834            Self::TransactionResultMeta(ref v) => v.as_ref(),
20835            Self::TransactionResultMetaV1(ref v) => v.as_ref(),
20836            Self::UpgradeEntryMeta(ref v) => v.as_ref(),
20837            Self::LedgerCloseMetaV0(ref v) => v.as_ref(),
20838            Self::LedgerCloseMetaExtV1(ref v) => v.as_ref(),
20839            Self::LedgerCloseMetaExt(ref v) => v.as_ref(),
20840            Self::LedgerCloseMetaV1(ref v) => v.as_ref(),
20841            Self::LedgerCloseMetaV2(ref v) => v.as_ref(),
20842            Self::LedgerCloseMeta(ref v) => v.as_ref(),
20843            Self::ErrorCode(ref v) => v.as_ref(),
20844            Self::SError(ref v) => v.as_ref(),
20845            Self::SendMore(ref v) => v.as_ref(),
20846            Self::SendMoreExtended(ref v) => v.as_ref(),
20847            Self::AuthCert(ref v) => v.as_ref(),
20848            Self::Hello(ref v) => v.as_ref(),
20849            Self::Auth(ref v) => v.as_ref(),
20850            Self::IpAddrType(ref v) => v.as_ref(),
20851            Self::PeerAddress(ref v) => v.as_ref(),
20852            Self::PeerAddressIp(ref v) => v.as_ref(),
20853            Self::MessageType(ref v) => v.as_ref(),
20854            Self::DontHave(ref v) => v.as_ref(),
20855            Self::SurveyMessageCommandType(ref v) => v.as_ref(),
20856            Self::SurveyMessageResponseType(ref v) => v.as_ref(),
20857            Self::TimeSlicedSurveyStartCollectingMessage(ref v) => v.as_ref(),
20858            Self::SignedTimeSlicedSurveyStartCollectingMessage(ref v) => v.as_ref(),
20859            Self::TimeSlicedSurveyStopCollectingMessage(ref v) => v.as_ref(),
20860            Self::SignedTimeSlicedSurveyStopCollectingMessage(ref v) => v.as_ref(),
20861            Self::SurveyRequestMessage(ref v) => v.as_ref(),
20862            Self::TimeSlicedSurveyRequestMessage(ref v) => v.as_ref(),
20863            Self::SignedTimeSlicedSurveyRequestMessage(ref v) => v.as_ref(),
20864            Self::EncryptedBody(ref v) => v.as_ref(),
20865            Self::SurveyResponseMessage(ref v) => v.as_ref(),
20866            Self::TimeSlicedSurveyResponseMessage(ref v) => v.as_ref(),
20867            Self::SignedTimeSlicedSurveyResponseMessage(ref v) => v.as_ref(),
20868            Self::PeerStats(ref v) => v.as_ref(),
20869            Self::TimeSlicedNodeData(ref v) => v.as_ref(),
20870            Self::TimeSlicedPeerData(ref v) => v.as_ref(),
20871            Self::TimeSlicedPeerDataList(ref v) => v.as_ref(),
20872            Self::TopologyResponseBodyV2(ref v) => v.as_ref(),
20873            Self::SurveyResponseBody(ref v) => v.as_ref(),
20874            Self::TxAdvertVector(ref v) => v.as_ref(),
20875            Self::FloodAdvert(ref v) => v.as_ref(),
20876            Self::TxDemandVector(ref v) => v.as_ref(),
20877            Self::FloodDemand(ref v) => v.as_ref(),
20878            Self::StellarMessage(ref v) => v.as_ref(),
20879            Self::AuthenticatedMessage(ref v) => v.as_ref(),
20880            Self::AuthenticatedMessageV0(ref v) => v.as_ref(),
20881            Self::LiquidityPoolParameters(ref v) => v.as_ref(),
20882            Self::MuxedAccount(ref v) => v.as_ref(),
20883            Self::MuxedAccountMed25519(ref v) => v.as_ref(),
20884            Self::DecoratedSignature(ref v) => v.as_ref(),
20885            Self::OperationType(ref v) => v.as_ref(),
20886            Self::CreateAccountOp(ref v) => v.as_ref(),
20887            Self::PaymentOp(ref v) => v.as_ref(),
20888            Self::PathPaymentStrictReceiveOp(ref v) => v.as_ref(),
20889            Self::PathPaymentStrictSendOp(ref v) => v.as_ref(),
20890            Self::ManageSellOfferOp(ref v) => v.as_ref(),
20891            Self::ManageBuyOfferOp(ref v) => v.as_ref(),
20892            Self::CreatePassiveSellOfferOp(ref v) => v.as_ref(),
20893            Self::SetOptionsOp(ref v) => v.as_ref(),
20894            Self::ChangeTrustAsset(ref v) => v.as_ref(),
20895            Self::ChangeTrustOp(ref v) => v.as_ref(),
20896            Self::AllowTrustOp(ref v) => v.as_ref(),
20897            Self::ManageDataOp(ref v) => v.as_ref(),
20898            Self::BumpSequenceOp(ref v) => v.as_ref(),
20899            Self::CreateClaimableBalanceOp(ref v) => v.as_ref(),
20900            Self::ClaimClaimableBalanceOp(ref v) => v.as_ref(),
20901            Self::BeginSponsoringFutureReservesOp(ref v) => v.as_ref(),
20902            Self::RevokeSponsorshipType(ref v) => v.as_ref(),
20903            Self::RevokeSponsorshipOp(ref v) => v.as_ref(),
20904            Self::RevokeSponsorshipOpSigner(ref v) => v.as_ref(),
20905            Self::ClawbackOp(ref v) => v.as_ref(),
20906            Self::ClawbackClaimableBalanceOp(ref v) => v.as_ref(),
20907            Self::SetTrustLineFlagsOp(ref v) => v.as_ref(),
20908            Self::LiquidityPoolDepositOp(ref v) => v.as_ref(),
20909            Self::LiquidityPoolWithdrawOp(ref v) => v.as_ref(),
20910            Self::HostFunctionType(ref v) => v.as_ref(),
20911            Self::ContractIdPreimageType(ref v) => v.as_ref(),
20912            Self::ContractIdPreimage(ref v) => v.as_ref(),
20913            Self::ContractIdPreimageFromAddress(ref v) => v.as_ref(),
20914            Self::CreateContractArgs(ref v) => v.as_ref(),
20915            Self::CreateContractArgsV2(ref v) => v.as_ref(),
20916            Self::InvokeContractArgs(ref v) => v.as_ref(),
20917            Self::HostFunction(ref v) => v.as_ref(),
20918            Self::SorobanAuthorizedFunctionType(ref v) => v.as_ref(),
20919            Self::SorobanAuthorizedFunction(ref v) => v.as_ref(),
20920            Self::SorobanAuthorizedInvocation(ref v) => v.as_ref(),
20921            Self::SorobanAddressCredentials(ref v) => v.as_ref(),
20922            Self::SorobanDelegateSignature(ref v) => v.as_ref(),
20923            Self::SorobanAddressCredentialsWithDelegates(ref v) => v.as_ref(),
20924            Self::SorobanCredentialsType(ref v) => v.as_ref(),
20925            Self::SorobanCredentials(ref v) => v.as_ref(),
20926            Self::SorobanAuthorizationEntry(ref v) => v.as_ref(),
20927            Self::SorobanAuthorizationEntries(ref v) => v.as_ref(),
20928            Self::InvokeHostFunctionOp(ref v) => v.as_ref(),
20929            Self::ExtendFootprintTtlOp(ref v) => v.as_ref(),
20930            Self::RestoreFootprintOp(ref v) => v.as_ref(),
20931            Self::Operation(ref v) => v.as_ref(),
20932            Self::OperationBody(ref v) => v.as_ref(),
20933            Self::HashIdPreimage(ref v) => v.as_ref(),
20934            Self::HashIdPreimageOperationId(ref v) => v.as_ref(),
20935            Self::HashIdPreimageRevokeId(ref v) => v.as_ref(),
20936            Self::HashIdPreimageContractId(ref v) => v.as_ref(),
20937            Self::HashIdPreimageSorobanAuthorization(ref v) => v.as_ref(),
20938            Self::HashIdPreimageSorobanAuthorizationWithAddress(ref v) => v.as_ref(),
20939            Self::MemoType(ref v) => v.as_ref(),
20940            Self::Memo(ref v) => v.as_ref(),
20941            Self::TimeBounds(ref v) => v.as_ref(),
20942            Self::LedgerBounds(ref v) => v.as_ref(),
20943            Self::PreconditionsV2(ref v) => v.as_ref(),
20944            Self::PreconditionType(ref v) => v.as_ref(),
20945            Self::Preconditions(ref v) => v.as_ref(),
20946            Self::LedgerFootprint(ref v) => v.as_ref(),
20947            Self::SorobanResources(ref v) => v.as_ref(),
20948            Self::SorobanResourcesExtV0(ref v) => v.as_ref(),
20949            Self::SorobanTransactionData(ref v) => v.as_ref(),
20950            Self::SorobanTransactionDataExt(ref v) => v.as_ref(),
20951            Self::TransactionV0(ref v) => v.as_ref(),
20952            Self::TransactionV0Ext(ref v) => v.as_ref(),
20953            Self::TransactionV0Envelope(ref v) => v.as_ref(),
20954            Self::Transaction(ref v) => v.as_ref(),
20955            Self::TransactionExt(ref v) => v.as_ref(),
20956            Self::TransactionV1Envelope(ref v) => v.as_ref(),
20957            Self::FeeBumpTransaction(ref v) => v.as_ref(),
20958            Self::FeeBumpTransactionInnerTx(ref v) => v.as_ref(),
20959            Self::FeeBumpTransactionExt(ref v) => v.as_ref(),
20960            Self::FeeBumpTransactionEnvelope(ref v) => v.as_ref(),
20961            Self::TransactionEnvelope(ref v) => v.as_ref(),
20962            Self::TransactionSignaturePayload(ref v) => v.as_ref(),
20963            Self::TransactionSignaturePayloadTaggedTransaction(ref v) => v.as_ref(),
20964            Self::ClaimAtomType(ref v) => v.as_ref(),
20965            Self::ClaimOfferAtomV0(ref v) => v.as_ref(),
20966            Self::ClaimOfferAtom(ref v) => v.as_ref(),
20967            Self::ClaimLiquidityAtom(ref v) => v.as_ref(),
20968            Self::ClaimAtom(ref v) => v.as_ref(),
20969            Self::CreateAccountResultCode(ref v) => v.as_ref(),
20970            Self::CreateAccountResult(ref v) => v.as_ref(),
20971            Self::PaymentResultCode(ref v) => v.as_ref(),
20972            Self::PaymentResult(ref v) => v.as_ref(),
20973            Self::PathPaymentStrictReceiveResultCode(ref v) => v.as_ref(),
20974            Self::SimplePaymentResult(ref v) => v.as_ref(),
20975            Self::PathPaymentStrictReceiveResult(ref v) => v.as_ref(),
20976            Self::PathPaymentStrictReceiveResultSuccess(ref v) => v.as_ref(),
20977            Self::PathPaymentStrictSendResultCode(ref v) => v.as_ref(),
20978            Self::PathPaymentStrictSendResult(ref v) => v.as_ref(),
20979            Self::PathPaymentStrictSendResultSuccess(ref v) => v.as_ref(),
20980            Self::ManageSellOfferResultCode(ref v) => v.as_ref(),
20981            Self::ManageOfferEffect(ref v) => v.as_ref(),
20982            Self::ManageOfferSuccessResult(ref v) => v.as_ref(),
20983            Self::ManageOfferSuccessResultOffer(ref v) => v.as_ref(),
20984            Self::ManageSellOfferResult(ref v) => v.as_ref(),
20985            Self::ManageBuyOfferResultCode(ref v) => v.as_ref(),
20986            Self::ManageBuyOfferResult(ref v) => v.as_ref(),
20987            Self::SetOptionsResultCode(ref v) => v.as_ref(),
20988            Self::SetOptionsResult(ref v) => v.as_ref(),
20989            Self::ChangeTrustResultCode(ref v) => v.as_ref(),
20990            Self::ChangeTrustResult(ref v) => v.as_ref(),
20991            Self::AllowTrustResultCode(ref v) => v.as_ref(),
20992            Self::AllowTrustResult(ref v) => v.as_ref(),
20993            Self::AccountMergeResultCode(ref v) => v.as_ref(),
20994            Self::AccountMergeResult(ref v) => v.as_ref(),
20995            Self::InflationResultCode(ref v) => v.as_ref(),
20996            Self::InflationPayout(ref v) => v.as_ref(),
20997            Self::InflationResult(ref v) => v.as_ref(),
20998            Self::ManageDataResultCode(ref v) => v.as_ref(),
20999            Self::ManageDataResult(ref v) => v.as_ref(),
21000            Self::BumpSequenceResultCode(ref v) => v.as_ref(),
21001            Self::BumpSequenceResult(ref v) => v.as_ref(),
21002            Self::CreateClaimableBalanceResultCode(ref v) => v.as_ref(),
21003            Self::CreateClaimableBalanceResult(ref v) => v.as_ref(),
21004            Self::ClaimClaimableBalanceResultCode(ref v) => v.as_ref(),
21005            Self::ClaimClaimableBalanceResult(ref v) => v.as_ref(),
21006            Self::BeginSponsoringFutureReservesResultCode(ref v) => v.as_ref(),
21007            Self::BeginSponsoringFutureReservesResult(ref v) => v.as_ref(),
21008            Self::EndSponsoringFutureReservesResultCode(ref v) => v.as_ref(),
21009            Self::EndSponsoringFutureReservesResult(ref v) => v.as_ref(),
21010            Self::RevokeSponsorshipResultCode(ref v) => v.as_ref(),
21011            Self::RevokeSponsorshipResult(ref v) => v.as_ref(),
21012            Self::ClawbackResultCode(ref v) => v.as_ref(),
21013            Self::ClawbackResult(ref v) => v.as_ref(),
21014            Self::ClawbackClaimableBalanceResultCode(ref v) => v.as_ref(),
21015            Self::ClawbackClaimableBalanceResult(ref v) => v.as_ref(),
21016            Self::SetTrustLineFlagsResultCode(ref v) => v.as_ref(),
21017            Self::SetTrustLineFlagsResult(ref v) => v.as_ref(),
21018            Self::LiquidityPoolDepositResultCode(ref v) => v.as_ref(),
21019            Self::LiquidityPoolDepositResult(ref v) => v.as_ref(),
21020            Self::LiquidityPoolWithdrawResultCode(ref v) => v.as_ref(),
21021            Self::LiquidityPoolWithdrawResult(ref v) => v.as_ref(),
21022            Self::InvokeHostFunctionResultCode(ref v) => v.as_ref(),
21023            Self::InvokeHostFunctionResult(ref v) => v.as_ref(),
21024            Self::ExtendFootprintTtlResultCode(ref v) => v.as_ref(),
21025            Self::ExtendFootprintTtlResult(ref v) => v.as_ref(),
21026            Self::RestoreFootprintResultCode(ref v) => v.as_ref(),
21027            Self::RestoreFootprintResult(ref v) => v.as_ref(),
21028            Self::OperationResultCode(ref v) => v.as_ref(),
21029            Self::OperationResult(ref v) => v.as_ref(),
21030            Self::OperationResultTr(ref v) => v.as_ref(),
21031            Self::TransactionResultCode(ref v) => v.as_ref(),
21032            Self::InnerTransactionResult(ref v) => v.as_ref(),
21033            Self::InnerTransactionResultResult(ref v) => v.as_ref(),
21034            Self::InnerTransactionResultExt(ref v) => v.as_ref(),
21035            Self::InnerTransactionResultPair(ref v) => v.as_ref(),
21036            Self::TransactionResult(ref v) => v.as_ref(),
21037            Self::TransactionResultResult(ref v) => v.as_ref(),
21038            Self::TransactionResultExt(ref v) => v.as_ref(),
21039            Self::Hash(ref v) => v.as_ref(),
21040            Self::Uint256(ref v) => v.as_ref(),
21041            Self::Uint32(ref v) => v.as_ref(),
21042            Self::Int32(ref v) => v.as_ref(),
21043            Self::Uint64(ref v) => v.as_ref(),
21044            Self::Int64(ref v) => v.as_ref(),
21045            Self::TimePoint(ref v) => v.as_ref(),
21046            Self::Duration(ref v) => v.as_ref(),
21047            Self::ExtensionPoint(ref v) => v.as_ref(),
21048            Self::CryptoKeyType(ref v) => v.as_ref(),
21049            Self::PublicKeyType(ref v) => v.as_ref(),
21050            Self::SignerKeyType(ref v) => v.as_ref(),
21051            Self::PublicKey(ref v) => v.as_ref(),
21052            Self::SignerKey(ref v) => v.as_ref(),
21053            Self::SignerKeyEd25519SignedPayload(ref v) => v.as_ref(),
21054            Self::Signature(ref v) => v.as_ref(),
21055            Self::SignatureHint(ref v) => v.as_ref(),
21056            Self::NodeId(ref v) => v.as_ref(),
21057            Self::AccountId(ref v) => v.as_ref(),
21058            Self::ContractId(ref v) => v.as_ref(),
21059            Self::Curve25519Secret(ref v) => v.as_ref(),
21060            Self::Curve25519Public(ref v) => v.as_ref(),
21061            Self::HmacSha256Key(ref v) => v.as_ref(),
21062            Self::HmacSha256Mac(ref v) => v.as_ref(),
21063            Self::ShortHashSeed(ref v) => v.as_ref(),
21064            Self::BinaryFuseFilterType(ref v) => v.as_ref(),
21065            Self::SerializedBinaryFuseFilter(ref v) => v.as_ref(),
21066            Self::PoolId(ref v) => v.as_ref(),
21067            Self::ClaimableBalanceIdType(ref v) => v.as_ref(),
21068            Self::ClaimableBalanceId(ref v) => v.as_ref(),
21069            #[cfg(feature = "test_feature")]
21070            Self::TestNextType(ref v) => v.as_ref(),
21071        }
21072    }
21073
21074    #[must_use]
21075    #[allow(clippy::too_many_lines)]
21076    pub const fn name(&self) -> &'static str {
21077        match self {
21078            Self::Value(_) => "Value",
21079            Self::ScpBallot(_) => "ScpBallot",
21080            Self::ScpStatementType(_) => "ScpStatementType",
21081            Self::ScpNomination(_) => "ScpNomination",
21082            Self::ScpStatement(_) => "ScpStatement",
21083            Self::ScpStatementPledges(_) => "ScpStatementPledges",
21084            Self::ScpStatementPrepare(_) => "ScpStatementPrepare",
21085            Self::ScpStatementConfirm(_) => "ScpStatementConfirm",
21086            Self::ScpStatementExternalize(_) => "ScpStatementExternalize",
21087            Self::ScpEnvelope(_) => "ScpEnvelope",
21088            Self::ScpQuorumSet(_) => "ScpQuorumSet",
21089            Self::EncodedLedgerKey(_) => "EncodedLedgerKey",
21090            Self::ConfigSettingContractExecutionLanesV0(_) => {
21091                "ConfigSettingContractExecutionLanesV0"
21092            }
21093            Self::ConfigSettingContractComputeV0(_) => "ConfigSettingContractComputeV0",
21094            Self::ConfigSettingContractParallelComputeV0(_) => {
21095                "ConfigSettingContractParallelComputeV0"
21096            }
21097            Self::ConfigSettingContractLedgerCostV0(_) => "ConfigSettingContractLedgerCostV0",
21098            Self::ConfigSettingContractLedgerCostExtV0(_) => "ConfigSettingContractLedgerCostExtV0",
21099            Self::ConfigSettingContractHistoricalDataV0(_) => {
21100                "ConfigSettingContractHistoricalDataV0"
21101            }
21102            Self::ConfigSettingContractEventsV0(_) => "ConfigSettingContractEventsV0",
21103            Self::ConfigSettingContractBandwidthV0(_) => "ConfigSettingContractBandwidthV0",
21104            Self::ContractCostType(_) => "ContractCostType",
21105            Self::ContractCostParamEntry(_) => "ContractCostParamEntry",
21106            Self::StateArchivalSettings(_) => "StateArchivalSettings",
21107            Self::EvictionIterator(_) => "EvictionIterator",
21108            Self::ConfigSettingScpTiming(_) => "ConfigSettingScpTiming",
21109            Self::FrozenLedgerKeys(_) => "FrozenLedgerKeys",
21110            Self::FrozenLedgerKeysDelta(_) => "FrozenLedgerKeysDelta",
21111            Self::FreezeBypassTxs(_) => "FreezeBypassTxs",
21112            Self::FreezeBypassTxsDelta(_) => "FreezeBypassTxsDelta",
21113            Self::ContractCostParams(_) => "ContractCostParams",
21114            Self::ConfigSettingId(_) => "ConfigSettingId",
21115            Self::ConfigSettingEntry(_) => "ConfigSettingEntry",
21116            Self::ScEnvMetaKind(_) => "ScEnvMetaKind",
21117            Self::ScEnvMetaEntry(_) => "ScEnvMetaEntry",
21118            Self::ScEnvMetaEntryInterfaceVersion(_) => "ScEnvMetaEntryInterfaceVersion",
21119            Self::ScMetaV0(_) => "ScMetaV0",
21120            Self::ScMetaKind(_) => "ScMetaKind",
21121            Self::ScMetaEntry(_) => "ScMetaEntry",
21122            Self::ScSpecType(_) => "ScSpecType",
21123            Self::ScSpecTypeOption(_) => "ScSpecTypeOption",
21124            Self::ScSpecTypeResult(_) => "ScSpecTypeResult",
21125            Self::ScSpecTypeVec(_) => "ScSpecTypeVec",
21126            Self::ScSpecTypeMap(_) => "ScSpecTypeMap",
21127            Self::ScSpecTypeTuple(_) => "ScSpecTypeTuple",
21128            Self::ScSpecTypeBytesN(_) => "ScSpecTypeBytesN",
21129            Self::ScSpecTypeUdt(_) => "ScSpecTypeUdt",
21130            Self::ScSpecTypeDef(_) => "ScSpecTypeDef",
21131            Self::ScSpecUdtStructFieldV0(_) => "ScSpecUdtStructFieldV0",
21132            Self::ScSpecUdtStructV0(_) => "ScSpecUdtStructV0",
21133            Self::ScSpecUdtUnionCaseVoidV0(_) => "ScSpecUdtUnionCaseVoidV0",
21134            Self::ScSpecUdtUnionCaseTupleV0(_) => "ScSpecUdtUnionCaseTupleV0",
21135            Self::ScSpecUdtUnionCaseV0Kind(_) => "ScSpecUdtUnionCaseV0Kind",
21136            Self::ScSpecUdtUnionCaseV0(_) => "ScSpecUdtUnionCaseV0",
21137            Self::ScSpecUdtUnionV0(_) => "ScSpecUdtUnionV0",
21138            Self::ScSpecUdtEnumCaseV0(_) => "ScSpecUdtEnumCaseV0",
21139            Self::ScSpecUdtEnumV0(_) => "ScSpecUdtEnumV0",
21140            Self::ScSpecUdtErrorEnumCaseV0(_) => "ScSpecUdtErrorEnumCaseV0",
21141            Self::ScSpecUdtErrorEnumV0(_) => "ScSpecUdtErrorEnumV0",
21142            Self::ScSpecFunctionInputV0(_) => "ScSpecFunctionInputV0",
21143            Self::ScSpecFunctionV0(_) => "ScSpecFunctionV0",
21144            Self::ScSpecEventParamLocationV0(_) => "ScSpecEventParamLocationV0",
21145            Self::ScSpecEventParamV0(_) => "ScSpecEventParamV0",
21146            Self::ScSpecEventDataFormat(_) => "ScSpecEventDataFormat",
21147            Self::ScSpecEventV0(_) => "ScSpecEventV0",
21148            Self::ScSpecEntryKind(_) => "ScSpecEntryKind",
21149            Self::ScSpecEntry(_) => "ScSpecEntry",
21150            Self::ScBytes(_) => "ScBytes",
21151            Self::ScString(_) => "ScString",
21152            Self::ScSymbol(_) => "ScSymbol",
21153            Self::ScValType(_) => "ScValType",
21154            Self::ScErrorType(_) => "ScErrorType",
21155            Self::ScErrorCode(_) => "ScErrorCode",
21156            Self::ScError(_) => "ScError",
21157            Self::UInt128Parts(_) => "UInt128Parts",
21158            Self::Int128Parts(_) => "Int128Parts",
21159            Self::UInt256Parts(_) => "UInt256Parts",
21160            Self::Int256Parts(_) => "Int256Parts",
21161            Self::ContractExecutableType(_) => "ContractExecutableType",
21162            Self::ScAddressType(_) => "ScAddressType",
21163            Self::MuxedEd25519Account(_) => "MuxedEd25519Account",
21164            #[cfg(feature = "cap_0084_muxed_contract")]
21165            Self::MuxedContract(_) => "MuxedContract",
21166            Self::ScAddress(_) => "ScAddress",
21167            Self::ContractExecutableExternalRef(_) => "ContractExecutableExternalRef",
21168            Self::ContractExecutable(_) => "ContractExecutable",
21169            Self::ScVec(_) => "ScVec",
21170            Self::ScMap(_) => "ScMap",
21171            Self::ScNonceKey(_) => "ScNonceKey",
21172            Self::ScContractInstance(_) => "ScContractInstance",
21173            Self::ScVal(_) => "ScVal",
21174            Self::ScMapEntry(_) => "ScMapEntry",
21175            Self::LedgerCloseMetaBatch(_) => "LedgerCloseMetaBatch",
21176            Self::StoredTransactionSet(_) => "StoredTransactionSet",
21177            Self::StoredDebugTransactionSet(_) => "StoredDebugTransactionSet",
21178            Self::PersistedScpStateV0(_) => "PersistedScpStateV0",
21179            Self::PersistedScpStateV1(_) => "PersistedScpStateV1",
21180            Self::PersistedScpState(_) => "PersistedScpState",
21181            Self::Thresholds(_) => "Thresholds",
21182            Self::String32(_) => "String32",
21183            Self::String64(_) => "String64",
21184            Self::SequenceNumber(_) => "SequenceNumber",
21185            Self::DataValue(_) => "DataValue",
21186            Self::AssetCode4(_) => "AssetCode4",
21187            Self::AssetCode12(_) => "AssetCode12",
21188            Self::AssetType(_) => "AssetType",
21189            Self::AssetCode(_) => "AssetCode",
21190            Self::AlphaNum4(_) => "AlphaNum4",
21191            Self::AlphaNum12(_) => "AlphaNum12",
21192            Self::Asset(_) => "Asset",
21193            Self::Price(_) => "Price",
21194            Self::Liabilities(_) => "Liabilities",
21195            Self::ThresholdIndexes(_) => "ThresholdIndexes",
21196            Self::LedgerEntryType(_) => "LedgerEntryType",
21197            Self::Signer(_) => "Signer",
21198            Self::AccountFlags(_) => "AccountFlags",
21199            Self::SponsorshipDescriptor(_) => "SponsorshipDescriptor",
21200            Self::AccountEntryExtensionV3(_) => "AccountEntryExtensionV3",
21201            Self::AccountEntryExtensionV2(_) => "AccountEntryExtensionV2",
21202            Self::AccountEntryExtensionV2Ext(_) => "AccountEntryExtensionV2Ext",
21203            Self::AccountEntryExtensionV1(_) => "AccountEntryExtensionV1",
21204            Self::AccountEntryExtensionV1Ext(_) => "AccountEntryExtensionV1Ext",
21205            Self::AccountEntry(_) => "AccountEntry",
21206            Self::AccountEntryExt(_) => "AccountEntryExt",
21207            Self::TrustLineFlags(_) => "TrustLineFlags",
21208            Self::LiquidityPoolType(_) => "LiquidityPoolType",
21209            Self::TrustLineAsset(_) => "TrustLineAsset",
21210            Self::TrustLineEntryExtensionV2(_) => "TrustLineEntryExtensionV2",
21211            Self::TrustLineEntryExtensionV2Ext(_) => "TrustLineEntryExtensionV2Ext",
21212            Self::TrustLineEntry(_) => "TrustLineEntry",
21213            Self::TrustLineEntryExt(_) => "TrustLineEntryExt",
21214            Self::TrustLineEntryV1(_) => "TrustLineEntryV1",
21215            Self::TrustLineEntryV1Ext(_) => "TrustLineEntryV1Ext",
21216            Self::OfferEntryFlags(_) => "OfferEntryFlags",
21217            Self::OfferEntry(_) => "OfferEntry",
21218            Self::OfferEntryExt(_) => "OfferEntryExt",
21219            Self::DataEntry(_) => "DataEntry",
21220            Self::DataEntryExt(_) => "DataEntryExt",
21221            Self::ClaimPredicateType(_) => "ClaimPredicateType",
21222            Self::ClaimPredicate(_) => "ClaimPredicate",
21223            Self::ClaimantType(_) => "ClaimantType",
21224            Self::Claimant(_) => "Claimant",
21225            Self::ClaimantV0(_) => "ClaimantV0",
21226            Self::ClaimableBalanceFlags(_) => "ClaimableBalanceFlags",
21227            Self::ClaimableBalanceEntryExtensionV1(_) => "ClaimableBalanceEntryExtensionV1",
21228            Self::ClaimableBalanceEntryExtensionV1Ext(_) => "ClaimableBalanceEntryExtensionV1Ext",
21229            Self::ClaimableBalanceEntry(_) => "ClaimableBalanceEntry",
21230            Self::ClaimableBalanceEntryExt(_) => "ClaimableBalanceEntryExt",
21231            Self::LiquidityPoolConstantProductParameters(_) => {
21232                "LiquidityPoolConstantProductParameters"
21233            }
21234            Self::LiquidityPoolEntry(_) => "LiquidityPoolEntry",
21235            Self::LiquidityPoolEntryBody(_) => "LiquidityPoolEntryBody",
21236            Self::LiquidityPoolEntryConstantProduct(_) => "LiquidityPoolEntryConstantProduct",
21237            Self::ContractDataDurability(_) => "ContractDataDurability",
21238            Self::ContractDataEntry(_) => "ContractDataEntry",
21239            Self::ContractCodeCostInputs(_) => "ContractCodeCostInputs",
21240            Self::ContractCodeEntry(_) => "ContractCodeEntry",
21241            Self::ContractCodeEntryExt(_) => "ContractCodeEntryExt",
21242            Self::ContractCodeEntryV1(_) => "ContractCodeEntryV1",
21243            Self::TtlEntry(_) => "TtlEntry",
21244            Self::LedgerEntryExtensionV1(_) => "LedgerEntryExtensionV1",
21245            Self::LedgerEntryExtensionV1Ext(_) => "LedgerEntryExtensionV1Ext",
21246            Self::LedgerEntry(_) => "LedgerEntry",
21247            Self::LedgerEntryData(_) => "LedgerEntryData",
21248            Self::LedgerEntryExt(_) => "LedgerEntryExt",
21249            Self::LedgerKey(_) => "LedgerKey",
21250            Self::LedgerKeyAccount(_) => "LedgerKeyAccount",
21251            Self::LedgerKeyTrustLine(_) => "LedgerKeyTrustLine",
21252            Self::LedgerKeyOffer(_) => "LedgerKeyOffer",
21253            Self::LedgerKeyData(_) => "LedgerKeyData",
21254            Self::LedgerKeyClaimableBalance(_) => "LedgerKeyClaimableBalance",
21255            Self::LedgerKeyLiquidityPool(_) => "LedgerKeyLiquidityPool",
21256            Self::LedgerKeyContractData(_) => "LedgerKeyContractData",
21257            Self::LedgerKeyContractCode(_) => "LedgerKeyContractCode",
21258            Self::LedgerKeyConfigSetting(_) => "LedgerKeyConfigSetting",
21259            Self::LedgerKeyTtl(_) => "LedgerKeyTtl",
21260            Self::EnvelopeType(_) => "EnvelopeType",
21261            Self::BucketListType(_) => "BucketListType",
21262            Self::BucketEntryType(_) => "BucketEntryType",
21263            Self::HotArchiveBucketEntryType(_) => "HotArchiveBucketEntryType",
21264            Self::BucketMetadata(_) => "BucketMetadata",
21265            Self::BucketMetadataExt(_) => "BucketMetadataExt",
21266            Self::BucketEntry(_) => "BucketEntry",
21267            Self::HotArchiveBucketEntry(_) => "HotArchiveBucketEntry",
21268            Self::UpgradeType(_) => "UpgradeType",
21269            Self::StellarValueType(_) => "StellarValueType",
21270            Self::LedgerCloseValueSignature(_) => "LedgerCloseValueSignature",
21271            Self::StellarValue(_) => "StellarValue",
21272            Self::StellarValueExt(_) => "StellarValueExt",
21273            Self::StellarValueProposedValue(_) => "StellarValueProposedValue",
21274            Self::LedgerHeaderFlags(_) => "LedgerHeaderFlags",
21275            Self::LedgerHeaderExtensionV1(_) => "LedgerHeaderExtensionV1",
21276            Self::LedgerHeaderExtensionV1Ext(_) => "LedgerHeaderExtensionV1Ext",
21277            Self::LedgerHeader(_) => "LedgerHeader",
21278            Self::LedgerHeaderExt(_) => "LedgerHeaderExt",
21279            Self::LedgerUpgradeType(_) => "LedgerUpgradeType",
21280            Self::ConfigUpgradeSetKey(_) => "ConfigUpgradeSetKey",
21281            Self::LedgerUpgrade(_) => "LedgerUpgrade",
21282            Self::ConfigUpgradeSet(_) => "ConfigUpgradeSet",
21283            Self::TxSetComponentType(_) => "TxSetComponentType",
21284            Self::DependentTxCluster(_) => "DependentTxCluster",
21285            Self::ParallelTxExecutionStage(_) => "ParallelTxExecutionStage",
21286            Self::ParallelTxsComponent(_) => "ParallelTxsComponent",
21287            Self::TxSetComponent(_) => "TxSetComponent",
21288            Self::TxSetComponentTxsMaybeDiscountedFee(_) => "TxSetComponentTxsMaybeDiscountedFee",
21289            Self::TransactionPhase(_) => "TransactionPhase",
21290            Self::TransactionSet(_) => "TransactionSet",
21291            Self::TransactionSetV1(_) => "TransactionSetV1",
21292            Self::GeneralizedTransactionSet(_) => "GeneralizedTransactionSet",
21293            Self::TransactionResultPair(_) => "TransactionResultPair",
21294            Self::TransactionResultSet(_) => "TransactionResultSet",
21295            Self::TransactionHistoryEntry(_) => "TransactionHistoryEntry",
21296            Self::TransactionHistoryEntryExt(_) => "TransactionHistoryEntryExt",
21297            Self::TransactionHistoryResultEntry(_) => "TransactionHistoryResultEntry",
21298            Self::TransactionHistoryResultEntryExt(_) => "TransactionHistoryResultEntryExt",
21299            Self::LedgerHeaderHistoryEntry(_) => "LedgerHeaderHistoryEntry",
21300            Self::LedgerHeaderHistoryEntryExt(_) => "LedgerHeaderHistoryEntryExt",
21301            Self::LedgerScpMessages(_) => "LedgerScpMessages",
21302            Self::ScpHistoryEntryV0(_) => "ScpHistoryEntryV0",
21303            Self::ScpHistoryEntry(_) => "ScpHistoryEntry",
21304            Self::LedgerEntryChangeType(_) => "LedgerEntryChangeType",
21305            Self::LedgerEntryChange(_) => "LedgerEntryChange",
21306            Self::LedgerEntryChanges(_) => "LedgerEntryChanges",
21307            Self::OperationMeta(_) => "OperationMeta",
21308            Self::TransactionMetaV1(_) => "TransactionMetaV1",
21309            Self::TransactionMetaV2(_) => "TransactionMetaV2",
21310            Self::ContractEventType(_) => "ContractEventType",
21311            Self::ContractEvent(_) => "ContractEvent",
21312            Self::ContractEventBody(_) => "ContractEventBody",
21313            Self::ContractEventV0(_) => "ContractEventV0",
21314            Self::DiagnosticEvent(_) => "DiagnosticEvent",
21315            Self::SorobanTransactionMetaExtV1(_) => "SorobanTransactionMetaExtV1",
21316            Self::SorobanTransactionMetaExt(_) => "SorobanTransactionMetaExt",
21317            Self::SorobanTransactionMeta(_) => "SorobanTransactionMeta",
21318            Self::TransactionMetaV3(_) => "TransactionMetaV3",
21319            Self::OperationMetaV2(_) => "OperationMetaV2",
21320            Self::SorobanTransactionMetaV2(_) => "SorobanTransactionMetaV2",
21321            Self::TransactionEventStage(_) => "TransactionEventStage",
21322            Self::TransactionEvent(_) => "TransactionEvent",
21323            Self::TransactionMetaV4(_) => "TransactionMetaV4",
21324            Self::InvokeHostFunctionSuccessPreImage(_) => "InvokeHostFunctionSuccessPreImage",
21325            Self::TransactionMeta(_) => "TransactionMeta",
21326            Self::TransactionResultMeta(_) => "TransactionResultMeta",
21327            Self::TransactionResultMetaV1(_) => "TransactionResultMetaV1",
21328            Self::UpgradeEntryMeta(_) => "UpgradeEntryMeta",
21329            Self::LedgerCloseMetaV0(_) => "LedgerCloseMetaV0",
21330            Self::LedgerCloseMetaExtV1(_) => "LedgerCloseMetaExtV1",
21331            Self::LedgerCloseMetaExt(_) => "LedgerCloseMetaExt",
21332            Self::LedgerCloseMetaV1(_) => "LedgerCloseMetaV1",
21333            Self::LedgerCloseMetaV2(_) => "LedgerCloseMetaV2",
21334            Self::LedgerCloseMeta(_) => "LedgerCloseMeta",
21335            Self::ErrorCode(_) => "ErrorCode",
21336            Self::SError(_) => "SError",
21337            Self::SendMore(_) => "SendMore",
21338            Self::SendMoreExtended(_) => "SendMoreExtended",
21339            Self::AuthCert(_) => "AuthCert",
21340            Self::Hello(_) => "Hello",
21341            Self::Auth(_) => "Auth",
21342            Self::IpAddrType(_) => "IpAddrType",
21343            Self::PeerAddress(_) => "PeerAddress",
21344            Self::PeerAddressIp(_) => "PeerAddressIp",
21345            Self::MessageType(_) => "MessageType",
21346            Self::DontHave(_) => "DontHave",
21347            Self::SurveyMessageCommandType(_) => "SurveyMessageCommandType",
21348            Self::SurveyMessageResponseType(_) => "SurveyMessageResponseType",
21349            Self::TimeSlicedSurveyStartCollectingMessage(_) => {
21350                "TimeSlicedSurveyStartCollectingMessage"
21351            }
21352            Self::SignedTimeSlicedSurveyStartCollectingMessage(_) => {
21353                "SignedTimeSlicedSurveyStartCollectingMessage"
21354            }
21355            Self::TimeSlicedSurveyStopCollectingMessage(_) => {
21356                "TimeSlicedSurveyStopCollectingMessage"
21357            }
21358            Self::SignedTimeSlicedSurveyStopCollectingMessage(_) => {
21359                "SignedTimeSlicedSurveyStopCollectingMessage"
21360            }
21361            Self::SurveyRequestMessage(_) => "SurveyRequestMessage",
21362            Self::TimeSlicedSurveyRequestMessage(_) => "TimeSlicedSurveyRequestMessage",
21363            Self::SignedTimeSlicedSurveyRequestMessage(_) => "SignedTimeSlicedSurveyRequestMessage",
21364            Self::EncryptedBody(_) => "EncryptedBody",
21365            Self::SurveyResponseMessage(_) => "SurveyResponseMessage",
21366            Self::TimeSlicedSurveyResponseMessage(_) => "TimeSlicedSurveyResponseMessage",
21367            Self::SignedTimeSlicedSurveyResponseMessage(_) => {
21368                "SignedTimeSlicedSurveyResponseMessage"
21369            }
21370            Self::PeerStats(_) => "PeerStats",
21371            Self::TimeSlicedNodeData(_) => "TimeSlicedNodeData",
21372            Self::TimeSlicedPeerData(_) => "TimeSlicedPeerData",
21373            Self::TimeSlicedPeerDataList(_) => "TimeSlicedPeerDataList",
21374            Self::TopologyResponseBodyV2(_) => "TopologyResponseBodyV2",
21375            Self::SurveyResponseBody(_) => "SurveyResponseBody",
21376            Self::TxAdvertVector(_) => "TxAdvertVector",
21377            Self::FloodAdvert(_) => "FloodAdvert",
21378            Self::TxDemandVector(_) => "TxDemandVector",
21379            Self::FloodDemand(_) => "FloodDemand",
21380            Self::StellarMessage(_) => "StellarMessage",
21381            Self::AuthenticatedMessage(_) => "AuthenticatedMessage",
21382            Self::AuthenticatedMessageV0(_) => "AuthenticatedMessageV0",
21383            Self::LiquidityPoolParameters(_) => "LiquidityPoolParameters",
21384            Self::MuxedAccount(_) => "MuxedAccount",
21385            Self::MuxedAccountMed25519(_) => "MuxedAccountMed25519",
21386            Self::DecoratedSignature(_) => "DecoratedSignature",
21387            Self::OperationType(_) => "OperationType",
21388            Self::CreateAccountOp(_) => "CreateAccountOp",
21389            Self::PaymentOp(_) => "PaymentOp",
21390            Self::PathPaymentStrictReceiveOp(_) => "PathPaymentStrictReceiveOp",
21391            Self::PathPaymentStrictSendOp(_) => "PathPaymentStrictSendOp",
21392            Self::ManageSellOfferOp(_) => "ManageSellOfferOp",
21393            Self::ManageBuyOfferOp(_) => "ManageBuyOfferOp",
21394            Self::CreatePassiveSellOfferOp(_) => "CreatePassiveSellOfferOp",
21395            Self::SetOptionsOp(_) => "SetOptionsOp",
21396            Self::ChangeTrustAsset(_) => "ChangeTrustAsset",
21397            Self::ChangeTrustOp(_) => "ChangeTrustOp",
21398            Self::AllowTrustOp(_) => "AllowTrustOp",
21399            Self::ManageDataOp(_) => "ManageDataOp",
21400            Self::BumpSequenceOp(_) => "BumpSequenceOp",
21401            Self::CreateClaimableBalanceOp(_) => "CreateClaimableBalanceOp",
21402            Self::ClaimClaimableBalanceOp(_) => "ClaimClaimableBalanceOp",
21403            Self::BeginSponsoringFutureReservesOp(_) => "BeginSponsoringFutureReservesOp",
21404            Self::RevokeSponsorshipType(_) => "RevokeSponsorshipType",
21405            Self::RevokeSponsorshipOp(_) => "RevokeSponsorshipOp",
21406            Self::RevokeSponsorshipOpSigner(_) => "RevokeSponsorshipOpSigner",
21407            Self::ClawbackOp(_) => "ClawbackOp",
21408            Self::ClawbackClaimableBalanceOp(_) => "ClawbackClaimableBalanceOp",
21409            Self::SetTrustLineFlagsOp(_) => "SetTrustLineFlagsOp",
21410            Self::LiquidityPoolDepositOp(_) => "LiquidityPoolDepositOp",
21411            Self::LiquidityPoolWithdrawOp(_) => "LiquidityPoolWithdrawOp",
21412            Self::HostFunctionType(_) => "HostFunctionType",
21413            Self::ContractIdPreimageType(_) => "ContractIdPreimageType",
21414            Self::ContractIdPreimage(_) => "ContractIdPreimage",
21415            Self::ContractIdPreimageFromAddress(_) => "ContractIdPreimageFromAddress",
21416            Self::CreateContractArgs(_) => "CreateContractArgs",
21417            Self::CreateContractArgsV2(_) => "CreateContractArgsV2",
21418            Self::InvokeContractArgs(_) => "InvokeContractArgs",
21419            Self::HostFunction(_) => "HostFunction",
21420            Self::SorobanAuthorizedFunctionType(_) => "SorobanAuthorizedFunctionType",
21421            Self::SorobanAuthorizedFunction(_) => "SorobanAuthorizedFunction",
21422            Self::SorobanAuthorizedInvocation(_) => "SorobanAuthorizedInvocation",
21423            Self::SorobanAddressCredentials(_) => "SorobanAddressCredentials",
21424            Self::SorobanDelegateSignature(_) => "SorobanDelegateSignature",
21425            Self::SorobanAddressCredentialsWithDelegates(_) => {
21426                "SorobanAddressCredentialsWithDelegates"
21427            }
21428            Self::SorobanCredentialsType(_) => "SorobanCredentialsType",
21429            Self::SorobanCredentials(_) => "SorobanCredentials",
21430            Self::SorobanAuthorizationEntry(_) => "SorobanAuthorizationEntry",
21431            Self::SorobanAuthorizationEntries(_) => "SorobanAuthorizationEntries",
21432            Self::InvokeHostFunctionOp(_) => "InvokeHostFunctionOp",
21433            Self::ExtendFootprintTtlOp(_) => "ExtendFootprintTtlOp",
21434            Self::RestoreFootprintOp(_) => "RestoreFootprintOp",
21435            Self::Operation(_) => "Operation",
21436            Self::OperationBody(_) => "OperationBody",
21437            Self::HashIdPreimage(_) => "HashIdPreimage",
21438            Self::HashIdPreimageOperationId(_) => "HashIdPreimageOperationId",
21439            Self::HashIdPreimageRevokeId(_) => "HashIdPreimageRevokeId",
21440            Self::HashIdPreimageContractId(_) => "HashIdPreimageContractId",
21441            Self::HashIdPreimageSorobanAuthorization(_) => "HashIdPreimageSorobanAuthorization",
21442            Self::HashIdPreimageSorobanAuthorizationWithAddress(_) => {
21443                "HashIdPreimageSorobanAuthorizationWithAddress"
21444            }
21445            Self::MemoType(_) => "MemoType",
21446            Self::Memo(_) => "Memo",
21447            Self::TimeBounds(_) => "TimeBounds",
21448            Self::LedgerBounds(_) => "LedgerBounds",
21449            Self::PreconditionsV2(_) => "PreconditionsV2",
21450            Self::PreconditionType(_) => "PreconditionType",
21451            Self::Preconditions(_) => "Preconditions",
21452            Self::LedgerFootprint(_) => "LedgerFootprint",
21453            Self::SorobanResources(_) => "SorobanResources",
21454            Self::SorobanResourcesExtV0(_) => "SorobanResourcesExtV0",
21455            Self::SorobanTransactionData(_) => "SorobanTransactionData",
21456            Self::SorobanTransactionDataExt(_) => "SorobanTransactionDataExt",
21457            Self::TransactionV0(_) => "TransactionV0",
21458            Self::TransactionV0Ext(_) => "TransactionV0Ext",
21459            Self::TransactionV0Envelope(_) => "TransactionV0Envelope",
21460            Self::Transaction(_) => "Transaction",
21461            Self::TransactionExt(_) => "TransactionExt",
21462            Self::TransactionV1Envelope(_) => "TransactionV1Envelope",
21463            Self::FeeBumpTransaction(_) => "FeeBumpTransaction",
21464            Self::FeeBumpTransactionInnerTx(_) => "FeeBumpTransactionInnerTx",
21465            Self::FeeBumpTransactionExt(_) => "FeeBumpTransactionExt",
21466            Self::FeeBumpTransactionEnvelope(_) => "FeeBumpTransactionEnvelope",
21467            Self::TransactionEnvelope(_) => "TransactionEnvelope",
21468            Self::TransactionSignaturePayload(_) => "TransactionSignaturePayload",
21469            Self::TransactionSignaturePayloadTaggedTransaction(_) => {
21470                "TransactionSignaturePayloadTaggedTransaction"
21471            }
21472            Self::ClaimAtomType(_) => "ClaimAtomType",
21473            Self::ClaimOfferAtomV0(_) => "ClaimOfferAtomV0",
21474            Self::ClaimOfferAtom(_) => "ClaimOfferAtom",
21475            Self::ClaimLiquidityAtom(_) => "ClaimLiquidityAtom",
21476            Self::ClaimAtom(_) => "ClaimAtom",
21477            Self::CreateAccountResultCode(_) => "CreateAccountResultCode",
21478            Self::CreateAccountResult(_) => "CreateAccountResult",
21479            Self::PaymentResultCode(_) => "PaymentResultCode",
21480            Self::PaymentResult(_) => "PaymentResult",
21481            Self::PathPaymentStrictReceiveResultCode(_) => "PathPaymentStrictReceiveResultCode",
21482            Self::SimplePaymentResult(_) => "SimplePaymentResult",
21483            Self::PathPaymentStrictReceiveResult(_) => "PathPaymentStrictReceiveResult",
21484            Self::PathPaymentStrictReceiveResultSuccess(_) => {
21485                "PathPaymentStrictReceiveResultSuccess"
21486            }
21487            Self::PathPaymentStrictSendResultCode(_) => "PathPaymentStrictSendResultCode",
21488            Self::PathPaymentStrictSendResult(_) => "PathPaymentStrictSendResult",
21489            Self::PathPaymentStrictSendResultSuccess(_) => "PathPaymentStrictSendResultSuccess",
21490            Self::ManageSellOfferResultCode(_) => "ManageSellOfferResultCode",
21491            Self::ManageOfferEffect(_) => "ManageOfferEffect",
21492            Self::ManageOfferSuccessResult(_) => "ManageOfferSuccessResult",
21493            Self::ManageOfferSuccessResultOffer(_) => "ManageOfferSuccessResultOffer",
21494            Self::ManageSellOfferResult(_) => "ManageSellOfferResult",
21495            Self::ManageBuyOfferResultCode(_) => "ManageBuyOfferResultCode",
21496            Self::ManageBuyOfferResult(_) => "ManageBuyOfferResult",
21497            Self::SetOptionsResultCode(_) => "SetOptionsResultCode",
21498            Self::SetOptionsResult(_) => "SetOptionsResult",
21499            Self::ChangeTrustResultCode(_) => "ChangeTrustResultCode",
21500            Self::ChangeTrustResult(_) => "ChangeTrustResult",
21501            Self::AllowTrustResultCode(_) => "AllowTrustResultCode",
21502            Self::AllowTrustResult(_) => "AllowTrustResult",
21503            Self::AccountMergeResultCode(_) => "AccountMergeResultCode",
21504            Self::AccountMergeResult(_) => "AccountMergeResult",
21505            Self::InflationResultCode(_) => "InflationResultCode",
21506            Self::InflationPayout(_) => "InflationPayout",
21507            Self::InflationResult(_) => "InflationResult",
21508            Self::ManageDataResultCode(_) => "ManageDataResultCode",
21509            Self::ManageDataResult(_) => "ManageDataResult",
21510            Self::BumpSequenceResultCode(_) => "BumpSequenceResultCode",
21511            Self::BumpSequenceResult(_) => "BumpSequenceResult",
21512            Self::CreateClaimableBalanceResultCode(_) => "CreateClaimableBalanceResultCode",
21513            Self::CreateClaimableBalanceResult(_) => "CreateClaimableBalanceResult",
21514            Self::ClaimClaimableBalanceResultCode(_) => "ClaimClaimableBalanceResultCode",
21515            Self::ClaimClaimableBalanceResult(_) => "ClaimClaimableBalanceResult",
21516            Self::BeginSponsoringFutureReservesResultCode(_) => {
21517                "BeginSponsoringFutureReservesResultCode"
21518            }
21519            Self::BeginSponsoringFutureReservesResult(_) => "BeginSponsoringFutureReservesResult",
21520            Self::EndSponsoringFutureReservesResultCode(_) => {
21521                "EndSponsoringFutureReservesResultCode"
21522            }
21523            Self::EndSponsoringFutureReservesResult(_) => "EndSponsoringFutureReservesResult",
21524            Self::RevokeSponsorshipResultCode(_) => "RevokeSponsorshipResultCode",
21525            Self::RevokeSponsorshipResult(_) => "RevokeSponsorshipResult",
21526            Self::ClawbackResultCode(_) => "ClawbackResultCode",
21527            Self::ClawbackResult(_) => "ClawbackResult",
21528            Self::ClawbackClaimableBalanceResultCode(_) => "ClawbackClaimableBalanceResultCode",
21529            Self::ClawbackClaimableBalanceResult(_) => "ClawbackClaimableBalanceResult",
21530            Self::SetTrustLineFlagsResultCode(_) => "SetTrustLineFlagsResultCode",
21531            Self::SetTrustLineFlagsResult(_) => "SetTrustLineFlagsResult",
21532            Self::LiquidityPoolDepositResultCode(_) => "LiquidityPoolDepositResultCode",
21533            Self::LiquidityPoolDepositResult(_) => "LiquidityPoolDepositResult",
21534            Self::LiquidityPoolWithdrawResultCode(_) => "LiquidityPoolWithdrawResultCode",
21535            Self::LiquidityPoolWithdrawResult(_) => "LiquidityPoolWithdrawResult",
21536            Self::InvokeHostFunctionResultCode(_) => "InvokeHostFunctionResultCode",
21537            Self::InvokeHostFunctionResult(_) => "InvokeHostFunctionResult",
21538            Self::ExtendFootprintTtlResultCode(_) => "ExtendFootprintTtlResultCode",
21539            Self::ExtendFootprintTtlResult(_) => "ExtendFootprintTtlResult",
21540            Self::RestoreFootprintResultCode(_) => "RestoreFootprintResultCode",
21541            Self::RestoreFootprintResult(_) => "RestoreFootprintResult",
21542            Self::OperationResultCode(_) => "OperationResultCode",
21543            Self::OperationResult(_) => "OperationResult",
21544            Self::OperationResultTr(_) => "OperationResultTr",
21545            Self::TransactionResultCode(_) => "TransactionResultCode",
21546            Self::InnerTransactionResult(_) => "InnerTransactionResult",
21547            Self::InnerTransactionResultResult(_) => "InnerTransactionResultResult",
21548            Self::InnerTransactionResultExt(_) => "InnerTransactionResultExt",
21549            Self::InnerTransactionResultPair(_) => "InnerTransactionResultPair",
21550            Self::TransactionResult(_) => "TransactionResult",
21551            Self::TransactionResultResult(_) => "TransactionResultResult",
21552            Self::TransactionResultExt(_) => "TransactionResultExt",
21553            Self::Hash(_) => "Hash",
21554            Self::Uint256(_) => "Uint256",
21555            Self::Uint32(_) => "Uint32",
21556            Self::Int32(_) => "Int32",
21557            Self::Uint64(_) => "Uint64",
21558            Self::Int64(_) => "Int64",
21559            Self::TimePoint(_) => "TimePoint",
21560            Self::Duration(_) => "Duration",
21561            Self::ExtensionPoint(_) => "ExtensionPoint",
21562            Self::CryptoKeyType(_) => "CryptoKeyType",
21563            Self::PublicKeyType(_) => "PublicKeyType",
21564            Self::SignerKeyType(_) => "SignerKeyType",
21565            Self::PublicKey(_) => "PublicKey",
21566            Self::SignerKey(_) => "SignerKey",
21567            Self::SignerKeyEd25519SignedPayload(_) => "SignerKeyEd25519SignedPayload",
21568            Self::Signature(_) => "Signature",
21569            Self::SignatureHint(_) => "SignatureHint",
21570            Self::NodeId(_) => "NodeId",
21571            Self::AccountId(_) => "AccountId",
21572            Self::ContractId(_) => "ContractId",
21573            Self::Curve25519Secret(_) => "Curve25519Secret",
21574            Self::Curve25519Public(_) => "Curve25519Public",
21575            Self::HmacSha256Key(_) => "HmacSha256Key",
21576            Self::HmacSha256Mac(_) => "HmacSha256Mac",
21577            Self::ShortHashSeed(_) => "ShortHashSeed",
21578            Self::BinaryFuseFilterType(_) => "BinaryFuseFilterType",
21579            Self::SerializedBinaryFuseFilter(_) => "SerializedBinaryFuseFilter",
21580            Self::PoolId(_) => "PoolId",
21581            Self::ClaimableBalanceIdType(_) => "ClaimableBalanceIdType",
21582            Self::ClaimableBalanceId(_) => "ClaimableBalanceId",
21583            #[cfg(feature = "test_feature")]
21584            Self::TestNextType(_) => "TestNextType",
21585        }
21586    }
21587
21588    #[must_use]
21589    #[allow(clippy::too_many_lines)]
21590    pub const fn variants() -> [TypeVariant; Self::_VARIANTS.len()] {
21591        Self::VARIANTS
21592    }
21593
21594    #[must_use]
21595    #[allow(clippy::too_many_lines)]
21596    pub const fn variant(&self) -> TypeVariant {
21597        match self {
21598            Self::Value(_) => TypeVariant::Value,
21599            Self::ScpBallot(_) => TypeVariant::ScpBallot,
21600            Self::ScpStatementType(_) => TypeVariant::ScpStatementType,
21601            Self::ScpNomination(_) => TypeVariant::ScpNomination,
21602            Self::ScpStatement(_) => TypeVariant::ScpStatement,
21603            Self::ScpStatementPledges(_) => TypeVariant::ScpStatementPledges,
21604            Self::ScpStatementPrepare(_) => TypeVariant::ScpStatementPrepare,
21605            Self::ScpStatementConfirm(_) => TypeVariant::ScpStatementConfirm,
21606            Self::ScpStatementExternalize(_) => TypeVariant::ScpStatementExternalize,
21607            Self::ScpEnvelope(_) => TypeVariant::ScpEnvelope,
21608            Self::ScpQuorumSet(_) => TypeVariant::ScpQuorumSet,
21609            Self::EncodedLedgerKey(_) => TypeVariant::EncodedLedgerKey,
21610            Self::ConfigSettingContractExecutionLanesV0(_) => {
21611                TypeVariant::ConfigSettingContractExecutionLanesV0
21612            }
21613            Self::ConfigSettingContractComputeV0(_) => TypeVariant::ConfigSettingContractComputeV0,
21614            Self::ConfigSettingContractParallelComputeV0(_) => {
21615                TypeVariant::ConfigSettingContractParallelComputeV0
21616            }
21617            Self::ConfigSettingContractLedgerCostV0(_) => {
21618                TypeVariant::ConfigSettingContractLedgerCostV0
21619            }
21620            Self::ConfigSettingContractLedgerCostExtV0(_) => {
21621                TypeVariant::ConfigSettingContractLedgerCostExtV0
21622            }
21623            Self::ConfigSettingContractHistoricalDataV0(_) => {
21624                TypeVariant::ConfigSettingContractHistoricalDataV0
21625            }
21626            Self::ConfigSettingContractEventsV0(_) => TypeVariant::ConfigSettingContractEventsV0,
21627            Self::ConfigSettingContractBandwidthV0(_) => {
21628                TypeVariant::ConfigSettingContractBandwidthV0
21629            }
21630            Self::ContractCostType(_) => TypeVariant::ContractCostType,
21631            Self::ContractCostParamEntry(_) => TypeVariant::ContractCostParamEntry,
21632            Self::StateArchivalSettings(_) => TypeVariant::StateArchivalSettings,
21633            Self::EvictionIterator(_) => TypeVariant::EvictionIterator,
21634            Self::ConfigSettingScpTiming(_) => TypeVariant::ConfigSettingScpTiming,
21635            Self::FrozenLedgerKeys(_) => TypeVariant::FrozenLedgerKeys,
21636            Self::FrozenLedgerKeysDelta(_) => TypeVariant::FrozenLedgerKeysDelta,
21637            Self::FreezeBypassTxs(_) => TypeVariant::FreezeBypassTxs,
21638            Self::FreezeBypassTxsDelta(_) => TypeVariant::FreezeBypassTxsDelta,
21639            Self::ContractCostParams(_) => TypeVariant::ContractCostParams,
21640            Self::ConfigSettingId(_) => TypeVariant::ConfigSettingId,
21641            Self::ConfigSettingEntry(_) => TypeVariant::ConfigSettingEntry,
21642            Self::ScEnvMetaKind(_) => TypeVariant::ScEnvMetaKind,
21643            Self::ScEnvMetaEntry(_) => TypeVariant::ScEnvMetaEntry,
21644            Self::ScEnvMetaEntryInterfaceVersion(_) => TypeVariant::ScEnvMetaEntryInterfaceVersion,
21645            Self::ScMetaV0(_) => TypeVariant::ScMetaV0,
21646            Self::ScMetaKind(_) => TypeVariant::ScMetaKind,
21647            Self::ScMetaEntry(_) => TypeVariant::ScMetaEntry,
21648            Self::ScSpecType(_) => TypeVariant::ScSpecType,
21649            Self::ScSpecTypeOption(_) => TypeVariant::ScSpecTypeOption,
21650            Self::ScSpecTypeResult(_) => TypeVariant::ScSpecTypeResult,
21651            Self::ScSpecTypeVec(_) => TypeVariant::ScSpecTypeVec,
21652            Self::ScSpecTypeMap(_) => TypeVariant::ScSpecTypeMap,
21653            Self::ScSpecTypeTuple(_) => TypeVariant::ScSpecTypeTuple,
21654            Self::ScSpecTypeBytesN(_) => TypeVariant::ScSpecTypeBytesN,
21655            Self::ScSpecTypeUdt(_) => TypeVariant::ScSpecTypeUdt,
21656            Self::ScSpecTypeDef(_) => TypeVariant::ScSpecTypeDef,
21657            Self::ScSpecUdtStructFieldV0(_) => TypeVariant::ScSpecUdtStructFieldV0,
21658            Self::ScSpecUdtStructV0(_) => TypeVariant::ScSpecUdtStructV0,
21659            Self::ScSpecUdtUnionCaseVoidV0(_) => TypeVariant::ScSpecUdtUnionCaseVoidV0,
21660            Self::ScSpecUdtUnionCaseTupleV0(_) => TypeVariant::ScSpecUdtUnionCaseTupleV0,
21661            Self::ScSpecUdtUnionCaseV0Kind(_) => TypeVariant::ScSpecUdtUnionCaseV0Kind,
21662            Self::ScSpecUdtUnionCaseV0(_) => TypeVariant::ScSpecUdtUnionCaseV0,
21663            Self::ScSpecUdtUnionV0(_) => TypeVariant::ScSpecUdtUnionV0,
21664            Self::ScSpecUdtEnumCaseV0(_) => TypeVariant::ScSpecUdtEnumCaseV0,
21665            Self::ScSpecUdtEnumV0(_) => TypeVariant::ScSpecUdtEnumV0,
21666            Self::ScSpecUdtErrorEnumCaseV0(_) => TypeVariant::ScSpecUdtErrorEnumCaseV0,
21667            Self::ScSpecUdtErrorEnumV0(_) => TypeVariant::ScSpecUdtErrorEnumV0,
21668            Self::ScSpecFunctionInputV0(_) => TypeVariant::ScSpecFunctionInputV0,
21669            Self::ScSpecFunctionV0(_) => TypeVariant::ScSpecFunctionV0,
21670            Self::ScSpecEventParamLocationV0(_) => TypeVariant::ScSpecEventParamLocationV0,
21671            Self::ScSpecEventParamV0(_) => TypeVariant::ScSpecEventParamV0,
21672            Self::ScSpecEventDataFormat(_) => TypeVariant::ScSpecEventDataFormat,
21673            Self::ScSpecEventV0(_) => TypeVariant::ScSpecEventV0,
21674            Self::ScSpecEntryKind(_) => TypeVariant::ScSpecEntryKind,
21675            Self::ScSpecEntry(_) => TypeVariant::ScSpecEntry,
21676            Self::ScBytes(_) => TypeVariant::ScBytes,
21677            Self::ScString(_) => TypeVariant::ScString,
21678            Self::ScSymbol(_) => TypeVariant::ScSymbol,
21679            Self::ScValType(_) => TypeVariant::ScValType,
21680            Self::ScErrorType(_) => TypeVariant::ScErrorType,
21681            Self::ScErrorCode(_) => TypeVariant::ScErrorCode,
21682            Self::ScError(_) => TypeVariant::ScError,
21683            Self::UInt128Parts(_) => TypeVariant::UInt128Parts,
21684            Self::Int128Parts(_) => TypeVariant::Int128Parts,
21685            Self::UInt256Parts(_) => TypeVariant::UInt256Parts,
21686            Self::Int256Parts(_) => TypeVariant::Int256Parts,
21687            Self::ContractExecutableType(_) => TypeVariant::ContractExecutableType,
21688            Self::ScAddressType(_) => TypeVariant::ScAddressType,
21689            Self::MuxedEd25519Account(_) => TypeVariant::MuxedEd25519Account,
21690            #[cfg(feature = "cap_0084_muxed_contract")]
21691            Self::MuxedContract(_) => TypeVariant::MuxedContract,
21692            Self::ScAddress(_) => TypeVariant::ScAddress,
21693            Self::ContractExecutableExternalRef(_) => TypeVariant::ContractExecutableExternalRef,
21694            Self::ContractExecutable(_) => TypeVariant::ContractExecutable,
21695            Self::ScVec(_) => TypeVariant::ScVec,
21696            Self::ScMap(_) => TypeVariant::ScMap,
21697            Self::ScNonceKey(_) => TypeVariant::ScNonceKey,
21698            Self::ScContractInstance(_) => TypeVariant::ScContractInstance,
21699            Self::ScVal(_) => TypeVariant::ScVal,
21700            Self::ScMapEntry(_) => TypeVariant::ScMapEntry,
21701            Self::LedgerCloseMetaBatch(_) => TypeVariant::LedgerCloseMetaBatch,
21702            Self::StoredTransactionSet(_) => TypeVariant::StoredTransactionSet,
21703            Self::StoredDebugTransactionSet(_) => TypeVariant::StoredDebugTransactionSet,
21704            Self::PersistedScpStateV0(_) => TypeVariant::PersistedScpStateV0,
21705            Self::PersistedScpStateV1(_) => TypeVariant::PersistedScpStateV1,
21706            Self::PersistedScpState(_) => TypeVariant::PersistedScpState,
21707            Self::Thresholds(_) => TypeVariant::Thresholds,
21708            Self::String32(_) => TypeVariant::String32,
21709            Self::String64(_) => TypeVariant::String64,
21710            Self::SequenceNumber(_) => TypeVariant::SequenceNumber,
21711            Self::DataValue(_) => TypeVariant::DataValue,
21712            Self::AssetCode4(_) => TypeVariant::AssetCode4,
21713            Self::AssetCode12(_) => TypeVariant::AssetCode12,
21714            Self::AssetType(_) => TypeVariant::AssetType,
21715            Self::AssetCode(_) => TypeVariant::AssetCode,
21716            Self::AlphaNum4(_) => TypeVariant::AlphaNum4,
21717            Self::AlphaNum12(_) => TypeVariant::AlphaNum12,
21718            Self::Asset(_) => TypeVariant::Asset,
21719            Self::Price(_) => TypeVariant::Price,
21720            Self::Liabilities(_) => TypeVariant::Liabilities,
21721            Self::ThresholdIndexes(_) => TypeVariant::ThresholdIndexes,
21722            Self::LedgerEntryType(_) => TypeVariant::LedgerEntryType,
21723            Self::Signer(_) => TypeVariant::Signer,
21724            Self::AccountFlags(_) => TypeVariant::AccountFlags,
21725            Self::SponsorshipDescriptor(_) => TypeVariant::SponsorshipDescriptor,
21726            Self::AccountEntryExtensionV3(_) => TypeVariant::AccountEntryExtensionV3,
21727            Self::AccountEntryExtensionV2(_) => TypeVariant::AccountEntryExtensionV2,
21728            Self::AccountEntryExtensionV2Ext(_) => TypeVariant::AccountEntryExtensionV2Ext,
21729            Self::AccountEntryExtensionV1(_) => TypeVariant::AccountEntryExtensionV1,
21730            Self::AccountEntryExtensionV1Ext(_) => TypeVariant::AccountEntryExtensionV1Ext,
21731            Self::AccountEntry(_) => TypeVariant::AccountEntry,
21732            Self::AccountEntryExt(_) => TypeVariant::AccountEntryExt,
21733            Self::TrustLineFlags(_) => TypeVariant::TrustLineFlags,
21734            Self::LiquidityPoolType(_) => TypeVariant::LiquidityPoolType,
21735            Self::TrustLineAsset(_) => TypeVariant::TrustLineAsset,
21736            Self::TrustLineEntryExtensionV2(_) => TypeVariant::TrustLineEntryExtensionV2,
21737            Self::TrustLineEntryExtensionV2Ext(_) => TypeVariant::TrustLineEntryExtensionV2Ext,
21738            Self::TrustLineEntry(_) => TypeVariant::TrustLineEntry,
21739            Self::TrustLineEntryExt(_) => TypeVariant::TrustLineEntryExt,
21740            Self::TrustLineEntryV1(_) => TypeVariant::TrustLineEntryV1,
21741            Self::TrustLineEntryV1Ext(_) => TypeVariant::TrustLineEntryV1Ext,
21742            Self::OfferEntryFlags(_) => TypeVariant::OfferEntryFlags,
21743            Self::OfferEntry(_) => TypeVariant::OfferEntry,
21744            Self::OfferEntryExt(_) => TypeVariant::OfferEntryExt,
21745            Self::DataEntry(_) => TypeVariant::DataEntry,
21746            Self::DataEntryExt(_) => TypeVariant::DataEntryExt,
21747            Self::ClaimPredicateType(_) => TypeVariant::ClaimPredicateType,
21748            Self::ClaimPredicate(_) => TypeVariant::ClaimPredicate,
21749            Self::ClaimantType(_) => TypeVariant::ClaimantType,
21750            Self::Claimant(_) => TypeVariant::Claimant,
21751            Self::ClaimantV0(_) => TypeVariant::ClaimantV0,
21752            Self::ClaimableBalanceFlags(_) => TypeVariant::ClaimableBalanceFlags,
21753            Self::ClaimableBalanceEntryExtensionV1(_) => {
21754                TypeVariant::ClaimableBalanceEntryExtensionV1
21755            }
21756            Self::ClaimableBalanceEntryExtensionV1Ext(_) => {
21757                TypeVariant::ClaimableBalanceEntryExtensionV1Ext
21758            }
21759            Self::ClaimableBalanceEntry(_) => TypeVariant::ClaimableBalanceEntry,
21760            Self::ClaimableBalanceEntryExt(_) => TypeVariant::ClaimableBalanceEntryExt,
21761            Self::LiquidityPoolConstantProductParameters(_) => {
21762                TypeVariant::LiquidityPoolConstantProductParameters
21763            }
21764            Self::LiquidityPoolEntry(_) => TypeVariant::LiquidityPoolEntry,
21765            Self::LiquidityPoolEntryBody(_) => TypeVariant::LiquidityPoolEntryBody,
21766            Self::LiquidityPoolEntryConstantProduct(_) => {
21767                TypeVariant::LiquidityPoolEntryConstantProduct
21768            }
21769            Self::ContractDataDurability(_) => TypeVariant::ContractDataDurability,
21770            Self::ContractDataEntry(_) => TypeVariant::ContractDataEntry,
21771            Self::ContractCodeCostInputs(_) => TypeVariant::ContractCodeCostInputs,
21772            Self::ContractCodeEntry(_) => TypeVariant::ContractCodeEntry,
21773            Self::ContractCodeEntryExt(_) => TypeVariant::ContractCodeEntryExt,
21774            Self::ContractCodeEntryV1(_) => TypeVariant::ContractCodeEntryV1,
21775            Self::TtlEntry(_) => TypeVariant::TtlEntry,
21776            Self::LedgerEntryExtensionV1(_) => TypeVariant::LedgerEntryExtensionV1,
21777            Self::LedgerEntryExtensionV1Ext(_) => TypeVariant::LedgerEntryExtensionV1Ext,
21778            Self::LedgerEntry(_) => TypeVariant::LedgerEntry,
21779            Self::LedgerEntryData(_) => TypeVariant::LedgerEntryData,
21780            Self::LedgerEntryExt(_) => TypeVariant::LedgerEntryExt,
21781            Self::LedgerKey(_) => TypeVariant::LedgerKey,
21782            Self::LedgerKeyAccount(_) => TypeVariant::LedgerKeyAccount,
21783            Self::LedgerKeyTrustLine(_) => TypeVariant::LedgerKeyTrustLine,
21784            Self::LedgerKeyOffer(_) => TypeVariant::LedgerKeyOffer,
21785            Self::LedgerKeyData(_) => TypeVariant::LedgerKeyData,
21786            Self::LedgerKeyClaimableBalance(_) => TypeVariant::LedgerKeyClaimableBalance,
21787            Self::LedgerKeyLiquidityPool(_) => TypeVariant::LedgerKeyLiquidityPool,
21788            Self::LedgerKeyContractData(_) => TypeVariant::LedgerKeyContractData,
21789            Self::LedgerKeyContractCode(_) => TypeVariant::LedgerKeyContractCode,
21790            Self::LedgerKeyConfigSetting(_) => TypeVariant::LedgerKeyConfigSetting,
21791            Self::LedgerKeyTtl(_) => TypeVariant::LedgerKeyTtl,
21792            Self::EnvelopeType(_) => TypeVariant::EnvelopeType,
21793            Self::BucketListType(_) => TypeVariant::BucketListType,
21794            Self::BucketEntryType(_) => TypeVariant::BucketEntryType,
21795            Self::HotArchiveBucketEntryType(_) => TypeVariant::HotArchiveBucketEntryType,
21796            Self::BucketMetadata(_) => TypeVariant::BucketMetadata,
21797            Self::BucketMetadataExt(_) => TypeVariant::BucketMetadataExt,
21798            Self::BucketEntry(_) => TypeVariant::BucketEntry,
21799            Self::HotArchiveBucketEntry(_) => TypeVariant::HotArchiveBucketEntry,
21800            Self::UpgradeType(_) => TypeVariant::UpgradeType,
21801            Self::StellarValueType(_) => TypeVariant::StellarValueType,
21802            Self::LedgerCloseValueSignature(_) => TypeVariant::LedgerCloseValueSignature,
21803            Self::StellarValue(_) => TypeVariant::StellarValue,
21804            Self::StellarValueExt(_) => TypeVariant::StellarValueExt,
21805            Self::StellarValueProposedValue(_) => TypeVariant::StellarValueProposedValue,
21806            Self::LedgerHeaderFlags(_) => TypeVariant::LedgerHeaderFlags,
21807            Self::LedgerHeaderExtensionV1(_) => TypeVariant::LedgerHeaderExtensionV1,
21808            Self::LedgerHeaderExtensionV1Ext(_) => TypeVariant::LedgerHeaderExtensionV1Ext,
21809            Self::LedgerHeader(_) => TypeVariant::LedgerHeader,
21810            Self::LedgerHeaderExt(_) => TypeVariant::LedgerHeaderExt,
21811            Self::LedgerUpgradeType(_) => TypeVariant::LedgerUpgradeType,
21812            Self::ConfigUpgradeSetKey(_) => TypeVariant::ConfigUpgradeSetKey,
21813            Self::LedgerUpgrade(_) => TypeVariant::LedgerUpgrade,
21814            Self::ConfigUpgradeSet(_) => TypeVariant::ConfigUpgradeSet,
21815            Self::TxSetComponentType(_) => TypeVariant::TxSetComponentType,
21816            Self::DependentTxCluster(_) => TypeVariant::DependentTxCluster,
21817            Self::ParallelTxExecutionStage(_) => TypeVariant::ParallelTxExecutionStage,
21818            Self::ParallelTxsComponent(_) => TypeVariant::ParallelTxsComponent,
21819            Self::TxSetComponent(_) => TypeVariant::TxSetComponent,
21820            Self::TxSetComponentTxsMaybeDiscountedFee(_) => {
21821                TypeVariant::TxSetComponentTxsMaybeDiscountedFee
21822            }
21823            Self::TransactionPhase(_) => TypeVariant::TransactionPhase,
21824            Self::TransactionSet(_) => TypeVariant::TransactionSet,
21825            Self::TransactionSetV1(_) => TypeVariant::TransactionSetV1,
21826            Self::GeneralizedTransactionSet(_) => TypeVariant::GeneralizedTransactionSet,
21827            Self::TransactionResultPair(_) => TypeVariant::TransactionResultPair,
21828            Self::TransactionResultSet(_) => TypeVariant::TransactionResultSet,
21829            Self::TransactionHistoryEntry(_) => TypeVariant::TransactionHistoryEntry,
21830            Self::TransactionHistoryEntryExt(_) => TypeVariant::TransactionHistoryEntryExt,
21831            Self::TransactionHistoryResultEntry(_) => TypeVariant::TransactionHistoryResultEntry,
21832            Self::TransactionHistoryResultEntryExt(_) => {
21833                TypeVariant::TransactionHistoryResultEntryExt
21834            }
21835            Self::LedgerHeaderHistoryEntry(_) => TypeVariant::LedgerHeaderHistoryEntry,
21836            Self::LedgerHeaderHistoryEntryExt(_) => TypeVariant::LedgerHeaderHistoryEntryExt,
21837            Self::LedgerScpMessages(_) => TypeVariant::LedgerScpMessages,
21838            Self::ScpHistoryEntryV0(_) => TypeVariant::ScpHistoryEntryV0,
21839            Self::ScpHistoryEntry(_) => TypeVariant::ScpHistoryEntry,
21840            Self::LedgerEntryChangeType(_) => TypeVariant::LedgerEntryChangeType,
21841            Self::LedgerEntryChange(_) => TypeVariant::LedgerEntryChange,
21842            Self::LedgerEntryChanges(_) => TypeVariant::LedgerEntryChanges,
21843            Self::OperationMeta(_) => TypeVariant::OperationMeta,
21844            Self::TransactionMetaV1(_) => TypeVariant::TransactionMetaV1,
21845            Self::TransactionMetaV2(_) => TypeVariant::TransactionMetaV2,
21846            Self::ContractEventType(_) => TypeVariant::ContractEventType,
21847            Self::ContractEvent(_) => TypeVariant::ContractEvent,
21848            Self::ContractEventBody(_) => TypeVariant::ContractEventBody,
21849            Self::ContractEventV0(_) => TypeVariant::ContractEventV0,
21850            Self::DiagnosticEvent(_) => TypeVariant::DiagnosticEvent,
21851            Self::SorobanTransactionMetaExtV1(_) => TypeVariant::SorobanTransactionMetaExtV1,
21852            Self::SorobanTransactionMetaExt(_) => TypeVariant::SorobanTransactionMetaExt,
21853            Self::SorobanTransactionMeta(_) => TypeVariant::SorobanTransactionMeta,
21854            Self::TransactionMetaV3(_) => TypeVariant::TransactionMetaV3,
21855            Self::OperationMetaV2(_) => TypeVariant::OperationMetaV2,
21856            Self::SorobanTransactionMetaV2(_) => TypeVariant::SorobanTransactionMetaV2,
21857            Self::TransactionEventStage(_) => TypeVariant::TransactionEventStage,
21858            Self::TransactionEvent(_) => TypeVariant::TransactionEvent,
21859            Self::TransactionMetaV4(_) => TypeVariant::TransactionMetaV4,
21860            Self::InvokeHostFunctionSuccessPreImage(_) => {
21861                TypeVariant::InvokeHostFunctionSuccessPreImage
21862            }
21863            Self::TransactionMeta(_) => TypeVariant::TransactionMeta,
21864            Self::TransactionResultMeta(_) => TypeVariant::TransactionResultMeta,
21865            Self::TransactionResultMetaV1(_) => TypeVariant::TransactionResultMetaV1,
21866            Self::UpgradeEntryMeta(_) => TypeVariant::UpgradeEntryMeta,
21867            Self::LedgerCloseMetaV0(_) => TypeVariant::LedgerCloseMetaV0,
21868            Self::LedgerCloseMetaExtV1(_) => TypeVariant::LedgerCloseMetaExtV1,
21869            Self::LedgerCloseMetaExt(_) => TypeVariant::LedgerCloseMetaExt,
21870            Self::LedgerCloseMetaV1(_) => TypeVariant::LedgerCloseMetaV1,
21871            Self::LedgerCloseMetaV2(_) => TypeVariant::LedgerCloseMetaV2,
21872            Self::LedgerCloseMeta(_) => TypeVariant::LedgerCloseMeta,
21873            Self::ErrorCode(_) => TypeVariant::ErrorCode,
21874            Self::SError(_) => TypeVariant::SError,
21875            Self::SendMore(_) => TypeVariant::SendMore,
21876            Self::SendMoreExtended(_) => TypeVariant::SendMoreExtended,
21877            Self::AuthCert(_) => TypeVariant::AuthCert,
21878            Self::Hello(_) => TypeVariant::Hello,
21879            Self::Auth(_) => TypeVariant::Auth,
21880            Self::IpAddrType(_) => TypeVariant::IpAddrType,
21881            Self::PeerAddress(_) => TypeVariant::PeerAddress,
21882            Self::PeerAddressIp(_) => TypeVariant::PeerAddressIp,
21883            Self::MessageType(_) => TypeVariant::MessageType,
21884            Self::DontHave(_) => TypeVariant::DontHave,
21885            Self::SurveyMessageCommandType(_) => TypeVariant::SurveyMessageCommandType,
21886            Self::SurveyMessageResponseType(_) => TypeVariant::SurveyMessageResponseType,
21887            Self::TimeSlicedSurveyStartCollectingMessage(_) => {
21888                TypeVariant::TimeSlicedSurveyStartCollectingMessage
21889            }
21890            Self::SignedTimeSlicedSurveyStartCollectingMessage(_) => {
21891                TypeVariant::SignedTimeSlicedSurveyStartCollectingMessage
21892            }
21893            Self::TimeSlicedSurveyStopCollectingMessage(_) => {
21894                TypeVariant::TimeSlicedSurveyStopCollectingMessage
21895            }
21896            Self::SignedTimeSlicedSurveyStopCollectingMessage(_) => {
21897                TypeVariant::SignedTimeSlicedSurveyStopCollectingMessage
21898            }
21899            Self::SurveyRequestMessage(_) => TypeVariant::SurveyRequestMessage,
21900            Self::TimeSlicedSurveyRequestMessage(_) => TypeVariant::TimeSlicedSurveyRequestMessage,
21901            Self::SignedTimeSlicedSurveyRequestMessage(_) => {
21902                TypeVariant::SignedTimeSlicedSurveyRequestMessage
21903            }
21904            Self::EncryptedBody(_) => TypeVariant::EncryptedBody,
21905            Self::SurveyResponseMessage(_) => TypeVariant::SurveyResponseMessage,
21906            Self::TimeSlicedSurveyResponseMessage(_) => {
21907                TypeVariant::TimeSlicedSurveyResponseMessage
21908            }
21909            Self::SignedTimeSlicedSurveyResponseMessage(_) => {
21910                TypeVariant::SignedTimeSlicedSurveyResponseMessage
21911            }
21912            Self::PeerStats(_) => TypeVariant::PeerStats,
21913            Self::TimeSlicedNodeData(_) => TypeVariant::TimeSlicedNodeData,
21914            Self::TimeSlicedPeerData(_) => TypeVariant::TimeSlicedPeerData,
21915            Self::TimeSlicedPeerDataList(_) => TypeVariant::TimeSlicedPeerDataList,
21916            Self::TopologyResponseBodyV2(_) => TypeVariant::TopologyResponseBodyV2,
21917            Self::SurveyResponseBody(_) => TypeVariant::SurveyResponseBody,
21918            Self::TxAdvertVector(_) => TypeVariant::TxAdvertVector,
21919            Self::FloodAdvert(_) => TypeVariant::FloodAdvert,
21920            Self::TxDemandVector(_) => TypeVariant::TxDemandVector,
21921            Self::FloodDemand(_) => TypeVariant::FloodDemand,
21922            Self::StellarMessage(_) => TypeVariant::StellarMessage,
21923            Self::AuthenticatedMessage(_) => TypeVariant::AuthenticatedMessage,
21924            Self::AuthenticatedMessageV0(_) => TypeVariant::AuthenticatedMessageV0,
21925            Self::LiquidityPoolParameters(_) => TypeVariant::LiquidityPoolParameters,
21926            Self::MuxedAccount(_) => TypeVariant::MuxedAccount,
21927            Self::MuxedAccountMed25519(_) => TypeVariant::MuxedAccountMed25519,
21928            Self::DecoratedSignature(_) => TypeVariant::DecoratedSignature,
21929            Self::OperationType(_) => TypeVariant::OperationType,
21930            Self::CreateAccountOp(_) => TypeVariant::CreateAccountOp,
21931            Self::PaymentOp(_) => TypeVariant::PaymentOp,
21932            Self::PathPaymentStrictReceiveOp(_) => TypeVariant::PathPaymentStrictReceiveOp,
21933            Self::PathPaymentStrictSendOp(_) => TypeVariant::PathPaymentStrictSendOp,
21934            Self::ManageSellOfferOp(_) => TypeVariant::ManageSellOfferOp,
21935            Self::ManageBuyOfferOp(_) => TypeVariant::ManageBuyOfferOp,
21936            Self::CreatePassiveSellOfferOp(_) => TypeVariant::CreatePassiveSellOfferOp,
21937            Self::SetOptionsOp(_) => TypeVariant::SetOptionsOp,
21938            Self::ChangeTrustAsset(_) => TypeVariant::ChangeTrustAsset,
21939            Self::ChangeTrustOp(_) => TypeVariant::ChangeTrustOp,
21940            Self::AllowTrustOp(_) => TypeVariant::AllowTrustOp,
21941            Self::ManageDataOp(_) => TypeVariant::ManageDataOp,
21942            Self::BumpSequenceOp(_) => TypeVariant::BumpSequenceOp,
21943            Self::CreateClaimableBalanceOp(_) => TypeVariant::CreateClaimableBalanceOp,
21944            Self::ClaimClaimableBalanceOp(_) => TypeVariant::ClaimClaimableBalanceOp,
21945            Self::BeginSponsoringFutureReservesOp(_) => {
21946                TypeVariant::BeginSponsoringFutureReservesOp
21947            }
21948            Self::RevokeSponsorshipType(_) => TypeVariant::RevokeSponsorshipType,
21949            Self::RevokeSponsorshipOp(_) => TypeVariant::RevokeSponsorshipOp,
21950            Self::RevokeSponsorshipOpSigner(_) => TypeVariant::RevokeSponsorshipOpSigner,
21951            Self::ClawbackOp(_) => TypeVariant::ClawbackOp,
21952            Self::ClawbackClaimableBalanceOp(_) => TypeVariant::ClawbackClaimableBalanceOp,
21953            Self::SetTrustLineFlagsOp(_) => TypeVariant::SetTrustLineFlagsOp,
21954            Self::LiquidityPoolDepositOp(_) => TypeVariant::LiquidityPoolDepositOp,
21955            Self::LiquidityPoolWithdrawOp(_) => TypeVariant::LiquidityPoolWithdrawOp,
21956            Self::HostFunctionType(_) => TypeVariant::HostFunctionType,
21957            Self::ContractIdPreimageType(_) => TypeVariant::ContractIdPreimageType,
21958            Self::ContractIdPreimage(_) => TypeVariant::ContractIdPreimage,
21959            Self::ContractIdPreimageFromAddress(_) => TypeVariant::ContractIdPreimageFromAddress,
21960            Self::CreateContractArgs(_) => TypeVariant::CreateContractArgs,
21961            Self::CreateContractArgsV2(_) => TypeVariant::CreateContractArgsV2,
21962            Self::InvokeContractArgs(_) => TypeVariant::InvokeContractArgs,
21963            Self::HostFunction(_) => TypeVariant::HostFunction,
21964            Self::SorobanAuthorizedFunctionType(_) => TypeVariant::SorobanAuthorizedFunctionType,
21965            Self::SorobanAuthorizedFunction(_) => TypeVariant::SorobanAuthorizedFunction,
21966            Self::SorobanAuthorizedInvocation(_) => TypeVariant::SorobanAuthorizedInvocation,
21967            Self::SorobanAddressCredentials(_) => TypeVariant::SorobanAddressCredentials,
21968            Self::SorobanDelegateSignature(_) => TypeVariant::SorobanDelegateSignature,
21969            Self::SorobanAddressCredentialsWithDelegates(_) => {
21970                TypeVariant::SorobanAddressCredentialsWithDelegates
21971            }
21972            Self::SorobanCredentialsType(_) => TypeVariant::SorobanCredentialsType,
21973            Self::SorobanCredentials(_) => TypeVariant::SorobanCredentials,
21974            Self::SorobanAuthorizationEntry(_) => TypeVariant::SorobanAuthorizationEntry,
21975            Self::SorobanAuthorizationEntries(_) => TypeVariant::SorobanAuthorizationEntries,
21976            Self::InvokeHostFunctionOp(_) => TypeVariant::InvokeHostFunctionOp,
21977            Self::ExtendFootprintTtlOp(_) => TypeVariant::ExtendFootprintTtlOp,
21978            Self::RestoreFootprintOp(_) => TypeVariant::RestoreFootprintOp,
21979            Self::Operation(_) => TypeVariant::Operation,
21980            Self::OperationBody(_) => TypeVariant::OperationBody,
21981            Self::HashIdPreimage(_) => TypeVariant::HashIdPreimage,
21982            Self::HashIdPreimageOperationId(_) => TypeVariant::HashIdPreimageOperationId,
21983            Self::HashIdPreimageRevokeId(_) => TypeVariant::HashIdPreimageRevokeId,
21984            Self::HashIdPreimageContractId(_) => TypeVariant::HashIdPreimageContractId,
21985            Self::HashIdPreimageSorobanAuthorization(_) => {
21986                TypeVariant::HashIdPreimageSorobanAuthorization
21987            }
21988            Self::HashIdPreimageSorobanAuthorizationWithAddress(_) => {
21989                TypeVariant::HashIdPreimageSorobanAuthorizationWithAddress
21990            }
21991            Self::MemoType(_) => TypeVariant::MemoType,
21992            Self::Memo(_) => TypeVariant::Memo,
21993            Self::TimeBounds(_) => TypeVariant::TimeBounds,
21994            Self::LedgerBounds(_) => TypeVariant::LedgerBounds,
21995            Self::PreconditionsV2(_) => TypeVariant::PreconditionsV2,
21996            Self::PreconditionType(_) => TypeVariant::PreconditionType,
21997            Self::Preconditions(_) => TypeVariant::Preconditions,
21998            Self::LedgerFootprint(_) => TypeVariant::LedgerFootprint,
21999            Self::SorobanResources(_) => TypeVariant::SorobanResources,
22000            Self::SorobanResourcesExtV0(_) => TypeVariant::SorobanResourcesExtV0,
22001            Self::SorobanTransactionData(_) => TypeVariant::SorobanTransactionData,
22002            Self::SorobanTransactionDataExt(_) => TypeVariant::SorobanTransactionDataExt,
22003            Self::TransactionV0(_) => TypeVariant::TransactionV0,
22004            Self::TransactionV0Ext(_) => TypeVariant::TransactionV0Ext,
22005            Self::TransactionV0Envelope(_) => TypeVariant::TransactionV0Envelope,
22006            Self::Transaction(_) => TypeVariant::Transaction,
22007            Self::TransactionExt(_) => TypeVariant::TransactionExt,
22008            Self::TransactionV1Envelope(_) => TypeVariant::TransactionV1Envelope,
22009            Self::FeeBumpTransaction(_) => TypeVariant::FeeBumpTransaction,
22010            Self::FeeBumpTransactionInnerTx(_) => TypeVariant::FeeBumpTransactionInnerTx,
22011            Self::FeeBumpTransactionExt(_) => TypeVariant::FeeBumpTransactionExt,
22012            Self::FeeBumpTransactionEnvelope(_) => TypeVariant::FeeBumpTransactionEnvelope,
22013            Self::TransactionEnvelope(_) => TypeVariant::TransactionEnvelope,
22014            Self::TransactionSignaturePayload(_) => TypeVariant::TransactionSignaturePayload,
22015            Self::TransactionSignaturePayloadTaggedTransaction(_) => {
22016                TypeVariant::TransactionSignaturePayloadTaggedTransaction
22017            }
22018            Self::ClaimAtomType(_) => TypeVariant::ClaimAtomType,
22019            Self::ClaimOfferAtomV0(_) => TypeVariant::ClaimOfferAtomV0,
22020            Self::ClaimOfferAtom(_) => TypeVariant::ClaimOfferAtom,
22021            Self::ClaimLiquidityAtom(_) => TypeVariant::ClaimLiquidityAtom,
22022            Self::ClaimAtom(_) => TypeVariant::ClaimAtom,
22023            Self::CreateAccountResultCode(_) => TypeVariant::CreateAccountResultCode,
22024            Self::CreateAccountResult(_) => TypeVariant::CreateAccountResult,
22025            Self::PaymentResultCode(_) => TypeVariant::PaymentResultCode,
22026            Self::PaymentResult(_) => TypeVariant::PaymentResult,
22027            Self::PathPaymentStrictReceiveResultCode(_) => {
22028                TypeVariant::PathPaymentStrictReceiveResultCode
22029            }
22030            Self::SimplePaymentResult(_) => TypeVariant::SimplePaymentResult,
22031            Self::PathPaymentStrictReceiveResult(_) => TypeVariant::PathPaymentStrictReceiveResult,
22032            Self::PathPaymentStrictReceiveResultSuccess(_) => {
22033                TypeVariant::PathPaymentStrictReceiveResultSuccess
22034            }
22035            Self::PathPaymentStrictSendResultCode(_) => {
22036                TypeVariant::PathPaymentStrictSendResultCode
22037            }
22038            Self::PathPaymentStrictSendResult(_) => TypeVariant::PathPaymentStrictSendResult,
22039            Self::PathPaymentStrictSendResultSuccess(_) => {
22040                TypeVariant::PathPaymentStrictSendResultSuccess
22041            }
22042            Self::ManageSellOfferResultCode(_) => TypeVariant::ManageSellOfferResultCode,
22043            Self::ManageOfferEffect(_) => TypeVariant::ManageOfferEffect,
22044            Self::ManageOfferSuccessResult(_) => TypeVariant::ManageOfferSuccessResult,
22045            Self::ManageOfferSuccessResultOffer(_) => TypeVariant::ManageOfferSuccessResultOffer,
22046            Self::ManageSellOfferResult(_) => TypeVariant::ManageSellOfferResult,
22047            Self::ManageBuyOfferResultCode(_) => TypeVariant::ManageBuyOfferResultCode,
22048            Self::ManageBuyOfferResult(_) => TypeVariant::ManageBuyOfferResult,
22049            Self::SetOptionsResultCode(_) => TypeVariant::SetOptionsResultCode,
22050            Self::SetOptionsResult(_) => TypeVariant::SetOptionsResult,
22051            Self::ChangeTrustResultCode(_) => TypeVariant::ChangeTrustResultCode,
22052            Self::ChangeTrustResult(_) => TypeVariant::ChangeTrustResult,
22053            Self::AllowTrustResultCode(_) => TypeVariant::AllowTrustResultCode,
22054            Self::AllowTrustResult(_) => TypeVariant::AllowTrustResult,
22055            Self::AccountMergeResultCode(_) => TypeVariant::AccountMergeResultCode,
22056            Self::AccountMergeResult(_) => TypeVariant::AccountMergeResult,
22057            Self::InflationResultCode(_) => TypeVariant::InflationResultCode,
22058            Self::InflationPayout(_) => TypeVariant::InflationPayout,
22059            Self::InflationResult(_) => TypeVariant::InflationResult,
22060            Self::ManageDataResultCode(_) => TypeVariant::ManageDataResultCode,
22061            Self::ManageDataResult(_) => TypeVariant::ManageDataResult,
22062            Self::BumpSequenceResultCode(_) => TypeVariant::BumpSequenceResultCode,
22063            Self::BumpSequenceResult(_) => TypeVariant::BumpSequenceResult,
22064            Self::CreateClaimableBalanceResultCode(_) => {
22065                TypeVariant::CreateClaimableBalanceResultCode
22066            }
22067            Self::CreateClaimableBalanceResult(_) => TypeVariant::CreateClaimableBalanceResult,
22068            Self::ClaimClaimableBalanceResultCode(_) => {
22069                TypeVariant::ClaimClaimableBalanceResultCode
22070            }
22071            Self::ClaimClaimableBalanceResult(_) => TypeVariant::ClaimClaimableBalanceResult,
22072            Self::BeginSponsoringFutureReservesResultCode(_) => {
22073                TypeVariant::BeginSponsoringFutureReservesResultCode
22074            }
22075            Self::BeginSponsoringFutureReservesResult(_) => {
22076                TypeVariant::BeginSponsoringFutureReservesResult
22077            }
22078            Self::EndSponsoringFutureReservesResultCode(_) => {
22079                TypeVariant::EndSponsoringFutureReservesResultCode
22080            }
22081            Self::EndSponsoringFutureReservesResult(_) => {
22082                TypeVariant::EndSponsoringFutureReservesResult
22083            }
22084            Self::RevokeSponsorshipResultCode(_) => TypeVariant::RevokeSponsorshipResultCode,
22085            Self::RevokeSponsorshipResult(_) => TypeVariant::RevokeSponsorshipResult,
22086            Self::ClawbackResultCode(_) => TypeVariant::ClawbackResultCode,
22087            Self::ClawbackResult(_) => TypeVariant::ClawbackResult,
22088            Self::ClawbackClaimableBalanceResultCode(_) => {
22089                TypeVariant::ClawbackClaimableBalanceResultCode
22090            }
22091            Self::ClawbackClaimableBalanceResult(_) => TypeVariant::ClawbackClaimableBalanceResult,
22092            Self::SetTrustLineFlagsResultCode(_) => TypeVariant::SetTrustLineFlagsResultCode,
22093            Self::SetTrustLineFlagsResult(_) => TypeVariant::SetTrustLineFlagsResult,
22094            Self::LiquidityPoolDepositResultCode(_) => TypeVariant::LiquidityPoolDepositResultCode,
22095            Self::LiquidityPoolDepositResult(_) => TypeVariant::LiquidityPoolDepositResult,
22096            Self::LiquidityPoolWithdrawResultCode(_) => {
22097                TypeVariant::LiquidityPoolWithdrawResultCode
22098            }
22099            Self::LiquidityPoolWithdrawResult(_) => TypeVariant::LiquidityPoolWithdrawResult,
22100            Self::InvokeHostFunctionResultCode(_) => TypeVariant::InvokeHostFunctionResultCode,
22101            Self::InvokeHostFunctionResult(_) => TypeVariant::InvokeHostFunctionResult,
22102            Self::ExtendFootprintTtlResultCode(_) => TypeVariant::ExtendFootprintTtlResultCode,
22103            Self::ExtendFootprintTtlResult(_) => TypeVariant::ExtendFootprintTtlResult,
22104            Self::RestoreFootprintResultCode(_) => TypeVariant::RestoreFootprintResultCode,
22105            Self::RestoreFootprintResult(_) => TypeVariant::RestoreFootprintResult,
22106            Self::OperationResultCode(_) => TypeVariant::OperationResultCode,
22107            Self::OperationResult(_) => TypeVariant::OperationResult,
22108            Self::OperationResultTr(_) => TypeVariant::OperationResultTr,
22109            Self::TransactionResultCode(_) => TypeVariant::TransactionResultCode,
22110            Self::InnerTransactionResult(_) => TypeVariant::InnerTransactionResult,
22111            Self::InnerTransactionResultResult(_) => TypeVariant::InnerTransactionResultResult,
22112            Self::InnerTransactionResultExt(_) => TypeVariant::InnerTransactionResultExt,
22113            Self::InnerTransactionResultPair(_) => TypeVariant::InnerTransactionResultPair,
22114            Self::TransactionResult(_) => TypeVariant::TransactionResult,
22115            Self::TransactionResultResult(_) => TypeVariant::TransactionResultResult,
22116            Self::TransactionResultExt(_) => TypeVariant::TransactionResultExt,
22117            Self::Hash(_) => TypeVariant::Hash,
22118            Self::Uint256(_) => TypeVariant::Uint256,
22119            Self::Uint32(_) => TypeVariant::Uint32,
22120            Self::Int32(_) => TypeVariant::Int32,
22121            Self::Uint64(_) => TypeVariant::Uint64,
22122            Self::Int64(_) => TypeVariant::Int64,
22123            Self::TimePoint(_) => TypeVariant::TimePoint,
22124            Self::Duration(_) => TypeVariant::Duration,
22125            Self::ExtensionPoint(_) => TypeVariant::ExtensionPoint,
22126            Self::CryptoKeyType(_) => TypeVariant::CryptoKeyType,
22127            Self::PublicKeyType(_) => TypeVariant::PublicKeyType,
22128            Self::SignerKeyType(_) => TypeVariant::SignerKeyType,
22129            Self::PublicKey(_) => TypeVariant::PublicKey,
22130            Self::SignerKey(_) => TypeVariant::SignerKey,
22131            Self::SignerKeyEd25519SignedPayload(_) => TypeVariant::SignerKeyEd25519SignedPayload,
22132            Self::Signature(_) => TypeVariant::Signature,
22133            Self::SignatureHint(_) => TypeVariant::SignatureHint,
22134            Self::NodeId(_) => TypeVariant::NodeId,
22135            Self::AccountId(_) => TypeVariant::AccountId,
22136            Self::ContractId(_) => TypeVariant::ContractId,
22137            Self::Curve25519Secret(_) => TypeVariant::Curve25519Secret,
22138            Self::Curve25519Public(_) => TypeVariant::Curve25519Public,
22139            Self::HmacSha256Key(_) => TypeVariant::HmacSha256Key,
22140            Self::HmacSha256Mac(_) => TypeVariant::HmacSha256Mac,
22141            Self::ShortHashSeed(_) => TypeVariant::ShortHashSeed,
22142            Self::BinaryFuseFilterType(_) => TypeVariant::BinaryFuseFilterType,
22143            Self::SerializedBinaryFuseFilter(_) => TypeVariant::SerializedBinaryFuseFilter,
22144            Self::PoolId(_) => TypeVariant::PoolId,
22145            Self::ClaimableBalanceIdType(_) => TypeVariant::ClaimableBalanceIdType,
22146            Self::ClaimableBalanceId(_) => TypeVariant::ClaimableBalanceId,
22147            #[cfg(feature = "test_feature")]
22148            Self::TestNextType(_) => TypeVariant::TestNextType,
22149        }
22150    }
22151}
22152
22153#[cfg(feature = "type_enum")]
22154impl Name for Type {
22155    #[must_use]
22156    fn name(&self) -> &'static str {
22157        Self::name(self)
22158    }
22159}
22160
22161#[cfg(feature = "type_enum")]
22162impl Variants<TypeVariant> for Type {
22163    fn variants() -> slice::Iter<'static, TypeVariant> {
22164        Self::VARIANTS.iter()
22165    }
22166}
22167
22168#[cfg(feature = "type_enum")]
22169impl WriteXdr for Type {
22170    #[cfg(feature = "std")]
22171    #[allow(clippy::too_many_lines)]
22172    fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
22173        match self {
22174            Self::Value(v) => v.write_xdr(w),
22175            Self::ScpBallot(v) => v.write_xdr(w),
22176            Self::ScpStatementType(v) => v.write_xdr(w),
22177            Self::ScpNomination(v) => v.write_xdr(w),
22178            Self::ScpStatement(v) => v.write_xdr(w),
22179            Self::ScpStatementPledges(v) => v.write_xdr(w),
22180            Self::ScpStatementPrepare(v) => v.write_xdr(w),
22181            Self::ScpStatementConfirm(v) => v.write_xdr(w),
22182            Self::ScpStatementExternalize(v) => v.write_xdr(w),
22183            Self::ScpEnvelope(v) => v.write_xdr(w),
22184            Self::ScpQuorumSet(v) => v.write_xdr(w),
22185            Self::EncodedLedgerKey(v) => v.write_xdr(w),
22186            Self::ConfigSettingContractExecutionLanesV0(v) => v.write_xdr(w),
22187            Self::ConfigSettingContractComputeV0(v) => v.write_xdr(w),
22188            Self::ConfigSettingContractParallelComputeV0(v) => v.write_xdr(w),
22189            Self::ConfigSettingContractLedgerCostV0(v) => v.write_xdr(w),
22190            Self::ConfigSettingContractLedgerCostExtV0(v) => v.write_xdr(w),
22191            Self::ConfigSettingContractHistoricalDataV0(v) => v.write_xdr(w),
22192            Self::ConfigSettingContractEventsV0(v) => v.write_xdr(w),
22193            Self::ConfigSettingContractBandwidthV0(v) => v.write_xdr(w),
22194            Self::ContractCostType(v) => v.write_xdr(w),
22195            Self::ContractCostParamEntry(v) => v.write_xdr(w),
22196            Self::StateArchivalSettings(v) => v.write_xdr(w),
22197            Self::EvictionIterator(v) => v.write_xdr(w),
22198            Self::ConfigSettingScpTiming(v) => v.write_xdr(w),
22199            Self::FrozenLedgerKeys(v) => v.write_xdr(w),
22200            Self::FrozenLedgerKeysDelta(v) => v.write_xdr(w),
22201            Self::FreezeBypassTxs(v) => v.write_xdr(w),
22202            Self::FreezeBypassTxsDelta(v) => v.write_xdr(w),
22203            Self::ContractCostParams(v) => v.write_xdr(w),
22204            Self::ConfigSettingId(v) => v.write_xdr(w),
22205            Self::ConfigSettingEntry(v) => v.write_xdr(w),
22206            Self::ScEnvMetaKind(v) => v.write_xdr(w),
22207            Self::ScEnvMetaEntry(v) => v.write_xdr(w),
22208            Self::ScEnvMetaEntryInterfaceVersion(v) => v.write_xdr(w),
22209            Self::ScMetaV0(v) => v.write_xdr(w),
22210            Self::ScMetaKind(v) => v.write_xdr(w),
22211            Self::ScMetaEntry(v) => v.write_xdr(w),
22212            Self::ScSpecType(v) => v.write_xdr(w),
22213            Self::ScSpecTypeOption(v) => v.write_xdr(w),
22214            Self::ScSpecTypeResult(v) => v.write_xdr(w),
22215            Self::ScSpecTypeVec(v) => v.write_xdr(w),
22216            Self::ScSpecTypeMap(v) => v.write_xdr(w),
22217            Self::ScSpecTypeTuple(v) => v.write_xdr(w),
22218            Self::ScSpecTypeBytesN(v) => v.write_xdr(w),
22219            Self::ScSpecTypeUdt(v) => v.write_xdr(w),
22220            Self::ScSpecTypeDef(v) => v.write_xdr(w),
22221            Self::ScSpecUdtStructFieldV0(v) => v.write_xdr(w),
22222            Self::ScSpecUdtStructV0(v) => v.write_xdr(w),
22223            Self::ScSpecUdtUnionCaseVoidV0(v) => v.write_xdr(w),
22224            Self::ScSpecUdtUnionCaseTupleV0(v) => v.write_xdr(w),
22225            Self::ScSpecUdtUnionCaseV0Kind(v) => v.write_xdr(w),
22226            Self::ScSpecUdtUnionCaseV0(v) => v.write_xdr(w),
22227            Self::ScSpecUdtUnionV0(v) => v.write_xdr(w),
22228            Self::ScSpecUdtEnumCaseV0(v) => v.write_xdr(w),
22229            Self::ScSpecUdtEnumV0(v) => v.write_xdr(w),
22230            Self::ScSpecUdtErrorEnumCaseV0(v) => v.write_xdr(w),
22231            Self::ScSpecUdtErrorEnumV0(v) => v.write_xdr(w),
22232            Self::ScSpecFunctionInputV0(v) => v.write_xdr(w),
22233            Self::ScSpecFunctionV0(v) => v.write_xdr(w),
22234            Self::ScSpecEventParamLocationV0(v) => v.write_xdr(w),
22235            Self::ScSpecEventParamV0(v) => v.write_xdr(w),
22236            Self::ScSpecEventDataFormat(v) => v.write_xdr(w),
22237            Self::ScSpecEventV0(v) => v.write_xdr(w),
22238            Self::ScSpecEntryKind(v) => v.write_xdr(w),
22239            Self::ScSpecEntry(v) => v.write_xdr(w),
22240            Self::ScBytes(v) => v.write_xdr(w),
22241            Self::ScString(v) => v.write_xdr(w),
22242            Self::ScSymbol(v) => v.write_xdr(w),
22243            Self::ScValType(v) => v.write_xdr(w),
22244            Self::ScErrorType(v) => v.write_xdr(w),
22245            Self::ScErrorCode(v) => v.write_xdr(w),
22246            Self::ScError(v) => v.write_xdr(w),
22247            Self::UInt128Parts(v) => v.write_xdr(w),
22248            Self::Int128Parts(v) => v.write_xdr(w),
22249            Self::UInt256Parts(v) => v.write_xdr(w),
22250            Self::Int256Parts(v) => v.write_xdr(w),
22251            Self::ContractExecutableType(v) => v.write_xdr(w),
22252            Self::ScAddressType(v) => v.write_xdr(w),
22253            Self::MuxedEd25519Account(v) => v.write_xdr(w),
22254            #[cfg(feature = "cap_0084_muxed_contract")]
22255            Self::MuxedContract(v) => v.write_xdr(w),
22256            Self::ScAddress(v) => v.write_xdr(w),
22257            Self::ContractExecutableExternalRef(v) => v.write_xdr(w),
22258            Self::ContractExecutable(v) => v.write_xdr(w),
22259            Self::ScVec(v) => v.write_xdr(w),
22260            Self::ScMap(v) => v.write_xdr(w),
22261            Self::ScNonceKey(v) => v.write_xdr(w),
22262            Self::ScContractInstance(v) => v.write_xdr(w),
22263            Self::ScVal(v) => v.write_xdr(w),
22264            Self::ScMapEntry(v) => v.write_xdr(w),
22265            Self::LedgerCloseMetaBatch(v) => v.write_xdr(w),
22266            Self::StoredTransactionSet(v) => v.write_xdr(w),
22267            Self::StoredDebugTransactionSet(v) => v.write_xdr(w),
22268            Self::PersistedScpStateV0(v) => v.write_xdr(w),
22269            Self::PersistedScpStateV1(v) => v.write_xdr(w),
22270            Self::PersistedScpState(v) => v.write_xdr(w),
22271            Self::Thresholds(v) => v.write_xdr(w),
22272            Self::String32(v) => v.write_xdr(w),
22273            Self::String64(v) => v.write_xdr(w),
22274            Self::SequenceNumber(v) => v.write_xdr(w),
22275            Self::DataValue(v) => v.write_xdr(w),
22276            Self::AssetCode4(v) => v.write_xdr(w),
22277            Self::AssetCode12(v) => v.write_xdr(w),
22278            Self::AssetType(v) => v.write_xdr(w),
22279            Self::AssetCode(v) => v.write_xdr(w),
22280            Self::AlphaNum4(v) => v.write_xdr(w),
22281            Self::AlphaNum12(v) => v.write_xdr(w),
22282            Self::Asset(v) => v.write_xdr(w),
22283            Self::Price(v) => v.write_xdr(w),
22284            Self::Liabilities(v) => v.write_xdr(w),
22285            Self::ThresholdIndexes(v) => v.write_xdr(w),
22286            Self::LedgerEntryType(v) => v.write_xdr(w),
22287            Self::Signer(v) => v.write_xdr(w),
22288            Self::AccountFlags(v) => v.write_xdr(w),
22289            Self::SponsorshipDescriptor(v) => v.write_xdr(w),
22290            Self::AccountEntryExtensionV3(v) => v.write_xdr(w),
22291            Self::AccountEntryExtensionV2(v) => v.write_xdr(w),
22292            Self::AccountEntryExtensionV2Ext(v) => v.write_xdr(w),
22293            Self::AccountEntryExtensionV1(v) => v.write_xdr(w),
22294            Self::AccountEntryExtensionV1Ext(v) => v.write_xdr(w),
22295            Self::AccountEntry(v) => v.write_xdr(w),
22296            Self::AccountEntryExt(v) => v.write_xdr(w),
22297            Self::TrustLineFlags(v) => v.write_xdr(w),
22298            Self::LiquidityPoolType(v) => v.write_xdr(w),
22299            Self::TrustLineAsset(v) => v.write_xdr(w),
22300            Self::TrustLineEntryExtensionV2(v) => v.write_xdr(w),
22301            Self::TrustLineEntryExtensionV2Ext(v) => v.write_xdr(w),
22302            Self::TrustLineEntry(v) => v.write_xdr(w),
22303            Self::TrustLineEntryExt(v) => v.write_xdr(w),
22304            Self::TrustLineEntryV1(v) => v.write_xdr(w),
22305            Self::TrustLineEntryV1Ext(v) => v.write_xdr(w),
22306            Self::OfferEntryFlags(v) => v.write_xdr(w),
22307            Self::OfferEntry(v) => v.write_xdr(w),
22308            Self::OfferEntryExt(v) => v.write_xdr(w),
22309            Self::DataEntry(v) => v.write_xdr(w),
22310            Self::DataEntryExt(v) => v.write_xdr(w),
22311            Self::ClaimPredicateType(v) => v.write_xdr(w),
22312            Self::ClaimPredicate(v) => v.write_xdr(w),
22313            Self::ClaimantType(v) => v.write_xdr(w),
22314            Self::Claimant(v) => v.write_xdr(w),
22315            Self::ClaimantV0(v) => v.write_xdr(w),
22316            Self::ClaimableBalanceFlags(v) => v.write_xdr(w),
22317            Self::ClaimableBalanceEntryExtensionV1(v) => v.write_xdr(w),
22318            Self::ClaimableBalanceEntryExtensionV1Ext(v) => v.write_xdr(w),
22319            Self::ClaimableBalanceEntry(v) => v.write_xdr(w),
22320            Self::ClaimableBalanceEntryExt(v) => v.write_xdr(w),
22321            Self::LiquidityPoolConstantProductParameters(v) => v.write_xdr(w),
22322            Self::LiquidityPoolEntry(v) => v.write_xdr(w),
22323            Self::LiquidityPoolEntryBody(v) => v.write_xdr(w),
22324            Self::LiquidityPoolEntryConstantProduct(v) => v.write_xdr(w),
22325            Self::ContractDataDurability(v) => v.write_xdr(w),
22326            Self::ContractDataEntry(v) => v.write_xdr(w),
22327            Self::ContractCodeCostInputs(v) => v.write_xdr(w),
22328            Self::ContractCodeEntry(v) => v.write_xdr(w),
22329            Self::ContractCodeEntryExt(v) => v.write_xdr(w),
22330            Self::ContractCodeEntryV1(v) => v.write_xdr(w),
22331            Self::TtlEntry(v) => v.write_xdr(w),
22332            Self::LedgerEntryExtensionV1(v) => v.write_xdr(w),
22333            Self::LedgerEntryExtensionV1Ext(v) => v.write_xdr(w),
22334            Self::LedgerEntry(v) => v.write_xdr(w),
22335            Self::LedgerEntryData(v) => v.write_xdr(w),
22336            Self::LedgerEntryExt(v) => v.write_xdr(w),
22337            Self::LedgerKey(v) => v.write_xdr(w),
22338            Self::LedgerKeyAccount(v) => v.write_xdr(w),
22339            Self::LedgerKeyTrustLine(v) => v.write_xdr(w),
22340            Self::LedgerKeyOffer(v) => v.write_xdr(w),
22341            Self::LedgerKeyData(v) => v.write_xdr(w),
22342            Self::LedgerKeyClaimableBalance(v) => v.write_xdr(w),
22343            Self::LedgerKeyLiquidityPool(v) => v.write_xdr(w),
22344            Self::LedgerKeyContractData(v) => v.write_xdr(w),
22345            Self::LedgerKeyContractCode(v) => v.write_xdr(w),
22346            Self::LedgerKeyConfigSetting(v) => v.write_xdr(w),
22347            Self::LedgerKeyTtl(v) => v.write_xdr(w),
22348            Self::EnvelopeType(v) => v.write_xdr(w),
22349            Self::BucketListType(v) => v.write_xdr(w),
22350            Self::BucketEntryType(v) => v.write_xdr(w),
22351            Self::HotArchiveBucketEntryType(v) => v.write_xdr(w),
22352            Self::BucketMetadata(v) => v.write_xdr(w),
22353            Self::BucketMetadataExt(v) => v.write_xdr(w),
22354            Self::BucketEntry(v) => v.write_xdr(w),
22355            Self::HotArchiveBucketEntry(v) => v.write_xdr(w),
22356            Self::UpgradeType(v) => v.write_xdr(w),
22357            Self::StellarValueType(v) => v.write_xdr(w),
22358            Self::LedgerCloseValueSignature(v) => v.write_xdr(w),
22359            Self::StellarValue(v) => v.write_xdr(w),
22360            Self::StellarValueExt(v) => v.write_xdr(w),
22361            Self::StellarValueProposedValue(v) => v.write_xdr(w),
22362            Self::LedgerHeaderFlags(v) => v.write_xdr(w),
22363            Self::LedgerHeaderExtensionV1(v) => v.write_xdr(w),
22364            Self::LedgerHeaderExtensionV1Ext(v) => v.write_xdr(w),
22365            Self::LedgerHeader(v) => v.write_xdr(w),
22366            Self::LedgerHeaderExt(v) => v.write_xdr(w),
22367            Self::LedgerUpgradeType(v) => v.write_xdr(w),
22368            Self::ConfigUpgradeSetKey(v) => v.write_xdr(w),
22369            Self::LedgerUpgrade(v) => v.write_xdr(w),
22370            Self::ConfigUpgradeSet(v) => v.write_xdr(w),
22371            Self::TxSetComponentType(v) => v.write_xdr(w),
22372            Self::DependentTxCluster(v) => v.write_xdr(w),
22373            Self::ParallelTxExecutionStage(v) => v.write_xdr(w),
22374            Self::ParallelTxsComponent(v) => v.write_xdr(w),
22375            Self::TxSetComponent(v) => v.write_xdr(w),
22376            Self::TxSetComponentTxsMaybeDiscountedFee(v) => v.write_xdr(w),
22377            Self::TransactionPhase(v) => v.write_xdr(w),
22378            Self::TransactionSet(v) => v.write_xdr(w),
22379            Self::TransactionSetV1(v) => v.write_xdr(w),
22380            Self::GeneralizedTransactionSet(v) => v.write_xdr(w),
22381            Self::TransactionResultPair(v) => v.write_xdr(w),
22382            Self::TransactionResultSet(v) => v.write_xdr(w),
22383            Self::TransactionHistoryEntry(v) => v.write_xdr(w),
22384            Self::TransactionHistoryEntryExt(v) => v.write_xdr(w),
22385            Self::TransactionHistoryResultEntry(v) => v.write_xdr(w),
22386            Self::TransactionHistoryResultEntryExt(v) => v.write_xdr(w),
22387            Self::LedgerHeaderHistoryEntry(v) => v.write_xdr(w),
22388            Self::LedgerHeaderHistoryEntryExt(v) => v.write_xdr(w),
22389            Self::LedgerScpMessages(v) => v.write_xdr(w),
22390            Self::ScpHistoryEntryV0(v) => v.write_xdr(w),
22391            Self::ScpHistoryEntry(v) => v.write_xdr(w),
22392            Self::LedgerEntryChangeType(v) => v.write_xdr(w),
22393            Self::LedgerEntryChange(v) => v.write_xdr(w),
22394            Self::LedgerEntryChanges(v) => v.write_xdr(w),
22395            Self::OperationMeta(v) => v.write_xdr(w),
22396            Self::TransactionMetaV1(v) => v.write_xdr(w),
22397            Self::TransactionMetaV2(v) => v.write_xdr(w),
22398            Self::ContractEventType(v) => v.write_xdr(w),
22399            Self::ContractEvent(v) => v.write_xdr(w),
22400            Self::ContractEventBody(v) => v.write_xdr(w),
22401            Self::ContractEventV0(v) => v.write_xdr(w),
22402            Self::DiagnosticEvent(v) => v.write_xdr(w),
22403            Self::SorobanTransactionMetaExtV1(v) => v.write_xdr(w),
22404            Self::SorobanTransactionMetaExt(v) => v.write_xdr(w),
22405            Self::SorobanTransactionMeta(v) => v.write_xdr(w),
22406            Self::TransactionMetaV3(v) => v.write_xdr(w),
22407            Self::OperationMetaV2(v) => v.write_xdr(w),
22408            Self::SorobanTransactionMetaV2(v) => v.write_xdr(w),
22409            Self::TransactionEventStage(v) => v.write_xdr(w),
22410            Self::TransactionEvent(v) => v.write_xdr(w),
22411            Self::TransactionMetaV4(v) => v.write_xdr(w),
22412            Self::InvokeHostFunctionSuccessPreImage(v) => v.write_xdr(w),
22413            Self::TransactionMeta(v) => v.write_xdr(w),
22414            Self::TransactionResultMeta(v) => v.write_xdr(w),
22415            Self::TransactionResultMetaV1(v) => v.write_xdr(w),
22416            Self::UpgradeEntryMeta(v) => v.write_xdr(w),
22417            Self::LedgerCloseMetaV0(v) => v.write_xdr(w),
22418            Self::LedgerCloseMetaExtV1(v) => v.write_xdr(w),
22419            Self::LedgerCloseMetaExt(v) => v.write_xdr(w),
22420            Self::LedgerCloseMetaV1(v) => v.write_xdr(w),
22421            Self::LedgerCloseMetaV2(v) => v.write_xdr(w),
22422            Self::LedgerCloseMeta(v) => v.write_xdr(w),
22423            Self::ErrorCode(v) => v.write_xdr(w),
22424            Self::SError(v) => v.write_xdr(w),
22425            Self::SendMore(v) => v.write_xdr(w),
22426            Self::SendMoreExtended(v) => v.write_xdr(w),
22427            Self::AuthCert(v) => v.write_xdr(w),
22428            Self::Hello(v) => v.write_xdr(w),
22429            Self::Auth(v) => v.write_xdr(w),
22430            Self::IpAddrType(v) => v.write_xdr(w),
22431            Self::PeerAddress(v) => v.write_xdr(w),
22432            Self::PeerAddressIp(v) => v.write_xdr(w),
22433            Self::MessageType(v) => v.write_xdr(w),
22434            Self::DontHave(v) => v.write_xdr(w),
22435            Self::SurveyMessageCommandType(v) => v.write_xdr(w),
22436            Self::SurveyMessageResponseType(v) => v.write_xdr(w),
22437            Self::TimeSlicedSurveyStartCollectingMessage(v) => v.write_xdr(w),
22438            Self::SignedTimeSlicedSurveyStartCollectingMessage(v) => v.write_xdr(w),
22439            Self::TimeSlicedSurveyStopCollectingMessage(v) => v.write_xdr(w),
22440            Self::SignedTimeSlicedSurveyStopCollectingMessage(v) => v.write_xdr(w),
22441            Self::SurveyRequestMessage(v) => v.write_xdr(w),
22442            Self::TimeSlicedSurveyRequestMessage(v) => v.write_xdr(w),
22443            Self::SignedTimeSlicedSurveyRequestMessage(v) => v.write_xdr(w),
22444            Self::EncryptedBody(v) => v.write_xdr(w),
22445            Self::SurveyResponseMessage(v) => v.write_xdr(w),
22446            Self::TimeSlicedSurveyResponseMessage(v) => v.write_xdr(w),
22447            Self::SignedTimeSlicedSurveyResponseMessage(v) => v.write_xdr(w),
22448            Self::PeerStats(v) => v.write_xdr(w),
22449            Self::TimeSlicedNodeData(v) => v.write_xdr(w),
22450            Self::TimeSlicedPeerData(v) => v.write_xdr(w),
22451            Self::TimeSlicedPeerDataList(v) => v.write_xdr(w),
22452            Self::TopologyResponseBodyV2(v) => v.write_xdr(w),
22453            Self::SurveyResponseBody(v) => v.write_xdr(w),
22454            Self::TxAdvertVector(v) => v.write_xdr(w),
22455            Self::FloodAdvert(v) => v.write_xdr(w),
22456            Self::TxDemandVector(v) => v.write_xdr(w),
22457            Self::FloodDemand(v) => v.write_xdr(w),
22458            Self::StellarMessage(v) => v.write_xdr(w),
22459            Self::AuthenticatedMessage(v) => v.write_xdr(w),
22460            Self::AuthenticatedMessageV0(v) => v.write_xdr(w),
22461            Self::LiquidityPoolParameters(v) => v.write_xdr(w),
22462            Self::MuxedAccount(v) => v.write_xdr(w),
22463            Self::MuxedAccountMed25519(v) => v.write_xdr(w),
22464            Self::DecoratedSignature(v) => v.write_xdr(w),
22465            Self::OperationType(v) => v.write_xdr(w),
22466            Self::CreateAccountOp(v) => v.write_xdr(w),
22467            Self::PaymentOp(v) => v.write_xdr(w),
22468            Self::PathPaymentStrictReceiveOp(v) => v.write_xdr(w),
22469            Self::PathPaymentStrictSendOp(v) => v.write_xdr(w),
22470            Self::ManageSellOfferOp(v) => v.write_xdr(w),
22471            Self::ManageBuyOfferOp(v) => v.write_xdr(w),
22472            Self::CreatePassiveSellOfferOp(v) => v.write_xdr(w),
22473            Self::SetOptionsOp(v) => v.write_xdr(w),
22474            Self::ChangeTrustAsset(v) => v.write_xdr(w),
22475            Self::ChangeTrustOp(v) => v.write_xdr(w),
22476            Self::AllowTrustOp(v) => v.write_xdr(w),
22477            Self::ManageDataOp(v) => v.write_xdr(w),
22478            Self::BumpSequenceOp(v) => v.write_xdr(w),
22479            Self::CreateClaimableBalanceOp(v) => v.write_xdr(w),
22480            Self::ClaimClaimableBalanceOp(v) => v.write_xdr(w),
22481            Self::BeginSponsoringFutureReservesOp(v) => v.write_xdr(w),
22482            Self::RevokeSponsorshipType(v) => v.write_xdr(w),
22483            Self::RevokeSponsorshipOp(v) => v.write_xdr(w),
22484            Self::RevokeSponsorshipOpSigner(v) => v.write_xdr(w),
22485            Self::ClawbackOp(v) => v.write_xdr(w),
22486            Self::ClawbackClaimableBalanceOp(v) => v.write_xdr(w),
22487            Self::SetTrustLineFlagsOp(v) => v.write_xdr(w),
22488            Self::LiquidityPoolDepositOp(v) => v.write_xdr(w),
22489            Self::LiquidityPoolWithdrawOp(v) => v.write_xdr(w),
22490            Self::HostFunctionType(v) => v.write_xdr(w),
22491            Self::ContractIdPreimageType(v) => v.write_xdr(w),
22492            Self::ContractIdPreimage(v) => v.write_xdr(w),
22493            Self::ContractIdPreimageFromAddress(v) => v.write_xdr(w),
22494            Self::CreateContractArgs(v) => v.write_xdr(w),
22495            Self::CreateContractArgsV2(v) => v.write_xdr(w),
22496            Self::InvokeContractArgs(v) => v.write_xdr(w),
22497            Self::HostFunction(v) => v.write_xdr(w),
22498            Self::SorobanAuthorizedFunctionType(v) => v.write_xdr(w),
22499            Self::SorobanAuthorizedFunction(v) => v.write_xdr(w),
22500            Self::SorobanAuthorizedInvocation(v) => v.write_xdr(w),
22501            Self::SorobanAddressCredentials(v) => v.write_xdr(w),
22502            Self::SorobanDelegateSignature(v) => v.write_xdr(w),
22503            Self::SorobanAddressCredentialsWithDelegates(v) => v.write_xdr(w),
22504            Self::SorobanCredentialsType(v) => v.write_xdr(w),
22505            Self::SorobanCredentials(v) => v.write_xdr(w),
22506            Self::SorobanAuthorizationEntry(v) => v.write_xdr(w),
22507            Self::SorobanAuthorizationEntries(v) => v.write_xdr(w),
22508            Self::InvokeHostFunctionOp(v) => v.write_xdr(w),
22509            Self::ExtendFootprintTtlOp(v) => v.write_xdr(w),
22510            Self::RestoreFootprintOp(v) => v.write_xdr(w),
22511            Self::Operation(v) => v.write_xdr(w),
22512            Self::OperationBody(v) => v.write_xdr(w),
22513            Self::HashIdPreimage(v) => v.write_xdr(w),
22514            Self::HashIdPreimageOperationId(v) => v.write_xdr(w),
22515            Self::HashIdPreimageRevokeId(v) => v.write_xdr(w),
22516            Self::HashIdPreimageContractId(v) => v.write_xdr(w),
22517            Self::HashIdPreimageSorobanAuthorization(v) => v.write_xdr(w),
22518            Self::HashIdPreimageSorobanAuthorizationWithAddress(v) => v.write_xdr(w),
22519            Self::MemoType(v) => v.write_xdr(w),
22520            Self::Memo(v) => v.write_xdr(w),
22521            Self::TimeBounds(v) => v.write_xdr(w),
22522            Self::LedgerBounds(v) => v.write_xdr(w),
22523            Self::PreconditionsV2(v) => v.write_xdr(w),
22524            Self::PreconditionType(v) => v.write_xdr(w),
22525            Self::Preconditions(v) => v.write_xdr(w),
22526            Self::LedgerFootprint(v) => v.write_xdr(w),
22527            Self::SorobanResources(v) => v.write_xdr(w),
22528            Self::SorobanResourcesExtV0(v) => v.write_xdr(w),
22529            Self::SorobanTransactionData(v) => v.write_xdr(w),
22530            Self::SorobanTransactionDataExt(v) => v.write_xdr(w),
22531            Self::TransactionV0(v) => v.write_xdr(w),
22532            Self::TransactionV0Ext(v) => v.write_xdr(w),
22533            Self::TransactionV0Envelope(v) => v.write_xdr(w),
22534            Self::Transaction(v) => v.write_xdr(w),
22535            Self::TransactionExt(v) => v.write_xdr(w),
22536            Self::TransactionV1Envelope(v) => v.write_xdr(w),
22537            Self::FeeBumpTransaction(v) => v.write_xdr(w),
22538            Self::FeeBumpTransactionInnerTx(v) => v.write_xdr(w),
22539            Self::FeeBumpTransactionExt(v) => v.write_xdr(w),
22540            Self::FeeBumpTransactionEnvelope(v) => v.write_xdr(w),
22541            Self::TransactionEnvelope(v) => v.write_xdr(w),
22542            Self::TransactionSignaturePayload(v) => v.write_xdr(w),
22543            Self::TransactionSignaturePayloadTaggedTransaction(v) => v.write_xdr(w),
22544            Self::ClaimAtomType(v) => v.write_xdr(w),
22545            Self::ClaimOfferAtomV0(v) => v.write_xdr(w),
22546            Self::ClaimOfferAtom(v) => v.write_xdr(w),
22547            Self::ClaimLiquidityAtom(v) => v.write_xdr(w),
22548            Self::ClaimAtom(v) => v.write_xdr(w),
22549            Self::CreateAccountResultCode(v) => v.write_xdr(w),
22550            Self::CreateAccountResult(v) => v.write_xdr(w),
22551            Self::PaymentResultCode(v) => v.write_xdr(w),
22552            Self::PaymentResult(v) => v.write_xdr(w),
22553            Self::PathPaymentStrictReceiveResultCode(v) => v.write_xdr(w),
22554            Self::SimplePaymentResult(v) => v.write_xdr(w),
22555            Self::PathPaymentStrictReceiveResult(v) => v.write_xdr(w),
22556            Self::PathPaymentStrictReceiveResultSuccess(v) => v.write_xdr(w),
22557            Self::PathPaymentStrictSendResultCode(v) => v.write_xdr(w),
22558            Self::PathPaymentStrictSendResult(v) => v.write_xdr(w),
22559            Self::PathPaymentStrictSendResultSuccess(v) => v.write_xdr(w),
22560            Self::ManageSellOfferResultCode(v) => v.write_xdr(w),
22561            Self::ManageOfferEffect(v) => v.write_xdr(w),
22562            Self::ManageOfferSuccessResult(v) => v.write_xdr(w),
22563            Self::ManageOfferSuccessResultOffer(v) => v.write_xdr(w),
22564            Self::ManageSellOfferResult(v) => v.write_xdr(w),
22565            Self::ManageBuyOfferResultCode(v) => v.write_xdr(w),
22566            Self::ManageBuyOfferResult(v) => v.write_xdr(w),
22567            Self::SetOptionsResultCode(v) => v.write_xdr(w),
22568            Self::SetOptionsResult(v) => v.write_xdr(w),
22569            Self::ChangeTrustResultCode(v) => v.write_xdr(w),
22570            Self::ChangeTrustResult(v) => v.write_xdr(w),
22571            Self::AllowTrustResultCode(v) => v.write_xdr(w),
22572            Self::AllowTrustResult(v) => v.write_xdr(w),
22573            Self::AccountMergeResultCode(v) => v.write_xdr(w),
22574            Self::AccountMergeResult(v) => v.write_xdr(w),
22575            Self::InflationResultCode(v) => v.write_xdr(w),
22576            Self::InflationPayout(v) => v.write_xdr(w),
22577            Self::InflationResult(v) => v.write_xdr(w),
22578            Self::ManageDataResultCode(v) => v.write_xdr(w),
22579            Self::ManageDataResult(v) => v.write_xdr(w),
22580            Self::BumpSequenceResultCode(v) => v.write_xdr(w),
22581            Self::BumpSequenceResult(v) => v.write_xdr(w),
22582            Self::CreateClaimableBalanceResultCode(v) => v.write_xdr(w),
22583            Self::CreateClaimableBalanceResult(v) => v.write_xdr(w),
22584            Self::ClaimClaimableBalanceResultCode(v) => v.write_xdr(w),
22585            Self::ClaimClaimableBalanceResult(v) => v.write_xdr(w),
22586            Self::BeginSponsoringFutureReservesResultCode(v) => v.write_xdr(w),
22587            Self::BeginSponsoringFutureReservesResult(v) => v.write_xdr(w),
22588            Self::EndSponsoringFutureReservesResultCode(v) => v.write_xdr(w),
22589            Self::EndSponsoringFutureReservesResult(v) => v.write_xdr(w),
22590            Self::RevokeSponsorshipResultCode(v) => v.write_xdr(w),
22591            Self::RevokeSponsorshipResult(v) => v.write_xdr(w),
22592            Self::ClawbackResultCode(v) => v.write_xdr(w),
22593            Self::ClawbackResult(v) => v.write_xdr(w),
22594            Self::ClawbackClaimableBalanceResultCode(v) => v.write_xdr(w),
22595            Self::ClawbackClaimableBalanceResult(v) => v.write_xdr(w),
22596            Self::SetTrustLineFlagsResultCode(v) => v.write_xdr(w),
22597            Self::SetTrustLineFlagsResult(v) => v.write_xdr(w),
22598            Self::LiquidityPoolDepositResultCode(v) => v.write_xdr(w),
22599            Self::LiquidityPoolDepositResult(v) => v.write_xdr(w),
22600            Self::LiquidityPoolWithdrawResultCode(v) => v.write_xdr(w),
22601            Self::LiquidityPoolWithdrawResult(v) => v.write_xdr(w),
22602            Self::InvokeHostFunctionResultCode(v) => v.write_xdr(w),
22603            Self::InvokeHostFunctionResult(v) => v.write_xdr(w),
22604            Self::ExtendFootprintTtlResultCode(v) => v.write_xdr(w),
22605            Self::ExtendFootprintTtlResult(v) => v.write_xdr(w),
22606            Self::RestoreFootprintResultCode(v) => v.write_xdr(w),
22607            Self::RestoreFootprintResult(v) => v.write_xdr(w),
22608            Self::OperationResultCode(v) => v.write_xdr(w),
22609            Self::OperationResult(v) => v.write_xdr(w),
22610            Self::OperationResultTr(v) => v.write_xdr(w),
22611            Self::TransactionResultCode(v) => v.write_xdr(w),
22612            Self::InnerTransactionResult(v) => v.write_xdr(w),
22613            Self::InnerTransactionResultResult(v) => v.write_xdr(w),
22614            Self::InnerTransactionResultExt(v) => v.write_xdr(w),
22615            Self::InnerTransactionResultPair(v) => v.write_xdr(w),
22616            Self::TransactionResult(v) => v.write_xdr(w),
22617            Self::TransactionResultResult(v) => v.write_xdr(w),
22618            Self::TransactionResultExt(v) => v.write_xdr(w),
22619            Self::Hash(v) => v.write_xdr(w),
22620            Self::Uint256(v) => v.write_xdr(w),
22621            Self::Uint32(v) => v.write_xdr(w),
22622            Self::Int32(v) => v.write_xdr(w),
22623            Self::Uint64(v) => v.write_xdr(w),
22624            Self::Int64(v) => v.write_xdr(w),
22625            Self::TimePoint(v) => v.write_xdr(w),
22626            Self::Duration(v) => v.write_xdr(w),
22627            Self::ExtensionPoint(v) => v.write_xdr(w),
22628            Self::CryptoKeyType(v) => v.write_xdr(w),
22629            Self::PublicKeyType(v) => v.write_xdr(w),
22630            Self::SignerKeyType(v) => v.write_xdr(w),
22631            Self::PublicKey(v) => v.write_xdr(w),
22632            Self::SignerKey(v) => v.write_xdr(w),
22633            Self::SignerKeyEd25519SignedPayload(v) => v.write_xdr(w),
22634            Self::Signature(v) => v.write_xdr(w),
22635            Self::SignatureHint(v) => v.write_xdr(w),
22636            Self::NodeId(v) => v.write_xdr(w),
22637            Self::AccountId(v) => v.write_xdr(w),
22638            Self::ContractId(v) => v.write_xdr(w),
22639            Self::Curve25519Secret(v) => v.write_xdr(w),
22640            Self::Curve25519Public(v) => v.write_xdr(w),
22641            Self::HmacSha256Key(v) => v.write_xdr(w),
22642            Self::HmacSha256Mac(v) => v.write_xdr(w),
22643            Self::ShortHashSeed(v) => v.write_xdr(w),
22644            Self::BinaryFuseFilterType(v) => v.write_xdr(w),
22645            Self::SerializedBinaryFuseFilter(v) => v.write_xdr(w),
22646            Self::PoolId(v) => v.write_xdr(w),
22647            Self::ClaimableBalanceIdType(v) => v.write_xdr(w),
22648            Self::ClaimableBalanceId(v) => v.write_xdr(w),
22649            #[cfg(feature = "test_feature")]
22650            Self::TestNextType(v) => v.write_xdr(w),
22651        }
22652    }
22653}