From 015c0805e56b3ac882bb51e91ec7ecbb917f7d02 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Wed, 13 Sep 2023 11:42:01 -0700 Subject: [PATCH 1/3] Add "next" feature to crates using xdr directly or indirectly (#1060) --- soroban-bench-utils/Cargo.toml | 3 + soroban-env-common/Cargo.toml | 1 + soroban-env-common/src/convert.rs | 10 +- soroban-env-common/src/error.rs | 22 ++-- soroban-env-common/src/lib.rs | 7 +- soroban-env-common/src/meta.rs | 16 +++ soroban-env-common/src/num.rs | 2 +- soroban-env-common/src/object.rs | 2 +- soroban-env-common/src/symbol.rs | 4 +- soroban-env-common/src/val.rs | 8 +- soroban-env-common/src/vmcaller_env.rs | 2 +- soroban-env-guest/Cargo.toml | 1 + soroban-env-host/Cargo.toml | 1 + soroban-env-macros/Cargo.toml | 3 + soroban-env-macros/src/lib.rs | 10 +- soroban-synth-wasm/Cargo.toml | 3 + soroban-test-wasms/Cargo.toml | 3 + soroban-test-wasms/src/lib.rs | 109 +++++++++++++----- soroban-test-wasms/wasm-workspace/Cargo.lock | 51 +++++--- soroban-test-wasms/wasm-workspace/Cargo.toml | 4 +- soroban-test-wasms/wasm-workspace/Makefile | 15 ++- .../wasm-workspace/add_f32/Cargo.toml | 4 + .../wasm-workspace/add_i32/Cargo.toml | 4 + .../wasm-workspace/alloc/Cargo.toml | 4 + .../wasm-workspace/auth/Cargo.toml | 4 + .../wasm-workspace/complex/Cargo.toml | 4 + .../wasm-workspace/contract_data/Cargo.toml | 2 + .../wasm-workspace/create_contract/Cargo.toml | 4 + .../delegated_account/Cargo.toml | 4 + .../wasm-workspace/err/Cargo.toml | 6 +- .../wasm-workspace/fannkuch/Cargo.toml | 6 +- .../wasm-workspace/fib/Cargo.toml | 6 +- .../wasm-workspace/hostile/Cargo.toml | 5 +- .../wasm-workspace/invoke_contract/Cargo.toml | 4 + .../wasm-workspace/linear_memory/Cargo.toml | 6 +- .../opt/auth_test_contract.wasm | Bin 5708 -> 0 bytes .../wasm-workspace/opt/{ => curr}/alloc.wasm | Bin .../opt/curr/auth_test_contract.wasm | Bin 0 -> 5753 bytes .../opt/{ => curr}/example_add_f32.wasm | Bin 1062 -> 1066 bytes .../opt/{ => curr}/example_add_i32.wasm | Bin 1009 -> 1013 bytes .../opt/{ => curr}/example_alloc.wasm | Bin 2432 -> 2436 bytes .../opt/curr/example_complex.wasm | Bin 0 -> 1779 bytes .../opt/curr/example_contract_data.wasm | Bin 0 -> 4835 bytes .../{ => curr}/example_create_contract.wasm | Bin 708 -> 712 bytes .../opt/{ => curr}/example_err.wasm | Bin 1051 -> 1106 bytes .../opt/{ => curr}/example_fannkuch.wasm | Bin 1040 -> 1044 bytes .../opt/{ => curr}/example_fib.wasm | Bin 356 -> 360 bytes .../opt/{ => curr}/example_hostile.wasm | Bin 2115 -> 2119 bytes .../{ => curr}/example_invoke_contract.wasm | Bin 1952 -> 1961 bytes .../opt/{ => curr}/example_linear_memory.wasm | Bin 869 -> 873 bytes .../{ => curr}/example_simple_account.wasm | Bin 1986 -> 1994 bytes .../example_updateable_contract.wasm | Bin 597 -> 601 bytes .../opt/{ => curr}/example_vec.wasm | Bin 592 -> 596 bytes .../soroban_write_upgrade_bytes_contract.wasm | Bin 663 -> 667 bytes .../opt/curr/test_delegated_account.wasm | Bin 0 -> 1987 bytes .../wasm-workspace/opt/example_complex.wasm | Bin 1799 -> 0 bytes .../opt/example_contract_data.wasm | Bin 4047 -> 0 bytes .../opt/next/auth_test_contract.wasm | Bin 0 -> 5753 bytes .../opt/next/example_add_f32.wasm | Bin 0 -> 1066 bytes .../opt/next/example_add_i32.wasm | Bin 0 -> 1013 bytes .../opt/next/example_alloc.wasm | Bin 0 -> 2436 bytes .../opt/next/example_complex.wasm | Bin 0 -> 1779 bytes .../opt/next/example_contract_data.wasm | Bin 0 -> 4835 bytes .../opt/next/example_create_contract.wasm | Bin 0 -> 712 bytes .../wasm-workspace/opt/next/example_err.wasm | Bin 0 -> 1106 bytes .../opt/next/example_fannkuch.wasm | Bin 0 -> 1044 bytes .../wasm-workspace/opt/next/example_fib.wasm | Bin 0 -> 360 bytes .../opt/next/example_hostile.wasm | Bin 0 -> 2119 bytes .../opt/next/example_invoke_contract.wasm | Bin 0 -> 1961 bytes .../opt/next/example_linear_memory.wasm | Bin 0 -> 873 bytes .../opt/next/example_simple_account.wasm | Bin 0 -> 1994 bytes .../opt/next/example_updateable_contract.wasm | Bin 0 -> 601 bytes .../wasm-workspace/opt/next/example_vec.wasm | Bin 0 -> 596 bytes .../soroban_write_upgrade_bytes_contract.wasm | Bin 0 -> 667 bytes .../opt/next/test_delegated_account.wasm | Bin 0 -> 1987 bytes .../opt/test_delegated_account.wasm | Bin 1979 -> 0 bytes .../wasm-workspace/simple_account/Cargo.toml | 4 + .../wasm-workspace/update/Cargo.toml | 4 + .../wasm-workspace/vec/Cargo.toml | 6 +- .../write_upgrade_bytes/Cargo.toml | 6 +- 80 files changed, 275 insertions(+), 85 deletions(-) delete mode 100644 soroban-test-wasms/wasm-workspace/opt/auth_test_contract.wasm rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/alloc.wasm (100%) create mode 100644 soroban-test-wasms/wasm-workspace/opt/curr/auth_test_contract.wasm rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_add_f32.wasm (83%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_add_i32.wasm (82%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_alloc.wasm (93%) create mode 100644 soroban-test-wasms/wasm-workspace/opt/curr/example_complex.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/curr/example_contract_data.wasm rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_create_contract.wasm (75%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_err.wasm (62%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_fannkuch.wasm (87%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_fib.wasm (64%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_hostile.wasm (91%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_invoke_contract.wasm (77%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_linear_memory.wasm (84%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_simple_account.wasm (76%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_updateable_contract.wasm (73%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/example_vec.wasm (76%) rename soroban-test-wasms/wasm-workspace/opt/{ => curr}/soroban_write_upgrade_bytes_contract.wasm (81%) create mode 100644 soroban-test-wasms/wasm-workspace/opt/curr/test_delegated_account.wasm delete mode 100644 soroban-test-wasms/wasm-workspace/opt/example_complex.wasm delete mode 100644 soroban-test-wasms/wasm-workspace/opt/example_contract_data.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/auth_test_contract.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_add_f32.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_add_i32.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_alloc.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_complex.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_contract_data.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_create_contract.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_err.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_fannkuch.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_fib.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_hostile.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_invoke_contract.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_linear_memory.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_simple_account.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_updateable_contract.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/example_vec.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/soroban_write_upgrade_bytes_contract.wasm create mode 100644 soroban-test-wasms/wasm-workspace/opt/next/test_delegated_account.wasm delete mode 100644 soroban-test-wasms/wasm-workspace/opt/test_delegated_account.wasm diff --git a/soroban-bench-utils/Cargo.toml b/soroban-bench-utils/Cargo.toml index e374fad80..a8b41dad3 100644 --- a/soroban-bench-utils/Cargo.toml +++ b/soroban-bench-utils/Cargo.toml @@ -14,5 +14,8 @@ publish = false soroban-env-common = { workspace = true } tracking-allocator = "0.4.0" +[features] +next = ["soroban-env-common/next"] + [target.'cfg(target_os = "linux")'.dependencies] perf-event = "0.4.7" diff --git a/soroban-env-common/Cargo.toml b/soroban-env-common/Cargo.toml index 9574ac023..054652575 100644 --- a/soroban-env-common/Cargo.toml +++ b/soroban-env-common/Cargo.toml @@ -33,6 +33,7 @@ std = ["stellar-xdr/std", "stellar-xdr/base64"] serde = ["dep:serde", "stellar-xdr/serde"] wasmi = ["dep:wasmi"] testutils = ["dep:arbitrary", "stellar-xdr/arbitrary"] +next = ["stellar-xdr/next"] [package.metadata.docs.rs] all-features = true diff --git a/soroban-env-common/src/convert.rs b/soroban-env-common/src/convert.rs index 588b8a9dd..8dff97024 100644 --- a/soroban-env-common/src/convert.rs +++ b/soroban-env-common/src/convert.rs @@ -1,3 +1,4 @@ +use crate::xdr::int128_helpers; use crate::{ num::{i256_from_pieces, i256_into_pieces, u256_from_pieces, u256_into_pieces}, DurationSmall, DurationVal, Env, I128Small, I128Val, I256Small, I256Val, I64Small, @@ -5,17 +6,16 @@ use crate::{ I256, U256, }; use core::fmt::Debug; -use stellar_xdr::int128_helpers; +#[cfg(feature = "std")] +use crate::xdr::{ + Duration, Int128Parts, Int256Parts, ScVal, TimePoint, UInt128Parts, UInt256Parts, +}; #[cfg(feature = "std")] use crate::{ num, object::ScValObjRef, val::ValConvert, ConversionError, Error, Object, ScValObject, SymbolSmall, Tag, }; -#[cfg(feature = "std")] -use stellar_xdr::{ - Duration, Int128Parts, Int256Parts, ScVal, TimePoint, UInt128Parts, UInt256Parts, -}; /// General trait representing a the ability of some object to perform a /// (possibly unsuccessful) conversion between two other types. diff --git a/soroban-env-common/src/error.rs b/soroban-env-common/src/error.rs index 19b25bfc7..de709488e 100644 --- a/soroban-env-common/src/error.rs +++ b/soroban-env-common/src/error.rs @@ -1,3 +1,4 @@ +use crate::xdr::{ScError, ScErrorCode, ScErrorType, ScVal}; use crate::{ impl_wrapper_as_and_to_rawval, impl_wrapper_tag_based_constructors, impl_wrapper_tag_based_rawvalconvertible, impl_wrapper_wasmi_conversions, Compare, @@ -9,7 +10,6 @@ use core::{ fmt::Debug, hash::{Hash, Hasher}, }; -use stellar_xdr::{ScError, ScErrorCode, ScErrorType, ScVal}; /// Wrapper for a [Val] that is tagged with [Tag::Error], interpreting the /// [Val]'s body as a pair of a 28-bit status-type code and a 32-bit status @@ -95,7 +95,7 @@ impl<'a> From<&'a Error> for Error { } impl TryFrom for ScError { - type Error = stellar_xdr::Error; + type Error = crate::xdr::Error; fn try_from(er: Error) -> Result { let type_: ScErrorType = (er.as_val().get_minor() as i32).try_into()?; let u: u32 = er.as_val().get_major(); @@ -115,15 +115,15 @@ impl TryFrom for ScError { } impl TryFrom for ScVal { - type Error = stellar_xdr::Error; - fn try_from(st: Error) -> Result { + type Error = crate::xdr::Error; + fn try_from(st: Error) -> Result { Ok(ScVal::Error(<_ as TryInto>::try_into(st)?)) } } impl TryFrom<&Error> for ScVal { - type Error = stellar_xdr::Error; - fn try_from(value: &Error) -> Result { + type Error = crate::xdr::Error; + fn try_from(value: &Error) -> Result { (*value).try_into() } } @@ -152,10 +152,10 @@ impl From for Error { } } -impl From for Error { - fn from(e: stellar_xdr::Error) -> Self { +impl From for Error { + fn from(e: crate::xdr::Error) -> Self { match e { - stellar_xdr::Error::DepthLimitExceeded => { + crate::xdr::Error::DepthLimitExceeded => { Error::from_type_and_code(ScErrorType::Context, ScErrorCode::ExceededLimit) } _ => Error::from_type_and_code(ScErrorType::Value, ScErrorCode::InvalidInput), @@ -165,9 +165,9 @@ impl From for Error { // This never happens, but it's needed for some impls of TryFromVal downstream // in the SDK that use the xdr::Error type. -impl From for stellar_xdr::Error { +impl From for crate::xdr::Error { fn from(_value: Error) -> Self { - stellar_xdr::Error::Unsupported + crate::xdr::Error::Unsupported } } diff --git a/soroban-env-common/src/lib.rs b/soroban-env-common/src/lib.rs index 23a42e7f4..2e2d0c316 100644 --- a/soroban-env-common/src/lib.rs +++ b/soroban-env-common/src/lib.rs @@ -71,8 +71,11 @@ pub use num::{I256, U256}; pub use storage_type::StorageType; -// Re-export the XDR definitions -pub use stellar_xdr as xdr; +// Re-export the XDR definitions of a specific version -- curr or next -- of the xdr crate. +#[cfg(not(feature = "next"))] +pub use stellar_xdr::curr as xdr; +#[cfg(feature = "next")] +pub use stellar_xdr::next as xdr; // Val is the 64-bit transparent type. #[cfg(feature = "wasmi")] diff --git a/soroban-env-common/src/meta.rs b/soroban-env-common/src/meta.rs index f5add5769..cb78c3c8a 100644 --- a/soroban-env-common/src/meta.rs +++ b/soroban-env-common/src/meta.rs @@ -40,6 +40,22 @@ pub const ENV_META_V0_SECTION_NAME: &str = "contractenvmetav0"; +// If the "next" feature is enabled, we're building from the "next" xdr +// definitions branch and rust module, which contains experimental, unstable, +// in-development definitions we aren't even close to ready to release to the +// network. This is typically associated with a one-higher-than-released +// protocol number for testing purposes. +#[cfg(feature = "next")] +soroban_env_macros::generate_env_meta_consts!( + ledger_protocol_version: 21, + pre_release_version: 1, +); + +// If the "next" feature is _not_ enabled, it means we're building for a +// nearly-current release to the network and are using the "curr" xdr branch and +// module. This will therefore be associated with a current or nearly-current +// network protocol number. +#[cfg(not(feature = "next"))] soroban_env_macros::generate_env_meta_consts!( ledger_protocol_version: 20, pre_release_version: 57, diff --git a/soroban-env-common/src/num.rs b/soroban-env-common/src/num.rs index 230590efb..48e0307c8 100644 --- a/soroban-env-common/src/num.rs +++ b/soroban-env-common/src/num.rs @@ -1,5 +1,6 @@ use core::cmp::Ordering; +use crate::xdr::{Int256Parts, ScVal, UInt256Parts}; use crate::{ declare_tag_based_signed_small_and_object_wrappers, declare_tag_based_small_and_object_wrappers, @@ -7,7 +8,6 @@ use crate::{ Compare, ConversionError, Env, Tag, Val, }; pub use ethnum::{AsI256, AsU256, I256, U256}; -use stellar_xdr::{Int256Parts, ScVal, UInt256Parts}; declare_tag_based_wrapper!(U32Val); declare_tag_based_wrapper!(I32Val); diff --git a/soroban-env-common/src/object.rs b/soroban-env-common/src/object.rs index e3aea3d30..4a4af6eb3 100644 --- a/soroban-env-common/src/object.rs +++ b/soroban-env-common/src/object.rs @@ -1,9 +1,9 @@ +use crate::xdr::{Duration, ScVal, TimePoint}; use crate::{ impl_rawval_wrapper_base, num, val::ValConvert, Compare, ConversionError, Convert, Env, Tag, TryFromVal, Val, }; use core::{cmp::Ordering, fmt::Debug}; -use stellar_xdr::{Duration, ScVal, TimePoint}; /// Wrapper for a [Val] that is tagged with one of the object types, /// interpreting the [Val]'s body as containing a 32-bit object-code handle diff --git a/soroban-env-common/src/symbol.rs b/soroban-env-common/src/symbol.rs index 6102ce53c..07ab6d418 100644 --- a/soroban-env-common/src/symbol.rs +++ b/soroban-env-common/src/symbol.rs @@ -169,8 +169,8 @@ impl TryFrom<&[u8]> for SymbolSmall { } #[cfg(feature = "std")] -use stellar_xdr::StringM; -use stellar_xdr::SCSYMBOL_LIMIT; +use crate::xdr::StringM; +use crate::xdr::SCSYMBOL_LIMIT; #[cfg(feature = "std")] impl TryFrom> for SymbolSmall { type Error = SymbolError; diff --git a/soroban-env-common/src/val.rs b/soroban-env-common/src/val.rs index 5ed701c40..6c5f6e51c 100644 --- a/soroban-env-common/src/val.rs +++ b/soroban-env-common/src/val.rs @@ -1,12 +1,12 @@ // This permits globals prouced by derive(num_enum::TryFromPrimitive) below. #![cfg_attr(test, allow(non_upper_case_globals))] +use crate::xdr::{ScError, ScValType}; use crate::{ declare_tag_based_object_wrapper, declare_tag_based_wrapper, impl_rawval_wrapper_base, impl_tryfroms_and_tryfromvals_delegating_to_rawvalconvertible, Compare, I32Val, SymbolSmall, SymbolStr, U32Val, }; -use stellar_xdr::{ScError, ScValType}; use super::{Env, Error, TryFromVal}; use core::{cmp::Ordering, convert::Infallible, fmt::Debug}; @@ -97,7 +97,7 @@ pub enum Tag { SymbolSmall = 14, /// Tag for a [Val] that corresponds to - /// [stellar_xdr::ScVal::LedgerKeyContractInstance] + /// [crate::xdr::ScVal::LedgerKeyContractInstance] LedgerKeyContractInstance = 15, /// Code delimiting the upper boundary of "small" types. @@ -338,8 +338,8 @@ impl From for ConversionError { } } -impl From for ConversionError { - fn from(_: stellar_xdr::Error) -> Self { +impl From for ConversionError { + fn from(_: crate::xdr::Error) -> Self { ConversionError } } diff --git a/soroban-env-common/src/vmcaller_env.rs b/soroban-env-common/src/vmcaller_env.rs index 0c5e33098..dd4105aec 100644 --- a/soroban-env-common/src/vmcaller_env.rs +++ b/soroban-env-common/src/vmcaller_env.rs @@ -1,5 +1,5 @@ #[cfg(feature = "wasmi")] -use stellar_xdr::{ScErrorCode, ScErrorType}; +use crate::xdr::{ScErrorCode, ScErrorType}; use super::{ AddressObject, Bool, BytesObject, DurationObject, Error, I128Object, I256Object, I256Val, diff --git a/soroban-env-guest/Cargo.toml b/soroban-env-guest/Cargo.toml index 32aa10834..135296798 100644 --- a/soroban-env-guest/Cargo.toml +++ b/soroban-env-guest/Cargo.toml @@ -19,3 +19,4 @@ all-features = true [features] testutils = ["soroban-env-common/testutils"] +next = ["soroban-env-common/next"] diff --git a/soroban-env-host/Cargo.toml b/soroban-env-host/Cargo.toml index 72d6bafa2..aaeaae73c 100644 --- a/soroban-env-host/Cargo.toml +++ b/soroban-env-host/Cargo.toml @@ -53,6 +53,7 @@ linregress = "0.5.1" [features] testutils = ["soroban-env-common/testutils"] +next = ["soroban-env-common/next", "soroban-test-wasms/next"] tracy = ["dep:tracy-client"] [[bench]] diff --git a/soroban-env-macros/Cargo.toml b/soroban-env-macros/Cargo.toml index 76cc2d21c..ebc29c5d3 100644 --- a/soroban-env-macros/Cargo.toml +++ b/soroban-env-macros/Cargo.toml @@ -21,5 +21,8 @@ itertools = "0.10.3" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" +[features] +next = ["stellar-xdr/next"] + [package.metadata.docs.rs] all-features = true diff --git a/soroban-env-macros/src/lib.rs b/soroban-env-macros/src/lib.rs index 2b47d81e0..42d13bc47 100644 --- a/soroban-env-macros/src/lib.rs +++ b/soroban-env-macros/src/lib.rs @@ -7,7 +7,13 @@ use proc_macro::TokenStream; use quote::{quote, ToTokens}; use syn::{parse::Parse, parse_macro_input, Ident, LitInt, LitStr, Token}; -use stellar_xdr::{ScEnvMetaEntry, WriteXdr}; +// Import the XDR definitions of a specific version -- curr or next -- of the xdr crate. +#[cfg(not(feature = "next"))] +use stellar_xdr::curr as xdr; +#[cfg(feature = "next")] +use stellar_xdr::next as xdr; + +use crate::xdr::{ScEnvMetaEntry, WriteXdr}; struct MetaInput { pub interface_version: u64, @@ -55,7 +61,7 @@ impl ToTokens for MetaConstsOutput { .to_meta_entries() .into_iter() .map(|entry| entry.to_xdr()) - .collect::>, stellar_xdr::Error>>() + .collect::>, crate::xdr::Error>>() .unwrap() .concat(); let meta_xdr_len = meta_xdr.len(); diff --git a/soroban-synth-wasm/Cargo.toml b/soroban-synth-wasm/Cargo.toml index 411f61ed5..c025b2d01 100644 --- a/soroban-synth-wasm/Cargo.toml +++ b/soroban-synth-wasm/Cargo.toml @@ -15,6 +15,9 @@ wasm-encoder = "0.18.0" wasmparser = "0.106.0" soroban-env-common = { workspace = true } +[features] +next = ["soroban-env-common/next"] + [dev-dependencies] expect-test = "1.4.0" wasmprinter = "0.2.41" diff --git a/soroban-test-wasms/Cargo.toml b/soroban-test-wasms/Cargo.toml index 20a839a05..d581a24b3 100644 --- a/soroban-test-wasms/Cargo.toml +++ b/soroban-test-wasms/Cargo.toml @@ -5,3 +5,6 @@ description = "crate full of precompiled test WASM binaries for soroban -- for u edition = "2021" publish = false rust-version = "1.71" + +[features] +next = [] \ No newline at end of file diff --git a/soroban-test-wasms/src/lib.rs b/soroban-test-wasms/src/lib.rs index 5c2a5c3e7..56fb423e4 100644 --- a/soroban-test-wasms/src/lib.rs +++ b/soroban-test-wasms/src/lib.rs @@ -42,31 +42,84 @@ //! documentation purpopses without having to worry about breaking tests in //! the host here. -pub const ADD_I32: &[u8] = include_bytes!("../wasm-workspace/opt/example_add_i32.wasm").as_slice(); -pub const ADD_F32: &[u8] = include_bytes!("../wasm-workspace/opt/example_add_f32.wasm").as_slice(); -pub const ALLOC: &[u8] = include_bytes!("../wasm-workspace/opt/example_alloc.wasm").as_slice(); -pub const CREATE_CONTRACT: &[u8] = - include_bytes!("../wasm-workspace/opt/example_create_contract.wasm").as_slice(); -pub const CONTRACT_STORAGE: &[u8] = - include_bytes!("../wasm-workspace/opt/example_contract_data.wasm").as_slice(); -pub const LINEAR_MEMORY: &[u8] = - include_bytes!("../wasm-workspace/opt/example_linear_memory.wasm").as_slice(); -pub const VEC: &[u8] = include_bytes!("../wasm-workspace/opt/example_vec.wasm").as_slice(); -pub const INVOKE_CONTRACT: &[u8] = - include_bytes!("../wasm-workspace/opt/example_invoke_contract.wasm").as_slice(); -pub const HOSTILE: &[u8] = include_bytes!("../wasm-workspace/opt/example_hostile.wasm").as_slice(); -pub const FIB: &[u8] = include_bytes!("../wasm-workspace/opt/example_fib.wasm").as_slice(); -pub const FANNKUCH: &[u8] = - include_bytes!("../wasm-workspace/opt/example_fannkuch.wasm").as_slice(); -pub const COMPLEX: &[u8] = include_bytes!("../wasm-workspace/opt/example_complex.wasm").as_slice(); -pub const SIMPLE_ACCOUNT_CONTRACT: &[u8] = - include_bytes!("../wasm-workspace/opt/example_simple_account.wasm").as_slice(); -pub const AUTH_TEST_CONTRACT: &[u8] = - include_bytes!("../wasm-workspace/opt/auth_test_contract.wasm").as_slice(); -pub const UPDATEABLE_CONTRACT: &[u8] = - include_bytes!("../wasm-workspace/opt/example_updateable_contract.wasm").as_slice(); -pub const DELEGATED_ACCOUNT_TEST_CONTRACT: &[u8] = - include_bytes!("../wasm-workspace/opt/test_delegated_account.wasm").as_slice(); -pub const ERR: &[u8] = include_bytes!("../wasm-workspace/opt/example_err.wasm").as_slice(); -pub const WRITE_BYTES: &[u8] = - include_bytes!("../wasm-workspace/opt/soroban_write_upgrade_bytes_contract.wasm").as_slice(); +#[cfg(not(feature = "next"))] +pub use curr::*; + +#[cfg(not(feature = "next"))] +mod curr { + pub const ADD_I32: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_add_i32.wasm").as_slice(); + pub const ADD_F32: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_add_f32.wasm").as_slice(); + pub const ALLOC: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_alloc.wasm").as_slice(); + pub const CREATE_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_create_contract.wasm").as_slice(); + pub const CONTRACT_STORAGE: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_contract_data.wasm").as_slice(); + pub const LINEAR_MEMORY: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_linear_memory.wasm").as_slice(); + pub const VEC: &[u8] = include_bytes!("../wasm-workspace/opt/curr/example_vec.wasm").as_slice(); + pub const INVOKE_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_invoke_contract.wasm").as_slice(); + pub const HOSTILE: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_hostile.wasm").as_slice(); + pub const FIB: &[u8] = include_bytes!("../wasm-workspace/opt/curr/example_fib.wasm").as_slice(); + pub const FANNKUCH: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_fannkuch.wasm").as_slice(); + pub const COMPLEX: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_complex.wasm").as_slice(); + pub const SIMPLE_ACCOUNT_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_simple_account.wasm").as_slice(); + pub const AUTH_TEST_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/auth_test_contract.wasm").as_slice(); + pub const UPDATEABLE_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/example_updateable_contract.wasm").as_slice(); + pub const DELEGATED_ACCOUNT_TEST_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/test_delegated_account.wasm").as_slice(); + pub const ERR: &[u8] = include_bytes!("../wasm-workspace/opt/curr/example_err.wasm").as_slice(); + pub const WRITE_BYTES: &[u8] = + include_bytes!("../wasm-workspace/opt/curr/soroban_write_upgrade_bytes_contract.wasm") + .as_slice(); +} + +#[cfg(feature = "next")] +pub use next::*; + +#[cfg(feature = "next")] +mod next { + pub const ADD_I32: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_add_i32.wasm").as_slice(); + pub const ADD_F32: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_add_f32.wasm").as_slice(); + pub const ALLOC: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_alloc.wasm").as_slice(); + pub const CREATE_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_create_contract.wasm").as_slice(); + pub const CONTRACT_STORAGE: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_contract_data.wasm").as_slice(); + pub const LINEAR_MEMORY: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_linear_memory.wasm").as_slice(); + pub const VEC: &[u8] = include_bytes!("../wasm-workspace/opt/next/example_vec.wasm").as_slice(); + pub const INVOKE_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_invoke_contract.wasm").as_slice(); + pub const HOSTILE: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_hostile.wasm").as_slice(); + pub const FIB: &[u8] = include_bytes!("../wasm-workspace/opt/next/example_fib.wasm").as_slice(); + pub const FANNKUCH: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_fannkuch.wasm").as_slice(); + pub const COMPLEX: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_complex.wasm").as_slice(); + pub const SIMPLE_ACCOUNT_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_simple_account.wasm").as_slice(); + pub const AUTH_TEST_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/next/auth_test_contract.wasm").as_slice(); + pub const UPDATEABLE_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/next/example_updateable_contract.wasm").as_slice(); + pub const DELEGATED_ACCOUNT_TEST_CONTRACT: &[u8] = + include_bytes!("../wasm-workspace/opt/next/test_delegated_account.wasm").as_slice(); + pub const ERR: &[u8] = include_bytes!("../wasm-workspace/opt/next/example_err.wasm").as_slice(); + pub const WRITE_BYTES: &[u8] = + include_bytes!("../wasm-workspace/opt/next/soroban_write_upgrade_bytes_contract.wasm") + .as_slice(); +} diff --git a/soroban-test-wasms/wasm-workspace/Cargo.lock b/soroban-test-wasms/wasm-workspace/Cargo.lock index a17ac0964..bb92c50ab 100644 --- a/soroban-test-wasms/wasm-workspace/Cargo.lock +++ b/soroban-test-wasms/wasm-workspace/Cargo.lock @@ -45,6 +45,7 @@ dependencies = [ name = "auth_test_contract" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -408,6 +409,7 @@ checksum = "0198b9d0078e0f30dedc7acbb21c974e838fc8fae3ee170128658a98cb2c1c04" name = "example_add_f32" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -415,6 +417,7 @@ dependencies = [ name = "example_add_i32" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -422,6 +425,7 @@ dependencies = [ name = "example_alloc" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -429,6 +433,7 @@ dependencies = [ name = "example_complex" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -436,6 +441,7 @@ dependencies = [ name = "example_contract_data" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -443,6 +449,7 @@ dependencies = [ name = "example_create_contract" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -450,6 +457,7 @@ dependencies = [ name = "example_err" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -457,6 +465,7 @@ dependencies = [ name = "example_fannkuch" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -464,6 +473,7 @@ dependencies = [ name = "example_fib" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -479,6 +489,7 @@ dependencies = [ name = "example_invoke_contract" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -486,6 +497,7 @@ dependencies = [ name = "example_linear_memory" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -493,6 +505,7 @@ dependencies = [ name = "example_simple_account" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -500,6 +513,7 @@ dependencies = [ name = "example_updateable_contract" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -507,6 +521,7 @@ dependencies = [ name = "example_vec" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -1032,7 +1047,7 @@ checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" [[package]] name = "soroban-env-common" -version = "0.0.17" +version = "20.0.0-rc1" dependencies = [ "arbitrary", "crate-git-revision", @@ -1048,7 +1063,7 @@ dependencies = [ [[package]] name = "soroban-env-guest" -version = "0.0.17" +version = "20.0.0-rc1" dependencies = [ "soroban-env-common", "static_assertions", @@ -1056,7 +1071,7 @@ dependencies = [ [[package]] name = "soroban-env-host" -version = "0.0.17" +version = "20.0.0-rc1" dependencies = [ "backtrace", "ed25519-dalek", @@ -1078,7 +1093,7 @@ dependencies = [ [[package]] name = "soroban-env-macros" -version = "0.0.17" +version = "20.0.0-rc1" dependencies = [ "itertools", "proc-macro2", @@ -1091,7 +1106,7 @@ dependencies = [ [[package]] name = "soroban-ledger-snapshot" -version = "0.9.2" +version = "20.0.0-rc1" dependencies = [ "serde", "serde_json", @@ -1102,7 +1117,7 @@ dependencies = [ [[package]] name = "soroban-native-sdk-macros" -version = "0.0.17" +version = "20.0.0-rc1" dependencies = [ "itertools", "proc-macro2", @@ -1112,7 +1127,7 @@ dependencies = [ [[package]] name = "soroban-sdk" -version = "0.9.2" +version = "20.0.0-rc1" dependencies = [ "arbitrary", "bytes-lit", @@ -1128,7 +1143,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" -version = "0.9.2" +version = "20.0.0-rc1" dependencies = [ "crate-git-revision", "darling", @@ -1146,7 +1161,7 @@ dependencies = [ [[package]] name = "soroban-spec" -version = "0.9.2" +version = "20.0.0-rc1" dependencies = [ "base64 0.13.1", "stellar-xdr", @@ -1156,7 +1171,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" -version = "0.9.2" +version = "20.0.0-rc1" dependencies = [ "prettyplease", "proc-macro2", @@ -1170,8 +1185,8 @@ dependencies = [ [[package]] name = "soroban-wasmi" -version = "0.30.0-soroban" -source = "git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4" +version = "0.31.0-soroban1" +source = "git+https://github.com/stellar/wasmi?rev=7e63b4c9e08c4163f417d118d81f7ea34789d0be#7e63b4c9e08c4163f417d118d81f7ea34789d0be" dependencies = [ "smallvec", "spin", @@ -1184,6 +1199,7 @@ dependencies = [ name = "soroban-write-upgrade-bytes-contract" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -1220,8 +1236,8 @@ dependencies = [ [[package]] name = "stellar-xdr" -version = "0.0.17" -source = "git+https://github.com/stellar/rs-stellar-xdr?rev=39904e09941046dab61e6e35fc89e31bf2dea1cd#39904e09941046dab61e6e35fc89e31bf2dea1cd" +version = "20.0.0-rc1" +source = "git+https://github.com/stellar/rs-stellar-xdr?rev=d5ce0c9e7aa83461773a6e81662067f35d39e4c1#d5ce0c9e7aa83461773a6e81662067f35d39e4c1" dependencies = [ "arbitrary", "base64 0.13.1", @@ -1258,6 +1274,7 @@ dependencies = [ name = "test_delegated_account" version = "0.0.0" dependencies = [ + "soroban-env-common", "soroban-sdk", ] @@ -1390,12 +1407,12 @@ checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasmi_arena" version = "0.4.0" -source = "git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4" +source = "git+https://github.com/stellar/wasmi?rev=7e63b4c9e08c4163f417d118d81f7ea34789d0be#7e63b4c9e08c4163f417d118d81f7ea34789d0be" [[package]] name = "wasmi_core" -version = "0.12.0" -source = "git+https://github.com/stellar/wasmi?rev=284c963ba080703061797e2a3cba0853edee0dd4#284c963ba080703061797e2a3cba0853edee0dd4" +version = "0.13.0" +source = "git+https://github.com/stellar/wasmi?rev=7e63b4c9e08c4163f417d118d81f7ea34789d0be#7e63b4c9e08c4163f417d118d81f7ea34789d0be" dependencies = [ "downcast-rs", "libm", diff --git a/soroban-test-wasms/wasm-workspace/Cargo.toml b/soroban-test-wasms/wasm-workspace/Cargo.toml index f6c8b7e42..af3559a49 100644 --- a/soroban-test-wasms/wasm-workspace/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/Cargo.toml @@ -47,11 +47,11 @@ codegen-units = 1 lto = true [workspace.dependencies.soroban-sdk] -version = "0.9.2" +version = "20.0.0-rc1" git = "https://github.com/stellar/rs-soroban-sdk" [workspace.dependencies.soroban-env-common] -version = "0.0.17" +version = "20.0.0-rc1" git = "https://github.com/stellar/rs-soroban-env" # Always build from the local instance of env as we need to rebuild test WASMs diff --git a/soroban-test-wasms/wasm-workspace/Makefile b/soroban-test-wasms/wasm-workspace/Makefile index 0c7ed461f..9a0a62781 100644 --- a/soroban-test-wasms/wasm-workspace/Makefile +++ b/soroban-test-wasms/wasm-workspace/Makefile @@ -9,6 +9,17 @@ regenerate-test-wasms: -Z build-std=std,panic_abort \ -Z build-std-features=panic_immediate_abort for i in target/wasm32-unknown-unknown/release/*.wasm ; do \ - wasm-opt -Oz "$$i" -o "opt/$$(basename $$i)"; \ - ls -l "opt/$$(basename $$i)"; \ + wasm-opt -Oz "$$i" -o "opt/curr/$$(basename $$i)"; \ + ls -l "opt/curr/$$(basename $$i)"; \ + done + cargo clean + cargo +nightly build \ + --target wasm32-unknown-unknown \ + --release \ + --features next \ + -Z build-std=std,panic_abort \ + -Z build-std-features=panic_immediate_abort + for i in target/wasm32-unknown-unknown/release/*.wasm ; do \ + wasm-opt -Oz "$$i" -o "opt/next/$$(basename $$i)"; \ + ls -l "opt/next/$$(basename $$i)"; \ done diff --git a/soroban-test-wasms/wasm-workspace/add_f32/Cargo.toml b/soroban-test-wasms/wasm-workspace/add_f32/Cargo.toml index d81f20c8e..fa036f4a8 100644 --- a/soroban-test-wasms/wasm-workspace/add_f32/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/add_f32/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/add_i32/Cargo.toml b/soroban-test-wasms/wasm-workspace/add_i32/Cargo.toml index 2e9637079..7693180a1 100644 --- a/soroban-test-wasms/wasm-workspace/add_i32/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/add_i32/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/alloc/Cargo.toml b/soroban-test-wasms/wasm-workspace/alloc/Cargo.toml index 1b50386fe..937ae290b 100644 --- a/soroban-test-wasms/wasm-workspace/alloc/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/alloc/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true, features = ["alloc"] } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/auth/Cargo.toml b/soroban-test-wasms/wasm-workspace/auth/Cargo.toml index cd24e3b42..196fc529b 100644 --- a/soroban-test-wasms/wasm-workspace/auth/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/auth/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/complex/Cargo.toml b/soroban-test-wasms/wasm-workspace/complex/Cargo.toml index 9d16774c7..e6a33907d 100644 --- a/soroban-test-wasms/wasm-workspace/complex/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/complex/Cargo.toml @@ -12,3 +12,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/contract_data/Cargo.toml b/soroban-test-wasms/wasm-workspace/contract_data/Cargo.toml index 48eb045b2..06f5bc65e 100644 --- a/soroban-test-wasms/wasm-workspace/contract_data/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/contract_data/Cargo.toml @@ -12,6 +12,8 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } [features] +next = ["soroban-env-common/next"] testutils = ["soroban-sdk/testutils"] diff --git a/soroban-test-wasms/wasm-workspace/create_contract/Cargo.toml b/soroban-test-wasms/wasm-workspace/create_contract/Cargo.toml index 1766eec1b..b1d2182c7 100644 --- a/soroban-test-wasms/wasm-workspace/create_contract/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/create_contract/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/delegated_account/Cargo.toml b/soroban-test-wasms/wasm-workspace/delegated_account/Cargo.toml index befef45ae..bb0288ab9 100644 --- a/soroban-test-wasms/wasm-workspace/delegated_account/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/delegated_account/Cargo.toml @@ -12,3 +12,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/err/Cargo.toml b/soroban-test-wasms/wasm-workspace/err/Cargo.toml index 4a0f7d972..46f88089e 100644 --- a/soroban-test-wasms/wasm-workspace/err/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/err/Cargo.toml @@ -12,4 +12,8 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = { workspace = true } \ No newline at end of file +soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/fannkuch/Cargo.toml b/soroban-test-wasms/wasm-workspace/fannkuch/Cargo.toml index e21acfed6..798c5d9dc 100644 --- a/soroban-test-wasms/wasm-workspace/fannkuch/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/fannkuch/Cargo.toml @@ -12,4 +12,8 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = { workspace = true } \ No newline at end of file +soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/fib/Cargo.toml b/soroban-test-wasms/wasm-workspace/fib/Cargo.toml index 4bb349e1a..0a5984804 100644 --- a/soroban-test-wasms/wasm-workspace/fib/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/fib/Cargo.toml @@ -12,4 +12,8 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = { workspace = true } \ No newline at end of file +soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/hostile/Cargo.toml b/soroban-test-wasms/wasm-workspace/hostile/Cargo.toml index 412f25a38..e9fd77375 100644 --- a/soroban-test-wasms/wasm-workspace/hostile/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/hostile/Cargo.toml @@ -13,4 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } -soroban-env-common = { workspace = true } \ No newline at end of file +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] diff --git a/soroban-test-wasms/wasm-workspace/invoke_contract/Cargo.toml b/soroban-test-wasms/wasm-workspace/invoke_contract/Cargo.toml index 4e39942b0..d52ee2120 100644 --- a/soroban-test-wasms/wasm-workspace/invoke_contract/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/invoke_contract/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/linear_memory/Cargo.toml b/soroban-test-wasms/wasm-workspace/linear_memory/Cargo.toml index 6aaf08c7f..0bedabadd 100644 --- a/soroban-test-wasms/wasm-workspace/linear_memory/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/linear_memory/Cargo.toml @@ -11,4 +11,8 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = { workspace = true } \ No newline at end of file +soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/opt/auth_test_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/auth_test_contract.wasm deleted file mode 100644 index fa084050b239f0b25f850807643a71b824c21c31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5708 zcma)AU2Ggz6}~?+vty6#Oq$ZVc4=oP2G$adwyopc2p&9Jng%MhA*xE>)@$#i&e&cD z@7A~ywGBj7g%DKm2o-&(5)b3Hd_D-t zj(%7fd@f?#h1}{6J{3OekazT1W$eAPp&w}N<1ohPF|Eg=2|YQbPQ)jJJAA9v$>1Kl zud{=Lw^X#RvX8#!o(JE@voaV9HuKG`?dOfE47T&UeYvMjgl%!qRk++4yv|(oz#TYUv2ee5&vv&f2UFXA>W04!tE6aTLM{ zUk;IYPT5Pw;6tXWMxrBr+9jU!G5F&_H!%fO-C?Q*yG4-C6*8F`JQ9o(6W^1m#H*Pm zWi_*q+V#{2s{Yq!s|F6+0ls2luBci*znu6*)#qM3xcKRI(d(igQqKosRbTc*U}Ve8 z#P>;{1U-nB))A9m_=t(em>lT!RL?211Yi};a}nlsRx7fX0bM+s=y_W^oJ6!asyFN| zWx0u{SJg+TB}V7Y`Ulu*%U<9xP& z3?A+Y6D06tSe0lgI8fRHbPXG4H)zH%A_b0qy6TT2UIFY-30*81Ae!Z|rsaV1Hi1o@ z1P!}}2UM@(fMJ1;8>)zBsL5UNhygLg@2MjD^$4bC4krN;r1d85MEpM$OYbN)C6>RrEtUZ(NVAsKk7Id3P?)zD1xsYYF)W+6VA*t7E+N$pClLow z5%D+?spvJWElUl`0!obmA!{Z~Egut4f}g5ouqk5zUXp1ZQCEqLzZh4E2@456fXPW& zo9QCeOwdFx8lXBVQRE{Og{M3RDU0tVsrY@G-xEhNZi&iZq*O#dGsf&2=8*GqR1rL6 zDJl*t0!<|r2~Xp!XH^Ru5wZ>c#Oc&)-PAv5{ZW0B{M}*03;6jToR;?fZ{hx3B>bL)(hb|$God$)LR|Tgm z+!1nNRCl#lvWPP^elN=szL)uxV5V8125StGBEADNw3hhsi8uvn6AE7a!RmlaeHB%7 zbSowZt&$KhNK6hCOoxL$zfCVS~f#03X99!Q;_Zjw?g zCVrxL?*b4wrK-G=ENPbn=Y@9A;mRh^HY{Jb9K@`^K6D65aV#FCNU5hMt*}x#*nLf^ zbMq=uLY{mIN;n+7TE+vaOAY&s6YNru{ZjMTsFLv%o&X`caqt$F0LJ+9%mYYYWzx6I z3CW2JcUFSkn8%0NP5te(lBvfsJxD5COmd?d5bOL`#BY}qKi+{ zsKv2gWsYE$RYJ$(GZ9XtnT!mgivD7Cg<<M`3Kj0M1s&N-&ABiSIYSA0?Uf3eOsl zDR*ujZ44PFvGE0G0c*1HMMG!|n4eY_%~Ke?kEn#$)OAG|ptIuL$w>WKfqFHALJkj5 zWy^~YUtM!TCgMy?9ciFOOa06%&Kl(k$E{04i6a*fWX_=+A~{BNO99c~SSJ${R6`!J zZUqvrqfQ3R31PvNdeq4TY*fll#!rIBXGzc7cQOH(deq4TNOsZxcqfCK3wz0RE}e{V zV7N{OSb@dahey0hDscj-2>!!v;^axc5?2}J@(#kh>HEk04uPJ$|I1tizmP^G-990dugCVD#iP&g?9 zs;{v#(yVWFOrkh~NGesxVrfFE1|b@50?J`WY>`%&yt=HQ6_>uAVvB;7E&c)wqN+Es zkZ%-1sSA#7CD*g-s$d6C4}m7Tc-cg15wF*p@fcdQp4pw$TQun2*zBWw%O-dVklN?P ziYuB$GoS^~c;18!k%A>jAd68%6YufaMRO+*B^NV5Q8NRgQ!`iD1*0Y=-cc6}lGe;J z3mBejiHC+0Aecvy;KN$2VC#4r%tBT5B)8$vdk6{ll7ka?oECyn#Ybsym|zOwW1o@z z1eHs$K;72@BWjJ*{kr6VXh=lKJ{{kOHwB5V%NU6(mnAN;XoHrW9aIH2L_`{Up)Rt8 zc4ZOjD2ou_LKrgb{jwAK5QRx2akWcaA`ZoHM6;!mW;iR(QiUQpL_(tfaP)zrC4FQq zh%f9}NH=-CTNnkjuinXwa_zKFxurfYHOJ%=&(r@P!T4?QTUKp#@LZL`j;722CQ=L zw&ik=m+!QAc-6pV9|Fpp1)II$wGH>_UDyg=Y)xHbmw~p+%f`<0)xzxK|6YsUR*DCd zN-ge?^OI@@X;@#+#@QO%?03l088`gfaHun!6p6%|2WV8L+1S}PT3>l#0^J-2XJ0^w zI5_h{gl#hw(Gxn&YUuH@#Cn_=z6CE{tMdJV7qOlQ zpKl$dL83?HO4;HjK{<#Ow?_vnH;+RV81rSEa^>Xir985zakB^+Vj^_GTlJU}adXMT zD|{3(v>*mR&g)zs#j zKi97q)!BZwKU{yg*Y0&TbF~Xy54zti*IvW3g75imzWUstv$B!*I~xO~UW0rb@;6KU zZ{c^k--?{qdW&xjrW z`^0a6m>gpJS$x0kFNUAV&V46`A;^0>oB5z4v88`x?m6|HQQ&Wx^tbyvInlx2)PrXl z3uo#N^sYR+HrROH3Go?j_xs&-r*@`(=G>WwPUrc;LcZ`&edXLrr<<=lxVYL`X*TM4 W_o1^Z`Q?YtHCF3qo0k_Cl=?q3Nr$Nb diff --git a/soroban-test-wasms/wasm-workspace/opt/alloc.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/alloc.wasm similarity index 100% rename from soroban-test-wasms/wasm-workspace/opt/alloc.wasm rename to soroban-test-wasms/wasm-workspace/opt/curr/alloc.wasm diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/auth_test_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/auth_test_contract.wasm new file mode 100644 index 0000000000000000000000000000000000000000..35caa20b53f10c11dd99136d7cb15da0978b6eab GIT binary patch literal 5753 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 literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/example_add_f32.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_add_f32.wasm similarity index 83% rename from soroban-test-wasms/wasm-workspace/opt/example_add_f32.wasm rename to soroban-test-wasms/wasm-workspace/opt/curr/example_add_f32.wasm index 4dd82484f5f43cd0b737d351f0d064e00695ad8d..c4bb4abd78764aea62d336415a5af3741c59c58c 100644 GIT binary patch delta 67 zcmZ3+v5I5EI%dY|$?KWjOpT2U^ng&eDA`as&D_K|#VpM-)x#Ei97E3{uR~3@ywV06bCZV=wU!O2)YnUmAaP|rZmQqM>^HPyr<)x^jk$ucQ1B{j*=EIBdB!rUM=#mF=% SHO<)4JlVk1BF)T%fdK##3J`h# diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_complex.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_complex.wasm new file mode 100644 index 0000000000000000000000000000000000000000..a404bd5968baab8b03a7acc8cf45f9349c4a2514 GIT binary patch literal 1779 zcmZWpJ8v6D5T4yV9*;a(UO5UN$w9DpCSa|W$5E7V~-FfWHH#0|_@jwufsFe;# zOb_IA3M!bWsg)ftdpBeCY(@t}Y%r7G-WP|WMh@r>2{8~YQsP1!Lw+u{E!{!n=VI5= zJxiOQr=m>~Gy=VVOrUkxKZC49m$k|*6v!=l1tn<3T~{*^&*#_V&nUirpBJ|Z?jRkU zjb2ES$7iJB{Gi-!_d1hKJ013v@Z0T^v~%7*?2J<-%m0)LbtzEGBZ_rD6csYU(59k> z@{CBpaDn5Mvrj%txQ%sIA^+!+^kxqG%|$o<5>PB|BS^{KPZ!dl|J4!nexgm1`LdoXK% zP1eDteq-+G^1?cK`O|zp7dQz&C>xdgDpTh2kS6M}wcS>!1FqBFO9O-|MjEFs4Opq6 zG#FlAGcx({_g{ZOlxnVMg2}jzvayz zm%uV!%1ka9$Ebd+EF>Et0BTwWhHd_p@L3*@i0)viPa=m ztY!hwsmhOx$ZX*Xh2veD9vQ`jvOR_jx6E$JCL9*1S{$`jT#(E=fYQ1D78U>m6d6H8 zh47b!(%FFcr@h-q2%{n6Di8u_`N}|eOAGiA4B1N_?ZN^$W#5rgi6O4a=pL%wR8558 z$ukAOs#jQJa!nNz%BvB$`KqW2 ze;g!X7XpIEi&N4ipPh<%^^VOB`DUV2gJ+(CVPU?qu+J~&T=Rba{a##?mN#39UKI&v$eguQ){-OMzFVDE%h= literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_contract_data.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_contract_data.wasm new file mode 100644 index 0000000000000000000000000000000000000000..9337f3fdc4d4a2af35dea9992021ec86d04aa271 GIT binary patch literal 4835 zcmd5=Pj4Gl5PyHx&L(TSue205h4if(AVIWp(hw&-Wfzr-143{pM|Tr%8{3JKthXr< zD2~*ss>CJY%7t4_{Q{hN=E6tlfe%uC^LD*<3~5!h0UYW5otZap=C|`^!h-H5XN>Wi zg*$wo@81#o)XII+S?J7SugC829ySO-;v{lB@&Y5=Jv^7v}@Fk2_`2x$MU1CgLp0cdmm_1I4iLBw$n#eg^@LW!Ert%kM zk9!9P&zRF=$NRD0#QFSYxVaVW30B&^AJ@0TsN3wuVJBv1OO0@2c;TJWde9wSI9IwC z9%DIwX7&E&_Atr2MUonao7-Da5bd!GMG`ugzgHxggL%0~A_wz}B_naLFj*jh%}zHC zI%^@jR3LfT^!);f%cdU`NLn_XDjH$g{PLwJ+};S*!uo?|yk1}3i^Fa`=rrm?#x$H! znW)zrK^)Y>PD661USAJ`?fPoa4W*cPeqrioE(E-Ng?YMN5z`C<)vm~Crlsbyl2t6< ze(dKT)ufFT%YTvn*zKn^$+Yn7R)vdwEkS#9(^{c{UEq$k6nBV;`-}*sr&@49#;0ve0CEfAO==GZ^`k3j_u7CTyAMKZEUZ3k?~Ou29ad03#+!Wmix>>#xCjVug&3 ztEeI{&(*XAPy_H>eMoRktyw1f6U2{zLG;Rn!*f1!Tq|*-jm}B{PkQ1@0G!}3^Km3Y z+ql!XgOjVO&=;=a=^8 zBC(eJkQ`A=1{uYEbB2o#kf%nR;e0QnWG?a7_WxVBnuUala7 z=f8w7%VRef0=maru7zjD@od+kZBKt~(OZ`H4s1Q%u8ey>?tmoW{0h%jUQa9vhJ6xP zV0fT%dIEgqomfvqE)98{$kgLF`c((3ahE~5QTouN%PvjZ3^GE^tQodn3j~1H5_;1?zcwPJYSUz3|53qNVeUDel|4ct>+vDZ*$vne$ z9jUpEKl=DN4ZOazrpM|1?_ks}rOy4$db_!?mHZ#T=-H=zdwNct?FY25v%49_K^D`_ zuFqGm;qPj+Hh1N2 rZQ*)j@$PcCu)G!o)urY6h3j)m%hlRiqx#v>(&}QhQM)_0RAYYu&zT*r literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/example_create_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_create_contract.wasm similarity index 75% rename from soroban-test-wasms/wasm-workspace/opt/example_create_contract.wasm rename to soroban-test-wasms/wasm-workspace/opt/curr/example_create_contract.wasm index 4af2b4c32f6b30dfbbe73b9f28e308a96e3c7c84..6d99c36315e41a548bb17afca742df7d3c864b0f 100644 GIT binary patch delta 67 zcmX@YdV+O>4-;ecWM3vXQ)43oJs{LAN;XtZGdD3#F-x;dHL*-iOf;~tG%_(Zw6HWV VPfjr~wXjGsGe|K{Gqf;g004Ba5s?4@ delta 63 zcmX@XdW3a@4-;egWM3vXLp=jMOFbjy)Kn9bR1+hEB+I14l++|cv*g4i3v+|i6eH85 S)HGvD^JD{4i!?J61_l5|&k zAjP1-pvf$u$O57Smb273HBV@0Xkb)iabje3V&GO}RbWtH0jXwCUVVUc8JkYb)@XkpF(06XC*{Qv*} delta 134 zcmcb_F`Hw;JjN9h=ig_Wz{td0&p5e-(UMVM@;*i}9R(&wjx0@P26JW(1qLS|#h}2T z!NkDJsKB7f%)#o^+|bZ4p`C|Yfx%H=voX_RM#l2V*O}c6^$heZ^^BBLQ%y`#O^ghZ lERzybQj-kLk`t3G%nedgj7*bK(~K?6lMPHQ(#%X47yzc)Aj|*& diff --git a/soroban-test-wasms/wasm-workspace/opt/example_fannkuch.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_fannkuch.wasm similarity index 87% rename from soroban-test-wasms/wasm-workspace/opt/example_fannkuch.wasm rename to soroban-test-wasms/wasm-workspace/opt/curr/example_fannkuch.wasm index e0486487be5459d8af9b337d00cf6a0ebed93a60..9d4a2181206d2dda3f2092fac5247934d3f3ae2e 100644 GIT binary patch delta 67 zcmbQhF@!khsByf+f% delta 61 zcmaFC^n_``8^-d9Z`};_4D>AZjFeMTO-xcvj0}=2lM+)>lMKz06O$~=4N_B#Op{X6 Qj4jQR4NNW4%uE;<0Er6{v;Y7A diff --git a/soroban-test-wasms/wasm-workspace/opt/example_hostile.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_hostile.wasm similarity index 91% rename from soroban-test-wasms/wasm-workspace/opt/example_hostile.wasm rename to soroban-test-wasms/wasm-workspace/opt/curr/example_hostile.wasm index 277e05af8e1140048fe6aae458e83665d297b3ea..a05462bafaddfaef84c7425df91ff678b89e406b 100644 GIT binary patch delta 67 zcmX>sa9m)+X?Diy$!FNzOpT2U^ng&eDA`as&D_K|#VpM-)xua9Ci&X?Di)$!FNz4D}53EcJ|(Q&UY$Qca8uk}Q)FQ&N)*&5{$7EX)m3Q;bZL SQqznr&65pGEz-;}o+r%TyD~F;6qJFlPV&;~5~h delta 138 zcmX@be~5p=6PCA}9P2i|*v~k5C6k$@BBv7r4k=vnF+DW|5In53E*86;UI kC8ne%8JZ<0CRvypq^1~|CZ(nsTbd^um|CQnnJ_Q_0At@Cng9R* diff --git a/soroban-test-wasms/wasm-workspace/opt/example_updateable_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_updateable_contract.wasm similarity index 73% rename from soroban-test-wasms/wasm-workspace/opt/example_updateable_contract.wasm rename to soroban-test-wasms/wasm-workspace/opt/curr/example_updateable_contract.wasm index 1c1fb9fabe4832ead64898b6715eb91f779aa8eb..6591320e7a62821fe79911b00337bed500bb22e2 100644 GIT binary patch delta 67 zcmcc0a+77lT}H<0$@duDOpT2U^ng&eDA`as&D_K|#VpM-)xa)o8X4MxW5$u}9@OpT2U^ng&eDA`as&D_K|#VpM-)xNE@h(wK}4eJ z@5sqSOm@`7E`nv^i+1F6N;_gICh`Mc?1~)fN8%pt_eGlo?sY4#$3IgzCG)&of8^Ew$ny?*2ZzH)lAQg){+NPFyWQFAb^7h>;dqbc z05?D1Zg;bB*6t0uN`&q9UN3vl-pximCFftvdp|icn99jjGWC8UssthGC+seYO|C)z88h}gY$Qz}5Lr2s$z02uKh6^E{cl`Sn+RCLOy zg2knVs=)iWUGW)<*_vyW47)FglSoAR zpLmkKplzpxYy=mqUtQ_Qt z&!eVHCD(&fkZ^w31{f!h}Li9g=W0$U6oF&~G93Aw=na!Im7IAIScju(Mb?6R9N0vJ%U07dh zY^>E+2mAN-#`i5hY)`>(H0t&Xwd>dFYxu7YJL^~PHa4zzH}7usHnuuhR&Q=y+qk~o W+^RP^-TIAYb9b}eZQNaNHt2uI4LMK% literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/example_complex.wasm b/soroban-test-wasms/wasm-workspace/opt/example_complex.wasm deleted file mode 100644 index 7f2042d5beae979e328063eefcb176901437887c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1799 zcmY*aJ8v6D5T4yVl1H9ouN(!C&SWTvNbHo4Nz9Jr zYz8WrsF{^LFncy<^?XjpL~JmZKin5xu|po{9tklNhor=%IDz~^>{_~q$S=gcr3aR_ zK+i;*BxnqJ37J3}uzvIV2reP)AximnfYNSyOX~4=&rNQ93VPyKt zpTGZxU^S;`fytzmM~s@j*HkfH|DxPsCzC(!#G}FTkQw}vm>W+$LvK>^D)p`+KfPMu z@igjR%2JE4Y@`ktpwmQzLLC_aKx|nTToxkzOS!(USF8=X5Q9(vrGT|f^@K~@Rx$kV z%0I>+;z48wfdFqgfP;o_7V2WSC|S=Vkx)Zwz84J%h}_(OjAvy(kGzHimdQ$PoMe>o z28p_iV1%*rt08+J`0bmA4Y{6R2sK%Y5UwVxks3rC&indd=oyu$sZ*@yp<;tijL2={ z9vWBnMslqlH_G<7SU6?&zHP$G5><<-)`}aFZUShX=Wk&FKtPcZMAH!du~2$j5dXGk zTPcNQ{21pNPy%pR6|YJV-qI361VqV_uXJGvo?9O|leoM!8Ly(_ZPh{;!YwleK&#hS zW1OZI;#R{yEV>oJF1kz#l`7c#c1;zUPIp7(^xPjY1K2Zy@-* zFcn=6*s0_YPOThbyo6l+N{-Aj6ir>H;CDf>G zPn_GG`*0<8{T2-QzXAi`K!gK5v7=dBEf|xd!H4s@AuU7ywt%wRTwY)V1Cl_VC+Kl1 zkH1ZjptW74q*r--3jvc<2Ai-q;y{wyGVX&c3V|XK_|T^2^>q+@Dey5{;IsOGSjPpncY#WIs;NhS_B{o}8VJe9}~b$pdf&{xP@*z6oBU$M<^Yqv^QQn@%pW-ev4! zS;`;fyXVuj_lDW%a+pm!x3=prI;7{ff&Ql~j3=nWg}Jv=Z|>LQ&qik_r_*OIZ)5x8 z$)rDUX7#v!Sl@k=W&8Wt{%+ho>~{KDcc;+c?Pv!{E9&0c)adfLF>(|=q< BChq_M diff --git a/soroban-test-wasms/wasm-workspace/opt/example_contract_data.wasm b/soroban-test-wasms/wasm-workspace/opt/example_contract_data.wasm deleted file mode 100644 index b8fca7887ca20fdc629bb811a11e0fa4f8c59aad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4047 zcmcgv&2Jk;6rYb>XPvd3EiI6y5N4fF5?UfRq;b+yc2QgPfDjzu=&qA(6MrSKw+WGu z9f_){#HDvG+;Zwaz^UhQ;KYHyru^RQhaHy$RTO-feKYgseZSv~SF6YXooUrl|N4dxbW|))GW`aopgH6eqle;Vj+&eyg z!R!G${hjz#T*|e>_HOq`u+rY6sJ0h&dpo@->_qHBX)A1vF1%CP4tk>t7fTPrQ%5dM z)gQI@Mp@o1lGG?{@9lPj?h$*hNJ5A6_lqQRIG-+($l?5QNlP3q%oIrAPNx?Ioz0M4 zDUiHu`ayxjWz!D}BrTiH7PYW!{?V0gxYr6c!`k6av|XzoMPaWNbhc{5#uO4#o~+fj zf+(nkoh`}jT5UTF_G?x+0Q&8M-Ao}WzUBH}FV>V@9Og1rDP|{g&CT8rHT*!e)6p48TjY?~bRZFOb zY2=UTTTlGlV=_T1(|?ux*tgHMIiA%hGx#pauG_{25f-^g?qHSrvoljHZT1s5E zBQ6H9mx*&#>A)kh%W-4#A>4szLJe?E~HW#TzB21KH9C7Vj>;)2uO4DIS zAY#(O0ik_FeSufOR@Fe|aj!zPc<}ZE?Nfe-p`JP?)FKVFNJA|UYF!t?xo-QM56~KM za)>HE7#YUl~*sIq%p~`DQuq{jd*~_~e&Gu5xN}RWR(6zyd?IO*M&g)BBN{ z?7BqqD3+=6Q2kGeoxIB+T^s$(QWlJ}Jl=$druWREE?4HFd}cY5Ns!5_=e~O48;||R z$MoY4a{-bjP5@gBz?wel6wu*UXW+7}3g|Wy5u$Rl5%^)lt#IB~2rCo~k+^gRwfU0W z>6SVAL8O%qw%Y_^HZD*5`s=`p%a(T;kCcO@jmFZf}CdR}& z`zKt`R5u%qa*RN{Dl3GtRS8%|Q({;E79m~e$LW)z?n~w36Sr+;*tUAhaXG{R4q{A# zI46cC3t2;>6CS~wA_$G1(%WdJ!1P_#q(dx8p~D@+*%bOR+=O<0*?cks)9C(5@W2=L z7MDqH{0q7Bu8|2=#w|7r`LhjYE>UCuISQPao@s2uYeDd)T}Xfv=#>Fy=E4YYB6@;) zMBfC3vWa98Y#JzH9>Zo5O%0m{0Wul~Ur6;i6%(#2oko2_(sdOFJO}Bqx(1 zo!Vg#h23`0ZGzX(Cm6fDz4LJUET$2@gq@8&R`v3m#(C_4t7W9I8TTR6d-@T4=9%$0 zk3E*pJvSQX@kccs{6FJ-`VIf)wS4-~Kdim8;(PjE!Qb zKmSF&p8Nj=+S5K5k4vfZs9kIBw07hFJlf8b_wCs^dm#n1uyfE3qaeeyOVGH^4l}?z zwP|*H2Vqy+#7Z}osw+#C&pPPisHJgEZ&=-4Z>t%zEmfA*mzL+kaAhT2S+3OA>%mr7 fzp=U*)Yqz&aBKNyJ$&%_dUdmMbM3+E3S)l(t&p@B diff --git a/soroban-test-wasms/wasm-workspace/opt/next/auth_test_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/next/auth_test_contract.wasm new file mode 100644 index 0000000000000000000000000000000000000000..d9c0eea4d4b1d855d060612cbeba843b1e67600c GIT binary patch literal 5753 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 v@_V<_T$bja|Hrnj literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_add_i32.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_add_i32.wasm new file mode 100644 index 0000000000000000000000000000000000000000..71a3915487ccc29af7147c7e291f37f403504f0c GIT binary patch literal 1013 zcmY*Y&2G~`5T2dgO`N!ZD_Ydj3QgP|Qi&F)P3`0sM?wO6;{{STc3T{hR!J05AtjZl zP)~@rs5tNnh-ctoxWcTR6cJ0FZ+5=<=Eoa|MtuPQVpSdEbSkFDIGe#SfU#nV4^T|R z8OJ|}eE_MI0F+t^ST3x~nFz11e}X-O@OEy$8e4p!3;m>jF}y;MQ5=I59Z=;?CyvHZ zCmF<2*qzRK5?yvqqERBT{9CDYARuvw(5BCAeG^EFpbdcp`-c*x*%pME^Y$@ zr{_vemK>sVM{;e8WYz*ncJEXRY=f){lQ^5XNTx%=Y!CAk3|CTDhTx;aTIeIIFvCe* z?W4-DmAVBVjmlC=IU-GkUMMGqw8kWM39|!fyrT^tS3<5-#j4A4Ror$9Jy)C9>y3(} zLMX@Va$qH`aB3AdNv9PpTO@fs1=3l2rl#m+e9Q23$VM*-+om!%X{DiXv>Cjd500T{ z=2WD1E=lkb}M#z|`_pH_Kh2MKp1RYa!5l~ihuNCdLVhGUMAV8rwgO`!%$ zW7t@%TP>=#dZsGx+7VBw6v8XA_$j3>z8RU%t-_3f+&S1j&syZ(`L$^(7P$~(;?5s& zSc0&h@V)tNZkDI(Ph$|c>K3m{IXlj4$comlmor+ zPyYFWp@wJ63$bJ{=_ljpUT>A-0zTds`!A@6qe(K%#U9r7g8H7fJ9u|?K7N0dAM)E8 zjz)1WrycBjd;IJUyS1&;pneehr_H3^>_(B-Xzte!YK^8BbYt(Z(KzwFI5@2}0{9Cc C@}npK literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_alloc.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_alloc.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2a2b0c861bf767bef65a8ed08a2b0aefa88f942b GIT binary patch literal 2436 zcmZuz+in|G6g@XzXPitfy^tcIqco$!KBq!yy8LgELKsXb|8J9a!X2~4_NalYbyX$#$aD(r0NR1A z_QO>wSBz*AH zu&-$tR;XcL{r&O2Re4wg5Bbn^$XL-*H+|{h$>50$(4pN@AL0?{xL)PU)qW@oigi#l zpcpNvDU+faa4L=hVwWI#s+<2iPjeC6dZ$-Wh zzJgEzNDZu>M2r0pxev95kgEH9M|wku&x9b29EX|{*bfz;J*tvVi-YL8eKCn{KnPBf z7WeUNw`*S}BWZ~mY`4UYgnc!e&AtVFbZO9MIt_xp&rz)w zimOf$_XNr=V%Nw4P%%u-{tFP74|%ExV&DEW?@Hv1fEcyB7zqlSmcQi9@Whh)d?KTdMkAwP_i(dZ4h! ze%Ldw+Zx@xC)yf)aF?Hp8Z5iR+m#Y);Bp>Ol+Q&Z?Ax~*Y@C#^DD#MCp%_no@)kkq z7bz=lp$$UpMDPV|XUX$Do4uG|Whon6pp69HO`pVmSaq4Ga?~ARr;p}NF8yOU06svC zP`j&DqN&`E3~5f5q0$72L-x$25jN?3bzlWz^qHI%(pzA+e~1ks3|6~0k=R$tbkHD9 zxTdD;=$#k0u;7Nbj6qQ)))iLB`<`%vp$HVZy~sx4(ba(42djxY8Md6IKczHCE=eRL z;Mv7!K^5r`B-{!s@sffR-60VlRPbfM`wRKRY(v?zSh##`3A_LXMpPOA@x=rhh2aw< zMpMCs_mXyts^q>6ZccJCX~q?A?sjvl$%{vB6A!dtV%h8abdlBt&2AlM)kg0{OYvwsZ%PpNm~f z_bhFKo{1Jo&bA%2Ryyb^;kR0+Y5Sse)E=cumj5Xg>QbPV#}w;cC@N%xp-n{% zCGJWn~Pp3E2O=kqzn3kz|k&f0UEQ2sEZA?21hRo zRDMl(2rp)#i|e%vFN7XH=^8J2CtfD**KhE&oN_Mu>Qm={g|)X3Ez;h_F&fj znyiCO{l?tW<%M_%Khd{=$vX_Ob zE`epdl$l&Ij#0f>O+px91o&vkUI;#Y`KT^eV>F>Et0BTwWhHcap@L3*@hDKniPbn) ztY!hwsmc$H$ZX*Xh2veD9vQ`jvOR_jx6E$JCL9*1S{$`jT#(E=fYQ1D78U>m6d6H8 zh47b!(%FFcr@h-q2%{n6Di8u_`N}|eOAGiA4B1N_?ZN^$W#5rgi6O4a=pL%wR8558 z$ukAOs#jQJa!nNz%BvB$`KqW2 ze;g!X7XpIEi&N4ipPh<%^^VOB`DUV2gJ+(CVPU?qu+J~&T=PNi{a##?mN#39(Iy zem6err;~IzIy)bDq^S&(2jB|)A-Ds+4ql{>mpkW!@vz+)k1o>AB+6r1${*jm-$yGq zhUs9^Psih^N8o$Y7~ v|0lyv?eTGAcc)uF-cNV;JMDJV+~3~asWtbbMyDI?HJeBEsM|QMH5>FV4eut# literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_contract_data.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_contract_data.wasm new file mode 100644 index 0000000000000000000000000000000000000000..103431a2b618a12f056547f7bb505da84621290d GIT binary patch literal 4835 zcmd5=&2JM|5Pu(QXOp$fqkPnaHoP@yn^XlkA&mp4>{ft!sH*lrk7g4u#CGB&>m@X5 z6-NRgq+X(4d+9AF{(+u2_tHOsL;n!^o44z=<2E1!Y3oSub7tPWncvQv2@AR#oH534 z7Vh#rzIRvbQ7iXMXQ4BTy&k*Ed)Q#K+3W2wYO!eb_NZgbF!sb34qxH(O!6kLLu!*( z(XL}G&{i2oJ7?N?)7C(_&X+J=;R`H}c8M{0Y09#4WA->HCbEW0Ya-`x!E-sunaW>~ zJ?`!AKW9#l9qq?{6KC@q;l^gPD_CjkL0sPoqi(Yshn<+6E;YjS;f41~Ye9E-;Y{g% zc!cHbsg(yCTf-#hiX=4-H?}sTAlhZ;izIX~f4@jF2lH}~L=NT`N=D*fVX{C1o1JbP zbXG%lu|V>&=?4W8mrXw`khE+%RW!n~`K60dxV0XvhV_Tdc&)y&8;9L`&}r0(jA=Nd zGEuKLf;gy$ordI2y}lL(TlJNo8%ihUP|P=hGoJvI|p1 zvW;@gRdM*olj-f80(N~4!9pqLOhQVN87<_ z3y!zwB=x|nHSu{0P-tV+mqXsac#BSyj(^I z&wmMFmd9=|1ayzLTno>P~*<1T}Aqx6BTZ764Zyp0>?yaSt3Je`}B2ez6> zjZC+C=IbZE_1J%md<_|!VlLjw95|3qTF9^rtI05sURm1F1-w={Scnot2ZpEUl{jaC z^F0l-;-E^FES7HJ5&fOriYgos6#d`_vYV8+I+Ahcv!To`O(EtOJewu0!)c%ckZ7)u z5Paj<$vEdsm;o|8*vrj1)n~@sOOpETS2$m0ra+tmofKDlkf7#&1-|^7`h( zdiecTGYaD7W~crzh{I?jh}xjF3{jO#TmG^z75VJ3XgP_XAqk+1Uu=Ad6|| za3W_vWC8EUW-jXPgptvSmFBM27OqyWbnqR=>n6^b4Lj;~8|{Sb+I;mY{;ou;bC>Vc r7OpiG?_CcUuCE3`b?N&2!nL`j>($z7qx$*M(#m4BQM)&{RAYYuw2K{g literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_create_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_create_contract.wasm new file mode 100644 index 0000000000000000000000000000000000000000..15d51427ffae37e77db15096ef994f50d35fc506 GIT binary patch literal 712 zcmY*W%Wl&^6ul2Sgc@2SgcMl7*zKZOG;$u)&MwY|J=-oE$94#LwX&^1g=AM^!=H4; ziXULfk}u&G;5si+TbeU-&$;Iwdmzk~2mtt|HUcb0Toi=>Rts&mRF*ITpy!OAu`kL6 zb^&pW9uRBHnyxc~S$oMP`geCf!6@M&KI-VTWwN|ZZwYEqnuK`*i~;CJK@f*|7$mEh z(FlTR65a&kFiV(@eh~jg(n>5&!5_?QIs-)tU3LV(<#R=TV9uM27rzdF!Fz2m zM2nuFA?{SUlSxDM?cP`KzFVX;`4Ec@B{3>eysNz1aRvh#aCIDAuktjE^6Vyw){fll z{@MTe>P)-h<4yef%)Z7q`1n0QEG>;`vtA?KmxYFVd)eI&pj5_;S)udi^L29k1W% Wb=zLwaiiFI>v`i#Cw3=o&xL5S`hzv4zuw93s(6WeA7l05XBb&_h*Q&9$nO4{#iNX#xQv8zDuN04axF z^B4VuUMuwndhZwX(0}Nx?WKUyMXTMJo%d$uF@`W5BLJYut^gNT0NgalriD63sFYsv zC3>sXcd(YQeHuZzG#2A&^1#3lNfHP#g5s7WfTiguAUCiwUFP9kW^hh7(7AljFo04y z2;y)S24WI(w1VJ9g!jR9m@Cthc)u736Z$1|MBcJf|E!5}fITGKXZX;kS%!r`(1E!Si~s0c=q)y|Ymf z$t>v0FdI*~xrde_ux!jKRE7RPrY)K5&KcE-jh@Y69aMN;ZcZfms+5BmD=xP)kex}w zD79A|)>+YX+G*cST)kY*0PMYo(Xiq;05(W z9q6hcDUnSIQ%fWldX7}PyspbF;;L~D#PE&nN7KnH38PthFQT~v^oP<`i(klj zqCqSihVQ-qaB+D_rqeHc^7uDukLLo-;c9Sm^wK&P5xh SH;SFtz25b?6T5?U&xOAhL%pE@ literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_fannkuch.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_fannkuch.wasm new file mode 100644 index 0000000000000000000000000000000000000000..27e761d2d4029c21edd620f8b5e3b3d58deba6cc GIT binary patch literal 1044 zcmY*Y%WB(D5S{ywd}B!=T@?C&GExFn7cp|;M)uCv;It4*KfzIKrHNcSiEIp^5NAYQnQ3~R7M60iS!%FjQ)8S z{#b^F_nLTN<_q2yZ3L}$Wt+Dt_Z2d~s+G?vT}7_>H1mOCt{G7@6d#~*@nI9fLaqYY zE$UY^JEI6Ky6r5m-gwMianQO(`}!jAI{5j@Q|Mjkn;UWFTMpV-G0)ypzoMBLN+P&c zuNI?jHJTBjFKHGaCy4Y`c0Csb3N5ohgdBD_P?nKampM+MJ1|y;S%%VpOn-w6Aqyn2 z1L%5Hl%`@B6tL`i3`ufug+eR2VB!7Cr+yWGC9D!1lPSoZ>`iTe+7TJKpAA1r-VR zT~t`^E6}}L8x>jMD>G~8b7RcV7ljb8ipjJ)y+h-{(l4qoevw?uSi9&(g%lTU78v0c zd0lvH4EHHEdlpuM)8P*ND2}27cp>141J76cC*x_J^rw^4v_FgB?z;U$ZWGTQl*DvA z8>Q1^$$dx+1|ODp(nhPFBvG@q)!42#TT$E}L@%4ogPmv)AJ&^O`~$BBso($r literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_fib.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_fib.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7d093ca0a6555f842657c7051462c88aa191b10e GIT binary patch literal 360 zcmY+8L2rUU5QX3Ds%<40J@nFpA@qt!vKRjD}*1O7-= z-3v3CCk#A{;(cBfDz3_dj*p`GwyXAd=cbbm)cG;fmAbIE4MO<31pQm~i}I+8He_Tk zJa-}H`SyKNeV)2xTo+}T>{`rOibd1&BDU{S&vlYj8fZ6&l@flibRF9dgcm2`$@kYQ Kk$9=?d-w&(ZAiNS literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_hostile.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_hostile.wasm new file mode 100644 index 0000000000000000000000000000000000000000..6e367901eab9ba069cc6e8150e97090715acb280 GIT binary patch literal 2119 zcmaJ?OK;mo5T2Q(WZLwDPV1n}p&%I-NP))H!?xsJDiZLahoG%by~&hB*_Ld}dO(2D zz%&}8^`(H11$t>uKIPJ1&|`r9lm3F<(wSXKRuZR6fIFPWH?#9tLOeV{0KhNi_W>{V z>EeRls9&jkrzxiU0Q)MPNK#<}eVWGxmH}~$Mg1-VF}=-nBYRhY)Pq%JF+MLOqMXXl z**S%J8ndwz!0r+wt+3`2e=m~5Mhp;Q*PU~G7BS_+A~4@( zdrdeHTA}UEJ&MTr9O)t=AE>4n_FDmyC&KIJ0e&xD*cu%+XXWzD8DJfB#-9*`3*YEq z+1EDN?9%SIAMmE5ZWGrgJ2%^K0t#6ISS@_wKBU?NC!lctnLe1^@hGHGN5J`zw1jdl z3=5nG4v*e-^Bq#k*f(}JU@z=^r4wG-?!)l+U-CZk*^q&S`!e!=ima>X>QWZE@JMIN z$3@Js!i_Ddmc#yrs05PhMS`d+WbJvF5d*0KQOXSO`qsCMs#@n%va)v_7>mDQZwWl* zS>o7(s{o|p;F7zx%L0fj7c*5$YwEOVgj-HLIC54pDJ3miVdk%Q!LdiymiA#+QU?yi zoAy{mxgPQfUC!bbS#tPSaAml}ZD!gJ8DD>hGP!vPl2P3p2Wd*nVOs8*PYmTr5fsPt z8v7EQGQlZR?>{86{|$)S(_{Q;Tvo9aQ67M z;eQD%;<+)C8`?gIIP}bYqu~pwkebaP&)EIcLbH`agb5A(ff}hoLvv)cg#Ldz0ENPAlaJRC%`HnF|P44R% z)|8xF;Zw#8VQzK9K;E*Shh~_o{(UmJ|KDAAKLh~E#B|)#)C8LjkEY*m`<(nbimV|r zSvc04`iD2cc%MxvlZp1M&9X3N*5scgtowWz)lXI@g-A}vC&?(D)?!WD{V*-m8^YXR zI8FuzV!60c+1w~RJv}-&937t_R_N_E2N$VfleoJMC$A+$012Uf0eja0l`*;b%J zvMsejJypGNLE?Z!#GxOcH;%njsyK4u!i6tUe)HB&C?ZyN=FQB`pWn>9rF?uWh)8_s zcI9*`rd>5PM9yZ^RWp9tcrqpGLMo zcv=}#t#CZITI4h5g|=2%P{L4X8=iEP`r;LlZIqCBWh6lY@LC3L2CKTPv#c&RBQ=aH zEw%O8jZngwn&1euUmTGBfwUCWvT$7fW7#e$z?JUFytySUsTpyU+BslCi9S)>7Z z9R%P9sfwA)>SZRms;0JaYO-%G(XRR;v(^xOBCs=u31NMFG;O8QT&&OP; zGN@S^@Y zp!|yNJ?BAj;QyR$Z>w4;0n%J7C$7TQN@U{#bvuzU4)D~h$N&Tu1qgIqOy|=-Ui|RW z%U@mr6fR9O!f%M5t>LmS^;CTY!E3r~31_^alE1Ed$t z!03f82Q=`wW_~#mHks`autGI-%_f_8Jo4dUhj?c#P7jw+HUHTY+>h{M(gh7K{%?!SlgbG~-1$673yfPBxG1-Q4a32Xq0@mD2P ze``mjq@TrF@4?Arl=mj%(|+$PUMQKEPXOrh1(8=uyCNhGF3$q&QqI!L4+s2IX80;q z%+gLgeEaM#GwB=^tXao@<@bZDOI82m?6^P4FY>%*Y`(iF;w_~;8lUw??22e@dn;{h z#dl7Q?hhtkFCs(kjmG0*Sefna#9R2?8TGbr9j1-lB01daH}-mY9yj-P8oS%gy*TX^ Q@!e+gAc>3gaJ!k(KicRs_W%F@ literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_linear_memory.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_linear_memory.wasm new file mode 100644 index 0000000000000000000000000000000000000000..aeecbf9e9cb1d8e5ccf5d7d9fe1d4fb28890ac65 GIT binary patch literal 873 zcmZ8f&2G~`5T4n!6RW0`5g-MG(8leBLn5aMal!$`KES;%;5xQL<1|iVTR{<05{U}& zCO!4Q8*t=dcm~R>ogbC4G&4K<&CECJ0Y94}0N`u&5?8po#5E~pMM9Pp8h}0HIK&n( z(ru7_4}e!x%2ZJ02u9^4U!$|x`~rOqk8Slsr814CvvkQo8;%q2%Pb8+sY-X81fZe^ zl_Sp!{oMDWB;=@j-c{t^ctbynI6L~u)h?5~PQfuICZ2&n0dG0jTodS$p#UB4lmY0{ zqo`xVXQ0oKuMbJ!KHxW3xsb3j%BU0*;EEr2CU6M3~ons%u+ zbM)A#)+wo|FKHCb4ZiF62T_$Rt%5wU~ICC2{I2`TT~9ds&1L?{Wh2 zj5-{6@47h9Wf~i>fdGR^&W`fwxE$S8h=3N~yW+d6+`6|L`6mo`#RtS*`FPBVYr$hv zZ2&kJn~L**b3p}As6u%UKtPP^{0ZptEAYjr5%$CB^M0rlq~;J?18 zLv|9(l05Z;JiCd4g#`yW>;QmVJt<1D6J*Jku@f2G%6?Jkyu+)*WgcZEKw`_BH&1s> zqhv9Sa)00VMS=OcC-vx3O|wOmZi}^=cBg4IlJV!O{CZgiNo#4Ag_9E2KDV0mHPWDU nI8U9UInTA@8^^=$YDNaUbf literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_simple_account.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_simple_account.wasm new file mode 100644 index 0000000000000000000000000000000000000000..64ef1a445ec155b20cbfb81df1f02c5726f505b4 GIT binary patch literal 1994 zcmZuyv2Ghj5S`gQl1CjWuZjeUieO2r5DN*EC5se-0KALi1aRTRsZyO!H-&d$7f`(}1Y$?$-Qh*$iF zYCPugLzaggJDcSDgdVC19z?P>QH>(+a2F{j{20%tyiJ<-IVOc?9iDw&$8(39#N38Q zae^o7qOUz>mCF}$nrR{biJowHcJ`Wr35Bn&zYF&Y`GfS}aB!-~+w1R*C@2ooQGEEM zpAM*0isSZf+U~{4@o1OID1BotjyuUHiPL^Za}dY7X>t_rB*Rpzxxb43PoDB8YJ8Kz zdaugM1jF>IxtT%B6utz36-AXo_~X>dXHjaIR7qq{JX#TvR z{gMu>7Z&f9*(x=`|2SfV7rLuNRUQ6DcgwV7HL8bm_W_~9U#J%@W#;cQQ-!>xJgY*# zYc)!QT=D{|FQd<%m6S7XKP#~_)}93@8&V)l6nK9LR4?Ri1^G4YgIoT^dBsO~0H&&@ zyau2Fi3Gu*h#MN4kXm{80+cn~WwJRnwjzW85|AXga2eSbk#}zMQ^Syyx4DQi5SPgS zr~&{E;Yzorfnp)H?N!kU(B;r(-YXOqRtR(e2yrzG zLea?XlvH$nc6MeA_O%H2q9A~L#Fb+7{1ukiab{c0I9u5*nD`anvTV4_0c7B?E(?C} zx#9_rO);AS3=QZC1=$;CdqXx|crD2S4pK#jh>czf?l4b~nT?xd3M&@18Pv?Y%b4bh zZ6E=bY}d@;B@`kReD_}v11zbNA84$P`e<>?>4fAiMJnReH-chfru`O*O zSradCtYb7SrVk9vJesC!+Fq0qQ`0LIhTn86axTy+oF1FQhN>RiO;Nk*w84}`|M2tZ z4L!Jo(g2Z(z*f--H+ng77zsw7Ox~FAHGOqiag(!HDFile3nFq}2uTgsDZQeMRSx-A zdN2@9!U}WLim0M8PF{9aO|dF%@FM=!8{-_xmzq&3etUp{l6g*0LI&y(dtP93Ucb-k!$A-fP9au!3_qk zA4gU?N7Za!P|T^McV`klhH~_?nr|QWM}wq28Xl$X6WrINWO4c_+`%n+FFlp7Jagimdk=Hv&2HxR zadStxR<5tKM`rKqBG;#HSQd<8pVG4WO}`e|9^8oy!H{4LDIr-?{PmF9S_p@ zC^_9fOge7i1B~KT%=@+0G{5YAM`F<>eLBk4{~#*7g<1IGnwLIZn2DG6PY%*i;`Eb@ zkMPg*!Q=)NePNJ6rWm{dj9w-qT^JI( zzfs(xV9xbEL~2&Y21t|;kdzpCQ=ek+fm7bBE*c<)jLK<~pl-!~@mu^0K3c;Ved{^8 zQb;QxM_L}n^7~CB-~aF}DVpT?;7Y1U9d=v;QZRR=)Fki58giPW*IOZKJSsBjrcXpp zCF{Z4Z7=<&i2gud9PpztI+z{_h~;%`UsYNdbL&Qg<4CcfOMotX*h^0rWvID@;1DCxg|4;)!dZ&f$!C(=Ievllcb#&E0c2t z+g`gB^jhk0@%huFJUPDy`E>H4$Y%Ft-HvMUI?U7d{y6A$v;KHsdV^GJ6%IPRZaW;P RAkEZK7>@cX3&!m*fPY1GZk7N5 literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_vec.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_vec.wasm new file mode 100644 index 0000000000000000000000000000000000000000..2e14d16923a38c9d548d8cb8823515122e38bc28 GIT binary patch literal 596 zcmY*WO>fgc5S`g|TB{b7k>J1uEiIQG5;;v;I~PQJ;2dY}?is;3I+9gIti(6`VR;&4?ImvT^X5H zcB9fdppA9*;nT9PBH!w?DoQOr7ps-HRazNYDIv8ex7D!Bhl_HnGeLVOjUbuSJ5lJ( zwz6U)tyLLSeZRxLsO)~FGhWM87ah8U@jv_g_4EG&DP6BsB@Z*b-0Qv^27W>gjIEU+ z1=;C%6i!FMP#3q$YPIV@@~*KqyYFR_%V0!jXwva{9!@9Obv{$mSt?}^%`T^taWo6U RGz+exXmK56VLpyR_y-3%fIR>J literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/soroban_write_upgrade_bytes_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/next/soroban_write_upgrade_bytes_contract.wasm new file mode 100644 index 0000000000000000000000000000000000000000..97ca15ed450fc926e2131fa0125df50f72cbc78b GIT binary patch literal 667 zcmY*W&2G~`5T4nwL#U-{IUuz;pvCE>hemc2vd)e8%8eIr9eYFTG-+j9DG^c<39h^Y zH%`0*M{c|c55NUxlVH?YX}Z~I*Oeb;!j(aFTbfVBz79RF{J1yaZWsmi4^Z{uc%4!ma1S<90&G7 z1n9w=OM5X9wptfTAK1e820p_7hEiE-d)$Xt9_7lyR52wwlC{n20cC(Wfpd)deF~@ g(~%jBvNR2%(dD2YMx#JydGIQVCc_}t(=gKT7XieCwEzGB literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/next/test_delegated_account.wasm b/soroban-test-wasms/wasm-workspace/opt/next/test_delegated_account.wasm new file mode 100644 index 0000000000000000000000000000000000000000..af7aae19d04f0ef273e89c968447a494e784963d GIT binary patch literal 1987 zcmY*a&u<%55T5tm{z}##uOLF!Gdt(YJ?RICk*Xg&jN8??Z z1Kj+4yWP#kS-UsrDiOBZyS?mTdnX(9l$?J#@BQS+U@9k9$<+Ias1k&zpSUxDs$`zS zSxr*xn;%NaE3{;lWJ|VGOFP=T<+L;z+K{A42WjvuJ$KwtK}ChyF>|*TgqCuOYmy46 z`}qn{qRbz3Yk`)uf_F222N25qLVdGTh=0vQX~c$fv@}7k6B4YR2O{oB}mI43?0AR$2R2;e%R<^WQR?!Kg z3Kka|s>YJ3<;w~v8f5E!f=VD1G}I!bMK(gbsfg#& zr_Ya$j)VXtjte40=EBtZAPBz{VtUpihz@Zr;uI7KfJe}T?TOQ3 z828ep+ib!MES7R{3dTay;FU9g=v zSYBB#Y~hqus>zy`*6FXbH7rc(soY`-xu1oK8re`~EAkVGlvOJ3Iuk_44-OONFkwzX z7{_;lslXb==s9#u7|S=|N-m6pa#y)FVFY;`6y-q(5HP|D zbyGO{^DH57%9x6q#a0RuD8k6uCdCXCF8O5x9m|2am}5#Y)e*p)4ar0@hY2Rbv2u_n zK98C*m0TB+_O#zO>X4Ndp@c{6*bT)`w=ZwViw4Po*#vMkSxx+Y;_=xRmt&=UqsDl| z!Noj=X-$5hy*&0*ODjx?uRR+c`xJevkNmOAGYWvi!f%)+rbYFJQLHX-|(aN>K!tR|FMr=}VG| z-<@v;y&=SaB68_pajtVP7!R|~c=WK>ImD}ee_JA;{RU@czu zZ}i-Q(iP4wyrswDyI%x+UCQ(GqrLlsZ2V~0Yd_2$KRC#`_CWoEMVC5rXFBCZxh&Yv zOPllQeLJ?B>Tjg*3ZnnXTf21S{4D9-;Bdb;&TQUnaS4~8@6Jeh=g=LF4lQ?3I=8mk zSYNHL4EFBtjvrWl*q(ynXw>Z&YS*vTSMgsNcGj-mYph@IZrt1Kt#5X+tlr$bwtjuB Wxmj;?y7e2)=FUdF+qk#ZY|#I#|2Y`| literal 0 HcmV?d00001 diff --git a/soroban-test-wasms/wasm-workspace/opt/test_delegated_account.wasm b/soroban-test-wasms/wasm-workspace/opt/test_delegated_account.wasm deleted file mode 100644 index 725df682a74028dfca4cbeb4fd5593930160431b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1979 zcmY*a&u`pR5T5tLKN4?>s|G2gsCssD*a$V+hBTXq18V~XRHV|JxNW=}H;FgdRJ+@h z9=aQesN%?hLyvIEDgOgV94aBC9=QQm4yY1;0DSZ8O zXvcMwpv&$%Y9f-8lbo&~*>MUH1c5{AXB+4braBlgaczxDw+yKa4Z*l z0m6pG5*bI14HLnD1SB^0&QtR=)u+a-gpfGAaZ)Nltfv4#3;;N>l1imxVP(sRWfh(= zs$g-Usp>2x^=kfBZ**blxCVsddl;DekNpaVSu&|ztOrd#aBjv;am zy=khc2<2i0mCE3mBV0y%N%oW($AIlGu>kcm<0KnJq*98ibEx@*VfQ(439(536W^rI zX-l_K5eaU9W`Cp_I;r{gEHR&+M>t=|K0-Q*QGG17qk76W`mk{}XZz8DwF9POjpc=n z!XCQnP+iuIv_XHRtwHJ1NaYqwsQn^U^v9+uTcH%1(^OxT#BC!Dzli*@JxBop##f=63aURZ z3IeB$skp_qQ;bjgyP#le#7 zMJnF{$%=5Cgup!6Nr=$|3|ZCw-)QR`3K^q+gRDCmKFGVr`0UfvlI^{Z@qxaRKW16*qq>|a%ya{5`JsPh=Nwg` zpu6 gA=N4e)2F^p}VGyZvnRaFDkjWRDMyvK^~X|6nnd&CG>OwNWi|_Se$pdh)MF zc2oV05?(;`K6-7Ju3erMo%fFq^HFB&W{-K?oAl^{lsA;lV0dh~gVCj%E6uf)#*O~| z?%wFY^27e*4~D~?UTL<{SlL`zy`JZ5Yx&x0qqEt`cJj{6^={VLXg2bl)mxqX{`;HF NZsXR*{q;4X{{d9NH!uJI diff --git a/soroban-test-wasms/wasm-workspace/simple_account/Cargo.toml b/soroban-test-wasms/wasm-workspace/simple_account/Cargo.toml index cad58e727..1639123dc 100644 --- a/soroban-test-wasms/wasm-workspace/simple_account/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/simple_account/Cargo.toml @@ -12,3 +12,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/update/Cargo.toml b/soroban-test-wasms/wasm-workspace/update/Cargo.toml index f42d011df..8e3ef6d3e 100644 --- a/soroban-test-wasms/wasm-workspace/update/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/update/Cargo.toml @@ -13,3 +13,7 @@ doctest = false [dependencies] soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/vec/Cargo.toml b/soroban-test-wasms/wasm-workspace/vec/Cargo.toml index d4e6f25e4..b5623d12f 100644 --- a/soroban-test-wasms/wasm-workspace/vec/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/vec/Cargo.toml @@ -11,4 +11,8 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = { workspace = true } \ No newline at end of file +soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file diff --git a/soroban-test-wasms/wasm-workspace/write_upgrade_bytes/Cargo.toml b/soroban-test-wasms/wasm-workspace/write_upgrade_bytes/Cargo.toml index fbf1f56c5..2701251c1 100644 --- a/soroban-test-wasms/wasm-workspace/write_upgrade_bytes/Cargo.toml +++ b/soroban-test-wasms/wasm-workspace/write_upgrade_bytes/Cargo.toml @@ -12,4 +12,8 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = { workspace = true } \ No newline at end of file +soroban-sdk = { workspace = true } +soroban-env-common = { workspace = true } + +[features] +next = ["soroban-env-common/next"] \ No newline at end of file From 0205cf610457deaf4457d31413caf49d1ed42a61 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Wed, 13 Sep 2023 14:43:12 -0700 Subject: [PATCH 2/3] Move out-slice len adjustment from symbol_copy_to_slice to its caller. (#1063) In general this is not a correct adjustment to make in symbol_copy_to_slice because that function takes an arbitrary input pos in the symbol it's copying from (like all the buffer-copy host functions). It is correct only in the case where pos == 0 and even then it represents a bit of a footgun by papering over real errors in the caller (passing too long a slice, which the caller might incorrectly assume is entirely filled by the call if the call silently succeeded). This adjustment was added in 0bc40291ae38f63a7e8c5521297e42ce77fd6c85 presumably in order to "make tests pass". Removing it does break tests but only because of one call path that uses this host function, where a host SymbolObject is converted to a fixed-length guest SymbolStr. This is a caller in which a zero pos is already being passed and the adjustment is appropriate, so in this commit we change that call site to do the adjustment itself (which causes all tests to pass again). --- soroban-env-common/src/symbol.rs | 14 +++++++++++--- soroban-env-host/src/host.rs | 3 +-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/soroban-env-common/src/symbol.rs b/soroban-env-common/src/symbol.rs index 07ab6d418..cb2d9e3a5 100644 --- a/soroban-env-common/src/symbol.rs +++ b/soroban-env-common/src/symbol.rs @@ -319,9 +319,17 @@ impl TryFromVal for SymbolStr { } else { let obj: SymbolObject = unsafe { SymbolObject::unchecked_from_val(v.0) }; let mut arr = [0u8; SCSYMBOL_LIMIT as usize]; - env.symbol_copy_to_slice(obj, Val::U32_ZERO, &mut arr) - .map_err(Into::into)?; - Ok(SymbolStr(arr)) + let len: u32 = env.symbol_len(obj).map_err(Into::into)?.into(); + if let Some(slice) = arr.get_mut(..len as usize) { + env.symbol_copy_to_slice(obj, Val::U32_ZERO, slice) + .map_err(Into::into)?; + Ok(SymbolStr(arr)) + } else { + Err(crate::Error::from_type_and_code( + crate::xdr::ScErrorType::Value, + crate::xdr::ScErrorCode::InternalError, + )) + } } } } diff --git a/soroban-env-host/src/host.rs b/soroban-env-host/src/host.rs index f6a9dafa8..cf185fcb7 100644 --- a/soroban-env-host/src/host.rs +++ b/soroban-env-host/src/host.rs @@ -1123,8 +1123,7 @@ impl EnvBase for Host { b_pos: U32Val, slice: &mut [u8], ) -> Result<(), HostError> { - let len = self.visit_obj(s, |sym: &ScSymbol| Ok(sym.len()))?; - self.memobj_copy_to_slice::(s, b_pos, &mut slice[..len]) + self.memobj_copy_to_slice::(s, b_pos, slice) } fn bytes_new_from_slice(&self, mem: &[u8]) -> Result { From 25f7a66f596283befdfd143b82ebc33eb185f324 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 14 Sep 2023 07:50:14 -0700 Subject: [PATCH 3/3] Bump interface and regenerate wasms to handle symbol semantics change. (#1065) --- soroban-env-common/src/meta.rs | 2 +- .../opt/curr/auth_test_contract.wasm | Bin 5753 -> 5753 bytes .../opt/curr/example_add_f32.wasm | Bin 1066 -> 1066 bytes .../opt/curr/example_add_i32.wasm | Bin 1013 -> 1013 bytes .../opt/curr/example_alloc.wasm | Bin 2436 -> 2436 bytes .../opt/curr/example_complex.wasm | Bin 1779 -> 1779 bytes .../opt/curr/example_contract_data.wasm | Bin 4835 -> 4835 bytes .../opt/curr/example_create_contract.wasm | Bin 712 -> 712 bytes .../wasm-workspace/opt/curr/example_err.wasm | Bin 1106 -> 1106 bytes .../opt/curr/example_fannkuch.wasm | Bin 1044 -> 1044 bytes .../wasm-workspace/opt/curr/example_fib.wasm | Bin 360 -> 360 bytes .../opt/curr/example_hostile.wasm | Bin 2119 -> 2119 bytes .../opt/curr/example_invoke_contract.wasm | Bin 1961 -> 1961 bytes .../opt/curr/example_linear_memory.wasm | Bin 873 -> 873 bytes .../opt/curr/example_simple_account.wasm | Bin 1994 -> 1994 bytes .../opt/curr/example_updateable_contract.wasm | Bin 601 -> 601 bytes .../wasm-workspace/opt/curr/example_vec.wasm | Bin 596 -> 596 bytes .../soroban_write_upgrade_bytes_contract.wasm | Bin 667 -> 667 bytes .../opt/curr/test_delegated_account.wasm | Bin 1987 -> 1987 bytes 19 files changed, 1 insertion(+), 1 deletion(-) diff --git a/soroban-env-common/src/meta.rs b/soroban-env-common/src/meta.rs index cb78c3c8a..118c698b5 100644 --- a/soroban-env-common/src/meta.rs +++ b/soroban-env-common/src/meta.rs @@ -58,7 +58,7 @@ soroban_env_macros::generate_env_meta_consts!( #[cfg(not(feature = "next"))] soroban_env_macros::generate_env_meta_consts!( ledger_protocol_version: 20, - pre_release_version: 57, + pre_release_version: 58, ); pub const fn get_ledger_protocol_version(interface_version: u64) -> u32 { diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/auth_test_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/auth_test_contract.wasm index 35caa20b53f10c11dd99136d7cb15da0978b6eab..69a006addffd92c92a77d1c78e55eb2052b5cffa 100644 GIT binary patch delta 13 UcmeyV^HXQTZ&608$$vy^0WjAFX8-^I delta 13 UcmeyV^HXQTZ&60e$$vy^0Wi`AW&i*H diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_add_f32.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_add_f32.wasm index c4bb4abd78764aea62d336415a5af3741c59c58c..0a02a67fd3983f1c723a651747a5a4da33916ea2 100644 GIT binary patch delta 13 UcmZ3*v5I5E8fHeT$!nQw0U}TYzW@LL delta 13 UcmZ3*v5I5E8fHez$!nQw0U}ETz5oCK diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_add_i32.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_add_i32.wasm index 5a99e7a36aa39953831effe0432b7046ae160187..59a01d3cb35d6a5026b40d2001e221213ec5f5c4 100644 GIT binary patch delta 13 Ucmey${*`@0IWwcxPx# delta 13 Ucmey${*`@0IWwc>ZV}$V#>r?knVqv102sytNdN!< delta 13 UcmZn>ZV}$V#>r?onVqv102sjoNB{r; diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_complex.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_complex.wasm index a404bd5968baab8b03a7acc8cf45f9349c4a2514..153cf505a8cc82846d54220ff120bbb65326d68f 100644 GIT binary patch delta 13 Ucmey&`Cst}{qCst}{)7Zan^WN)Tg03e?PF8}}l delta 13 UcmX@XdV+O>7Zao9WN)Tg03ezKE&u=k diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_err.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_err.wasm index 75853b06dd6a7e10fcbfdbec67beb933e0c7141b..3fc39ea3df1bbb191214e58a575c4818bee7bb60 100644 GIT binary patch delta 13 Ucmcb_afxHY6=p`O$yb?c0Vl`>UjP6A delta 13 Ucmcb_afxHY6=p`u$yb?c0Vl%+UH||9 diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_fannkuch.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_fannkuch.wasm index 9d4a2181206d2dda3f2092fac5247934d3f3ae2e..0be147968caf77c8ac048b2a1c1795a932b19e95 100644 GIT binary patch delta 13 UcmbQjF@OW&i*H diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_fib.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_fib.wasm index a837a351fa985c47daf3074f0f07ca83981c8a73..96a91ef8342335a6413685ed20031d3512276b09 100644 GIT binary patch delta 11 ScmaFC^nz)^D@Ln{uWJDyt_6bt delta 11 ScmaFC^nz)^D@MzSuWJDyss(}o diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_hostile.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_hostile.wasm index a05462bafaddfaef84c7425df91ff678b89e406b..4a45e59b2e4cb8d8015d0220126e93b9d7b03924 100644 GIT binary patch delta 13 UcmX>ua9m)+Np?o7$*0(B0Vf*;O8@`> delta 13 UcmX>ua9m)+Np?od$*0(B0Vfs(N&o-= diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_invoke_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_invoke_contract.wasm index af6e14abc8c6d687166711e757b225a0521e1d03..7ee3d6cde083a6142fd520f0c5267b992d23a22d 100644 GIT binary patch delta 13 UcmZ3