diff --git a/Cargo.lock b/Cargo.lock index 37a1e14aa..df39134f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1564,7 +1564,6 @@ dependencies = [ "quote", "sha2", "soroban-env-common", - "soroban-spec", "soroban-spec-rust", "stellar-xdr", "syn", @@ -1686,8 +1685,7 @@ dependencies = [ [[package]] name = "stellar-xdr" version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93d09ff8b9f919b084f664003c4c546ac66a76affd5429460dbe29f4b326f8e" +source = "git+https://github.com/stellar/rs-stellar-xdr?rev=595950c5dfd2dab0333922ebb26fab27dac3188a#595950c5dfd2dab0333922ebb26fab27dac3188a" dependencies = [ "arbitrary", "base64", diff --git a/Cargo.toml b/Cargo.toml index 2a9a2f056..45815b515 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,7 +53,11 @@ version = "=28.0.0" #rev = "a749b69b3471aec0c20ec431b0297f3414d66421" default-features = false -#[patch.crates-io] +[patch.crates-io] +# Pending https://github.com/stellar/rs-stellar-xdr/pull/562, which adds the +# borrowing `*View` types and their const XDR serializers that the contract spec +# generation in soroban-sdk-macros builds on. +stellar-xdr = { git = "https://github.com/stellar/rs-stellar-xdr", rev = "595950c5dfd2dab0333922ebb26fab27dac3188a" } #soroban-env-common = { path = "../rs-soroban-env/soroban-env-common" } #soroban-env-guest = { path = "../rs-soroban-env/soroban-env-guest" } #soroban-env-host = { path = "../rs-soroban-env/soroban-env-host" } diff --git a/soroban-sdk-macros/Cargo.toml b/soroban-sdk-macros/Cargo.toml index 7d4033cce..0ec5145de 100644 --- a/soroban-sdk-macros/Cargo.toml +++ b/soroban-sdk-macros/Cargo.toml @@ -15,7 +15,6 @@ proc-macro = true doctest = false [dependencies] -soroban-spec = { workspace = true } soroban-spec-rust = { workspace = true } soroban-env-common = { workspace = true } stellar-xdr = { workspace = true, features = ["std"] } diff --git a/soroban-sdk-macros/src/derive_contractimpl_trait_default_fns_not_overridden.rs b/soroban-sdk-macros/src/derive_contractimpl_trait_default_fns_not_overridden.rs index ee45862a2..a54b35d03 100644 --- a/soroban-sdk-macros/src/derive_contractimpl_trait_default_fns_not_overridden.rs +++ b/soroban-sdk-macros/src/derive_contractimpl_trait_default_fns_not_overridden.rs @@ -89,7 +89,12 @@ fn derive(args: &Args) -> Result { Some(trait_ident), &args.client_name, )); - output.extend(derive_fns_spec(&args.spec_name, &fns, spec_export)); + output.extend(derive_fns_spec( + &args.crate_path, + &args.spec_name, + &fns, + spec_export, + )); output.extend(derive_client_impl( &args.crate_path, &args.client_name, diff --git a/soroban-sdk-macros/src/derive_enum.rs b/soroban-sdk-macros/src/derive_enum.rs index d1c7712e3..eb244695c 100644 --- a/soroban-sdk-macros/src/derive_enum.rs +++ b/soroban-sdk-macros/src/derive_enum.rs @@ -7,11 +7,15 @@ use syn::{ }; use stellar_xdr::{ - Error as XdrError, ScSpecEntry, ScSpecTypeDef, ScSpecUdtUnionCaseTupleV0, ScSpecUdtUnionCaseV0, - ScSpecUdtUnionCaseVoidV0, ScSpecUdtUnionV0, StringM, VecM, WriteXdr, SCSYMBOL_LIMIT, + Error as XdrError, ScSpecTypeDef, ScSpecUdtUnionCaseTupleV0, ScSpecUdtUnionCaseV0, + ScSpecUdtUnionCaseVoidV0, ScSpecUdtUnionV0, StringM, VecM, SCSYMBOL_LIMIT, }; -use crate::{doc::docs_from_attrs, map_type::map_type, shaking, DEFAULT_XDR_RW_LIMITS}; +use crate::{ + doc::docs_from_attrs, + map_type::{const_view_string, const_view_type_def, map_type}, + shaking, +}; pub fn derive_type_enum( path: &Path, @@ -144,30 +148,62 @@ pub fn derive_type_enum( return quote! { #(#compile_errors)* }; } - // Compute spec XDR once. - let spec_entry = ScSpecEntry::UdtUnionV0(ScSpecUdtUnionV0 { + // Build the spec entry once. + let spec = ScSpecUdtUnionV0 { doc: docs_from_attrs(attrs), lib: lib.as_deref().unwrap_or_default().try_into().unwrap(), name: enum_ident.unraw().to_string().try_into().unwrap(), cases: spec_cases.try_into().unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); + }; - // Generated code spec. + // Generated code spec. The spec entry is rendered as the equivalent const + // ScSpecEntryView, which the contract crate encodes to XDR at compile time. let spec_gen = { - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + let doc = const_view_string(path, &spec.doc); + let lib = const_view_string(path, &spec.lib); + let name = const_view_string(path, &spec.name); + let cases = spec.cases.iter().map(|c| match c { + ScSpecUdtUnionCaseV0::VoidV0(c) => { + let doc = const_view_string(path, &c.doc); + let name = const_view_string(path, &c.name); + quote!(#path::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + #path::xdr::ScSpecUdtUnionCaseVoidV0View { doc: #doc, name: #name } + )) + } + ScSpecUdtUnionCaseV0::TupleV0(c) => { + let doc = const_view_string(path, &c.doc); + let name = const_view_string(path, &c.name); + let type_ = c.type_.iter().map(|t| const_view_type_def(path, t)); + quote!(#path::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + #path::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: #doc, + name: #name, + type_: #path::xdr::VecMView::new(&[#(#type_),*]), + } + )) + } + }); + let spec_view = quote! { + #path::xdr::ScSpecEntryView::UdtUnionV0(#path::xdr::ScSpecUdtUnionV0View { + doc: #doc, + lib: #lib, + name: #name, + cases: #path::xdr::VecMView::new(&[#(#cases),*]), + }) + }; let spec_ident = format_ident!( "__SPEC_XDR_TYPE_{}", enum_ident.unraw().to_string().to_uppercase() ); quote! { #[cfg_attr(target_family = "wasm", link_section = "contractspecv0")] - pub static #spec_ident: [u8; #spec_xdr_len] = #enum_ident::spec_xdr(); + pub static #spec_ident: [u8; #enum_ident::__SPEC_XDR_VIEW.const_xdr_len()] = #enum_ident::spec_xdr(); impl #enum_ident { - pub const fn spec_xdr() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + const __SPEC_XDR_VIEW: #path::xdr::ScSpecEntryView<'static> = #spec_view; + + pub const fn spec_xdr() -> [u8; #enum_ident::__SPEC_XDR_VIEW.const_xdr_len()] { + #enum_ident::__SPEC_XDR_VIEW.const_to_xdr() } } } @@ -184,7 +220,7 @@ pub fn derive_type_enum( shaking::generate_marker_impl( path, quote!(#enum_ident), - &spec_xdr, + quote!(#enum_ident::spec_xdr()), all_field_types.cloned(), None, None, diff --git a/soroban-sdk-macros/src/derive_enum_int.rs b/soroban-sdk-macros/src/derive_enum_int.rs index b603c6c76..c72cd4bbe 100644 --- a/soroban-sdk-macros/src/derive_enum_int.rs +++ b/soroban-sdk-macros/src/derive_enum_int.rs @@ -7,9 +7,9 @@ use syn::{ Visibility, }; -use stellar_xdr::{ScSpecEntry, ScSpecUdtEnumCaseV0, WriteXdr}; +use stellar_xdr::ScSpecUdtEnumCaseV0; -use crate::{doc::docs_from_attrs, shaking, DEFAULT_XDR_RW_LIMITS}; +use crate::{doc::docs_from_attrs, map_type::const_view_string, shaking}; // TODO: Add conversions to/from ScVal types. @@ -66,30 +66,47 @@ pub fn derive_type_enum_int( return quote! { #(#compile_errors)* }; } - // Compute spec XDR once. - let spec_entry = ScSpecEntry::UdtEnumV0(ScSpecUdtEnumV0 { + // Build the spec entry once. + let spec = ScSpecUdtEnumV0 { doc: docs_from_attrs(attrs), lib: lib.as_deref().unwrap_or_default().try_into().unwrap(), name: enum_ident.unraw().to_string().try_into().unwrap(), cases: spec_cases.try_into().unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); + }; - // Generated code spec. + // Generated code spec. The spec entry is rendered as the equivalent const + // ScSpecEntryView, which the contract crate encodes to XDR at compile time. let spec_gen = { - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + let doc = const_view_string(path, &spec.doc); + let lib = const_view_string(path, &spec.lib); + let name = const_view_string(path, &spec.name); + let cases = spec.cases.iter().map(|c| { + let doc = const_view_string(path, &c.doc); + let name = const_view_string(path, &c.name); + let value = c.value; + quote!(#path::xdr::ScSpecUdtEnumCaseV0View { doc: #doc, name: #name, value: #value }) + }); + let spec_view = quote! { + #path::xdr::ScSpecEntryView::UdtEnumV0(#path::xdr::ScSpecUdtEnumV0View { + doc: #doc, + lib: #lib, + name: #name, + cases: #path::xdr::VecMView::new(&[#(#cases),*]), + }) + }; let spec_ident = format_ident!( "__SPEC_XDR_TYPE_{}", enum_ident.unraw().to_string().to_uppercase() ); quote! { #[cfg_attr(target_family = "wasm", link_section = "contractspecv0")] - pub static #spec_ident: [u8; #spec_xdr_len] = #enum_ident::spec_xdr(); + pub static #spec_ident: [u8; #enum_ident::__SPEC_XDR_VIEW.const_xdr_len()] = #enum_ident::spec_xdr(); impl #enum_ident { - pub const fn spec_xdr() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + const __SPEC_XDR_VIEW: #path::xdr::ScSpecEntryView<'static> = #spec_view; + + pub const fn spec_xdr() -> [u8; #enum_ident::__SPEC_XDR_VIEW.const_xdr_len()] { + #enum_ident::__SPEC_XDR_VIEW.const_to_xdr() } } } @@ -99,7 +116,7 @@ pub fn derive_type_enum_int( let spec_shaking_impl = shaking::generate_marker_impl( path, quote!(#enum_ident), - &spec_xdr, + quote!(#enum_ident::spec_xdr()), std::iter::empty(), None, None, diff --git a/soroban-sdk-macros/src/derive_error_enum_int.rs b/soroban-sdk-macros/src/derive_error_enum_int.rs index 04df0f800..bb8ec64e6 100644 --- a/soroban-sdk-macros/src/derive_error_enum_int.rs +++ b/soroban-sdk-macros/src/derive_error_enum_int.rs @@ -1,12 +1,12 @@ use itertools::MultiUnzip; use proc_macro2::TokenStream as TokenStream2; use quote::{format_ident, quote}; -use stellar_xdr::{ScSpecEntry, ScSpecUdtErrorEnumCaseV0, ScSpecUdtErrorEnumV0, StringM, WriteXdr}; +use stellar_xdr::{ScSpecUdtErrorEnumCaseV0, ScSpecUdtErrorEnumV0, StringM}; use syn::{ ext::IdentExt as _, spanned::Spanned, Attribute, DataEnum, Error, ExprLit, Ident, Lit, Path, }; -use crate::{doc::docs_from_attrs, shaking, DEFAULT_XDR_RW_LIMITS}; +use crate::{doc::docs_from_attrs, map_type::const_view_string, shaking}; pub fn derive_type_error_enum_int( path: &Path, @@ -63,30 +63,47 @@ pub fn derive_type_error_enum_int( return quote! { #(#compile_errors)* }; } - // Compute spec XDR once. - let spec_entry = ScSpecEntry::UdtErrorEnumV0(ScSpecUdtErrorEnumV0 { + // Build the spec entry once. + let spec = ScSpecUdtErrorEnumV0 { doc: docs_from_attrs(attrs), lib: lib.as_deref().unwrap_or_default().try_into().unwrap(), name: enum_ident.unraw().to_string().try_into().unwrap(), cases: spec_cases.try_into().unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); + }; - // Generated code spec. + // Generated code spec. The spec entry is rendered as the equivalent const + // ScSpecEntryView, which the contract crate encodes to XDR at compile time. let spec_gen = { - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + let doc = const_view_string(path, &spec.doc); + let lib = const_view_string(path, &spec.lib); + let name = const_view_string(path, &spec.name); + let cases = spec.cases.iter().map(|c| { + let doc = const_view_string(path, &c.doc); + let name = const_view_string(path, &c.name); + let value = c.value; + quote!(#path::xdr::ScSpecUdtErrorEnumCaseV0View { doc: #doc, name: #name, value: #value }) + }); + let spec_view = quote! { + #path::xdr::ScSpecEntryView::UdtErrorEnumV0(#path::xdr::ScSpecUdtErrorEnumV0View { + doc: #doc, + lib: #lib, + name: #name, + cases: #path::xdr::VecMView::new(&[#(#cases),*]), + }) + }; let spec_ident = format_ident!( "__SPEC_XDR_TYPE_{}", enum_ident.unraw().to_string().to_uppercase() ); quote! { #[cfg_attr(target_family = "wasm", link_section = "contractspecv0")] - pub static #spec_ident: [u8; #spec_xdr_len] = #enum_ident::spec_xdr(); + pub static #spec_ident: [u8; #enum_ident::__SPEC_XDR_VIEW.const_xdr_len()] = #enum_ident::spec_xdr(); impl #enum_ident { - pub const fn spec_xdr() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + const __SPEC_XDR_VIEW: #path::xdr::ScSpecEntryView<'static> = #spec_view; + + pub const fn spec_xdr() -> [u8; #enum_ident::__SPEC_XDR_VIEW.const_xdr_len()] { + #enum_ident::__SPEC_XDR_VIEW.const_to_xdr() } } } @@ -96,7 +113,7 @@ pub fn derive_type_error_enum_int( let spec_shaking_impl = shaking::generate_marker_impl( path, quote!(#enum_ident), - &spec_xdr, + quote!(#enum_ident::spec_xdr()), std::iter::empty(), None, None, diff --git a/soroban-sdk-macros/src/derive_event.rs b/soroban-sdk-macros/src/derive_event.rs index 77ed8cb62..c46a4be6b 100644 --- a/soroban-sdk-macros/src/derive_event.rs +++ b/soroban-sdk-macros/src/derive_event.rs @@ -1,7 +1,10 @@ use crate::{ - attribute::remove_attributes_from_item, default_crate_path, doc::docs_from_attrs, - export_arg_error, lib_arg_deprecation, map_type::map_type, shaking, symbol, - DEFAULT_XDR_RW_LIMITS, + attribute::remove_attributes_from_item, + default_crate_path, + doc::docs_from_attrs, + export_arg_error, lib_arg_deprecation, + map_type::{const_view_string, const_view_symbol, const_view_type_def, map_type}, + shaking, symbol, }; use darling::{ast::NestedMeta, util::SpannedValue, Error, FromMeta}; use heck::ToSnakeCase; @@ -9,8 +12,8 @@ use proc_macro2::Span; use proc_macro2::TokenStream as TokenStream2; use quote::{format_ident, quote}; use stellar_xdr::{ - ScSpecEntry, ScSpecEventDataFormat, ScSpecEventParamLocationV0, ScSpecEventParamV0, - ScSpecEventV0, ScSymbol, StringM, WriteXdr, + ScSpecEventDataFormat, ScSpecEventParamLocationV0, ScSpecEventParamV0, ScSpecEventV0, ScSymbol, + StringM, }; use syn::{ext::IdentExt as _, parse2, spanned::Spanned, Data, DeriveInput, Fields, LitStr, Path}; @@ -176,7 +179,7 @@ fn derive_impls(args: &ContractEventArgs, input: &DeriveInput) -> Result Result>() .try_into() .unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + }; let spec_ident = format_ident!( "__SPEC_XDR_EVENT_{}", input.ident.unraw().to_string().to_uppercase() ); let spec_shaking_call = quote! { ::spec_shaking_marker(); }; + // The spec entry rendered as the equivalent const ScSpecEntryView, which the + // contract crate encodes to XDR at compile time. + let spec_view = { + let doc = const_view_string(path, &spec.doc); + let lib = const_view_string(path, &spec.lib); + let name = const_view_symbol(path, &spec.name); + let prefix_topics = spec + .prefix_topics + .iter() + .map(|t| const_view_symbol(path, t)); + let params = spec.params.iter().map(|p| { + let doc = const_view_string(path, &p.doc); + let name = const_view_string(path, &p.name); + let type_ = const_view_type_def(path, &p.type_); + let location = format_ident!("{}", p.location.name()); + quote!(#path::xdr::ScSpecEventParamV0View { + doc: #doc, + name: #name, + type_: #type_, + location: #path::xdr::ScSpecEventParamLocationV0::#location, + }) + }); + let data_format = format_ident!("{}", spec.data_format.name()); + quote! { + #path::xdr::ScSpecEntryView::EventV0(#path::xdr::ScSpecEventV0View { + doc: #doc, + lib: #lib, + name: #name, + prefix_topics: #path::xdr::VecMView::new(&[#(#prefix_topics),*]), + params: #path::xdr::VecMView::new(&[#(#params),*]), + data_format: #path::xdr::ScSpecEventDataFormat::#data_format, + }) + } + }; + // Generated code spec. let spec_gen = quote! { #export_gen - pub static #spec_ident: [u8; #spec_xdr_len] = #ident::spec_xdr(); + pub static #spec_ident: [u8; #ident::__SPEC_XDR_VIEW.const_xdr_len()] = #ident::spec_xdr(); impl #gen_impl #ident #gen_types #gen_where { - pub const fn spec_xdr() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + const __SPEC_XDR_VIEW: #path::xdr::ScSpecEntryView<'static> = #spec_view; + + pub const fn spec_xdr() -> [u8; #ident::__SPEC_XDR_VIEW.const_xdr_len()] { + #ident::__SPEC_XDR_VIEW.const_to_xdr() } } }; @@ -219,7 +256,7 @@ fn derive_impls(args: &ContractEventArgs, input: &DeriveInput) -> Result( + path: &Path, ty: &Type, fns: impl IntoIterator, export: bool, ) -> Result { fns.into_iter() - .map(|f| derive_fn_spec(ty, &f.ident, &f.attrs, &f.inputs, &f.output, export)) + .map(|f| derive_fn_spec(path, ty, &f.ident, &f.attrs, &f.inputs, &f.output, export)) .collect() } #[allow(clippy::too_many_arguments)] pub fn derive_fn_spec( + path: &Path, ty: &Type, ident: &Ident, attrs: &[Attribute], @@ -142,7 +146,7 @@ pub fn derive_fn_spec( // Generated code spec. let name = &ident.unraw().to_string(); - let spec_entry = ScSpecEntry::FunctionV0(ScSpecFunctionV0 { + let spec_entry = ScSpecFunctionV0 { doc: docs_from_attrs(attrs), name: name.try_into().unwrap_or_else(|_| { errors.push(Error::new( @@ -157,11 +161,37 @@ pub fn derive_fn_spec( }), inputs: spec_args.try_into().unwrap(), outputs: spec_result.try_into().unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + }; + + // The spec entry rendered as the equivalent const ScSpecEntryView, which the + // contract crate encodes to XDR at compile time. + let spec_view = { + let doc = const_view_string(path, &spec_entry.doc); + let name = const_view_symbol(path, &spec_entry.name); + let inputs = spec_entry.inputs.iter().map(|i| { + let doc = const_view_string(path, &i.doc); + let name = const_view_string(path, &i.name); + let type_ = const_view_type_def(path, &i.type_); + quote!(#path::xdr::ScSpecFunctionInputV0View { doc: #doc, name: #name, type_: #type_ }) + }); + let outputs = spec_entry + .outputs + .iter() + .map(|o| const_view_type_def(path, o)); + quote! { + #path::xdr::ScSpecEntryView::FunctionV0(#path::xdr::ScSpecFunctionV0View { + doc: #doc, + name: #name, + inputs: #path::xdr::VecMView::new(&[#(#inputs),*]), + outputs: #path::xdr::VecMView::new(&[#(#outputs),*]), + }) + } + }; let spec_ident = format_ident!("__SPEC_XDR_FN_{}", ident.unraw().to_string().to_uppercase()); + // Keeps the fn name's case, because unlike #spec_ident this const shares a + // scope with every other fn's, and fn names differing only in case must not + // collide. + let spec_view_ident = format_ident!("__SPEC_XDR_VIEW_{}", ident); let spec_fn_ident = format_ident!("spec_xdr_{}", ident); // If errors have occurred, render them instead. @@ -189,7 +219,7 @@ pub fn derive_fn_spec( #[allow(non_upper_case_globals)] #(#attrs)* #[cfg_attr(target_family = "wasm", link_section = "contractspecv0")] - pub static #spec_ident: [u8; #spec_xdr_len] = super::#ty::#spec_fn_ident(); + pub static #spec_ident: [u8; super::#ty::#spec_view_ident.const_xdr_len()] = super::#ty::#spec_fn_ident(); } }) } else { @@ -201,10 +231,14 @@ pub fn derive_fn_spec( #exported impl #ty { + #[allow(non_upper_case_globals)] + #(#attrs)* + const #spec_view_ident: #path::xdr::ScSpecEntryView<'static> = #spec_view; + #[allow(non_snake_case)] #(#attrs)* - pub const fn #spec_fn_ident() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + pub const fn #spec_fn_ident() -> [u8; #ty::#spec_view_ident.const_xdr_len()] { + #ty::#spec_view_ident.const_to_xdr() } } }) diff --git a/soroban-sdk-macros/src/derive_struct.rs b/soroban-sdk-macros/src/derive_struct.rs index 9415cda76..d6882067c 100644 --- a/soroban-sdk-macros/src/derive_struct.rs +++ b/soroban-sdk-macros/src/derive_struct.rs @@ -3,11 +3,13 @@ use proc_macro2::{Literal, TokenStream as TokenStream2}; use quote::{format_ident, quote}; use syn::{ext::IdentExt as _, Attribute, DataStruct, Error, Ident, Path, Visibility}; -use stellar_xdr::{ - ScSpecEntry, ScSpecTypeDef, ScSpecUdtStructFieldV0, ScSpecUdtStructV0, StringM, WriteXdr, -}; +use stellar_xdr::{ScSpecTypeDef, ScSpecUdtStructFieldV0, ScSpecUdtStructV0, StringM}; -use crate::{doc::docs_from_attrs, map_type::map_type, shaking, DEFAULT_XDR_RW_LIMITS}; +use crate::{ + doc::docs_from_attrs, + map_type::{const_view_string, const_view_type_def, map_type}, + shaking, +}; // TODO: Add field attribute for including/excluding fields in types. // TODO: Better handling of partial types and types without all their fields and @@ -73,30 +75,47 @@ pub fn derive_type_struct( return quote! { #(#compile_errors)* }; } - // Compute spec XDR once. - let spec_entry = ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { + // Build the spec entry once. + let spec = ScSpecUdtStructV0 { doc: docs_from_attrs(attrs), lib: lib.as_deref().unwrap_or_default().try_into().unwrap(), name: ident.unraw().to_string().try_into().unwrap(), fields: spec_fields.try_into().unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); + }; - // Generated code spec. + // Generated code spec. The spec entry is rendered as the equivalent const + // ScSpecEntryView, which the contract crate encodes to XDR at compile time. let spec_gen = { - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + let doc = const_view_string(path, &spec.doc); + let lib = const_view_string(path, &spec.lib); + let name = const_view_string(path, &spec.name); + let fields = spec.fields.iter().map(|f| { + let doc = const_view_string(path, &f.doc); + let name = const_view_string(path, &f.name); + let type_ = const_view_type_def(path, &f.type_); + quote!(#path::xdr::ScSpecUdtStructFieldV0View { doc: #doc, name: #name, type_: #type_ }) + }); + let spec_view = quote! { + #path::xdr::ScSpecEntryView::UdtStructV0(#path::xdr::ScSpecUdtStructV0View { + doc: #doc, + lib: #lib, + name: #name, + fields: #path::xdr::VecMView::new(&[#(#fields),*]), + }) + }; let spec_ident = format_ident!( "__SPEC_XDR_TYPE_{}", ident.unraw().to_string().to_uppercase() ); quote! { #[cfg_attr(target_family = "wasm", link_section = "contractspecv0")] - pub static #spec_ident: [u8; #spec_xdr_len] = #ident::spec_xdr(); + pub static #spec_ident: [u8; #ident::__SPEC_XDR_VIEW.const_xdr_len()] = #ident::spec_xdr(); impl #ident { - pub const fn spec_xdr() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + const __SPEC_XDR_VIEW: #path::xdr::ScSpecEntryView<'static> = #spec_view; + + pub const fn spec_xdr() -> [u8; #ident::__SPEC_XDR_VIEW.const_xdr_len()] { + #ident::__SPEC_XDR_VIEW.const_to_xdr() } } } @@ -106,7 +125,7 @@ pub fn derive_type_struct( let spec_shaking_impl = shaking::generate_marker_impl( path, quote!(#ident), - &spec_xdr, + quote!(#ident::spec_xdr()), field_types.iter().cloned(), None, None, diff --git a/soroban-sdk-macros/src/derive_struct_tuple.rs b/soroban-sdk-macros/src/derive_struct_tuple.rs index 3ff6a3302..f9954b064 100644 --- a/soroban-sdk-macros/src/derive_struct_tuple.rs +++ b/soroban-sdk-macros/src/derive_struct_tuple.rs @@ -3,11 +3,13 @@ use proc_macro2::{Literal, TokenStream as TokenStream2}; use quote::{format_ident, quote}; use syn::{ext::IdentExt as _, Attribute, DataStruct, Error, Ident, Path, Visibility}; -use stellar_xdr::{ - ScSpecEntry, ScSpecTypeDef, ScSpecUdtStructFieldV0, ScSpecUdtStructV0, StringM, WriteXdr, -}; +use stellar_xdr::{ScSpecTypeDef, ScSpecUdtStructFieldV0, ScSpecUdtStructV0, StringM}; -use crate::{doc::docs_from_attrs, map_type::map_type, shaking, DEFAULT_XDR_RW_LIMITS}; +use crate::{ + doc::docs_from_attrs, + map_type::{const_view_string, const_view_type_def, map_type}, + shaking, +}; pub fn derive_type_struct_tuple( path: &Path, @@ -62,30 +64,47 @@ pub fn derive_type_struct_tuple( return quote! { #(#compile_errors)* }; } - // Compute spec XDR once. - let spec_entry = ScSpecEntry::UdtStructV0(ScSpecUdtStructV0 { + // Build the spec entry once. + let spec = ScSpecUdtStructV0 { doc: docs_from_attrs(attrs), lib: lib.as_deref().unwrap_or_default().try_into().unwrap(), name: ident.unraw().to_string().try_into().unwrap(), fields: field_specs.try_into().unwrap(), - }); - let spec_xdr = spec_entry.to_xdr(DEFAULT_XDR_RW_LIMITS).unwrap(); + }; - // Generated code spec. + // Generated code spec. The spec entry is rendered as the equivalent const + // ScSpecEntryView, which the contract crate encodes to XDR at compile time. let spec_gen = { - let spec_xdr_lit = proc_macro2::Literal::byte_string(spec_xdr.as_slice()); - let spec_xdr_len = spec_xdr.len(); + let doc = const_view_string(path, &spec.doc); + let lib = const_view_string(path, &spec.lib); + let name = const_view_string(path, &spec.name); + let fields = spec.fields.iter().map(|f| { + let doc = const_view_string(path, &f.doc); + let name = const_view_string(path, &f.name); + let type_ = const_view_type_def(path, &f.type_); + quote!(#path::xdr::ScSpecUdtStructFieldV0View { doc: #doc, name: #name, type_: #type_ }) + }); + let spec_view = quote! { + #path::xdr::ScSpecEntryView::UdtStructV0(#path::xdr::ScSpecUdtStructV0View { + doc: #doc, + lib: #lib, + name: #name, + fields: #path::xdr::VecMView::new(&[#(#fields),*]), + }) + }; let spec_ident = format_ident!( "__SPEC_XDR_TYPE_{}", ident.unraw().to_string().to_uppercase() ); quote! { #[cfg_attr(target_family = "wasm", link_section = "contractspecv0")] - pub static #spec_ident: [u8; #spec_xdr_len] = #ident::spec_xdr(); + pub static #spec_ident: [u8; #ident::__SPEC_XDR_VIEW.const_xdr_len()] = #ident::spec_xdr(); impl #ident { - pub const fn spec_xdr() -> [u8; #spec_xdr_len] { - *#spec_xdr_lit + const __SPEC_XDR_VIEW: #path::xdr::ScSpecEntryView<'static> = #spec_view; + + pub const fn spec_xdr() -> [u8; #ident::__SPEC_XDR_VIEW.const_xdr_len()] { + #ident::__SPEC_XDR_VIEW.const_to_xdr() } } } @@ -95,7 +114,7 @@ pub fn derive_type_struct_tuple( let spec_shaking_impl = shaking::generate_marker_impl( path, quote!(#ident), - &spec_xdr, + quote!(#ident::spec_xdr()), field_types.iter().cloned(), None, None, diff --git a/soroban-sdk-macros/src/derive_trait.rs b/soroban-sdk-macros/src/derive_trait.rs index 8eef6e5c8..6bb819fb4 100644 --- a/soroban-sdk-macros/src/derive_trait.rs +++ b/soroban-sdk-macros/src/derive_trait.rs @@ -52,7 +52,7 @@ fn derive_or_err(metadata: TokenStream2, input: TokenStream2) -> Result Path { #[derive(Debug, FromMeta)] struct ContractSpecArgs { + #[darling(default = "default_crate_path")] + crate_path: Path, name: Type, export: Option, } @@ -135,7 +137,7 @@ pub fn contractspecfn(metadata: TokenStream, input: TokenStream) -> TokenStream let methods: Vec<_> = item.fns(); let export = args.export.unwrap_or(true); - let derived = derive_fns_spec(&args.name, &methods, export); + let derived = derive_fns_spec(&args.crate_path, &args.name, &methods, export); match derived { Ok(derived_ok) => quote! { @@ -308,7 +310,7 @@ pub fn contractimpl(metadata: TokenStream, input: TokenStream) -> TokenStream { let mut output = quote! { #[#crate_path::contractargs(name = #args_ident, impl_only = true)] #[#crate_path::contractclient(crate_path = #crate_path_str, name = #client_ident, impl_only = true)] - #[#crate_path::contractspecfn(name = #ty_str)] + #[#crate_path::contractspecfn(crate_path = #crate_path_str, name = #ty_str)] #imp #derived_ok }; diff --git a/soroban-sdk-macros/src/map_type.rs b/soroban-sdk-macros/src/map_type.rs index ac42db283..412d602ca 100644 --- a/soroban-sdk-macros/src/map_type.rs +++ b/soroban-sdk-macros/src/map_type.rs @@ -1,7 +1,8 @@ -use quote::ToTokens; +use proc_macro2::{Literal, TokenStream as TokenStream2}; +use quote::{format_ident, quote, ToTokens}; use stellar_xdr::{ ScSpecTypeBytesN, ScSpecTypeDef, ScSpecTypeMap, ScSpecTypeOption, ScSpecTypeResult, - ScSpecTypeTuple, ScSpecTypeUdt, ScSpecTypeVec, + ScSpecTypeTuple, ScSpecTypeUdt, ScSpecTypeVec, ScSymbol, StringM, }; use syn::{ ext::IdentExt as _, spanned::Spanned, Error, Expr, ExprLit, GenericArgument, Ident, Lit, Path, @@ -304,6 +305,73 @@ pub fn map_type(t: &Type, allow_ref: bool, allow_hash: bool) -> Result TokenStream2 { + let xdr = quote!(#path::xdr); + let variant = format_ident!("{}", t.name()); + // Variants that hold a value. The recursive ones sit behind a reference in + // the View type, matching the Box in the owned type. + let value = match t { + ScSpecTypeDef::Option(o) => { + let value_type = const_view_type_def(path, &o.value_type); + Some(quote!(( r::ScSpecTypeOptionView { value_type: &#value_type }))) + } + ScSpecTypeDef::Result(r) => { + let ok_type = const_view_type_def(path, &r.ok_type); + let error_type = const_view_type_def(path, &r.error_type); + Some( + quote!(( r::ScSpecTypeResultView { ok_type: &#ok_type, error_type: &#error_type })), + ) + } + ScSpecTypeDef::Vec(v) => { + let element_type = const_view_type_def(path, &v.element_type); + Some(quote!(( r::ScSpecTypeVecView { element_type: &#element_type }))) + } + ScSpecTypeDef::Map(m) => { + let key_type = const_view_type_def(path, &m.key_type); + let value_type = const_view_type_def(path, &m.value_type); + Some( + quote!(( r::ScSpecTypeMapView { key_type: &#key_type, value_type: &#value_type })), + ) + } + ScSpecTypeDef::Tuple(t) => { + let value_types = t.value_types.iter().map(|t| const_view_type_def(path, t)); + Some( + quote!(( r::ScSpecTypeTupleView { value_types: #xdr::VecMView::new(&[#(#value_types),*]) })), + ) + } + ScSpecTypeDef::BytesN(b) => { + let n = b.n; + Some(quote!((#xdr::ScSpecTypeBytesN { n: #n }))) + } + ScSpecTypeDef::Udt(u) => { + let name = const_view_string(path, &u.name); + Some(quote!((#xdr::ScSpecTypeUdtView { name: #name }))) + } + // All remaining variants are void. + _ => None, + }; + quote!(#xdr::ScSpecTypeDefView::#variant #value) +} + +/// Renders a [StringM] as a const expression of type `#path::xdr::StringMView`. +/// The `MAX` of the `StringMView` is inferred from the field it is assigned to. +pub fn const_view_string(path: &Path, s: &StringM) -> TokenStream2 { + let xdr = quote!(#path::xdr); + let lit = Literal::byte_string(s.as_vec()); + quote!(#xdr::StringMView::new(#lit)) +} + +/// Renders a [ScSymbol] as a const expression of type +/// `#path::xdr::ScSymbolView`. +pub fn const_view_symbol(path: &Path, s: &ScSymbol) -> TokenStream2 { + let xdr = quote!(#path::xdr); + let s = const_view_string(path, &s.0); + quote!(#xdr::ScSymbolView(#s)) +} + #[cfg(test)] mod test { use super::*; diff --git a/soroban-sdk-macros/src/shaking.rs b/soroban-sdk-macros/src/shaking.rs index e09885350..3e6920edf 100644 --- a/soroban-sdk-macros/src/shaking.rs +++ b/soroban-sdk-macros/src/shaking.rs @@ -36,7 +36,7 @@ use syn::{Path, Type}; pub fn generate_marker_impl<'a, I>( path: &Path, ident: TokenStream2, - spec_xdr: &[u8], + spec_xdr: TokenStream2, field_types: I, gen_impl: Option, gen_types: Option, @@ -45,10 +45,6 @@ pub fn generate_marker_impl<'a, I>( where I: Iterator, { - let marker = soroban_spec::shaking::generate_marker_for_xdr(spec_xdr); - let marker_lit = proc_macro2::Literal::byte_string(&marker); - let marker_len = marker.len(); - let field_type_markers: Vec<_> = field_types.collect(); let gen_impl = gen_impl.unwrap_or_default(); let gen_types = gen_types.unwrap_or_default(); @@ -63,13 +59,15 @@ where #[cfg(target_family = "wasm")] { // Marker in data section. Post-build tools can scan for "SpEcV1" - // patterns and match against specs in contractspecv0. - static MARKER: [u8; #marker_len] = *#marker_lit; + // patterns and match against specs in contractspecv0. Built from + // the same const-encoded XDR that is embedded in that section, so + // the two cannot drift apart. + static MARKER: [u8; 14] = #path::spec_marker(&#spec_xdr); // Volatile read prevents DCE of this function and keeps MARKER // in the data section. We only read a single `u8` from the start // of the array because merely taking a volatile reference to the // symbol is sufficient; reading all bytes via - // `read_volatile::<[u8; #marker_len]>()` would be redundant and + // `read_volatile::<[u8; 14]>()` would be redundant and // could increase code size without any functional benefit. let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } diff --git a/soroban-sdk/Cargo.toml b/soroban-sdk/Cargo.toml index 87afb6ff5..3ee89160e 100644 --- a/soroban-sdk/Cargo.toml +++ b/soroban-sdk/Cargo.toml @@ -21,6 +21,10 @@ crate-git-revision = "0.0.9" [dependencies] soroban-sdk-macros = { workspace = true } +# Not used directly. Enables the const XDR serializers on the `*View` types that +# macro-generated contract specs use, on the stellar-xdr re-exported by +# soroban-env-common as soroban_sdk::xdr. +stellar-xdr = { workspace = true, features = ["const"] } stellar-strkey = { workspace = true } bytes-lit = "0.0.6" visibility = "0.1.1" diff --git a/soroban-sdk/src/lib.rs b/soroban-sdk/src/lib.rs index 949e6cc72..2716553be 100644 --- a/soroban-sdk/src/lib.rs +++ b/soroban-sdk/src/lib.rs @@ -1191,7 +1191,7 @@ pub use into_val_for_contract_fn::IntoValForContractFn; mod spec_shaking; #[doc(hidden)] -pub use spec_shaking::SpecShakingMarker; +pub use spec_shaking::{spec_marker, SpecShakingMarker}; #[doc(hidden)] #[deprecated(note = "use storage")] diff --git a/soroban-sdk/src/spec_shaking.rs b/soroban-sdk/src/spec_shaking.rs index 244177a72..8a5b85839 100644 --- a/soroban-sdk/src/spec_shaking.rs +++ b/soroban-sdk/src/spec_shaking.rs @@ -23,6 +23,159 @@ //! inner type's marker without calling it. Recursive definitions are //! possible through these types, so a direct call would risk a runtime cycle. +/// The magic prefix identifying a marker in the data section. Must match +/// `MAGIC` in `soroban_spec::shaking`. +const MARKER_MAGIC: [u8; 6] = *b"SpEcV1"; + +/// Builds the marker for a spec entry's XDR bytes: the magic prefix followed by +/// the first 8 bytes of the SHA-256 of the XDR. +/// +/// This is a `const fn` so that macro-generated code derives the marker from the +/// same const-encoded bytes it embeds in the `contractspecv0` section. Hashing a +/// separately encoded copy of the spec would leave two encoders that must agree +/// forever, and a divergence would silently strip a spec entry that is in use. +#[doc(hidden)] +#[must_use] +pub const fn spec_marker(spec_entry_xdr: &[u8]) -> [u8; 14] { + let h = sha256(spec_entry_xdr); + [ + MARKER_MAGIC[0], + MARKER_MAGIC[1], + MARKER_MAGIC[2], + MARKER_MAGIC[3], + MARKER_MAGIC[4], + MARKER_MAGIC[5], + h[0], + h[1], + h[2], + h[3], + h[4], + h[5], + h[6], + h[7], + ] +} + +/// SHA-256 round constants. +#[rustfmt::skip] +const SHA256_K: [u32; 64] = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, +]; + +/// SHA-256 of `input`, evaluatable at compile time. +/// +/// A const implementation is needed because the marker is built while the +/// generated code compiles; `sha2` is not usable in a const context. +const fn sha256(input: &[u8]) -> [u8; 32] { + let len = input.len(); + // Message is padded with a 0x80 byte, then zeroes, then the length in bits + // as a big-endian u64, out to a multiple of the 64-byte block size. + let padded = (len + 9).div_ceil(64) * 64; + let bit_len = (len as u64) * 8; + + let mut h: [u32; 8] = [ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, + 0x5be0cd19, + ]; + + let mut base = 0; + while base < padded { + let mut w = [0u32; 64]; + + // Load the block, reading padding bytes rather than materialising a + // padded copy of the message. + let mut t = 0; + while t < 16 { + let mut word = 0u32; + let mut b = 0; + while b < 4 { + let p = base + t * 4 + b; + let byte = if p < len { + input[p] + } else if p == len { + 0x80 + } else if p >= padded - 8 { + (bit_len >> (8 * (padded - 1 - p))) as u8 + } else { + 0 + }; + word = (word << 8) | (byte as u32); + b += 1; + } + w[t] = word; + t += 1; + } + + let mut t = 16; + while t < 64 { + let s0 = w[t - 15].rotate_right(7) ^ w[t - 15].rotate_right(18) ^ (w[t - 15] >> 3); + let s1 = w[t - 2].rotate_right(17) ^ w[t - 2].rotate_right(19) ^ (w[t - 2] >> 10); + w[t] = w[t - 16] + .wrapping_add(s0) + .wrapping_add(w[t - 7]) + .wrapping_add(s1); + t += 1; + } + + let (mut a, mut b, mut c, mut d) = (h[0], h[1], h[2], h[3]); + let (mut e, mut f, mut g, mut hh) = (h[4], h[5], h[6], h[7]); + + let mut t = 0; + while t < 64 { + let s1 = e.rotate_right(6) ^ e.rotate_right(11) ^ e.rotate_right(25); + let ch = (e & f) ^ ((!e) & g); + let temp1 = hh + .wrapping_add(s1) + .wrapping_add(ch) + .wrapping_add(SHA256_K[t]) + .wrapping_add(w[t]); + let s0 = a.rotate_right(2) ^ a.rotate_right(13) ^ a.rotate_right(22); + let maj = (a & b) ^ (a & c) ^ (b & c); + let temp2 = s0.wrapping_add(maj); + + hh = g; + g = f; + f = e; + e = d.wrapping_add(temp1); + d = c; + c = b; + b = a; + a = temp1.wrapping_add(temp2); + t += 1; + } + + h[0] = h[0].wrapping_add(a); + h[1] = h[1].wrapping_add(b); + h[2] = h[2].wrapping_add(c); + h[3] = h[3].wrapping_add(d); + h[4] = h[4].wrapping_add(e); + h[5] = h[5].wrapping_add(f); + h[6] = h[6].wrapping_add(g); + h[7] = h[7].wrapping_add(hh); + + base += 64; + } + + let mut out = [0u8; 32]; + let mut i = 0; + while i < 8 { + let be = h[i].to_be_bytes(); + out[i * 4] = be[0]; + out[i * 4 + 1] = be[1]; + out[i * 4 + 2] = be[2]; + out[i * 4 + 3] = be[3]; + i += 1; + } + out +} + /// Trait for types that may include their spec in the WASM binary. /// /// This trait is used internally by the SDK to ensure contract type specs @@ -420,3 +573,47 @@ impl SpecShakingMarker for crate::crypto::bn254::Bn254G1Affine {} impl SpecShakingMarker for crate::crypto::bn254::Bn254G2Affine {} impl SpecShakingMarker for crate::crypto::bn254::Bn254Fp {} impl SpecShakingMarker for crate::crypto::bn254::Bn254Fr {} + +#[cfg(test)] +mod test { + use super::{sha256, spec_marker}; + + /// The const SHA-256 must agree with `sha2` exactly, including across block + /// boundaries where the padding lands in a different block to the message. + #[test] + fn sha256_matches_sha2() { + use sha2::{Digest, Sha256}; + // Lengths either side of the 64-byte block size and the 55/56-byte + // boundary where the length field no longer fits in the final block. + for len in [ + 0usize, 1, 54, 55, 56, 57, 63, 64, 65, 119, 120, 127, 128, 129, 1000, + ] { + let input: std::vec::Vec = (0..len).map(|i| (i % 251) as u8).collect(); + let expected: [u8; 32] = Sha256::digest(&input).into(); + assert_eq!(sha256(&input), expected, "mismatch at len {len}"); + } + } + + /// The marker built in const context must equal the one the tooling + /// computes host-side, otherwise shaking would strip specs that are in use. + #[test] + fn spec_marker_matches_soroban_spec() { + for len in [0usize, 1, 55, 56, 64, 200] { + let input: std::vec::Vec = (0..len).map(|i| (i % 251) as u8).collect(); + assert_eq!( + spec_marker(&input), + soroban_spec::shaking::generate_marker_for_xdr(&input), + "mismatch at len {len}" + ); + } + } + + /// Evaluatable at compile time, which is the whole point. + #[test] + fn spec_marker_is_const() { + const M: [u8; 14] = spec_marker(b"abc"); + assert_eq!(&M[..6], b"SpEcV1"); + // SHA-256("abc") = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad + assert_eq!(&M[6..], &[0xba, 0x78, 0x16, 0xbf, 0x8f, 0x01, 0xcf, 0xea]); + } +} diff --git a/tests-expanded/test_account_tests.rs b/tests-expanded/test_account_tests.rs index d419e0712..41bd7f7fa 100644 --- a/tests-expanded/test_account_tests.rs +++ b/tests-expanded/test_account_tests.rs @@ -50,10 +50,25 @@ impl ::core::cmp::Ord for Error { ::core::cmp::Ordering::Equal } } -pub static __SPEC_XDR_TYPE_ERROR: [u8; 44usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 44usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Fail\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Fail"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -316,14 +331,59 @@ pub mod __Contract____check_auth__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[allow(non_snake_case)] - pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; 148usize] = - super::Contract::spec_xdr___check_auth(); + pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; super::Contract::__SPEC_XDR_VIEW___check_auth + .const_xdr_len()] = super::Contract::spec_xdr___check_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + #[allow(non_snake_case)] + const __SPEC_XDR_VIEW___check_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__check_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signature_payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signatures"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Void, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"auth_contexts"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Context"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Void, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] #[allow(non_snake_case)] - pub const fn spec_xdr___check_auth() -> [u8; 148usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0c__check_auth\0\0\0\x03\0\0\0\0\0\0\0\x11signature_payload\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\nsignatures\0\0\0\0\0\x02\0\0\0\0\0\0\0\rauth_contexts\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x07Context\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x02\0\0\0\x03" + pub const fn spec_xdr___check_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___check_auth.const_to_xdr() } } impl<'a> ContractClient<'a> {} diff --git a/tests-expanded/test_account_wasm32v1-none.rs b/tests-expanded/test_account_wasm32v1-none.rs index 604e27fd0..b316cc08b 100644 --- a/tests-expanded/test_account_wasm32v1-none.rs +++ b/tests-expanded/test_account_wasm32v1-none.rs @@ -51,10 +51,25 @@ impl ::core::cmp::Ord for Error { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERROR: [u8; 44usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 44usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Fail\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Fail"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -62,7 +77,7 @@ impl soroban_sdk::SpecShakingMarker for Error { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa8\x1f\xc4#\x9c\x8f\xeb\x88"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Error::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -211,14 +226,59 @@ pub mod __Contract____check_auth__spec { #[allow(non_upper_case_globals)] #[allow(non_snake_case)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; 148usize] = - super::Contract::spec_xdr___check_auth(); + pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; super::Contract::__SPEC_XDR_VIEW___check_auth + .const_xdr_len()] = super::Contract::spec_xdr___check_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + #[allow(non_snake_case)] + const __SPEC_XDR_VIEW___check_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__check_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signature_payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signatures"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Void, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"auth_contexts"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Context"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Void, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] #[allow(non_snake_case)] - pub const fn spec_xdr___check_auth() -> [u8; 148usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0c__check_auth\0\0\0\x03\0\0\0\0\0\0\0\x11signature_payload\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\nsignatures\0\0\0\0\0\x02\0\0\0\0\0\0\0\rauth_contexts\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x07Context\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x02\0\0\0\x03" + pub const fn spec_xdr___check_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___check_auth.const_to_xdr() } } impl<'a> ContractClient<'a> {} diff --git a/tests-expanded/test_add_i128_tests.rs b/tests-expanded/test_add_i128_tests.rs index b3434ea58..a0bd26ef1 100644 --- a/tests-expanded/test_add_i128_tests.rs +++ b/tests-expanded/test_add_i128_tests.rs @@ -147,12 +147,32 @@ pub mod __Contract__add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_add_i128_wasm32v1-none.rs b/tests-expanded/test_add_i128_wasm32v1-none.rs index 3a2aabc76..9490a0b10 100644 --- a/tests-expanded/test_add_i128_wasm32v1-none.rs +++ b/tests-expanded/test_add_i128_wasm32v1-none.rs @@ -36,12 +36,32 @@ pub mod __Contract__add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_add_u128_tests.rs b/tests-expanded/test_add_u128_tests.rs index 4c42a70a0..9fe95bab0 100644 --- a/tests-expanded/test_add_u128_tests.rs +++ b/tests-expanded/test_add_u128_tests.rs @@ -147,12 +147,32 @@ pub mod __Contract__add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_add_u128_wasm32v1-none.rs b/tests-expanded/test_add_u128_wasm32v1-none.rs index 5bde2d67a..4d11bebc7 100644 --- a/tests-expanded/test_add_u128_wasm32v1-none.rs +++ b/tests-expanded/test_add_u128_wasm32v1-none.rs @@ -36,12 +36,32 @@ pub mod __Contract__add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_add_u64_tests.rs b/tests-expanded/test_add_u64_tests.rs index ce6b002d4..7bd34b9bd 100644 --- a/tests-expanded/test_add_u64_tests.rs +++ b/tests-expanded/test_add_u64_tests.rs @@ -155,10 +155,25 @@ impl ::core::cmp::PartialEq for Error { true } } -pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -288,10 +303,26 @@ impl ::core::cmp::PartialEq for MyError { true } } -pub static __SPEC_XDR_TYPE_MYERROR: [u8; 48usize] = MyError::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYERROR: [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] = + MyError::spec_xdr(); impl MyError { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x07MyError\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] { + MyError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyError { @@ -419,12 +450,32 @@ pub mod __Contract__add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } #[doc(hidden)] @@ -433,12 +484,39 @@ pub mod __Contract__safe_add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SAFE_ADD: [u8; 72usize] = super::Contract::spec_xdr_safe_add(); + pub static __SPEC_XDR_FN_SAFE_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_safe_add + .const_xdr_len()] = super::Contract::spec_xdr_safe_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"safe_add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08safe_add\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_safe_add() -> [u8; Contract::__SPEC_XDR_VIEW_safe_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add.const_to_xdr() } } #[doc(hidden)] @@ -447,12 +525,46 @@ pub mod __Contract__safe_add_two__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SAFE_ADD_TWO: [u8; 88usize] = super::Contract::spec_xdr_safe_add_two(); + pub static __SPEC_XDR_FN_SAFE_ADD_TWO: [u8; super::Contract::__SPEC_XDR_VIEW_safe_add_two + .const_xdr_len()] = super::Contract::spec_xdr_safe_add_two(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add_two: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"safe_add_two", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyError"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add_two() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0csafe_add_two\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\x07\xd0\0\0\0\x07MyError\0" + pub const fn spec_xdr_safe_add_two( + ) -> [u8; Contract::__SPEC_XDR_VIEW_safe_add_two.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add_two.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_add_u64_wasm32v1-none.rs b/tests-expanded/test_add_u64_wasm32v1-none.rs index 0bcdd1476..7b3cc38c7 100644 --- a/tests-expanded/test_add_u64_wasm32v1-none.rs +++ b/tests-expanded/test_add_u64_wasm32v1-none.rs @@ -44,10 +44,25 @@ impl ::core::cmp::PartialEq for Error { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -55,7 +70,7 @@ impl soroban_sdk::SpecShakingMarker for Error { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xd6\xb8`\x15\xac\x9ei\x1a"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Error::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -183,10 +198,26 @@ impl ::core::cmp::PartialEq for MyError { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_MYERROR: [u8; 48usize] = MyError::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYERROR: [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] = + MyError::spec_xdr(); impl MyError { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x07MyError\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] { + MyError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyError { @@ -194,7 +225,7 @@ impl soroban_sdk::SpecShakingMarker for MyError { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x95\xd0j*\x1d\xfam\xa3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&MyError::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -320,12 +351,32 @@ pub mod __Contract__add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } #[doc(hidden)] @@ -335,12 +386,39 @@ pub mod __Contract__safe_add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SAFE_ADD: [u8; 72usize] = super::Contract::spec_xdr_safe_add(); + pub static __SPEC_XDR_FN_SAFE_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_safe_add + .const_xdr_len()] = super::Contract::spec_xdr_safe_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"safe_add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08safe_add\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_safe_add() -> [u8; Contract::__SPEC_XDR_VIEW_safe_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add.const_to_xdr() } } #[doc(hidden)] @@ -350,12 +428,46 @@ pub mod __Contract__safe_add_two__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SAFE_ADD_TWO: [u8; 88usize] = super::Contract::spec_xdr_safe_add_two(); + pub static __SPEC_XDR_FN_SAFE_ADD_TWO: [u8; super::Contract::__SPEC_XDR_VIEW_safe_add_two + .const_xdr_len()] = super::Contract::spec_xdr_safe_add_two(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add_two: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"safe_add_two", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyError"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add_two() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0csafe_add_two\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\x07\xd0\0\0\0\x07MyError\0" + pub const fn spec_xdr_safe_add_two( + ) -> [u8; Contract::__SPEC_XDR_VIEW_safe_add_two.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add_two.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_associated_type_chained_tests.rs b/tests-expanded/test_associated_type_chained_tests.rs index 547443127..9b75a874d 100644 --- a/tests-expanded/test_associated_type_chained_tests.rs +++ b/tests-expanded/test_associated_type_chained_tests.rs @@ -207,12 +207,27 @@ pub mod __Contract__set_val__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SET_VAL: [u8; 48usize] = super::Contract::spec_xdr_set_val(); + pub static __SPEC_XDR_FN_SET_VAL: [u8; super::Contract::__SPEC_XDR_VIEW_set_val + .const_xdr_len()] = super::Contract::spec_xdr_set_val(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_set_val: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"set_val")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_set_val() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07set_val\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\0" + pub const fn spec_xdr_set_val() -> [u8; Contract::__SPEC_XDR_VIEW_set_val.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_set_val.const_to_xdr() } } #[doc(hidden)] @@ -221,12 +236,21 @@ pub mod __Contract__get_val__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_GET_VAL: [u8; 32usize] = super::Contract::spec_xdr_get_val(); + pub static __SPEC_XDR_FN_GET_VAL: [u8; super::Contract::__SPEC_XDR_VIEW_get_val + .const_xdr_len()] = super::Contract::spec_xdr_get_val(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_get_val: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"get_val")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_get_val() -> [u8; 32usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07get_val\0\0\0\0\0\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_get_val() -> [u8; Contract::__SPEC_XDR_VIEW_get_val.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_get_val.const_to_xdr() } } #[doc(hidden)] @@ -235,12 +259,27 @@ pub mod __Contract__both__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_BOTH: [u8; 48usize] = super::Contract::spec_xdr_both(); + pub static __SPEC_XDR_FN_BOTH: [u8; super::Contract::__SPEC_XDR_VIEW_both.const_xdr_len()] = + super::Contract::spec_xdr_both(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_both: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"both")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_both() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04both\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_both() -> [u8; Contract::__SPEC_XDR_VIEW_both.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_both.const_to_xdr() } } #[doc(hidden)] @@ -249,12 +288,38 @@ pub mod __Contract__wrapped__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WRAPPED: [u8; 64usize] = super::Contract::spec_xdr_wrapped(); + pub static __SPEC_XDR_FN_WRAPPED: [u8; super::Contract::__SPEC_XDR_VIEW_wrapped + .const_xdr_len()] = super::Contract::spec_xdr_wrapped(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_wrapped: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"wrapped")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_wrapped() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07wrapped\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\x03\xea\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_wrapped() -> [u8; Contract::__SPEC_XDR_VIEW_wrapped.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_wrapped.const_to_xdr() } } #[doc(hidden)] @@ -263,13 +328,49 @@ pub mod __Contract__double_wrapped__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_DOUBLE_WRAPPED: [u8; 80usize] = - super::Contract::spec_xdr_double_wrapped(); + pub static __SPEC_XDR_FN_DOUBLE_WRAPPED: [u8; super::Contract::__SPEC_XDR_VIEW_double_wrapped + .const_xdr_len()] = super::Contract::spec_xdr_double_wrapped(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_double_wrapped: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"double_wrapped", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_double_wrapped() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0edouble_wrapped\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\x03\xe8\0\0\x03\xea\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\x03\xea\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_double_wrapped( + ) -> [u8; Contract::__SPEC_XDR_VIEW_double_wrapped.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_double_wrapped.const_to_xdr() } } #[doc(hidden)] @@ -278,12 +379,33 @@ pub mod __Contract__valval__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_VALVAL: [u8; 56usize] = super::Contract::spec_xdr_valval(); + pub static __SPEC_XDR_FN_VALVAL: [u8; super::Contract::__SPEC_XDR_VIEW_valval.const_xdr_len()] = + super::Contract::spec_xdr_valval(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_valval: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"valval")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_valval() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06valval\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe8\0\0\0\x06" + pub const fn spec_xdr_valval() -> [u8; Contract::__SPEC_XDR_VIEW_valval.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_valval.const_to_xdr() } } #[doc(hidden)] @@ -292,12 +414,36 @@ pub mod __Contract__tuple__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TUPLE: [u8; 64usize] = super::Contract::spec_xdr_tuple(); + pub static __SPEC_XDR_FN_TUPLE: [u8; super::Contract::__SPEC_XDR_VIEW_tuple.const_xdr_len()] = + super::Contract::spec_xdr_tuple(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_tuple: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"tuple")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U64, + soroban_sdk::xdr::ScSpecTypeDefView::U64, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_tuple() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05tuple\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xed\0\0\0\x02\0\0\0\x06\0\0\0\x06" + pub const fn spec_xdr_tuple() -> [u8; Contract::__SPEC_XDR_VIEW_tuple.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_tuple.const_to_xdr() } } #[doc(hidden)] @@ -306,12 +452,27 @@ pub mod __Contract__valref__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_VALREF: [u8; 52usize] = super::Contract::spec_xdr_valref(); + pub static __SPEC_XDR_FN_VALREF: [u8; super::Contract::__SPEC_XDR_VIEW_valref.const_xdr_len()] = + super::Contract::spec_xdr_valref(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_valref: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"valref")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_valref() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06valref\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_valref() -> [u8; Contract::__SPEC_XDR_VIEW_valref.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_valref.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_associated_type_chained_wasm32v1-none.rs b/tests-expanded/test_associated_type_chained_wasm32v1-none.rs index 79640abab..0b0d22e0f 100644 --- a/tests-expanded/test_associated_type_chained_wasm32v1-none.rs +++ b/tests-expanded/test_associated_type_chained_wasm32v1-none.rs @@ -96,12 +96,27 @@ pub mod __Contract__set_val__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SET_VAL: [u8; 48usize] = super::Contract::spec_xdr_set_val(); + pub static __SPEC_XDR_FN_SET_VAL: [u8; super::Contract::__SPEC_XDR_VIEW_set_val + .const_xdr_len()] = super::Contract::spec_xdr_set_val(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_set_val: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"set_val")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_set_val() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07set_val\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\0" + pub const fn spec_xdr_set_val() -> [u8; Contract::__SPEC_XDR_VIEW_set_val.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_set_val.const_to_xdr() } } #[doc(hidden)] @@ -111,12 +126,21 @@ pub mod __Contract__get_val__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_GET_VAL: [u8; 32usize] = super::Contract::spec_xdr_get_val(); + pub static __SPEC_XDR_FN_GET_VAL: [u8; super::Contract::__SPEC_XDR_VIEW_get_val + .const_xdr_len()] = super::Contract::spec_xdr_get_val(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_get_val: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"get_val")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_get_val() -> [u8; 32usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07get_val\0\0\0\0\0\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_get_val() -> [u8; Contract::__SPEC_XDR_VIEW_get_val.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_get_val.const_to_xdr() } } #[doc(hidden)] @@ -126,12 +150,27 @@ pub mod __Contract__both__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_BOTH: [u8; 48usize] = super::Contract::spec_xdr_both(); + pub static __SPEC_XDR_FN_BOTH: [u8; super::Contract::__SPEC_XDR_VIEW_both.const_xdr_len()] = + super::Contract::spec_xdr_both(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_both: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"both")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_both() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04both\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_both() -> [u8; Contract::__SPEC_XDR_VIEW_both.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_both.const_to_xdr() } } #[doc(hidden)] @@ -141,12 +180,38 @@ pub mod __Contract__wrapped__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WRAPPED: [u8; 64usize] = super::Contract::spec_xdr_wrapped(); + pub static __SPEC_XDR_FN_WRAPPED: [u8; super::Contract::__SPEC_XDR_VIEW_wrapped + .const_xdr_len()] = super::Contract::spec_xdr_wrapped(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_wrapped: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"wrapped")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_wrapped() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07wrapped\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\x03\xea\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_wrapped() -> [u8; Contract::__SPEC_XDR_VIEW_wrapped.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_wrapped.const_to_xdr() } } #[doc(hidden)] @@ -156,13 +221,49 @@ pub mod __Contract__double_wrapped__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_DOUBLE_WRAPPED: [u8; 80usize] = - super::Contract::spec_xdr_double_wrapped(); + pub static __SPEC_XDR_FN_DOUBLE_WRAPPED: [u8; super::Contract::__SPEC_XDR_VIEW_double_wrapped + .const_xdr_len()] = super::Contract::spec_xdr_double_wrapped(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_double_wrapped: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"double_wrapped", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_double_wrapped() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0edouble_wrapped\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\x03\xe8\0\0\x03\xea\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\x03\xea\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_double_wrapped( + ) -> [u8; Contract::__SPEC_XDR_VIEW_double_wrapped.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_double_wrapped.const_to_xdr() } } #[doc(hidden)] @@ -172,12 +273,33 @@ pub mod __Contract__valval__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_VALVAL: [u8; 56usize] = super::Contract::spec_xdr_valval(); + pub static __SPEC_XDR_FN_VALVAL: [u8; super::Contract::__SPEC_XDR_VIEW_valval.const_xdr_len()] = + super::Contract::spec_xdr_valval(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_valval: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"valval")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_valval() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06valval\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe8\0\0\0\x06" + pub const fn spec_xdr_valval() -> [u8; Contract::__SPEC_XDR_VIEW_valval.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_valval.const_to_xdr() } } #[doc(hidden)] @@ -187,12 +309,36 @@ pub mod __Contract__tuple__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TUPLE: [u8; 64usize] = super::Contract::spec_xdr_tuple(); + pub static __SPEC_XDR_FN_TUPLE: [u8; super::Contract::__SPEC_XDR_VIEW_tuple.const_xdr_len()] = + super::Contract::spec_xdr_tuple(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_tuple: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"tuple")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U64, + soroban_sdk::xdr::ScSpecTypeDefView::U64, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_tuple() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05tuple\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xed\0\0\0\x02\0\0\0\x06\0\0\0\x06" + pub const fn spec_xdr_tuple() -> [u8; Contract::__SPEC_XDR_VIEW_tuple.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_tuple.const_to_xdr() } } #[doc(hidden)] @@ -202,12 +348,27 @@ pub mod __Contract__valref__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_VALREF: [u8; 52usize] = super::Contract::spec_xdr_valref(); + pub static __SPEC_XDR_FN_VALREF: [u8; super::Contract::__SPEC_XDR_VIEW_valref.const_xdr_len()] = + super::Contract::spec_xdr_valref(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_valref: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"valref")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_valref() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06valref\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_valref() -> [u8; Contract::__SPEC_XDR_VIEW_valref.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_valref.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_associated_types_contracttrait_tests.rs b/tests-expanded/test_associated_types_contracttrait_tests.rs index fadd038e9..e040eb986 100644 --- a/tests-expanded/test_associated_types_contracttrait_tests.rs +++ b/tests-expanded/test_associated_types_contracttrait_tests.rs @@ -333,9 +333,19 @@ impl TraitArgs { } } impl TraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec() -> [u8; TraitSpec::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + TraitSpec::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl Trait for DefaultImpl { @@ -391,12 +401,23 @@ pub mod __Contract__exec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EXEC: [u8; 28usize] = super::Contract::spec_xdr_exec(); + pub static __SPEC_XDR_FN_EXEC: [u8; super::Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] = + super::Contract::spec_xdr_exec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec() -> [u8; Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -568,12 +589,23 @@ pub mod __Contract__exec2__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EXEC2: [u8; 32usize] = super::Contract::spec_xdr_exec2(); + pub static __SPEC_XDR_FN_EXEC2: [u8; super::Contract::__SPEC_XDR_VIEW_exec2.const_xdr_len()] = + super::Contract::spec_xdr_exec2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec2")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec2() -> [u8; 32usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05exec2\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec2() -> [u8; Contract::__SPEC_XDR_VIEW_exec2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec2.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -1177,10 +1209,40 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -1715,11 +1777,49 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; + SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] + { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -2192,11 +2292,41 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractExecutable", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -2701,11 +2831,53 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractExecutable", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -3336,10 +3508,70 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -4007,11 +4239,32 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = - ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -4551,11 +4804,72 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -5285,10 +5599,44 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { diff --git a/tests-expanded/test_associated_types_contracttrait_wasm32v1-none.rs b/tests-expanded/test_associated_types_contracttrait_wasm32v1-none.rs index 355082368..5c0a49392 100644 --- a/tests-expanded/test_associated_types_contracttrait_wasm32v1-none.rs +++ b/tests-expanded/test_associated_types_contracttrait_wasm32v1-none.rs @@ -97,9 +97,19 @@ impl TraitArgs { } } impl TraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec() -> [u8; TraitSpec::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + TraitSpec::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl Trait for DefaultImpl { @@ -138,12 +148,23 @@ pub mod __Contract__exec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EXEC: [u8; 28usize] = super::Contract::spec_xdr_exec(); + pub static __SPEC_XDR_FN_EXEC: [u8; super::Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] = + super::Contract::spec_xdr_exec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec() -> [u8; Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -215,12 +236,23 @@ pub mod __Contract__exec2__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EXEC2: [u8; 32usize] = super::Contract::spec_xdr_exec2(); + pub static __SPEC_XDR_FN_EXEC2: [u8; super::Contract::__SPEC_XDR_VIEW_exec2.const_xdr_len()] = + super::Contract::spec_xdr_exec2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec2")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec2() -> [u8; 32usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05exec2\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec2() -> [u8; Contract::__SPEC_XDR_VIEW_exec2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec2.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_associated_types_tests.rs b/tests-expanded/test_associated_types_tests.rs index 28b337c10..cdbea14be 100644 --- a/tests-expanded/test_associated_types_tests.rs +++ b/tests-expanded/test_associated_types_tests.rs @@ -161,12 +161,23 @@ pub mod __Contract__exec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EXEC: [u8; 28usize] = super::Contract::spec_xdr_exec(); + pub static __SPEC_XDR_FN_EXEC: [u8; super::Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] = + super::Contract::spec_xdr_exec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec() -> [u8; Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_associated_types_wasm32v1-none.rs b/tests-expanded/test_associated_types_wasm32v1-none.rs index 850fcd958..4fad38755 100644 --- a/tests-expanded/test_associated_types_wasm32v1-none.rs +++ b/tests-expanded/test_associated_types_wasm32v1-none.rs @@ -50,12 +50,23 @@ pub mod __Contract__exec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EXEC: [u8; 28usize] = super::Contract::spec_xdr_exec(); + pub static __SPEC_XDR_FN_EXEC: [u8; super::Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] = + super::Contract::spec_xdr_exec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\0\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_exec() -> [u8; Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_attributes_tests.rs b/tests-expanded/test_attributes_tests.rs index a1ad012b9..e039ca774 100644 --- a/tests-expanded/test_attributes_tests.rs +++ b/tests-expanded/test_attributes_tests.rs @@ -47,10 +47,24 @@ impl ::core::cmp::PartialEq for AttributeType { self.value == other.value } } -pub static __SPEC_XDR_TYPE_ATTRIBUTETYPE: [u8; 56usize] = AttributeType::spec_xdr(); +pub static __SPEC_XDR_TYPE_ATTRIBUTETYPE: [u8; AttributeType::__SPEC_XDR_VIEW.const_xdr_len()] = + AttributeType::spec_xdr(); impl AttributeType { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\rAttributeType\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"AttributeType"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; AttributeType::__SPEC_XDR_VIEW.const_xdr_len()] { + AttributeType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for AttributeType { @@ -378,10 +392,37 @@ pub struct AttributeEvent { topic: u32, value: u32, } -pub static __SPEC_XDR_EVENT_ATTRIBUTEEVENT: [u8; 112usize] = AttributeEvent::spec_xdr(); +pub static __SPEC_XDR_EVENT_ATTRIBUTEEVENT: [u8; AttributeEvent::__SPEC_XDR_VIEW.const_xdr_len()] = + AttributeEvent::spec_xdr(); impl AttributeEvent { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x0eAttributeEvent\0\0\0\0\0\x01\0\0\0\x0fattribute_event\0\0\0\0\x02\0\0\0\0\0\0\0\x05topic\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"AttributeEvent", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"attribute_event"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"topic"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; AttributeEvent::__SPEC_XDR_VIEW.const_xdr_len()] { + AttributeEvent::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for AttributeEvent { @@ -1205,45 +1246,122 @@ impl AttributeTraitArgs { } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etrait_override\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtrait_default\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x19trait_default_stacked_cfg\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_stacked_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_stacked_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_stacked_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_negated_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_negated_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_negated_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_negated_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_negated_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x17trait_override_dual_cfg\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_dual_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x16trait_default_dual_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_dual_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_to_xdr() } } impl Contract { @@ -1263,12 +1381,31 @@ pub mod __Contract__always__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ALWAYS: [u8; 72usize] = super::Contract::spec_xdr_always(); + pub static __SPEC_XDR_FN_ALWAYS: [u8; super::Contract::__SPEC_XDR_VIEW_always.const_xdr_len()] = + super::Contract::spec_xdr_always(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_always: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"always")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"AttributeType"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_always() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06always\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\x07\xd0\0\0\0\rAttributeType\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_always() -> [u8; Contract::__SPEC_XDR_VIEW_always.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_always.const_to_xdr() } } #[doc(hidden)] @@ -1277,12 +1414,30 @@ pub mod __Contract__cfg_included__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_CFG_INCLUDED: [u8; 56usize] = super::Contract::spec_xdr_cfg_included(); + pub static __SPEC_XDR_FN_CFG_INCLUDED: [u8; super::Contract::__SPEC_XDR_VIEW_cfg_included + .const_xdr_len()] = super::Contract::spec_xdr_cfg_included(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_cfg_included: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"cfg_included", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_cfg_included() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ccfg_included\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_cfg_included( + ) -> [u8; Contract::__SPEC_XDR_VIEW_cfg_included.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_cfg_included.const_to_xdr() } } impl Contract {} @@ -1292,12 +1447,32 @@ pub mod __Contract__publish__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH: [u8; 68usize] = super::Contract::spec_xdr_publish(); + pub static __SPEC_XDR_FN_PUBLISH: [u8; super::Contract::__SPEC_XDR_VIEW_publish + .const_xdr_len()] = super::Contract::spec_xdr_publish(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"publish")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"topic"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07publish\0\0\0\0\x02\0\0\0\0\0\0\0\x05topic\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04\0\0\0\0" + pub const fn spec_xdr_publish() -> [u8; Contract::__SPEC_XDR_VIEW_publish.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -1771,13 +1946,24 @@ pub mod __Contract__trait_override__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE: [u8; 40usize] = - super::Contract::spec_xdr_trait_override(); + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE: [u8; super::Contract::__SPEC_XDR_VIEW_trait_override + .const_xdr_len()] = super::Contract::spec_xdr_trait_override(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etrait_override\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override.const_to_xdr() } } impl Contract {} @@ -1788,13 +1974,25 @@ pub mod __Contract__trait_override_stacked_cfg__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_STACKED_CFG: [u8; 52usize] = + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_STACKED_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_override_stacked_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_stacked_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_stacked_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_to_xdr() } } #[doc(hidden)] @@ -1803,13 +2001,25 @@ pub mod __Contract__trait_override_negated_cfg__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_NEGATED_CFG: [u8; 52usize] = + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_NEGATED_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_override_negated_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_negated_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_negated_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_negated_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_negated_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_negated_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_to_xdr() } } #[doc(hidden)] @@ -1818,13 +2028,25 @@ pub mod __Contract__trait_override_dual_cfg__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_DUAL_CFG: [u8; 48usize] = + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_DUAL_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_override_dual_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x17trait_override_dual_cfg\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_dual_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_to_xdr() } } impl Contract {} @@ -2427,13 +2649,24 @@ pub mod __Contract__trait_default__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_DEFAULT: [u8; 40usize] = - super::Contract::spec_xdr_trait_default(); + pub static __SPEC_XDR_FN_TRAIT_DEFAULT: [u8; super::Contract::__SPEC_XDR_VIEW_trait_default + .const_xdr_len()] = super::Contract::spec_xdr_trait_default(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtrait_default\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_default.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_default.const_to_xdr() } } #[doc(hidden)] @@ -2442,13 +2675,25 @@ pub mod __Contract__trait_default_stacked_cfg__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_DEFAULT_STACKED_CFG: [u8; 52usize] = + pub static __SPEC_XDR_FN_TRAIT_DEFAULT_STACKED_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_default_stacked_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x19trait_default_stacked_cfg\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_stacked_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_to_xdr() } } impl Contract {} @@ -2460,13 +2705,25 @@ pub mod __Contract__trait_default_dual_cfg__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRAIT_DEFAULT_DUAL_CFG: [u8; 48usize] = + pub static __SPEC_XDR_FN_TRAIT_DEFAULT_DUAL_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_default_dual_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x16trait_default_dual_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_dual_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_attributes_wasm32v1-none.rs b/tests-expanded/test_attributes_wasm32v1-none.rs index 94a4e0531..c60ce3fd1 100644 --- a/tests-expanded/test_attributes_wasm32v1-none.rs +++ b/tests-expanded/test_attributes_wasm32v1-none.rs @@ -48,10 +48,24 @@ impl ::core::cmp::PartialEq for AttributeType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ATTRIBUTETYPE: [u8; 56usize] = AttributeType::spec_xdr(); +pub static __SPEC_XDR_TYPE_ATTRIBUTETYPE: [u8; AttributeType::__SPEC_XDR_VIEW.const_xdr_len()] = + AttributeType::spec_xdr(); impl AttributeType { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\rAttributeType\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"AttributeType"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; AttributeType::__SPEC_XDR_VIEW.const_xdr_len()] { + AttributeType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for AttributeType { @@ -60,7 +74,7 @@ impl soroban_sdk::SpecShakingMarker for AttributeType { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1i\t\xb7\x06*\x88\xd7\xf8"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&AttributeType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -116,10 +130,37 @@ pub struct AttributeEvent { value: u32, } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_ATTRIBUTEEVENT: [u8; 112usize] = AttributeEvent::spec_xdr(); +pub static __SPEC_XDR_EVENT_ATTRIBUTEEVENT: [u8; AttributeEvent::__SPEC_XDR_VIEW.const_xdr_len()] = + AttributeEvent::spec_xdr(); impl AttributeEvent { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x0eAttributeEvent\0\0\0\0\0\x01\0\0\0\x0fattribute_event\0\0\0\0\x02\0\0\0\0\0\0\0\x05topic\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"AttributeEvent", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"attribute_event"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"topic"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; AttributeEvent::__SPEC_XDR_VIEW.const_xdr_len()] { + AttributeEvent::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for AttributeEvent { @@ -129,7 +170,7 @@ impl soroban_sdk::SpecShakingMarker for AttributeEvent { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xbfO\xc3P\xd4\x14\xb5V"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&AttributeEvent::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -429,45 +470,122 @@ impl AttributeTraitArgs { } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etrait_override\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtrait_default\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x19trait_default_stacked_cfg\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_stacked_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_stacked_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_stacked_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_negated_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_negated_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_negated_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_negated_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_negated_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x17trait_override_dual_cfg\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_dual_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_to_xdr() } } impl AttributeTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x16trait_default_dual_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_dual_cfg( + ) -> [u8; AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_xdr_len()] { + AttributeTraitSpec::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_to_xdr() } } impl Contract { @@ -488,12 +606,31 @@ pub mod __Contract__always__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ALWAYS: [u8; 72usize] = super::Contract::spec_xdr_always(); + pub static __SPEC_XDR_FN_ALWAYS: [u8; super::Contract::__SPEC_XDR_VIEW_always.const_xdr_len()] = + super::Contract::spec_xdr_always(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_always: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"always")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"AttributeType"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_always() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06always\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\x07\xd0\0\0\0\rAttributeType\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_always() -> [u8; Contract::__SPEC_XDR_VIEW_always.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_always.const_to_xdr() } } #[doc(hidden)] @@ -503,12 +640,30 @@ pub mod __Contract__cfg_included__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_CFG_INCLUDED: [u8; 56usize] = super::Contract::spec_xdr_cfg_included(); + pub static __SPEC_XDR_FN_CFG_INCLUDED: [u8; super::Contract::__SPEC_XDR_VIEW_cfg_included + .const_xdr_len()] = super::Contract::spec_xdr_cfg_included(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_cfg_included: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"cfg_included", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_cfg_included() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ccfg_included\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_cfg_included( + ) -> [u8; Contract::__SPEC_XDR_VIEW_cfg_included.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_cfg_included.const_to_xdr() } } impl Contract {} @@ -519,12 +674,32 @@ pub mod __Contract__publish__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH: [u8; 68usize] = super::Contract::spec_xdr_publish(); + pub static __SPEC_XDR_FN_PUBLISH: [u8; super::Contract::__SPEC_XDR_VIEW_publish + .const_xdr_len()] = super::Contract::spec_xdr_publish(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"publish")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"topic"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07publish\0\0\0\0\x02\0\0\0\0\0\0\0\x05topic\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x04\0\0\0\0" + pub const fn spec_xdr_publish() -> [u8; Contract::__SPEC_XDR_VIEW_publish.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -764,13 +939,24 @@ pub mod __Contract__trait_override__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE: [u8; 40usize] = - super::Contract::spec_xdr_trait_override(); + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE: [u8; super::Contract::__SPEC_XDR_VIEW_trait_override + .const_xdr_len()] = super::Contract::spec_xdr_trait_override(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etrait_override\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override.const_to_xdr() } } impl Contract {} @@ -782,13 +968,25 @@ pub mod __Contract__trait_override_stacked_cfg__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_STACKED_CFG: [u8; 52usize] = + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_STACKED_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_override_stacked_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_stacked_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_stacked_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override_stacked_cfg.const_to_xdr() } } #[doc(hidden)] @@ -798,13 +996,25 @@ pub mod __Contract__trait_override_negated_cfg__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_NEGATED_CFG: [u8; 52usize] = + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_NEGATED_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_override_negated_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_negated_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_negated_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_negated_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x1atrait_override_negated_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_negated_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override_negated_cfg.const_to_xdr() } } #[doc(hidden)] @@ -814,13 +1024,25 @@ pub mod __Contract__trait_override_dual_cfg__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_DUAL_CFG: [u8; 48usize] = + pub static __SPEC_XDR_FN_TRAIT_OVERRIDE_DUAL_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_override_dual_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_override_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_override_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_override_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x17trait_override_dual_cfg\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_override_dual_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_override_dual_cfg.const_to_xdr() } } impl Contract {} @@ -1102,13 +1324,24 @@ pub mod __Contract__trait_default__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_DEFAULT: [u8; 40usize] = - super::Contract::spec_xdr_trait_default(); + pub static __SPEC_XDR_FN_TRAIT_DEFAULT: [u8; super::Contract::__SPEC_XDR_VIEW_trait_default + .const_xdr_len()] = super::Contract::spec_xdr_trait_default(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtrait_default\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_default.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_default.const_to_xdr() } } #[doc(hidden)] @@ -1118,13 +1351,25 @@ pub mod __Contract__trait_default_stacked_cfg__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_DEFAULT_STACKED_CFG: [u8; 52usize] = + pub static __SPEC_XDR_FN_TRAIT_DEFAULT_STACKED_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_default_stacked_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_stacked_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_stacked_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_stacked_cfg() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x19trait_default_stacked_cfg\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_stacked_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_default_stacked_cfg.const_to_xdr() } } impl Contract {} @@ -1137,13 +1382,25 @@ pub mod __Contract__trait_default_dual_cfg__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRAIT_DEFAULT_DUAL_CFG: [u8; 48usize] = + pub static __SPEC_XDR_FN_TRAIT_DEFAULT_DUAL_CFG: [u8; + super::Contract::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_xdr_len()] = super::Contract::spec_xdr_trait_default_dual_cfg(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_trait_default_dual_cfg: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"trait_default_dual_cfg", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_trait_default_dual_cfg() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x16trait_default_dual_cfg\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_trait_default_dual_cfg( + ) -> [u8; Contract::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_trait_default_dual_cfg.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_auth_tests.rs b/tests-expanded/test_auth_tests.rs index 653c4a895..51c1dcf30 100644 --- a/tests-expanded/test_auth_tests.rs +++ b/tests-expanded/test_auth_tests.rs @@ -148,12 +148,27 @@ pub mod __ContractA__fn1__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN1: [u8; 44usize] = super::ContractA::spec_xdr_fn1(); + pub static __SPEC_XDR_FN_FN1: [u8; super::ContractA::__SPEC_XDR_VIEW_fn1.const_xdr_len()] = + super::ContractA::spec_xdr_fn1(); } impl ContractA { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn1: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn1")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn1() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03fn1\0\0\0\0\x01\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_fn1() -> [u8; ContractA::__SPEC_XDR_VIEW_fn1.const_xdr_len()] { + ContractA::__SPEC_XDR_VIEW_fn1.const_to_xdr() } } impl<'a> ContractAClient<'a> { @@ -809,14 +824,45 @@ mod test_a { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[allow(non_snake_case)] - pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; 112usize] = + pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; + super::Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] = super::Contract::spec_xdr___check_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + #[allow(non_snake_case)] + const __SPEC_XDR_VIEW___check_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0( + soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__check_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signature_payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signatures"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"auth_context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }, + ); #[allow(non_snake_case)] #[allow(non_snake_case)] - pub const fn spec_xdr___check_auth() -> [u8; 112usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0c__check_auth\0\0\0\x03\0\0\0\0\0\0\0\x11signature_payload\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nsignatures\0\0\0\0\0\0\0\0\0\0\0\0\0\x0cauth_context\0\0\0\0\0\0\0\0" + pub const fn spec_xdr___check_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___check_auth.const_to_xdr() } } impl<'a> ContractClient<'a> {} @@ -1119,10 +1165,26 @@ mod test_a { ::core::cmp::Ordering::Equal } } - pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = + Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07Decline\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Decline"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -1253,14 +1315,52 @@ mod test_a { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[allow(non_snake_case)] - pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; 124usize] = + pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; + super::Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] = super::Contract::spec_xdr___check_auth(); } impl Contract { + #[allow(non_upper_case_globals)] #[allow(non_snake_case)] + const __SPEC_XDR_VIEW___check_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0( + soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__check_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signature_payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signatures"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"auth_context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Void, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }, + ); #[allow(non_snake_case)] - pub const fn spec_xdr___check_auth() -> [u8; 124usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0c__check_auth\0\0\0\x03\0\0\0\0\0\0\0\x11signature_payload\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nsignatures\0\0\0\0\0\0\0\0\0\0\0\0\0\x0cauth_context\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x02\0\0\0\x03" + #[allow(non_snake_case)] + pub const fn spec_xdr___check_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___check_auth.const_to_xdr() } } impl<'a> ContractClient<'a> {} @@ -1519,12 +1619,32 @@ pub mod __ContractB__fn2__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN2: [u8; 60usize] = super::ContractB::spec_xdr_fn2(); + pub static __SPEC_XDR_FN_FN2: [u8; super::ContractB::__SPEC_XDR_VIEW_fn2.const_xdr_len()] = + super::ContractB::spec_xdr_fn2(); } impl ContractB { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn2")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn2() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03fn2\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x13\0\0\0\0\0\0\0\x03sub\0\0\0\0\x13\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_fn2() -> [u8; ContractB::__SPEC_XDR_VIEW_fn2.const_xdr_len()] { + ContractB::__SPEC_XDR_VIEW_fn2.const_to_xdr() } } impl<'a> ContractBClient<'a> { @@ -2293,14 +2413,45 @@ mod test_b { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[allow(non_snake_case)] - pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; 112usize] = + pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; + super::Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] = super::Contract::spec_xdr___check_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + #[allow(non_snake_case)] + const __SPEC_XDR_VIEW___check_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0( + soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__check_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signature_payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signatures"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"auth_context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }, + ); #[allow(non_snake_case)] #[allow(non_snake_case)] - pub const fn spec_xdr___check_auth() -> [u8; 112usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0c__check_auth\0\0\0\x03\0\0\0\0\0\0\0\x11signature_payload\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nsignatures\0\0\0\0\0\0\0\0\0\0\0\0\0\x0cauth_context\0\0\0\0\0\0\0\0" + pub const fn spec_xdr___check_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___check_auth.const_to_xdr() } } impl<'a> ContractClient<'a> {} @@ -2603,10 +2754,26 @@ mod test_b { ::core::cmp::Ordering::Equal } } - pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = + Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07Decline\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Decline"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -2737,14 +2904,52 @@ mod test_b { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[allow(non_snake_case)] - pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; 124usize] = + pub static __SPEC_XDR_FN___CHECK_AUTH: [u8; + super::Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] = super::Contract::spec_xdr___check_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + #[allow(non_snake_case)] + const __SPEC_XDR_VIEW___check_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0( + soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__check_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signature_payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"signatures"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"auth_context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Void, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }, + ); #[allow(non_snake_case)] #[allow(non_snake_case)] - pub const fn spec_xdr___check_auth() -> [u8; 124usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0c__check_auth\0\0\0\x03\0\0\0\0\0\0\0\x11signature_payload\0\0\0\0\0\0\0\0\0\0\0\0\0\0\nsignatures\0\0\0\0\0\0\0\0\0\0\0\0\0\x0cauth_context\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x02\0\0\0\x03" + pub const fn spec_xdr___check_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW___check_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___check_auth.const_to_xdr() } } impl<'a> ContractClient<'a> {} diff --git a/tests-expanded/test_auth_wasm32v1-none.rs b/tests-expanded/test_auth_wasm32v1-none.rs index f1c274095..808c1a5b9 100644 --- a/tests-expanded/test_auth_wasm32v1-none.rs +++ b/tests-expanded/test_auth_wasm32v1-none.rs @@ -37,12 +37,27 @@ pub mod __ContractA__fn1__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN1: [u8; 44usize] = super::ContractA::spec_xdr_fn1(); + pub static __SPEC_XDR_FN_FN1: [u8; super::ContractA::__SPEC_XDR_VIEW_fn1.const_xdr_len()] = + super::ContractA::spec_xdr_fn1(); } impl ContractA { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn1: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn1")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn1() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03fn1\0\0\0\0\x01\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_fn1() -> [u8; ContractA::__SPEC_XDR_VIEW_fn1.const_xdr_len()] { + ContractA::__SPEC_XDR_VIEW_fn1.const_to_xdr() } } impl<'a> ContractAClient<'a> { @@ -148,12 +163,32 @@ pub mod __ContractB__fn2__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN2: [u8; 60usize] = super::ContractB::spec_xdr_fn2(); + pub static __SPEC_XDR_FN_FN2: [u8; super::ContractB::__SPEC_XDR_VIEW_fn2.const_xdr_len()] = + super::ContractB::spec_xdr_fn2(); } impl ContractB { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn2")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn2() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03fn2\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x13\0\0\0\0\0\0\0\x03sub\0\0\0\0\x13\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_fn2() -> [u8; ContractB::__SPEC_XDR_VIEW_fn2.const_xdr_len()] { + ContractB::__SPEC_XDR_VIEW_fn2.const_to_xdr() } } impl<'a> ContractBClient<'a> { diff --git a/tests-expanded/test_bls_tests.rs b/tests-expanded/test_bls_tests.rs index b1efa2440..0e1a41f26 100644 --- a/tests-expanded/test_bls_tests.rs +++ b/tests-expanded/test_bls_tests.rs @@ -16,10 +16,52 @@ pub struct DummyProof { pub g2: Bls12381G2Affine, pub fr: Bls12381Fr, } -pub static __SPEC_XDR_TYPE_DUMMYPROOF: [u8; 128usize] = DummyProof::spec_xdr(); +pub static __SPEC_XDR_TYPE_DUMMYPROOF: [u8; DummyProof::__SPEC_XDR_VIEW.const_xdr_len()] = + DummyProof::spec_xdr(); impl DummyProof { - pub const fn spec_xdr() -> [u8; 128usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\nDummyProof\0\0\0\0\0\x05\0\0\0\0\0\0\0\x02fp\0\0\0\0\x03\xee\0\0\00\0\0\0\0\0\0\0\x03fp2\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02fr\0\0\0\0\0\x0c\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xee\0\0\0\xc0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"DummyProof"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fp"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 48u32 }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fp2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 96u32 }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fr"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 96u32 }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 192u32 }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; DummyProof::__SPEC_XDR_VIEW.const_xdr_len()] { + DummyProof::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for DummyProof { @@ -744,12 +786,38 @@ pub mod __Contract__g1_mul__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_G1_MUL: [u8; 72usize] = super::Contract::spec_xdr_g1_mul(); + pub static __SPEC_XDR_FN_G1_MUL: [u8; super::Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] = + super::Contract::spec_xdr_g1_mul(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g1_mul: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g1_mul")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"p"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 96u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 96u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g1_mul() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g1_mul\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01p\0\0\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x01s\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\x03\xee\0\0\0`" + pub const fn spec_xdr_g1_mul() -> [u8; Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g1_mul.const_to_xdr() } } #[doc(hidden)] @@ -758,12 +826,38 @@ pub mod __Contract__g2_mul__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_G2_MUL: [u8; 72usize] = super::Contract::spec_xdr_g2_mul(); + pub static __SPEC_XDR_FN_G2_MUL: [u8; super::Contract::__SPEC_XDR_VIEW_g2_mul.const_xdr_len()] = + super::Contract::spec_xdr_g2_mul(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g2_mul: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g2_mul")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"p"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 192u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 192u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g2_mul() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g2_mul\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01p\0\0\0\0\0\x03\xee\0\0\0\xc0\0\0\0\0\0\0\0\x01s\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\x03\xee\0\0\0\xc0" + pub const fn spec_xdr_g2_mul() -> [u8; Contract::__SPEC_XDR_VIEW_g2_mul.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g2_mul.const_to_xdr() } } #[doc(hidden)] @@ -772,12 +866,34 @@ pub mod __Contract__dummy_verify__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_DUMMY_VERIFY: [u8; 72usize] = super::Contract::spec_xdr_dummy_verify(); + pub static __SPEC_XDR_FN_DUMMY_VERIFY: [u8; super::Contract::__SPEC_XDR_VIEW_dummy_verify + .const_xdr_len()] = super::Contract::spec_xdr_dummy_verify(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_dummy_verify: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"dummy_verify", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"proof"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"DummyProof"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_dummy_verify() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0cdummy_verify\0\0\0\x01\0\0\0\0\0\0\0\x05proof\0\0\0\0\0\x07\xd0\0\0\0\nDummyProof\0\0\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_dummy_verify( + ) -> [u8; Contract::__SPEC_XDR_VIEW_dummy_verify.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_dummy_verify.const_to_xdr() } } #[doc(hidden)] @@ -786,12 +902,37 @@ pub mod __Contract__fr_vec_get__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; 80usize] = super::Contract::spec_xdr_fr_vec_get(); + pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; super::Contract::__SPEC_XDR_VIEW_fr_vec_get + .const_xdr_len()] = super::Contract::spec_xdr_fr_vec_get(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fr_vec_get: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fr_vec_get")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"values"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"index"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fr_vec_get() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfr_vec_get\0\0\0\0\0\x02\0\0\0\0\0\0\0\x06values\0\0\0\0\x03\xea\0\0\0\x0c\0\0\0\0\0\0\0\x05index\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_fr_vec_get() -> [u8; Contract::__SPEC_XDR_VIEW_fr_vec_get.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fr_vec_get.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_bls_wasm32v1-none.rs b/tests-expanded/test_bls_wasm32v1-none.rs index 1bc77fcf7..679c3e038 100644 --- a/tests-expanded/test_bls_wasm32v1-none.rs +++ b/tests-expanded/test_bls_wasm32v1-none.rs @@ -17,10 +17,52 @@ pub struct DummyProof { pub fr: Bls12381Fr, } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_DUMMYPROOF: [u8; 128usize] = DummyProof::spec_xdr(); +pub static __SPEC_XDR_TYPE_DUMMYPROOF: [u8; DummyProof::__SPEC_XDR_VIEW.const_xdr_len()] = + DummyProof::spec_xdr(); impl DummyProof { - pub const fn spec_xdr() -> [u8; 128usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\nDummyProof\0\0\0\0\0\x05\0\0\0\0\0\0\0\x02fp\0\0\0\0\x03\xee\0\0\00\0\0\0\0\0\0\0\x03fp2\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02fr\0\0\0\0\0\x0c\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xee\0\0\0\xc0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"DummyProof"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fp"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 48u32 }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fp2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 96u32 }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fr"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 96u32 }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 192u32 }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; DummyProof::__SPEC_XDR_VIEW.const_xdr_len()] { + DummyProof::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for DummyProof { @@ -33,7 +75,7 @@ impl soroban_sdk::SpecShakingMarker for DummyProof { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x85W\0A\xdc~\xb7\""; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&DummyProof::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -173,12 +215,38 @@ pub mod __Contract__g1_mul__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_G1_MUL: [u8; 72usize] = super::Contract::spec_xdr_g1_mul(); + pub static __SPEC_XDR_FN_G1_MUL: [u8; super::Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] = + super::Contract::spec_xdr_g1_mul(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g1_mul: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g1_mul")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"p"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 96u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 96u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g1_mul() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g1_mul\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01p\0\0\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x01s\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\x03\xee\0\0\0`" + pub const fn spec_xdr_g1_mul() -> [u8; Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g1_mul.const_to_xdr() } } #[doc(hidden)] @@ -188,12 +256,38 @@ pub mod __Contract__g2_mul__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_G2_MUL: [u8; 72usize] = super::Contract::spec_xdr_g2_mul(); + pub static __SPEC_XDR_FN_G2_MUL: [u8; super::Contract::__SPEC_XDR_VIEW_g2_mul.const_xdr_len()] = + super::Contract::spec_xdr_g2_mul(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g2_mul: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g2_mul")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"p"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 192u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 192u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g2_mul() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g2_mul\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01p\0\0\0\0\0\x03\xee\0\0\0\xc0\0\0\0\0\0\0\0\x01s\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\x03\xee\0\0\0\xc0" + pub const fn spec_xdr_g2_mul() -> [u8; Contract::__SPEC_XDR_VIEW_g2_mul.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g2_mul.const_to_xdr() } } #[doc(hidden)] @@ -203,12 +297,34 @@ pub mod __Contract__dummy_verify__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_DUMMY_VERIFY: [u8; 72usize] = super::Contract::spec_xdr_dummy_verify(); + pub static __SPEC_XDR_FN_DUMMY_VERIFY: [u8; super::Contract::__SPEC_XDR_VIEW_dummy_verify + .const_xdr_len()] = super::Contract::spec_xdr_dummy_verify(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_dummy_verify: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"dummy_verify", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"proof"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"DummyProof"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_dummy_verify() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0cdummy_verify\0\0\0\x01\0\0\0\0\0\0\0\x05proof\0\0\0\0\0\x07\xd0\0\0\0\nDummyProof\0\0\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_dummy_verify( + ) -> [u8; Contract::__SPEC_XDR_VIEW_dummy_verify.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_dummy_verify.const_to_xdr() } } #[doc(hidden)] @@ -218,12 +334,37 @@ pub mod __Contract__fr_vec_get__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; 80usize] = super::Contract::spec_xdr_fr_vec_get(); + pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; super::Contract::__SPEC_XDR_VIEW_fr_vec_get + .const_xdr_len()] = super::Contract::spec_xdr_fr_vec_get(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fr_vec_get: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fr_vec_get")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"values"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"index"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fr_vec_get() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfr_vec_get\0\0\0\0\0\x02\0\0\0\0\0\0\0\x06values\0\0\0\0\x03\xea\0\0\0\x0c\0\0\0\0\0\0\0\x05index\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_fr_vec_get() -> [u8; Contract::__SPEC_XDR_VIEW_fr_vec_get.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fr_vec_get.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_bn254_tests.rs b/tests-expanded/test_bn254_tests.rs index 825322cb9..948e367f0 100644 --- a/tests-expanded/test_bn254_tests.rs +++ b/tests-expanded/test_bn254_tests.rs @@ -13,10 +13,41 @@ pub struct MockProof { pub g1: Vec, pub g2: Vec, } -pub static __SPEC_XDR_TYPE_MOCKPROOF: [u8; 80usize] = MockProof::spec_xdr(); +pub static __SPEC_XDR_TYPE_MOCKPROOF: [u8; MockProof::__SPEC_XDR_VIEW.const_xdr_len()] = + MockProof::spec_xdr(); impl MockProof { - pub const fn spec_xdr() -> [u8; 80usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tMockProof\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0\x80" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MockProof"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 128u32 }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; MockProof::__SPEC_XDR_VIEW.const_xdr_len()] { + MockProof::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MockProof { @@ -556,13 +587,34 @@ pub mod __Contract__verify_pairing__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_VERIFY_PAIRING: [u8; 76usize] = - super::Contract::spec_xdr_verify_pairing(); + pub static __SPEC_XDR_FN_VERIFY_PAIRING: [u8; super::Contract::__SPEC_XDR_VIEW_verify_pairing + .const_xdr_len()] = super::Contract::spec_xdr_verify_pairing(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_verify_pairing: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"verify_pairing", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"proof"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MockProof"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_verify_pairing() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0everify_pairing\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05proof\0\0\0\0\0\x07\xd0\0\0\0\tMockProof\0\0\0\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_verify_pairing( + ) -> [u8; Contract::__SPEC_XDR_VIEW_verify_pairing.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_verify_pairing.const_to_xdr() } } #[doc(hidden)] @@ -571,12 +623,40 @@ pub mod __Contract__g1_add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_G1_ADD: [u8; 76usize] = super::Contract::spec_xdr_g1_add(); + pub static __SPEC_XDR_FN_G1_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_g1_add.const_xdr_len()] = + super::Contract::spec_xdr_g1_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g1_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g1_add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 64u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g1_add() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g1_add\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xee\0\0\0@\0\0\0\x01\0\0\x03\xee\0\0\0@" + pub const fn spec_xdr_g1_add() -> [u8; Contract::__SPEC_XDR_VIEW_g1_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g1_add.const_to_xdr() } } #[doc(hidden)] @@ -585,12 +665,38 @@ pub mod __Contract__g1_mul__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_G1_MUL: [u8; 72usize] = super::Contract::spec_xdr_g1_mul(); + pub static __SPEC_XDR_FN_G1_MUL: [u8; super::Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] = + super::Contract::spec_xdr_g1_mul(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g1_mul: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g1_mul")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"p"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 64u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g1_mul() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g1_mul\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01p\0\0\0\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x01s\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\x03\xee\0\0\0@" + pub const fn spec_xdr_g1_mul() -> [u8; Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g1_mul.const_to_xdr() } } #[doc(hidden)] @@ -599,12 +705,37 @@ pub mod __Contract__fr_vec_get__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; 80usize] = super::Contract::spec_xdr_fr_vec_get(); + pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; super::Contract::__SPEC_XDR_VIEW_fr_vec_get + .const_xdr_len()] = super::Contract::spec_xdr_fr_vec_get(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fr_vec_get: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fr_vec_get")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"values"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"index"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fr_vec_get() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfr_vec_get\0\0\0\0\0\x02\0\0\0\0\0\0\0\x06values\0\0\0\0\x03\xea\0\0\0\x0c\0\0\0\0\0\0\0\x05index\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_fr_vec_get() -> [u8; Contract::__SPEC_XDR_VIEW_fr_vec_get.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fr_vec_get.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_bn254_wasm32v1-none.rs b/tests-expanded/test_bn254_wasm32v1-none.rs index ebd06e40e..c79b740b9 100644 --- a/tests-expanded/test_bn254_wasm32v1-none.rs +++ b/tests-expanded/test_bn254_wasm32v1-none.rs @@ -14,10 +14,41 @@ pub struct MockProof { pub g2: Vec, } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_MOCKPROOF: [u8; 80usize] = MockProof::spec_xdr(); +pub static __SPEC_XDR_TYPE_MOCKPROOF: [u8; MockProof::__SPEC_XDR_VIEW.const_xdr_len()] = + MockProof::spec_xdr(); impl MockProof { - pub const fn spec_xdr() -> [u8; 80usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tMockProof\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0\x80" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MockProof"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"g2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 128u32 }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; MockProof::__SPEC_XDR_VIEW.const_xdr_len()] { + MockProof::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MockProof { @@ -27,7 +58,7 @@ impl soroban_sdk::SpecShakingMarker for MockProof { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1:\x81\xa6\xa0\x9e\xe7\xa7\x1f"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&MockProof::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -132,13 +163,34 @@ pub mod __Contract__verify_pairing__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_VERIFY_PAIRING: [u8; 76usize] = - super::Contract::spec_xdr_verify_pairing(); + pub static __SPEC_XDR_FN_VERIFY_PAIRING: [u8; super::Contract::__SPEC_XDR_VIEW_verify_pairing + .const_xdr_len()] = super::Contract::spec_xdr_verify_pairing(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_verify_pairing: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"verify_pairing", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"proof"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MockProof"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_verify_pairing() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0everify_pairing\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05proof\0\0\0\0\0\x07\xd0\0\0\0\tMockProof\0\0\0\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_verify_pairing( + ) -> [u8; Contract::__SPEC_XDR_VIEW_verify_pairing.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_verify_pairing.const_to_xdr() } } #[doc(hidden)] @@ -148,12 +200,40 @@ pub mod __Contract__g1_add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_G1_ADD: [u8; 76usize] = super::Contract::spec_xdr_g1_add(); + pub static __SPEC_XDR_FN_G1_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_g1_add.const_xdr_len()] = + super::Contract::spec_xdr_g1_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g1_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g1_add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 64u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g1_add() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g1_add\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xee\0\0\0@\0\0\0\x01\0\0\x03\xee\0\0\0@" + pub const fn spec_xdr_g1_add() -> [u8; Contract::__SPEC_XDR_VIEW_g1_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g1_add.const_to_xdr() } } #[doc(hidden)] @@ -163,12 +243,38 @@ pub mod __Contract__g1_mul__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_G1_MUL: [u8; 72usize] = super::Contract::spec_xdr_g1_mul(); + pub static __SPEC_XDR_FN_G1_MUL: [u8; super::Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] = + super::Contract::spec_xdr_g1_mul(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_g1_mul: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"g1_mul")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"p"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 64u32 }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 64u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_g1_mul() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06g1_mul\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01p\0\0\0\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x01s\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\x03\xee\0\0\0@" + pub const fn spec_xdr_g1_mul() -> [u8; Contract::__SPEC_XDR_VIEW_g1_mul.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_g1_mul.const_to_xdr() } } #[doc(hidden)] @@ -178,12 +284,37 @@ pub mod __Contract__fr_vec_get__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; 80usize] = super::Contract::spec_xdr_fr_vec_get(); + pub static __SPEC_XDR_FN_FR_VEC_GET: [u8; super::Contract::__SPEC_XDR_VIEW_fr_vec_get + .const_xdr_len()] = super::Contract::spec_xdr_fr_vec_get(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fr_vec_get: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fr_vec_get")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"values"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"index"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fr_vec_get() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfr_vec_get\0\0\0\0\0\x02\0\0\0\0\0\0\0\x06values\0\0\0\0\x03\xea\0\0\0\x0c\0\0\0\0\0\0\0\x05index\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_fr_vec_get() -> [u8; Contract::__SPEC_XDR_VIEW_fr_vec_get.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fr_vec_get.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_constructor_tests.rs b/tests-expanded/test_constructor_tests.rs index 2ddc1d91a..f72ba4533 100644 --- a/tests-expanded/test_constructor_tests.rs +++ b/tests-expanded/test_constructor_tests.rs @@ -141,10 +141,46 @@ pub enum DataKey { Temp(u32), Instance(u32), } -pub static __SPEC_XDR_TYPE_DATAKEY: [u8; 112usize] = DataKey::spec_xdr(); +pub static __SPEC_XDR_TYPE_DATAKEY: [u8; DataKey::__SPEC_XDR_VIEW.const_xdr_len()] = + DataKey::spec_xdr(); impl DataKey { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07DataKey\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\nPersistent\0\0\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x04Temp\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x08Instance\0\0\0\x01\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"DataKey"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Persistent"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Temp"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Instance"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; DataKey::__SPEC_XDR_VIEW.const_xdr_len()] { + DataKey::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for DataKey { @@ -715,13 +751,35 @@ pub mod __Contract____constructor__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; 80usize] = - super::Contract::spec_xdr___constructor(); + pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; super::Contract::__SPEC_XDR_VIEW___constructor + .const_xdr_len()] = super::Contract::spec_xdr___constructor(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW___constructor: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__constructor", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"init_key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"init_value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr___constructor() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\r__constructor\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x08init_key\0\0\0\x04\0\0\0\0\0\0\0\ninit_value\0\0\0\0\0\x07\0\0\0\0" + pub const fn spec_xdr___constructor( + ) -> [u8; Contract::__SPEC_XDR_VIEW___constructor.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___constructor.const_to_xdr() } } #[doc(hidden)] @@ -730,12 +788,37 @@ pub mod __Contract__get_data__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_GET_DATA: [u8; 64usize] = super::Contract::spec_xdr_get_data(); + pub static __SPEC_XDR_FN_GET_DATA: [u8; super::Contract::__SPEC_XDR_VIEW_get_data + .const_xdr_len()] = super::Contract::spec_xdr_get_data(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_get_data: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"get_data")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"DataKey"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_get_data() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08get_data\0\0\0\x01\0\0\0\0\0\0\0\x03key\0\0\0\x07\xd0\0\0\0\x07DataKey\0\0\0\0\x01\0\0\x03\xe8\0\0\0\x07" + pub const fn spec_xdr_get_data() -> [u8; Contract::__SPEC_XDR_VIEW_get_data.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_get_data.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_constructor_wasm32v1-none.rs b/tests-expanded/test_constructor_wasm32v1-none.rs index 871059033..cf0d43edd 100644 --- a/tests-expanded/test_constructor_wasm32v1-none.rs +++ b/tests-expanded/test_constructor_wasm32v1-none.rs @@ -30,10 +30,46 @@ pub enum DataKey { Instance(u32), } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_DATAKEY: [u8; 112usize] = DataKey::spec_xdr(); +pub static __SPEC_XDR_TYPE_DATAKEY: [u8; DataKey::__SPEC_XDR_VIEW.const_xdr_len()] = + DataKey::spec_xdr(); impl DataKey { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07DataKey\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\nPersistent\0\0\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x04Temp\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x08Instance\0\0\0\x01\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"DataKey"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Persistent"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Temp"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Instance"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; DataKey::__SPEC_XDR_VIEW.const_xdr_len()] { + DataKey::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for DataKey { @@ -42,7 +78,7 @@ impl soroban_sdk::SpecShakingMarker for DataKey { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x14\x94}~\xec\x15\x94\x84"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&DataKey::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -171,13 +207,35 @@ pub mod __Contract____constructor__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; 80usize] = - super::Contract::spec_xdr___constructor(); + pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; super::Contract::__SPEC_XDR_VIEW___constructor + .const_xdr_len()] = super::Contract::spec_xdr___constructor(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW___constructor: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__constructor", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"init_key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"init_value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr___constructor() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\r__constructor\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x08init_key\0\0\0\x04\0\0\0\0\0\0\0\ninit_value\0\0\0\0\0\x07\0\0\0\0" + pub const fn spec_xdr___constructor( + ) -> [u8; Contract::__SPEC_XDR_VIEW___constructor.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___constructor.const_to_xdr() } } #[doc(hidden)] @@ -187,12 +245,37 @@ pub mod __Contract__get_data__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_GET_DATA: [u8; 64usize] = super::Contract::spec_xdr_get_data(); + pub static __SPEC_XDR_FN_GET_DATA: [u8; super::Contract::__SPEC_XDR_VIEW_get_data + .const_xdr_len()] = super::Contract::spec_xdr_get_data(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_get_data: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"get_data")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"DataKey"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_get_data() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08get_data\0\0\0\x01\0\0\0\0\0\0\0\x03key\0\0\0\x07\xd0\0\0\0\x07DataKey\0\0\0\0\x01\0\0\x03\xe8\0\0\0\x07" + pub const fn spec_xdr_get_data() -> [u8; Contract::__SPEC_XDR_VIEW_get_data.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_get_data.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_constructor_with_auth_tests.rs b/tests-expanded/test_constructor_with_auth_tests.rs index 7bca61b1e..f8d3960f8 100644 --- a/tests-expanded/test_constructor_with_auth_tests.rs +++ b/tests-expanded/test_constructor_with_auth_tests.rs @@ -148,13 +148,30 @@ pub mod __Contract____constructor__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; 56usize] = - super::Contract::spec_xdr___constructor(); + pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; super::Contract::__SPEC_XDR_VIEW___constructor + .const_xdr_len()] = super::Contract::spec_xdr___constructor(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW___constructor: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__constructor", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"admin"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr___constructor() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\r__constructor\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05admin\0\0\0\0\0\0\x13\0\0\0\0" + pub const fn spec_xdr___constructor( + ) -> [u8; Contract::__SPEC_XDR_VIEW___constructor.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___constructor.const_to_xdr() } } impl<'a> ContractClient<'a> {} diff --git a/tests-expanded/test_constructor_with_auth_wasm32v1-none.rs b/tests-expanded/test_constructor_with_auth_wasm32v1-none.rs index 5aa0cecd5..e4aeb033f 100644 --- a/tests-expanded/test_constructor_with_auth_wasm32v1-none.rs +++ b/tests-expanded/test_constructor_with_auth_wasm32v1-none.rs @@ -37,13 +37,30 @@ pub mod __Contract____constructor__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; 56usize] = - super::Contract::spec_xdr___constructor(); + pub static __SPEC_XDR_FN___CONSTRUCTOR: [u8; super::Contract::__SPEC_XDR_VIEW___constructor + .const_xdr_len()] = super::Contract::spec_xdr___constructor(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW___constructor: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"__constructor", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"admin"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr___constructor() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\r__constructor\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05admin\0\0\0\0\0\0\x13\0\0\0\0" + pub const fn spec_xdr___constructor( + ) -> [u8; Contract::__SPEC_XDR_VIEW___constructor.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW___constructor.const_to_xdr() } } impl<'a> ContractClient<'a> {} diff --git a/tests-expanded/test_contract_data_tests.rs b/tests-expanded/test_contract_data_tests.rs index 06e39a38e..7850ce076 100644 --- a/tests-expanded/test_contract_data_tests.rs +++ b/tests-expanded/test_contract_data_tests.rs @@ -153,12 +153,32 @@ pub mod __Contract__put__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUT: [u8; 56usize] = super::Contract::spec_xdr_put(); + pub static __SPEC_XDR_FN_PUT: [u8; super::Contract::__SPEC_XDR_VIEW_put.const_xdr_len()] = + super::Contract::spec_xdr_put(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_put: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"put")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_put() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03put\0\0\0\0\x02\0\0\0\0\0\0\0\x03key\0\0\0\0\x11\0\0\0\0\0\0\0\x03val\0\0\0\0\x11\0\0\0\0" + pub const fn spec_xdr_put() -> [u8; Contract::__SPEC_XDR_VIEW_put.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_put.const_to_xdr() } } #[doc(hidden)] @@ -167,12 +187,33 @@ pub mod __Contract__get__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_GET: [u8; 48usize] = super::Contract::spec_xdr_get(); + pub static __SPEC_XDR_FN_GET: [u8; super::Contract::__SPEC_XDR_VIEW_get.const_xdr_len()] = + super::Contract::spec_xdr_get(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_get: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"get")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_get() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03get\0\0\0\0\x01\0\0\0\0\0\0\0\x03key\0\0\0\0\x11\0\0\0\x01\0\0\x03\xe8\0\0\0\x11" + pub const fn spec_xdr_get() -> [u8; Contract::__SPEC_XDR_VIEW_get.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_get.const_to_xdr() } } #[doc(hidden)] @@ -181,12 +222,27 @@ pub mod __Contract__del__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_DEL: [u8; 40usize] = super::Contract::spec_xdr_del(); + pub static __SPEC_XDR_FN_DEL: [u8; super::Contract::__SPEC_XDR_VIEW_del.const_xdr_len()] = + super::Contract::spec_xdr_del(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_del: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"del")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_del() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03del\0\0\0\0\x01\0\0\0\0\0\0\0\x03key\0\0\0\0\x11\0\0\0\0" + pub const fn spec_xdr_del() -> [u8; Contract::__SPEC_XDR_VIEW_del.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_del.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contract_data_wasm32v1-none.rs b/tests-expanded/test_contract_data_wasm32v1-none.rs index b60dc39a9..75a47075a 100644 --- a/tests-expanded/test_contract_data_wasm32v1-none.rs +++ b/tests-expanded/test_contract_data_wasm32v1-none.rs @@ -42,12 +42,32 @@ pub mod __Contract__put__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUT: [u8; 56usize] = super::Contract::spec_xdr_put(); + pub static __SPEC_XDR_FN_PUT: [u8; super::Contract::__SPEC_XDR_VIEW_put.const_xdr_len()] = + super::Contract::spec_xdr_put(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_put: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"put")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_put() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03put\0\0\0\0\x02\0\0\0\0\0\0\0\x03key\0\0\0\0\x11\0\0\0\0\0\0\0\x03val\0\0\0\0\x11\0\0\0\0" + pub const fn spec_xdr_put() -> [u8; Contract::__SPEC_XDR_VIEW_put.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_put.const_to_xdr() } } #[doc(hidden)] @@ -57,12 +77,33 @@ pub mod __Contract__get__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_GET: [u8; 48usize] = super::Contract::spec_xdr_get(); + pub static __SPEC_XDR_FN_GET: [u8; super::Contract::__SPEC_XDR_VIEW_get.const_xdr_len()] = + super::Contract::spec_xdr_get(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_get: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"get")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_get() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03get\0\0\0\0\x01\0\0\0\0\0\0\0\x03key\0\0\0\0\x11\0\0\0\x01\0\0\x03\xe8\0\0\0\x11" + pub const fn spec_xdr_get() -> [u8; Contract::__SPEC_XDR_VIEW_get.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_get.const_to_xdr() } } #[doc(hidden)] @@ -72,12 +113,27 @@ pub mod __Contract__del__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_DEL: [u8; 40usize] = super::Contract::spec_xdr_del(); + pub static __SPEC_XDR_FN_DEL: [u8; super::Contract::__SPEC_XDR_VIEW_del.const_xdr_len()] = + super::Contract::spec_xdr_del(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_del: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"del")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_del() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03del\0\0\0\0\x01\0\0\0\0\0\0\0\x03key\0\0\0\0\x11\0\0\0\0" + pub const fn spec_xdr_del() -> [u8; Contract::__SPEC_XDR_VIEW_del.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_del.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contracttrait_impl_full_tests.rs b/tests-expanded/test_contracttrait_impl_full_tests.rs index 2d019339f..9fd36f401 100644 --- a/tests-expanded/test_contracttrait_impl_full_tests.rs +++ b/tests-expanded/test_contracttrait_impl_full_tests.rs @@ -1206,14 +1206,33 @@ pub mod __Contract__test_u32__spec { #[allow(non_upper_case_globals)] /// Test u32 values. /// Returns the input unchanged. - pub static __SPEC_XDR_FN_TEST_U32: [u8; 96usize] = super::Contract::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::Contract::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::Contract::spec_xdr_test_u32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; Contract::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -1224,13 +1243,29 @@ pub mod __Contract__test_i32__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] /// Test i32 values. - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = super::Contract::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::Contract::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::Contract::spec_xdr_test_i32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; Contract::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -1239,12 +1274,27 @@ pub mod __Contract__test_u64__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = super::Contract::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::Contract::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::Contract::spec_xdr_test_u64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; Contract::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -1253,12 +1303,27 @@ pub mod __Contract__test_i64__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = super::Contract::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::Contract::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::Contract::spec_xdr_test_i64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; Contract::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -1267,12 +1332,27 @@ pub mod __Contract__test_u128__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = super::Contract::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::Contract::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::Contract::spec_xdr_test_u128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128() -> [u8; Contract::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -1281,12 +1361,27 @@ pub mod __Contract__test_i128__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = super::Contract::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::Contract::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::Contract::spec_xdr_test_i128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128() -> [u8; Contract::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -1295,12 +1390,27 @@ pub mod __Contract__test_bool__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = super::Contract::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::Contract::spec_xdr_test_bool(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool() -> [u8; Contract::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -1309,12 +1419,32 @@ pub mod __Contract__test_address__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = super::Contract::spec_xdr_test_address(); + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; super::Contract::__SPEC_XDR_VIEW_test_address + .const_xdr_len()] = super::Contract::spec_xdr_test_address(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -1323,12 +1453,28 @@ pub mod __Contract__test_bytes__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = super::Contract::spec_xdr_test_bytes(); + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes() -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -1337,12 +1483,36 @@ pub mod __Contract__test_bytes_n__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = super::Contract::spec_xdr_test_bytes_n(); + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes_n + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes_n(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -1351,12 +1521,32 @@ pub mod __Contract__test_string__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = super::Contract::spec_xdr_test_string(); + pub static __SPEC_XDR_FN_TEST_STRING: [u8; super::Contract::__SPEC_XDR_VIEW_test_string + .const_xdr_len()] = super::Contract::spec_xdr_test_string(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -1365,12 +1555,32 @@ pub mod __Contract__test_symbol__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = super::Contract::spec_xdr_test_symbol(); + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_symbol + .const_xdr_len()] = super::Contract::spec_xdr_test_symbol(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -1379,12 +1589,35 @@ pub mod __Contract__test_vec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = super::Contract::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::Contract::spec_xdr_test_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; Contract::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -1393,12 +1626,37 @@ pub mod __Contract__test_map__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = super::Contract::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::Contract::spec_xdr_test_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; Contract::__SPEC_XDR_VIEW_test_map.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -1407,13 +1665,32 @@ pub mod __Contract__test_duration__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = - super::Contract::spec_xdr_test_duration(); + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; super::Contract::__SPEC_XDR_VIEW_test_duration + .const_xdr_len()] = super::Contract::spec_xdr_test_duration(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -1422,13 +1699,32 @@ pub mod __Contract__test_timepoint__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = - super::Contract::spec_xdr_test_timepoint(); + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; super::Contract::__SPEC_XDR_VIEW_test_timepoint + .const_xdr_len()] = super::Contract::spec_xdr_test_timepoint(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -1437,12 +1733,27 @@ pub mod __Contract__test_i256__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = super::Contract::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::Contract::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::Contract::spec_xdr_test_i256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256() -> [u8; Contract::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -1451,12 +1762,27 @@ pub mod __Contract__test_u256__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = super::Contract::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::Contract::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::Contract::spec_xdr_test_u256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256() -> [u8; Contract::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -1465,13 +1791,24 @@ pub mod __Contract__test_env_param__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = - super::Contract::spec_xdr_test_env_param(); + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; super::Contract::__SPEC_XDR_VIEW_test_env_param + .const_xdr_len()] = super::Contract::spec_xdr_test_env_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -1480,12 +1817,38 @@ pub mod __Contract__test_struct__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = super::Contract::spec_xdr_test_struct(); + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; super::Contract::__SPEC_XDR_VIEW_test_struct + .const_xdr_len()] = super::Contract::spec_xdr_test_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } #[doc(hidden)] @@ -1494,13 +1857,38 @@ pub mod __Contract__test_enum_unit__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = - super::Contract::spec_xdr_test_enum_unit(); + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; super::Contract::__SPEC_XDR_VIEW_test_enum_unit + .const_xdr_len()] = super::Contract::spec_xdr_test_enum_unit(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -1509,13 +1897,39 @@ pub mod __Contract__test_enum_variants__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::Contract::spec_xdr_test_enum_variants(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contracttrait_impl_full_wasm32v1-none.rs b/tests-expanded/test_contracttrait_impl_full_wasm32v1-none.rs index 94943beef..094a98804 100644 --- a/tests-expanded/test_contracttrait_impl_full_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_impl_full_wasm32v1-none.rs @@ -696,14 +696,33 @@ pub mod __Contract__test_u32__spec { /// Test u32 values. /// Returns the input unchanged. #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U32: [u8; 96usize] = super::Contract::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::Contract::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::Contract::spec_xdr_test_u32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; Contract::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -715,13 +734,29 @@ pub mod __Contract__test_i32__spec { #[allow(non_upper_case_globals)] /// Test i32 values. #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = super::Contract::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::Contract::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::Contract::spec_xdr_test_i32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; Contract::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -731,12 +766,27 @@ pub mod __Contract__test_u64__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = super::Contract::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::Contract::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::Contract::spec_xdr_test_u64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; Contract::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -746,12 +796,27 @@ pub mod __Contract__test_i64__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = super::Contract::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::Contract::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::Contract::spec_xdr_test_i64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; Contract::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -761,12 +826,27 @@ pub mod __Contract__test_u128__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = super::Contract::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::Contract::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::Contract::spec_xdr_test_u128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128() -> [u8; Contract::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -776,12 +856,27 @@ pub mod __Contract__test_i128__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = super::Contract::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::Contract::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::Contract::spec_xdr_test_i128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128() -> [u8; Contract::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -791,12 +886,27 @@ pub mod __Contract__test_bool__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = super::Contract::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::Contract::spec_xdr_test_bool(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool() -> [u8; Contract::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -806,12 +916,32 @@ pub mod __Contract__test_address__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = super::Contract::spec_xdr_test_address(); + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; super::Contract::__SPEC_XDR_VIEW_test_address + .const_xdr_len()] = super::Contract::spec_xdr_test_address(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -821,12 +951,28 @@ pub mod __Contract__test_bytes__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = super::Contract::spec_xdr_test_bytes(); + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes() -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -836,12 +982,36 @@ pub mod __Contract__test_bytes_n__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = super::Contract::spec_xdr_test_bytes_n(); + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes_n + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes_n(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -851,12 +1021,32 @@ pub mod __Contract__test_string__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = super::Contract::spec_xdr_test_string(); + pub static __SPEC_XDR_FN_TEST_STRING: [u8; super::Contract::__SPEC_XDR_VIEW_test_string + .const_xdr_len()] = super::Contract::spec_xdr_test_string(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -866,12 +1056,32 @@ pub mod __Contract__test_symbol__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = super::Contract::spec_xdr_test_symbol(); + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_symbol + .const_xdr_len()] = super::Contract::spec_xdr_test_symbol(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -881,12 +1091,35 @@ pub mod __Contract__test_vec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = super::Contract::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::Contract::spec_xdr_test_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; Contract::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -896,12 +1129,37 @@ pub mod __Contract__test_map__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = super::Contract::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::Contract::spec_xdr_test_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; Contract::__SPEC_XDR_VIEW_test_map.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -911,13 +1169,32 @@ pub mod __Contract__test_duration__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = - super::Contract::spec_xdr_test_duration(); + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; super::Contract::__SPEC_XDR_VIEW_test_duration + .const_xdr_len()] = super::Contract::spec_xdr_test_duration(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -927,13 +1204,32 @@ pub mod __Contract__test_timepoint__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = - super::Contract::spec_xdr_test_timepoint(); + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; super::Contract::__SPEC_XDR_VIEW_test_timepoint + .const_xdr_len()] = super::Contract::spec_xdr_test_timepoint(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -943,12 +1239,27 @@ pub mod __Contract__test_i256__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = super::Contract::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::Contract::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::Contract::spec_xdr_test_i256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256() -> [u8; Contract::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -958,12 +1269,27 @@ pub mod __Contract__test_u256__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = super::Contract::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::Contract::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::Contract::spec_xdr_test_u256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256() -> [u8; Contract::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -973,13 +1299,24 @@ pub mod __Contract__test_env_param__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = - super::Contract::spec_xdr_test_env_param(); + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; super::Contract::__SPEC_XDR_VIEW_test_env_param + .const_xdr_len()] = super::Contract::spec_xdr_test_env_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -989,12 +1326,38 @@ pub mod __Contract__test_struct__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = super::Contract::spec_xdr_test_struct(); + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; super::Contract::__SPEC_XDR_VIEW_test_struct + .const_xdr_len()] = super::Contract::spec_xdr_test_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } #[doc(hidden)] @@ -1004,13 +1367,38 @@ pub mod __Contract__test_enum_unit__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = - super::Contract::spec_xdr_test_enum_unit(); + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; super::Contract::__SPEC_XDR_VIEW_test_enum_unit + .const_xdr_len()] = super::Contract::spec_xdr_test_enum_unit(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -1020,13 +1408,39 @@ pub mod __Contract__test_enum_variants__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::Contract::spec_xdr_test_enum_variants(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contracttrait_impl_partial_tests.rs b/tests-expanded/test_contracttrait_impl_partial_tests.rs index 311066d7c..ddf1cef1a 100644 --- a/tests-expanded/test_contracttrait_impl_partial_tests.rs +++ b/tests-expanded/test_contracttrait_impl_partial_tests.rs @@ -163,12 +163,27 @@ pub mod __Contract__test_u32__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U32: [u8; 48usize] = super::Contract::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::Contract::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::Contract::spec_xdr_test_u32(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u32() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; Contract::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -177,12 +192,32 @@ pub mod __Contract__test_string__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = super::Contract::spec_xdr_test_string(); + pub static __SPEC_XDR_FN_TEST_STRING: [u8; super::Contract::__SPEC_XDR_VIEW_test_string + .const_xdr_len()] = super::Contract::spec_xdr_test_string(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -191,13 +226,24 @@ pub mod __Contract__test_env_param__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = - super::Contract::spec_xdr_test_env_param(); + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; super::Contract::__SPEC_XDR_VIEW_test_env_param + .const_xdr_len()] = super::Contract::spec_xdr_test_env_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -206,12 +252,38 @@ pub mod __Contract__test_struct__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = super::Contract::spec_xdr_test_struct(); + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; super::Contract::__SPEC_XDR_VIEW_test_struct + .const_xdr_len()] = super::Contract::spec_xdr_test_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -1594,13 +1666,29 @@ pub mod __Contract__test_i32__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] /// Test i32 values. - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = super::Contract::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::Contract::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::Contract::spec_xdr_test_i32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; Contract::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -1609,12 +1697,27 @@ pub mod __Contract__test_u64__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = super::Contract::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::Contract::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::Contract::spec_xdr_test_u64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; Contract::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -1623,12 +1726,27 @@ pub mod __Contract__test_i64__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = super::Contract::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::Contract::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::Contract::spec_xdr_test_i64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; Contract::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -1637,12 +1755,27 @@ pub mod __Contract__test_u128__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = super::Contract::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::Contract::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::Contract::spec_xdr_test_u128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128() -> [u8; Contract::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -1651,12 +1784,27 @@ pub mod __Contract__test_i128__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = super::Contract::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::Contract::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::Contract::spec_xdr_test_i128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128() -> [u8; Contract::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -1665,12 +1813,27 @@ pub mod __Contract__test_bool__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = super::Contract::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::Contract::spec_xdr_test_bool(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool() -> [u8; Contract::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -1679,12 +1842,32 @@ pub mod __Contract__test_address__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = super::Contract::spec_xdr_test_address(); + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; super::Contract::__SPEC_XDR_VIEW_test_address + .const_xdr_len()] = super::Contract::spec_xdr_test_address(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -1693,12 +1876,28 @@ pub mod __Contract__test_bytes__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = super::Contract::spec_xdr_test_bytes(); + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes() -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -1707,12 +1906,36 @@ pub mod __Contract__test_bytes_n__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = super::Contract::spec_xdr_test_bytes_n(); + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes_n + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes_n(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -1721,12 +1944,32 @@ pub mod __Contract__test_symbol__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = super::Contract::spec_xdr_test_symbol(); + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_symbol + .const_xdr_len()] = super::Contract::spec_xdr_test_symbol(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -1735,12 +1978,35 @@ pub mod __Contract__test_vec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = super::Contract::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::Contract::spec_xdr_test_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; Contract::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -1749,12 +2015,37 @@ pub mod __Contract__test_map__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = super::Contract::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::Contract::spec_xdr_test_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; Contract::__SPEC_XDR_VIEW_test_map.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -1763,13 +2054,32 @@ pub mod __Contract__test_duration__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = - super::Contract::spec_xdr_test_duration(); + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; super::Contract::__SPEC_XDR_VIEW_test_duration + .const_xdr_len()] = super::Contract::spec_xdr_test_duration(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -1778,13 +2088,32 @@ pub mod __Contract__test_timepoint__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = - super::Contract::spec_xdr_test_timepoint(); + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; super::Contract::__SPEC_XDR_VIEW_test_timepoint + .const_xdr_len()] = super::Contract::spec_xdr_test_timepoint(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -1793,12 +2122,27 @@ pub mod __Contract__test_i256__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = super::Contract::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::Contract::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::Contract::spec_xdr_test_i256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256() -> [u8; Contract::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -1807,12 +2151,27 @@ pub mod __Contract__test_u256__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = super::Contract::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::Contract::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::Contract::spec_xdr_test_u256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256() -> [u8; Contract::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -1821,13 +2180,38 @@ pub mod __Contract__test_enum_unit__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = - super::Contract::spec_xdr_test_enum_unit(); + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; super::Contract::__SPEC_XDR_VIEW_test_enum_unit + .const_xdr_len()] = super::Contract::spec_xdr_test_enum_unit(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -1836,13 +2220,39 @@ pub mod __Contract__test_enum_variants__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::Contract::spec_xdr_test_enum_variants(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contracttrait_impl_partial_wasm32v1-none.rs b/tests-expanded/test_contracttrait_impl_partial_wasm32v1-none.rs index a289ea302..ef94ce230 100644 --- a/tests-expanded/test_contracttrait_impl_partial_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_impl_partial_wasm32v1-none.rs @@ -52,12 +52,27 @@ pub mod __Contract__test_u32__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U32: [u8; 48usize] = super::Contract::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::Contract::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::Contract::spec_xdr_test_u32(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u32() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; Contract::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -67,12 +82,32 @@ pub mod __Contract__test_string__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = super::Contract::spec_xdr_test_string(); + pub static __SPEC_XDR_FN_TEST_STRING: [u8; super::Contract::__SPEC_XDR_VIEW_test_string + .const_xdr_len()] = super::Contract::spec_xdr_test_string(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -82,13 +117,24 @@ pub mod __Contract__test_env_param__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = - super::Contract::spec_xdr_test_env_param(); + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; super::Contract::__SPEC_XDR_VIEW_test_env_param + .const_xdr_len()] = super::Contract::spec_xdr_test_env_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -98,12 +144,38 @@ pub mod __Contract__test_struct__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = super::Contract::spec_xdr_test_struct(); + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; super::Contract::__SPEC_XDR_VIEW_test_struct + .const_xdr_len()] = super::Contract::spec_xdr_test_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -902,13 +974,29 @@ pub mod __Contract__test_i32__spec { #[allow(non_upper_case_globals)] /// Test i32 values. #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = super::Contract::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::Contract::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::Contract::spec_xdr_test_i32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; Contract::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -918,12 +1006,27 @@ pub mod __Contract__test_u64__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = super::Contract::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::Contract::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::Contract::spec_xdr_test_u64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; Contract::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -933,12 +1036,27 @@ pub mod __Contract__test_i64__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = super::Contract::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::Contract::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::Contract::spec_xdr_test_i64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; Contract::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -948,12 +1066,27 @@ pub mod __Contract__test_u128__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = super::Contract::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::Contract::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::Contract::spec_xdr_test_u128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128() -> [u8; Contract::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -963,12 +1096,27 @@ pub mod __Contract__test_i128__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = super::Contract::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::Contract::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::Contract::spec_xdr_test_i128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128() -> [u8; Contract::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -978,12 +1126,27 @@ pub mod __Contract__test_bool__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = super::Contract::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::Contract::spec_xdr_test_bool(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool() -> [u8; Contract::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -993,12 +1156,32 @@ pub mod __Contract__test_address__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = super::Contract::spec_xdr_test_address(); + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; super::Contract::__SPEC_XDR_VIEW_test_address + .const_xdr_len()] = super::Contract::spec_xdr_test_address(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -1008,12 +1191,28 @@ pub mod __Contract__test_bytes__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = super::Contract::spec_xdr_test_bytes(); + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes() -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -1023,12 +1222,36 @@ pub mod __Contract__test_bytes_n__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = super::Contract::spec_xdr_test_bytes_n(); + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes_n + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes_n(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -1038,12 +1261,32 @@ pub mod __Contract__test_symbol__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = super::Contract::spec_xdr_test_symbol(); + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_symbol + .const_xdr_len()] = super::Contract::spec_xdr_test_symbol(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -1053,12 +1296,35 @@ pub mod __Contract__test_vec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = super::Contract::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::Contract::spec_xdr_test_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; Contract::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -1068,12 +1334,37 @@ pub mod __Contract__test_map__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = super::Contract::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::Contract::spec_xdr_test_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; Contract::__SPEC_XDR_VIEW_test_map.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -1083,13 +1374,32 @@ pub mod __Contract__test_duration__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = - super::Contract::spec_xdr_test_duration(); + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; super::Contract::__SPEC_XDR_VIEW_test_duration + .const_xdr_len()] = super::Contract::spec_xdr_test_duration(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -1099,13 +1409,32 @@ pub mod __Contract__test_timepoint__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = - super::Contract::spec_xdr_test_timepoint(); + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; super::Contract::__SPEC_XDR_VIEW_test_timepoint + .const_xdr_len()] = super::Contract::spec_xdr_test_timepoint(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -1115,12 +1444,27 @@ pub mod __Contract__test_i256__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = super::Contract::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::Contract::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::Contract::spec_xdr_test_i256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256() -> [u8; Contract::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -1130,12 +1474,27 @@ pub mod __Contract__test_u256__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = super::Contract::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::Contract::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::Contract::spec_xdr_test_u256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256() -> [u8; Contract::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -1145,13 +1504,38 @@ pub mod __Contract__test_enum_unit__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = - super::Contract::spec_xdr_test_enum_unit(); + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; super::Contract::__SPEC_XDR_VIEW_test_enum_unit + .const_xdr_len()] = super::Contract::spec_xdr_test_enum_unit(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -1161,13 +1545,39 @@ pub mod __Contract__test_enum_variants__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::Contract::spec_xdr_test_enum_variants(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_crate_tests.rs b/tests-expanded/test_contracttrait_path_crate_tests.rs index 0f58965d7..d719b9139 100644 --- a/tests-expanded/test_contracttrait_path_crate_tests.rs +++ b/tests-expanded/test_contracttrait_path_crate_tests.rs @@ -195,9 +195,22 @@ pub mod traits { } } impl CratePathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_crate_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"crate_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_crate_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11crate_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_crate_path_method( + ) -> [u8; CratePathTraitSpec::__SPEC_XDR_VIEW_crate_path_method.const_xdr_len()] { + CratePathTraitSpec::__SPEC_XDR_VIEW_crate_path_method.const_to_xdr() } } } @@ -385,13 +398,25 @@ pub mod __ContractCratePath__crate_path_method__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_CRATE_PATH_METHOD: [u8; 44usize] = + pub static __SPEC_XDR_FN_CRATE_PATH_METHOD: [u8; + super::ContractCratePath::__SPEC_XDR_VIEW_crate_path_method.const_xdr_len()] = super::ContractCratePath::spec_xdr_crate_path_method(); } impl ContractCratePath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_crate_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"crate_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_crate_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11crate_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_crate_path_method( + ) -> [u8; ContractCratePath::__SPEC_XDR_VIEW_crate_path_method.const_xdr_len()] { + ContractCratePath::__SPEC_XDR_VIEW_crate_path_method.const_to_xdr() } } impl<'a> ContractCratePathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_crate_wasm32v1-none.rs b/tests-expanded/test_contracttrait_path_crate_wasm32v1-none.rs index 3d6a6387d..233f7663c 100644 --- a/tests-expanded/test_contracttrait_path_crate_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_path_crate_wasm32v1-none.rs @@ -71,9 +71,22 @@ pub mod traits { } } impl CratePathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_crate_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"crate_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_crate_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11crate_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_crate_path_method( + ) -> [u8; CratePathTraitSpec::__SPEC_XDR_VIEW_crate_path_method.const_xdr_len()] { + CratePathTraitSpec::__SPEC_XDR_VIEW_crate_path_method.const_to_xdr() } } } @@ -130,13 +143,25 @@ pub mod __ContractCratePath__crate_path_method__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_CRATE_PATH_METHOD: [u8; 44usize] = + pub static __SPEC_XDR_FN_CRATE_PATH_METHOD: [u8; + super::ContractCratePath::__SPEC_XDR_VIEW_crate_path_method.const_xdr_len()] = super::ContractCratePath::spec_xdr_crate_path_method(); } impl ContractCratePath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_crate_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"crate_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_crate_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11crate_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_crate_path_method( + ) -> [u8; ContractCratePath::__SPEC_XDR_VIEW_crate_path_method.const_xdr_len()] { + ContractCratePath::__SPEC_XDR_VIEW_crate_path_method.const_to_xdr() } } impl<'a> ContractCratePathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_global_tests.rs b/tests-expanded/test_contracttrait_path_global_tests.rs index 0b938c86c..f8b65e918 100644 --- a/tests-expanded/test_contracttrait_path_global_tests.rs +++ b/tests-expanded/test_contracttrait_path_global_tests.rs @@ -1236,15 +1236,34 @@ pub mod __ContractGlobalPath__test_u32__spec { #[allow(non_upper_case_globals)] /// Test u32 values. /// Returns the input unchanged. - pub static __SPEC_XDR_FN_TEST_U32: [u8; 96usize] = - super::ContractGlobalPath::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u32(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -1255,14 +1274,30 @@ pub mod __ContractGlobalPath__test_i32__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] /// Test i32 values. - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = - super::ContractGlobalPath::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i32(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -1271,13 +1306,28 @@ pub mod __ContractGlobalPath__test_u64__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = - super::ContractGlobalPath::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u64(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -1286,13 +1336,28 @@ pub mod __ContractGlobalPath__test_i64__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = - super::ContractGlobalPath::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i64(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -1301,13 +1366,28 @@ pub mod __ContractGlobalPath__test_u128__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u128(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -1316,13 +1396,28 @@ pub mod __ContractGlobalPath__test_i128__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i128(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -1331,13 +1426,28 @@ pub mod __ContractGlobalPath__test_bool__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_bool(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -1346,13 +1456,33 @@ pub mod __ContractGlobalPath__test_address__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_address.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_address(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -1361,13 +1491,29 @@ pub mod __ContractGlobalPath__test_bytes__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_bytes(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -1376,13 +1522,37 @@ pub mod __ContractGlobalPath__test_bytes_n__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_bytes_n(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -1391,13 +1561,33 @@ pub mod __ContractGlobalPath__test_string__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_STRING: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_string.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_string(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -1406,13 +1596,33 @@ pub mod __ContractGlobalPath__test_symbol__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_symbol(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -1421,13 +1631,36 @@ pub mod __ContractGlobalPath__test_vec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = - super::ContractGlobalPath::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_vec(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -1436,13 +1669,38 @@ pub mod __ContractGlobalPath__test_map__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = - super::ContractGlobalPath::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_map(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_map.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -1451,13 +1709,33 @@ pub mod __ContractGlobalPath__test_duration__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_duration(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -1466,13 +1744,33 @@ pub mod __ContractGlobalPath__test_timepoint__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_timepoint(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -1481,13 +1779,28 @@ pub mod __ContractGlobalPath__test_i256__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i256(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -1496,13 +1809,28 @@ pub mod __ContractGlobalPath__test_u256__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u256(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -1511,13 +1839,25 @@ pub mod __ContractGlobalPath__test_env_param__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_env_param(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -1526,13 +1866,39 @@ pub mod __ContractGlobalPath__test_struct__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_struct(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } #[doc(hidden)] @@ -1541,13 +1907,39 @@ pub mod __ContractGlobalPath__test_enum_unit__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_enum_unit(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -1556,13 +1948,39 @@ pub mod __ContractGlobalPath__test_enum_variants__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_enum_variants(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractGlobalPathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_global_wasm32v1-none.rs b/tests-expanded/test_contracttrait_path_global_wasm32v1-none.rs index a0b1d0988..daad3eb90 100644 --- a/tests-expanded/test_contracttrait_path_global_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_path_global_wasm32v1-none.rs @@ -716,15 +716,34 @@ pub mod __ContractGlobalPath__test_u32__spec { /// Test u32 values. /// Returns the input unchanged. #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U32: [u8; 96usize] = - super::ContractGlobalPath::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u32(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -736,14 +755,30 @@ pub mod __ContractGlobalPath__test_i32__spec { #[allow(non_upper_case_globals)] /// Test i32 values. #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = - super::ContractGlobalPath::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i32(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -753,13 +788,28 @@ pub mod __ContractGlobalPath__test_u64__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = - super::ContractGlobalPath::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u64(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -769,13 +819,28 @@ pub mod __ContractGlobalPath__test_i64__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = - super::ContractGlobalPath::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i64(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -785,13 +850,28 @@ pub mod __ContractGlobalPath__test_u128__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u128(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -801,13 +881,28 @@ pub mod __ContractGlobalPath__test_i128__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i128(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -817,13 +912,28 @@ pub mod __ContractGlobalPath__test_bool__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_bool(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -833,13 +943,33 @@ pub mod __ContractGlobalPath__test_address__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_address.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_address(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -849,13 +979,29 @@ pub mod __ContractGlobalPath__test_bytes__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_bytes(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -865,13 +1011,37 @@ pub mod __ContractGlobalPath__test_bytes_n__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_bytes_n(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -881,13 +1051,33 @@ pub mod __ContractGlobalPath__test_string__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_STRING: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_string.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_string(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -897,13 +1087,33 @@ pub mod __ContractGlobalPath__test_symbol__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_symbol(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -913,13 +1123,36 @@ pub mod __ContractGlobalPath__test_vec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = - super::ContractGlobalPath::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_vec(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -929,13 +1162,38 @@ pub mod __ContractGlobalPath__test_map__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = - super::ContractGlobalPath::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_map(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_map.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -945,13 +1203,33 @@ pub mod __ContractGlobalPath__test_duration__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_duration(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -961,13 +1239,33 @@ pub mod __ContractGlobalPath__test_timepoint__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_timepoint(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -977,13 +1275,28 @@ pub mod __ContractGlobalPath__test_i256__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_i256(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -993,13 +1306,28 @@ pub mod __ContractGlobalPath__test_u256__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = - super::ContractGlobalPath::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::ContractGlobalPath::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_u256(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -1009,13 +1337,25 @@ pub mod __ContractGlobalPath__test_env_param__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_env_param(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -1025,13 +1365,39 @@ pub mod __ContractGlobalPath__test_struct__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_struct(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } #[doc(hidden)] @@ -1041,13 +1407,39 @@ pub mod __ContractGlobalPath__test_enum_unit__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_enum_unit(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -1057,13 +1449,39 @@ pub mod __ContractGlobalPath__test_enum_variants__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::ContractGlobalPath::spec_xdr_test_enum_variants(); } impl ContractGlobalPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + ContractGlobalPath::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractGlobalPathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_relative_tests.rs b/tests-expanded/test_contracttrait_path_relative_tests.rs index 4e37dbf50..cc512d1d8 100644 --- a/tests-expanded/test_contracttrait_path_relative_tests.rs +++ b/tests-expanded/test_contracttrait_path_relative_tests.rs @@ -195,9 +195,23 @@ pub mod traits { } } impl RelativePathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_relative_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"relative_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_relative_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14relative_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_relative_path_method( + ) -> [u8; RelativePathTraitSpec::__SPEC_XDR_VIEW_relative_path_method.const_xdr_len()] + { + RelativePathTraitSpec::__SPEC_XDR_VIEW_relative_path_method.const_to_xdr() } } } @@ -386,13 +400,25 @@ pub mod __ContractRelativePath__relative_path_method__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_RELATIVE_PATH_METHOD: [u8; 44usize] = + pub static __SPEC_XDR_FN_RELATIVE_PATH_METHOD: [u8; + super::ContractRelativePath::__SPEC_XDR_VIEW_relative_path_method.const_xdr_len()] = super::ContractRelativePath::spec_xdr_relative_path_method(); } impl ContractRelativePath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_relative_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"relative_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_relative_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14relative_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_relative_path_method( + ) -> [u8; ContractRelativePath::__SPEC_XDR_VIEW_relative_path_method.const_xdr_len()] { + ContractRelativePath::__SPEC_XDR_VIEW_relative_path_method.const_to_xdr() } } impl<'a> ContractRelativePathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_relative_wasm32v1-none.rs b/tests-expanded/test_contracttrait_path_relative_wasm32v1-none.rs index 3e9229463..4052b09b1 100644 --- a/tests-expanded/test_contracttrait_path_relative_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_path_relative_wasm32v1-none.rs @@ -71,9 +71,23 @@ pub mod traits { } } impl RelativePathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_relative_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"relative_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_relative_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14relative_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_relative_path_method( + ) -> [u8; RelativePathTraitSpec::__SPEC_XDR_VIEW_relative_path_method.const_xdr_len()] + { + RelativePathTraitSpec::__SPEC_XDR_VIEW_relative_path_method.const_to_xdr() } } } @@ -131,13 +145,25 @@ pub mod __ContractRelativePath__relative_path_method__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_RELATIVE_PATH_METHOD: [u8; 44usize] = + pub static __SPEC_XDR_FN_RELATIVE_PATH_METHOD: [u8; + super::ContractRelativePath::__SPEC_XDR_VIEW_relative_path_method.const_xdr_len()] = super::ContractRelativePath::spec_xdr_relative_path_method(); } impl ContractRelativePath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_relative_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"relative_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_relative_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14relative_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_relative_path_method( + ) -> [u8; ContractRelativePath::__SPEC_XDR_VIEW_relative_path_method.const_xdr_len()] { + ContractRelativePath::__SPEC_XDR_VIEW_relative_path_method.const_to_xdr() } } impl<'a> ContractRelativePathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_self_tests.rs b/tests-expanded/test_contracttrait_path_self_tests.rs index 16f4f52cd..5b7d66333 100644 --- a/tests-expanded/test_contracttrait_path_self_tests.rs +++ b/tests-expanded/test_contracttrait_path_self_tests.rs @@ -190,9 +190,20 @@ impl SelfPathTraitArgs { } } impl SelfPathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_self_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"self_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_self_path_method() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x10self_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_self_path_method( + ) -> [u8; SelfPathTraitSpec::__SPEC_XDR_VIEW_self_path_method.const_xdr_len()] { + SelfPathTraitSpec::__SPEC_XDR_VIEW_self_path_method.const_to_xdr() } } pub struct ContractSelfPath; @@ -377,13 +388,25 @@ pub mod __ContractSelfPath__self_path_method__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SELF_PATH_METHOD: [u8; 40usize] = + pub static __SPEC_XDR_FN_SELF_PATH_METHOD: [u8; + super::ContractSelfPath::__SPEC_XDR_VIEW_self_path_method.const_xdr_len()] = super::ContractSelfPath::spec_xdr_self_path_method(); } impl ContractSelfPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_self_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"self_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_self_path_method() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x10self_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_self_path_method( + ) -> [u8; ContractSelfPath::__SPEC_XDR_VIEW_self_path_method.const_xdr_len()] { + ContractSelfPath::__SPEC_XDR_VIEW_self_path_method.const_to_xdr() } } impl<'a> ContractSelfPathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_self_wasm32v1-none.rs b/tests-expanded/test_contracttrait_path_self_wasm32v1-none.rs index 53e81cac0..c5d282e73 100644 --- a/tests-expanded/test_contracttrait_path_self_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_path_self_wasm32v1-none.rs @@ -66,9 +66,20 @@ impl SelfPathTraitArgs { } } impl SelfPathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_self_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"self_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_self_path_method() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x10self_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_self_path_method( + ) -> [u8; SelfPathTraitSpec::__SPEC_XDR_VIEW_self_path_method.const_xdr_len()] { + SelfPathTraitSpec::__SPEC_XDR_VIEW_self_path_method.const_to_xdr() } } pub struct ContractSelfPath; @@ -122,13 +133,25 @@ pub mod __ContractSelfPath__self_path_method__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SELF_PATH_METHOD: [u8; 40usize] = + pub static __SPEC_XDR_FN_SELF_PATH_METHOD: [u8; + super::ContractSelfPath::__SPEC_XDR_VIEW_self_path_method.const_xdr_len()] = super::ContractSelfPath::spec_xdr_self_path_method(); } impl ContractSelfPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_self_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"self_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_self_path_method() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x10self_path_method\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_self_path_method( + ) -> [u8; ContractSelfPath::__SPEC_XDR_VIEW_self_path_method.const_xdr_len()] { + ContractSelfPath::__SPEC_XDR_VIEW_self_path_method.const_to_xdr() } } impl<'a> ContractSelfPathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_super_tests.rs b/tests-expanded/test_contracttrait_path_super_tests.rs index e42054fb0..e797d97be 100644 --- a/tests-expanded/test_contracttrait_path_super_tests.rs +++ b/tests-expanded/test_contracttrait_path_super_tests.rs @@ -190,9 +190,20 @@ impl SuperPathTraitArgs { } } impl SuperPathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_super_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"super_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_super_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11super_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_super_path_method( + ) -> [u8; SuperPathTraitSpec::__SPEC_XDR_VIEW_super_path_method.const_xdr_len()] { + SuperPathTraitSpec::__SPEC_XDR_VIEW_super_path_method.const_to_xdr() } } pub mod submodule { @@ -382,13 +393,27 @@ pub mod submodule { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SUPER_PATH_METHOD: [u8; 44usize] = + pub static __SPEC_XDR_FN_SUPER_PATH_METHOD: [u8; + super::ContractSuperPath::__SPEC_XDR_VIEW_super_path_method.const_xdr_len()] = super::ContractSuperPath::spec_xdr_super_path_method(); } impl ContractSuperPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_super_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"super_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_super_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11super_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_super_path_method( + ) -> [u8; ContractSuperPath::__SPEC_XDR_VIEW_super_path_method.const_xdr_len()] { + ContractSuperPath::__SPEC_XDR_VIEW_super_path_method.const_to_xdr() } } impl<'a> ContractSuperPathClient<'a> { diff --git a/tests-expanded/test_contracttrait_path_super_wasm32v1-none.rs b/tests-expanded/test_contracttrait_path_super_wasm32v1-none.rs index 712285024..80d54edfd 100644 --- a/tests-expanded/test_contracttrait_path_super_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_path_super_wasm32v1-none.rs @@ -66,9 +66,20 @@ impl SuperPathTraitArgs { } } impl SuperPathTraitSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_super_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"super_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_super_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11super_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_super_path_method( + ) -> [u8; SuperPathTraitSpec::__SPEC_XDR_VIEW_super_path_method.const_xdr_len()] { + SuperPathTraitSpec::__SPEC_XDR_VIEW_super_path_method.const_to_xdr() } } pub mod submodule { @@ -127,13 +138,27 @@ pub mod submodule { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SUPER_PATH_METHOD: [u8; 44usize] = + pub static __SPEC_XDR_FN_SUPER_PATH_METHOD: [u8; + super::ContractSuperPath::__SPEC_XDR_VIEW_super_path_method.const_xdr_len()] = super::ContractSuperPath::spec_xdr_super_path_method(); } impl ContractSuperPath { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_super_path_method: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"super_path_method", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_super_path_method() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11super_path_method\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_super_path_method( + ) -> [u8; ContractSuperPath::__SPEC_XDR_VIEW_super_path_method.const_xdr_len()] { + ContractSuperPath::__SPEC_XDR_VIEW_super_path_method.const_to_xdr() } } impl<'a> ContractSuperPathClient<'a> { diff --git a/tests-expanded/test_contracttrait_trait_tests.rs b/tests-expanded/test_contracttrait_trait_tests.rs index 5a2e70e16..2ac85e99d 100644 --- a/tests-expanded/test_contracttrait_trait_tests.rs +++ b/tests-expanded/test_contracttrait_trait_tests.rs @@ -49,10 +49,29 @@ impl ::core::cmp::PartialEq for MyStruct { self.a == other.a && self.b == other.b } } -pub static __SPEC_XDR_TYPE_MYSTRUCT: [u8; 60usize] = MyStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYSTRUCT: [u8; MyStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + MyStruct::spec_xdr(); impl MyStruct { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08MyStruct\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; MyStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + MyStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyStruct { @@ -467,10 +486,29 @@ impl ::core::cmp::PartialEq for MyEnumUnit { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_MYENUMUNIT: [u8; 64usize] = MyEnumUnit::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYENUMUNIT: [u8; MyEnumUnit::__SPEC_XDR_VIEW.const_xdr_len()] = + MyEnumUnit::spec_xdr(); impl MyEnumUnit { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\nMyEnumUnit\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; MyEnumUnit::__SPEC_XDR_VIEW.const_xdr_len()] { + MyEnumUnit::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyEnumUnit { @@ -817,10 +855,51 @@ impl ::core::cmp::PartialEq for MyEnumVariants { } } } -pub static __SPEC_XDR_TYPE_MYENUMVARIANTS: [u8; 128usize] = MyEnumVariants::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYENUMVARIANTS: [u8; MyEnumVariants::__SPEC_XDR_VIEW.const_xdr_len()] = + MyEnumVariants::spec_xdr(); impl MyEnumVariants { - pub const fn spec_xdr() -> [u8; 128usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04VarA\0\0\0\x01\0\0\0\0\0\0\0\x04VarB\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\0\0\0\0\0\x04VarC\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"VarA"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"VarB"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"VarC"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; MyEnumVariants::__SPEC_XDR_VIEW.const_xdr_len()] { + MyEnumVariants::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyEnumVariants { @@ -3333,138 +3412,545 @@ impl AllTypesArgs { } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_map.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } mod test { @@ -4669,14 +5155,38 @@ mod test { #[allow(non_upper_case_globals)] /// Test u32 values. /// Returns the input unchanged. - pub static __SPEC_XDR_FN_TEST_U32: [u8; 96usize] = super::Contract::spec_xdr_test_u32(); + pub static __SPEC_XDR_FN_TEST_U32: [u8; super::Contract::__SPEC_XDR_VIEW_test_u32 + .const_xdr_len()] = super::Contract::spec_xdr_test_u32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_u32", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; Contract::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } #[doc(hidden)] @@ -4687,13 +5197,34 @@ mod test { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] /// Test i32 values. - pub static __SPEC_XDR_FN_TEST_I32: [u8; 64usize] = super::Contract::spec_xdr_test_i32(); + pub static __SPEC_XDR_FN_TEST_I32: [u8; super::Contract::__SPEC_XDR_VIEW_test_i32 + .const_xdr_len()] = super::Contract::spec_xdr_test_i32(); } impl Contract { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_i32", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I32, + ]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; Contract::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } #[doc(hidden)] @@ -4702,12 +5233,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U64: [u8; 48usize] = super::Contract::spec_xdr_test_u64(); + pub static __SPEC_XDR_FN_TEST_U64: [u8; super::Contract::__SPEC_XDR_VIEW_test_u64 + .const_xdr_len()] = super::Contract::spec_xdr_test_u64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_u64", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U64, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; Contract::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } #[doc(hidden)] @@ -4716,12 +5267,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I64: [u8; 48usize] = super::Contract::spec_xdr_test_i64(); + pub static __SPEC_XDR_FN_TEST_I64: [u8; super::Contract::__SPEC_XDR_VIEW_test_i64 + .const_xdr_len()] = super::Contract::spec_xdr_test_i64(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_i64", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; Contract::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } #[doc(hidden)] @@ -4730,12 +5301,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U128: [u8; 52usize] = super::Contract::spec_xdr_test_u128(); + pub static __SPEC_XDR_FN_TEST_U128: [u8; super::Contract::__SPEC_XDR_VIEW_test_u128 + .const_xdr_len()] = super::Contract::spec_xdr_test_u128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_u128", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U128, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } #[doc(hidden)] @@ -4744,12 +5335,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I128: [u8; 52usize] = super::Contract::spec_xdr_test_i128(); + pub static __SPEC_XDR_FN_TEST_I128: [u8; super::Contract::__SPEC_XDR_VIEW_test_i128 + .const_xdr_len()] = super::Contract::spec_xdr_test_i128(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_i128", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I128, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } #[doc(hidden)] @@ -4758,12 +5369,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BOOL: [u8; 52usize] = super::Contract::spec_xdr_test_bool(); + pub static __SPEC_XDR_FN_TEST_BOOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_bool + .const_xdr_len()] = super::Contract::spec_xdr_test_bool(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bool", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Bool, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } #[doc(hidden)] @@ -4772,13 +5403,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; 52usize] = - super::Contract::spec_xdr_test_address(); + pub static __SPEC_XDR_FN_TEST_ADDRESS: [u8; super::Contract::__SPEC_XDR_VIEW_test_address + .const_xdr_len()] = super::Contract::spec_xdr_test_address(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } #[doc(hidden)] @@ -4787,12 +5437,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES: [u8; 52usize] = super::Contract::spec_xdr_test_bytes(); + pub static __SPEC_XDR_FN_TEST_BYTES: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } #[doc(hidden)] @@ -4801,13 +5471,36 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; 60usize] = - super::Contract::spec_xdr_test_bytes_n(); + pub static __SPEC_XDR_FN_TEST_BYTES_N: [u8; super::Contract::__SPEC_XDR_VIEW_test_bytes_n + .const_xdr_len()] = super::Contract::spec_xdr_test_bytes_n(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } #[doc(hidden)] @@ -4816,13 +5509,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRING: [u8; 52usize] = - super::Contract::spec_xdr_test_string(); + pub static __SPEC_XDR_FN_TEST_STRING: [u8; super::Contract::__SPEC_XDR_VIEW_test_string + .const_xdr_len()] = super::Contract::spec_xdr_test_string(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } #[doc(hidden)] @@ -4831,13 +5543,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; 52usize] = - super::Contract::spec_xdr_test_symbol(); + pub static __SPEC_XDR_FN_TEST_SYMBOL: [u8; super::Contract::__SPEC_XDR_VIEW_test_symbol + .const_xdr_len()] = super::Contract::spec_xdr_test_symbol(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } #[doc(hidden)] @@ -4846,12 +5577,40 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_VEC: [u8; 56usize] = super::Contract::spec_xdr_test_vec(); + pub static __SPEC_XDR_FN_TEST_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_test_vec + .const_xdr_len()] = super::Contract::spec_xdr_test_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_vec", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; Contract::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } #[doc(hidden)] @@ -4860,12 +5619,42 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_MAP: [u8; 64usize] = super::Contract::spec_xdr_test_map(); + pub static __SPEC_XDR_FN_TEST_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_test_map + .const_xdr_len()] = super::Contract::spec_xdr_test_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_map", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; Contract::__SPEC_XDR_VIEW_test_map.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } #[doc(hidden)] @@ -4874,13 +5663,33 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_DURATION: [u8; 56usize] = + pub static __SPEC_XDR_FN_TEST_DURATION: [u8; + super::Contract::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] = super::Contract::spec_xdr_test_duration(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } #[doc(hidden)] @@ -4889,13 +5698,33 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; 56usize] = + pub static __SPEC_XDR_FN_TEST_TIMEPOINT: [u8; + super::Contract::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] = super::Contract::spec_xdr_test_timepoint(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } #[doc(hidden)] @@ -4904,12 +5733,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_I256: [u8; 52usize] = super::Contract::spec_xdr_test_i256(); + pub static __SPEC_XDR_FN_TEST_I256: [u8; super::Contract::__SPEC_XDR_VIEW_test_i256 + .const_xdr_len()] = super::Contract::spec_xdr_test_i256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_i256", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I256, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } #[doc(hidden)] @@ -4918,12 +5767,32 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_U256: [u8; 52usize] = super::Contract::spec_xdr_test_u256(); + pub static __SPEC_XDR_FN_TEST_U256: [u8; super::Contract::__SPEC_XDR_VIEW_test_u256 + .const_xdr_len()] = super::Contract::spec_xdr_test_u256(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_u256", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U256, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } #[doc(hidden)] @@ -4932,13 +5801,27 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; 40usize] = + pub static __SPEC_XDR_FN_TEST_ENV_PARAM: [u8; + super::Contract::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] = super::Contract::spec_xdr_test_env_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } #[doc(hidden)] @@ -4947,13 +5830,38 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; 76usize] = - super::Contract::spec_xdr_test_struct(); + pub static __SPEC_XDR_FN_TEST_STRUCT: [u8; super::Contract::__SPEC_XDR_VIEW_test_struct + .const_xdr_len()] = super::Contract::spec_xdr_test_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt(soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } #[doc(hidden)] @@ -4962,13 +5870,39 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; 88usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_UNIT: [u8; + super::Contract::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] = super::Contract::spec_xdr_test_enum_unit(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt(soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } #[doc(hidden)] @@ -4977,13 +5911,39 @@ mod test { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; 100usize] = + pub static __SPEC_XDR_FN_TEST_ENUM_VARIANTS: [u8; + super::Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] = super::Contract::spec_xdr_test_enum_variants(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt(soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; Contract::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs b/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs index e7f522f19..62450e730 100644 --- a/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs @@ -50,10 +50,29 @@ impl ::core::cmp::PartialEq for MyStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_MYSTRUCT: [u8; 60usize] = MyStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYSTRUCT: [u8; MyStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + MyStruct::spec_xdr(); impl MyStruct { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08MyStruct\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; MyStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + MyStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyStruct { @@ -63,7 +82,7 @@ impl soroban_sdk::SpecShakingMarker for MyStruct { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x08\xd4\xa7b\xae1|\xdd"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&MyStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -163,10 +182,29 @@ impl ::core::cmp::PartialEq for MyEnumUnit { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_MYENUMUNIT: [u8; 64usize] = MyEnumUnit::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYENUMUNIT: [u8; MyEnumUnit::__SPEC_XDR_VIEW.const_xdr_len()] = + MyEnumUnit::spec_xdr(); impl MyEnumUnit { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\nMyEnumUnit\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; MyEnumUnit::__SPEC_XDR_VIEW.const_xdr_len()] { + MyEnumUnit::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyEnumUnit { @@ -174,7 +212,7 @@ impl soroban_sdk::SpecShakingMarker for MyEnumUnit { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV12E\x1b4\x1c\x83\xab\xeb"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&MyEnumUnit::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -284,10 +322,51 @@ impl ::core::cmp::PartialEq for MyEnumVariants { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_MYENUMVARIANTS: [u8; 128usize] = MyEnumVariants::spec_xdr(); +pub static __SPEC_XDR_TYPE_MYENUMVARIANTS: [u8; MyEnumVariants::__SPEC_XDR_VIEW.const_xdr_len()] = + MyEnumVariants::spec_xdr(); impl MyEnumVariants { - pub const fn spec_xdr() -> [u8; 128usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04VarA\0\0\0\x01\0\0\0\0\0\0\0\x04VarB\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\0\0\0\0\0\x04VarC\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"VarA"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"VarB"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"VarC"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; MyEnumVariants::__SPEC_XDR_VIEW.const_xdr_len()] { + MyEnumVariants::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyEnumVariants { @@ -297,7 +376,7 @@ impl soroban_sdk::SpecShakingMarker for MyEnumVariants { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xceHo\xd4mpUm"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&MyEnumVariants::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1283,137 +1362,544 @@ impl AllTypesArgs { } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + /// Test u32 values. + /// Returns the input unchanged. + const __SPEC_XDR_VIEW_test_u32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new( + b"Test u32 values.\nReturns the input unchanged.", + ), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] /// Test u32 values. /// Returns the input unchanged. - pub const fn spec_xdr_test_u32() -> [u8; 96usize] { - *b"\0\0\0\0\0\0\0-Test u32 values.\nReturns the input unchanged.\0\0\0\0\0\0\x08test_u32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_u32() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u32.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_u32.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + /// Test i32 values. + const __SPEC_XDR_VIEW_test_i32: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b"Test i32 values."), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i32")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] /// Test i32 values. - pub const fn spec_xdr_test_i32() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\x10Test i32 values.\0\0\0\x08test_i32\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_test_i32() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i32.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_i32.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_u64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_test_u64() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u64.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_u64.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i64: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i64")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i64() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_i64\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x07\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_test_i64() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i64.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_i64.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\n\0\0\0\x01\0\0\0\n" + pub const fn spec_xdr_test_u128( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u128.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_u128.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i128: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i128")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I128]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i128() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i128\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0b\0\0\0\x01\0\0\0\x0b" + pub const fn spec_xdr_test_i128( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i128.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_i128.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bool: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bool")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bool() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_bool\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x01\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_test_bool( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_bool.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_bool.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_address: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_address", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Address, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_address() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_address\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x13\0\0\0\x01\0\0\0\x13" + pub const fn spec_xdr_test_address( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_address.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_address.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_bytes")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bytes, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bytes]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ntest_bytes\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0e\0\0\0\x01\0\0\0\x0e" + pub const fn spec_xdr_test_bytes( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_bytes.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_bytes.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_bytes_n: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_bytes_n", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN(soroban_sdk::xdr::ScSpecTypeBytesN { + n: 32u32, + }), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_bytes_n() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ctest_bytes_n\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xee\0\0\0 \0\0\0\x01\0\0\x03\xee\0\0\0 " + pub const fn spec_xdr_test_bytes_n( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_bytes_n.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_bytes_n.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_string: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_string", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::String, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_string() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_string\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x10\0\0\0\x01\0\0\0\x10" + pub const fn spec_xdr_test_string( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_string.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_string.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_symbol: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_symbol", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_symbol() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_symbol\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x11\0\0\0\x01\0\0\0\x11" + pub const fn spec_xdr_test_symbol( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_symbol.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_symbol.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_vec() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\x01\0\0\x03\xea\0\0\0\x04" + pub const fn spec_xdr_test_vec() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_vec.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_vec.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_map() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08test_map\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\0\x04\0\0\0\x01\0\0\x03\xec\0\0\0\x04\0\0\0\x04" + pub const fn spec_xdr_test_map() -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_map.const_xdr_len()] + { + AllTypesSpec::__SPEC_XDR_VIEW_test_map.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_duration: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_duration", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Duration, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Duration, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_duration() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rtest_duration\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\t\0\0\0\x01\0\0\0\t" + pub const fn spec_xdr_test_duration( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_duration.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_duration.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_timepoint: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_timepoint", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Timepoint, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_timepoint() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_timepoint\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x08\0\0\0\x01\0\0\0\x08" + pub const fn spec_xdr_test_timepoint( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_timepoint.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_timepoint.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_i256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_i256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_i256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_i256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\r\0\0\0\x01\0\0\0\r" + pub const fn spec_xdr_test_i256( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_i256.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_i256.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_u256: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"test_u256")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U256]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_u256() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\ttest_u256\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x0c\0\0\0\x01\0\0\0\x0c" + pub const fn spec_xdr_test_u256( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_u256.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_u256.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_env_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_env_param", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_env_param() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_env_param\0\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_test_env_param( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_env_param.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_env_param.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyStruct"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_struct() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0btest_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct" + pub const fn spec_xdr_test_struct( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_struct.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_struct.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_unit: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_unit", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumUnit"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_unit() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0etest_enum_unit\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" + pub const fn spec_xdr_test_enum_unit( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_enum_unit.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_enum_unit.const_to_xdr() } } impl AllTypesSpec { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_test_enum_variants: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"test_enum_variants", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"MyEnumVariants"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_test_enum_variants() -> [u8; 100usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12test_enum_variants\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eMyEnumVariants\0\0" + pub const fn spec_xdr_test_enum_variants( + ) -> [u8; AllTypesSpec::__SPEC_XDR_VIEW_test_enum_variants.const_xdr_len()] { + AllTypesSpec::__SPEC_XDR_VIEW_test_enum_variants.const_to_xdr() } } diff --git a/tests-expanded/test_empty_tests.rs b/tests-expanded/test_empty_tests.rs index e5a416219..4a58f8085 100644 --- a/tests-expanded/test_empty_tests.rs +++ b/tests-expanded/test_empty_tests.rs @@ -145,12 +145,21 @@ pub mod __Contract__empty__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EMPTY: [u8; 28usize] = super::Contract::spec_xdr_empty(); + pub static __SPEC_XDR_FN_EMPTY: [u8; super::Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] = + super::Contract::spec_xdr_empty(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05empty\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty() -> [u8; Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_empty_wasm32v1-none.rs b/tests-expanded/test_empty_wasm32v1-none.rs index 2d08f7afd..64f018f68 100644 --- a/tests-expanded/test_empty_wasm32v1-none.rs +++ b/tests-expanded/test_empty_wasm32v1-none.rs @@ -34,12 +34,21 @@ pub mod __Contract__empty__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EMPTY: [u8; 28usize] = super::Contract::spec_xdr_empty(); + pub static __SPEC_XDR_FN_EMPTY: [u8; super::Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] = + super::Contract::spec_xdr_empty(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05empty\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty() -> [u8; Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_errors_tests.rs b/tests-expanded/test_errors_tests.rs index 4d2180db1..a0b8a13b9 100644 --- a/tests-expanded/test_errors_tests.rs +++ b/tests-expanded/test_errors_tests.rs @@ -157,10 +157,43 @@ impl ::core::cmp::PartialEq for Flag { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_FLAG: [u8; 104usize] = Flag::spec_xdr(); +pub static __SPEC_XDR_TYPE_FLAG: [u8; Flag::__SPEC_XDR_VIEW.const_xdr_len()] = Flag::spec_xdr(); impl Flag { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04Flag\0\0\0\x05\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01C\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01D\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01E\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Flag"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 0u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"C"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"D"), + value: 3u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E"), + value: 4u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; Flag::__SPEC_XDR_VIEW.const_xdr_len()] { + Flag::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Flag { @@ -504,10 +537,25 @@ impl ::core::cmp::PartialEq for Error { true } } -pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07AnError\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"AnError"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -669,12 +717,38 @@ pub mod __Contract__hello__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_HELLO: [u8; 64usize] = super::Contract::spec_xdr_hello(); + pub static __SPEC_XDR_FN_HELLO: [u8; super::Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] = + super::Contract::spec_xdr_hello(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_hello: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"hello")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"flag"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Flag"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_hello() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05hello\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04flag\0\0\x07\xd0\0\0\0\x04Flag\0\0\0\x01\0\0\x03\xe9\0\0\0\x11\0\0\0\x03" + pub const fn spec_xdr_hello() -> [u8; Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_hello.const_to_xdr() } } #[doc(hidden)] @@ -683,12 +757,21 @@ pub mod __Contract__persisted__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PERSISTED: [u8; 36usize] = super::Contract::spec_xdr_persisted(); + pub static __SPEC_XDR_FN_PERSISTED: [u8; super::Contract::__SPEC_XDR_VIEW_persisted + .const_xdr_len()] = super::Contract::spec_xdr_persisted(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_persisted: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"persisted")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Bool]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_persisted() -> [u8; 36usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\tpersisted\0\0\0\0\0\0\0\0\0\0\x01\0\0\0\x01" + pub const fn spec_xdr_persisted() -> [u8; Contract::__SPEC_XDR_VIEW_persisted.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_persisted.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_errors_wasm32v1-none.rs b/tests-expanded/test_errors_wasm32v1-none.rs index f4028073e..847b55bb3 100644 --- a/tests-expanded/test_errors_wasm32v1-none.rs +++ b/tests-expanded/test_errors_wasm32v1-none.rs @@ -46,10 +46,43 @@ impl ::core::cmp::PartialEq for Flag { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_FLAG: [u8; 104usize] = Flag::spec_xdr(); +pub static __SPEC_XDR_TYPE_FLAG: [u8; Flag::__SPEC_XDR_VIEW.const_xdr_len()] = Flag::spec_xdr(); impl Flag { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04Flag\0\0\0\x05\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01C\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01D\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01E\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Flag"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 0u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"C"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"D"), + value: 3u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E"), + value: 4u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; Flag::__SPEC_XDR_VIEW.const_xdr_len()] { + Flag::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Flag { @@ -57,7 +90,7 @@ impl soroban_sdk::SpecShakingMarker for Flag { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1g\x19\x8d\xc6\x8aP\xeb\xb7"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Flag::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -134,10 +167,25 @@ impl ::core::cmp::PartialEq for Error { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07AnError\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"AnError"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -145,7 +193,7 @@ impl soroban_sdk::SpecShakingMarker for Error { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xbc\x04\x04\xea\xa4\x9e6("; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Error::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -295,12 +343,38 @@ pub mod __Contract__hello__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_HELLO: [u8; 64usize] = super::Contract::spec_xdr_hello(); + pub static __SPEC_XDR_FN_HELLO: [u8; super::Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] = + super::Contract::spec_xdr_hello(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_hello: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"hello")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"flag"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Flag"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_hello() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05hello\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04flag\0\0\x07\xd0\0\0\0\x04Flag\0\0\0\x01\0\0\x03\xe9\0\0\0\x11\0\0\0\x03" + pub const fn spec_xdr_hello() -> [u8; Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_hello.const_to_xdr() } } impl Contract {} diff --git a/tests-expanded/test_events_ref_tests.rs b/tests-expanded/test_events_ref_tests.rs index 720ec4006..ffe8a326b 100644 --- a/tests-expanded/test_events_ref_tests.rs +++ b/tests-expanded/test_events_ref_tests.rs @@ -142,10 +142,51 @@ pub struct Transfer<'a> { amount: &'a i128, to_muxed_id: Option<&'a u64>, } -pub static __SPEC_XDR_EVENT_TRANSFER: [u8; 144usize] = Transfer::spec_xdr(); +pub static __SPEC_XDR_EVENT_TRANSFER: [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] = + Transfer::spec_xdr(); impl<'a> Transfer<'a> { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"Transfer")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"transfer"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to_muxed_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] { + Transfer::__SPEC_XDR_VIEW.const_to_xdr() } } impl<'a> soroban_sdk::SpecShakingMarker for Transfer<'a> { @@ -223,12 +264,37 @@ pub mod __Contract__transfer__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRANSFER: [u8; 80usize] = super::Contract::spec_xdr_transfer(); + pub static __SPEC_XDR_FN_TRANSFER: [u8; super::Contract::__SPEC_XDR_VIEW_transfer + .const_xdr_len()] = super::Contract::spec_xdr_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"transfer")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::MuxedAddress, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_transfer() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08transfer\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x14\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_transfer() -> [u8; Contract::__SPEC_XDR_VIEW_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_transfer.const_to_xdr() } } #[doc(hidden)] @@ -237,13 +303,41 @@ pub mod __Contract__failed_transfer__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; 88usize] = + pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; + super::Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] = super::Contract::spec_xdr_failed_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_failed_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"failed_transfer", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_failed_transfer() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ffailed_transfer\0\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_failed_transfer( + ) -> [u8; Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_failed_transfer.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_events_ref_wasm32v1-none.rs b/tests-expanded/test_events_ref_wasm32v1-none.rs index 97dafcbd9..81badcb1a 100644 --- a/tests-expanded/test_events_ref_wasm32v1-none.rs +++ b/tests-expanded/test_events_ref_wasm32v1-none.rs @@ -31,10 +31,51 @@ pub struct Transfer<'a> { to_muxed_id: Option<&'a u64>, } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_TRANSFER: [u8; 144usize] = Transfer::spec_xdr(); +pub static __SPEC_XDR_EVENT_TRANSFER: [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] = + Transfer::spec_xdr(); impl<'a> Transfer<'a> { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"Transfer")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"transfer"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to_muxed_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] { + Transfer::__SPEC_XDR_VIEW.const_to_xdr() } } impl<'a> soroban_sdk::SpecShakingMarker for Transfer<'a> { @@ -46,7 +87,7 @@ impl<'a> soroban_sdk::SpecShakingMarker for Transfer<'a> { <&'a i128 as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1;\xc1i\xa0H>\x8d\xf1"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Transfer::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -117,12 +158,37 @@ pub mod __Contract__transfer__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRANSFER: [u8; 80usize] = super::Contract::spec_xdr_transfer(); + pub static __SPEC_XDR_FN_TRANSFER: [u8; super::Contract::__SPEC_XDR_VIEW_transfer + .const_xdr_len()] = super::Contract::spec_xdr_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"transfer")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::MuxedAddress, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_transfer() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08transfer\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x14\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_transfer() -> [u8; Contract::__SPEC_XDR_VIEW_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_transfer.const_to_xdr() } } #[doc(hidden)] @@ -132,13 +198,41 @@ pub mod __Contract__failed_transfer__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; 88usize] = + pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; + super::Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] = super::Contract::spec_xdr_failed_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_failed_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"failed_transfer", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_failed_transfer() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ffailed_transfer\0\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_failed_transfer( + ) -> [u8; Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_failed_transfer.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_events_tests.rs b/tests-expanded/test_events_tests.rs index f95a79436..85ff4b3da 100644 --- a/tests-expanded/test_events_tests.rs +++ b/tests-expanded/test_events_tests.rs @@ -142,10 +142,51 @@ pub struct Transfer { amount: i128, to_muxed_id: Option, } -pub static __SPEC_XDR_EVENT_TRANSFER: [u8; 144usize] = Transfer::spec_xdr(); +pub static __SPEC_XDR_EVENT_TRANSFER: [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] = + Transfer::spec_xdr(); impl Transfer { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"Transfer")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"transfer"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to_muxed_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] { + Transfer::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Transfer { @@ -223,12 +264,37 @@ pub mod __Contract__transfer__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TRANSFER: [u8; 80usize] = super::Contract::spec_xdr_transfer(); + pub static __SPEC_XDR_FN_TRANSFER: [u8; super::Contract::__SPEC_XDR_VIEW_transfer + .const_xdr_len()] = super::Contract::spec_xdr_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"transfer")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::MuxedAddress, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_transfer() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08transfer\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x14\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_transfer() -> [u8; Contract::__SPEC_XDR_VIEW_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_transfer.const_to_xdr() } } #[doc(hidden)] @@ -237,13 +303,41 @@ pub mod __Contract__failed_transfer__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; 88usize] = + pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; + super::Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] = super::Contract::spec_xdr_failed_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_failed_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"failed_transfer", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_failed_transfer() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ffailed_transfer\0\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_failed_transfer( + ) -> [u8; Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_failed_transfer.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_events_wasm32v1-none.rs b/tests-expanded/test_events_wasm32v1-none.rs index c7693da03..bce402829 100644 --- a/tests-expanded/test_events_wasm32v1-none.rs +++ b/tests-expanded/test_events_wasm32v1-none.rs @@ -31,10 +31,51 @@ pub struct Transfer { to_muxed_id: Option, } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_TRANSFER: [u8; 144usize] = Transfer::spec_xdr(); +pub static __SPEC_XDR_EVENT_TRANSFER: [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] = + Transfer::spec_xdr(); impl Transfer { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"Transfer")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"transfer"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to_muxed_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; Transfer::__SPEC_XDR_VIEW.const_xdr_len()] { + Transfer::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Transfer { @@ -46,7 +87,7 @@ impl soroban_sdk::SpecShakingMarker for Transfer { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1;\xc1i\xa0H>\x8d\xf1"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Transfer::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -117,12 +158,37 @@ pub mod __Contract__transfer__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TRANSFER: [u8; 80usize] = super::Contract::spec_xdr_transfer(); + pub static __SPEC_XDR_FN_TRANSFER: [u8; super::Contract::__SPEC_XDR_VIEW_transfer + .const_xdr_len()] = super::Contract::spec_xdr_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"transfer")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::MuxedAddress, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_transfer() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08transfer\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x14\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_transfer() -> [u8; Contract::__SPEC_XDR_VIEW_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_transfer.const_to_xdr() } } #[doc(hidden)] @@ -132,13 +198,41 @@ pub mod __Contract__failed_transfer__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; 88usize] = + pub static __SPEC_XDR_FN_FAILED_TRANSFER: [u8; + super::Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] = super::Contract::spec_xdr_failed_transfer(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_failed_transfer: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"failed_transfer", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"from"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"to"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_failed_transfer() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ffailed_transfer\0\0\0\0\x03\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0" + pub const fn spec_xdr_failed_transfer( + ) -> [u8; Contract::__SPEC_XDR_VIEW_failed_transfer.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_failed_transfer.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_fuzz_tests.rs b/tests-expanded/test_fuzz_tests.rs index f4db42280..64f49155b 100644 --- a/tests-expanded/test_fuzz_tests.rs +++ b/tests-expanded/test_fuzz_tests.rs @@ -151,12 +151,32 @@ pub mod __Contract__run__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_RUN: [u8; 56usize] = super::Contract::spec_xdr_run(); + pub static __SPEC_XDR_FN_RUN: [u8; super::Contract::__SPEC_XDR_VIEW_run.const_xdr_len()] = + super::Contract::spec_xdr_run(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_run: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"run")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_run() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03run\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x0c\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x0c\0\0\0\0" + pub const fn spec_xdr_run() -> [u8; Contract::__SPEC_XDR_VIEW_run.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_run.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_fuzz_wasm32v1-none.rs b/tests-expanded/test_fuzz_wasm32v1-none.rs index 95d5497bf..0015f0900 100644 --- a/tests-expanded/test_fuzz_wasm32v1-none.rs +++ b/tests-expanded/test_fuzz_wasm32v1-none.rs @@ -40,12 +40,32 @@ pub mod __Contract__run__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_RUN: [u8; 56usize] = super::Contract::spec_xdr_run(); + pub static __SPEC_XDR_FN_RUN: [u8; super::Contract::__SPEC_XDR_VIEW_run.const_xdr_len()] = + super::Contract::spec_xdr_run(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_run: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"run")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U256, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_run() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03run\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x0c\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x0c\0\0\0\0" + pub const fn spec_xdr_run() -> [u8; Contract::__SPEC_XDR_VIEW_run.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_run.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_generics_tests.rs b/tests-expanded/test_generics_tests.rs index a8af22d61..527c97518 100644 --- a/tests-expanded/test_generics_tests.rs +++ b/tests-expanded/test_generics_tests.rs @@ -150,12 +150,37 @@ pub mod __Contract__exec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EXEC: [u8; 76usize] = super::Contract::spec_xdr_exec(); + pub static __SPEC_XDR_FN_EXEC: [u8; super::Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] = + super::Contract::spec_xdr_exec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\x03\0\0\0\0\0\0\0\x02i1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02i2\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02i3\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_exec() -> [u8; Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_generics_wasm32v1-none.rs b/tests-expanded/test_generics_wasm32v1-none.rs index 4528fa6c0..00a41d42f 100644 --- a/tests-expanded/test_generics_wasm32v1-none.rs +++ b/tests-expanded/test_generics_wasm32v1-none.rs @@ -39,12 +39,37 @@ pub mod __Contract__exec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EXEC: [u8; 76usize] = super::Contract::spec_xdr_exec(); + pub static __SPEC_XDR_FN_EXEC: [u8; super::Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] = + super::Contract::spec_xdr_exec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_exec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"exec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_exec() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04exec\0\0\0\x03\0\0\0\0\0\0\0\x02i1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02i2\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02i3\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_exec() -> [u8; Contract::__SPEC_XDR_VIEW_exec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_exec.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_import_contract_tests.rs b/tests-expanded/test_import_contract_tests.rs index 81579c986..cc659ede4 100644 --- a/tests-expanded/test_import_contract_tests.rs +++ b/tests-expanded/test_import_contract_tests.rs @@ -479,10 +479,40 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -1012,11 +1042,45 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = - SubContractInvocation::spec_xdr(); + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; SubContractInvocation::__SPEC_XDR_VIEW + .const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -1488,11 +1552,39 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -1983,11 +2075,51 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -2619,10 +2751,66 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -3279,10 +3467,30 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -3821,11 +4029,67 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -4526,10 +4790,42 @@ mod addcontract { } } } - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { @@ -5059,10 +5355,26 @@ mod addcontract { ::core::option::Option::Some(::core::cmp::Ordering::Equal) } } - pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = + Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -5222,10 +5534,26 @@ mod addcontract { ::core::option::Option::Some(::core::cmp::Ordering::Equal) } } - pub static __SPEC_XDR_TYPE_MYERROR: [u8; 48usize] = MyError::spec_xdr(); + pub static __SPEC_XDR_TYPE_MYERROR: [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] = + MyError::spec_xdr(); impl MyError { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x07MyError\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] { + MyError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyError { @@ -5365,10 +5693,30 @@ impl ::core::cmp::PartialEq for Error { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ERROR: [u8; 68usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x05Abort\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Abort"), + value: 0u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -5639,12 +5987,37 @@ pub mod __Contract__add_with__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD_WITH: [u8; 88usize] = super::Contract::spec_xdr_add_with(); + pub static __SPEC_XDR_FN_ADD_WITH: [u8; super::Contract::__SPEC_XDR_VIEW_add_with + .const_xdr_len()] = super::Contract::spec_xdr_add_with(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add_with: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add_with")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add_with() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08add_with\0\0\0\x03\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_add_with() -> [u8; Contract::__SPEC_XDR_VIEW_add_with.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add_with.const_to_xdr() } } #[doc(hidden)] @@ -5653,13 +6026,47 @@ pub mod __Contract__safe_add_with__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SAFE_ADD_WITH: [u8; 104usize] = - super::Contract::spec_xdr_safe_add_with(); + pub static __SPEC_XDR_FN_SAFE_ADD_WITH: [u8; super::Contract::__SPEC_XDR_VIEW_safe_add_with + .const_xdr_len()] = super::Contract::spec_xdr_safe_add_with(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add_with: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"safe_add_with", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add_with() -> [u8; 104usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rsafe_add_with\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_safe_add_with( + ) -> [u8; Contract::__SPEC_XDR_VIEW_safe_add_with.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add_with.const_to_xdr() } } #[doc(hidden)] @@ -5668,13 +6075,48 @@ pub mod __Contract__safe_add_with_two__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_SAFE_ADD_WITH_TWO: [u8; 108usize] = + pub static __SPEC_XDR_FN_SAFE_ADD_WITH_TWO: [u8; + super::Contract::__SPEC_XDR_VIEW_safe_add_with_two.const_xdr_len()] = super::Contract::spec_xdr_safe_add_with_two(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add_with_two: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"safe_add_with_two", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add_with_two() -> [u8; 108usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11safe_add_with_two\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_safe_add_with_two( + ) -> [u8; Contract::__SPEC_XDR_VIEW_safe_add_with_two.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add_with_two.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_import_contract_wasm32v1-none.rs b/tests-expanded/test_import_contract_wasm32v1-none.rs index 0a911d20c..4fd4fab4a 100644 --- a/tests-expanded/test_import_contract_wasm32v1-none.rs +++ b/tests-expanded/test_import_contract_wasm32v1-none.rs @@ -262,10 +262,40 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -278,7 +308,7 @@ mod addcontract { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x03\x04uN\xea\xd7[\x13"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ContractContext::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -421,11 +451,45 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = - SubContractInvocation::spec_xdr(); + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; SubContractInvocation::__SPEC_XDR_VIEW + .const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -437,7 +501,8 @@ mod addcontract { InvokerContractAuthEntry, > as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1 \x9d\xc5_\xba\x8fv\x18"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&SubContractInvocation::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -571,11 +636,39 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -585,7 +678,8 @@ mod addcontract { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe1\"T\xf0&\x19?P"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&CreateContractHostFnContext::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -741,11 +835,51 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -758,7 +892,9 @@ mod addcontract { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xd2;\xff\xe6\x97\xda;\x83"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker( + &CreateContractWithConstructorHostFnContext::spec_xdr(), + ); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -961,10 +1097,66 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -975,7 +1167,7 @@ mod addcontract { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\r\xb6\x0b\xec\x8f\xd04l"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Context::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1156,10 +1348,30 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -1168,7 +1380,7 @@ mod addcontract { fn spec_shaking_marker() { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1^\xbe34\xd8\x99\x84\x91"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ContractExecutable::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1380,11 +1592,67 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -1395,7 +1663,8 @@ mod addcontract { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xf0{\xa6\xe9r\xf3\x10\xf6"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&InvokerContractAuthEntry::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1594,10 +1863,42 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { @@ -1606,7 +1907,7 @@ mod addcontract { fn spec_shaking_marker() { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1L|{\r\xf4\xf2\x1a\xa8"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Executable::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1747,10 +2048,26 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ERROR: [u8; 48usize] = Error::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = + Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -1758,7 +2075,7 @@ mod addcontract { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xd6\xb8`\x15\xac\x9ei\x1a"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Error::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1916,10 +2233,26 @@ mod addcontract { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_MYERROR: [u8; 48usize] = MyError::spec_xdr(); + pub static __SPEC_XDR_TYPE_MYERROR: [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] = + MyError::spec_xdr(); impl MyError { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x07MyError\0\0\0\0\x01\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"MyError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; MyError::__SPEC_XDR_VIEW.const_xdr_len()] { + MyError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for MyError { @@ -1927,7 +2260,7 @@ mod addcontract { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x95\xd0j*\x1d\xfam\xa3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&MyError::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2065,10 +2398,30 @@ impl ::core::cmp::PartialEq for Error { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERROR: [u8; 68usize] = Error::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERROR: [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] = Error::spec_xdr(); impl Error { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x05Abort\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x08Overflow\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Error"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Abort"), + value: 0u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Overflow"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Error::__SPEC_XDR_VIEW.const_xdr_len()] { + Error::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Error { @@ -2076,7 +2429,7 @@ impl soroban_sdk::SpecShakingMarker for Error { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1~\x83GNX\x9f\xc3\xfd"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Error::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2233,12 +2586,37 @@ pub mod __Contract__add_with__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD_WITH: [u8; 88usize] = super::Contract::spec_xdr_add_with(); + pub static __SPEC_XDR_FN_ADD_WITH: [u8; super::Contract::__SPEC_XDR_VIEW_add_with + .const_xdr_len()] = super::Contract::spec_xdr_add_with(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add_with: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add_with")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add_with() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08add_with\0\0\0\x03\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x06\0\0\0\x01\0\0\0\x06" + pub const fn spec_xdr_add_with() -> [u8; Contract::__SPEC_XDR_VIEW_add_with.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add_with.const_to_xdr() } } #[doc(hidden)] @@ -2248,13 +2626,47 @@ pub mod __Contract__safe_add_with__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SAFE_ADD_WITH: [u8; 104usize] = - super::Contract::spec_xdr_safe_add_with(); + pub static __SPEC_XDR_FN_SAFE_ADD_WITH: [u8; super::Contract::__SPEC_XDR_VIEW_safe_add_with + .const_xdr_len()] = super::Contract::spec_xdr_safe_add_with(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add_with: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"safe_add_with", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add_with() -> [u8; 104usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rsafe_add_with\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_safe_add_with( + ) -> [u8; Contract::__SPEC_XDR_VIEW_safe_add_with.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add_with.const_to_xdr() } } #[doc(hidden)] @@ -2264,13 +2676,48 @@ pub mod __Contract__safe_add_with_two__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_SAFE_ADD_WITH_TWO: [u8; 108usize] = + pub static __SPEC_XDR_FN_SAFE_ADD_WITH_TWO: [u8; + super::Contract::__SPEC_XDR_VIEW_safe_add_with_two.const_xdr_len()] = super::Contract::spec_xdr_safe_add_with_two(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_safe_add_with_two: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"safe_add_with_two", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U64, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_safe_add_with_two() -> [u8; 108usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11safe_add_with_two\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x06\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x06\0\0\0\x01\0\0\x03\xe9\0\0\0\x06\0\0\0\x03" + pub const fn spec_xdr_safe_add_with_two( + ) -> [u8; Contract::__SPEC_XDR_VIEW_safe_add_with_two.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_safe_add_with_two.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_invoke_contract_tests.rs b/tests-expanded/test_invoke_contract_tests.rs index e8d2f3e1f..e9a89f560 100644 --- a/tests-expanded/test_invoke_contract_tests.rs +++ b/tests-expanded/test_invoke_contract_tests.rs @@ -155,12 +155,37 @@ pub mod __Contract__add_with__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD_WITH: [u8; 88usize] = super::Contract::spec_xdr_add_with(); + pub static __SPEC_XDR_FN_ADD_WITH: [u8; super::Contract::__SPEC_XDR_VIEW_add_with + .const_xdr_len()] = super::Contract::spec_xdr_add_with(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add_with: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add_with")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add_with() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08add_with\0\0\0\x03\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_add_with() -> [u8; Contract::__SPEC_XDR_VIEW_add_with.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add_with.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -509,12 +534,32 @@ pub mod __AddContract__add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::AddContract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::AddContract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::AddContract::spec_xdr_add(); } impl AddContract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_add() -> [u8; AddContract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + AddContract::__SPEC_XDR_VIEW_add.const_to_xdr() } } impl<'a> AddContractClient<'a> { diff --git a/tests-expanded/test_invoke_contract_wasm32v1-none.rs b/tests-expanded/test_invoke_contract_wasm32v1-none.rs index 1d567a845..ae5ae30e0 100644 --- a/tests-expanded/test_invoke_contract_wasm32v1-none.rs +++ b/tests-expanded/test_invoke_contract_wasm32v1-none.rs @@ -44,12 +44,37 @@ pub mod __Contract__add_with__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD_WITH: [u8; 88usize] = super::Contract::spec_xdr_add_with(); + pub static __SPEC_XDR_FN_ADD_WITH: [u8; super::Contract::__SPEC_XDR_VIEW_add_with + .const_xdr_len()] = super::Contract::spec_xdr_add_with(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add_with: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add_with")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract_id"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add_with() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08add_with\0\0\0\x03\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x0bcontract_id\0\0\0\0\x13\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_add_with() -> [u8; Contract::__SPEC_XDR_VIEW_add_with.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add_with.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -192,12 +217,32 @@ pub mod __AddContract__add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD: [u8; 60usize] = super::AddContract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::AddContract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::AddContract::spec_xdr_add(); } impl AddContract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x05\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x05\0\0\0\x01\0\0\0\x05" + pub const fn spec_xdr_add() -> [u8; AddContract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + AddContract::__SPEC_XDR_VIEW_add.const_to_xdr() } } impl<'a> AddContractClient<'a> { diff --git a/tests-expanded/test_logging_tests.rs b/tests-expanded/test_logging_tests.rs index 2dc3d0c63..019b3e669 100644 --- a/tests-expanded/test_logging_tests.rs +++ b/tests-expanded/test_logging_tests.rs @@ -228,12 +228,21 @@ pub mod __Contract__hello__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_HELLO: [u8; 28usize] = super::Contract::spec_xdr_hello(); + pub static __SPEC_XDR_FN_HELLO: [u8; super::Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] = + super::Contract::spec_xdr_hello(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_hello: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"hello")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_hello() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05hello\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_hello() -> [u8; Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_hello.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_logging_wasm32v1-none.rs b/tests-expanded/test_logging_wasm32v1-none.rs index a2bc19fa9..2f4ce203e 100644 --- a/tests-expanded/test_logging_wasm32v1-none.rs +++ b/tests-expanded/test_logging_wasm32v1-none.rs @@ -117,12 +117,21 @@ pub mod __Contract__hello__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_HELLO: [u8; 28usize] = super::Contract::spec_xdr_hello(); + pub static __SPEC_XDR_FN_HELLO: [u8; super::Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] = + super::Contract::spec_xdr_hello(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_hello: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"hello")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_hello() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05hello\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_hello() -> [u8; Contract::__SPEC_XDR_VIEW_hello.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_hello.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_macros_tests.rs b/tests-expanded/test_macros_tests.rs index 0e0290bbf..d4d5fb59e 100644 --- a/tests-expanded/test_macros_tests.rs +++ b/tests-expanded/test_macros_tests.rs @@ -149,12 +149,21 @@ pub mod __Contract__empty__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EMPTY: [u8; 28usize] = super::Contract::spec_xdr_empty(); + pub static __SPEC_XDR_FN_EMPTY: [u8; super::Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] = + super::Contract::spec_xdr_empty(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05empty\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty() -> [u8; Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty.const_to_xdr() } } #[doc(hidden)] @@ -163,12 +172,21 @@ pub mod __Contract__empty2__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EMPTY2: [u8; 28usize] = super::Contract::spec_xdr_empty2(); + pub static __SPEC_XDR_FN_EMPTY2: [u8; super::Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] = + super::Contract::spec_xdr_empty2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty2")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty2() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06empty2\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty2() -> [u8; Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty2.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_macros_wasm32v1-none.rs b/tests-expanded/test_macros_wasm32v1-none.rs index 32cfbd5cf..87480051d 100644 --- a/tests-expanded/test_macros_wasm32v1-none.rs +++ b/tests-expanded/test_macros_wasm32v1-none.rs @@ -38,12 +38,21 @@ pub mod __Contract__empty__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EMPTY: [u8; 28usize] = super::Contract::spec_xdr_empty(); + pub static __SPEC_XDR_FN_EMPTY: [u8; super::Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] = + super::Contract::spec_xdr_empty(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05empty\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty() -> [u8; Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty.const_to_xdr() } } #[doc(hidden)] @@ -53,12 +62,21 @@ pub mod __Contract__empty2__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EMPTY2: [u8; 28usize] = super::Contract::spec_xdr_empty2(); + pub static __SPEC_XDR_FN_EMPTY2: [u8; super::Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] = + super::Contract::spec_xdr_empty2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty2")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty2() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06empty2\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty2() -> [u8; Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty2.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_modular_tests.rs b/tests-expanded/test_modular_tests.rs index 22d3e3070..9c60e21ba 100644 --- a/tests-expanded/test_modular_tests.rs +++ b/tests-expanded/test_modular_tests.rs @@ -21,12 +21,23 @@ mod feat1 { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ONE: [u8; 28usize] = super::Contract::spec_xdr_one(); + pub static __SPEC_XDR_FN_ONE: [u8; super::Contract::__SPEC_XDR_VIEW_one.const_xdr_len()] = + super::Contract::spec_xdr_one(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_one: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"one")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_one() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03one\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_one() -> [u8; Contract::__SPEC_XDR_VIEW_one.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_one.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -199,12 +210,23 @@ mod feat2 { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TWO: [u8; 28usize] = super::super::Contract::spec_xdr_two(); + pub static __SPEC_XDR_FN_TWO: [u8; super::super::Contract::__SPEC_XDR_VIEW_two + .const_xdr_len()] = super::super::Contract::spec_xdr_two(); } impl super::Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_two: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"two")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_two() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03two\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_two() -> [u8; super::Contract::__SPEC_XDR_VIEW_two.const_xdr_len()] { + super::Contract::__SPEC_XDR_VIEW_two.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -576,12 +598,21 @@ pub mod __Contract__zero__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ZERO: [u8; 28usize] = super::Contract::spec_xdr_zero(); + pub static __SPEC_XDR_FN_ZERO: [u8; super::Contract::__SPEC_XDR_VIEW_zero.const_xdr_len()] = + super::Contract::spec_xdr_zero(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_zero: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"zero")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_zero() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04zero\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_zero() -> [u8; Contract::__SPEC_XDR_VIEW_zero.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_zero.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_modular_wasm32v1-none.rs b/tests-expanded/test_modular_wasm32v1-none.rs index e1512ca92..c97fa1d6d 100644 --- a/tests-expanded/test_modular_wasm32v1-none.rs +++ b/tests-expanded/test_modular_wasm32v1-none.rs @@ -22,12 +22,23 @@ mod feat1 { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ONE: [u8; 28usize] = super::Contract::spec_xdr_one(); + pub static __SPEC_XDR_FN_ONE: [u8; super::Contract::__SPEC_XDR_VIEW_one.const_xdr_len()] = + super::Contract::spec_xdr_one(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_one: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"one")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_one() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03one\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_one() -> [u8; Contract::__SPEC_XDR_VIEW_one.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_one.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -106,12 +117,23 @@ mod feat2 { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TWO: [u8; 28usize] = super::super::Contract::spec_xdr_two(); + pub static __SPEC_XDR_FN_TWO: [u8; super::super::Contract::__SPEC_XDR_VIEW_two + .const_xdr_len()] = super::super::Contract::spec_xdr_two(); } impl super::Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_two: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"two")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_two() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03two\0\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_two() -> [u8; super::Contract::__SPEC_XDR_VIEW_two.const_xdr_len()] { + super::Contract::__SPEC_XDR_VIEW_two.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -205,12 +227,21 @@ pub mod __Contract__zero__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ZERO: [u8; 28usize] = super::Contract::spec_xdr_zero(); + pub static __SPEC_XDR_FN_ZERO: [u8; super::Contract::__SPEC_XDR_VIEW_zero.const_xdr_len()] = + super::Contract::spec_xdr_zero(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_zero: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"zero")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_zero() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04zero\0\0\0\0\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_zero() -> [u8; Contract::__SPEC_XDR_VIEW_zero.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_zero.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_multiimpl_tests.rs b/tests-expanded/test_multiimpl_tests.rs index 40caaa291..76f2e9ad3 100644 --- a/tests-expanded/test_multiimpl_tests.rs +++ b/tests-expanded/test_multiimpl_tests.rs @@ -145,12 +145,21 @@ pub mod __Contract__empty__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EMPTY: [u8; 28usize] = super::Contract::spec_xdr_empty(); + pub static __SPEC_XDR_FN_EMPTY: [u8; super::Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] = + super::Contract::spec_xdr_empty(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05empty\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty() -> [u8; Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -313,12 +322,21 @@ pub mod __Contract__empty2__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EMPTY2: [u8; 28usize] = super::Contract::spec_xdr_empty2(); + pub static __SPEC_XDR_FN_EMPTY2: [u8; super::Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] = + super::Contract::spec_xdr_empty2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty2")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty2() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06empty2\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty2() -> [u8; Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty2.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -484,12 +502,21 @@ pub mod __Contract__empty3__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_EMPTY3: [u8; 28usize] = super::Contract::spec_xdr_empty3(); + pub static __SPEC_XDR_FN_EMPTY3: [u8; super::Contract::__SPEC_XDR_VIEW_empty3.const_xdr_len()] = + super::Contract::spec_xdr_empty3(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty3: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty3")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty3() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06empty3\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty3() -> [u8; Contract::__SPEC_XDR_VIEW_empty3.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty3.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_multiimpl_wasm32v1-none.rs b/tests-expanded/test_multiimpl_wasm32v1-none.rs index 1d7f4b1b8..2b70c565d 100644 --- a/tests-expanded/test_multiimpl_wasm32v1-none.rs +++ b/tests-expanded/test_multiimpl_wasm32v1-none.rs @@ -34,12 +34,21 @@ pub mod __Contract__empty__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EMPTY: [u8; 28usize] = super::Contract::spec_xdr_empty(); + pub static __SPEC_XDR_FN_EMPTY: [u8; super::Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] = + super::Contract::spec_xdr_empty(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05empty\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty() -> [u8; Contract::__SPEC_XDR_VIEW_empty.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -108,12 +117,21 @@ pub mod __Contract__empty2__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EMPTY2: [u8; 28usize] = super::Contract::spec_xdr_empty2(); + pub static __SPEC_XDR_FN_EMPTY2: [u8; super::Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] = + super::Contract::spec_xdr_empty2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty2")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty2() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06empty2\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty2() -> [u8; Contract::__SPEC_XDR_VIEW_empty2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty2.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -185,12 +203,21 @@ pub mod __Contract__empty3__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_EMPTY3: [u8; 28usize] = super::Contract::spec_xdr_empty3(); + pub static __SPEC_XDR_FN_EMPTY3: [u8; super::Contract::__SPEC_XDR_VIEW_empty3.const_xdr_len()] = + super::Contract::spec_xdr_empty3(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_empty3: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"empty3")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_empty3() -> [u8; 28usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06empty3\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_empty3() -> [u8; Contract::__SPEC_XDR_VIEW_empty3.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_empty3.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_mutability_tests.rs b/tests-expanded/test_mutability_tests.rs index 5cfe71b3f..e0affad5f 100644 --- a/tests-expanded/test_mutability_tests.rs +++ b/tests-expanded/test_mutability_tests.rs @@ -148,12 +148,32 @@ pub mod __Contract__calc__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_CALC: [u8; 60usize] = super::Contract::spec_xdr_calc(); + pub static __SPEC_XDR_FN_CALC: [u8; super::Contract::__SPEC_XDR_VIEW_calc.const_xdr_len()] = + super::Contract::spec_xdr_calc(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_calc: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"calc")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_calc() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04calc\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_calc() -> [u8; Contract::__SPEC_XDR_VIEW_calc.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_calc.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_mutability_wasm32v1-none.rs b/tests-expanded/test_mutability_wasm32v1-none.rs index cccd536ef..00c414985 100644 --- a/tests-expanded/test_mutability_wasm32v1-none.rs +++ b/tests-expanded/test_mutability_wasm32v1-none.rs @@ -37,12 +37,32 @@ pub mod __Contract__calc__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_CALC: [u8; 60usize] = super::Contract::spec_xdr_calc(); + pub static __SPEC_XDR_FN_CALC: [u8; super::Contract::__SPEC_XDR_VIEW_calc.const_xdr_len()] = + super::Contract::spec_xdr_calc(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_calc: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"calc")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::U32]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_calc() -> [u8; 60usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x04calc\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x04\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_calc() -> [u8; Contract::__SPEC_XDR_VIEW_calc.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_calc.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_spec_import_tests.rs b/tests-expanded/test_spec_import_tests.rs index 0224dbffc..a7565d9e6 100644 --- a/tests-expanded/test_spec_import_tests.rs +++ b/tests-expanded/test_spec_import_tests.rs @@ -58,12 +58,39 @@ pub mod __Contract__fn_struct_a__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_STRUCT_A: [u8; 80usize] = super::Contract::spec_xdr_fn_struct_a(); + pub static __SPEC_XDR_FN_FN_STRUCT_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_struct_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_struct_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_struct_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"fn_struct_a", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_struct_a() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bfn_struct_a\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x01\0\0\0\x01\0\0\x07\xd0\0\0\0\x07StructA\0" + pub const fn spec_xdr_fn_struct_a( + ) -> [u8; Contract::__SPEC_XDR_VIEW_fn_struct_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_struct_a.const_to_xdr() } } #[doc(hidden)] @@ -72,13 +99,40 @@ pub mod __Contract__fn_struct_tuple_a__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_STRUCT_TUPLE_A: [u8; 92usize] = + pub static __SPEC_XDR_FN_FN_STRUCT_TUPLE_A: [u8; + super::Contract::__SPEC_XDR_VIEW_fn_struct_tuple_a.const_xdr_len()] = super::Contract::spec_xdr_fn_struct_tuple_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_struct_tuple_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"fn_struct_tuple_a", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_struct_tuple_a() -> [u8; 92usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11fn_struct_tuple_a\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x07\0\0\0\x01\0\0\x07\xd0\0\0\0\x0cStructTupleA" + pub const fn spec_xdr_fn_struct_tuple_a( + ) -> [u8; Contract::__SPEC_XDR_VIEW_fn_struct_tuple_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_struct_tuple_a.const_to_xdr() } } #[doc(hidden)] @@ -87,12 +141,25 @@ pub mod __Contract__fn_enum_a__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_ENUM_A: [u8; 48usize] = super::Contract::spec_xdr_fn_enum_a(); + pub static __SPEC_XDR_FN_FN_ENUM_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_enum_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_enum_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_enum_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_enum_a")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"EnumA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_enum_a() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\tfn_enum_a\0\0\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x05EnumA\0\0\0" + pub const fn spec_xdr_fn_enum_a() -> [u8; Contract::__SPEC_XDR_VIEW_fn_enum_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_enum_a.const_to_xdr() } } #[doc(hidden)] @@ -101,13 +168,28 @@ pub mod __Contract__fn_enum_int_a__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_ENUM_INT_A: [u8; 52usize] = - super::Contract::spec_xdr_fn_enum_int_a(); + pub static __SPEC_XDR_FN_FN_ENUM_INT_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_enum_int_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_enum_int_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_enum_int_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"fn_enum_int_a", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"EnumIntA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_enum_int_a() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rfn_enum_int_a\0\0\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x08EnumIntA" + pub const fn spec_xdr_fn_enum_int_a( + ) -> [u8; Contract::__SPEC_XDR_VIEW_fn_enum_int_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_enum_int_a.const_to_xdr() } } #[doc(hidden)] @@ -116,12 +198,39 @@ pub mod __Contract__fn_error_a__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_ERROR_A: [u8; 76usize] = super::Contract::spec_xdr_fn_error_a(); + pub static __SPEC_XDR_FN_FN_ERROR_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_error_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_error_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_error_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_error_a")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ErrorA"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_error_a() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfn_error_a\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x04\0\0\0\x01\0\0\x03\xe9\0\0\0\x04\0\0\x07\xd0\0\0\0\x06ErrorA\0\0" + pub const fn spec_xdr_fn_error_a() -> [u8; Contract::__SPEC_XDR_VIEW_fn_error_a.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fn_error_a.const_to_xdr() } } #[doc(hidden)] @@ -130,12 +239,33 @@ pub mod __Contract__fn_event_a__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_EVENT_A: [u8; 64usize] = super::Contract::spec_xdr_fn_event_a(); + pub static __SPEC_XDR_FN_FN_EVENT_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_event_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_event_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_event_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_event_a")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_event_a() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfn_event_a\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10\0\0\0\0" + pub const fn spec_xdr_fn_event_a() -> [u8; Contract::__SPEC_XDR_VIEW_fn_event_a.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fn_event_a.const_to_xdr() } } #[doc(hidden)] @@ -144,12 +274,22 @@ pub mod __Contract__fn_event_d__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_FN_EVENT_D: [u8; 32usize] = super::Contract::spec_xdr_fn_event_d(); + pub static __SPEC_XDR_FN_FN_EVENT_D: [u8; super::Contract::__SPEC_XDR_VIEW_fn_event_d + .const_xdr_len()] = super::Contract::spec_xdr_fn_event_d(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_event_d: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_event_d")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_event_d() -> [u8; 32usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfn_event_d\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_fn_event_d() -> [u8; Contract::__SPEC_XDR_VIEW_fn_event_d.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fn_event_d.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_spec_import_wasm32v1-none.rs b/tests-expanded/test_spec_import_wasm32v1-none.rs index 581904684..228c7c5a6 100644 --- a/tests-expanded/test_spec_import_wasm32v1-none.rs +++ b/tests-expanded/test_spec_import_wasm32v1-none.rs @@ -59,12 +59,39 @@ pub mod __Contract__fn_struct_a__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_STRUCT_A: [u8; 80usize] = super::Contract::spec_xdr_fn_struct_a(); + pub static __SPEC_XDR_FN_FN_STRUCT_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_struct_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_struct_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_struct_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"fn_struct_a", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_struct_a() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bfn_struct_a\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x01\0\0\0\x01\0\0\x07\xd0\0\0\0\x07StructA\0" + pub const fn spec_xdr_fn_struct_a( + ) -> [u8; Contract::__SPEC_XDR_VIEW_fn_struct_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_struct_a.const_to_xdr() } } #[doc(hidden)] @@ -74,13 +101,40 @@ pub mod __Contract__fn_struct_tuple_a__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_STRUCT_TUPLE_A: [u8; 92usize] = + pub static __SPEC_XDR_FN_FN_STRUCT_TUPLE_A: [u8; + super::Contract::__SPEC_XDR_VIEW_fn_struct_tuple_a.const_xdr_len()] = super::Contract::spec_xdr_fn_struct_tuple_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_struct_tuple_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"fn_struct_tuple_a", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_struct_tuple_a() -> [u8; 92usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11fn_struct_tuple_a\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x07\0\0\0\x01\0\0\x07\xd0\0\0\0\x0cStructTupleA" + pub const fn spec_xdr_fn_struct_tuple_a( + ) -> [u8; Contract::__SPEC_XDR_VIEW_fn_struct_tuple_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_struct_tuple_a.const_to_xdr() } } #[doc(hidden)] @@ -90,12 +144,25 @@ pub mod __Contract__fn_enum_a__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_ENUM_A: [u8; 48usize] = super::Contract::spec_xdr_fn_enum_a(); + pub static __SPEC_XDR_FN_FN_ENUM_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_enum_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_enum_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_enum_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_enum_a")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"EnumA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_enum_a() -> [u8; 48usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\tfn_enum_a\0\0\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x05EnumA\0\0\0" + pub const fn spec_xdr_fn_enum_a() -> [u8; Contract::__SPEC_XDR_VIEW_fn_enum_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_enum_a.const_to_xdr() } } #[doc(hidden)] @@ -105,13 +172,28 @@ pub mod __Contract__fn_enum_int_a__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_ENUM_INT_A: [u8; 52usize] = - super::Contract::spec_xdr_fn_enum_int_a(); + pub static __SPEC_XDR_FN_FN_ENUM_INT_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_enum_int_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_enum_int_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_enum_int_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"fn_enum_int_a", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"EnumIntA"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_enum_int_a() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\rfn_enum_int_a\0\0\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x08EnumIntA" + pub const fn spec_xdr_fn_enum_int_a( + ) -> [u8; Contract::__SPEC_XDR_VIEW_fn_enum_int_a.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_fn_enum_int_a.const_to_xdr() } } #[doc(hidden)] @@ -121,12 +203,39 @@ pub mod __Contract__fn_error_a__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_ERROR_A: [u8; 76usize] = super::Contract::spec_xdr_fn_error_a(); + pub static __SPEC_XDR_FN_FN_ERROR_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_error_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_error_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_error_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_error_a")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"input"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ErrorA"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_error_a() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfn_error_a\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05input\0\0\0\0\0\0\x04\0\0\0\x01\0\0\x03\xe9\0\0\0\x04\0\0\x07\xd0\0\0\0\x06ErrorA\0\0" + pub const fn spec_xdr_fn_error_a() -> [u8; Contract::__SPEC_XDR_VIEW_fn_error_a.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fn_error_a.const_to_xdr() } } #[doc(hidden)] @@ -136,12 +245,33 @@ pub mod __Contract__fn_event_a__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_EVENT_A: [u8; 64usize] = super::Contract::spec_xdr_fn_event_a(); + pub static __SPEC_XDR_FN_FN_EVENT_A: [u8; super::Contract::__SPEC_XDR_VIEW_fn_event_a + .const_xdr_len()] = super::Contract::spec_xdr_fn_event_a(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_event_a: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_event_a")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_event_a() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfn_event_a\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10\0\0\0\0" + pub const fn spec_xdr_fn_event_a() -> [u8; Contract::__SPEC_XDR_VIEW_fn_event_a.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fn_event_a.const_to_xdr() } } #[doc(hidden)] @@ -151,12 +281,22 @@ pub mod __Contract__fn_event_d__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_FN_EVENT_D: [u8; 32usize] = super::Contract::spec_xdr_fn_event_d(); + pub static __SPEC_XDR_FN_FN_EVENT_D: [u8; super::Contract::__SPEC_XDR_VIEW_fn_event_d + .const_xdr_len()] = super::Contract::spec_xdr_fn_event_d(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_fn_event_d: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"fn_event_d")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_fn_event_d() -> [u8; 32usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nfn_event_d\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_fn_event_d() -> [u8; Contract::__SPEC_XDR_VIEW_fn_event_d.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_fn_event_d.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_spec_lib_tests.rs b/tests-expanded/test_spec_lib_tests.rs index 2faad2fa0..5d91e5cde 100644 --- a/tests-expanded/test_spec_lib_tests.rs +++ b/tests-expanded/test_spec_lib_tests.rs @@ -47,10 +47,29 @@ impl ::core::cmp::PartialEq for StructA { self.f1 == other.f1 && self.f2 == other.f2 } } -pub static __SPEC_XDR_TYPE_STRUCTA: [u8; 60usize] = StructA::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTA: [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructA::spec_xdr(); impl StructA { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructA\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructA { @@ -463,10 +482,29 @@ impl ::core::cmp::PartialEq for StructB { self.f1 == other.f1 && self.f2 == other.f2 } } -pub static __SPEC_XDR_TYPE_STRUCTB: [u8; 60usize] = StructB::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTB: [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructB::spec_xdr(); impl StructB { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructB\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructB { @@ -879,10 +917,33 @@ impl ::core::cmp::PartialEq for StructC { self.f1 == other.f1 && self.f2 == other.f2 } } -pub static __SPEC_XDR_TYPE_STRUCTC: [u8; 64usize] = StructC::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTC: [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructC::spec_xdr(); impl StructC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructC\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructC { @@ -1291,10 +1352,29 @@ impl ::core::cmp::PartialEq for StructTupleA { self.0 == other.0 && self.1 == other.1 } } -pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; 64usize] = StructTupleA::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleA::spec_xdr(); impl StructTupleA { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleA\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleA { @@ -1667,10 +1747,29 @@ impl ::core::cmp::PartialEq for StructTupleB { self.0 == other.0 && self.1 == other.1 } } -pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; 64usize] = StructTupleB::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleB::spec_xdr(); impl StructTupleB { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleB\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\n" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleB { @@ -2044,10 +2143,29 @@ impl ::core::cmp::PartialEq for StructTupleC { self.1 == other.1 && self.0 == other.0 } } -pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; 64usize] = StructTupleC::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleC::spec_xdr(); impl StructTupleC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleC\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x13\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x0b" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleC { @@ -2432,10 +2550,36 @@ impl ::core::cmp::PartialEq for EnumA { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ENUMA: [u8; 76usize] = EnumA::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMA: [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] = EnumA::spec_xdr(); impl EnumA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumA\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V3\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumA { @@ -2902,10 +3046,43 @@ impl ::core::cmp::PartialEq for EnumB { } } } -pub static __SPEC_XDR_TYPE_ENUMB: [u8; 96usize] = EnumB::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMB: [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] = EnumB::spec_xdr(); impl EnumB { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumB\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\0\x07\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x02\0\0\0\x07\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumB { @@ -3496,10 +3673,50 @@ impl ::core::cmp::PartialEq for EnumC { } } } -pub static __SPEC_XDR_TYPE_ENUMC: [u8; 120usize] = EnumC::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMC: [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] = EnumC::spec_xdr(); impl EnumC { - pub const fn spec_xdr() -> [u8; 120usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumC\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x07StructA\0\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0cStructTupleA" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumC { @@ -4042,10 +4259,34 @@ impl ::core::cmp::PartialEq for EnumIntA { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; 76usize] = EnumIntA::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntA::spec_xdr(); impl EnumIntA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntA\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 3u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntA { @@ -4385,10 +4626,34 @@ impl ::core::cmp::PartialEq for EnumIntB { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; 76usize] = EnumIntB::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntB::spec_xdr(); impl EnumIntB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntB\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x14\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x1e" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 20u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 30u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntB { @@ -4728,10 +4993,34 @@ impl ::core::cmp::PartialEq for EnumIntC { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; 76usize] = EnumIntC::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntC::spec_xdr(); impl EnumIntC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntC\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0d\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\xc8\0\0\0\0\0\0\0\x02V3\0\0\0\0\x01," + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 200u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 300u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntC { @@ -5071,10 +5360,36 @@ impl ::core::cmp::PartialEq for ErrorA { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ERRORA: [u8; 76usize] = ErrorA::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERRORA: [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorA::spec_xdr(); impl ErrorA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorA\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 3u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorA { @@ -5239,10 +5554,36 @@ impl ::core::cmp::PartialEq for ErrorB { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ERRORB: [u8; 76usize] = ErrorB::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERRORB: [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorB::spec_xdr(); impl ErrorB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorB\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x0c" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 11u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 12u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorB { @@ -5407,10 +5748,36 @@ impl ::core::cmp::PartialEq for ErrorC { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_ERRORC: [u8; 76usize] = ErrorC::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERRORC: [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorC::spec_xdr(); impl ErrorC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorC\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0d\0\0\0\0\0\0\0\x02E2\0\0\0\0\0e\0\0\0\0\0\0\0\x02E3\0\0\0\0\0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 101u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 102u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorC { @@ -5571,10 +5938,35 @@ impl ::core::cmp::PartialEq for EventA { self.f1 == other.f1 && self.f2 == other.f2 } } -pub static __SPEC_XDR_EVENT_EVENTA: [u8; 88usize] = EventA::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTA: [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] = + EventA::spec_xdr(); impl EventA { - pub const fn spec_xdr() -> [u8; 88usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventA\0\0\0\0\0\x01\0\0\0\x07event_a\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventA")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_a"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] { + EventA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventA { @@ -5660,10 +6052,41 @@ impl ::core::cmp::PartialEq for EventB { self.f3 == other.f3 && self.f1 == other.f1 && self.f2 == other.f2 } } -pub static __SPEC_XDR_EVENT_EVENTB: [u8; 108usize] = EventB::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTB: [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] = + EventB::spec_xdr(); impl EventB { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventB\0\0\0\0\0\x01\0\0\0\x07event_b\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventB")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_b"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] { + EventB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventB { @@ -5754,10 +6177,41 @@ impl ::core::cmp::PartialEq for EventC { self.f2 == other.f2 && self.f3 == other.f3 && self.f1 == other.f1 } } -pub static __SPEC_XDR_EVENT_EVENTC: [u8; 108usize] = EventC::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTC: [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] = + EventC::spec_xdr(); impl EventC { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventC\0\0\0\0\0\x01\0\0\0\x07event_c\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventC")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_c"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] { + EventC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventC { @@ -5831,10 +6285,22 @@ impl ::core::cmp::PartialEq for EventD { true } } -pub static __SPEC_XDR_EVENT_EVENTD: [u8; 48usize] = EventD::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTD: [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] = + EventD::spec_xdr(); impl EventD { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventD\0\0\0\0\0\x01\0\0\0\x07event_d\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventD")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_d"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] { + EventD::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventD { diff --git a/tests-expanded/test_spec_lib_wasm32v1-none.rs b/tests-expanded/test_spec_lib_wasm32v1-none.rs index 8f8daaadb..ccdb111ae 100644 --- a/tests-expanded/test_spec_lib_wasm32v1-none.rs +++ b/tests-expanded/test_spec_lib_wasm32v1-none.rs @@ -48,10 +48,29 @@ impl ::core::cmp::PartialEq for StructA { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_STRUCTA: [u8; 60usize] = StructA::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTA: [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructA::spec_xdr(); impl StructA { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructA\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructA { @@ -61,7 +80,7 @@ impl soroban_sdk::SpecShakingMarker for StructA { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xb6\x1c\xfd\xdfhY-d"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -159,10 +178,29 @@ impl ::core::cmp::PartialEq for StructB { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_STRUCTB: [u8; 60usize] = StructB::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTB: [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructB::spec_xdr(); impl StructB { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructB\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructB { @@ -172,7 +210,7 @@ impl soroban_sdk::SpecShakingMarker for StructB { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xf3\xc4\xd3\x8c\xc1w\xe9\x18"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -270,10 +308,33 @@ impl ::core::cmp::PartialEq for StructC { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_STRUCTC: [u8; 64usize] = StructC::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTC: [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructC::spec_xdr(); impl StructC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructC\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructC { @@ -283,7 +344,7 @@ impl soroban_sdk::SpecShakingMarker for StructC { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker();
::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa3\x16\n\x8f\xc9\x92\xd2\x11"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -375,10 +436,29 @@ impl ::core::cmp::PartialEq for StructTupleA { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; 64usize] = StructTupleA::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleA::spec_xdr(); impl StructTupleA { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleA\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleA { @@ -388,7 +468,7 @@ impl soroban_sdk::SpecShakingMarker for StructTupleA { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xcf)\x97]S\xb2\xfd)"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructTupleA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -476,10 +556,29 @@ impl ::core::cmp::PartialEq for StructTupleB { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; 64usize] = StructTupleB::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleB::spec_xdr(); impl StructTupleB { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleB\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\n" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleB { @@ -489,7 +588,7 @@ impl soroban_sdk::SpecShakingMarker for StructTupleB { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1x\xd98\x9c\x1ao\xac\x8c"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructTupleB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -578,10 +677,29 @@ impl ::core::cmp::PartialEq for StructTupleC { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; 64usize] = StructTupleC::spec_xdr(); +pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleC::spec_xdr(); impl StructTupleC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleC\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x13\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x0b" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleC { @@ -591,7 +709,7 @@ impl soroban_sdk::SpecShakingMarker for StructTupleC {
::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xc5=\x81\xc1\"\xafT\xd9"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructTupleC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -691,10 +809,36 @@ impl ::core::cmp::PartialEq for EnumA { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ENUMA: [u8; 76usize] = EnumA::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMA: [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] = EnumA::spec_xdr(); impl EnumA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumA\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V3\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumA { @@ -702,7 +846,7 @@ impl soroban_sdk::SpecShakingMarker for EnumA { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa2=N\xc1p\x95\x90\xb2"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -848,10 +992,43 @@ impl ::core::cmp::PartialEq for EnumB { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ENUMB: [u8; 96usize] = EnumB::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMB: [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] = EnumB::spec_xdr(); impl EnumB { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumB\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\0\x07\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x02\0\0\0\x07\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumB { @@ -860,7 +1037,7 @@ impl soroban_sdk::SpecShakingMarker for EnumB { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1'\x1b\0DSH^\xcc"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1018,10 +1195,50 @@ impl ::core::cmp::PartialEq for EnumC { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ENUMC: [u8; 120usize] = EnumC::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMC: [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] = EnumC::spec_xdr(); impl EnumC { - pub const fn spec_xdr() -> [u8; 120usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumC\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x07StructA\0\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0cStructTupleA" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumC { @@ -1031,7 +1248,7 @@ impl soroban_sdk::SpecShakingMarker for EnumC { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa0\xdd\x8f\xdc\xc9W\xbe\xc2"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1174,10 +1391,34 @@ impl ::core::cmp::PartialEq for EnumIntA { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; 76usize] = EnumIntA::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntA::spec_xdr(); impl EnumIntA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntA\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 3u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntA { @@ -1185,7 +1426,7 @@ impl soroban_sdk::SpecShakingMarker for EnumIntA { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1V]\x80\\~\x1a\x08/"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumIntA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1278,10 +1519,34 @@ impl ::core::cmp::PartialEq for EnumIntB { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; 76usize] = EnumIntB::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntB::spec_xdr(); impl EnumIntB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntB\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x14\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x1e" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 20u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 30u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntB { @@ -1289,7 +1554,7 @@ impl soroban_sdk::SpecShakingMarker for EnumIntB { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1,\x9c\xc0_\xed_)\x85"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumIntB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1382,10 +1647,34 @@ impl ::core::cmp::PartialEq for EnumIntC { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; 76usize] = EnumIntC::spec_xdr(); +pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntC::spec_xdr(); impl EnumIntC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntC\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0d\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\xc8\0\0\0\0\0\0\0\x02V3\0\0\0\0\x01," + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 200u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 300u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntC { @@ -1393,7 +1682,7 @@ impl soroban_sdk::SpecShakingMarker for EnumIntC { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1`\xca\xda\x19\xb9c\xf0/"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumIntC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1486,10 +1775,36 @@ impl ::core::cmp::PartialEq for ErrorA { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERRORA: [u8; 76usize] = ErrorA::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERRORA: [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorA::spec_xdr(); impl ErrorA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorA\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 3u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorA { @@ -1497,7 +1812,7 @@ impl soroban_sdk::SpecShakingMarker for ErrorA { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe9R\xa7\xe8b\x99\xa2\xc3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ErrorA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1660,10 +1975,36 @@ impl ::core::cmp::PartialEq for ErrorB { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERRORB: [u8; 76usize] = ErrorB::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERRORB: [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorB::spec_xdr(); impl ErrorB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorB\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x0c" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 11u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 12u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorB { @@ -1671,7 +2012,7 @@ impl soroban_sdk::SpecShakingMarker for ErrorB { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x1d1\xd6\xfb\x88\xd2=\xe3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ErrorB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1834,10 +2175,36 @@ impl ::core::cmp::PartialEq for ErrorC { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_ERRORC: [u8; 76usize] = ErrorC::spec_xdr(); +pub static __SPEC_XDR_TYPE_ERRORC: [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorC::spec_xdr(); impl ErrorC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorC\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0d\0\0\0\0\0\0\0\x02E2\0\0\0\0\0e\0\0\0\0\0\0\0\x02E3\0\0\0\0\0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 101u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 102u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorC { @@ -1845,7 +2212,7 @@ impl soroban_sdk::SpecShakingMarker for ErrorC { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xb9\x01\xafj\xe0c\xa3\r"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ErrorC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2004,10 +2371,35 @@ impl ::core::cmp::PartialEq for EventA { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_EVENTA: [u8; 88usize] = EventA::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTA: [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] = + EventA::spec_xdr(); impl EventA { - pub const fn spec_xdr() -> [u8; 88usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventA\0\0\0\0\0\x01\0\0\0\x07event_a\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventA")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_a"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] { + EventA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventA { @@ -2017,7 +2409,7 @@ impl soroban_sdk::SpecShakingMarker for EventA {
::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1K\xe6\x8ej\x19\x9en\xbd"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2098,10 +2490,41 @@ impl ::core::cmp::PartialEq for EventB { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_EVENTB: [u8; 108usize] = EventB::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTB: [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] = + EventB::spec_xdr(); impl EventB { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventB\0\0\0\0\0\x01\0\0\0\x07event_b\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventB")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_b"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] { + EventB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventB { @@ -2112,7 +2535,7 @@ impl soroban_sdk::SpecShakingMarker for EventB {
::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe6\xaa\xefz\x17i$\x15"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2197,10 +2620,41 @@ impl ::core::cmp::PartialEq for EventC { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_EVENTC: [u8; 108usize] = EventC::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTC: [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] = + EventC::spec_xdr(); impl EventC { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventC\0\0\0\0\0\x01\0\0\0\x07event_c\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventC")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_c"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] { + EventC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventC { @@ -2211,7 +2665,7 @@ impl soroban_sdk::SpecShakingMarker for EventC { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x16\xd6\xdf\xe7\xdb\xb4W@"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2279,10 +2733,22 @@ impl ::core::cmp::PartialEq for EventD { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_EVENTD: [u8; 48usize] = EventD::spec_xdr(); +pub static __SPEC_XDR_EVENT_EVENTD: [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] = + EventD::spec_xdr(); impl EventD { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventD\0\0\0\0\0\x01\0\0\0\x07event_d\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventD")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_d"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] { + EventD::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventD { @@ -2290,7 +2756,7 @@ impl soroban_sdk::SpecShakingMarker for EventD { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x15\xf0Wx\x15\x83\xc0:"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventD::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } diff --git a/tests-expanded/test_spec_shaking_v2_tests.rs b/tests-expanded/test_spec_shaking_v2_tests.rs index e090eb374..b82dbd204 100644 --- a/tests-expanded/test_spec_shaking_v2_tests.rs +++ b/tests-expanded/test_spec_shaking_v2_tests.rs @@ -186,10 +186,33 @@ impl ::core::cmp::PartialEq for UsedParamStruct { self.a == other.a && self.nested == other.nested } } -pub static __SPEC_XDR_TYPE_USEDPARAMSTRUCT: [u8; 96usize] = UsedParamStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDPARAMSTRUCT: [u8; UsedParamStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedParamStruct::spec_xdr(); impl UsedParamStruct { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fUsedParamStruct\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x06nested\0\0\0\0\x07\xd0\0\0\0\x12UsedNestedInStruct\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedParamStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"nested"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedNestedInStruct"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedParamStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedParamStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedParamStruct { @@ -621,10 +644,37 @@ impl ::core::cmp::PartialEq for UsedReturnEnum { } } } -pub static __SPEC_XDR_TYPE_USEDRETURNENUM: [u8; 84usize] = UsedReturnEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRETURNENUM: [u8; UsedReturnEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedReturnEnum::spec_xdr(); impl UsedReturnEnum { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0eUsedReturnEnum\0\0\0\0\0\x02\0\0\0\x01\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedReturnEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UsedReturnEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedReturnEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedReturnEnum { @@ -1137,10 +1187,29 @@ impl ::core::cmp::PartialEq for UsedParamIntEnum { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_USEDPARAMINTENUM: [u8; 68usize] = UsedParamIntEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDPARAMINTENUM: [u8; UsedParamIntEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedParamIntEnum::spec_xdr(); impl UsedParamIntEnum { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x10UsedParamIntEnum\0\0\0\x02\0\0\0\0\0\0\0\x01X\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01Y\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedParamIntEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"X"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Y"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedParamIntEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedParamIntEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedParamIntEnum { @@ -1468,10 +1537,31 @@ impl ::core::cmp::PartialEq for UsedErrorEnum { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_USEDERRORENUM: [u8; 76usize] = UsedErrorEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDERRORENUM: [u8; UsedErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedErrorEnum::spec_xdr(); impl UsedErrorEnum { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\rUsedErrorEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x08NotFound\0\0\0\x01\0\0\0\0\0\0\0\x07Invalid\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedErrorEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotFound"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Invalid"), + value: 2u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedErrorEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedErrorEnum { @@ -1621,10 +1711,26 @@ impl ::core::cmp::PartialEq for UsedPanicErrorEnum { true } } -pub static __SPEC_XDR_TYPE_USEDPANICERRORENUM: [u8; 56usize] = UsedPanicErrorEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDPANICERRORENUM: [u8; UsedPanicErrorEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedPanicErrorEnum::spec_xdr(); impl UsedPanicErrorEnum { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x12UsedPanicErrorEnum\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Boom\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedPanicErrorEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Boom"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedPanicErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedPanicErrorEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedPanicErrorEnum { @@ -1772,10 +1878,26 @@ impl ::core::cmp::PartialEq for UsedAssertErrorEnum { true } } -pub static __SPEC_XDR_TYPE_USEDASSERTERRORENUM: [u8; 56usize] = UsedAssertErrorEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDASSERTERRORENUM: [u8; UsedAssertErrorEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedAssertErrorEnum::spec_xdr(); impl UsedAssertErrorEnum { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x13UsedAssertErrorEnum\0\0\0\0\x01\0\0\0\0\0\0\0\x03Bad\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedAssertErrorEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Bad"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedAssertErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedAssertErrorEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedAssertErrorEnum { @@ -1930,10 +2052,24 @@ impl ::core::cmp::PartialEq for UsedNestedInStruct { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDNESTEDINSTRUCT: [u8; 56usize] = UsedNestedInStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDNESTEDINSTRUCT: [u8; UsedNestedInStruct::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedNestedInStruct::spec_xdr(); impl UsedNestedInStruct { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UsedNestedInStruct\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedNestedInStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedNestedInStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedNestedInStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedNestedInStruct { @@ -2294,10 +2430,24 @@ impl ::core::cmp::PartialEq for UsedVecElement { self.data == other.data } } -pub static __SPEC_XDR_TYPE_USEDVECELEMENT: [u8; 52usize] = UsedVecElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECELEMENT: [u8; UsedVecElement::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedVecElement::spec_xdr(); impl UsedVecElement { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0eUsedVecElement\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecElement { @@ -2663,10 +2813,29 @@ impl ::core::cmp::PartialEq for UsedMapKey { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_USEDMAPKEY: [u8; 64usize] = UsedMapKey::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDMAPKEY: [u8; UsedMapKey::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedMapKey::spec_xdr(); impl UsedMapKey { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\nUsedMapKey\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02K1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02K2\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedMapKey"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"K1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"K2"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedMapKey::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedMapKey::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedMapKey { @@ -2985,10 +3154,24 @@ impl ::core::cmp::PartialEq for UsedMapVal { self.v == other.v } } -pub static __SPEC_XDR_TYPE_USEDMAPVAL: [u8; 48usize] = UsedMapVal::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDMAPVAL: [u8; UsedMapVal::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedMapVal::spec_xdr(); impl UsedMapVal { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\nUsedMapVal\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedMapVal"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedMapVal::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedMapVal::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedMapVal { @@ -3348,10 +3531,24 @@ impl ::core::cmp::PartialEq for UsedOptionElement { self.data == other.data } } -pub static __SPEC_XDR_TYPE_USEDOPTIONELEMENT: [u8; 56usize] = UsedOptionElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDOPTIONELEMENT: [u8; UsedOptionElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedOptionElement::spec_xdr(); impl UsedOptionElement { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedOptionElement\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedOptionElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedOptionElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedOptionElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedOptionElement { @@ -3710,10 +3907,24 @@ impl ::core::cmp::PartialEq for UsedResultOk { self.data == other.data } } -pub static __SPEC_XDR_TYPE_USEDRESULTOK: [u8; 48usize] = UsedResultOk::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRESULTOK: [u8; UsedResultOk::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedResultOk::spec_xdr(); impl UsedResultOk { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUsedResultOk\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedResultOk"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedResultOk::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedResultOk::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedResultOk { @@ -4080,10 +4291,37 @@ impl ::core::cmp::PartialEq for UsedEventSimple { self.amount == other.amount && self.kind == other.kind } } -pub static __SPEC_XDR_EVENT_USEDEVENTSIMPLE: [u8; 112usize] = UsedEventSimple::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTSIMPLE: [u8; UsedEventSimple::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventSimple::spec_xdr(); impl UsedEventSimple { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x0fUsedEventSimple\0\0\0\0\x01\0\0\0\x11used_event_simple\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventSimple", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_simple"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventSimple::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventSimple::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventSimple { @@ -4162,10 +4400,29 @@ impl ::core::cmp::PartialEq for UsedEventTopicType { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_USEDEVENTTOPICTYPE: [u8; 76usize] = UsedEventTopicType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTTOPICTYPE: [u8; UsedEventTopicType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventTopicType::spec_xdr(); impl UsedEventTopicType { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x12UsedEventTopicType\0\0\0\0\0\x02\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\0\0\0\0\x04Mint\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicType"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Transfer"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Mint"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventTopicType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventTopicType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventTopicType { @@ -4498,11 +4755,41 @@ impl ::core::cmp::PartialEq for UsedEventWithTopicType { self.amount == other.amount && self.kind == other.kind } } -pub static __SPEC_XDR_EVENT_USEDEVENTWITHTOPICTYPE: [u8; 152usize] = - UsedEventWithTopicType::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHTOPICTYPE: [u8; UsedEventWithTopicType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventWithTopicType::spec_xdr(); impl UsedEventWithTopicType { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x16UsedEventWithTopicType\0\0\0\0\0\x01\0\0\0\x1aused_event_with_topic_type\0\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\x07\xd0\0\0\0\x12UsedEventTopicType\0\0\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithTopicType", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_topic_type"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithTopicType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithTopicType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithTopicType { @@ -4586,10 +4873,29 @@ impl ::core::cmp::PartialEq for UsedEventDataType { self.x == other.x && self.y == other.y } } -pub static __SPEC_XDR_TYPE_USEDEVENTDATATYPE: [u8; 72usize] = UsedEventDataType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTDATATYPE: [u8; UsedEventDataType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventDataType::spec_xdr(); impl UsedEventDataType { - pub const fn spec_xdr() -> [u8; 72usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedEventDataType\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataType"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventDataType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventDataType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventDataType { @@ -5009,11 +5315,41 @@ impl ::core::cmp::PartialEq for UsedEventWithDataType { self.kind == other.kind && self.payload == other.payload } } -pub static __SPEC_XDR_EVENT_USEDEVENTWITHDATATYPE: [u8; 152usize] = - UsedEventWithDataType::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHDATATYPE: [u8; UsedEventWithDataType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventWithDataType::spec_xdr(); impl UsedEventWithDataType { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x15UsedEventWithDataType\0\0\0\0\0\0\x01\0\0\0\x19used_event_with_data_type\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x07payload\0\0\0\x07\xd0\0\0\0\x11UsedEventDataType\0\0\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithDataType", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_data_type"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithDataType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithDataType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithDataType { @@ -5093,10 +5429,28 @@ impl ::core::cmp::PartialEq for UsedEventTopicOuter { self.inner == other.inner } } -pub static __SPEC_XDR_TYPE_USEDEVENTTOPICOUTER: [u8; 84usize] = UsedEventTopicOuter::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTTOPICOUTER: [u8; UsedEventTopicOuter::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventTopicOuter::spec_xdr(); impl UsedEventTopicOuter { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x13UsedEventTopicOuter\0\0\0\0\x01\0\0\0\0\0\0\0\x05inner\0\0\0\0\0\x07\xd0\0\0\0\x13UsedEventTopicInner\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicOuter"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicInner"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventTopicOuter::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventTopicOuter::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventTopicOuter { @@ -5467,10 +5821,24 @@ impl ::core::cmp::PartialEq for UsedEventTopicInner { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDEVENTTOPICINNER: [u8; 56usize] = UsedEventTopicInner::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTTOPICINNER: [u8; UsedEventTopicInner::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventTopicInner::spec_xdr(); impl UsedEventTopicInner { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x13UsedEventTopicInner\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicInner"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventTopicInner::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventTopicInner::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventTopicInner { @@ -5843,11 +6211,42 @@ impl ::core::cmp::PartialEq for UsedEventWithNestedTopic { self.amount == other.amount && self.info == other.info } } -pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDTOPIC: [u8; 152usize] = +pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDTOPIC: [u8; + UsedEventWithNestedTopic::__SPEC_XDR_VIEW.const_xdr_len()] = UsedEventWithNestedTopic::spec_xdr(); impl UsedEventWithNestedTopic { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x18UsedEventWithNestedTopic\0\0\0\x01\0\0\0\x1cused_event_with_nested_topic\0\0\0\x02\0\0\0\0\0\0\0\x04info\0\0\x07\xd0\0\0\0\x13UsedEventTopicOuter\0\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithNestedTopic", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_nested_topic"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"info"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicOuter"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithNestedTopic::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithNestedTopic::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithNestedTopic { @@ -5927,10 +6326,28 @@ impl ::core::cmp::PartialEq for UsedEventDataOuter { self.inner == other.inner } } -pub static __SPEC_XDR_TYPE_USEDEVENTDATAOUTER: [u8; 84usize] = UsedEventDataOuter::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTDATAOUTER: [u8; UsedEventDataOuter::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventDataOuter::spec_xdr(); impl UsedEventDataOuter { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UsedEventDataOuter\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05inner\0\0\0\0\0\x07\xd0\0\0\0\x12UsedEventDataInner\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataOuter"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataInner"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventDataOuter::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventDataOuter::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventDataOuter { @@ -6299,10 +6716,24 @@ impl ::core::cmp::PartialEq for UsedEventDataInner { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDEVENTDATAINNER: [u8; 56usize] = UsedEventDataInner::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTDATAINNER: [u8; UsedEventDataInner::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventDataInner::spec_xdr(); impl UsedEventDataInner { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UsedEventDataInner\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataInner"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventDataInner::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventDataInner::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventDataInner { @@ -6673,11 +7104,41 @@ impl ::core::cmp::PartialEq for UsedEventWithNestedData { self.kind == other.kind && self.payload == other.payload } } -pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDDATA: [u8; 152usize] = - UsedEventWithNestedData::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDDATA: [u8; + UsedEventWithNestedData::__SPEC_XDR_VIEW.const_xdr_len()] = UsedEventWithNestedData::spec_xdr(); impl UsedEventWithNestedData { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x17UsedEventWithNestedData\0\0\0\0\x01\0\0\0\x1bused_event_with_nested_data\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x07payload\0\0\0\x07\xd0\0\0\0\x12UsedEventDataOuter\0\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithNestedData", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_nested_data"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataOuter"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithNestedData::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithNestedData::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithNestedData { @@ -6759,10 +7220,29 @@ impl ::core::cmp::PartialEq for UsedRefTopicType { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_USEDREFTOPICTYPE: [u8; 68usize] = UsedRefTopicType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDREFTOPICTYPE: [u8; UsedRefTopicType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRefTopicType::spec_xdr(); impl UsedRefTopicType { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x10UsedRefTopicType\0\0\0\x02\0\0\0\0\0\0\0\x04Send\0\0\0\x01\0\0\0\0\0\0\0\x04Recv\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRefTopicType"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Send"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recv"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRefTopicType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRefTopicType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRefTopicType { @@ -7088,10 +7568,28 @@ impl ::core::cmp::PartialEq for UsedRefDataType { self.nested == other.nested } } -pub static __SPEC_XDR_TYPE_USEDREFDATATYPE: [u8; 76usize] = UsedRefDataType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDREFDATATYPE: [u8; UsedRefDataType::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedRefDataType::spec_xdr(); impl UsedRefDataType { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fUsedRefDataType\0\0\0\0\x01\0\0\0\0\0\0\0\x06nested\0\0\0\0\x07\xd0\0\0\0\x10UsedRefDataInner" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataType"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"nested"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataInner"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRefDataType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRefDataType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRefDataType { @@ -7453,10 +7951,24 @@ impl ::core::cmp::PartialEq for UsedRefDataInner { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDREFDATAINNER: [u8; 52usize] = UsedRefDataInner::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDREFDATAINNER: [u8; UsedRefDataInner::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRefDataInner::spec_xdr(); impl UsedRefDataInner { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x10UsedRefDataInner\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataInner"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRefDataInner::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRefDataInner::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRefDataInner { @@ -7825,10 +8337,45 @@ impl<'a> ::core::cmp::PartialEq for UsedEventWithRefs<'a> { self.kind == other.kind && self.payload == other.payload } } -pub static __SPEC_XDR_EVENT_USEDEVENTWITHREFS: [u8; 156usize] = UsedEventWithRefs::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHREFS: [u8; UsedEventWithRefs::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventWithRefs::spec_xdr(); impl<'a> UsedEventWithRefs<'a> { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x11UsedEventWithRefs\0\0\0\0\0\0\x01\0\0\0\x14used_event_with_refs\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\x07\xd0\0\0\0\x10UsedRefTopicType\0\0\0\x01\0\0\0\0\0\0\0\x07payload\0\0\0\x07\xd0\0\0\0\x0fUsedRefDataType\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithRefs", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_refs"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRefTopicType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithRefs::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithRefs::__SPEC_XDR_VIEW.const_to_xdr() } } impl<'a> soroban_sdk::SpecShakingMarker for UsedEventWithRefs<'a> { @@ -7903,10 +8450,24 @@ impl ::core::cmp::PartialEq for UsedTupleElement { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDTUPLEELEMENT: [u8; 52usize] = UsedTupleElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDTUPLEELEMENT: [u8; UsedTupleElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedTupleElement::spec_xdr(); impl UsedTupleElement { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x10UsedTupleElement\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedTupleElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedTupleElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedTupleElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedTupleElement { @@ -8270,11 +8831,24 @@ impl ::core::cmp::PartialEq for UsedTupleReturnElement { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDTUPLERETURNELEMENT: [u8; 60usize] = - UsedTupleReturnElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDTUPLERETURNELEMENT: [u8; UsedTupleReturnElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedTupleReturnElement::spec_xdr(); impl UsedTupleReturnElement { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x16UsedTupleReturnElement\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedTupleReturnElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedTupleReturnElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedTupleReturnElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedTupleReturnElement { @@ -8642,11 +9216,24 @@ impl ::core::cmp::PartialEq for UsedVecInnerVecElement { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDVECINNERVECELEMENT: [u8; 60usize] = - UsedVecInnerVecElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECINNERVECELEMENT: [u8; UsedVecInnerVecElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedVecInnerVecElement::spec_xdr(); impl UsedVecInnerVecElement { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x16UsedVecInnerVecElement\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecInnerVecElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecInnerVecElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecInnerVecElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecInnerVecElement { @@ -9014,10 +9601,24 @@ impl ::core::cmp::PartialEq for UsedVecInnerElement { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDVECINNERELEMENT: [u8; 56usize] = UsedVecInnerElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECINNERELEMENT: [u8; UsedVecInnerElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedVecInnerElement::spec_xdr(); impl UsedVecInnerElement { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x13UsedVecInnerElement\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecInnerElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecInnerElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecInnerElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecInnerElement { @@ -9395,10 +9996,48 @@ impl ::core::cmp::PartialEq for UsedVecElementNested { self.val == other.val && self.inner == other.inner && self.vec_inner == other.vec_inner } } -pub static __SPEC_XDR_TYPE_USEDVECELEMENTNESTED: [u8; 156usize] = UsedVecElementNested::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECELEMENTNESTED: [u8; UsedVecElementNested::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedVecElementNested::spec_xdr(); impl UsedVecElementNested { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x14UsedVecElementNested\0\0\0\x03\0\0\0\0\0\0\0\x05inner\0\0\0\0\0\x07\xd0\0\0\0\x13UsedVecInnerElement\0\0\0\0\0\0\0\0\x03val\0\0\0\0\x04\0\0\0\0\0\0\0\tvec_inner\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x16UsedVecInnerVecElement\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecElementNested"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedVecInnerElement"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"vec_inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedVecInnerVecElement", + ), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecElementNested::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecElementNested::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecElementNested { @@ -9883,10 +10522,24 @@ impl ::core::cmp::PartialEq for UsedNonPubStruct { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDNONPUBSTRUCT: [u8; 52usize] = UsedNonPubStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDNONPUBSTRUCT: [u8; UsedNonPubStruct::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedNonPubStruct::spec_xdr(); impl UsedNonPubStruct { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x10UsedNonPubStruct\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedNonPubStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedNonPubStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedNonPubStruct { @@ -10243,10 +10896,26 @@ impl ::core::cmp::PartialEq for UsedNonPubError { true } } -pub static __SPEC_XDR_TYPE_USEDNONPUBERROR: [u8; 52usize] = UsedNonPubError::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDNONPUBERROR: [u8; UsedNonPubError::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedNonPubError::spec_xdr(); impl UsedNonPubError { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x0fUsedNonPubError\0\0\0\0\x01\0\0\0\0\0\0\0\x04Fail\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Fail"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedNonPubError::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedNonPubError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedNonPubError { @@ -10399,10 +11068,28 @@ impl ::core::cmp::PartialEq for UsedRecursiveRoot { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDRECURSIVEROOT: [u8; 80usize] = UsedRecursiveRoot::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRECURSIVEROOT: [u8; UsedRecursiveRoot::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRecursiveRoot::spec_xdr(); impl UsedRecursiveRoot { - pub const fn spec_xdr() -> [u8; 80usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedRecursiveRoot\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\x07\xd0\0\0\0\x11UsedRecursiveNode\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveRoot"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveNode"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRecursiveRoot::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRecursiveRoot::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRecursiveRoot { @@ -10788,10 +11475,45 @@ impl ::core::cmp::PartialEq for UsedRecursiveNode { } } } -pub static __SPEC_XDR_TYPE_USEDRECURSIVENODE: [u8; 140usize] = UsedRecursiveNode::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRECURSIVENODE: [u8; UsedRecursiveNode::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRecursiveNode::spec_xdr(); impl UsedRecursiveNode { - pub const fn spec_xdr() -> [u8; 140usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x11UsedRecursiveNode\0\0\0\0\0\0\x02\0\0\0\x01\0\0\0\0\0\0\0\x0cNotRecursive\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UsedLeaf\0\0\0\x01\0\0\0\0\0\0\0\tRecursive\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x11UsedRecursiveLeaf\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveNode"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotRecursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedLeaf"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveLeaf"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRecursiveNode::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRecursiveNode::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRecursiveNode { @@ -11312,10 +12034,32 @@ impl ::core::cmp::PartialEq for UsedRecursiveLeaf { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDRECURSIVELEAF: [u8; 84usize] = UsedRecursiveLeaf::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRECURSIVELEAF: [u8; UsedRecursiveLeaf::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRecursiveLeaf::spec_xdr(); impl UsedRecursiveLeaf { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedRecursiveLeaf\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x11UsedRecursiveRoot\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveLeaf"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveRoot"), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRecursiveLeaf::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRecursiveLeaf::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRecursiveLeaf { @@ -11680,10 +12424,24 @@ impl ::core::cmp::PartialEq for UsedLeaf { self.val == other.val } } -pub static __SPEC_XDR_TYPE_USEDLEAF: [u8; 44usize] = UsedLeaf::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDLEAF: [u8; UsedLeaf::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedLeaf::spec_xdr(); impl UsedLeaf { - pub const fn spec_xdr() -> [u8; 44usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UsedLeaf\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedLeaf"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedLeaf::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedLeaf::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedLeaf { @@ -12790,10 +13548,40 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -13323,11 +14111,45 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = - SubContractInvocation::spec_xdr(); + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; SubContractInvocation::__SPEC_XDR_VIEW + .const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -13799,11 +14621,39 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -14294,11 +15144,51 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -14864,10 +15754,31 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_STRUCTA: [u8; 60usize] = StructA::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTA: [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructA::spec_xdr(); impl StructA { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructA\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructA { @@ -15304,10 +16215,31 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_STRUCTB: [u8; 60usize] = StructB::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTB: [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructB::spec_xdr(); impl StructB { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructB\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructB { @@ -15744,10 +16676,35 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_STRUCTC: [u8; 64usize] = StructC::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTC: [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructC::spec_xdr(); impl StructC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructC\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructC { @@ -16187,10 +17144,31 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; 64usize] = StructTupleA::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleA::spec_xdr(); impl StructTupleA { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleA\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleA { @@ -16592,10 +17570,31 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; 64usize] = StructTupleB::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleB::spec_xdr(); impl StructTupleB { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleB\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\n" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleB { @@ -16998,10 +17997,31 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; 64usize] = StructTupleC::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleC::spec_xdr(); impl StructTupleC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleC\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x13\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x0b" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleC { @@ -17472,10 +18492,66 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -18132,10 +19208,30 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -18674,11 +19770,67 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -19379,10 +20531,42 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { @@ -19929,10 +21113,37 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ENUMA: [u8; 76usize] = EnumA::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMA: [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumA::spec_xdr(); impl EnumA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumA\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V3\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumA { @@ -20451,10 +21662,44 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_ENUMB: [u8; 96usize] = EnumB::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMB: [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumB::spec_xdr(); impl EnumB { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumB\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\0\x07\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x02\0\0\0\x07\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumB { @@ -21091,10 +22336,51 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_TYPE_ENUMC: [u8; 120usize] = EnumC::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMC: [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumC::spec_xdr(); impl EnumC { - pub const fn spec_xdr() -> [u8; 120usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumC\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x07StructA\0\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0cStructTupleA" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumC { @@ -21660,10 +22946,34 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; 76usize] = EnumIntA::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntA::spec_xdr(); impl EnumIntA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntA\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 3u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntA { @@ -22025,10 +23335,34 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; 76usize] = EnumIntB::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntB::spec_xdr(); impl EnumIntB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntB\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x14\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x1e" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 20u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 30u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntB { @@ -22390,10 +23724,34 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; 76usize] = EnumIntC::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntC::spec_xdr(); impl EnumIntC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntC\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0d\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\xc8\0\0\0\0\0\0\0\x02V3\0\0\0\0\x01," + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 200u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 300u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntC { @@ -22755,10 +24113,36 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ERRORA: [u8; 76usize] = ErrorA::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERRORA: [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorA::spec_xdr(); impl ErrorA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorA\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 3u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorA { @@ -22941,10 +24325,36 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ERRORB: [u8; 76usize] = ErrorB::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERRORB: [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorB::spec_xdr(); impl ErrorB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorB\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x0c" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 11u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 12u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorB { @@ -23127,10 +24537,36 @@ mod wasm_imported { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_ERRORC: [u8; 76usize] = ErrorC::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERRORC: [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorC::spec_xdr(); impl ErrorC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorC\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0d\0\0\0\0\0\0\0\x02E2\0\0\0\0\0e\0\0\0\0\0\0\0\x02E3\0\0\0\0\0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 101u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 102u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorC { @@ -23313,10 +24749,35 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_EVENT_EVENTA: [u8; 88usize] = EventA::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTA: [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] = + EventA::spec_xdr(); impl EventA { - pub const fn spec_xdr() -> [u8; 88usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventA\0\0\0\0\0\x01\0\0\0\x07event_a\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventA")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_a"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] { + EventA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventA { @@ -23433,10 +24894,41 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_EVENT_EVENTB: [u8; 108usize] = EventB::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTB: [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] = + EventB::spec_xdr(); impl EventB { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventB\0\0\0\0\0\x01\0\0\0\x07event_b\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventB")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_b"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] { + EventB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventB { @@ -23557,10 +25049,41 @@ mod wasm_imported { } } } - pub static __SPEC_XDR_EVENT_EVENTC: [u8; 108usize] = EventC::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTC: [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] = + EventC::spec_xdr(); impl EventC { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventC\0\0\0\0\0\x01\0\0\0\x07event_c\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventC")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_c"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] { + EventC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventC { @@ -23648,10 +25171,22 @@ mod wasm_imported { ::core::option::Option::Some(::core::cmp::Ordering::Equal) } } - pub static __SPEC_XDR_EVENT_EVENTD: [u8; 48usize] = EventD::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTD: [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] = + EventD::spec_xdr(); impl EventD { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventD\0\0\0\0\0\x01\0\0\0\x07event_d\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventD")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_d"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] { + EventD::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventD { @@ -23722,10 +25257,24 @@ impl ::core::cmp::PartialEq for UnusedStruct { self.x == other.x } } -pub static __SPEC_XDR_TYPE_UNUSEDSTRUCT: [u8; 48usize] = UnusedStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDSTRUCT: [u8; UnusedStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedStruct::spec_xdr(); impl UnusedStruct { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUnusedStruct\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedStruct { @@ -24093,10 +25642,34 @@ impl ::core::cmp::PartialEq for UnusedEnum { } } } -pub static __SPEC_XDR_TYPE_UNUSEDENUM: [u8; 72usize] = UnusedEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDENUM: [u8; UnusedEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedEnum::spec_xdr(); impl UnusedEnum { - pub const fn spec_xdr() -> [u8; 72usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nUnusedEnum\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedEnum { @@ -24563,10 +26136,29 @@ impl ::core::cmp::PartialEq for UnusedIntEnum { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_UNUSEDINTENUM: [u8; 68usize] = UnusedIntEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDINTENUM: [u8; UnusedIntEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedIntEnum::spec_xdr(); impl UnusedIntEnum { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\rUnusedIntEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02U1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02U2\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedIntEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"U1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"U2"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedIntEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedIntEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedIntEnum { @@ -24897,10 +26489,37 @@ impl ::core::cmp::PartialEq for UnusedEvent { self.data == other.data && self.kind == other.kind } } -pub static __SPEC_XDR_EVENT_UNUSEDEVENT: [u8; 96usize] = UnusedEvent::spec_xdr(); +pub static __SPEC_XDR_EVENT_UNUSEDEVENT: [u8; UnusedEvent::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedEvent::spec_xdr(); impl UnusedEvent { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x0bUnusedEvent\0\0\0\0\x01\0\0\0\x0cunused_event\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UnusedEvent", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"unused_event"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UnusedEvent::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedEvent::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedEvent { @@ -24970,10 +26589,26 @@ impl ::core::cmp::PartialEq for UnusedPubError { true } } -pub static __SPEC_XDR_TYPE_UNUSEDPUBERROR: [u8; 52usize] = UnusedPubError::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDPUBERROR: [u8; UnusedPubError::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedPubError::spec_xdr(); impl UnusedPubError { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x0eUnusedPubError\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Nope\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedPubError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Nope"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UnusedPubError::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedPubError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedPubError { @@ -25126,11 +26761,25 @@ impl ::core::cmp::PartialEq for UnusedNonContractFnParam { self.x == other.x } } -pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNPARAM: [u8; 60usize] = +pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNPARAM: [u8; + UnusedNonContractFnParam::__SPEC_XDR_VIEW.const_xdr_len()] = UnusedNonContractFnParam::spec_xdr(); impl UnusedNonContractFnParam { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x18UnusedNonContractFnParam\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonContractFnParam"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedNonContractFnParam::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonContractFnParam::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonContractFnParam { @@ -25500,11 +27149,25 @@ impl ::core::cmp::PartialEq for UnusedNonContractFnReturn { self.x == other.x } } -pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNRETURN: [u8; 64usize] = +pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNRETURN: [u8; + UnusedNonContractFnReturn::__SPEC_XDR_VIEW.const_xdr_len()] = UnusedNonContractFnReturn::spec_xdr(); impl UnusedNonContractFnReturn { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x19UnusedNonContractFnReturn\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonContractFnReturn"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedNonContractFnReturn::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonContractFnReturn::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonContractFnReturn { @@ -25869,10 +27532,24 @@ impl ::core::cmp::PartialEq for UnusedNonPubStruct { self.x == other.x } } -pub static __SPEC_XDR_TYPE_UNUSEDNONPUBSTRUCT: [u8; 56usize] = UnusedNonPubStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDNONPUBSTRUCT: [u8; UnusedNonPubStruct::__SPEC_XDR_VIEW + .const_xdr_len()] = UnusedNonPubStruct::spec_xdr(); impl UnusedNonPubStruct { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UnusedNonPubStruct\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonPubStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedNonPubStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonPubStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonPubStruct { @@ -26229,10 +27906,26 @@ impl ::core::cmp::PartialEq for UnusedNonPubError { true } } -pub static __SPEC_XDR_TYPE_UNUSEDNONPUBERROR: [u8; 56usize] = UnusedNonPubError::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDNONPUBERROR: [u8; UnusedNonPubError::__SPEC_XDR_VIEW + .const_xdr_len()] = UnusedNonPubError::spec_xdr(); impl UnusedNonPubError { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x11UnusedNonPubError\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03Bad\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonPubError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Bad"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UnusedNonPubError::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonPubError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonPubError { @@ -26453,12 +28146,41 @@ pub mod __Contract__with_param__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_PARAM: [u8; 104usize] = super::Contract::spec_xdr_with_param(); + pub static __SPEC_XDR_FN_WITH_PARAM: [u8; super::Contract::__SPEC_XDR_VIEW_with_param + .const_xdr_len()] = super::Contract::spec_xdr_with_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_param")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedParamStruct"), + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ie"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedParamIntEnum"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_param() -> [u8; 104usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nwith_param\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x0fUsedParamStruct\0\0\0\0\0\0\0\0\x02ie\0\0\0\0\x07\xd0\0\0\0\x10UsedParamIntEnum\0\0\0\0" + pub const fn spec_xdr_with_param() -> [u8; Contract::__SPEC_XDR_VIEW_with_param.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_with_param.const_to_xdr() } } #[doc(hidden)] @@ -26467,12 +28189,28 @@ pub mod __Contract__with_return__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_RETURN: [u8; 56usize] = super::Contract::spec_xdr_with_return(); + pub static __SPEC_XDR_FN_WITH_RETURN: [u8; super::Contract::__SPEC_XDR_VIEW_with_return + .const_xdr_len()] = super::Contract::spec_xdr_with_return(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_return: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_return", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedReturnEnum"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_return() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bwith_return\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eUsedReturnEnum\0\0" + pub const fn spec_xdr_with_return( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_return.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_return.const_to_xdr() } } #[doc(hidden)] @@ -26481,12 +28219,33 @@ pub mod __Contract__with_error__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_ERROR: [u8; 64usize] = super::Contract::spec_xdr_with_error(); + pub static __SPEC_XDR_FN_WITH_ERROR: [u8; super::Contract::__SPEC_XDR_VIEW_with_error + .const_xdr_len()] = super::Contract::spec_xdr_with_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_error")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedErrorEnum"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_error() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nwith_error\0\0\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x04\0\0\x07\xd0\0\0\0\rUsedErrorEnum\0\0\0" + pub const fn spec_xdr_with_error() -> [u8; Contract::__SPEC_XDR_VIEW_with_error.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_with_error.const_to_xdr() } } #[doc(hidden)] @@ -26495,13 +28254,31 @@ pub mod __Contract__with_panic_error__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_PANIC_ERROR: [u8; 52usize] = + pub static __SPEC_XDR_FN_WITH_PANIC_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_panic_error.const_xdr_len()] = super::Contract::spec_xdr_with_panic_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_panic_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_panic_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fail"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_panic_error() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x10with_panic_error\0\0\0\x01\0\0\0\0\0\0\0\x04fail\0\0\0\x01\0\0\0\0" + pub const fn spec_xdr_with_panic_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_panic_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_panic_error.const_to_xdr() } } #[doc(hidden)] @@ -26510,13 +28287,31 @@ pub mod __Contract__with_assert_error__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_ASSERT_ERROR: [u8; 56usize] = + pub static __SPEC_XDR_FN_WITH_ASSERT_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_assert_error.const_xdr_len()] = super::Contract::spec_xdr_with_assert_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_assert_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_assert_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ok"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_assert_error() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11with_assert_error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02ok\0\0\0\0\0\x01\0\0\0\0" + pub const fn spec_xdr_with_assert_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_assert_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_assert_error.const_to_xdr() } } #[doc(hidden)] @@ -26525,13 +28320,31 @@ pub mod __Contract__with_panic_raw_error__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_PANIC_RAW_ERROR: [u8; 56usize] = + pub static __SPEC_XDR_FN_WITH_PANIC_RAW_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_panic_raw_error.const_xdr_len()] = super::Contract::spec_xdr_with_panic_raw_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_panic_raw_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_panic_raw_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fail"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_panic_raw_error() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14with_panic_raw_error\0\0\0\x01\0\0\0\0\0\0\0\x04fail\0\0\0\x01\0\0\0\0" + pub const fn spec_xdr_with_panic_raw_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_panic_raw_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_panic_raw_error.const_to_xdr() } } #[doc(hidden)] @@ -26540,12 +28353,35 @@ pub mod __Contract__with_vec__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_VEC: [u8; 68usize] = super::Contract::spec_xdr_with_vec(); + pub static __SPEC_XDR_FN_WITH_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_with_vec + .const_xdr_len()] = super::Contract::spec_xdr_with_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedVecElement"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_vec() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08with_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x0eUsedVecElement\0\0\0\0\0\0" + pub const fn spec_xdr_with_vec() -> [u8; Contract::__SPEC_XDR_VIEW_with_vec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_vec.const_to_xdr() } } #[doc(hidden)] @@ -26554,13 +28390,41 @@ pub mod __Contract__with_vec_nested__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_VEC_NESTED: [u8; 80usize] = + pub static __SPEC_XDR_FN_WITH_VEC_NESTED: [u8; + super::Contract::__SPEC_XDR_VIEW_with_vec_nested.const_xdr_len()] = super::Contract::spec_xdr_with_vec_nested(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_vec_nested: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_vec_nested", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedVecElementNested", + ), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_vec_nested() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0fwith_vec_nested\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x14UsedVecElementNested\0\0\0\0" + pub const fn spec_xdr_with_vec_nested( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_vec_nested.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_vec_nested.const_to_xdr() } } #[doc(hidden)] @@ -26569,12 +28433,40 @@ pub mod __Contract__with_map__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_MAP: [u8; 84usize] = super::Contract::spec_xdr_with_map(); + pub static __SPEC_XDR_FN_WITH_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_with_map + .const_xdr_len()] = super::Contract::spec_xdr_with_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"m"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedMapKey"), + }, + ), + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedMapVal"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_map() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08with_map\0\0\0\x01\0\0\0\0\0\0\0\x01m\0\0\0\0\0\x03\xec\0\0\x07\xd0\0\0\0\nUsedMapKey\0\0\0\0\x07\xd0\0\0\0\nUsedMapVal\0\0\0\0\0\0" + pub const fn spec_xdr_with_map() -> [u8; Contract::__SPEC_XDR_VIEW_with_map.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_map.const_to_xdr() } } #[doc(hidden)] @@ -26583,12 +28475,38 @@ pub mod __Contract__with_option__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_OPTION: [u8; 76usize] = super::Contract::spec_xdr_with_option(); + pub static __SPEC_XDR_FN_WITH_OPTION: [u8; super::Contract::__SPEC_XDR_VIEW_with_option + .const_xdr_len()] = super::Contract::spec_xdr_with_option(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_option: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_option", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"o"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedOptionElement"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_option() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bwith_option\0\0\0\0\x01\0\0\0\0\0\0\0\x01o\0\0\0\0\0\x03\xe8\0\0\x07\xd0\0\0\0\x11UsedOptionElement\0\0\0\0\0\0\0" + pub const fn spec_xdr_with_option( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_option.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_option.const_to_xdr() } } #[doc(hidden)] @@ -26597,12 +28515,39 @@ pub mod __Contract__with_result__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_RESULT: [u8; 80usize] = super::Contract::spec_xdr_with_result(); + pub static __SPEC_XDR_FN_WITH_RESULT: [u8; super::Contract::__SPEC_XDR_VIEW_with_result + .const_xdr_len()] = super::Contract::spec_xdr_with_result(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_result: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_result", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedResultOk"), + }, + ), + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedErrorEnum"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_result() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bwith_result\0\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\x07\xd0\0\0\0\x0cUsedResultOk\0\0\x07\xd0\0\0\0\rUsedErrorEnum\0\0\0" + pub const fn spec_xdr_with_result( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_result.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_result.const_to_xdr() } } #[doc(hidden)] @@ -26611,13 +28556,34 @@ pub mod __Contract__with_recursion__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_RECURSION: [u8; 76usize] = - super::Contract::spec_xdr_with_recursion(); + pub static __SPEC_XDR_FN_WITH_RECURSION: [u8; super::Contract::__SPEC_XDR_VIEW_with_recursion + .const_xdr_len()] = super::Contract::spec_xdr_with_recursion(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_recursion: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_recursion", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"r"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveRoot"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_recursion() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ewith_recursion\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01r\0\0\0\0\0\x07\xd0\0\0\0\x11UsedRecursiveRoot\0\0\0\0\0\0\0" + pub const fn spec_xdr_with_recursion( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_recursion.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_recursion.const_to_xdr() } } #[doc(hidden)] @@ -26626,13 +28592,39 @@ pub mod __Contract__with_auth_contexts__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_AUTH_CONTEXTS: [u8; 72usize] = + pub static __SPEC_XDR_FN_WITH_AUTH_CONTEXTS: [u8; + super::Contract::__SPEC_XDR_VIEW_with_auth_contexts.const_xdr_len()] = super::Contract::spec_xdr_with_auth_contexts(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_auth_contexts: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_auth_contexts", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"c"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Context"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_auth_contexts() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12with_auth_contexts\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x07Context\0\0\0\0\0" + pub const fn spec_xdr_with_auth_contexts( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_auth_contexts.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_auth_contexts.const_to_xdr() } } #[doc(hidden)] @@ -26641,13 +28633,35 @@ pub mod __Contract__with_invoker_auth__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_INVOKER_AUTH: [u8; 84usize] = + pub static __SPEC_XDR_FN_WITH_INVOKER_AUTH: [u8; + super::Contract::__SPEC_XDR_VIEW_with_invoker_auth.const_xdr_len()] = super::Contract::spec_xdr_with_invoker_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_invoker_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_invoker_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_invoker_auth() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11with_invoker_auth\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01i\0\0\0\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry\0\0\0\0" + pub const fn spec_xdr_with_invoker_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_invoker_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_invoker_auth.const_to_xdr() } } #[doc(hidden)] @@ -26656,13 +28670,35 @@ pub mod __Contract__with_executable__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_EXECUTABLE: [u8; 68usize] = + pub static __SPEC_XDR_FN_WITH_EXECUTABLE: [u8; + super::Contract::__SPEC_XDR_VIEW_with_executable.const_xdr_len()] = super::Contract::spec_xdr_with_executable(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_executable: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_executable", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"e"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_executable() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0fwith_executable\0\0\0\0\x01\0\0\0\0\0\0\0\x01e\0\0\0\0\0\x07\xd0\0\0\0\nExecutable\0\0\0\0\0\0" + pub const fn spec_xdr_with_executable( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_executable.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_executable.const_to_xdr() } } #[doc(hidden)] @@ -26671,13 +28707,24 @@ pub mod __Contract__publish_simple__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH_SIMPLE: [u8; 36usize] = - super::Contract::spec_xdr_publish_simple(); + pub static __SPEC_XDR_FN_PUBLISH_SIMPLE: [u8; super::Contract::__SPEC_XDR_VIEW_publish_simple + .const_xdr_len()] = super::Contract::spec_xdr_publish_simple(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_simple: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_simple", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_simple() -> [u8; 36usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0epublish_simple\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_simple( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_simple.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_simple.const_to_xdr() } } #[doc(hidden)] @@ -26686,13 +28733,25 @@ pub mod __Contract__publish_topic_type__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH_TOPIC_TYPE: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_TOPIC_TYPE: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_topic_type.const_xdr_len()] = super::Contract::spec_xdr_publish_topic_type(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_topic_type: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_topic_type", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_topic_type() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12publish_topic_type\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_topic_type( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_topic_type.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_topic_type.const_to_xdr() } } #[doc(hidden)] @@ -26701,13 +28760,25 @@ pub mod __Contract__publish_data_type__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH_DATA_TYPE: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_DATA_TYPE: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_data_type.const_xdr_len()] = super::Contract::spec_xdr_publish_data_type(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_data_type: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_data_type", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_data_type() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11publish_data_type\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_data_type( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_data_type.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_data_type.const_to_xdr() } } #[doc(hidden)] @@ -26716,13 +28787,25 @@ pub mod __Contract__publish_nested_topic__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH_NESTED_TOPIC: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_NESTED_TOPIC: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_nested_topic.const_xdr_len()] = super::Contract::spec_xdr_publish_nested_topic(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_nested_topic: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_nested_topic", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_nested_topic() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14publish_nested_topic\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_nested_topic( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_nested_topic.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_nested_topic.const_to_xdr() } } #[doc(hidden)] @@ -26731,13 +28814,25 @@ pub mod __Contract__publish_nested_data__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH_NESTED_DATA: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_NESTED_DATA: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_nested_data.const_xdr_len()] = super::Contract::spec_xdr_publish_nested_data(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_nested_data: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_nested_data", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_nested_data() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x13publish_nested_data\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_nested_data( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_nested_data.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_nested_data.const_to_xdr() } } #[doc(hidden)] @@ -26746,13 +28841,35 @@ pub mod __Contract__with_lib_struct__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_LIB_STRUCT: [u8; 64usize] = + pub static __SPEC_XDR_FN_WITH_LIB_STRUCT: [u8; + super::Contract::__SPEC_XDR_VIEW_with_lib_struct.const_xdr_len()] = super::Contract::spec_xdr_with_lib_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_lib_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_lib_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructC"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_lib_struct() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0fwith_lib_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x07StructC\0\0\0\0\0" + pub const fn spec_xdr_with_lib_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_lib_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_lib_struct.const_to_xdr() } } #[doc(hidden)] @@ -26761,13 +28878,35 @@ pub mod __Contract__with_wasm_imported__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_WASM_IMPORTED: [u8; 68usize] = + pub static __SPEC_XDR_FN_WITH_WASM_IMPORTED: [u8; + super::Contract::__SPEC_XDR_VIEW_with_wasm_imported.const_xdr_len()] = super::Contract::spec_xdr_with_wasm_imported(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_wasm_imported: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_wasm_imported", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_wasm_imported() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12with_wasm_imported\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x07StructA\0\0\0\0\0" + pub const fn spec_xdr_with_wasm_imported( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_wasm_imported.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_wasm_imported.const_to_xdr() } } #[doc(hidden)] @@ -26776,12 +28915,34 @@ pub mod __Contract__with_non_pub__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_NON_PUB: [u8; 68usize] = super::Contract::spec_xdr_with_non_pub(); + pub static __SPEC_XDR_FN_WITH_NON_PUB: [u8; super::Contract::__SPEC_XDR_VIEW_with_non_pub + .const_xdr_len()] = super::Contract::spec_xdr_with_non_pub(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_non_pub: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_non_pub", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_non_pub() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0cwith_non_pub\0\0\0\x01\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x10UsedNonPubStruct\0\0\0\0" + pub const fn spec_xdr_with_non_pub( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_non_pub.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_non_pub.const_to_xdr() } } #[doc(hidden)] @@ -26790,13 +28951,36 @@ pub mod __Contract__with_non_pub_error__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_NON_PUB_ERROR: [u8; 72usize] = + pub static __SPEC_XDR_FN_WITH_NON_PUB_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_non_pub_error.const_xdr_len()] = super::Contract::spec_xdr_with_non_pub_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_non_pub_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_non_pub_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubError"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_non_pub_error() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12with_non_pub_error\0\0\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x04\0\0\x07\xd0\0\0\0\x0fUsedNonPubError\0" + pub const fn spec_xdr_with_non_pub_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_non_pub_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_non_pub_error.const_to_xdr() } } #[doc(hidden)] @@ -26805,12 +28989,41 @@ pub mod __Contract__with_tuple__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_TUPLE: [u8; 80usize] = super::Contract::spec_xdr_with_tuple(); + pub static __SPEC_XDR_FN_WITH_TUPLE: [u8; super::Contract::__SPEC_XDR_VIEW_with_tuple + .const_xdr_len()] = super::Contract::spec_xdr_with_tuple(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_tuple: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_tuple")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"t"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedTupleElement", + ), + }, + ), + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_tuple() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nwith_tuple\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01t\0\0\0\0\0\x03\xed\0\0\0\x02\0\0\x07\xd0\0\0\0\x10UsedTupleElement\0\0\0\x04\0\0\0\0" + pub const fn spec_xdr_with_tuple() -> [u8; Contract::__SPEC_XDR_VIEW_with_tuple.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_with_tuple.const_to_xdr() } } #[doc(hidden)] @@ -26819,13 +29032,40 @@ pub mod __Contract__with_tuple_return__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_WITH_TUPLE_RETURN: [u8; 84usize] = + pub static __SPEC_XDR_FN_WITH_TUPLE_RETURN: [u8; + super::Contract::__SPEC_XDR_VIEW_with_tuple_return.const_xdr_len()] = super::Contract::spec_xdr_with_tuple_return(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_tuple_return: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_tuple_return", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedTupleReturnElement", + ), + }, + ), + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_tuple_return() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11with_tuple_return\0\0\0\0\0\0\0\0\0\0\x01\0\0\x03\xed\0\0\0\x02\0\0\x07\xd0\0\0\0\x16UsedTupleReturnElement\0\0\0\0\0\x04" + pub const fn spec_xdr_with_tuple_return( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_tuple_return.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_tuple_return.const_to_xdr() } } #[doc(hidden)] @@ -26834,13 +29074,25 @@ pub mod __Contract__publish_ref_event__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_PUBLISH_REF_EVENT: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_REF_EVENT: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_ref_event.const_xdr_len()] = super::Contract::spec_xdr_publish_ref_event(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_ref_event: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_ref_event", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_ref_event() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11publish_ref_event\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_ref_event( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_ref_event.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_ref_event.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -30316,7 +32568,7 @@ mod test { use soroban_sdk::xdr::ScSpecEntry; use std::collections::HashSet; use std::vec::Vec; - const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01^\x10`\x02~~\x01~`\x01~\x01~`\x03~~~\x01~`\x04~~~~\x01~`\x00\x00`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x01~\x00`\x02\x7f\x7f\x00`\x03~\x7f\x7f\x01~`\x02\x7f\x7f\x01\x7f`\x02\x7f~\x00`\x05~\x7f\x7f\x7f\x7f\x00`\x03\x7f\x7f\x7f\x00`\x01\x7f\x01~\x02I\x0c\x01x\x011\x00\x00\x01v\x013\x00\x01\x01i\x012\x00\x01\x01v\x01h\x00\x02\x01v\x01g\x00\x00\x01m\x01a\x00\x03\x01b\x01m\x00\x02\x01b\x01j\x00\x00\x01v\x011\x00\x00\x01b\x018\x00\x01\x01x\x015\x00\x01\x01m\x019\x00\x02\x0365\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x05\x06\x00\x07\x05\x05\x05\x05\x05\x05\x01\x08\x01\x05\x01\t\n\x0b\x0c\x01\r\x0c\x01\x01\x01\x05\x01\x01\x01\x00\x01\x05\x05\x0e\x0f\x01\x05\x01\x01\x01\x04\x04\x04\x05\x01p\x01\x0c\x0c\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\xd2\x88\xc0\x00\x0b\x7f\x00A\xa0\x8a\xc0\x00\x0b\x7f\x00A\xa0\x8a\xc0\x00\x0b\x07\x86\x04\x1f\x06memory\x02\x00\x11publish_data_type\x00\x17\x13publish_nested_data\x00\x1b\x14publish_nested_topic\x00\x1c\x11publish_ref_event\x00\x1e\x0epublish_simple\x00\x1f\x12publish_topic_type\x00 \x11with_assert_error\x00!\x12with_auth_contexts\x00#\nwith_error\x00$\x0fwith_executable\x00%\x11with_invoker_auth\x00*\x0fwith_lib_struct\x00-\x08with_map\x00.\x0cwith_non_pub\x00/\x12with_non_pub_error\x000\x0bwith_option\x001\x10with_panic_error\x002\x14with_panic_raw_error\x003\nwith_param\x004\x0ewith_recursion\x005\x0bwith_result\x006\x0bwith_return\x007\nwith_tuple\x00:\x11with_tuple_return\x00;\x08with_vec\x00<\x0fwith_vec_nested\x00=\x12with_wasm_imported\x00>\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\t\x11\x01\x00A\x01\x0b\x0b\x0f\x11\x13\x12\x0e\r\x14\x15\x16\x0c\x10\n\xac05\x0c\x00A\x00-\x00\x9c\x80\xc0\x80\x00\x1a\x0b\x16\x00A\x00-\x00\xfe\x80\xc0\x80\x00\x1aA\x00-\x00\xd4\x80\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\x8c\x81\xc0\x80\x00\x1a\x0bJ\x01\x01\x7f#\x80\x80\x80\x80\x00!\x00A\x00-\x00\xea\x83\xc0\x80\x00\x1a \x00A\x10k\"\x00A\x81\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xd2\x81\xc0\x80\x00\x1aA\x00-\x00\xe0\x81\xc0\x80\x00\x1aA\x00-\x00\xee\x81\xc0\x80\x00\x1a\x0b6\x01\x01\x7f#\x80\x80\x80\x80\x00!\x00A\x00-\x00\xec\x82\xc0\x80\x00\x1a \x00A\x10k\"\x00A\x82\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xfa\x82\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\xb2\x83\xc0\x80\x00\x1a\x0b\x86\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00A\x83\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xc4\x88\xc0\x80\x00\x1a \x00A\x84\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1aA\x00-\x00\xf0\x87\xc0\x80\x00\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x8c\x88\xc0\x80\x00\x1a \x00A\x83\x80\x80\x80\x006\x02\x04 \x00(\x02\x04\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x9a\x88\xc0\x80\x00\x1aA\x00-\x00\xfe\x87\xc0\x80\x00\x1a\x0b\x02\x00\x0bk\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00A\x83\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xc4\x88\xc0\x80\x00\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x8c\x88\xc0\x80\x00\x1a \x00A\x83\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x9a\x88\xc0\x80\x00\x1aA\x00-\x00\xa8\x88\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\xf8\x83\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\x86\x84\xc0\x80\x00\x1a\x0b\xae\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\xb0\x86\xc0\x80\x00A\x06\x10\x98\x80\x80\x80\x00!\x01A\x00-\x00\xa8\x81\xc0\x80\x00\x1aA\x00-\x00\x88\x83\xc0\x80\x00\x1aA\xf8\x86\xc0\x80\x00A\x19\x10\x98\x80\x80\x80\x00 \x01\x10\x99\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x18 \x00B\x84\x80\x80\x80\x107\x03\x10 \x00A\x88\x86\xc0\x80\x00A\x02 \x00A\x10jA\x02\x10\x9a\x80\x80\x80\x007\x03\x08 \x01A\xdc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A j$\x80\x80\x80\x80\x00B\x02\x0bE\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00 \x01\x10\xb8\x80\x80\x80\x00\x02@ \x02(\x02\x00A\x01G\r\x00\x00\x0b \x02)\x03\x08!\x03 \x02A\x10j$\x80\x80\x80\x80\x00 \x03\x0b\x92\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02 \x017\x03\x08 \x02 \x007\x03\x00A\x00!\x03\x03~\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10j\x10\xb9\x80\x80\x80\x00!\x01 \x02A j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x8b\x80\x80\x80\x00\x0b\xc5\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xdd\x84\xc0\x80\x00A\x06\x10\x98\x80\x80\x80\x00!\x01A\x00-\x00\xfc\x81\xc0\x80\x00\x1aA\x00-\x00\x8a\x82\xc0\x80\x00\x1aA\x00-\x00\xce\x83\xc0\x80\x00\x1aA\xab\x87\xc0\x80\x00A\x1b\x10\x98\x80\x80\x80\x00 \x01\x10\x99\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xa8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x007\x03\x00 \x00A\xa0\x86\xc0\x80\x00A\x01 \x00A\x01\x10\x9a\x80\x80\x80\x007\x03\x08 \x01A\xdc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\xbd\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xd0\x82\xc0\x80\x00\x1aA\x00-\x00\xde\x82\xc0\x80\x00\x1aA\x00-\x00\xdc\x83\xc0\x80\x00\x1aA\xc6\x87\xc0\x80\x00A\x1c\x10\x98\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xa8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x007\x03\x00 \x01A\xa0\x86\xc0\x80\x00A\x01 \x00A\x01\x10\x9a\x80\x80\x80\x00\x10\x99\x80\x80\x80\x00!\x01 \x00\x10\x9d\x80\x80\x80\x007\x03\x08 \x01A\xbc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x06\x00B\x8b\xc8\x01\x0b\xc7\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00 \x00A\x85\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1a \x00A\x86\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1aA\x00-\x00\xb6\x81\xc0\x80\x00\x1aA\xe4\x86\xc0\x80\x00A\x14\x10\x98\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x99\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xb0\x0c7\x03\x08 \x00A\xa8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x007\x03\x00 \x00A\xfc\x85\xc0\x80\x00A\x01 \x00A\x01\x10\x9a\x80\x80\x80\x007\x03\x08 \x01A\xdc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x7f\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xa8\x86\xc0\x80\x00A\x08\x10\x98\x80\x80\x80\x00!\x01A\x00-\x00\xaa\x80\xc0\x80\x00\x1aA\xc4\x86\xc0\x80\x00A\x11\x10\x98\x80\x80\x80\x00 \x01\x10\x99\x80\x80\x80\x00!\x01 \x00\x10\x9d\x80\x80\x80\x007\x03\x08 \x01A\xbc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b}\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x98\x82\xc0\x80\x00\x1aA\x00-\x00\x96\x83\xc0\x80\x00\x1aA\x91\x87\xc0\x80\x00A\x1a\x10\x98\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x99\x80\x80\x80\x00!\x01 \x00\x10\x9d\x80\x80\x80\x007\x03\x08 \x01A\xbc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0bJ\x01\x01\x7f\x02@\x02@A\x01A\x02A\x00 \x00\xa7A\xff\x01q\"\x01\x1b \x01A\x01F\x1b\"\x01A\x02F\r\x00 \x01A\x01qE\r\x01B\x02\x0f\x0b\x00\x0bA\x00-\x00\xc2\x82\xc0\x80\x00\x1aB\x83\x80\x80\x80\x10\x10\xa2\x80\x80\x80\x00\x00\x0b\x0b\x00 \x00\x10\x8a\x80\x80\x80\x00\x1a\x0b0\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x87\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x13\x00A\x00-\x00\x80\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\xa0\x05\x0b\xc0\x02\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xb6\x88\xc0\x80\x00\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00 \x00\x10\x81\x80\x80\x80\x00!\x02 \x01A\x006\x02\x08 \x01 \x007\x03\x00 \x01 \x02B \x88>\x02\x0c \x01A\x10j \x01\x10\xa6\x80\x80\x80\x00 \x01)\x03\x10\"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00\x02@ \x01)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\xca\x00F\r\x00 \x03A\x0eG\r\x01\x0b\x02@\x02@\x02@\x02@ \x00A\xc4\x84\xc0\x80\x00A\x03\x10\xa7\x80\x80\x80\x00B \x88\xa7\x0e\x03\x01\x02\x00\x04\x0b \x01(\x02\x08 \x01(\x02\x0c\x10\xa8\x80\x80\x80\x00\r\x03\x0c\x02\x0b \x01(\x02\x08 \x01(\x02\x0c\x10\xa8\x80\x80\x80\x00A\x01K\r\x02 \x01A\x10j \x01\x10\xa6\x80\x80\x80\x00 \x01)\x03\x10\"\x00B\x02Q\r\x02 \x00\xa7A\x01q\r\x02 \x01A\x10j \x01)\x03\x18\x10\xa9\x80\x80\x80\x00 \x01(\x02\x10A\x01G\r\x01\x0c\x02\x0b \x01(\x02\x08 \x01(\x02\x0c\x10\xa8\x80\x80\x80\x00\r\x01\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b\x00\x0bJ\x02\x01~\x01\x7fB\x02!\x02\x02@ \x01(\x02\x08\"\x03 \x01(\x02\x0cO\r\x00 \x00 \x01)\x03\x00 \x03\xadB \x86B\x04\x84\x10\x88\x80\x80\x80\x007\x03\x08 \x01 \x03A\x01j6\x02\x08B\x00!\x02\x0b \x00 \x027\x03\x00\x0b\x1c\x00 \x00 \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x86\x80\x80\x80\x00\x0b\x19\x00\x02@ \x01 \x00I\r\x00 \x01 \x00k\x0f\x0b\x10\xc0\x80\x80\x80\x00\x00\x0bB\x01\x01~B\x01!\x02\x02@ \x01B\xff\x01\x83B\xc8\x00R\r\x00 \x01\x10\x89\x80\x80\x80\x00B\x80\x80\x80\x80p\x83B\x80\x80\x80\x80\x80\x04R\r\x00 \x00 \x017\x03\x08B\x00!\x02\x0b \x00 \x027\x03\x00\x0b\xd3\x07\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A\xc0\x00k\"\x01$\x80\x80\x80\x80\x00 \x01A\x83\x80\x80\x80\x006\x02\x18 \x01(\x02\x18\x1aA\x00-\x00\xc4\x88\xc0\x80\x00\x1a \x01A\x84\x80\x80\x80\x006\x02\x18 \x01(\x02\x18\x1aA\x00-\x00\xf0\x87\xc0\x80\x00\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x8c\x88\xc0\x80\x00\x1a \x01A\x83\x80\x80\x80\x006\x02\x18 \x01(\x02\x18\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x9a\x88\xc0\x80\x00\x1aA\x00-\x00\xfe\x87\xc0\x80\x00\x1a\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00 \x00\x10\x81\x80\x80\x80\x00!\x02 \x01A\x006\x02\x10 \x01 \x007\x03\x08 \x01 \x02B \x88>\x02\x14 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00\x02@ \x01)\x03 \"\x00\xa7A\xff\x01q\"\x03A\xca\x00F\r\x00 \x03A\x0eG\r\x01\x0b\x02@\x02@\x02@ \x00A\xe0\x85\xc0\x80\x00A\x03\x10\xa7\x80\x80\x80\x00B \x88\xa7\x0e\x03\x00\x01\x02\x03\x0b \x01(\x02\x10 \x01(\x02\x14\x10\xa8\x80\x80\x80\x00A\x01K\r\x02 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x02 \x00\xa7A\x01q\r\x02 \x01)\x03 !\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x01A0j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x02 \x00A\xa4\x89\xc0\x80\x00A\x02 \x01A0jA\x02\x10\xab\x80\x80\x80\x00 \x01)\x030!\x00A\x00!\x03\x02@\x03@ \x03A\x18F\r\x01 \x01A\x18j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x02 \x00A\xe8\x88\xc0\x80\x00A\x03 \x01A\x18jA\x03\x10\xab\x80\x80\x80\x00 \x011\x00\x18B\xcb\x00R\r\x02 \x011\x00 B\xcd\x00R\r\x02\x02@ \x01-\x00(\"\x03A\x0eF\r\x00 \x03A\xca\x00G\r\x03\x0b \x011\x008B\xcb\x00R\r\x02\x0c\x03\x0b \x01(\x02\x10 \x01(\x02\x14\x10\xa8\x80\x80\x80\x00A\x01K\r\x01 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x01 \x00\xa7A\x01q\r\x01 \x01)\x03 !\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x01A0j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x01 \x00A\xc4\x89\xc0\x80\x00A\x02 \x01A0jA\x02\x10\xab\x80\x80\x80\x00 \x01A\x18j \x01)\x030\x10\xac\x80\x80\x80\x00 \x01(\x02\x18\r\x01 \x01A\x18j \x01)\x038\x10\xa9\x80\x80\x80\x00 \x01(\x02\x18A\x01G\r\x02\x0c\x01\x0b \x01(\x02\x10 \x01(\x02\x14\x10\xa8\x80\x80\x80\x00A\x01K\r\x00 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00 \x01)\x03 !\x00A\x00!\x03\x02@\x03@ \x03A\x18F\r\x01 \x01A\x18j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xe4\x89\xc0\x80\x00A\x03 \x01A\x18jA\x03\x10\xab\x80\x80\x80\x00 \x011\x00\x18B\xcb\x00R\r\x00 \x01A0j \x01)\x03 \x10\xac\x80\x80\x80\x00 \x01(\x020\r\x00 \x01A0j \x01)\x03(\x10\xa9\x80\x80\x80\x00 \x01(\x020A\x01G\r\x01\x0b\x00\x0b \x01A\xc0\x00j$\x80\x80\x80\x80\x00B\x02\x0b1\x00\x02@ \x02 \x04F\r\x00\x00\x0b \x00 \x01\xadB \x86B\x04\x84 \x03\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x85\x80\x80\x80\x00\x1a\x0b\xb3\x02\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@\x02@ \x01B\xff\x01\x83B\xcb\x00Q\r\x00 \x00B\x017\x03\x00\x0c\x01\x0b \x01\x10\x81\x80\x80\x80\x00!\x03 \x02A\x006\x02\x08 \x02 \x017\x03\x00 \x02 \x03B \x88>\x02\x0c \x02A\x10j \x02\x10\xa6\x80\x80\x80\x00\x02@ \x02)\x03\x10\"\x01B\x02Q\r\x00 \x01\xa7A\x01q\r\x00\x02@ \x02)\x03\x18\"\x01\xa7A\xff\x01q\"\x04A\xca\x00F\r\x00 \x04A\x0eG\r\x01\x0b\x02@ \x01A\x84\x89\xc0\x80\x00A\x01\x10\xa7\x80\x80\x80\x00B\xff\xff\xff\xff\x0fV\r\x00 \x02(\x02\x08 \x02(\x02\x0c\x10\xa8\x80\x80\x80\x00A\x01K\r\x00 \x02A\x10j \x02\x10\xa6\x80\x80\x80\x00 \x02)\x03\x10\"\x01B\x02Q\r\x00 \x01\xa7A\x01q\r\x00 \x02A\x10j \x02)\x03\x18\x10\xa9\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x01 \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0c\x02\x0b \x00B\x017\x03\x00\x0c\x01\x0b \x00B\x017\x03\x00\x0b \x02A j$\x80\x80\x80\x80\x00\x0b\x9e\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00 \x01A\x83\x80\x80\x80\x006\x02\x00 \x01(\x02\x00\x1aA\x00!\x02A\x00-\x00\xfc\x89\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x90\x8a\xc0\x80\x00A\x02 \x01A\x02\x10\xab\x80\x80\x80\x00 \x011\x00\x00B\xcb\x00R\r\x00 \x011\x00\x08B\xcd\x00Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0bA\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x88\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a \x01A\x89\x80\x80\x80\x006\x02\x08 \x01(\x02\x08\x1a\x02@ \x00B\xff\x01\x83B\xcc\x00Q\r\x00\x00\x0bB\x02\x0bg\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xe2\x80\xc0\x80\x00\x1a \x01B\x027\x03\x08\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00\x08B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x12\x00A\x00-\x00\xb8\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\x10\x0br\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xc4\x81\xc0\x80\x00\x1a\x02@ \x00B\x02Q\r\x00 \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xf8\x84\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\xab\x80\x80\x80\x00 \x01)\x03\x08B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0bI\x01\x01\x7f\x02@\x02@A\x01A\x02A\x00 \x00\xa7A\xff\x01q\"\x01\x1b \x01A\x01F\x1b\"\x01A\x02F\r\x00 \x01A\x01q\r\x01B\x02\x0f\x0b\x00\x0bA\x00-\x00\xb4\x82\xc0\x80\x00\x1aB\x83\x80\x80\x80\x10\x10\xa2\x80\x80\x80\x00\x00\x0b@\x01\x01\x7f\x02@\x02@A\x01A\x02A\x00 \x00\xa7A\xff\x01q\"\x01\x1b \x01A\x01F\x1b\"\x01A\x02F\r\x00 \x01A\x01q\r\x01B\x02\x0f\x0b\x00\x0bB\x83\x80\x80\x80\xf0\x00\x10\xa2\x80\x80\x80\x00\x00\x0b\x8a\x02\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00A\x00!\x03A\x00-\x00\xa6\x82\xc0\x80\x00\x1aA\x00-\x00\xc6\x80\xc0\x80\x00\x1a\x02@\x03@ \x03A\x10F\r\x01 \x02A\x08j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xe4\x84\xc0\x80\x00A\x02 \x02A\x08jA\x02\x10\xab\x80\x80\x80\x00 \x021\x00\x08B\x04R\r\x00 \x02B\x027\x03\x18 \x02)\x03\x10\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x02A\x18jA\x01\x10\xab\x80\x80\x80\x00\x02@ \x02)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\x07F\r\x00 \x03A\xc1\x00G\r\x01 \x00\x10\x82\x80\x80\x80\x00\x1a\x0bA\x00-\x00\xf0\x80\xc0\x80\x00\x1a \x01B\xff\x01\x83B\x04R\r\x00 \x01B \x88\xa7A}jA}K\r\x01\x0b\x00\x0b \x02A j$\x80\x80\x80\x80\x00B\x02\x0b\x90\x04\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A0k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xea\x83\xc0\x80\x00\x1a \x01A\x81\x80\x80\x80\x006\x02 \x01(\x02 \x1aA\x00-\x00\xd2\x81\xc0\x80\x00\x1aA\x00-\x00\xe0\x81\xc0\x80\x00\x1aA\x00-\x00\xee\x81\xc0\x80\x00\x1a \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\xab\x80\x80\x80\x00 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcb\x00R\r\x00 \x00\x10\x81\x80\x80\x80\x00!\x02 \x01A\x006\x02\x18 \x01 \x007\x03\x10 \x01 \x02B \x88>\x02\x1c \x01A j \x01A\x10j\x10\xa6\x80\x80\x80\x00 \x01)\x03 \"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00\x02@ \x01)\x03(\"\x00\xa7A\xff\x01q\"\x03A\xca\x00F\r\x00 \x03A\x0eG\r\x01\x0b\x02@\x02@\x02@ \x00A\x98\x85\xc0\x80\x00A\x02\x10\xa7\x80\x80\x80\x00B \x88\xa7\x0e\x02\x01\x00\x03\x0b \x01(\x02\x18 \x01(\x02\x1c\x10\xa8\x80\x80\x80\x00A\x01K\r\x02 \x01A j \x01A\x10j\x10\xa6\x80\x80\x80\x00 \x01)\x03 \"\x00B\x02Q\r\x02 \x00\xa7A\x01q\r\x02 \x01)\x03(!\x00 \x01B\x027\x03 \x00B\xff\x01\x83B\xcc\x00R\r\x02 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00 B\xcb\x00Q\r\x01\x0c\x02\x0b \x01(\x02\x18 \x01(\x02\x1c\x10\xa8\x80\x80\x80\x00A\x01K\r\x01 \x01A j \x01A\x10j\x10\xa6\x80\x80\x80\x00 \x01)\x03 \"\x00B\x02Q\r\x01 \x00\xa7A\x01q\r\x01 \x01)\x03(!\x00 \x01B\x027\x03 \x00B\xff\x01\x83B\xcc\x00R\r\x01 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00 B\x04R\r\x01\x0b \x01A0j$\x80\x80\x80\x80\x00B\x02\x0f\x0b\x00\x0bZ\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x94\x84\xc0\x80\x00\x1aA\x00-\x00\x80\x80\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x08A\xf8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8e\x80\xc0\x80\x00\x1a \x00A\xf8\x85\xc0\x80\x00A\x01\x10\xb8\x80\x80\x80\x00\x02@ \x00(\x02\x00A\x01G\r\x00\x00\x0b \x00)\x03\x08!\x01 \x00B\x84\x80\x80\x80\x107\x03\x08 \x00 \x017\x03\x00 \x00\x10\xb9\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0b\xdb\x01\x02\x01~\x04\x7f\x02@\x02@ \x02A\tK\r\x00B\x00!\x03 \x02!\x04 \x01!\x05\x03@\x02@ \x04\r\x00 \x03B\x08\x86B\x0e\x84!\x03\x0c\x03\x0bA\x01!\x06\x02@ \x05-\x00\x00\"\x07A\xdf\x00F\r\x00\x02@\x02@ \x07APjA\xff\x01qA\nI\r\x00 \x07A\xbf\x7fjA\xff\x01qA\x1aI\r\x01 \x07A\x9f\x7fjA\xff\x01qA\x1aO\r\x04 \x07AEj!\x06\x0c\x02\x0b \x07ARj!\x06\x0c\x01\x0b \x07AKj!\x06\x0b \x03B\x06\x86 \x06\xadB\xff\x01\x83\x84!\x03 \x04A\x7fj!\x04 \x05A\x01j!\x05\x0c\x00\x0b\x0b \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x87\x80\x80\x80\x00!\x03\x0b \x00B\x007\x03\x00 \x00 \x037\x03\x08\x0b\x17\x00 \x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x84\x80\x80\x80\x00\x0b\xc4\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\x9a\x81\xc0\x80\x00\x1a\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00\x02@\x03@ \x02A\x10F\r\x01 \x01A\x08j \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x08j\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x83\x80\x80\x80\x00\x1a \x01B\x027\x03\x18 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A\x18jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00\x18B\x04R\r\x00 \x011\x00\x10B\x04Q\r\x01\x0b\x00\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xa4\x83\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x18A\xa8\x84\xc0\x80\x00A\x01 \x00A\x18jA\x01\x10\x9a\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x10 \x00 \x017\x03\x08 \x00A\x08j\x10\xb9\x80\x80\x80\x00!\x01 \x00A j$\x80\x80\x80\x80\x00 \x01\x0b0\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x8a\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b0\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x8b\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x8d\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\xc0\x83\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x90\x8a\xc0\x80\x00A\x02 \x01A\x02\x10\xab\x80\x80\x80\x00 \x011\x00\x00B\x04R\r\x00 \x01)\x03\x08B\xfe\x01\x83P\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x03\x00\x00\x0b\t\x00\x10\xbf\x80\x80\x80\x00\x00\x0b\x0b\xaa\n\x01\x00A\x80\x80\xc0\x00\x0b\xa0\nSpEcV1Hh\xdc\xaaa\x8d\xf7\rSpEcV1\xe7\xcf\x9b1n\x15\x13\xfeSpEcV1\xe2\x01y\xc9\x9a\xf8\xedtSpEcV1v1\x0eP\xa9C\xc7*SpEcV1\xa9<\xd8+\xb7\xa7\r\x17SpEcV1X\x03\xf6t\xc7\xd0\x01\"SpEcV1\'\xbd_A\r\x9a\x89\x02SpEcV1p\x8c\x0fN!\x082\xd8SpEcV1\xc2\xf4N\xbf\xebqvpSpEcV1K\xdf\'8m/\xe8\x1dSpEcV1@\xb9LO\xf9\xd1\xe8\xe2SpEcV1\xde\x1dMa\x01\xec\xb0ASpEcV1\xc2 \x1b\xdc\xc8gxZSpEcV1[Q+\xe9\xde\xd5\xf2>SpEcV1\xb3/\x97\xd5\x06\xbd3BSpEcV1?\xd9\xb3q\xdep>\xf3SpEcV1*\\\x9c\xf4e\xaa\x1e]SpEcV1u2\x0b\x97\xae\xcd\x86\xbfSpEcV1\x0c\xf0\xf6w\xfd\x1a\x1b\x94SpEcV1\'\xf2\xa2\xb9\xd0)\xc0uSpEcV1\xf5\xd4\x9b\xa3\xccI\x13\xf7SpEcV1\x84\x08Y\xae\xa0\xf128SpEcV1\r\xb76\xae\x93D\xef\x1aSpEcV1\x8b\x89\x1f#\xbd\x157\xf4SpEcV16\x83?\xf0\xcdW\xb1/SpEcV1\x94\xc7w/_\xebXcSpEcV1\xb4\xabN]\xe3\xeaA\xd6SpEcV1\x13?J\x12d\xden|SpEcV1q\xa3z;6\xa6R\x01SpEcV1q^\xe2&\x9di\x9d\x0eSpEcV1Y\xa66\xb3\xecxE\x13SpEcV1\xcf@%X\xde+J@SpEcV1\xb6\x1c\xfd\xdfhY-dSpEcV1 \xfbl\x04B\x82\xc0\xb4SpEcV1\xe3\xf2\x9b5%a\xfb\xd6SpEcV1\xe6Q\xd5T\x13\x8a\xb7lSpEcV1[\xf4R\xdf\xdd\xb4\xb0\xbcSpEcV1\xaaX8\xde\xef\xbb6%SpEcV1k\xe4zxB\xd1+\x02val\x00\x00\x00\"\x02\x10\x00\x03\x00\x00\x00StellarAssetAccount\x00\x80\x04\x10\x00\x04\x00\x00\x000\x02\x10\x00\x0c\x00\x00\x00<\x02\x10\x00\x07\x00\x00\x00anested\x00\\\x02\x10\x00\x01\x00\x00\x00]\x02\x10\x00\x06\x00\x00\x00datat\x02\x10\x00\x04\x00\x00\x00NotRecursiveRecursive\x00\x00\x00\x80\x02\x10\x00\x0c\x00\x00\x00\x8c\x02\x10\x00\t\x00\x00\x00ContractCreateContractHostFnCreateContractWithCtorHostFn\xa8\x02\x10\x00\x08\x00\x00\x00\xb0\x02\x10\x00\x14\x00\x00\x00\xc4\x02\x10\x00\x1c\x00\x00\x00A\x00\x00\x00]\x02\x10\x00\x06\x00\x00\x00xy\x00\x00\x04\x03\x10\x00\x01\x00\x00\x00\x05\x03\x10\x00\x01\x00\x00\x00inner\x00\x00\x00\x18\x03\x10\x00\x05\x00\x00\x00transfercoordsamount6\x03\x10\x00\x06\x00\x00\x00used_event_simplepayloadU\x03\x10\x00\x07\x00\x00\x00used_event_with_refsused_event_with_data_typeused_event_with_topic_typeused_event_with_nested_dataused_event_with_nested_topicSpEcV1\xb6\xb1Hy\xda\xca\xaf\xccSpEcV1\x9e)H\x8e\xf0\x01{{SpEcV1ULqD\xd3\xfa:\x1fSpEcV1\x15\xe5\x1a,\xc0\xc7\xef\xd4SpEcV1s\x94\x0c\x1926\x1d\x90SpEcV1\xa3J\xcf\xf7D\x93\x0bBSpEcV1L|{\r\xf4\xf2\x1a\xa8SpEcV1\xf1\xf9\x90\x07E*e\xfdargscontractfn_name\x00\x00\x00R\x04\x10\x00\x04\x00\x00\x00V\x04\x10\x00\x08\x00\x00\x00^\x04\x10\x00\x07\x00\x00\x00Wasm\x80\x04\x10\x00\x04\x00\x00\x00contextsub_invocations\x00\x00\x8c\x04\x10\x00\x07\x00\x00\x00\x93\x04\x10\x00\x0f\x00\x00\x00executablesalt\x00\x00\xb4\x04\x10\x00\n\x00\x00\x00\xbe\x04\x10\x00\x04\x00\x00\x00constructor_args\xd4\x04\x10\x00\x10\x00\x00\x00\xb4\x04\x10\x00\n\x00\x00\x00\xbe\x04\x10\x00\x04\x00\x00\x00SpEcV1\xa3\x16\n\x8f\xc9\x92\xd2\x11f1f2\x00\x00\n\x05\x10\x00\x02\x00\x00\x00\x0c\x05\x10\x00\x02\x00\x00\x00\x00\x87`\x0econtractspecv0\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventD\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_d\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07Context\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nExecutable\x00\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStellarAsset\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07Account\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08contract\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x07fn_name\x00\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x07context\x00\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x00\x00\x00\x00\x0fsub_invocations\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x10constructor_args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08UsedLeaf\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_map\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01m\x00\x00\x00\x00\x00\x03\xec\x00\x00\x07\xd0\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_vec\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUnusedEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02K1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02K2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_param\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x00\x00\x00\x00\x02ie\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_tuple\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01t\x00\x00\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bUnusedEvent\x00\x00\x00\x00\x01\x00\x00\x00\x0cunused_event\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUnusedStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUsedResultOk\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_option\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01o\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x07\xd0\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_result\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x07\xd0\x00\x00\x00\x0cUsedResultOk\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_return\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUnusedIntEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02U1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02U2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08NotFound\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07Invalid\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cwith_non_pub\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUnusedPubError\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Nope\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Fail\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0epublish_simple\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0ewith_recursion\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01r\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveRoot\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedEventSimple\x00\x00\x00\x00\x01\x00\x00\x00\x11used_event_simple\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01X\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01Y\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04Send\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Recv\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_executable\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01e\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_lib_struct\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_vec_nested\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x14UsedVecElementNested\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UnusedNonPubError\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03Bad\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01y\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedRecursiveLeaf\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveRoot\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedRecursiveNode\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0cNotRecursive\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08UsedLeaf\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\tRecursive\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveLeaf\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedRecursiveRoot\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveNode\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10with_panic_error\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04fail\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventWithRefs\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14used_event_with_refs\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UnusedNonPubStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08Transfer\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Mint\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedPanicErrorEnum\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Boom\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_data_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_ref_event\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_assert_error\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02ok\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_invoker_auth\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01i\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_tuple_return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedAssertErrorEnum\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03Bad\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedVecInnerElement\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12publish_topic_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_auth_contexts\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01c\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x07Context\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_non_pub_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_wasm_imported\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14UsedVecElementNested\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedVecInnerElement\x00\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\tvec_inner\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x16UsedVecInnerVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13publish_nested_data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14publish_nested_topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14with_panic_raw_error\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04fail\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15UsedEventWithDataType\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x19used_event_with_data_type\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedVecInnerVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedEventWithTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1aused_event_with_topic_type\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17UsedEventWithNestedData\x00\x00\x00\x00\x01\x00\x00\x00\x1bused_event_with_nested_data\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UnusedNonContractFnParam\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UsedEventWithNestedTopic\x00\x00\x00\x01\x00\x00\x00\x1cused_event_with_nested_topic\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04info\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19UnusedNonContractFnReturn\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\xe3Context of a single authorized call performed by an address.\n\nCustom account contracts that implement `__check_auth` special function\nreceive a list of `Context` values corresponding to all the calls that\nneed to be authorized.\x00\x00\x00\x00\x00\x00\x00\x00\x07Context\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x14Contract invocation.\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x01\x00\x00\x00=Contract that has a constructor with no arguments is created.\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00DContract that has a constructor with 1 or more arguments is created.\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00\xbdAuthorization context of a single contract call.\n\nThis struct corresponds to a `require_auth_for_args` call for an address\nfrom `contract` function with `fn_name` name and `args` arguments.\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08contract\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x07fn_name\x00\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00_Contract executable used for creating a new contract and used in\n`CreateContractHostFnContext`.\x00\x00\x00\x00\x00\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x008Value of contract node in InvokerContractAuthEntry tree.\x00\x00\x00\x00\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x07context\x00\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x00\x00\x00\x00\x0fsub_invocations\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x02\x00\x00\x01/A node in the tree of authorizations performed on behalf of the current\ncontract as invoker of the contracts deeper in the call stack.\n\nThis is used as an argument of `authorize_as_current_contract` host function.\n\nThis tree corresponds `require_auth[_for_args]` calls on behalf of the\ncurrent contract.\x00\x00\x00\x00\x00\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x12Invoke a contract.\x00\x00\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x01\x00\x00\x005Create a contract passing 0 arguments to constructor.\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00=Create a contract passing 0 or more arguments to constructor.\x00\x00\x00\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00vAuthorization context for `create_contract` host function that creates a\nnew contract on behalf of authorizer address.\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\xd6Authorization context for `create_contract` host function that creates a\nnew contract on behalf of authorizer address.\nThis is the same as `CreateContractHostFnContext`, but also has\ncontract constructor arguments.\x00\x00\x00\x00\x00\x00\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x10constructor_args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nExecutable\x00\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStellarAsset\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07Account\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventD\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_d\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; + const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01^\x10`\x02~~\x01~`\x01~\x01~`\x03~~~\x01~`\x04~~~~\x01~`\x00\x00`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x01~\x00`\x02\x7f\x7f\x00`\x03~\x7f\x7f\x01~`\x02\x7f\x7f\x01\x7f`\x02\x7f~\x00`\x05~\x7f\x7f\x7f\x7f\x00`\x03\x7f\x7f\x7f\x00`\x01\x7f\x01~\x02I\x0c\x01x\x011\x00\x00\x01v\x013\x00\x01\x01i\x012\x00\x01\x01v\x01h\x00\x02\x01v\x01g\x00\x00\x01m\x01a\x00\x03\x01b\x01m\x00\x02\x01b\x01j\x00\x00\x01v\x011\x00\x00\x01b\x018\x00\x01\x01x\x015\x00\x01\x01m\x019\x00\x02\x0365\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04\x05\x06\x00\x07\x05\x05\x05\x05\x05\x05\x01\x08\x01\x05\x01\t\n\x0b\x0c\x01\r\x0c\x01\x01\x01\x05\x01\x01\x01\x00\x01\x05\x05\x0e\x0f\x01\x05\x01\x01\x01\x04\x04\x04\x05\x01p\x01\x0c\x0c\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\xd2\x88\xc0\x00\x0b\x7f\x00A\xa0\x8a\xc0\x00\x0b\x7f\x00A\xa0\x8a\xc0\x00\x0b\x07\x86\x04\x1f\x06memory\x02\x00\x11publish_data_type\x00\x17\x13publish_nested_data\x00\x1b\x14publish_nested_topic\x00\x1c\x11publish_ref_event\x00\x1e\x0epublish_simple\x00\x1f\x12publish_topic_type\x00 \x11with_assert_error\x00!\x12with_auth_contexts\x00#\nwith_error\x00$\x0fwith_executable\x00%\x11with_invoker_auth\x00*\x0fwith_lib_struct\x00-\x08with_map\x00.\x0cwith_non_pub\x00/\x12with_non_pub_error\x000\x0bwith_option\x001\x10with_panic_error\x002\x14with_panic_raw_error\x003\nwith_param\x004\x0ewith_recursion\x005\x0bwith_result\x006\x0bwith_return\x007\nwith_tuple\x00:\x11with_tuple_return\x00;\x08with_vec\x00<\x0fwith_vec_nested\x00=\x12with_wasm_imported\x00>\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\t\x11\x01\x00A\x01\x0b\x0b\x0f\x11\x13\x12\x0e\r\x14\x15\x16\x0c\x10\n\xac05\x0c\x00A\x00-\x00\x9c\x80\xc0\x80\x00\x1a\x0b\x16\x00A\x00-\x00\xfe\x80\xc0\x80\x00\x1aA\x00-\x00\xd4\x80\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\x8c\x81\xc0\x80\x00\x1a\x0bJ\x01\x01\x7f#\x80\x80\x80\x80\x00!\x00A\x00-\x00\xea\x83\xc0\x80\x00\x1a \x00A\x10k\"\x00A\x81\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xd2\x81\xc0\x80\x00\x1aA\x00-\x00\xe0\x81\xc0\x80\x00\x1aA\x00-\x00\xee\x81\xc0\x80\x00\x1a\x0b6\x01\x01\x7f#\x80\x80\x80\x80\x00!\x00A\x00-\x00\xec\x82\xc0\x80\x00\x1a \x00A\x10k\"\x00A\x82\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xfa\x82\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\xb2\x83\xc0\x80\x00\x1a\x0b\x86\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00A\x83\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xc4\x88\xc0\x80\x00\x1a \x00A\x84\x80\x80\x80\x006\x02\x04 \x00(\x02\x04\x1aA\x00-\x00\xf0\x87\xc0\x80\x00\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x8c\x88\xc0\x80\x00\x1a \x00A\x83\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x9a\x88\xc0\x80\x00\x1aA\x00-\x00\xfe\x87\xc0\x80\x00\x1a\x0b\x02\x00\x0bk\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00A\x83\x80\x80\x80\x006\x02\x0c \x00(\x02\x0c\x1aA\x00-\x00\xc4\x88\xc0\x80\x00\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x8c\x88\xc0\x80\x00\x1a \x00A\x83\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x9a\x88\xc0\x80\x00\x1aA\x00-\x00\xa8\x88\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\xf8\x83\xc0\x80\x00\x1a\x0b\x0c\x00A\x00-\x00\x86\x84\xc0\x80\x00\x1a\x0b\xae\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\xb0\x86\xc0\x80\x00A\x06\x10\x98\x80\x80\x80\x00!\x01A\x00-\x00\xa8\x81\xc0\x80\x00\x1aA\x00-\x00\x88\x83\xc0\x80\x00\x1aA\xf8\x86\xc0\x80\x00A\x19\x10\x98\x80\x80\x80\x00 \x01\x10\x99\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x18 \x00B\x84\x80\x80\x80\x107\x03\x10 \x00A\x88\x86\xc0\x80\x00A\x02 \x00A\x10jA\x02\x10\x9a\x80\x80\x80\x007\x03\x08 \x01A\xdc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A j$\x80\x80\x80\x80\x00B\x02\x0bE\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00 \x01\x10\xb8\x80\x80\x80\x00\x02@ \x02(\x02\x00A\x01G\r\x00\x00\x0b \x02)\x03\x08!\x03 \x02A\x10j$\x80\x80\x80\x80\x00 \x03\x0b\x92\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02 \x017\x03\x08 \x02 \x007\x03\x00A\x00!\x03\x03~\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10j\x10\xb9\x80\x80\x80\x00!\x01 \x02A j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x8b\x80\x80\x80\x00\x0b\xc5\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xdd\x84\xc0\x80\x00A\x06\x10\x98\x80\x80\x80\x00!\x01A\x00-\x00\xfc\x81\xc0\x80\x00\x1aA\x00-\x00\x8a\x82\xc0\x80\x00\x1aA\x00-\x00\xce\x83\xc0\x80\x00\x1aA\xab\x87\xc0\x80\x00A\x1b\x10\x98\x80\x80\x80\x00 \x01\x10\x99\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xa8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x007\x03\x00 \x00A\xa0\x86\xc0\x80\x00A\x01 \x00A\x01\x10\x9a\x80\x80\x80\x007\x03\x08 \x01A\xdc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\xbd\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xd0\x82\xc0\x80\x00\x1aA\x00-\x00\xde\x82\xc0\x80\x00\x1aA\x00-\x00\xdc\x83\xc0\x80\x00\x1aA\xc6\x87\xc0\x80\x00A\x1c\x10\x98\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xa8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x007\x03\x00 \x01A\xa0\x86\xc0\x80\x00A\x01 \x00A\x01\x10\x9a\x80\x80\x80\x00\x10\x99\x80\x80\x80\x00!\x01 \x00\x10\x9d\x80\x80\x80\x007\x03\x08 \x01A\xbc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x06\x00B\x8b\xc8\x01\x0b\xc7\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00 \x00A\x85\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1a \x00A\x86\x80\x80\x80\x006\x02\x08 \x00(\x02\x08\x1aA\x00-\x00\xb6\x81\xc0\x80\x00\x1aA\xe4\x86\xc0\x80\x00A\x14\x10\x98\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x99\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xb0\x0c7\x03\x08 \x00A\xa8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x007\x03\x00 \x00A\xfc\x85\xc0\x80\x00A\x01 \x00A\x01\x10\x9a\x80\x80\x80\x007\x03\x08 \x01A\xdc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x7f\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xa8\x86\xc0\x80\x00A\x08\x10\x98\x80\x80\x80\x00!\x01A\x00-\x00\xaa\x80\xc0\x80\x00\x1aA\xc4\x86\xc0\x80\x00A\x11\x10\x98\x80\x80\x80\x00 \x01\x10\x99\x80\x80\x80\x00!\x01 \x00\x10\x9d\x80\x80\x80\x007\x03\x08 \x01A\xbc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b}\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x98\x82\xc0\x80\x00\x1aA\x00-\x00\x96\x83\xc0\x80\x00\x1aA\x91\x87\xc0\x80\x00A\x1a\x10\x98\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x99\x80\x80\x80\x00!\x01 \x00\x10\x9d\x80\x80\x80\x007\x03\x08 \x01A\xbc\x86\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0bJ\x01\x01\x7f\x02@\x02@A\x01A\x02A\x00 \x00\xa7A\xff\x01q\"\x01\x1b \x01A\x01F\x1b\"\x01A\x02F\r\x00 \x01A\x01qE\r\x01B\x02\x0f\x0b\x00\x0bA\x00-\x00\xc2\x82\xc0\x80\x00\x1aB\x83\x80\x80\x80\x10\x10\xa2\x80\x80\x80\x00\x00\x0b\x0b\x00 \x00\x10\x8a\x80\x80\x80\x00\x1a\x0b0\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x87\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x13\x00A\x00-\x00\x80\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\xa0\x05\x0b\xc0\x02\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xb6\x88\xc0\x80\x00\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00 \x00\x10\x81\x80\x80\x80\x00!\x02 \x01A\x006\x02\x08 \x01 \x007\x03\x00 \x01 \x02B \x88>\x02\x0c \x01A\x10j \x01\x10\xa6\x80\x80\x80\x00 \x01)\x03\x10\"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00\x02@ \x01)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\xca\x00F\r\x00 \x03A\x0eG\r\x01\x0b\x02@\x02@\x02@\x02@ \x00A\xc4\x84\xc0\x80\x00A\x03\x10\xa7\x80\x80\x80\x00B \x88\xa7\x0e\x03\x01\x02\x00\x04\x0b \x01(\x02\x08 \x01(\x02\x0c\x10\xa8\x80\x80\x80\x00\r\x03\x0c\x02\x0b \x01(\x02\x08 \x01(\x02\x0c\x10\xa8\x80\x80\x80\x00A\x01K\r\x02 \x01A\x10j \x01\x10\xa6\x80\x80\x80\x00 \x01)\x03\x10\"\x00B\x02Q\r\x02 \x00\xa7A\x01q\r\x02 \x01A\x10j \x01)\x03\x18\x10\xa9\x80\x80\x80\x00 \x01(\x02\x10A\x01G\r\x01\x0c\x02\x0b \x01(\x02\x08 \x01(\x02\x0c\x10\xa8\x80\x80\x80\x00\r\x01\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b\x00\x0bJ\x02\x01~\x01\x7fB\x02!\x02\x02@ \x01(\x02\x08\"\x03 \x01(\x02\x0cO\r\x00 \x00 \x01)\x03\x00 \x03\xadB \x86B\x04\x84\x10\x88\x80\x80\x80\x007\x03\x08 \x01 \x03A\x01j6\x02\x08B\x00!\x02\x0b \x00 \x027\x03\x00\x0b\x1c\x00 \x00 \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x86\x80\x80\x80\x00\x0b\x19\x00\x02@ \x01 \x00I\r\x00 \x01 \x00k\x0f\x0b\x10\xc0\x80\x80\x80\x00\x00\x0bB\x01\x01~B\x01!\x02\x02@ \x01B\xff\x01\x83B\xc8\x00R\r\x00 \x01\x10\x89\x80\x80\x80\x00B\x80\x80\x80\x80p\x83B\x80\x80\x80\x80\x80\x04R\r\x00 \x00 \x017\x03\x08B\x00!\x02\x0b \x00 \x027\x03\x00\x0b\xd3\x07\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A\xc0\x00k\"\x01$\x80\x80\x80\x80\x00 \x01A\x83\x80\x80\x80\x006\x02\x18 \x01(\x02\x18\x1aA\x00-\x00\xc4\x88\xc0\x80\x00\x1a \x01A\x84\x80\x80\x80\x006\x02\x18 \x01(\x02\x18\x1aA\x00-\x00\xf0\x87\xc0\x80\x00\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x8c\x88\xc0\x80\x00\x1a \x01A\x83\x80\x80\x80\x006\x02\x18 \x01(\x02\x18\x1aA\x00-\x00\xe2\x87\xc0\x80\x00\x1aA\x00-\x00\x9a\x88\xc0\x80\x00\x1aA\x00-\x00\xfe\x87\xc0\x80\x00\x1a\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00 \x00\x10\x81\x80\x80\x80\x00!\x02 \x01A\x006\x02\x10 \x01 \x007\x03\x08 \x01 \x02B \x88>\x02\x14 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00\x02@ \x01)\x03 \"\x00\xa7A\xff\x01q\"\x03A\xca\x00F\r\x00 \x03A\x0eG\r\x01\x0b\x02@\x02@\x02@ \x00A\xe0\x85\xc0\x80\x00A\x03\x10\xa7\x80\x80\x80\x00B \x88\xa7\x0e\x03\x00\x01\x02\x03\x0b \x01(\x02\x10 \x01(\x02\x14\x10\xa8\x80\x80\x80\x00A\x01K\r\x02 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x02 \x00\xa7A\x01q\r\x02 \x01)\x03 !\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x01A0j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x02 \x00A\xa4\x89\xc0\x80\x00A\x02 \x01A0jA\x02\x10\xab\x80\x80\x80\x00 \x01)\x030!\x00A\x00!\x03\x02@\x03@ \x03A\x18F\r\x01 \x01A\x18j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x02 \x00A\xe8\x88\xc0\x80\x00A\x03 \x01A\x18jA\x03\x10\xab\x80\x80\x80\x00 \x011\x00\x18B\xcb\x00R\r\x02 \x011\x00 B\xcd\x00R\r\x02\x02@ \x01-\x00(\"\x03A\x0eF\r\x00 \x03A\xca\x00G\r\x03\x0b \x011\x008B\xcb\x00R\r\x02\x0c\x03\x0b \x01(\x02\x10 \x01(\x02\x14\x10\xa8\x80\x80\x80\x00A\x01K\r\x01 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x01 \x00\xa7A\x01q\r\x01 \x01)\x03 !\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x01A0j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x01 \x00A\xc4\x89\xc0\x80\x00A\x02 \x01A0jA\x02\x10\xab\x80\x80\x80\x00 \x01A\x18j \x01)\x030\x10\xac\x80\x80\x80\x00 \x01(\x02\x18\r\x01 \x01A\x18j \x01)\x038\x10\xa9\x80\x80\x80\x00 \x01(\x02\x18A\x01G\r\x02\x0c\x01\x0b \x01(\x02\x10 \x01(\x02\x14\x10\xa8\x80\x80\x80\x00A\x01K\r\x00 \x01A\x18j \x01A\x08j\x10\xa6\x80\x80\x80\x00 \x01)\x03\x18\"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00 \x01)\x03 !\x00A\x00!\x03\x02@\x03@ \x03A\x18F\r\x01 \x01A\x18j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xe4\x89\xc0\x80\x00A\x03 \x01A\x18jA\x03\x10\xab\x80\x80\x80\x00 \x011\x00\x18B\xcb\x00R\r\x00 \x01A0j \x01)\x03 \x10\xac\x80\x80\x80\x00 \x01(\x020\r\x00 \x01A0j \x01)\x03(\x10\xa9\x80\x80\x80\x00 \x01(\x020A\x01G\r\x01\x0b\x00\x0b \x01A\xc0\x00j$\x80\x80\x80\x80\x00B\x02\x0b1\x00\x02@ \x02 \x04F\r\x00\x00\x0b \x00 \x01\xadB \x86B\x04\x84 \x03\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x85\x80\x80\x80\x00\x1a\x0b\xb3\x02\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@\x02@ \x01B\xff\x01\x83B\xcb\x00Q\r\x00 \x00B\x017\x03\x00\x0c\x01\x0b \x01\x10\x81\x80\x80\x80\x00!\x03 \x02A\x006\x02\x08 \x02 \x017\x03\x00 \x02 \x03B \x88>\x02\x0c \x02A\x10j \x02\x10\xa6\x80\x80\x80\x00\x02@ \x02)\x03\x10\"\x01B\x02Q\r\x00 \x01\xa7A\x01q\r\x00\x02@ \x02)\x03\x18\"\x01\xa7A\xff\x01q\"\x04A\xca\x00F\r\x00 \x04A\x0eG\r\x01\x0b\x02@ \x01A\x84\x89\xc0\x80\x00A\x01\x10\xa7\x80\x80\x80\x00B\xff\xff\xff\xff\x0fV\r\x00 \x02(\x02\x08 \x02(\x02\x0c\x10\xa8\x80\x80\x80\x00A\x01K\r\x00 \x02A\x10j \x02\x10\xa6\x80\x80\x80\x00 \x02)\x03\x10\"\x01B\x02Q\r\x00 \x01\xa7A\x01q\r\x00 \x02A\x10j \x02)\x03\x18\x10\xa9\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x01 \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0c\x02\x0b \x00B\x017\x03\x00\x0c\x01\x0b \x00B\x017\x03\x00\x0b \x02A j$\x80\x80\x80\x80\x00\x0b\x9e\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00 \x01A\x83\x80\x80\x80\x006\x02\x00 \x01(\x02\x00\x1aA\x00!\x02A\x00-\x00\xfc\x89\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x90\x8a\xc0\x80\x00A\x02 \x01A\x02\x10\xab\x80\x80\x80\x00 \x011\x00\x00B\xcb\x00R\r\x00 \x011\x00\x08B\xcd\x00Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0bA\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x88\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a \x01A\x89\x80\x80\x80\x006\x02\x08 \x01(\x02\x08\x1a\x02@ \x00B\xff\x01\x83B\xcc\x00Q\r\x00\x00\x0bB\x02\x0bg\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xe2\x80\xc0\x80\x00\x1a \x01B\x027\x03\x08\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00\x08B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x12\x00A\x00-\x00\xb8\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\x10\x0br\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xc4\x81\xc0\x80\x00\x1a\x02@ \x00B\x02Q\r\x00 \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xf8\x84\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\xab\x80\x80\x80\x00 \x01)\x03\x08B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0bI\x01\x01\x7f\x02@\x02@A\x01A\x02A\x00 \x00\xa7A\xff\x01q\"\x01\x1b \x01A\x01F\x1b\"\x01A\x02F\r\x00 \x01A\x01q\r\x01B\x02\x0f\x0b\x00\x0bA\x00-\x00\xb4\x82\xc0\x80\x00\x1aB\x83\x80\x80\x80\x10\x10\xa2\x80\x80\x80\x00\x00\x0b@\x01\x01\x7f\x02@\x02@A\x01A\x02A\x00 \x00\xa7A\xff\x01q\"\x01\x1b \x01A\x01F\x1b\"\x01A\x02F\r\x00 \x01A\x01q\r\x01B\x02\x0f\x0b\x00\x0bB\x83\x80\x80\x80\xf0\x00\x10\xa2\x80\x80\x80\x00\x00\x0b\x8a\x02\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00A\x00!\x03A\x00-\x00\xa6\x82\xc0\x80\x00\x1aA\x00-\x00\xc6\x80\xc0\x80\x00\x1a\x02@\x03@ \x03A\x10F\r\x01 \x02A\x08j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xe4\x84\xc0\x80\x00A\x02 \x02A\x08jA\x02\x10\xab\x80\x80\x80\x00 \x021\x00\x08B\x04R\r\x00 \x02B\x027\x03\x18 \x02)\x03\x10\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x02A\x18jA\x01\x10\xab\x80\x80\x80\x00\x02@ \x02)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\x07F\r\x00 \x03A\xc1\x00G\r\x01 \x00\x10\x82\x80\x80\x80\x00\x1a\x0bA\x00-\x00\xf0\x80\xc0\x80\x00\x1a \x01B\xff\x01\x83B\x04R\r\x00 \x01B \x88\xa7A}jA}K\r\x01\x0b\x00\x0b \x02A j$\x80\x80\x80\x80\x00B\x02\x0b\x90\x04\x03\x01\x7f\x01~\x01\x7f#\x80\x80\x80\x80\x00A0k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xea\x83\xc0\x80\x00\x1a \x01A\x81\x80\x80\x80\x006\x02 \x01(\x02 \x1aA\x00-\x00\xd2\x81\xc0\x80\x00\x1aA\x00-\x00\xe0\x81\xc0\x80\x00\x1aA\x00-\x00\xee\x81\xc0\x80\x00\x1a \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\xab\x80\x80\x80\x00 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcb\x00R\r\x00 \x00\x10\x81\x80\x80\x80\x00!\x02 \x01A\x006\x02\x18 \x01 \x007\x03\x10 \x01 \x02B \x88>\x02\x1c \x01A j \x01A\x10j\x10\xa6\x80\x80\x80\x00 \x01)\x03 \"\x00B\x02Q\r\x00 \x00\xa7A\x01q\r\x00\x02@ \x01)\x03(\"\x00\xa7A\xff\x01q\"\x03A\xca\x00F\r\x00 \x03A\x0eG\r\x01\x0b\x02@\x02@\x02@ \x00A\x98\x85\xc0\x80\x00A\x02\x10\xa7\x80\x80\x80\x00B \x88\xa7\x0e\x02\x01\x00\x03\x0b \x01(\x02\x18 \x01(\x02\x1c\x10\xa8\x80\x80\x80\x00A\x01K\r\x02 \x01A j \x01A\x10j\x10\xa6\x80\x80\x80\x00 \x01)\x03 \"\x00B\x02Q\r\x02 \x00\xa7A\x01q\r\x02 \x01)\x03(!\x00 \x01B\x027\x03 \x00B\xff\x01\x83B\xcc\x00R\r\x02 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00 B\xcb\x00Q\r\x01\x0c\x02\x0b \x01(\x02\x18 \x01(\x02\x1c\x10\xa8\x80\x80\x80\x00A\x01K\r\x01 \x01A j \x01A\x10j\x10\xa6\x80\x80\x80\x00 \x01)\x03 \"\x00B\x02Q\r\x01 \x00\xa7A\x01q\r\x01 \x01)\x03(!\x00 \x01B\x027\x03 \x00B\xff\x01\x83B\xcc\x00R\r\x01 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00 B\x04R\r\x01\x0b \x01A0j$\x80\x80\x80\x80\x00B\x02\x0f\x0b\x00\x0bZ\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x94\x84\xc0\x80\x00\x1aA\x00-\x00\x80\x80\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x08A\xf8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x9a\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8e\x80\xc0\x80\x00\x1a \x00A\xf8\x85\xc0\x80\x00A\x01\x10\xb8\x80\x80\x80\x00\x02@ \x00(\x02\x00A\x01G\r\x00\x00\x0b \x00)\x03\x08!\x01 \x00B\x84\x80\x80\x80\x107\x03\x08 \x00 \x017\x03\x00 \x00\x10\xb9\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0b\xdb\x01\x02\x01~\x04\x7f\x02@\x02@ \x02A\tK\r\x00B\x00!\x03 \x02!\x04 \x01!\x05\x03@\x02@ \x04\r\x00 \x03B\x08\x86B\x0e\x84!\x03\x0c\x03\x0bA\x01!\x06\x02@ \x05-\x00\x00\"\x07A\xdf\x00F\r\x00\x02@\x02@ \x07APjA\xff\x01qA\nI\r\x00 \x07A\xbf\x7fjA\xff\x01qA\x1aI\r\x01 \x07A\x9f\x7fjA\xff\x01qA\x1aO\r\x04 \x07AEj!\x06\x0c\x02\x0b \x07ARj!\x06\x0c\x01\x0b \x07AKj!\x06\x0b \x03B\x06\x86 \x06\xadB\xff\x01\x83\x84!\x03 \x04A\x7fj!\x04 \x05A\x01j!\x05\x0c\x00\x0b\x0b \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x87\x80\x80\x80\x00!\x03\x0b \x00B\x007\x03\x00 \x00 \x037\x03\x08\x0b\x17\x00 \x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x84\x80\x80\x80\x00\x0b\xc4\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\x9a\x81\xc0\x80\x00\x1a\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00\x02@\x03@ \x02A\x10F\r\x01 \x01A\x08j \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x08j\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x83\x80\x80\x80\x00\x1a \x01B\x027\x03\x18 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x84\xc0\x80\x00A\x01 \x01A\x18jA\x01\x10\xab\x80\x80\x80\x00 \x011\x00\x18B\x04R\r\x00 \x011\x00\x10B\x04Q\r\x01\x0b\x00\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xa4\x83\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x18A\xa8\x84\xc0\x80\x00A\x01 \x00A\x18jA\x01\x10\x9a\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x10 \x00 \x017\x03\x08 \x00A\x08j\x10\xb9\x80\x80\x80\x00!\x01 \x00A j$\x80\x80\x80\x80\x00 \x01\x0b0\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x8a\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b0\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01A\x8b\x80\x80\x80\x006\x02\x0c \x01(\x02\x0c\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x8d\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\xc0\x83\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x90\x8a\xc0\x80\x00A\x02 \x01A\x02\x10\xab\x80\x80\x80\x00 \x011\x00\x00B\x04R\r\x00 \x01)\x03\x08B\xfe\x01\x83P\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x03\x00\x00\x0b\t\x00\x10\xbf\x80\x80\x80\x00\x00\x0b\x0b\xaa\n\x01\x00A\x80\x80\xc0\x00\x0b\xa0\nSpEcV1Hh\xdc\xaaa\x8d\xf7\rSpEcV1\xe7\xcf\x9b1n\x15\x13\xfeSpEcV1\xe2\x01y\xc9\x9a\xf8\xedtSpEcV1v1\x0eP\xa9C\xc7*SpEcV1\xa9<\xd8+\xb7\xa7\r\x17SpEcV1X\x03\xf6t\xc7\xd0\x01\"SpEcV1\'\xbd_A\r\x9a\x89\x02SpEcV1p\x8c\x0fN!\x082\xd8SpEcV1\xc2\xf4N\xbf\xebqvpSpEcV1K\xdf\'8m/\xe8\x1dSpEcV1@\xb9LO\xf9\xd1\xe8\xe2SpEcV1\xde\x1dMa\x01\xec\xb0ASpEcV1\xc2 \x1b\xdc\xc8gxZSpEcV1[Q+\xe9\xde\xd5\xf2>SpEcV1\xb3/\x97\xd5\x06\xbd3BSpEcV1?\xd9\xb3q\xdep>\xf3SpEcV1*\\\x9c\xf4e\xaa\x1e]SpEcV1u2\x0b\x97\xae\xcd\x86\xbfSpEcV1\x0c\xf0\xf6w\xfd\x1a\x1b\x94SpEcV1\'\xf2\xa2\xb9\xd0)\xc0uSpEcV1\xf5\xd4\x9b\xa3\xccI\x13\xf7SpEcV1\x84\x08Y\xae\xa0\xf128SpEcV1\r\xb76\xae\x93D\xef\x1aSpEcV1\x8b\x89\x1f#\xbd\x157\xf4SpEcV16\x83?\xf0\xcdW\xb1/SpEcV1\x94\xc7w/_\xebXcSpEcV1\xb4\xabN]\xe3\xeaA\xd6SpEcV1\x13?J\x12d\xden|SpEcV1q\xa3z;6\xa6R\x01SpEcV1q^\xe2&\x9di\x9d\x0eSpEcV1Y\xa66\xb3\xecxE\x13SpEcV1\xcf@%X\xde+J@SpEcV1\xb6\x1c\xfd\xdfhY-dSpEcV1 \xfbl\x04B\x82\xc0\xb4SpEcV1\xe3\xf2\x9b5%a\xfb\xd6SpEcV1\xe6Q\xd5T\x13\x8a\xb7lSpEcV1[\xf4R\xdf\xdd\xb4\xb0\xbcSpEcV1\xaaX8\xde\xef\xbb6%SpEcV1k\xe4zxB\xd1+\x02val\x00\x00\x00\"\x02\x10\x00\x03\x00\x00\x00StellarAssetAccount\x00\x80\x04\x10\x00\x04\x00\x00\x000\x02\x10\x00\x0c\x00\x00\x00<\x02\x10\x00\x07\x00\x00\x00anested\x00\\\x02\x10\x00\x01\x00\x00\x00]\x02\x10\x00\x06\x00\x00\x00datat\x02\x10\x00\x04\x00\x00\x00NotRecursiveRecursive\x00\x00\x00\x80\x02\x10\x00\x0c\x00\x00\x00\x8c\x02\x10\x00\t\x00\x00\x00ContractCreateContractHostFnCreateContractWithCtorHostFn\xa8\x02\x10\x00\x08\x00\x00\x00\xb0\x02\x10\x00\x14\x00\x00\x00\xc4\x02\x10\x00\x1c\x00\x00\x00A\x00\x00\x00]\x02\x10\x00\x06\x00\x00\x00xy\x00\x00\x04\x03\x10\x00\x01\x00\x00\x00\x05\x03\x10\x00\x01\x00\x00\x00inner\x00\x00\x00\x18\x03\x10\x00\x05\x00\x00\x00transfercoordsamount6\x03\x10\x00\x06\x00\x00\x00used_event_simplepayloadU\x03\x10\x00\x07\x00\x00\x00used_event_with_refsused_event_with_data_typeused_event_with_topic_typeused_event_with_nested_dataused_event_with_nested_topicSpEcV1\xb6\xb1Hy\xda\xca\xaf\xccSpEcV1\x9e)H\x8e\xf0\x01{{SpEcV1ULqD\xd3\xfa:\x1fSpEcV1\x15\xe5\x1a,\xc0\xc7\xef\xd4SpEcV1s\x94\x0c\x1926\x1d\x90SpEcV1\xa3J\xcf\xf7D\x93\x0bBSpEcV1L|{\r\xf4\xf2\x1a\xa8SpEcV1\xf1\xf9\x90\x07E*e\xfdargscontractfn_name\x00\x00\x00R\x04\x10\x00\x04\x00\x00\x00V\x04\x10\x00\x08\x00\x00\x00^\x04\x10\x00\x07\x00\x00\x00Wasm\x80\x04\x10\x00\x04\x00\x00\x00contextsub_invocations\x00\x00\x8c\x04\x10\x00\x07\x00\x00\x00\x93\x04\x10\x00\x0f\x00\x00\x00executablesalt\x00\x00\xb4\x04\x10\x00\n\x00\x00\x00\xbe\x04\x10\x00\x04\x00\x00\x00constructor_args\xd4\x04\x10\x00\x10\x00\x00\x00\xb4\x04\x10\x00\n\x00\x00\x00\xbe\x04\x10\x00\x04\x00\x00\x00SpEcV1\xa3\x16\n\x8f\xc9\x92\xd2\x11f1f2\x00\x00\n\x05\x10\x00\x02\x00\x00\x00\x0c\x05\x10\x00\x02\x00\x00\x00\x00\x87`\x0econtractspecv0\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventD\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_d\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07Context\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nExecutable\x00\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStellarAsset\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07Account\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08contract\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x07fn_name\x00\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x07context\x00\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x00\x00\x00\x00\x0fsub_invocations\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x10constructor_args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08UsedLeaf\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_map\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01m\x00\x00\x00\x00\x00\x03\xec\x00\x00\x07\xd0\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_vec\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUnusedEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02K1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02K2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_param\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x00\x00\x00\x00\x02ie\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_tuple\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01t\x00\x00\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bUnusedEvent\x00\x00\x00\x00\x01\x00\x00\x00\x0cunused_event\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUnusedStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUsedResultOk\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_option\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01o\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x07\xd0\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_result\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x07\xd0\x00\x00\x00\x0cUsedResultOk\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_return\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUnusedIntEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02U1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02U2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08NotFound\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07Invalid\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cwith_non_pub\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUnusedPubError\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Nope\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Fail\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0epublish_simple\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0ewith_recursion\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01r\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveRoot\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedEventSimple\x00\x00\x00\x00\x01\x00\x00\x00\x11used_event_simple\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01X\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01Y\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04Send\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Recv\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_executable\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01e\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_lib_struct\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructC\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_vec_nested\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x14UsedVecElementNested\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UnusedNonPubError\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03Bad\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01y\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedRecursiveLeaf\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveRoot\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedRecursiveNode\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x0cNotRecursive\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08UsedLeaf\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\tRecursive\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveLeaf\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedRecursiveRoot\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedRecursiveNode\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10with_panic_error\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04fail\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventWithRefs\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14used_event_with_refs\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UnusedNonPubStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08Transfer\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Mint\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x07\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedPanicErrorEnum\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Boom\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_data_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_ref_event\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_assert_error\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02ok\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_invoker_auth\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01i\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_tuple_return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedAssertErrorEnum\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03Bad\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedVecInnerElement\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12publish_topic_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_auth_contexts\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01c\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x07Context\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_non_pub_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_wasm_imported\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14UsedVecElementNested\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedVecInnerElement\x00\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\tvec_inner\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x16UsedVecInnerVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13publish_nested_data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14publish_nested_topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14with_panic_raw_error\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04fail\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15UsedEventWithDataType\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x19used_event_with_data_type\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedVecInnerVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedEventWithTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1aused_event_with_topic_type\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17UsedEventWithNestedData\x00\x00\x00\x00\x01\x00\x00\x00\x1bused_event_with_nested_data\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UnusedNonContractFnParam\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UsedEventWithNestedTopic\x00\x00\x00\x01\x00\x00\x00\x1cused_event_with_nested_topic\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04info\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19UnusedNonContractFnReturn\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\xe3Context of a single authorized call performed by an address.\n\nCustom account contracts that implement `__check_auth` special function\nreceive a list of `Context` values corresponding to all the calls that\nneed to be authorized.\x00\x00\x00\x00\x00\x00\x00\x00\x07Context\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x14Contract invocation.\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x01\x00\x00\x00=Contract that has a constructor with no arguments is created.\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00DContract that has a constructor with 1 or more arguments is created.\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00\xbdAuthorization context of a single contract call.\n\nThis struct corresponds to a `require_auth_for_args` call for an address\nfrom `contract` function with `fn_name` name and `args` arguments.\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x04args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08contract\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x07fn_name\x00\x00\x00\x00\x11\x00\x00\x00\x02\x00\x00\x00_Contract executable used for creating a new contract and used in\n`CreateContractHostFnContext`.\x00\x00\x00\x00\x00\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x008Value of contract node in InvokerContractAuthEntry tree.\x00\x00\x00\x00\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x07context\x00\x00\x00\x07\xd0\x00\x00\x00\x0fContractContext\x00\x00\x00\x00\x00\x00\x00\x00\x0fsub_invocations\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x02\x00\x00\x01/A node in the tree of authorizations performed on behalf of the current\ncontract as invoker of the contracts deeper in the call stack.\n\nThis is used as an argument of `authorize_as_current_contract` host function.\n\nThis tree corresponds `require_auth[_for_args]` calls on behalf of the\ncurrent contract.\x00\x00\x00\x00\x00\x00\x00\x00\x18InvokerContractAuthEntry\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x12Invoke a contract.\x00\x00\x00\x00\x00\x08Contract\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x15SubContractInvocation\x00\x00\x00\x00\x00\x00\x01\x00\x00\x005Create a contract passing 0 arguments to constructor.\x00\x00\x00\x00\x00\x00\x14CreateContractHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x01\x00\x00\x00=Create a contract passing 0 or more arguments to constructor.\x00\x00\x00\x00\x00\x00\x1cCreateContractWithCtorHostFn\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x01\x00\x00\x00vAuthorization context for `create_contract` host function that creates a\nnew contract on behalf of authorizer address.\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1bCreateContractHostFnContext\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x01\x00\x00\x00\xd6Authorization context for `create_contract` host function that creates a\nnew contract on behalf of authorizer address.\nThis is the same as `CreateContractHostFnContext`, but also has\ncontract constructor arguments.\x00\x00\x00\x00\x00\x00\x00\x00\x00*CreateContractWithConstructorHostFnContext\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x10constructor_args\x00\x00\x03\xea\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nexecutable\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12ContractExecutable\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04salt\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nExecutable\x00\x00\x00\x00\x00\x03\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Wasm\x00\x00\x00\x01\x00\x00\x03\xee\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStellarAsset\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07Account\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventD\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_d\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; extern crate test; #[rustc_test_marker = "test::test_spec_shaking_v2"] #[doc(hidden)] diff --git a/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs b/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs index b83b73cbe..7e925fc50 100644 --- a/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs +++ b/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs @@ -75,10 +75,33 @@ impl ::core::cmp::PartialEq for UsedParamStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDPARAMSTRUCT: [u8; 96usize] = UsedParamStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDPARAMSTRUCT: [u8; UsedParamStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedParamStruct::spec_xdr(); impl UsedParamStruct { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fUsedParamStruct\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x06nested\0\0\0\0\x07\xd0\0\0\0\x12UsedNestedInStruct\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedParamStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"nested"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedNestedInStruct"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedParamStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedParamStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedParamStruct { @@ -88,7 +111,7 @@ impl soroban_sdk::SpecShakingMarker for UsedParamStruct { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1X\x03\xf6t\xc7\xd0\x01\""; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedParamStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -200,10 +223,37 @@ impl ::core::cmp::PartialEq for UsedReturnEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDRETURNENUM: [u8; 84usize] = UsedReturnEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRETURNENUM: [u8; UsedReturnEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedReturnEnum::spec_xdr(); impl UsedReturnEnum { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0eUsedReturnEnum\0\0\0\0\0\x02\0\0\0\x01\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedReturnEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UsedReturnEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedReturnEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedReturnEnum { @@ -213,7 +263,7 @@ impl soroban_sdk::SpecShakingMarker for UsedReturnEnum { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe7\xcf\x9b1n\x15\x13\xfe"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedReturnEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -343,10 +393,29 @@ impl ::core::cmp::PartialEq for UsedParamIntEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDPARAMINTENUM: [u8; 68usize] = UsedParamIntEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDPARAMINTENUM: [u8; UsedParamIntEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedParamIntEnum::spec_xdr(); impl UsedParamIntEnum { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x10UsedParamIntEnum\0\0\0\x02\0\0\0\0\0\0\0\x01X\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01Y\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedParamIntEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"X"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Y"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedParamIntEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedParamIntEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedParamIntEnum { @@ -354,7 +423,7 @@ impl soroban_sdk::SpecShakingMarker for UsedParamIntEnum { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xc2\xf4N\xbf\xebqvp"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedParamIntEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -443,10 +512,31 @@ impl ::core::cmp::PartialEq for UsedErrorEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDERRORENUM: [u8; 76usize] = UsedErrorEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDERRORENUM: [u8; UsedErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedErrorEnum::spec_xdr(); impl UsedErrorEnum { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\rUsedErrorEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x08NotFound\0\0\0\x01\0\0\0\0\0\0\0\x07Invalid\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedErrorEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotFound"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Invalid"), + value: 2u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedErrorEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedErrorEnum { @@ -454,7 +544,7 @@ impl soroban_sdk::SpecShakingMarker for UsedErrorEnum { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1Hh\xdc\xaaa\x8d\xf7\r"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedErrorEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -602,10 +692,26 @@ impl ::core::cmp::PartialEq for UsedPanicErrorEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDPANICERRORENUM: [u8; 56usize] = UsedPanicErrorEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDPANICERRORENUM: [u8; UsedPanicErrorEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedPanicErrorEnum::spec_xdr(); impl UsedPanicErrorEnum { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x12UsedPanicErrorEnum\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Boom\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedPanicErrorEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Boom"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedPanicErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedPanicErrorEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedPanicErrorEnum { @@ -613,7 +719,7 @@ impl soroban_sdk::SpecShakingMarker for UsedPanicErrorEnum { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\r\xb76\xae\x93D\xef\x1a"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedPanicErrorEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -759,10 +865,26 @@ impl ::core::cmp::PartialEq for UsedAssertErrorEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDASSERTERRORENUM: [u8; 56usize] = UsedAssertErrorEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDASSERTERRORENUM: [u8; UsedAssertErrorEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedAssertErrorEnum::spec_xdr(); impl UsedAssertErrorEnum { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x13UsedAssertErrorEnum\0\0\0\0\x01\0\0\0\0\0\0\0\x03Bad\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedAssertErrorEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Bad"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedAssertErrorEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedAssertErrorEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedAssertErrorEnum { @@ -770,7 +892,7 @@ impl soroban_sdk::SpecShakingMarker for UsedAssertErrorEnum { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x8b\x89\x1f#\xbd\x157\xf4"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedAssertErrorEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -923,10 +1045,24 @@ impl ::core::cmp::PartialEq for UsedNestedInStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDNESTEDINSTRUCT: [u8; 56usize] = UsedNestedInStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDNESTEDINSTRUCT: [u8; UsedNestedInStruct::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedNestedInStruct::spec_xdr(); impl UsedNestedInStruct { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UsedNestedInStruct\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedNestedInStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedNestedInStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedNestedInStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedNestedInStruct { @@ -935,7 +1071,7 @@ impl soroban_sdk::SpecShakingMarker for UsedNestedInStruct { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x84\x08Y\xae\xa0\xf128"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedNestedInStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1024,10 +1160,24 @@ impl ::core::cmp::PartialEq for UsedVecElement { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDVECELEMENT: [u8; 52usize] = UsedVecElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECELEMENT: [u8; UsedVecElement::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedVecElement::spec_xdr(); impl UsedVecElement { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0eUsedVecElement\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecElement { @@ -1036,7 +1186,7 @@ impl soroban_sdk::SpecShakingMarker for UsedVecElement { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe2\x01y\xc9\x9a\xf8\xedt"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedVecElement::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1130,10 +1280,29 @@ impl ::core::cmp::PartialEq for UsedMapKey { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDMAPKEY: [u8; 64usize] = UsedMapKey::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDMAPKEY: [u8; UsedMapKey::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedMapKey::spec_xdr(); impl UsedMapKey { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\nUsedMapKey\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02K1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02K2\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedMapKey"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"K1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"K2"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedMapKey::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedMapKey::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedMapKey { @@ -1141,7 +1310,7 @@ impl soroban_sdk::SpecShakingMarker for UsedMapKey { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1[\xf4R\xdf\xdd\xb4\xb0\xbc"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedMapKey::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1223,10 +1392,24 @@ impl ::core::cmp::PartialEq for UsedMapVal { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDMAPVAL: [u8; 48usize] = UsedMapVal::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDMAPVAL: [u8; UsedMapVal::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedMapVal::spec_xdr(); impl UsedMapVal { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\nUsedMapVal\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedMapVal"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedMapVal::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedMapVal::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedMapVal { @@ -1235,7 +1418,7 @@ impl soroban_sdk::SpecShakingMarker for UsedMapVal { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xaaX8\xde\xef\xbb6%"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedMapVal::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1327,10 +1510,24 @@ impl ::core::cmp::PartialEq for UsedOptionElement { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDOPTIONELEMENT: [u8; 56usize] = UsedOptionElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDOPTIONELEMENT: [u8; UsedOptionElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedOptionElement::spec_xdr(); impl UsedOptionElement { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedOptionElement\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedOptionElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedOptionElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedOptionElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedOptionElement { @@ -1339,7 +1536,7 @@ impl soroban_sdk::SpecShakingMarker for UsedOptionElement { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xb3/\x97\xd5\x06\xbd3B"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedOptionElement::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1426,10 +1623,24 @@ impl ::core::cmp::PartialEq for UsedResultOk { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDRESULTOK: [u8; 48usize] = UsedResultOk::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRESULTOK: [u8; UsedResultOk::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedResultOk::spec_xdr(); impl UsedResultOk { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUsedResultOk\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedResultOk"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedResultOk::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedResultOk::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedResultOk { @@ -1438,7 +1649,7 @@ impl soroban_sdk::SpecShakingMarker for UsedResultOk { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1k\xe4zxB\xd1+\x02"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedResultOk::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1535,10 +1746,37 @@ impl ::core::cmp::PartialEq for UsedEventSimple { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_USEDEVENTSIMPLE: [u8; 112usize] = UsedEventSimple::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTSIMPLE: [u8; UsedEventSimple::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventSimple::spec_xdr(); impl UsedEventSimple { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x0fUsedEventSimple\0\0\0\0\x01\0\0\0\x11used_event_simple\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventSimple", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_simple"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventSimple::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventSimple::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventSimple { @@ -1548,7 +1786,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventSimple { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1v1\x0eP\xa9C\xc7*"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventSimple::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1622,10 +1860,29 @@ impl ::core::cmp::PartialEq for UsedEventTopicType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDEVENTTOPICTYPE: [u8; 76usize] = UsedEventTopicType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTTOPICTYPE: [u8; UsedEventTopicType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventTopicType::spec_xdr(); impl UsedEventTopicType { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x12UsedEventTopicType\0\0\0\0\0\x02\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\0\0\0\0\x04Mint\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicType"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Transfer"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Mint"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventTopicType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventTopicType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventTopicType { @@ -1633,7 +1890,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventTopicType { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xf5\xd4\x9b\xa3\xccI\x13\xf7"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventTopicType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1727,11 +1984,41 @@ impl ::core::cmp::PartialEq for UsedEventWithTopicType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_USEDEVENTWITHTOPICTYPE: [u8; 152usize] = - UsedEventWithTopicType::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHTOPICTYPE: [u8; UsedEventWithTopicType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventWithTopicType::spec_xdr(); impl UsedEventWithTopicType { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x16UsedEventWithTopicType\0\0\0\0\0\x01\0\0\0\x1aused_event_with_topic_type\0\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\x07\xd0\0\0\0\x12UsedEventTopicType\0\0\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithTopicType", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_topic_type"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithTopicType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithTopicType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithTopicType { @@ -1741,7 +2028,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventWithTopicType { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1q^\xe2&\x9di\x9d\x0e"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventWithTopicType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1820,10 +2107,29 @@ impl ::core::cmp::PartialEq for UsedEventDataType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDEVENTDATATYPE: [u8; 72usize] = UsedEventDataType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTDATATYPE: [u8; UsedEventDataType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventDataType::spec_xdr(); impl UsedEventDataType { - pub const fn spec_xdr() -> [u8; 72usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedEventDataType\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04\0\0\0\0\0\0\0\x01y\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataType"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"y"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventDataType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventDataType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventDataType { @@ -1833,7 +2139,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventDataType { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xc2 \x1b\xdc\xc8gxZ"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventDataType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -1936,11 +2242,41 @@ impl ::core::cmp::PartialEq for UsedEventWithDataType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_USEDEVENTWITHDATATYPE: [u8; 152usize] = - UsedEventWithDataType::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHDATATYPE: [u8; UsedEventWithDataType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventWithDataType::spec_xdr(); impl UsedEventWithDataType { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x15UsedEventWithDataType\0\0\0\0\0\0\x01\0\0\0\x19used_event_with_data_type\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x07payload\0\0\0\x07\xd0\0\0\0\x11UsedEventDataType\0\0\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithDataType", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_data_type"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithDataType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithDataType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithDataType { @@ -1950,7 +2286,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventWithDataType { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1q\xa3z;6\xa6R\x01"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventWithDataType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2025,10 +2361,28 @@ impl ::core::cmp::PartialEq for UsedEventTopicOuter { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDEVENTTOPICOUTER: [u8; 84usize] = UsedEventTopicOuter::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTTOPICOUTER: [u8; UsedEventTopicOuter::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventTopicOuter::spec_xdr(); impl UsedEventTopicOuter { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x13UsedEventTopicOuter\0\0\0\0\x01\0\0\0\0\0\0\0\x05inner\0\0\0\0\0\x07\xd0\0\0\0\x13UsedEventTopicInner\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicOuter"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicInner"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventTopicOuter::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventTopicOuter::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventTopicOuter { @@ -2037,7 +2391,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventTopicOuter { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x94\xc7w/_\xebXc"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventTopicOuter::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2133,10 +2487,24 @@ impl ::core::cmp::PartialEq for UsedEventTopicInner { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDEVENTTOPICINNER: [u8; 56usize] = UsedEventTopicInner::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTTOPICINNER: [u8; UsedEventTopicInner::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventTopicInner::spec_xdr(); impl UsedEventTopicInner { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x13UsedEventTopicInner\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicInner"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventTopicInner::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventTopicInner::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventTopicInner { @@ -2145,7 +2513,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventTopicInner { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV16\x83?\xf0\xcdW\xb1/"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventTopicInner::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2244,11 +2612,42 @@ impl ::core::cmp::PartialEq for UsedEventWithNestedTopic { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDTOPIC: [u8; 152usize] = +pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDTOPIC: [u8; + UsedEventWithNestedTopic::__SPEC_XDR_VIEW.const_xdr_len()] = UsedEventWithNestedTopic::spec_xdr(); impl UsedEventWithNestedTopic { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x18UsedEventWithNestedTopic\0\0\0\x01\0\0\0\x1cused_event_with_nested_topic\0\0\0\x02\0\0\0\0\0\0\0\x04info\0\0\x07\xd0\0\0\0\x13UsedEventTopicOuter\0\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithNestedTopic", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_nested_topic"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"info"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventTopicOuter"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"amount"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithNestedTopic::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithNestedTopic::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithNestedTopic { @@ -2258,7 +2657,8 @@ impl soroban_sdk::SpecShakingMarker for UsedEventWithNestedTopic { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe3\xf2\x9b5%a\xfb\xd6"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&UsedEventWithNestedTopic::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2333,10 +2733,28 @@ impl ::core::cmp::PartialEq for UsedEventDataOuter { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDEVENTDATAOUTER: [u8; 84usize] = UsedEventDataOuter::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTDATAOUTER: [u8; UsedEventDataOuter::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventDataOuter::spec_xdr(); impl UsedEventDataOuter { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UsedEventDataOuter\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05inner\0\0\0\0\0\x07\xd0\0\0\0\x12UsedEventDataInner\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataOuter"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataInner"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventDataOuter::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventDataOuter::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventDataOuter { @@ -2345,7 +2763,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventDataOuter { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1'\xf2\xa2\xb9\xd0)\xc0u"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventDataOuter::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2441,10 +2859,24 @@ impl ::core::cmp::PartialEq for UsedEventDataInner { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDEVENTDATAINNER: [u8; 56usize] = UsedEventDataInner::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDEVENTDATAINNER: [u8; UsedEventDataInner::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventDataInner::spec_xdr(); impl UsedEventDataInner { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UsedEventDataInner\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataInner"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedEventDataInner::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventDataInner::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventDataInner { @@ -2453,7 +2885,7 @@ impl soroban_sdk::SpecShakingMarker for UsedEventDataInner { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x0c\xf0\xf6w\xfd\x1a\x1b\x94"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventDataInner::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2552,11 +2984,41 @@ impl ::core::cmp::PartialEq for UsedEventWithNestedData { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDDATA: [u8; 152usize] = - UsedEventWithNestedData::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHNESTEDDATA: [u8; + UsedEventWithNestedData::__SPEC_XDR_VIEW.const_xdr_len()] = UsedEventWithNestedData::spec_xdr(); impl UsedEventWithNestedData { - pub const fn spec_xdr() -> [u8; 152usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x17UsedEventWithNestedData\0\0\0\0\x01\0\0\0\x1bused_event_with_nested_data\0\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x07payload\0\0\0\x07\xd0\0\0\0\x12UsedEventDataOuter\0\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithNestedData", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_nested_data"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedEventDataOuter"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithNestedData::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithNestedData::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedEventWithNestedData { @@ -2566,7 +3028,8 @@ impl soroban_sdk::SpecShakingMarker for UsedEventWithNestedData { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1 \xfbl\x04B\x82\xc0\xb4"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&UsedEventWithNestedData::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2643,10 +3106,29 @@ impl ::core::cmp::PartialEq for UsedRefTopicType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDREFTOPICTYPE: [u8; 68usize] = UsedRefTopicType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDREFTOPICTYPE: [u8; UsedRefTopicType::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRefTopicType::spec_xdr(); impl UsedRefTopicType { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x10UsedRefTopicType\0\0\0\x02\0\0\0\0\0\0\0\x04Send\0\0\0\x01\0\0\0\0\0\0\0\x04Recv\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRefTopicType"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Send"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recv"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRefTopicType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRefTopicType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRefTopicType { @@ -2654,7 +3136,7 @@ impl soroban_sdk::SpecShakingMarker for UsedRefTopicType { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1@\xb9LO\xf9\xd1\xe8\xe2"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedRefTopicType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2741,10 +3223,28 @@ impl ::core::cmp::PartialEq for UsedRefDataType { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDREFDATATYPE: [u8; 76usize] = UsedRefDataType::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDREFDATATYPE: [u8; UsedRefDataType::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedRefDataType::spec_xdr(); impl UsedRefDataType { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fUsedRefDataType\0\0\0\0\x01\0\0\0\0\0\0\0\x06nested\0\0\0\0\x07\xd0\0\0\0\x10UsedRefDataInner" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataType"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"nested"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataInner"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRefDataType::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRefDataType::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRefDataType { @@ -2753,7 +3253,7 @@ impl soroban_sdk::SpecShakingMarker for UsedRefDataType { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1'\xbd_A\r\x9a\x89\x02"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedRefDataType::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2842,10 +3342,24 @@ impl ::core::cmp::PartialEq for UsedRefDataInner { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDREFDATAINNER: [u8; 52usize] = UsedRefDataInner::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDREFDATAINNER: [u8; UsedRefDataInner::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRefDataInner::spec_xdr(); impl UsedRefDataInner { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x10UsedRefDataInner\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataInner"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRefDataInner::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRefDataInner::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRefDataInner { @@ -2854,7 +3368,7 @@ impl soroban_sdk::SpecShakingMarker for UsedRefDataInner { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1K\xdf'8m/\xe8\x1d"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedRefDataInner::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -2951,10 +3465,45 @@ impl<'a> ::core::cmp::PartialEq for UsedEventWithRefs<'a> { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_USEDEVENTWITHREFS: [u8; 156usize] = UsedEventWithRefs::spec_xdr(); +pub static __SPEC_XDR_EVENT_USEDEVENTWITHREFS: [u8; UsedEventWithRefs::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedEventWithRefs::spec_xdr(); impl<'a> UsedEventWithRefs<'a> { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x11UsedEventWithRefs\0\0\0\0\0\0\x01\0\0\0\x14used_event_with_refs\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\x07\xd0\0\0\0\x10UsedRefTopicType\0\0\0\x01\0\0\0\0\0\0\0\x07payload\0\0\0\x07\xd0\0\0\0\x0fUsedRefDataType\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UsedEventWithRefs", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"used_event_with_refs"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRefTopicType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"payload"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRefDataType"), + }, + ), + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UsedEventWithRefs::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedEventWithRefs::__SPEC_XDR_VIEW.const_to_xdr() } } impl<'a> soroban_sdk::SpecShakingMarker for UsedEventWithRefs<'a> { @@ -2964,7 +3513,7 @@ impl<'a> soroban_sdk::SpecShakingMarker for UsedEventWithRefs<'a> { <&'a UsedRefTopicType as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); <&'a UsedRefDataType as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1[Q+\xe9\xde\xd5\xf2>"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedEventWithRefs::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3034,10 +3583,24 @@ impl ::core::cmp::PartialEq for UsedTupleElement { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDTUPLEELEMENT: [u8; 52usize] = UsedTupleElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDTUPLEELEMENT: [u8; UsedTupleElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedTupleElement::spec_xdr(); impl UsedTupleElement { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x10UsedTupleElement\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedTupleElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedTupleElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedTupleElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedTupleElement { @@ -3046,7 +3609,7 @@ impl soroban_sdk::SpecShakingMarker for UsedTupleElement { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xde\x1dMa\x01\xec\xb0A"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedTupleElement::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3138,11 +3701,24 @@ impl ::core::cmp::PartialEq for UsedTupleReturnElement { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDTUPLERETURNELEMENT: [u8; 60usize] = - UsedTupleReturnElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDTUPLERETURNELEMENT: [u8; UsedTupleReturnElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedTupleReturnElement::spec_xdr(); impl UsedTupleReturnElement { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x16UsedTupleReturnElement\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedTupleReturnElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedTupleReturnElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedTupleReturnElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedTupleReturnElement { @@ -3151,7 +3727,7 @@ impl soroban_sdk::SpecShakingMarker for UsedTupleReturnElement { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1Y\xa66\xb3\xecxE\x13"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedTupleReturnElement::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3245,11 +3821,24 @@ impl ::core::cmp::PartialEq for UsedVecInnerVecElement { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDVECINNERVECELEMENT: [u8; 60usize] = - UsedVecInnerVecElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECINNERVECELEMENT: [u8; UsedVecInnerVecElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedVecInnerVecElement::spec_xdr(); impl UsedVecInnerVecElement { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x16UsedVecInnerVecElement\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecInnerVecElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecInnerVecElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecInnerVecElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecInnerVecElement { @@ -3258,7 +3847,7 @@ impl soroban_sdk::SpecShakingMarker for UsedVecInnerVecElement { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xcf@%X\xde+J@"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedVecInnerVecElement::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3352,10 +3941,24 @@ impl ::core::cmp::PartialEq for UsedVecInnerElement { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDVECINNERELEMENT: [u8; 56usize] = UsedVecInnerElement::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECINNERELEMENT: [u8; UsedVecInnerElement::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedVecInnerElement::spec_xdr(); impl UsedVecInnerElement { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x13UsedVecInnerElement\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecInnerElement"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecInnerElement::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecInnerElement::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecInnerElement { @@ -3364,7 +3967,7 @@ impl soroban_sdk::SpecShakingMarker for UsedVecInnerElement { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xb4\xabN]\xe3\xeaA\xd6"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedVecInnerElement::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3468,10 +4071,48 @@ impl ::core::cmp::PartialEq for UsedVecElementNested { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDVECELEMENTNESTED: [u8; 156usize] = UsedVecElementNested::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDVECELEMENTNESTED: [u8; UsedVecElementNested::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedVecElementNested::spec_xdr(); impl UsedVecElementNested { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x14UsedVecElementNested\0\0\0\x03\0\0\0\0\0\0\0\x05inner\0\0\0\0\0\x07\xd0\0\0\0\x13UsedVecInnerElement\0\0\0\0\0\0\0\0\x03val\0\0\0\0\x04\0\0\0\0\0\0\0\tvec_inner\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x16UsedVecInnerVecElement\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedVecElementNested"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedVecInnerElement"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"vec_inner"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedVecInnerVecElement", + ), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedVecElementNested::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedVecElementNested::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedVecElementNested { @@ -3482,7 +4123,7 @@ impl soroban_sdk::SpecShakingMarker for UsedVecElementNested { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x13?J\x12d\xden|"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedVecElementNested::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3585,10 +4226,24 @@ impl ::core::cmp::PartialEq for UsedNonPubStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDNONPUBSTRUCT: [u8; 52usize] = UsedNonPubStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDNONPUBSTRUCT: [u8; UsedNonPubStruct::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedNonPubStruct::spec_xdr(); impl UsedNonPubStruct { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x10UsedNonPubStruct\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedNonPubStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedNonPubStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedNonPubStruct { @@ -3597,7 +4252,7 @@ impl soroban_sdk::SpecShakingMarker for UsedNonPubStruct { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1p\x8c\x0fN!\x082\xd8"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedNonPubStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3682,10 +4337,26 @@ impl ::core::cmp::PartialEq for UsedNonPubError { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDNONPUBERROR: [u8; 52usize] = UsedNonPubError::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDNONPUBERROR: [u8; UsedNonPubError::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedNonPubError::spec_xdr(); impl UsedNonPubError { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x0fUsedNonPubError\0\0\0\0\x01\0\0\0\0\0\0\0\x04Fail\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Fail"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UsedNonPubError::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedNonPubError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedNonPubError { @@ -3693,7 +4364,7 @@ impl soroban_sdk::SpecShakingMarker for UsedNonPubError { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa9<\xd8+\xb7\xa7\r\x17"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedNonPubError::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3844,10 +4515,28 @@ impl ::core::cmp::PartialEq for UsedRecursiveRoot { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDRECURSIVEROOT: [u8; 80usize] = UsedRecursiveRoot::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRECURSIVEROOT: [u8; UsedRecursiveRoot::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRecursiveRoot::spec_xdr(); impl UsedRecursiveRoot { - pub const fn spec_xdr() -> [u8; 80usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedRecursiveRoot\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\x07\xd0\0\0\0\x11UsedRecursiveNode\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveRoot"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveNode"), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRecursiveRoot::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRecursiveRoot::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRecursiveRoot { @@ -3856,7 +4545,7 @@ impl soroban_sdk::SpecShakingMarker for UsedRecursiveRoot { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1u2\x0b\x97\xae\xcd\x86\xbf"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedRecursiveRoot::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -3970,10 +4659,45 @@ impl ::core::cmp::PartialEq for UsedRecursiveNode { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDRECURSIVENODE: [u8; 140usize] = UsedRecursiveNode::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRECURSIVENODE: [u8; UsedRecursiveNode::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRecursiveNode::spec_xdr(); impl UsedRecursiveNode { - pub const fn spec_xdr() -> [u8; 140usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x11UsedRecursiveNode\0\0\0\0\0\0\x02\0\0\0\x01\0\0\0\0\0\0\0\x0cNotRecursive\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UsedLeaf\0\0\0\x01\0\0\0\0\0\0\0\tRecursive\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x11UsedRecursiveLeaf\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveNode"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotRecursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedLeaf"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveLeaf"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRecursiveNode::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRecursiveNode::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRecursiveNode { @@ -3983,7 +4707,7 @@ impl soroban_sdk::SpecShakingMarker for UsedRecursiveNode { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1*\\\x9c\xf4e\xaa\x1e]"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedRecursiveNode::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -4111,10 +4835,32 @@ impl ::core::cmp::PartialEq for UsedRecursiveLeaf { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDRECURSIVELEAF: [u8; 84usize] = UsedRecursiveLeaf::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDRECURSIVELEAF: [u8; UsedRecursiveLeaf::__SPEC_XDR_VIEW + .const_xdr_len()] = UsedRecursiveLeaf::spec_xdr(); impl UsedRecursiveLeaf { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x11UsedRecursiveLeaf\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x11UsedRecursiveRoot\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveLeaf"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveRoot"), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedRecursiveLeaf::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedRecursiveLeaf::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedRecursiveLeaf { @@ -4123,7 +4869,7 @@ impl soroban_sdk::SpecShakingMarker for UsedRecursiveLeaf { fn spec_shaking_marker() { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1?\xd9\xb3q\xdep>\xf3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedRecursiveLeaf::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -4210,10 +4956,24 @@ impl ::core::cmp::PartialEq for UsedLeaf { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_USEDLEAF: [u8; 44usize] = UsedLeaf::spec_xdr(); +pub static __SPEC_XDR_TYPE_USEDLEAF: [u8; UsedLeaf::__SPEC_XDR_VIEW.const_xdr_len()] = + UsedLeaf::spec_xdr(); impl UsedLeaf { - pub const fn spec_xdr() -> [u8; 44usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UsedLeaf\0\0\0\x01\0\0\0\0\0\0\0\x03val\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UsedLeaf"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"val"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UsedLeaf::__SPEC_XDR_VIEW.const_xdr_len()] { + UsedLeaf::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UsedLeaf { @@ -4222,7 +4982,7 @@ impl soroban_sdk::SpecShakingMarker for UsedLeaf { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe6Q\xd5T\x13\x8a\xb7l"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UsedLeaf::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -4653,10 +5413,40 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -4669,7 +5459,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x03\x04uN\xea\xd7[\x13"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ContractContext::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -4812,11 +5602,45 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = - SubContractInvocation::spec_xdr(); + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; SubContractInvocation::__SPEC_XDR_VIEW + .const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -4828,7 +5652,8 @@ mod wasm_imported { InvokerContractAuthEntry, > as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1 \x9d\xc5_\xba\x8fv\x18"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&SubContractInvocation::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -4962,11 +5787,39 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -4976,7 +5829,8 @@ mod wasm_imported { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe1\"T\xf0&\x19?P"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&CreateContractHostFnContext::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5132,11 +5986,51 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -5149,7 +6043,9 @@ mod wasm_imported { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xd2;\xff\xe6\x97\xda;\x83"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker( + &CreateContractWithConstructorHostFnContext::spec_xdr(), + ); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5286,10 +6182,31 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_STRUCTA: [u8; 60usize] = StructA::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTA: [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructA::spec_xdr(); impl StructA { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructA\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructA { @@ -5299,7 +6216,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xb6\x1c\xfd\xdfhY-d"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5419,10 +6336,31 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_STRUCTB: [u8; 60usize] = StructB::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTB: [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructB::spec_xdr(); impl StructB { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructB\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructB { @@ -5432,7 +6370,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xf3\xc4\xd3\x8c\xc1w\xe9\x18"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5552,10 +6490,35 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_STRUCTC: [u8; 64usize] = StructC::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTC: [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructC::spec_xdr(); impl StructC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x07StructC\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\x03\xea\0\0\0\x04\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructC { @@ -5565,7 +6528,7 @@ mod wasm_imported { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa3\x16\n\x8f\xc9\x92\xd2\x11"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5682,10 +6645,31 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; 64usize] = StructTupleA::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTTUPLEA: [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleA::spec_xdr(); impl StructTupleA { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleA\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructTupleA::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleA { @@ -5695,7 +6679,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xcf)\x97]S\xb2\xfd)"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructTupleA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5808,10 +6792,31 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; 64usize] = StructTupleB::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTTUPLEB: [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleB::spec_xdr(); impl StructTupleB { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleB\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\n" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleB"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U128, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructTupleB::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleB { @@ -5821,7 +6826,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1x\xd98\x9c\x1ao\xac\x8c"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructTupleB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -5935,10 +6940,31 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; 64usize] = StructTupleC::spec_xdr(); + pub static __SPEC_XDR_TYPE_STRUCTTUPLEC: [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] = + StructTupleC::spec_xdr(); impl StructTupleC { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cStructTupleC\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x13\0\0\0\0\0\0\0\x011\0\0\0\0\0\0\x0b" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StructTupleC"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; StructTupleC::__SPEC_XDR_VIEW.const_xdr_len()] { + StructTupleC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for StructTupleC { @@ -5948,7 +6974,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xc5=\x81\xc1\"\xafT\xd9"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&StructTupleC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -6130,10 +7156,66 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -6144,7 +7226,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\r\xb6\x0b\xec\x8f\xd04l"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Context::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -6325,10 +7407,30 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -6337,7 +7439,7 @@ mod wasm_imported { fn spec_shaking_marker() { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1^\xbe34\xd8\x99\x84\x91"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ContractExecutable::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -6549,11 +7651,67 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFn"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -6564,7 +7722,8 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xf0{\xa6\xe9r\xf3\x10\xf6"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&InvokerContractAuthEntry::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -6763,10 +7922,42 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { @@ -6775,7 +7966,7 @@ mod wasm_imported { fn spec_shaking_marker() { as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1L|{\r\xf4\xf2\x1a\xa8"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Executable::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -6933,10 +8124,37 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ENUMA: [u8; 76usize] = EnumA::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMA: [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumA::spec_xdr(); impl EnumA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumA\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\0\0\0\0\0\0\0\0\x02V3\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumA { @@ -6944,7 +8162,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa2=N\xc1p\x95\x90\xb2"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -7138,10 +8356,44 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ENUMB: [u8; 96usize] = EnumB::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMB: [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumB::spec_xdr(); impl EnumB { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumB\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\0\x07\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x02\0\0\0\x07\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumB { @@ -7150,7 +8402,7 @@ mod wasm_imported { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1'\x1b\0DSH^\xcc"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -7346,10 +8598,51 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ENUMC: [u8; 120usize] = EnumC::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMC: [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumC::spec_xdr(); impl EnumC { - pub const fn spec_xdr() -> [u8; 120usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x05EnumC\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x07StructA\0\0\0\0\x01\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0cStructTupleA" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructTupleA"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; EnumC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumC { @@ -7359,7 +8652,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa0\xdd\x8f\xdc\xc9W\xbe\xc2"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -7521,10 +8814,34 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; 76usize] = EnumIntA::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMINTA: [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntA::spec_xdr(); impl EnumIntA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntA\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 3u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntA::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntA { @@ -7532,7 +8849,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1V]\x80\\~\x1a\x08/"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumIntA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -7643,10 +8960,34 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; 76usize] = EnumIntB::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMINTB: [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntB::spec_xdr(); impl EnumIntB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntB\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\x14\0\0\0\0\0\0\0\x02V3\0\0\0\0\0\x1e" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 20u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 30u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntB::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntB { @@ -7654,7 +8995,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1,\x9c\xc0_\xed_)\x85"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumIntB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -7765,10 +9106,34 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; 76usize] = EnumIntC::spec_xdr(); + pub static __SPEC_XDR_TYPE_ENUMINTC: [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] = + EnumIntC::spec_xdr(); impl EnumIntC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08EnumIntC\0\0\0\x03\0\0\0\0\0\0\0\x02V1\0\0\0\0\0d\0\0\0\0\0\0\0\x02V2\0\0\0\0\0\xc8\0\0\0\0\0\0\0\x02V3\0\0\0\0\x01," + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"EnumIntC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V2"), + value: 200u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"V3"), + value: 300u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; EnumIntC::__SPEC_XDR_VIEW.const_xdr_len()] { + EnumIntC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EnumIntC { @@ -7776,7 +9141,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1`\xca\xda\x19\xb9c\xf0/"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EnumIntC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -7887,10 +9252,36 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ERRORA: [u8; 76usize] = ErrorA::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERRORA: [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorA::spec_xdr(); impl ErrorA { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorA\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x03" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorA"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 2u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 3u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorA::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorA { @@ -7898,7 +9289,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe9R\xa7\xe8b\x99\xa2\xc3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ErrorA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8079,10 +9470,36 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ERRORB: [u8; 76usize] = ErrorB::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERRORB: [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorB::spec_xdr(); impl ErrorB { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorB\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0\n\0\0\0\0\0\0\0\x02E2\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02E3\0\0\0\0\0\x0c" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorB"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 11u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 12u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorB::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorB { @@ -8090,7 +9507,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x1d1\xd6\xfb\x88\xd2=\xe3"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ErrorB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8271,10 +9688,36 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_TYPE_ERRORC: [u8; 76usize] = ErrorC::spec_xdr(); + pub static __SPEC_XDR_TYPE_ERRORC: [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] = + ErrorC::spec_xdr(); impl ErrorC { - pub const fn spec_xdr() -> [u8; 76usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x06ErrorC\0\0\0\0\0\x03\0\0\0\0\0\0\0\x02E1\0\0\0\0\0d\0\0\0\0\0\0\0\x02E2\0\0\0\0\0e\0\0\0\0\0\0\0\x02E3\0\0\0\0\0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ErrorC"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E1"), + value: 100u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E2"), + value: 101u32, + }, + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"E3"), + value: 102u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ErrorC::__SPEC_XDR_VIEW.const_xdr_len()] { + ErrorC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ErrorC { @@ -8282,7 +9725,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xb9\x01\xafj\xe0c\xa3\r"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&ErrorC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8463,10 +9906,35 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_EVENT_EVENTA: [u8; 88usize] = EventA::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTA: [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] = + EventA::spec_xdr(); impl EventA { - pub const fn spec_xdr() -> [u8; 88usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventA\0\0\0\0\0\x01\0\0\0\x07event_a\0\0\0\0\x02\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x10\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventA")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_a"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::String, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventA::__SPEC_XDR_VIEW.const_xdr_len()] { + EventA::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventA { @@ -8476,7 +9944,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1K\xe6\x8ej\x19\x9en\xbd"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventA::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8588,10 +10056,41 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_EVENT_EVENTB: [u8; 108usize] = EventB::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTB: [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] = + EventB::spec_xdr(); impl EventB { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventB\0\0\0\0\0\x01\0\0\0\x07event_b\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x0b\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventB")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_b"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I128, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventB::__SPEC_XDR_VIEW.const_xdr_len()] { + EventB::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventB { @@ -8602,7 +10101,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe6\xaa\xefz\x17i$\x15"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventB::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8717,10 +10216,41 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_EVENT_EVENTC: [u8; 108usize] = EventC::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTC: [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] = + EventC::spec_xdr(); impl EventC { - pub const fn spec_xdr() -> [u8; 108usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventC\0\0\0\0\0\x01\0\0\0\x07event_c\0\0\0\0\x03\0\0\0\0\0\0\0\x02f1\0\0\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x02f2\0\0\0\0\0\x07\0\0\0\0\0\0\0\0\0\0\0\x02f3\0\0\0\0\0\x07\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventC")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_c"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f2"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"f3"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventC::__SPEC_XDR_VIEW.const_xdr_len()] { + EventC::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventC { @@ -8731,7 +10261,7 @@ mod wasm_imported { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x16\xd6\xdf\xe7\xdb\xb4W@"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventC::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8813,10 +10343,22 @@ mod wasm_imported { } } #[link_section = "contractspecv0"] - pub static __SPEC_XDR_EVENT_EVENTD: [u8; 48usize] = EventD::spec_xdr(); + pub static __SPEC_XDR_EVENT_EVENTD: [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] = + EventD::spec_xdr(); impl EventD { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x06EventD\0\0\0\0\0\x01\0\0\0\x07event_d\0\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"EventD")), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"event_d"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; EventD::__SPEC_XDR_VIEW.const_xdr_len()] { + EventD::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for EventD { @@ -8824,7 +10366,7 @@ mod wasm_imported { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x15\xf0Wx\x15\x83\xc0:"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&EventD::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -8893,10 +10435,24 @@ impl ::core::cmp::PartialEq for UnusedStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDSTRUCT: [u8; 48usize] = UnusedStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDSTRUCT: [u8; UnusedStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedStruct::spec_xdr(); impl UnusedStruct { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUnusedStruct\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedStruct { @@ -8905,7 +10461,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedStruct { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1|\x9c\t\x1e\xf5\xa8\x19\xa0"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9005,10 +10561,34 @@ impl ::core::cmp::PartialEq for UnusedEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDENUM: [u8; 72usize] = UnusedEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDENUM: [u8; UnusedEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedEnum::spec_xdr(); impl UnusedEnum { - pub const fn spec_xdr() -> [u8; 72usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nUnusedEnum\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedEnum { @@ -9017,7 +10597,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedEnum { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1/\x82\x9a0\xbe@\x0eZ"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9141,10 +10721,29 @@ impl ::core::cmp::PartialEq for UnusedIntEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDINTENUM: [u8; 68usize] = UnusedIntEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDINTENUM: [u8; UnusedIntEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedIntEnum::spec_xdr(); impl UnusedIntEnum { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\rUnusedIntEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02U1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02U2\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedIntEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"U1"), + value: 1u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"U2"), + value: 2u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedIntEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedIntEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedIntEnum { @@ -9152,7 +10751,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedIntEnum { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\x0c\xdd\xee~,\x83\xe4\x9c"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedIntEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9244,10 +10843,37 @@ impl ::core::cmp::PartialEq for UnusedEvent { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_EVENT_UNUSEDEVENT: [u8; 96usize] = UnusedEvent::spec_xdr(); +pub static __SPEC_XDR_EVENT_UNUSEDEVENT: [u8; UnusedEvent::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedEvent::spec_xdr(); impl UnusedEvent { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x0bUnusedEvent\0\0\0\0\x01\0\0\0\x0cunused_event\0\0\0\x02\0\0\0\0\0\0\0\x04kind\0\0\0\x11\0\0\0\x01\0\0\0\0\0\0\0\x04data\0\0\0\x04\0\0\0\0\0\0\0\x02" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::EventV0(soroban_sdk::xdr::ScSpecEventV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"UnusedEvent", + )), + prefix_topics: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSymbolView( + soroban_sdk::xdr::StringMView::new(b"unused_event"), + )]), + params: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"kind"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::TopicList, + }, + soroban_sdk::xdr::ScSpecEventParamV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"data"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + location: soroban_sdk::xdr::ScSpecEventParamLocationV0::Data, + }, + ]), + data_format: soroban_sdk::xdr::ScSpecEventDataFormat::Map, + }); + pub const fn spec_xdr() -> [u8; UnusedEvent::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedEvent::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedEvent { @@ -9257,7 +10883,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedEvent { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x10\xe8\xf6\xcc\xea\xc3Sb"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedEvent::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9322,10 +10948,26 @@ impl ::core::cmp::PartialEq for UnusedPubError { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDPUBERROR: [u8; 52usize] = UnusedPubError::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDPUBERROR: [u8; UnusedPubError::__SPEC_XDR_VIEW.const_xdr_len()] = + UnusedPubError::spec_xdr(); impl UnusedPubError { - pub const fn spec_xdr() -> [u8; 52usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x0eUnusedPubError\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Nope\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedPubError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Nope"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UnusedPubError::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedPubError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedPubError { @@ -9333,7 +10975,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedPubError { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe7\xf0{7\xdd\x90z="; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedPubError::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9484,11 +11126,25 @@ impl ::core::cmp::PartialEq for UnusedNonContractFnParam { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNPARAM: [u8; 60usize] = +pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNPARAM: [u8; + UnusedNonContractFnParam::__SPEC_XDR_VIEW.const_xdr_len()] = UnusedNonContractFnParam::spec_xdr(); impl UnusedNonContractFnParam { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x18UnusedNonContractFnParam\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonContractFnParam"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedNonContractFnParam::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonContractFnParam::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonContractFnParam { @@ -9497,7 +11153,8 @@ impl soroban_sdk::SpecShakingMarker for UnusedNonContractFnParam { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x81\xbc\xdb\xb4\xc1\xcb\xbd\xc5"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&UnusedNonContractFnParam::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9591,11 +11248,25 @@ impl ::core::cmp::PartialEq for UnusedNonContractFnReturn { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNRETURN: [u8; 64usize] = +pub static __SPEC_XDR_TYPE_UNUSEDNONCONTRACTFNRETURN: [u8; + UnusedNonContractFnReturn::__SPEC_XDR_VIEW.const_xdr_len()] = UnusedNonContractFnReturn::spec_xdr(); impl UnusedNonContractFnReturn { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x19UnusedNonContractFnReturn\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonContractFnReturn"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedNonContractFnReturn::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonContractFnReturn::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonContractFnReturn { @@ -9604,7 +11275,8 @@ impl soroban_sdk::SpecShakingMarker for UnusedNonContractFnReturn { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x7fe\x1c\n\x87g\x1d\xc0"; + static MARKER: [u8; 14] = + soroban_sdk::spec_marker(&UnusedNonContractFnReturn::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9693,10 +11365,24 @@ impl ::core::cmp::PartialEq for UnusedNonPubStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDNONPUBSTRUCT: [u8; 56usize] = UnusedNonPubStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDNONPUBSTRUCT: [u8; UnusedNonPubStruct::__SPEC_XDR_VIEW + .const_xdr_len()] = UnusedNonPubStruct::spec_xdr(); impl UnusedNonPubStruct { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x12UnusedNonPubStruct\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01x\0\0\0\0\0\0\x04" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonPubStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"x"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UnusedNonPubStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonPubStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonPubStruct { @@ -9705,7 +11391,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedNonPubStruct { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xa8;,%}]PA"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedNonPubStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -9792,10 +11478,26 @@ impl ::core::cmp::PartialEq for UnusedNonPubError { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UNUSEDNONPUBERROR: [u8; 56usize] = UnusedNonPubError::spec_xdr(); +pub static __SPEC_XDR_TYPE_UNUSEDNONPUBERROR: [u8; UnusedNonPubError::__SPEC_XDR_VIEW + .const_xdr_len()] = UnusedNonPubError::spec_xdr(); impl UnusedNonPubError { - pub const fn spec_xdr() -> [u8; 56usize] { - *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x11UnusedNonPubError\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03Bad\0\0\0\0\x01" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtErrorEnumV0( + soroban_sdk::xdr::ScSpecUdtErrorEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UnusedNonPubError"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtErrorEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Bad"), + value: 1u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UnusedNonPubError::__SPEC_XDR_VIEW.const_xdr_len()] { + UnusedNonPubError::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UnusedNonPubError { @@ -9803,7 +11505,7 @@ impl soroban_sdk::SpecShakingMarker for UnusedNonPubError { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xd9_\x99\"=\xc6FM"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UnusedNonPubError::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -10022,12 +11724,41 @@ pub mod __Contract__with_param__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_PARAM: [u8; 104usize] = super::Contract::spec_xdr_with_param(); + pub static __SPEC_XDR_FN_WITH_PARAM: [u8; super::Contract::__SPEC_XDR_VIEW_with_param + .const_xdr_len()] = super::Contract::spec_xdr_with_param(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_param: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_param")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedParamStruct"), + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ie"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedParamIntEnum"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_param() -> [u8; 104usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nwith_param\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x0fUsedParamStruct\0\0\0\0\0\0\0\0\x02ie\0\0\0\0\x07\xd0\0\0\0\x10UsedParamIntEnum\0\0\0\0" + pub const fn spec_xdr_with_param() -> [u8; Contract::__SPEC_XDR_VIEW_with_param.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_with_param.const_to_xdr() } } #[doc(hidden)] @@ -10037,12 +11768,28 @@ pub mod __Contract__with_return__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_RETURN: [u8; 56usize] = super::Contract::spec_xdr_with_return(); + pub static __SPEC_XDR_FN_WITH_RETURN: [u8; super::Contract::__SPEC_XDR_VIEW_with_return + .const_xdr_len()] = super::Contract::spec_xdr_with_return(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_return: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_return", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedReturnEnum"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_return() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bwith_return\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0eUsedReturnEnum\0\0" + pub const fn spec_xdr_with_return( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_return.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_return.const_to_xdr() } } #[doc(hidden)] @@ -10052,12 +11799,33 @@ pub mod __Contract__with_error__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_ERROR: [u8; 64usize] = super::Contract::spec_xdr_with_error(); + pub static __SPEC_XDR_FN_WITH_ERROR: [u8; super::Contract::__SPEC_XDR_VIEW_with_error + .const_xdr_len()] = super::Contract::spec_xdr_with_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_error")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedErrorEnum"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_error() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nwith_error\0\0\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x04\0\0\x07\xd0\0\0\0\rUsedErrorEnum\0\0\0" + pub const fn spec_xdr_with_error() -> [u8; Contract::__SPEC_XDR_VIEW_with_error.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_with_error.const_to_xdr() } } #[doc(hidden)] @@ -10067,13 +11835,31 @@ pub mod __Contract__with_panic_error__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_PANIC_ERROR: [u8; 52usize] = + pub static __SPEC_XDR_FN_WITH_PANIC_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_panic_error.const_xdr_len()] = super::Contract::spec_xdr_with_panic_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_panic_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_panic_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fail"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_panic_error() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x10with_panic_error\0\0\0\x01\0\0\0\0\0\0\0\x04fail\0\0\0\x01\0\0\0\0" + pub const fn spec_xdr_with_panic_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_panic_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_panic_error.const_to_xdr() } } #[doc(hidden)] @@ -10083,13 +11869,31 @@ pub mod __Contract__with_assert_error__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_ASSERT_ERROR: [u8; 56usize] = + pub static __SPEC_XDR_FN_WITH_ASSERT_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_assert_error.const_xdr_len()] = super::Contract::spec_xdr_with_assert_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_assert_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_assert_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ok"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_assert_error() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11with_assert_error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x02ok\0\0\0\0\0\x01\0\0\0\0" + pub const fn spec_xdr_with_assert_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_assert_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_assert_error.const_to_xdr() } } #[doc(hidden)] @@ -10099,13 +11903,31 @@ pub mod __Contract__with_panic_raw_error__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_PANIC_RAW_ERROR: [u8; 56usize] = + pub static __SPEC_XDR_FN_WITH_PANIC_RAW_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_panic_raw_error.const_xdr_len()] = super::Contract::spec_xdr_with_panic_raw_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_panic_raw_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_panic_raw_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fail"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Bool, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_panic_raw_error() -> [u8; 56usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14with_panic_raw_error\0\0\0\x01\0\0\0\0\0\0\0\x04fail\0\0\0\x01\0\0\0\0" + pub const fn spec_xdr_with_panic_raw_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_panic_raw_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_panic_raw_error.const_to_xdr() } } #[doc(hidden)] @@ -10115,12 +11937,35 @@ pub mod __Contract__with_vec__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_VEC: [u8; 68usize] = super::Contract::spec_xdr_with_vec(); + pub static __SPEC_XDR_FN_WITH_VEC: [u8; super::Contract::__SPEC_XDR_VIEW_with_vec + .const_xdr_len()] = super::Contract::spec_xdr_with_vec(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_vec: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_vec")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedVecElement"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_vec() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08with_vec\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x0eUsedVecElement\0\0\0\0\0\0" + pub const fn spec_xdr_with_vec() -> [u8; Contract::__SPEC_XDR_VIEW_with_vec.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_vec.const_to_xdr() } } #[doc(hidden)] @@ -10130,13 +11975,41 @@ pub mod __Contract__with_vec_nested__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_VEC_NESTED: [u8; 80usize] = + pub static __SPEC_XDR_FN_WITH_VEC_NESTED: [u8; + super::Contract::__SPEC_XDR_VIEW_with_vec_nested.const_xdr_len()] = super::Contract::spec_xdr_with_vec_nested(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_vec_nested: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_vec_nested", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"v"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedVecElementNested", + ), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_vec_nested() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0fwith_vec_nested\0\0\0\0\x01\0\0\0\0\0\0\0\x01v\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x14UsedVecElementNested\0\0\0\0" + pub const fn spec_xdr_with_vec_nested( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_vec_nested.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_vec_nested.const_to_xdr() } } #[doc(hidden)] @@ -10146,12 +12019,40 @@ pub mod __Contract__with_map__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_MAP: [u8; 84usize] = super::Contract::spec_xdr_with_map(); + pub static __SPEC_XDR_FN_WITH_MAP: [u8; super::Contract::__SPEC_XDR_VIEW_with_map + .const_xdr_len()] = super::Contract::spec_xdr_with_map(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_map: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_map")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"m"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedMapKey"), + }, + ), + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedMapVal"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_map() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x08with_map\0\0\0\x01\0\0\0\0\0\0\0\x01m\0\0\0\0\0\x03\xec\0\0\x07\xd0\0\0\0\nUsedMapKey\0\0\0\0\x07\xd0\0\0\0\nUsedMapVal\0\0\0\0\0\0" + pub const fn spec_xdr_with_map() -> [u8; Contract::__SPEC_XDR_VIEW_with_map.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_map.const_to_xdr() } } #[doc(hidden)] @@ -10161,12 +12062,38 @@ pub mod __Contract__with_option__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_OPTION: [u8; 76usize] = super::Contract::spec_xdr_with_option(); + pub static __SPEC_XDR_FN_WITH_OPTION: [u8; super::Contract::__SPEC_XDR_VIEW_with_option + .const_xdr_len()] = super::Contract::spec_xdr_with_option(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_option: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_option", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"o"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedOptionElement"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_option() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bwith_option\0\0\0\0\x01\0\0\0\0\0\0\0\x01o\0\0\0\0\0\x03\xe8\0\0\x07\xd0\0\0\0\x11UsedOptionElement\0\0\0\0\0\0\0" + pub const fn spec_xdr_with_option( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_option.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_option.const_to_xdr() } } #[doc(hidden)] @@ -10176,12 +12103,39 @@ pub mod __Contract__with_result__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_RESULT: [u8; 80usize] = super::Contract::spec_xdr_with_result(); + pub static __SPEC_XDR_FN_WITH_RESULT: [u8; super::Contract::__SPEC_XDR_VIEW_with_result + .const_xdr_len()] = super::Contract::spec_xdr_with_result(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_result: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_result", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedResultOk"), + }, + ), + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedErrorEnum"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_result() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0bwith_result\0\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\x07\xd0\0\0\0\x0cUsedResultOk\0\0\x07\xd0\0\0\0\rUsedErrorEnum\0\0\0" + pub const fn spec_xdr_with_result( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_result.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_result.const_to_xdr() } } #[doc(hidden)] @@ -10191,13 +12145,34 @@ pub mod __Contract__with_recursion__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_RECURSION: [u8; 76usize] = - super::Contract::spec_xdr_with_recursion(); + pub static __SPEC_XDR_FN_WITH_RECURSION: [u8; super::Contract::__SPEC_XDR_VIEW_with_recursion + .const_xdr_len()] = super::Contract::spec_xdr_with_recursion(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_recursion: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_recursion", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"r"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedRecursiveRoot"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_recursion() -> [u8; 76usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0ewith_recursion\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01r\0\0\0\0\0\x07\xd0\0\0\0\x11UsedRecursiveRoot\0\0\0\0\0\0\0" + pub const fn spec_xdr_with_recursion( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_recursion.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_recursion.const_to_xdr() } } #[doc(hidden)] @@ -10207,13 +12182,39 @@ pub mod __Contract__with_auth_contexts__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_AUTH_CONTEXTS: [u8; 72usize] = + pub static __SPEC_XDR_FN_WITH_AUTH_CONTEXTS: [u8; + super::Contract::__SPEC_XDR_VIEW_with_auth_contexts.const_xdr_len()] = super::Contract::spec_xdr_with_auth_contexts(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_auth_contexts: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_auth_contexts", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"c"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Context"), + }, + ), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_auth_contexts() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12with_auth_contexts\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x07Context\0\0\0\0\0" + pub const fn spec_xdr_with_auth_contexts( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_auth_contexts.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_auth_contexts.const_to_xdr() } } #[doc(hidden)] @@ -10223,13 +12224,35 @@ pub mod __Contract__with_invoker_auth__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_INVOKER_AUTH: [u8; 84usize] = + pub static __SPEC_XDR_FN_WITH_INVOKER_AUTH: [u8; + super::Contract::__SPEC_XDR_VIEW_with_invoker_auth.const_xdr_len()] = super::Contract::spec_xdr_with_invoker_auth(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_invoker_auth: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_invoker_auth", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"i"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_invoker_auth() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11with_invoker_auth\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01i\0\0\0\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry\0\0\0\0" + pub const fn spec_xdr_with_invoker_auth( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_invoker_auth.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_invoker_auth.const_to_xdr() } } #[doc(hidden)] @@ -10239,13 +12262,35 @@ pub mod __Contract__with_executable__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_EXECUTABLE: [u8; 68usize] = + pub static __SPEC_XDR_FN_WITH_EXECUTABLE: [u8; + super::Contract::__SPEC_XDR_VIEW_with_executable.const_xdr_len()] = super::Contract::spec_xdr_with_executable(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_executable: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_executable", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"e"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_executable() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0fwith_executable\0\0\0\0\x01\0\0\0\0\0\0\0\x01e\0\0\0\0\0\x07\xd0\0\0\0\nExecutable\0\0\0\0\0\0" + pub const fn spec_xdr_with_executable( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_executable.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_executable.const_to_xdr() } } #[doc(hidden)] @@ -10255,13 +12300,24 @@ pub mod __Contract__publish_simple__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH_SIMPLE: [u8; 36usize] = - super::Contract::spec_xdr_publish_simple(); + pub static __SPEC_XDR_FN_PUBLISH_SIMPLE: [u8; super::Contract::__SPEC_XDR_VIEW_publish_simple + .const_xdr_len()] = super::Contract::spec_xdr_publish_simple(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_simple: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_simple", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_simple() -> [u8; 36usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0epublish_simple\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_simple( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_simple.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_simple.const_to_xdr() } } #[doc(hidden)] @@ -10271,13 +12327,25 @@ pub mod __Contract__publish_topic_type__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH_TOPIC_TYPE: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_TOPIC_TYPE: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_topic_type.const_xdr_len()] = super::Contract::spec_xdr_publish_topic_type(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_topic_type: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_topic_type", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_topic_type() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12publish_topic_type\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_topic_type( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_topic_type.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_topic_type.const_to_xdr() } } #[doc(hidden)] @@ -10287,13 +12355,25 @@ pub mod __Contract__publish_data_type__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH_DATA_TYPE: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_DATA_TYPE: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_data_type.const_xdr_len()] = super::Contract::spec_xdr_publish_data_type(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_data_type: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_data_type", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_data_type() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11publish_data_type\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_data_type( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_data_type.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_data_type.const_to_xdr() } } #[doc(hidden)] @@ -10303,13 +12383,25 @@ pub mod __Contract__publish_nested_topic__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH_NESTED_TOPIC: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_NESTED_TOPIC: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_nested_topic.const_xdr_len()] = super::Contract::spec_xdr_publish_nested_topic(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_nested_topic: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_nested_topic", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_nested_topic() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x14publish_nested_topic\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_nested_topic( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_nested_topic.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_nested_topic.const_to_xdr() } } #[doc(hidden)] @@ -10319,13 +12411,25 @@ pub mod __Contract__publish_nested_data__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH_NESTED_DATA: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_NESTED_DATA: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_nested_data.const_xdr_len()] = super::Contract::spec_xdr_publish_nested_data(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_nested_data: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_nested_data", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_nested_data() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x13publish_nested_data\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_nested_data( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_nested_data.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_nested_data.const_to_xdr() } } #[doc(hidden)] @@ -10335,13 +12439,35 @@ pub mod __Contract__with_lib_struct__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_LIB_STRUCT: [u8; 64usize] = + pub static __SPEC_XDR_FN_WITH_LIB_STRUCT: [u8; + super::Contract::__SPEC_XDR_VIEW_with_lib_struct.const_xdr_len()] = super::Contract::spec_xdr_with_lib_struct(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_lib_struct: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_lib_struct", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructC"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_lib_struct() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0fwith_lib_struct\0\0\0\0\x01\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x07StructC\0\0\0\0\0" + pub const fn spec_xdr_with_lib_struct( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_lib_struct.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_lib_struct.const_to_xdr() } } #[doc(hidden)] @@ -10351,13 +12477,35 @@ pub mod __Contract__with_wasm_imported__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_WASM_IMPORTED: [u8; 68usize] = + pub static __SPEC_XDR_FN_WITH_WASM_IMPORTED: [u8; + super::Contract::__SPEC_XDR_VIEW_with_wasm_imported.const_xdr_len()] = super::Contract::spec_xdr_with_wasm_imported(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_wasm_imported: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_wasm_imported", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"StructA"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_wasm_imported() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12with_wasm_imported\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x07StructA\0\0\0\0\0" + pub const fn spec_xdr_with_wasm_imported( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_wasm_imported.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_wasm_imported.const_to_xdr() } } #[doc(hidden)] @@ -10367,12 +12515,34 @@ pub mod __Contract__with_non_pub__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_NON_PUB: [u8; 68usize] = super::Contract::spec_xdr_with_non_pub(); + pub static __SPEC_XDR_FN_WITH_NON_PUB: [u8; super::Contract::__SPEC_XDR_VIEW_with_non_pub + .const_xdr_len()] = super::Contract::spec_xdr_with_non_pub(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_non_pub: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_non_pub", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"s"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubStruct"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_non_pub() -> [u8; 68usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0cwith_non_pub\0\0\0\x01\0\0\0\0\0\0\0\x01s\0\0\0\0\0\x07\xd0\0\0\0\x10UsedNonPubStruct\0\0\0\0" + pub const fn spec_xdr_with_non_pub( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_non_pub.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_non_pub.const_to_xdr() } } #[doc(hidden)] @@ -10382,13 +12552,36 @@ pub mod __Contract__with_non_pub_error__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_NON_PUB_ERROR: [u8; 72usize] = + pub static __SPEC_XDR_FN_WITH_NON_PUB_ERROR: [u8; + super::Contract::__SPEC_XDR_VIEW_with_non_pub_error.const_xdr_len()] = super::Contract::spec_xdr_with_non_pub_error(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_non_pub_error: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_non_pub_error", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UsedNonPubError"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_non_pub_error() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x12with_non_pub_error\0\0\0\0\0\0\0\0\0\x01\0\0\x03\xe9\0\0\0\x04\0\0\x07\xd0\0\0\0\x0fUsedNonPubError\0" + pub const fn spec_xdr_with_non_pub_error( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_non_pub_error.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_non_pub_error.const_to_xdr() } } #[doc(hidden)] @@ -10398,12 +12591,41 @@ pub mod __Contract__with_tuple__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_TUPLE: [u8; 80usize] = super::Contract::spec_xdr_with_tuple(); + pub static __SPEC_XDR_FN_WITH_TUPLE: [u8; super::Contract::__SPEC_XDR_VIEW_with_tuple + .const_xdr_len()] = super::Contract::spec_xdr_with_tuple(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_tuple: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"with_tuple")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"t"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedTupleElement", + ), + }, + ), + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_tuple() -> [u8; 80usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\nwith_tuple\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01t\0\0\0\0\0\x03\xed\0\0\0\x02\0\0\x07\xd0\0\0\0\x10UsedTupleElement\0\0\0\x04\0\0\0\0" + pub const fn spec_xdr_with_tuple() -> [u8; Contract::__SPEC_XDR_VIEW_with_tuple.const_xdr_len()] + { + Contract::__SPEC_XDR_VIEW_with_tuple.const_to_xdr() } } #[doc(hidden)] @@ -10413,13 +12635,40 @@ pub mod __Contract__with_tuple_return__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_WITH_TUPLE_RETURN: [u8; 84usize] = + pub static __SPEC_XDR_FN_WITH_TUPLE_RETURN: [u8; + super::Contract::__SPEC_XDR_VIEW_with_tuple_return.const_xdr_len()] = super::Contract::spec_xdr_with_tuple_return(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_with_tuple_return: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"with_tuple_return", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UsedTupleReturnElement", + ), + }, + ), + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_with_tuple_return() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11with_tuple_return\0\0\0\0\0\0\0\0\0\0\x01\0\0\x03\xed\0\0\0\x02\0\0\x07\xd0\0\0\0\x16UsedTupleReturnElement\0\0\0\0\0\x04" + pub const fn spec_xdr_with_tuple_return( + ) -> [u8; Contract::__SPEC_XDR_VIEW_with_tuple_return.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_with_tuple_return.const_to_xdr() } } #[doc(hidden)] @@ -10429,13 +12678,25 @@ pub mod __Contract__publish_ref_event__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_PUBLISH_REF_EVENT: [u8; 40usize] = + pub static __SPEC_XDR_FN_PUBLISH_REF_EVENT: [u8; + super::Contract::__SPEC_XDR_VIEW_publish_ref_event.const_xdr_len()] = super::Contract::spec_xdr_publish_ref_event(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_publish_ref_event: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"publish_ref_event", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_publish_ref_event() -> [u8; 40usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x11publish_ref_event\0\0\0\0\0\0\0\0\0\0\0" + pub const fn spec_xdr_publish_ref_event( + ) -> [u8; Contract::__SPEC_XDR_VIEW_publish_ref_event.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_publish_ref_event.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_tuples_tests.rs b/tests-expanded/test_tuples_tests.rs index 58d817859..9f6089be6 100644 --- a/tests-expanded/test_tuples_tests.rs +++ b/tests-expanded/test_tuples_tests.rs @@ -151,12 +151,27 @@ pub mod __Contract__void_fn__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_VOID_FN: [u8; 52usize] = super::Contract::spec_xdr_void_fn(); + pub static __SPEC_XDR_FN_VOID_FN: [u8; super::Contract::__SPEC_XDR_VIEW_void_fn + .const_xdr_len()] = super::Contract::spec_xdr_void_fn(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_void_fn: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"void_fn")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"void_arg"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Void, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Void]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_void_fn() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07void_fn\0\0\0\0\x01\0\0\0\0\0\0\0\x08void_arg\0\0\0\x02\0\0\0\x01\0\0\0\x02" + pub const fn spec_xdr_void_fn() -> [u8; Contract::__SPEC_XDR_VIEW_void_fn.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_void_fn.const_to_xdr() } } #[doc(hidden)] @@ -165,12 +180,41 @@ pub mod __Contract__tuple1__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TUPLE1: [u8; 64usize] = super::Contract::spec_xdr_tuple1(); + pub static __SPEC_XDR_FN_TUPLE1: [u8; super::Contract::__SPEC_XDR_VIEW_tuple1.const_xdr_len()] = + super::Contract::spec_xdr_tuple1(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_tuple1: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"tuple1")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"arg"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_tuple1() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06tuple1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03arg\0\0\0\x03\xed\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\x03\xed\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_tuple1() -> [u8; Contract::__SPEC_XDR_VIEW_tuple1.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_tuple1.const_to_xdr() } } #[doc(hidden)] @@ -179,12 +223,43 @@ pub mod __Contract__tuple2__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_TUPLE2: [u8; 72usize] = super::Contract::spec_xdr_tuple2(); + pub static __SPEC_XDR_FN_TUPLE2: [u8; super::Contract::__SPEC_XDR_VIEW_tuple2.const_xdr_len()] = + super::Contract::spec_xdr_tuple2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_tuple2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"tuple2")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"arg"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_tuple2() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06tuple2\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03arg\0\0\0\x03\xed\0\0\0\x02\0\0\0\x04\0\0\0\x07\0\0\0\x01\0\0\x03\xed\0\0\0\x02\0\0\0\x04\0\0\0\x07" + pub const fn spec_xdr_tuple2() -> [u8; Contract::__SPEC_XDR_VIEW_tuple2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_tuple2.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -1113,10 +1188,40 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -1651,11 +1756,49 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; + SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] + { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -2128,11 +2271,41 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractExecutable", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -2637,11 +2810,53 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractExecutable", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -3272,10 +3487,70 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -3943,11 +4218,32 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = - ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -4487,11 +4783,72 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -5221,10 +5578,44 @@ mod test { } } } - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { diff --git a/tests-expanded/test_tuples_wasm32v1-none.rs b/tests-expanded/test_tuples_wasm32v1-none.rs index 2b9bf3c77..ee7a18971 100644 --- a/tests-expanded/test_tuples_wasm32v1-none.rs +++ b/tests-expanded/test_tuples_wasm32v1-none.rs @@ -40,12 +40,27 @@ pub mod __Contract__void_fn__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_VOID_FN: [u8; 52usize] = super::Contract::spec_xdr_void_fn(); + pub static __SPEC_XDR_FN_VOID_FN: [u8; super::Contract::__SPEC_XDR_VIEW_void_fn + .const_xdr_len()] = super::Contract::spec_xdr_void_fn(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_void_fn: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"void_fn")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"void_arg"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Void, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Void]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_void_fn() -> [u8; 52usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x07void_fn\0\0\0\0\x01\0\0\0\0\0\0\0\x08void_arg\0\0\0\x02\0\0\0\x01\0\0\0\x02" + pub const fn spec_xdr_void_fn() -> [u8; Contract::__SPEC_XDR_VIEW_void_fn.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_void_fn.const_to_xdr() } } #[doc(hidden)] @@ -55,12 +70,41 @@ pub mod __Contract__tuple1__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TUPLE1: [u8; 64usize] = super::Contract::spec_xdr_tuple1(); + pub static __SPEC_XDR_FN_TUPLE1: [u8; super::Contract::__SPEC_XDR_VIEW_tuple1.const_xdr_len()] = + super::Contract::spec_xdr_tuple1(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_tuple1: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"tuple1")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"arg"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_tuple1() -> [u8; 64usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06tuple1\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03arg\0\0\0\x03\xed\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\x03\xed\0\0\0\x01\0\0\0\x04" + pub const fn spec_xdr_tuple1() -> [u8; Contract::__SPEC_XDR_VIEW_tuple1.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_tuple1.const_to_xdr() } } #[doc(hidden)] @@ -70,12 +114,43 @@ pub mod __Contract__tuple2__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_TUPLE2: [u8; 72usize] = super::Contract::spec_xdr_tuple2(); + pub static __SPEC_XDR_FN_TUPLE2: [u8; super::Contract::__SPEC_XDR_VIEW_tuple2.const_xdr_len()] = + super::Contract::spec_xdr_tuple2(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_tuple2: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"tuple2")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"arg"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Tuple( + &soroban_sdk::xdr::ScSpecTypeTupleView { + value_types: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::U32, + soroban_sdk::xdr::ScSpecTypeDefView::I64, + ]), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_tuple2() -> [u8; 72usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x06tuple2\0\0\0\0\0\x01\0\0\0\0\0\0\0\x03arg\0\0\0\x03\xed\0\0\0\x02\0\0\0\x04\0\0\0\x07\0\0\0\x01\0\0\x03\xed\0\0\0\x02\0\0\0\x04\0\0\0\x07" + pub const fn spec_xdr_tuple2() -> [u8; Contract::__SPEC_XDR_VIEW_tuple2.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_tuple2.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_udt_tests.rs b/tests-expanded/test_udt_tests.rs index a354da83d..f8a3aeff3 100644 --- a/tests-expanded/test_udt_tests.rs +++ b/tests-expanded/test_udt_tests.rs @@ -49,10 +49,29 @@ impl ::core::cmp::PartialEq for UdtEnum2 { __self_discr == __arg1_discr } } -pub static __SPEC_XDR_TYPE_UDTENUM2: [u8; 60usize] = UdtEnum2::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTENUM2: [u8; UdtEnum2::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtEnum2::spec_xdr(); impl UdtEnum2 { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08UdtEnum2\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum2"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 15u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtEnum2::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtEnum2::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtEnum2 { @@ -398,10 +417,64 @@ impl ::core::cmp::PartialEq for UdtEnum { } } } -pub static __SPEC_XDR_TYPE_UDTENUM: [u8; 156usize] = UdtEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTENUM: [u8; UdtEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtEnum::spec_xdr(); impl UdtEnum { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07UdtEnum\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x04UdtA\0\0\0\x01\0\0\0\0\0\0\0\x04UdtB\0\0\0\x01\0\0\x07\xd0\0\0\0\tUdtStruct\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04UdtC\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtEnum2\0\0\0\x01\0\0\0\0\0\0\0\x04UdtD\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtTuple" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtA"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtB"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtStruct"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtC"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum2"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtD"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtTuple"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UdtEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtEnum { @@ -1013,10 +1086,33 @@ impl ::core::cmp::PartialEq for UdtTuple { self.0 == other.0 && self.1 == other.1 } } -pub static __SPEC_XDR_TYPE_UDTTUPLE: [u8; 64usize] = UdtTuple::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTTUPLE: [u8; UdtTuple::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtTuple::spec_xdr(); impl UdtTuple { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UdtTuple\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\x03\xea\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtTuple"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtTuple::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtTuple::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtTuple { @@ -1406,10 +1502,38 @@ impl ::core::cmp::PartialEq for UdtStruct { self.a == other.a && self.b == other.b && self.c == other.c } } -pub static __SPEC_XDR_TYPE_UDTSTRUCT: [u8; 84usize] = UdtStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTSTRUCT: [u8; UdtStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtStruct::spec_xdr(); impl UdtStruct { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tUdtStruct\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"c"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtStruct { @@ -1880,10 +2004,37 @@ impl ::core::cmp::PartialEq for UdtRecursive { self.a == other.a && self.b == other.b } } -pub static __SPEC_XDR_TYPE_UDTRECURSIVE: [u8; 84usize] = UdtRecursive::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTRECURSIVE: [u8; UdtRecursive::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtRecursive::spec_xdr(); impl UdtRecursive { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUdtRecursive\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x0cUdtRecursive" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtRecursive::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtRecursive::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtRecursive { @@ -2305,10 +2456,38 @@ impl ::core::cmp::PartialEq for RecursiveToEnum { self.a == other.a && self.b == other.b } } -pub static __SPEC_XDR_TYPE_RECURSIVETOENUM: [u8; 96usize] = RecursiveToEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_RECURSIVETOENUM: [u8; RecursiveToEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + RecursiveToEnum::spec_xdr(); impl RecursiveToEnum { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fRecursiveToEnum\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"RecursiveToEnum"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; RecursiveToEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + RecursiveToEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for RecursiveToEnum { @@ -2744,10 +2923,38 @@ impl ::core::cmp::PartialEq for RecursiveEnum { } } } -pub static __SPEC_XDR_TYPE_RECURSIVEENUM: [u8; 112usize] = RecursiveEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_RECURSIVEENUM: [u8; RecursiveEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + RecursiveEnum::spec_xdr(); impl RecursiveEnum { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0cNotRecursive\0\0\0\x01\0\0\0\0\0\0\0\tRecursive\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fRecursiveToEnum\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotRecursive"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveToEnum"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; RecursiveEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + RecursiveEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for RecursiveEnum { @@ -3350,12 +3557,40 @@ pub mod __Contract__add__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_ADD: [u8; 84usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x07\xd0\0\0\0\x07UdtEnum\0\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x07\xd0\0\0\0\x07UdtEnum\0\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } #[doc(hidden)] @@ -3364,12 +3599,41 @@ pub mod __Contract__recursive__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_RECURSIVE: [u8; 88usize] = super::Contract::spec_xdr_recursive(); + pub static __SPEC_XDR_FN_RECURSIVE: [u8; super::Contract::__SPEC_XDR_VIEW_recursive + .const_xdr_len()] = super::Contract::spec_xdr_recursive(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_recursive: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"recursive")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_recursive() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\trecursive\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x07\xd0\0\0\0\x0cUdtRecursive\0\0\0\x01\0\0\x03\xe8\0\0\x07\xd0\0\0\0\x0cUdtRecursive" + pub const fn spec_xdr_recursive() -> [u8; Contract::__SPEC_XDR_VIEW_recursive.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_recursive.const_to_xdr() } } #[doc(hidden)] @@ -3378,13 +3642,54 @@ pub mod __Contract__recursive_enum__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_RECURSIVE_ENUM: [u8; 124usize] = - super::Contract::spec_xdr_recursive_enum(); + pub static __SPEC_XDR_FN_RECURSIVE_ENUM: [u8; super::Contract::__SPEC_XDR_VIEW_recursive_enum + .const_xdr_len()] = super::Contract::spec_xdr_recursive_enum(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_recursive_enum: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"recursive_enum", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + }, + ), + }, + ), + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_recursive_enum() -> [u8; 124usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0erecursive_enum\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\0\0\0\0\x03key\0\0\0\0\x04\0\0\0\x01\0\0\x03\xe9\0\0\x03\xe8\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\x03" + pub const fn spec_xdr_recursive_enum( + ) -> [u8; Contract::__SPEC_XDR_VIEW_recursive_enum.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_recursive_enum.const_to_xdr() } } impl<'a> ContractClient<'a> { @@ -4646,10 +4951,35 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_UDTTUPLE: [u8; 64usize] = UdtTuple::spec_xdr(); + pub static __SPEC_XDR_TYPE_UDTTUPLE: [u8; UdtTuple::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtTuple::spec_xdr(); impl UdtTuple { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UdtTuple\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\x03\xea\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtTuple"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UdtTuple::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtTuple::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtTuple { @@ -5084,10 +5414,40 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_UDTSTRUCT: [u8; 84usize] = UdtStruct::spec_xdr(); + pub static __SPEC_XDR_TYPE_UDTSTRUCT: [u8; UdtStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtStruct::spec_xdr(); impl UdtStruct { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tUdtStruct\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"c"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UdtStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtStruct { @@ -5595,10 +5955,41 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_UDTRECURSIVE: [u8; 84usize] = UdtRecursive::spec_xdr(); + pub static __SPEC_XDR_TYPE_UDTRECURSIVE: [u8; UdtRecursive::__SPEC_XDR_VIEW + .const_xdr_len()] = UdtRecursive::spec_xdr(); impl UdtRecursive { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUdtRecursive\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x0cUdtRecursive" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UdtRecursive", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UdtRecursive::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtRecursive::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtRecursive { @@ -6055,10 +6446,42 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_RECURSIVETOENUM: [u8; 96usize] = RecursiveToEnum::spec_xdr(); + pub static __SPEC_XDR_TYPE_RECURSIVETOENUM: [u8; RecursiveToEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = RecursiveToEnum::spec_xdr(); impl RecursiveToEnum { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fRecursiveToEnum\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"RecursiveToEnum"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"RecursiveEnum", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; RecursiveToEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + RecursiveToEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for RecursiveToEnum { @@ -6539,10 +6962,40 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; 96usize] = ContractContext::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTCONTEXT: [u8; ContractContext::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractContext::spec_xdr(); impl ContractContext { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fContractContext\0\0\0\0\x03\0\0\0\0\0\0\0\x04args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\x08contract\0\0\0\x13\0\0\0\0\0\0\0\x07fn_name\0\0\0\0\x11" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"contract"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Address, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"fn_name"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractContext::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractContext { @@ -7077,11 +7530,49 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; 144usize] = + pub static __SPEC_XDR_TYPE_SUBCONTRACTINVOCATION: [u8; + SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] = SubContractInvocation::spec_xdr(); impl SubContractInvocation { - pub const fn spec_xdr() -> [u8; 144usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x07context\0\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\0\0\0\0\x0fsub_invocations\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x18InvokerContractAuthEntry" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"SubContractInvocation"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"context"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"sub_invocations"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"InvokerContractAuthEntry", + ), + }, + ), + }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; SubContractInvocation::__SPEC_XDR_VIEW.const_xdr_len()] + { + SubContractInvocation::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for SubContractInvocation { @@ -7554,11 +8045,41 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; 116usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTHOSTFNCONTEXT: [u8; + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractHostFnContext::spec_xdr(); impl CreateContractHostFnContext { - pub const fn spec_xdr() -> [u8; 116usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x02\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"CreateContractHostFnContext"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractExecutable", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] { + CreateContractHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractHostFnContext { @@ -8063,11 +8584,53 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; 164usize] = + pub static __SPEC_XDR_TYPE_CREATECONTRACTWITHCONSTRUCTORHOSTFNCONTEXT: [u8; + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] = CreateContractWithConstructorHostFnContext::spec_xdr(); impl CreateContractWithConstructorHostFnContext { - pub const fn spec_xdr() -> [u8; 164usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0*CreateContractWithConstructorHostFnContext\0\0\0\0\0\x03\0\0\0\0\0\0\0\x10constructor_args\0\0\x03\xea\0\0\0\0\0\0\0\0\0\0\0\nexecutable\0\0\0\0\x07\xd0\0\0\0\x12ContractExecutable\0\0\0\0\0\0\0\0\0\x04salt\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0( + soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"constructor_args"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Val, + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"executable"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractExecutable", + ), + }, + ), + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"salt"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + }, + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_xdr_len()] + { + CreateContractWithConstructorHostFnContext::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for CreateContractWithConstructorHostFnContext { @@ -8675,10 +9238,72 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_UDTENUM: [u8; 156usize] = UdtEnum::spec_xdr(); + pub static __SPEC_XDR_TYPE_UDTENUM: [u8; UdtEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtEnum::spec_xdr(); impl UdtEnum { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07UdtEnum\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x04UdtA\0\0\0\x01\0\0\0\0\0\0\0\x04UdtB\0\0\0\x01\0\0\x07\xd0\0\0\0\tUdtStruct\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04UdtC\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtEnum2\0\0\0\x01\0\0\0\0\0\0\0\x04UdtD\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtTuple" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtA"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtB"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UdtStruct", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtC"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UdtEnum2", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtD"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"UdtTuple", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UdtEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtEnum { @@ -9365,10 +9990,42 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_RECURSIVEENUM: [u8; 112usize] = RecursiveEnum::spec_xdr(); + pub static __SPEC_XDR_TYPE_RECURSIVEENUM: [u8; RecursiveEnum::__SPEC_XDR_VIEW + .const_xdr_len()] = RecursiveEnum::spec_xdr(); impl RecursiveEnum { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0cNotRecursive\0\0\0\x01\0\0\0\0\0\0\0\tRecursive\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fRecursiveToEnum\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotRecursive"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"RecursiveToEnum", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; RecursiveEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + RecursiveEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for RecursiveEnum { @@ -9951,10 +10608,70 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CONTEXT: [u8; 244usize] = Context::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTEXT: [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] = + Context::spec_xdr(); impl Context { - pub const fn spec_xdr() -> [u8; 244usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07Context\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fContractContext\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Context"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"ContractContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Context::__SPEC_XDR_VIEW.const_xdr_len()] { + Context::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Context { @@ -10622,11 +11339,32 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; 68usize] = - ContractExecutable::spec_xdr(); + pub static __SPEC_XDR_TYPE_CONTRACTEXECUTABLE: [u8; ContractExecutable::__SPEC_XDR_VIEW + .const_xdr_len()] = ContractExecutable::spec_xdr(); impl ContractExecutable { - pub const fn spec_xdr() -> [u8; 68usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x12ContractExecutable\0\0\0\0\0\x01\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 " + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"ContractExecutable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; ContractExecutable::__SPEC_XDR_VIEW.const_xdr_len()] { + ContractExecutable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for ContractExecutable { @@ -11166,11 +11904,72 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; 268usize] = + pub static __SPEC_XDR_TYPE_INVOKERCONTRACTAUTHENTRY: [u8; + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] = InvokerContractAuthEntry::spec_xdr(); impl InvokerContractAuthEntry { - pub const fn spec_xdr() -> [u8; 268usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x18InvokerContractAuthEntry\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x08Contract\0\0\0\x01\0\0\x07\xd0\0\0\0\x15SubContractInvocation\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x14CreateContractHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0\x1bCreateContractHostFnContext\0\0\0\0\x01\0\0\0\0\0\0\0\x1cCreateContractWithCtorHostFn\0\0\0\x01\0\0\x07\xd0\0\0\0*CreateContractWithConstructorHostFnContext\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"InvokerContractAuthEntry"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Contract"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"SubContractInvocation", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractHostFnContext", + ), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithCtorHostFn", + ), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new( + b"CreateContractWithConstructorHostFnContext", + ), + }, + ), + ]), + }, + ), + ]), + }, + ); + pub const fn spec_xdr( + ) -> [u8; InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_xdr_len()] { + InvokerContractAuthEntry::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for InvokerContractAuthEntry { @@ -11900,10 +12699,44 @@ mod test_with_wasm { } } } - pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; 104usize] = Executable::spec_xdr(); + pub static __SPEC_XDR_TYPE_EXECUTABLE: [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] = + Executable::spec_xdr(); impl Executable { - pub const fn spec_xdr() -> [u8; 104usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\nExecutable\0\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\x04Wasm\0\0\0\x01\0\0\x03\xee\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\x0cStellarAsset\0\0\0\0\0\0\0\0\0\0\0\x07Account\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0( + soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Executable"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Wasm"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::BytesN( + soroban_sdk::xdr::ScSpecTypeBytesN { n: 32u32 }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"StellarAsset"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Account"), + }, + ), + ]), + }, + ); + pub const fn spec_xdr() -> [u8; Executable::__SPEC_XDR_VIEW.const_xdr_len()] { + Executable::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Executable { @@ -12455,10 +13288,31 @@ mod test_with_wasm { ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr) } } - pub static __SPEC_XDR_TYPE_UDTENUM2: [u8; 60usize] = UdtEnum2::spec_xdr(); + pub static __SPEC_XDR_TYPE_UDTENUM2: [u8; UdtEnum2::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtEnum2::spec_xdr(); impl UdtEnum2 { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08UdtEnum2\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0( + soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum2"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 15u32, + }, + ]), + }, + ); + pub const fn spec_xdr() -> [u8; UdtEnum2::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtEnum2::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtEnum2 { diff --git a/tests-expanded/test_udt_wasm32v1-none.rs b/tests-expanded/test_udt_wasm32v1-none.rs index ea4fb6c6d..93314821d 100644 --- a/tests-expanded/test_udt_wasm32v1-none.rs +++ b/tests-expanded/test_udt_wasm32v1-none.rs @@ -50,10 +50,29 @@ impl ::core::cmp::PartialEq for UdtEnum2 { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UDTENUM2: [u8; 60usize] = UdtEnum2::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTENUM2: [u8; UdtEnum2::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtEnum2::spec_xdr(); impl UdtEnum2 { - pub const fn spec_xdr() -> [u8; 60usize] { - *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08UdtEnum2\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x0f" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtEnumV0(soroban_sdk::xdr::ScSpecUdtEnumV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum2"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"A"), + value: 10u32, + }, + soroban_sdk::xdr::ScSpecUdtEnumCaseV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"B"), + value: 15u32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtEnum2::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtEnum2::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtEnum2 { @@ -61,7 +80,7 @@ impl soroban_sdk::SpecShakingMarker for UdtEnum2 { #[inline(always)] fn spec_shaking_marker() { { - static MARKER: [u8; 14usize] = *b"SpEcV1\xaf\xf7\x93\xba\x9eM\xde\x9a"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UdtEnum2::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -170,10 +189,64 @@ impl ::core::cmp::PartialEq for UdtEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UDTENUM: [u8; 156usize] = UdtEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTENUM: [u8; UdtEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtEnum::spec_xdr(); impl UdtEnum { - pub const fn spec_xdr() -> [u8; 156usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07UdtEnum\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x04UdtA\0\0\0\x01\0\0\0\0\0\0\0\x04UdtB\0\0\0\x01\0\0\x07\xd0\0\0\0\tUdtStruct\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04UdtC\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtEnum2\0\0\0\x01\0\0\0\0\0\0\0\x04UdtD\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtTuple" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtA"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtB"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtStruct"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtC"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum2"), + }, + ), + ]), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtD"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtTuple"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; UdtEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtEnum { @@ -184,7 +257,7 @@ impl soroban_sdk::SpecShakingMarker for UdtEnum { ::spec_shaking_marker(); ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xf3\xb0\xab@i\rH\xb4"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UdtEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -335,10 +408,33 @@ impl ::core::cmp::PartialEq for UdtTuple { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UDTTUPLE: [u8; 64usize] = UdtTuple::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTTUPLE: [u8; UdtTuple::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtTuple::spec_xdr(); impl UdtTuple { - pub const fn spec_xdr() -> [u8; 64usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UdtTuple\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\x03\xea\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtTuple"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"0"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"1"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtTuple::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtTuple::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtTuple { @@ -348,7 +444,7 @@ impl soroban_sdk::SpecShakingMarker for UdtTuple { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xeb\x9f\x12&\x9av(*"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UdtTuple::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -451,10 +547,38 @@ impl ::core::cmp::PartialEq for UdtStruct { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UDTSTRUCT: [u8; 84usize] = UdtStruct::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTSTRUCT: [u8; UdtStruct::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtStruct::spec_xdr(); impl UdtStruct { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tUdtStruct\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\0\x07" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtStruct"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"c"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::I64, + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtStruct::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtStruct::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtStruct { @@ -465,7 +589,7 @@ impl soroban_sdk::SpecShakingMarker for UdtStruct { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x16'd8\xff\xc9\xb1\xf8"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UdtStruct::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -572,10 +696,37 @@ impl ::core::cmp::PartialEq for UdtRecursive { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_UDTRECURSIVE: [u8; 84usize] = UdtRecursive::spec_xdr(); +pub static __SPEC_XDR_TYPE_UDTRECURSIVE: [u8; UdtRecursive::__SPEC_XDR_VIEW.const_xdr_len()] = + UdtRecursive::spec_xdr(); impl UdtRecursive { - pub const fn spec_xdr() -> [u8; 84usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0cUdtRecursive\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xea\0\0\x07\xd0\0\0\0\x0cUdtRecursive" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Vec( + &soroban_sdk::xdr::ScSpecTypeVecView { + element_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; UdtRecursive::__SPEC_XDR_VIEW.const_xdr_len()] { + UdtRecursive::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for UdtRecursive { @@ -585,7 +736,7 @@ impl soroban_sdk::SpecShakingMarker for UdtRecursive { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xc8\x12\x91\xfe\xd7\x13\xf5\x9c"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&UdtRecursive::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -688,10 +839,38 @@ impl ::core::cmp::PartialEq for RecursiveToEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_RECURSIVETOENUM: [u8; 96usize] = RecursiveToEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_RECURSIVETOENUM: [u8; RecursiveToEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + RecursiveToEnum::spec_xdr(); impl RecursiveToEnum { - pub const fn spec_xdr() -> [u8; 96usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x0fRecursiveToEnum\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x11\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x03\xec\0\0\0\x04\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"RecursiveToEnum"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Symbol, + }, + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Map( + &soroban_sdk::xdr::ScSpecTypeMapView { + key_type: &soroban_sdk::xdr::ScSpecTypeDefView::U32, + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + }, + ), + }, + ), + }, + ]), + }); + pub const fn spec_xdr() -> [u8; RecursiveToEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + RecursiveToEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for RecursiveToEnum { @@ -701,7 +880,7 @@ impl soroban_sdk::SpecShakingMarker for RecursiveToEnum { ::spec_shaking_marker(); as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xe1oU\xdb\xd47\x98\x14"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&RecursiveToEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -811,10 +990,38 @@ impl ::core::cmp::PartialEq for RecursiveEnum { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_RECURSIVEENUM: [u8; 112usize] = RecursiveEnum::spec_xdr(); +pub static __SPEC_XDR_TYPE_RECURSIVEENUM: [u8; RecursiveEnum::__SPEC_XDR_VIEW.const_xdr_len()] = + RecursiveEnum::spec_xdr(); impl RecursiveEnum { - pub const fn spec_xdr() -> [u8; 112usize] { - *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0cNotRecursive\0\0\0\x01\0\0\0\0\0\0\0\tRecursive\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x0fRecursiveToEnum\0" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtUnionV0(soroban_sdk::xdr::ScSpecUdtUnionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + cases: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::VoidV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseVoidV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"NotRecursive"), + }, + ), + soroban_sdk::xdr::ScSpecUdtUnionCaseV0View::TupleV0( + soroban_sdk::xdr::ScSpecUdtUnionCaseTupleV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Recursive"), + type_: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveToEnum"), + }, + ), + ]), + }, + ), + ]), + }); + pub const fn spec_xdr() -> [u8; RecursiveEnum::__SPEC_XDR_VIEW.const_xdr_len()] { + RecursiveEnum::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for RecursiveEnum { @@ -823,7 +1030,7 @@ impl soroban_sdk::SpecShakingMarker for RecursiveEnum { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\xff{V \xab\r\xdcd"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&RecursiveEnum::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } } @@ -958,12 +1165,40 @@ pub mod __Contract__add__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_ADD: [u8; 84usize] = super::Contract::spec_xdr_add(); + pub static __SPEC_XDR_FN_ADD: [u8; super::Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] = + super::Contract::spec_xdr_add(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_add: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"add")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"b"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtEnum"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::I64]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_add() -> [u8; 84usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x03add\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x07\xd0\0\0\0\x07UdtEnum\0\0\0\0\0\0\0\0\x01b\0\0\0\0\0\x07\xd0\0\0\0\x07UdtEnum\0\0\0\0\x01\0\0\0\x07" + pub const fn spec_xdr_add() -> [u8; Contract::__SPEC_XDR_VIEW_add.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_add.const_to_xdr() } } #[doc(hidden)] @@ -973,12 +1208,41 @@ pub mod __Contract__recursive__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_RECURSIVE: [u8; 88usize] = super::Contract::spec_xdr_recursive(); + pub static __SPEC_XDR_FN_RECURSIVE: [u8; super::Contract::__SPEC_XDR_VIEW_recursive + .const_xdr_len()] = super::Contract::spec_xdr_recursive(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_recursive: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"recursive")), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + }, + ), + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"UdtRecursive"), + }, + ), + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_recursive() -> [u8; 88usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\trecursive\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x07\xd0\0\0\0\x0cUdtRecursive\0\0\0\x01\0\0\x03\xe8\0\0\x07\xd0\0\0\0\x0cUdtRecursive" + pub const fn spec_xdr_recursive() -> [u8; Contract::__SPEC_XDR_VIEW_recursive.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_recursive.const_to_xdr() } } #[doc(hidden)] @@ -988,13 +1252,54 @@ pub mod __Contract__recursive_enum__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_RECURSIVE_ENUM: [u8; 124usize] = - super::Contract::spec_xdr_recursive_enum(); + pub static __SPEC_XDR_FN_RECURSIVE_ENUM: [u8; super::Contract::__SPEC_XDR_VIEW_recursive_enum + .const_xdr_len()] = super::Contract::spec_xdr_recursive_enum(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_recursive_enum: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new( + b"recursive_enum", + )), + inputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"a"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + }, + ), + }, + soroban_sdk::xdr::ScSpecFunctionInputV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"key"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::U32, + }, + ]), + outputs: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecTypeDefView::Result( + &soroban_sdk::xdr::ScSpecTypeResultView { + ok_type: &soroban_sdk::xdr::ScSpecTypeDefView::Option( + &soroban_sdk::xdr::ScSpecTypeOptionView { + value_type: &soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"RecursiveEnum"), + }, + ), + }, + ), + error_type: &soroban_sdk::xdr::ScSpecTypeDefView::Error, + }, + ), + ]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_recursive_enum() -> [u8; 124usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x0erecursive_enum\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\0\0\0\0\x03key\0\0\0\0\x04\0\0\0\x01\0\0\x03\xe9\0\0\x03\xe8\0\0\x07\xd0\0\0\0\rRecursiveEnum\0\0\0\0\0\0\x03" + pub const fn spec_xdr_recursive_enum( + ) -> [u8; Contract::__SPEC_XDR_VIEW_recursive_enum.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_recursive_enum.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_workspace_contract_tests.rs b/tests-expanded/test_workspace_contract_tests.rs index 208c4564e..ae0008891 100644 --- a/tests-expanded/test_workspace_contract_tests.rs +++ b/tests-expanded/test_workspace_contract_tests.rs @@ -148,12 +148,25 @@ pub mod __Contract__value__spec { #[doc(hidden)] #[allow(non_snake_case)] #[allow(non_upper_case_globals)] - pub static __SPEC_XDR_FN_VALUE: [u8; 44usize] = super::Contract::spec_xdr_value(); + pub static __SPEC_XDR_FN_VALUE: [u8; super::Contract::__SPEC_XDR_VIEW_value.const_xdr_len()] = + super::Contract::spec_xdr_value(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_value: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"value")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Value"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_value() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x05Value\0\0\0" + pub const fn spec_xdr_value() -> [u8; Contract::__SPEC_XDR_VIEW_value.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_value.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_workspace_contract_wasm32v1-none.rs b/tests-expanded/test_workspace_contract_wasm32v1-none.rs index 5380b450d..62d1bbf28 100644 --- a/tests-expanded/test_workspace_contract_wasm32v1-none.rs +++ b/tests-expanded/test_workspace_contract_wasm32v1-none.rs @@ -37,12 +37,25 @@ pub mod __Contract__value__spec { #[allow(non_snake_case)] #[allow(non_upper_case_globals)] #[link_section = "contractspecv0"] - pub static __SPEC_XDR_FN_VALUE: [u8; 44usize] = super::Contract::spec_xdr_value(); + pub static __SPEC_XDR_FN_VALUE: [u8; super::Contract::__SPEC_XDR_VIEW_value.const_xdr_len()] = + super::Contract::spec_xdr_value(); } impl Contract { + #[allow(non_upper_case_globals)] + const __SPEC_XDR_VIEW_value: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::FunctionV0(soroban_sdk::xdr::ScSpecFunctionV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::ScSymbolView(soroban_sdk::xdr::StringMView::new(b"value")), + inputs: soroban_sdk::xdr::VecMView::new(&[]), + outputs: soroban_sdk::xdr::VecMView::new(&[soroban_sdk::xdr::ScSpecTypeDefView::Udt( + soroban_sdk::xdr::ScSpecTypeUdtView { + name: soroban_sdk::xdr::StringMView::new(b"Value"), + }, + )]), + }); #[allow(non_snake_case)] - pub const fn spec_xdr_value() -> [u8; 44usize] { - *b"\0\0\0\0\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\0\0\0\0\x01\0\0\x07\xd0\0\0\0\x05Value\0\0\0" + pub const fn spec_xdr_value() -> [u8; Contract::__SPEC_XDR_VIEW_value.const_xdr_len()] { + Contract::__SPEC_XDR_VIEW_value.const_to_xdr() } } impl<'a> ContractClient<'a> { diff --git a/tests-expanded/test_workspace_lib_tests.rs b/tests-expanded/test_workspace_lib_tests.rs index cb8fd3bae..1d8a878dd 100644 --- a/tests-expanded/test_workspace_lib_tests.rs +++ b/tests-expanded/test_workspace_lib_tests.rs @@ -33,10 +33,23 @@ impl ::core::cmp::PartialEq for Value { self.value == other.value } } -pub static __SPEC_XDR_TYPE_VALUE: [u8; 48usize] = Value::spec_xdr(); +pub static __SPEC_XDR_TYPE_VALUE: [u8; Value::__SPEC_XDR_VIEW.const_xdr_len()] = Value::spec_xdr(); impl Value { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x05Value\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x05" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Value"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; Value::__SPEC_XDR_VIEW.const_xdr_len()] { + Value::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Value { diff --git a/tests-expanded/test_workspace_lib_wasm32v1-none.rs b/tests-expanded/test_workspace_lib_wasm32v1-none.rs index 616d0ad54..e4336695b 100644 --- a/tests-expanded/test_workspace_lib_wasm32v1-none.rs +++ b/tests-expanded/test_workspace_lib_wasm32v1-none.rs @@ -34,10 +34,23 @@ impl ::core::cmp::PartialEq for Value { } } #[link_section = "contractspecv0"] -pub static __SPEC_XDR_TYPE_VALUE: [u8; 48usize] = Value::spec_xdr(); +pub static __SPEC_XDR_TYPE_VALUE: [u8; Value::__SPEC_XDR_VIEW.const_xdr_len()] = Value::spec_xdr(); impl Value { - pub const fn spec_xdr() -> [u8; 48usize] { - *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x05Value\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x05" + const __SPEC_XDR_VIEW: soroban_sdk::xdr::ScSpecEntryView<'static> = + soroban_sdk::xdr::ScSpecEntryView::UdtStructV0(soroban_sdk::xdr::ScSpecUdtStructV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + lib: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"Value"), + fields: soroban_sdk::xdr::VecMView::new(&[ + soroban_sdk::xdr::ScSpecUdtStructFieldV0View { + doc: soroban_sdk::xdr::StringMView::new(b""), + name: soroban_sdk::xdr::StringMView::new(b"value"), + type_: soroban_sdk::xdr::ScSpecTypeDefView::I32, + }, + ]), + }); + pub const fn spec_xdr() -> [u8; Value::__SPEC_XDR_VIEW.const_xdr_len()] { + Value::__SPEC_XDR_VIEW.const_to_xdr() } } impl soroban_sdk::SpecShakingMarker for Value { @@ -46,7 +59,7 @@ impl soroban_sdk::SpecShakingMarker for Value { fn spec_shaking_marker() { ::spec_shaking_marker(); { - static MARKER: [u8; 14usize] = *b"SpEcV1\x82\xf8t\xbe\t\x04b\\"; + static MARKER: [u8; 14] = soroban_sdk::spec_marker(&Value::spec_xdr()); let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; } }